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

实验目的:点亮一个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的地址。一定要保证寄存器的地址正确!


                 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值