- 41
- 0
- 约2.01千字
- 约 4页
- 2017-05-12 发布于河南
- 举报
ARM实验三
一.实验目的
通过实验了解使用ADS 1.2 编写C 语言程序,并进行调试。
二.实验设备
(1)硬件:PC 机 一台
(2)软件:Windows98/XP/2000 系统,ADS 1.2 集成开发环境
三.实验内容
编写一个汇编程序文件和一个C 程序文件。汇编程序的功能是初始化堆栈指针和初始化C 程序的运行环境,然后调跳转到C 程序运行,这就是一个简单的启动程序。C 程序使用加法运算来计算1+2+3+...+(N-1)+N 的值(N0)。
四.实验预习要求
(1)仔细阅读参考文献[1]第4 章ARM 指令系统的内容。
(2)仔细阅读产品光盘附带文档《ADS 集成开发环境及仿真器应用》或其它相关资料,了解ADS 工程编辑和AXD 调试的内容。(本实验使用软件仿真)。
五.实验步骤
(1)启动ADS 1.2,使用ARM Executable Image 工程模板建立一个工程ProgramC。
(2)建立源文件Startup.S 和Test.c,编写实验程序,然后添加到工程中。
(3)设置工程链接地址RO Base 为0RW Base 为0设置调试入口地址Image entry point 为0
(4)设置位于开始位置的起始代码段,如图2.14 所示。
(5)编译链接工程,选择【Project】-【Debug】,启动AXD 进行软件仿真调试。
(6)在Startup.S 的“B Main”处设置断点,然后全速动行程序。
(7)程序在断点处停止。单步运行程序,判断程序是否跳转到C 程序中运行。
(8)选择【Processor Views】-【Variables】)打开变量观察窗口,观察全局变量的值,
单步/全速运行程序,判断程序的运算结果是否正确。
六.实验参考程序
C 语言实验的参考程序见程序清单2.8。汇编启动代码见程序清单2.6。
程序清单2.8 C 语言实验参考程序
#define uint8 unsigned char
#define uint32 unsigned int
#define N 100
uint32 sum;
// 使用加法运算来计算1+2+3+...+(N-1)+N 的值。(N0)
void Main(void)
{ uint32 i;
sum = 0;
for(i=0; i=N; i++)
{ sum += i;
}
while(1);
}
程序清单2.9 简单的启动代码
; 启动文件。初始化C 程序的运行环境,然后进入C 程序代码。
IMPORT |Image$$RO$$Limit|
IMPORT |Image$$RW$$Base|
IMPORT |Image$$ZI$$Base|
IMPORT |Image$$ZI$$Limit|
IMPORT Main ; 声明C 程序中的Main()函数
AREA Start,CODE,READONLY ; 声明代码段Start
ENTRY ; 标识程序入口
CODE32 ; 声明32 位ARM 指令
Reset LDR SP,=0x40003F00
; 初始化C 程序的运行环境
LDR R0,=|Image$$RO$$Limit|
LDR R1,=|Image$$RW$$Base|
LDR R3,=|Image$$ZI$$Base|
CMP R0,R1
BEQ LOOP1
LOOP0 CMP R1,R3
LDRCC R2,[R0],#4
STRCC R2,[R1],#4
BCC LOOP0
LOOP1 LDR R1,=|Image$$ZI$$Limit|
MOV R2,#0
LOOP2 CMP R3,R1
STRCC R2,[R3],#4
BCC LOOP2
B Main ; 跳转到C 程序代码Main()函数
END
七.思考
(1)在实验参考程序中,Startup.S 文件的作用是什么?如果没有Startup.S 文件,C 程序会运行出错吗?
答:Startup.S文件的作用是为上述的汇编语句提供编译的环境。如果没有这个文件,则C语言程序的运行不会出错,因为C语言程序的运行是独立的。
(2)实验程序中的Main()函数名是否可以更改为其它名字?(提示:Main 只是一个标号)
答:可以,因为Main只是一个标号,不过在程序中的每一处有关Main()的地方都必须改过来,否则就会出现错误。
八.心得体会
教师评阅意见:
签名: 年 月 日
实验成绩:
您可能关注的文档
- 2013.03vb综合题大纲1.doc
- 2013《河北教育》教学版小学语文课内阅读答案(5.25).doc
- 2013VC++期末复习材料.doc
- 2012年浙江三项考试技术试题图片质量好.doc
- 201334113952_建设工程文件归档内容一览表.doc
- 2013年二级VFP无纸化题库.doc
- 2013年太原大学经贸系电商专业JSP考试参考答案.doc
- 2013版QQ如何设置聊天窗口不显示输入法状态.doc
- 2013软件开发试卷.doc
- 2014-2015(上)计算机应用基础第三次月考检测卷.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)