嵌入式系统设计 嵌入式裸机开发 裸机实验.doc

嵌入式系统设计 嵌入式裸机开发 裸机实验.doc

  1. 1、本文档共98页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

您可能关注的文档

文档评论(0)

WanDocx + 关注
实名认证
内容提供者

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档