实验目的:点亮一个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的地址。一定要保证寄存器的地址正确!
设计资源 培训 开发板 精华推荐
- CH340最小的USB转UART!没有之一!!!
- SI4731-DEMO,使用 SI4703 数字收音机调谐器的演示板
- DC991A,使用 LT5560EDD 低功率下变频混频器的演示板,RFin = 660-1150MHz,IFout = 90-190M
- 适用于STPA001,STPA003,STPA008,TDA7851A,TDA7850A和TDA7388A的EVAL-TDA785x评估板
- LTC6990IS6#TRMPBF 超声波扫频发生器的典型应用
- 通过 I2C 接口对数字电源设备进行电源配置和编程
- A21SP16 3W 免滤波器 D 类音频功率放大器的典型(双差分输入)应用
- FRDM-GD3100EVM: 面向GD3100的半桥评估板
- LTC1760 双路智能电池充电器简化了服务器的电池备份
- -8V, 16V DC to DC 风扇电机多路输出电源