您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页嵌入式实验3 C语言程序实验

嵌入式实验3 C语言程序实验

来源:华佗健康网
专业班级:

学号: 姓名:

嵌 入 式 技 术 实 验 报 告

实验项目名称: 2.8 C语言程序实验 实验日期: 2012年10月9日 实验成绩: 实验评定标准: 1)实验程序是否正确 A( )B( )C( ) 2)实验仿真、结果及分析是否合理 A( )B( )C( ) 3)实验报告是否按照规定格式 一、 实验目的:

通过实验了解使用ADS 1.2编写C语言程序,并进行调试。

A( )B( )C( ) 二、 实验器材:

硬件:PC机 一台

z 软件:Windows98/XP/2000系统,ADS 1.2集成开发环境

三、 实验内容(实验过程):

编写一个汇编程序文件和一个C程序文件。汇编程序的功能是初始

化堆栈指针和初始化C程序的运行环境,然后调跳转到C程序运行,这就是一个简单的启动程序。C程序使用加法运算来计算1+2+3+...+(N-1)+N的值(N>0)。

四、实验步骤:

(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)设置位于开始位置的起始代码段;

(5)编译链接工程,选择【Project】->【Debug】,启动AXD进行软件仿真调试;

(6)在Startup.S的“B Main”处设置断点,然后全速动行程序;

(7)程序在断点处停止。单步运行程序,判断程序是否跳转到C程序中运行;

(8)选择【Processor Views】->【Variables】)打开变量观察窗口,观察全局变量的值,单步/全速运行程序,判断程序的运算结果是否正确。

五、实验程序:

C语言实验参考程序: #define uint8 unsigned char #define uint32 unsigned int #define N 100 uint32 sum;

// 使用加法运算来计算1+2+3+...+(N-1)+N的值。(N>0) void Main(void) { uint32 i; sum = 0;

for(i=0; i<=N; i++) { sum += i; }

while(1);}

简单的启动代码

; 启动文件。初始化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只是一个标号

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务