linux内核安装到裸机,嵌入式Linux裸机开发(一)——点亮Led

嵌入式Linux裸机开发(一)――点亮Led

开发板:友善之臂smart210

一、电路图查阅

1、底板电路图

查阅开发板底板电路图,查阅LED相关部分

LED电路工作原理:

FmMnsbGuznpCezM1LTcKTZK4Sn2j

LED的正极接3.3V,负极接地时导通,LED发光。

FoO7WYwmCLmCko8-YQce0LBdmd3J

开发板共有四颗LED,正极接3.3V,负极接开发板的LED1_LED4引脚,如果LED要点亮则需要输入低电平。

2、核心板电路图

FgJCkeuz5qDbepMA3gqsQ2RgY14H

查阅核心板电路图可知,LED1-LED4接在SoC的GPJ2_0-GPJ2_3,通过控制GPJ2_0-GPJ2_3的寄存器使对应GPIO引脚输出电平为低电平,则LED会点亮。

二、SoC手册查阅

查阅三星S5PV210 SoC的dadasheet:S5PV210_UM_REV1.1文档,GPIO位于文档的section2-system部分的GPIO节,查找GPJ2_0-GPJ2_3对应的寄存器,得到GPJ2_0-GPJ2_3对应的寄存器地址和配置参数。

GPJ2CON=0xE0200280设置为0001 = Output方式

GPJ2DAT=0xE0200284设置bit0-bit3为低电平,即0

三、程序实现

start.S源码文件:

#define GPJ2CON 0xE0200280

#define GPJ2DAT 0xE0200284

.global _start

_start:

//设置GPJ2CON

ldr r0,=0xE0200280      //GPJ2CON

ldr r1,=0x00001111      //设置led1--led4为output

str r1,[r0]//将GPJ2CON设置为0x00001111

//led闪烁

led_blink:

ldr r0,=0xE0200284      //GPJ2DAT

ldr r1,=(0<<0 | 0<<1 | 0<<2 | 0<<3) //led1--led4点亮

str r1,[r0]

bl delay//延时

ldr r0,=0xE0200284

ldr r1,=(1<<0 | 1<<1 | 1<<2 | 1<<3) //关闭led1--led4

str r1,[r0]

bl delay//延时

ldr r0,=0xE0200284

ldr r1,=(0<<0 | 1<<1 | 1<<2 | 1<<3) //点亮led1,其他熄灭

str r1,[r0]

bl delay//延时

ldr r0,=0xE0200284

ldr r1,=(1<<0 | 0<<1 | 1<<2 | 1<<3) //点亮led2,其他熄灭

str r1,[r0]

bl delay

ldr r0,=0xE0200284

ldr r1,=(1<<0 | 1<<1 | 0<<2 | 1<<3) //点亮led3,其他熄灭

str r1,[r0]

bl delay

ldr r0,=0xE0200284

ldr r1,=(1<<0 | 1<<1 | 1<<2 | 0<<3) //点亮led4,其他熄灭

str r1,[r0]

bl delay

b led_blink//循环流水灯

//延时函数

delay:

ldr r2,=0x1FFFFFF

ldr r3,=0x0

loop:

sub r2,r2,#1

cmp r2,r3

bne loop

mov pc,lr

.end

Makefile:

led.bin: start.o

arm-linux-ld -Ttext 0x0 -o led.elf $^

arm-linux-objcopy -O binary led.elf led.bin

arm-linux-objdump -D led.elf > led_elf.dis

gcc mkv210_image.c -o mkmini210

./mkmini210 led.binsmart210.bin

%.o : %.S

arm-linux-gcc -o $@ $< -c

%.o : %.c

arm-linux-gcc -o $@ $< -c

clean:

rm *.o *.elf *.bin *.dis Cf

编译后用工具将smart210.bin烧录到SD卡,将SD卡插到开发板,切换到SD卡启动模式,启动开发板则可以看到四颗LED先全亮,后全灭,接着LED1-LED4分别点亮,如此循环。

说明:mkv210_image.c编译得到的mkmini210工具用于制作SD镜像。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值