微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mini2440之汇编点亮一个led

代码编辑分析:(运行时可以删除注释,开发板为mini2440)

创建汇编文件led_on.S

.global _start
-start:
LDR R0,=0X56000010  //设置LED的GPIO控制寄存器GPBCON的模式为输出模式,0X56000010为GPB的控制器地址,0X00000400:知设置GPB5的端口为 输出模式是第10位和第11位为10则其余0~9位补0,得到100000000000b,换算为十六进制则为0X00000400
MOV R1,#0X00000400
STR R1,[R0]
LDR R0,=0X56000014//0X56000014:GPBDAT寄存器地址,0X00000000:拉低GPB口的电压
MOV R1,#0X00000000
STR R1,[R0]
MAIN_LOOP://循环
B MAIN_LOOP

Makefile文件

led_on.bin:led_on.S
arm-linux-gcc -g -c -o led_on.o led_on.S
arm-linux-ld -Ttext 0x00000000 -g led_on.o -o led_on_elf
arm-linux-objcopy -o binary -S led_on_elf led_on.bin
clean:
rm -f led_on.bin led_on_elf *.o

编译:

利用samba服务上传,通过终端进入上传文件,编译命令make

生成led_on.bin文件

测试:

下载到开发板,可以按照手册上的下载到内存运行,即在nor flash模式下启动,打开window终端和DNW下载led_on.bin

总结:万事开头难,这样简单的程序对那些高手而言可能不值一提,但是对于初学者来说真的步步维艰,希望这样的分析,为自己的学习做个记录,也为大家提供个参照

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐