mini2440之汇编点亮一个LED


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

创建汇编文件led_on.S

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

Makefile文件

  1. led_on.bin:led_on.S 
  2. arm-linux-gcc -g -c -o led_on.o led_on.S 
  3. arm-linux-ld -Ttext 0x00000000 -g led_on.o -o led_on_elf 
  4. arm-linux-objcopy -o binary -S led_on_elf led_on.bin 
  5. clean: 
  6. rm -f led_on.bin led_on_elf *.o 

编译:

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

生成led_on.bin文件

测试:

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

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

相关内容