嵌入式Linux-JZ2440-02课 GPIO口实验

2019-07-12 18:14发布

1:硬件部分连接图
这里写图片描述
2:对应到芯片上的连接图
这里写图片描述 比如我们要控制LED1,根据硬件逻辑是:
GPF4引脚输出1(高电平):LED1灯灭。
GPF4引脚输出0(低电平):LED1电亮。
3、如何让引脚输出高/低电平?
(1)配置引脚功能
(2)输出引脚:写值到某个寄存器; 输入引脚:读寄存器的值。
4:查看数据手册设置相应的寄存器,配置引脚
这里写图片描述
这里写图片描述 这里要用到GPF组的寄存器:
GPFCON寄存器:用来配置引脚的功能;
GPFDAT:引脚的值。 5:看下对应的汇编代码重点内容 @****************************************************************************** @ File:led_on.S @ 功能:LED点灯程序,点亮LED1 @****************************************************************************** .text .global _start _start: LDR R0,=0x56000050 @ R0设为GPFCON寄存器。此寄存器 @ 用于选择端口B各引脚的功能: @ 是输出、是输入、还是其他 MOV R1,#0x00000100 STR R1,[R0] @ 设置GPF4为输出口, 位[8:7]=0b01 LDR R0,=0x56000054 @ R0设为GPBDAT寄存器。此寄存器 @ 用于读/写端口B各引脚的数据 MOV R1,#0x00000000 @ 此值改为0x00000010, @ 可让LED1熄灭 STR R1,[R0] @ GPF4输出0,LED1点亮 MAIN_LOOP: B MAIN_LOOP 6:Linux下我们需要重点关注的是Makefile重点内容**
Makefile led_on.bin : led_on.S arm-linux-gcc -g -c -o led_on.o led_on.S #-g:加入调试信息 -c只编译不连接 arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf #-Ttext 0x0000000:指定代码段地址0. arm-linux-objcopy -O binary -S led_on_elf led_on.bin #-O:使用指定格式来输出文件 # binary:二进制的 -S:不从源文件复制重定位信息和符号信息到目标文件中去 clean: rm -f led_on.bin led_on_elf *.o 这是一篇简单了解Makefile的文章 可以看看简谈Makefile与交叉编译工具链 7:通过DNW把.bin文件烧写到S3C2440的NAND FLASH中
观察现象:灯亮