- 1、本文档共98页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
?广东农工商职业技术学院机电系
PAGE 98
S5PV210裸机实验
实验一:汇编点亮 LED
2.1.1 查阅原理图
GEC210实验箱上提供了4个可编程用户 LED,原理图如下:
可见,LED1,2,3,4 分别使用的 CPU 端口资源为 GPJ2_0,1,2,3
我们通过对CPU的GPIO编程,I/O输出低电平则LED灯亮,输出高电平,则LED灯灭。
2.1.2 程序相关讲解
源码对应目录1-led_s
1. start.S
由原理图可知,点亮 GEC210 的 4 个 LED 需如下 2 个步骤:
第一步: 设置寄存器 GPJ2CON,使 GPJ2_0/1/2/3 四个引脚为输出功能;
第二步: 往寄存器 GPJ2DAT 写 0,使GPJ2_0/1/2/3四个引脚输出低电平, 4个LED会亮;相反,
往寄存器 GPJ2DAT 写 1,使 GPJ2_0/1/2/3 四个引脚输出高电平,4 个 LED 会灭;
以上两个步骤即为start.S中的核心内容,start.S里面涉及的汇编指令请自行学习GNU汇编指令集,这里不再进行赘述。
2. Makefile
代码如下:
led.bin: start.o
arm-linux-ld -Ttext 0-o led.elf $^
arm-linux-objcopy -O binary led.elf led.bin
arm-linux-objdump -D led.elf led_elf.dis
%.o : %.S
arm-linux-gcc -o $@ $ -c
clean:
rm *.o *.elf *.bin
关于 Makefile 网上的相关资料相当多,这里推荐《跟我一起写 makefile》,以方便用
户后续的学习和查阅,下面我们只是进行粗略地讲解 Makefile。 当用户在 Makefile 所在目录下执行 make 命令时,系统会进行如下操作:
第一步 执行 arm-linux-gcc -o $@ $ -c 命令将当前目录下存在的汇编文件和 C 文件编译成.o文件;
第二步 执行 arm-linux-ld -Ttext 0 -o led.elf $^将所有.o 文件链接成 elf 文件,-Ttext 0示程序的运行地址是0由于目前我们编写的代码是位置无关码, 所以程序能在任何一个地址上运行;
第三步 执行 arm-linux-objcopy -O binary led.elf led.bin 将 elf 文件抽取为可在开发板上
运行的 bin 文件;
第四步 执行 arm-linux-objdump -D led.elf led_elf.dis 将 elf 文件反汇编后保存在 dis 文
件中,调试程序时可能会用到;
2.1.3 编译代码和烧写运行
具体烧写和运行方法参考第一章
2.1.4实验现象
LED 正常闪烁,这说明我们的第一个程序汇编点亮所有 LED 已经成功。
代码如下
.globl _start
_start:
// 设置GPJ2CON的bit[0:15],配置GPJ2_0/1/2/3引脚为输出功能
ldr r1, =0xE0200280
ldr r0, =0 str r0, [r1]
mov r2, #0x1000
led_blink:
// 设置GPJ2DAT的bit[0:3],使GPJ2_0/1/2/3引脚输出低电平,LED亮
ldr r1, =0xE0200284
mov r0, #0
str r0, [r1]
// 延时
bl delay
// 设置GPJ2DAT的bit[0:3],使GPJ2_0/1/2/3引脚输出高电平,LED灭
ldr r1, =0xE0200284
mov r0, #0xf
str r0, [r1]
// 延时
bl delay
sub r2, r2, #1
cmp r2,#0
bne led_blink
halt:
b halt
delay:
mov r0, #0xf00000
delay_loop:
cmp r0, #0
sub r0, r0, #1
bne delay_loop
mov pc, lr
实验二:调用C函数
2.2.1 查阅原理图
GEC210实验箱上提供了4 个可编程用户 LED,原理图如下:
可见,LED1,2,3,4 分别使用的 CPU 端口资源为 GPJ2_0,1,2,3
2.2.2 实验相关寄存器
GPJ2C
您可能关注的文档
- 汽车基础课程 汽车底盘构造与维修 附件三:汽车底盘构造与维修自编教材.docx
- 汽车技术发展新形态 汽车技术发展新形态 智能网联汽车与自动驾驶.docx
- 汽车零部件识图 装配图内容及表达、识读方法和步骤 识读装配图-学生工作页.doc
- 汽车美容与装饰 漆面美容护理工具及设备使用 漆面美容护理工具及设备 电子教案.doc
- 汽车商务礼仪 2.4.4 行走姿态 2.4.4 行走姿态.doc
- 汽车商务礼仪 2.4.5 手势姿态 2.4.5 手势姿态.doc
- 汽车商务礼仪 三 汽车商务展厅销售礼仪、握手 3.1.3 握手.doc
- 汽车舒适系统(旧) 汽车空调采暖系统故障检修 空调的采暖系统的检修学习手册.doc
- 汽车维护(旧) 学生手册 学习情境1新车交付检验.doc
- 汽车维护(旧) 学生手册 学习情境3.2车辆油液维护.doc
文档评论(0)