×
单片机 > 单片机程序设计 > 详情

jz2440裸板开发之GPIO:点亮一个led灯(1)

发布时间:2024-05-19 发布时间:
|

实验目的:点亮一个led灯。(使用arm汇编指令)


实验原理:


在这里点亮一个nLED_2,其对用的引脚是GPF5,在GPIO中,每个引脚对有配置寄存器和数据寄存器,对于本例其配置寄存器为GPFCON:0x56000050,和数据寄存器GPFDATA:0x56000054.要设置GPF5(GPF5为GPFCON的第十和十一引脚,【11,10】=01时为输出)为输出引脚,并根据电路原理图,可知是设为低电平,才能点亮LED2.所以[0x56000050]=0x00000400). [0x56000054]=0x00000000


实验步骤:


在linux下编辑源程序,然后利用自己编写的Makefile来对源程序的编译和链接生成bin文件,最后通过文件传输到window下,利用板子里nor flash中的u-boot烧写 到 nandflash。再利用window下的dnw下载到板子里面.最后重启板子,对板子设为nand flash启动,运行程序,观察效果。


实验工具:远程登录开发板jz2440工具:SecureCRT 5.2、 实现linux和window文件共享工具SSH Secure File Trsanfer Client


编译工具:linux下的交叉编译链(即编写一个makefile文件来对文件进行编译连接)



实验代码:源程序:led_on.S 和Makefile


led_on.S编写如下:


.text

.global _start

_start:

ldr R0,=0x56000050

mov R1,#0x00000400

str R1,[R0]

ldr R0,=0x56000054

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 0x0000000 -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


注意事项:看过原理图之后吧,然后才去看数据手册,找到寄存器对应的地址。例如寄存器GPFCON的地址。一定要保证寄存器的地址正确!



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会