C语言程序实验.doc_第1页
C语言程序实验.doc_第2页
C语言程序实验.doc_第3页
C语言程序实验.doc_第4页
C语言程序实验.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一 实验目的 通过实验了解使用ADS 1.2 编写C 语言程序,并进行调试。二 实验设备 硬件:PC 机 一台软件: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 为0x40000000,RW Base 为0x40003000。设置调试入口地址Image entry point 为0x40000000。(4)设置位于开始位置的起始代码段,如图2.14 所示。图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 LOOP0LOOP1 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 程序会运行出错吗? 答:作用是启动代码,初始化C 程序的运行环境,然后进入C 程序代码运行C程序。如果没有Startup.S文件,C程序不能运行,因为没

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论