s3c新2410基础实验教本.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
s3c新2410基础实验教本

实验 1 ARM 汇编指令实验 1、实验目的: 熟悉 ADS 开发环境和 wiggler 调试环境。 掌握简单的 ARM 汇编指令的使用方法。 2、实验设备 PC 机、JTAG 调试板、S3C2410 开发板。 3 、实验内容 熟悉 ARM 开发环境的建立。 使用 ARM 汇编指令设置 GPIO 口的相应寄存器,控制LED 灯的亮灭。 4、实验原理 下面介绍本实验用到的一些汇编指令。 1).LDR/STR 指令 说明:LDR/STR 指令用于加载/存储寄存器。举例说明: 示例: LDR r3,[r0],#4 //从 r0 表示的地址中读取数据分别存放到 r3 中,然后将r0 加 4 。 STR r3, [r1],#4 //将 r3 中的数据保存到r1 表示的地址中,然后将 r1 加 4 。 LDMIA/STMIA 指令 说明:LDM/STM 指令用于加载/存储多个寄存器,举例 示例: LDMIA r0 !,{r4r11}//从 r0 表示的地址中顺利取出 8 个字数据分别存放到 r4 -r11 中。 2 ).程序分支指令 B 指令 说明:B 指令为 ARM 的分支指令,将引起处理器转移到制定标号处执行。 示例: B Label //处理器转移到 Label 标号处执行 BEQ stop//Z 标记置位,则跳转到 stop 标号处执行;否则继续下一条指令 BNE octcopy//Z 标记清 0,则跳转到 octcopy 标号处执行;否则继续下一条指令 3 ).其他指令 SUBS 说明:该指令有 SUB 指令加上 S 后缀组成,S 后缀标志根据执行结果更新条件标志码。 示例: SUBS r3,r3 ,#1//如果 r3 等于 0,则Z 位清 0 MOVS 指令 说明:该指令由 MOV 指令加上后缀 S 组成,S 后缀标志根据执行结果更新条件标志码。 1 示例: MOVS r3 ,r2 ,LSB #3//将 r2 右移 3 位即除以 8,然后赋值给r3 。 5、实验相应寄存器说明 GPFCON-端口配置寄存器。 GPFDAT-端口数据寄存器 GPFUP-端口上拉电阻使能寄存器 6、实验电路图 2 7.实验程序实现 利用 ARM 汇编语言实现跑马灯程序 /* asm.s */ GPFCON EQU 0 GPFDAT EQU 0 GPFUP EQU 0 EXPORT LEDTEST AREA LEDTESTASM,CODE,READONLY ;该伪指令定义了一个代码段,段名为LEDTESTASM,属性只读 LEDTEST ;设置GPF4-GPF7为output ldr r0,=GPFCON ldr r1,=0x5500 str r1,[r0] ;禁止GPF4-GPF7端口的上拉电阻 ldr r0,=GPFUP ldr r1,=0xff00 str r1,[r0] ;将数据端口F的数据寄存器的地址赋值给寄存器r2 ldr r2,=GPFDAT ;跑马灯循环 ledloop1 ldr r1,=0xf0 str r1,[r2] ;使GPF7输出高电平,D9-D12灯会灭 bl delay1 ;调用延迟子程序 ledloop2 ldr r1,=0x0 str r1,[r2] ;使GPE7输出低电平 D9-D12灯亮

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档