- 84
- 0
- 约3.29千字
- 约 6页
- 2020-10-15 发布于河北
- 举报
《嵌入式系统技术》实训报告
学期: 日期: 实训场所:
二级学院
信息工程学院
班级
姓名
学号
实验题目
实训五、C语言控制LED灯(走马灯)
1、 实验目的
z 熟悉ADS开发环境调试环境。
z 掌握简单的ARM汇编指令的使用方法。
z 掌握S3C2440A的I/O控制寄存器的配置。
z 掌握ARM汇编指令和C语言相互调用的方法
2、 实验设备
z PC机、ARM仿真器、2440实验箱、串口线。
3、 实验内容
z 熟悉ARM开发环境的建立。
z 使用ARM汇编和C语言设置GPIO 口的相应寄存器。 z 编写跑马灯程序。
4、 实验原理
c程序与汇编程序相互调用规则
为了使单独编译的 C语言程序和汇编程序之间能够相互调用,必须为子程序间的调用 规定一定的规贝农ATPCS即ARM Thumb过程调用标准(ARM/Thumb Procedure Call Standard),是ARM程序和Thumb程序中子程序调用的基本规则, 它规定了一些子程序
间调用 的基本规则,如子程序调用过程中的寄存器的使用规则, 堆栈的使用规则,参数的
传递规则等。
下面结合实际介绍几种 ATPCS规则,如果读者想了解更多的规则,可以查看相关的书
籍
籍。
基本 ATPCS
基本ATPCSS定了在子程序调用时的一些基本规则,包括下面 3方面的内容:
各寄存器的使用规则及其相应的名称。
数据栈的使用规
则。 (3) 参数传递的
规则。
相对于其它类型的ATPCS满足基本ATPCS勺程序的执行速度更快,所占用的内存更少。 但是它不能提供以下的支持: ARM程序和Thumb程序相互调用, 数据以及代码的位置无关 的支持,子程序的可重入性,数据栈检查的支持。
而派生的其他几种特定的 ATPCS就是在基本ATPCS的基础上再添加其他的规则而形 成 的。其目的就是提供上述的功能。
2. 寄存器的使用规则
寄存器的使用必须满足下面的规则:
子程序间通过寄存器 R0?R3来传递参数。这时,寄存器R0?R3可以记作A0?A3。
被调用的子程序在返回前无需恢复寄存器 R0?R3的内容。
在子程序中,使用寄存器R4?RII来保存局部变量。这时,寄存器R4?R11可以 记作V1?V如果在子程序中使用到了寄存器 V1?V8中的某些寄存器,子程序进入时必须 保存这些寄存器的值, 在返回前必须恢复这些寄存器的值; 对于子程序中没有用到的寄存
器则不必进行这些操作。在Thumb程序中,通常只能使用寄存器F4?R7来保存局部变量。
寄存器R12用作子程序间scratch寄存器,记作I P。在子程序间的连接代码段中 常有这种使用规则。
寄存器R13用作数据栈指针,记作SP。在子程序中寄存器R13不能用作其他用途。 寄存器SP在进入子程序时的值和退出子程序时的值必须相等。
寄存器R14称为连接寄存器,记作LF。它用于保存子程序的返回地址。 如果在
子程序中保存了返回地址,寄存器R14则可以用作其他用途。
寄存器R15是程序计数器,记作 PC。它不能用作其他用途。
3. 参数传递规则 根据参数个数是否固定可以将子程序分为参数个数固定的
(nonvariadic) 子程序和参数
个数可变的 (variadic) 子程序。这两种子程序的参数传递规则是不同 的。
参数个数可变的子程序参数传递规则
对于参数个数可变的子程序, 当参数不超过4个时,可以使用寄存器R0?R3来传递参
数;当参数超过 4个时,还可以使用数据栈来传递参数。
在参数传递时, 将所有参数看作是存放在连续的内存字单元中的字数据。 然后,依次 将各字数据传送到寄存器 R0、R1、R2、R3中,如果参数多于4个,将剩余的字数据传送 到数 据栈中, 入栈的顺序与参数顺序相反, 即最后一个字数据先入栈。 按照上面的规则, 一个浮 点数参数可以通过寄存器传递, 也可以通过数据栈传递, 也可能一半通过寄存器 传递,另一 半通过数据栈传递。
参数个数固定的子程序参数传递规则 对于参数个数固定的子程序, 参数传递与 参数个数可变的子程序参数传递规则不同。
如果系统包含浮点运算的硬件部件,浮点参数将按照下面的规则传
递:
?各个浮点参数按顺序处理。
?为每个浮点参数分配FP寄存器。
?分配的方法是,满足该浮点参数需要的且编号最小的一组连续的 FP寄存器。第
一 个整数参数,通过寄存器 R0?R睐传递。其他参数通过数据栈传递。
子程序结果返回规则 子程序
中结果返回的规则如下:
结果为一个32位的整数时,可以通过寄存器 R0返回。
结果为一个64位整数时,可以通过寄存器 R0和R返回,依次类推。
结果为一个浮点数时,可以通过浮点运算部件的寄存器 fO、dO或者SO来返回。
结果为复合型的浮点数(如复数)时,可以通过寄存器fO?fN或者dO?dN
您可能关注的文档
- 高考英语适应性训练.docx
- 高三数学分布列和期望.docx
- 高三艺术生高中数学基本知识汇编含答案.docx
- 高一生物必修一期末考试.docx
- 高一数学公式大全.docx
- 高中非谓语动词讲解-终极配视频版.docx
- 个体工商户定额核定审批表.docx
- 个体工商户申请表格整套.docx
- 各种叉车参数性能配置表.docx
- 公司组织结构以及人员工资待遇情况统计表.docx
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
原创力文档

文档评论(0)