版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广东岭南职业技术学院实训中心制《嵌入式系统技术》实训报告学期:日期:实训场所:二级学院信息工程学院班级姓名学号实验题目实训五、C语言控制LED灯(走马灯)1、实验目的z 熟悉ADS开发环境调试环境。z 掌握简单的M汇编指令的使用方法。z 掌握S3C2440A的IO控制寄存器的配置。z 掌握M汇编指令和C语言相互调用的方法2、实验设备z PC机、ARM仿真器、2440实验箱、串口线。3、实验内容z 熟悉M开发环境的建立。z 使用M汇编和C语言设置GPIO的相应寄存器。z 编写跑马灯程序。4、实验原理C程序与汇编程序相互调用规则为了使单独编译的C语言程序和汇编程序之间能够相互调用必须为子程序间的调用规定一定的规则。TPS,即ARM,Thub过程调用标准(AMhubPrdrelldr)是ARM程序和Thumb程序中子程序调用的基本规则它规定了一些子程序间调用的基本规则如子程序调用过程中的寄存器的使用规则堆栈的使用规则参数的传递规则等。下面结合实际介绍几种ATPS规如果读者想了解更多的规则可以查看相关的书籍。.基本ATPCS基本ATPCS规定了在子程序调用时的一些基本规则,包括下面3方面的内容:(1)各寄存器的使用规则及其相应的名称。(2)数据栈的使用规则。(3)参数传递的规则。相对于其它类型的ATPCS满足基本ATPCS的程序的执行速度更快所占用的内存更少。但是它不能提供以下的支持:ARM程序和Thumb程序相互调用,数据以及代码的位置无关的支持,子程序的可重入性,数据栈检查的支持。而派生的其他几种特定的TPS就是在基本TPS的基础上再添加其他的规则而形成的。其目的就是提供上述的功能。.寄存器的使用规则寄存器的使用必须满足下面的规则:(1) 子程序间通过寄存器R0~R3来传递参数这时寄存器R0~R3可以记作A0~A3。被调用的子程序在返回前无需恢复寄存器R0~R3的内容。(2) 在子程序中,使用寄存器R4~Rll来保存局部变量。这时,寄存器R4~R11可以记作V1~V8如果在子程序中使用到了寄存器V1~V8中的某些寄存器子程序进入时必须保存这些寄存器的值在返回前必须恢复这些寄存器的值对于子程序中没有用到的寄存器则不必进行这些操作。在Thumb程序中,通常只能使用寄存器R4~R7来保存局部变量。(3) 寄存器R12用作子程序间scratch寄存器记作IP在子程序间的连接代码段中常有这种使用规则。(4)寄存器R13用作数据栈指针记作SP在子程序中寄存器R13不能用作其他用途。寄存器SP在进入子程序时的值和退出子程序时的值必须相等。(5)寄存器R14称为连接寄存器记作LR它用于保存子程序的返回地址如果在子程序中保存了返回地址,寄存器R14则可以用作其他用途。() 寄存器5是程序计数器,记作P。它不能用作其他用途。.参数传递规则根据参数个数是否固定可以将子程序分为参数个数固定的(nonvariadic)子程序和参数个数可变的(variadic)子程序。这两种子程序的参数传递规则是不同的。()参数个数可变的子程序参数传递规则对于参数个数可变的子程序,当参数不超过4个时,可以使用寄存器R0~R3来传递参数;当参数超过4个时,还可以使用数据栈来传递参数。在参数传递时将所有参数看作是存放在连续的内存字单元中的字数据然后次将各字数据传送到寄存器R0、R1、R2、R3中,如果参数多于4个,将剩余的字数据传送到数据栈中入栈的顺序与参数顺序相反即最后一个字数据先入栈按照上面的规则一个浮点数参数可以通过寄存器传递也可以通过数据栈传递也可能一半通过寄存器传递另一半通过数据栈传递。(2)参数个数固定的子程序参数传递规则对于参数个数固定的子程序,参数传递与参数个数可变的子程序参数传递规则不同。7、实验程序实现7.1利用C语言实现跑马灯程序*** d_s_.c */*C语言函数*//*定义端口寄存器*/#definerGPBCON(*(volatileunsigned*)0x56000010)//PortBcontrol#definerGPBDAT(*(volatileunsigned*)0x56000014)//PortBdata#definerGPBUP(*(volatileunsigned*)0x56000018)//Pull-upcontrolB/*延迟程序*/externvoiddelay(inttimes);/*主程序*/voidxmain(void){rGPBCON=(rGPBCON&~(0xff<<10))|(0x55<<10);//GPB5-8setoutputrGPBUP=(rGPBUP&~(0xf<<5))|(0xf<<5);//disableGPBpullupwhile(1){rGPBDAT=(rGPBDAT|(0xf<<5))&(~(0x1<<7));//GPB7output0delay(0x5000000);//调用汇编语言编写的延时程序rGPBDAT=(rGPBDAT|(0xf<<5))&(~(0x1<<8));//GPB8output0delay(0x5000000);//调用汇编语言编写的延时程序0rGPBDAT=rGPBDAT&~(0x3<<7);//GPB7-8output0delay(0x5000000);//调用汇编语言编写的延时程序rGPBDAT=rGPBDAT|(0x3<<7);//GPB7-8output1delay(0x5000000);//调用汇编语言编写的延时程序}}7.2ARM汇编指令编写的延时程序*** ls */EXPORTdelayAREADELAY,CODE,READONLY ;该伪指令定义了一个代码段,段名为Init,属性只读;下面是延迟子程序delaysubr0,r0,#1 ;r0=r0-1cmpr0,#0x0 ;将r0的值与0相比较bnedelay ;比较的结果不为0(r0不为0),继续调用delay,否则执行下一条语句movpc,lr ;返回END ;程序结束符8、实验步骤. 连接好实验环境将仿真器的一端通过并口连接到PC机仿真器的另一端通过JAG线连接到的JAG接口。. 将串口线一端接到PC机另一端接到的COM1接,打开串口超级终端dn.ex,设置串口adae为120,选择M。. 打开Sorrr在ADSCoderrior中建立实验工程LED1.mcp对工程进行编译。4. 重起,实验箱会自动执行sh中的IS程序打开dn.exe超级终端。5. 在w中,输入“,选择“USBdwnloadfil,在PC上安装USB驱动。6. 点击“BPt”“Tamt”选择LED1目录下的可执行映象文件LED
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度特色餐厅厨师团队合作协议书4篇
- 2024珠宝首饰买卖合同
- 2025年昆山物业费调价与新收费标准全面合同2篇
- 2025年河南郑州热力集团有限公司招聘笔试参考题库含答案解析
- 2025年湖南华菱线缆股份有限公司招聘笔试参考题库含答案解析
- 2025年度家庭保姆雇佣与家庭生活美学合同4篇
- 2025年消防工程总承包与应急响应服务合同
- 2025年社区宣传栏制作及公益广告投放合同3篇
- 二零二五版定制门窗设计研发与市场推广合同4篇
- 湛江科技学院《语言基础》2023-2024学年第一学期期末试卷
- T-SDLPA 0001-2024 研究型病房建设和配置标准
- (人教PEP2024版)英语一年级上册Unit 1 教学课件(新教材)
- 全国职业院校技能大赛高职组(市政管线(道)数字化施工赛项)考试题库(含答案)
- 2024胃肠间质瘤(GIST)诊疗指南更新解读 2
- 光储电站储能系统调试方案
- 2024年二级建造师继续教育题库及答案(500题)
- 小学数学二年级100以内连加连减口算题
- 建设单位如何做好项目管理
- 三年级上递等式计算400题
- 一次性餐具配送投标方案
- 《中华民族多元一体格局》
评论
0/150
提交评论