搜档网
当前位置:搜档网 › 嵌入式系统原理作业李生林125145016

嵌入式系统原理作业李生林125145016

嵌入式系统原理作业李生林125145016
嵌入式系统原理作业李生林125145016

课程作业

作业题目:基于Cortex M3 的数据采集系统学院:科学技术学院

专业:计算机科学与技术

年级:2008级

学号:125145016

姓名:李生林

指导教师:李征明

E-MAIL地址:

2011年7月15日

基于Cortex M3 的数据采集系统

摘要:

数据采集是获取信号对象信息的过程。本文设计了一个基于ARM Cortex-M3处理器的数据采集系统,利用内置的丰富的外设资源,实现多路模拟输入电压信号的连续采集和顺序转换,通过RS232

串行通信将转换结果在PC接收端显示,并产生PWM方波信号,实现对现场电压信号的实时监测。

关键词:

数据采集系统;嵌入式系统:Cortex-M3微处理器

设计内容

本数据采集系统基于广州奥松电子有限公司生产的DHT11数字温湿度传感器和EXP-LM3S811板卡为基础。

代码

#include

#include

typedef unsigned char U8;

typedef unsigned int U16;

U8 code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1}; sbit P2_0 = P2^0 ; //定义传感器输入口

U8 U8FLAG,U8temp;

U8 shidu_shi,shidu_ge,wendu_shi,wendu_ge;

U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;

U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,

U8checkdata_temp;

U8 U8comdata;

void Delay(U16 z)

U8 x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void Delay_10us(void)

{

U8 i;

i--;

i--;

i--;

i--;

i--;

i--;

}

/*数据处理程序*/

void COM(void)

{

U8 i;

for(i=0;i<8;i++)

{

U8FLAG=2;

while((!P2_0)&&U8FLAG++);

Delay_10us();

Delay_10us();

Delay_10us();

U8temp=0;

if(P2_0)U8temp=1;

U8FLAG=2;

while((P2_0)&&U8FLAG++);

if(U8FLAG==1)break;

U8comdata<<=1;

U8comdata|=U8temp;

}

}

/*数码管显示程序*/

void display(U8 shidu_shi,U8 shidu_ge,U8 wendu_shi,U8 wendu_ge)

P2=0xff;

P2=0xbf;

P0=table[shidu_shi];

Delay(5);

P2=0xff;

P2=0xdf;

P0=table[shidu_ge];

Delay(5);

P2=0xff;

P2=0xfb;

P0=table[wendu_shi];

Delay(5);

P2=0xff;

P2=0xfd;

P0=table[wendu_ge];

Delay(5);

}

/*数据读入子程序*/

void RH(void)

{

P2_0=0; //初始化

Delay(34);

P2_0=1; //拉高并延时等待 Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

P2_0=1;

if(!P2_0)

{

U8FLAG=2;

while((!P2_0)&&U8FLAG++);

U8FLAG=2;

while((P2_0)&&U8FLAG++);

COM();

U8RH_data_H_temp=U8comdata;

COM();

U8RH_data_L_temp=U8comdata;

COM();

U8T_data_H_temp=U8comdata;

COM();

U8T_data_L_temp=U8comdata;

COM();

U8checkdata_temp=U8comdata;

P2_0=1;

U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp); if(U8temp==U8checkdata_temp)

{

U8RH_data_H=U8RH_data_H_temp;

U8RH_data_L=U8RH_data_L_temp;

U8T_data_H=U8T_data_H_temp;

U8T_data_L=U8T_data_L_temp;

U8checkdata=U8checkdata_temp;

}

shidu_shi=U8T_data_H/10;

shidu_ge=U8T_data_H%10;

wendu_shi=U8RH_data_H/10;

wendu_ge=U8RH_data_H%10;

}

display(shidu_shi,shidu_ge,wendu_shi,wendu_ge);

}

void main()

{

while(1)

{

RH();

}

}

1、传感器性能说明

2、接口说明:

建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合

适的上拉电阻

3、电源引脚

DHT11的供电电压为3-5.5V。传感器上电后,要等待 1s 以越过不稳定状

态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的

电容,用以去耦滤波。

4、串行接口(单线双向)

DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一

次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小

数部分用于以后扩展,现读出为零.操作流程如下:

一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit 湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式

《嵌入式系统原理》课程作业

转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集, 用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集, 如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。

1.通讯过程如图1所示

图1

总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必

须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,

等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切

换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。

图2

总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉

高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定

了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有

响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线

50us,随后总线由上拉电阻拉高进入空闲状态。

数字0信号表示方法如图4所示

《嵌入式系统原理》课程作业

图4 数字1信号表示方法.

图5

5、测量分辨率

测量分辨率分别为 8bit(温度)、8bit(湿度)。

6、电气特性

VDD=5V,T=25℃,除非特殊标注

参数条件min typ max单位

供电DC35 5.5V

供电电流测量0.5 2.5mA

平均0.21mA

待机100150uA

采样周期秒1次

注:采样周期间隔不得低于1秒钟。

7、DHT11引脚说明

Pin名称注释

1VDD供电 3-5.5VDC

2DATA串行数据,单总线

3NC空脚,请悬空

4GND接地,电源负极

8、焊接信息

手动焊接,在最高260℃的温度条件下接触时间须少于10秒。

9、注意事项

(1)避免结露情况下使用。

(2)长期保存条件:温度10-40℃,湿度60%以下。

参考文献

1.黄锡珉液晶器件手册1992

https://www.sodocs.net/doc/198526941.html,li-Degree;Jha C M;Bald G;Melamud,R CmosCompatible Dual-Resonator MEMS Temperature Sensor

with Accuracy 2007

3.胥静嵌入式系统设计与开发实例详解2005

4.陈赜ARM嵌入式计数实践教程2005

5.马忠梅《ARM Cortex微控制器教程》(北京航空航天大学出版社)

6.周立功ARM嵌入式系统软件开发实例2005

7.田泽嵌入式系统开发与应用2004

8.周立功ARM嵌入式系统基础教程2005

9.期刊论文基于嵌入式系统的智能数据采集系统- 青岛科技大学学报(自然科学版)-

2004, 25(6)

10.张素文;项希基于ARM的温度采集与显示系统的设计[期刊论文] -自动化技术与应用2

嵌入式系统设计大作业

嵌入式系统设计大作业 学号:14020520009 姓名:罗翔 1、叙述JTAG接口在嵌入式开发中的作用。 答: (1)用于烧写FLASH 烧写FLASH的软件有很多种包括jatg.exe fluted flashpgm等等,但是所有这些软件都是通过jtag接口来烧写flash的,由于pc机上是没有jtag接口的,所以利用并口来传递信息给目标板的jtag接口。所以就需要并口转jtag接口的电路。 (2)用于调试程序 同时应该注意到jtag接口还可以用来调试程序。而调试程序(如ARM开发组件中的AXD)为了通过jtag接口去调试目标板上的程序,同样是使用pc的并口转jtag接口来实现与目标板的通信。这样,并口转jtag接口的电路就有了两种作用。 (3)仿真器 根据(1)和(2)的总结,并口转jtag接口的电路是两种应用的关键,而这种电路在嵌入式开发中就叫仿真器。并口转jtag接口的电路有很多种,有简单有复杂的,常见的仿真器有Wigger,EasyJTAG,Multi-ICE等。这些所谓的仿真器的内部电路都是并口转jtag接口,区别只是电路不同或使用的技术不同而已。 2、叙述嵌入式平台的搭建过程,以linux为例。 答: 1) 一:建立宿主机开发环境 建立交叉编译的环境即在宿主机上安装与开发板相应的编译器及库函数,以便能够在宿主机上应用开发工具编译在目标板上运行的Linux引导程序,内核,文件系统和应用程序 交叉编译:在特殊的环境下,把嵌入式程序代码编译成不同的CPU所对应的机器代码。

开发时使用宿主机上的交叉编译,汇编及链接工具形成可执行的二进制代码(该代码只能在开发板上执行),然后下载到开发板上运行 2) 下载和安装arm-Linux-gcc编译工具链下载最新的arm-Linux-gcc并解压至当前目录下 在系统配置文件profile中设置环境变量方法:直接在profile文件中加入搜索路径立即使新的环境变量生效:运行source命令,检查是否将路径加入到path,测试是否安装成功, 编译程序,测试交叉工具链 3) 配置超级终端minicom minicom是宿主机与目标板进行通信的终端:在宿主机Linux终端中输入:minicom-s或输入minicom然后按ctrl+A+O对超级终端minicom进行配置,再选择串口并配置串口,最后保存即可 4) 建立数据共享服务:NFS服务是Linux系统中经常使用的数据文件共享服务 5) 编译嵌入式系统内核:内核配置,建立依存关系,建立内核 6) 制作文件系统 3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品? 体系结构是什么? S3C2410X基于ARM的Sumsang; XscalePXA255/PXA270基于ARM的Intel; 摩托罗拉MC基于68k; Power 601基于Power PC; MIPS32Kc基于MIPS 4、现今较流行的嵌入式操作系统有哪些? 答: (1) VxWorks (2)wince (3)linux (4)android

嵌入式系统原理与应用习题解析

1.8 练习题P14 1.选择题 (1)A 说明:嵌入式系统的发展趋势表现在以下几方面: 1.产品种类不断丰富,应用范围不断普及 2.产品性能不断提高 3.产品功耗不断降低,体积不断缩小 4.网络化、智能化程度不断提高 5.软件成为影响价格的主要因素 (2)D

说明:常见的嵌入式操作系统: VxWorks,Windows CE、uC/OS-II和嵌入式Linux。 (3)A 说明:VxWorks是美国WindRiver公司于1983年开发的一种32位嵌入式实时操作系统。 2.填空题 (1)嵌入式计算机 (2)微处理器外围电路外部设备 (3)板级支持包实时操作系统应用编程接口应用程序 (4)嵌入式处理器微控制器数字信号处理器 3.简答题 (1)简述嵌入式系统的定义和特点 答:定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 特点:专用性强、实时性好、可裁剪性好、可靠性高和功耗低等。(2)简述计算机系统的发展历程 第一阶段大致在20世纪70年代前后,可以看成是嵌入式系统的萌芽阶段; 第二阶段是以嵌入式微处理器为基础,以简单操作系统为核心的嵌入式系统; 第三阶段是以嵌入式操作系统为标志的嵌入式系统,也是嵌入式应用

开始普及的阶段; 第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。 (3)简述MCU和DSP的区别 MCU是微控制器,DSP是数字信号处理器。 MCU相当于小型的电脑,内部集成的CPU、ROM、RAM、I/O总线,所以集成度高是它的特点。 DSP是专用的信息处理器,内部的程序是对不同的机器和环境进行特别优化,所以处理速度是最快的。 2.4 练习题 1. 填空题 (1) ARM7 ARM9 ARM9E ARM10E ARM11 (2) 精简指令集计算机 (3) Samsung ARM920T IIC总线 (4) BGA 显卡布线 (5) 1.8V 3.3V (6) 8 128 1 (7) S3C2410 64MB 64MB 2. 选择题 (1) D (2)C (3)A (4)B (5)B (6)C (7)D (8)C (9)C (10)B

大作业设计报告书(嵌入式系统原理与开发)

大作业设计报告书 题目:嵌入式系统原理与开发 院(系):物联网工程学院 专业: 班级: 姓名: 指导老师: 设计时间: 10-11 学年 2 学期 20XX年5月

目录 1.目的和要求 (3) 2.题目内容 (3) 3.设计原理 (4) 4.设计步骤 (5) 4.1 交通指示灯设计 (5) 4.2 S3C44B0X I/O 控制寄存器 (6) 4.3 红绿灯过渡代码: (8) 4.4 电源电路设计 (10) 4.5 系统复位电路设计 (11) 4.6 系统时钟电路设计 (11) 4.7 JTAG 接口电路设计 (12) 4.8串口电路设计 (12) 5.引脚分类图 (13) 6.参考文献 (13)

1.目的和要求 ARM技术是目前嵌入式应用产业中应用十分广泛的先进技术,课程开设的目的在于使学生在了解嵌入式系统基础理论的前提下能够掌握ARM处理器的汇编语言和c语言的程序设计方法,掌握S3C44B0X芯片的基本硬件结构特点和接口设计方法,同时熟悉ARM开发环境,学习ARM的硬件设计和软件编程的基本方法,为今后从事相关的应用与研究打下基础。通过大作业要达到如下目的: 一、掌握ARM的开发工具使用和软件设计方法。 二、掌握ARM处理器S3C44B0X的原理和GPIO接口设计原理。 三、掌握C语言与的ARM汇编语言的混合编程方法; 四、培养学生选用参考,查阅手册及文献资料的能力。培养独立思考,深入研 究,分析问题、解决问题的能力。 五、通过课程设计,培养学生严肃认真的工作作风。 2.题目内容 题目:交通指示灯系统设计 功能描述: 1.用S3C44B0X的GPIO设计相关电路; 2.设计相关的软件并注释; 3.实现十字路口2组红、黄、绿交通灯交替显示。 编程提示: 1.交通灯可用发光二极管代替; 2.电路可部分参照实验电路; 3.时间控制可以使用软件循环编程解决。

嵌入式系统原理及应用第三章习题

第三章软件作业习题 3、将存储器中0x400000开始的200字节的数据,传送到0x400800开始的区域。 解: AREA procedure3,CODE,READONLY ENTRY CODE32 START MOV R0,#0x400000 LDR R1,=0x400800 MOV R7,#200 LOOP LDRB R2,[R0],#1 STRB R2,[R1],#1 SUBS R7,R7,#1 BNE LOOP CEASE B CEASE END 4、编写程序,比较存储器中0x400000与0x400004两无符号字数据的大小,并且将比较结果存于0x400008的字中,若两数相等其结果记为0,若前者大于后者其结果记为1,若前者小于后者其结果记为-1。解: AREA procedure4,CODE,READONLY ENTRY CODE32 START MOV R0,#0x400000 LDR R1,[R0],#4 ;取第1个数 LDR R2,[R0],#4 ;取第2个数 CMP R1,R2 ;将两个数相比较 MOVHI R1,#1 ;R1比R2大 MOVLO R1,#-1 ;R1比R2小 MOVEQ R1,#0 ;两个数相等 STR R1,[R0] CEASE

B CEASE END 5、存储器从0x400000开始的100个单元中存放着ASCII码,编写程序,将其所有的小写字母转换成大写字母,对其它的ASCII码不做变换。 解: AREA procedure5,CODE,READONLY ENTRY CODE32 START MOV R0,#0x400000 MOV R1,#0 LOOP LDRB R2,[R0,R1] CMP R2,#0x61 ;与‘a’比较 BLO NEXT ;小于转到NEXT CMP R2,#0x7B ;0x7A为‘z’ SUBLO R2, R2,#0x20 ;小于转换 STRBLO R2,[R0,R1] ;小于保存 NEXT ADD R1,R1,#1 CMP R1,#100 BNE LOOP CEASE B CEASE END 6、编写一程序,查找存储器从0x400000开始的100个字中为0的数目,将其结果存到0x400190中。 解: AREA procedure6,CODE,READONLY ENTRY CODE32 START MOV R0,#0x400000 MOV R7,#100 ;控制循环变量 MOV R1,#0 ;保存0的数目 LOOP LDR R2,[R0],#4 ;取数 CMP R2,#0 ;比较为0

孟祥莲嵌入式系统原理及应用教程部分习题答案

习题1 1. 嵌入式系统的概念的是什么?答:嵌入式系统是以应用为中心,以计算机技 术为基础,软、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。(嵌入式系统是嵌入式到对象体系中的,用于执行独立功能的专用计算机系统。) 2. 嵌入式系统的特点是什么? 答:系统内核小;专用性强;运行环境差异大;可靠性要求高;系统精简和高实时性操作系统;具有固化在非易失性存储器中的代码嵌入式系统开发和工作环境 4. 嵌入式系统的功能是什么?答:提供强大的网络服务小型化,低成本,低 功能;人性化的人机界面;完善的开发平台 5. 嵌入式系统的硬件平台由哪些部分组成?答:嵌入式系统的硬件是以嵌入式处理器为核心,由存储器I/O 单元电路,通信模块,外部设备必要的辅助接口组成的。 7. 嵌入式操作系统的主要特点是什么?答:体积小;实时性;特殊的开发调试环境。 8. 叙述嵌入式系统的分类。答:按嵌入式微处理器的位数分类可以分为4 位、 8 位、16 位、32 位和64 位等;按软件实时性需求分类可以分为非实时系统(如PDA), 软实时系统(如消费类产品)和硬实时系统(如工业实时控制系统)按嵌入式系统的复杂程度分类可以分为小型嵌入式系统,中型嵌入式系统和复杂嵌入式系统。 习题2 处理器和工作状态有哪些?

答:ARM犬态:此时处理器执行32位的的字对齐的ARS旨令。 Thumb犬态:此时处理器执行16位的,半字对齐的Thumb旨令 2.叙述ARM9内部寄存器结构,并分别说明R13 R14 R15寄存器的 作用。 答:共有37个内部寄存器,被分为若干个组(BANK,这些寄存器包括31个通用寄存器,包括程序计数器(PC指针)6个状态寄存器。R13用作堆栈指针,R14称为子程序链接寄存器,R15用作程序计数器。处理器的工作模式有哪些? 答:用户模式:ARM处理器正常的程序执行状态。 快速中断模式:用于高速数据传输或通道处理 外部中断模式:用于通用中断处理管理模式:操作系统使用的保护模式数据访问终止模式:当数据或指令预期终止时进入该模式,可用于虚拟存储器及存储保护 系统模式:运行具有特权的操作系统任务 未定义指令终止模式:当未定义的指令执行时进入该模式,可用 于支持硬件协处理器的软件仿真。 微处理器支持的数据类型有哪些? 答:ARM微处理器中支持字节(8位)、半字(16位),字(32 位)

嵌入式系统模拟试题及答案

学习中心/函授站_ 姓名学号 西安电子科技大学网络与继续教育学 院 2014学年下学期 《嵌入式系统》期末考试试题 (综合大作业) 题号一二三四五总分 题分2010302020 得分 考试说明: 1、大作业于2014年12月25日下发,2015年1月10日交回; 2、考试必须独立完成,如发现抄袭、雷同均按零分计; 3、答案须手写完成,要求字迹工整、卷面干净。 一、问题简述(每小题4分,共20分) 1、简述嵌入式系统的定义和组成结构。 答:嵌入式系统是以应用为中心,以计算机技术为基础,并软硬件可剪裁、功能、 ,可靠性、体积、重量、成本、功耗、成本、安装方式等方面符合要求的专用计算机系统。 嵌入式系统一般由嵌入式微处理器、存储与I/O部分、外设与执行部分、嵌入式软件等四个部分组成。 2、简单说明ARM微处理器的特点。 答:(1) 体积小、低功耗、低成本、高性能。 (2) 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼 容8位/16位器件。

(3) 大量使用寄存器,指令执行速度更快。 (4) 大多数数据操作都在寄存器中完成,通过Load/Store结 构在内存和寄存器之间批量传递数据。 (5) 寻址方式灵活简单,执行效率高。 (6) 指令长度固定。 3、简述嵌入式系统产品的设计和开发过程。 答:①在嵌入式系统的开发过程中,一般采用的方法是首先在通用PC机上的集成开发环境中编程;②然后通过交叉编译和链接,将程序转换成目标平台(嵌入式系统)可以运行的二进制代码;③接着通过嵌入式调试系统调试正确;④最后将程序下载到目标平台上运行。 要强调,选择合适的开发工具和调试工具,对整个嵌入式系统的开发都非常重要。 4、简述嵌入式系统设计中要考虑的因素。 答:在嵌入式系统的开发过程中,要考虑到实时性、可靠性、稳 定性、可维护性、可升级、可配置、易于操作、接口规范、抗干 扰、物理尺寸、重量、功耗、成本、开发周期等多种因素。 5、什么是BootLoader,了解其在嵌入式系统中作用。 答:就是启动载入或引导加载又叫自举装载。由于系统加电后需 要首先运行BootLoader这段程序,因此它需要放在系统加电后 最先取指令的地址上。嵌入式处理器的生产厂商都为其处理器预 先安排了一个在系统加电或复位后最先取指令的地址。 二、名词解释(每小题2分,共10分) 1、DSP(Digital Signal Processor),数字信号处理器,一种特别用于快速处理数字信号的微处理器。DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。 2、RTOS Real Time Operating System. 译为实时操作系统。实时系统是指一个能够在指定的或者确定的时间内,实现系统功能和对外部或内部、同步或异步事件作出响应的系统。 3、BSP设计板级支持包(BSP)的目的主要是为驱动程序提供访问硬件设备寄存器的函数包,从而实现对操作系统的支持。类似于PC机上的BIOS,是一个承上启下的软件层次。由嵌入OS和用户开发相结合取得。BSP一般是在嵌入式系统上固化存放。 4、总线竞争就是在同一总线上,同一时刻,有两个以上器件要通

嵌入式系统原理及接口技术复习题

一、简答题 1.什么是嵌入式系统?嵌入式系统的特点是什么? 答:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能, 可靠性,成本,体积,功耗严格要求的专用计算机系统 特点:与应用密切相关,实时性,复杂的算法,制造成本,功耗,开发和调试,可 靠性,体积 2.简要说明嵌入式系统的硬件组成和软件组成。 答:硬件组成:微处理器,存储器,输入设备和输出设备。 软件组成:操作系统,文件系统,图形用户接口,网络系统,通用组建模块。 3.S3C2410A的AHB总线上连接了那些控制器?APB总线上连接了那些部件? AHB:LCD控制器,LCD DMA,总线控制器,USB主控制器,中断控制器,ExtMaster,电源管理,Nandflash控制器,储存器控制器。 APB:通用异步收发器,内部集成电路总线(IIC),USB设备控制器,集成电路内部 声音总线(IIS),MMC/SD/SDIO主控制器,通用I/O端口(GPIO),看门狗定时器(WDT),定时时钟(RTC),总线控制器,A/D转换器,串行外设接口,定时器/脉宽调制。 4.ARM体系结构支持几种类型的异常,并说明其异常处理模式和优先级状态? 答,支持7种类型的异常 异常处理过程:(进入异常)PC→LR,CPRS→SPSR,设置CPSR的运行模式位,跳转 到相应的异常处理程序,(异常返回)LR→PC,SPSR→CPSR,若在进入异常处理时 设置中断禁止位,要在此清楚,复位异常处理程序不需要返回。 Reset>数据中指>快速中断请求(FIQ)>中断请求(IRQ)>指令预取中止> 未定义指令和软件中止。 5.存储器生长堆栈可分为哪几种?各有什么特点? 4种,满递增堆栈,满递减堆栈,空递增堆栈,空递减堆栈。 6.简述存储器系统层次结构及特点。 答:层次结构:包括Cache,主存储器和辅助存储器 特点: 7.简述I2S总线接口的启动与停止过程。 通过I2S控制寄存器IISCON控制,当控制寄存器IISCON的地址为0=I2S禁止(停止); 当控制寄存器IISCON的地址为1=I2S允许(开始)。 8.简述ARM系统中的中断处理过程。 中断处理过程包括:中断请求、中断排队或中断判优、中断响应、中断处理和中断返回 9.ARM微处理器支持哪几种运行模式?各运行模式有什么特点? User:用户模式。绝大部分的任务执行都在这种操作模式下,此为正常的程序执行 模式。 FIQ:快速中断模式。支持数据传送或通道处理。 IRQ:普通中断模式。用于一半中断处理。 Supervisor:管理模式。一种操作系统受保护的方式。 Abort:中止模式。在访问数据中止后或指令预取中止后进入中止方式。 System:系统模式。是操作系统一种特权级的用户方式。 Undef:未定义模式。当执行未定义指令时会进入这种操作模式。

嵌入式系统第3次离线作业(含答案)

《嵌入式系统》作业三 一、判断题 1.ARM属于CISC体系架构。F 2.除了用户模式外,ARM处理器的其它几种工作模式属于特权模式。T 3.在任何模式下,ARM处理器都可以访问全部寄存器。F 4.在ARM处理器中,快速中断(FIQ)的优先级高于外部中断(IRQ)。T 5.使用立即寻址时,目标寄存器可以为立即数。F 6.BLX指令可以将处理器切换到Thumb状态。T 7.链接寄存器(LR)用于保存子程序的返回地址,它不能用作其他用途。F 8.由于使用寄存器R0-R3来传递参数,所以调用子程序时,参数不能超过4个。F 9.使用汇编编写ARM程序时,可直接为PC寄存器赋值。T 10.ATPCS是ARM程序和Thumb程序中子程序调用的规则,它是一套强制规则。F 二、选择题 11.下列哪项不是ARM处理器的特点。B A.小体积、低功耗 B.可以使用除加载/存储指令外的多种指令访问存储器 C.大多数数据操作在寄存器中完成,执行速度快 D.支持Thumb/ARM双指令集 12.当加法指令产生进位时,下列哪个条件标志位会发生变化:A A. C B.T C.I D. F 13.下列哪个不属于ARM处理器的寻址方式:D A.立即寻址 B.寄存器寻址 C.寄存器间接寻址 D.链表寻址 14.下列哪条指令是块操作指令:C A.STMFD B.POP C.LDMIA D.PUSH 15.下列哪条指令把寄存器R1、R2的值相加后存到R0中:C A.AND R0, R1, R2 B.SUB R0, R1, R2 C.ADD R0, R1, R2

D.AND R1, R2, R0 16.R0的中的值为0xFFF3,执行指令AND R0, R0, #3后,R0的值为:A A.0x0003 B.0xFFFF C.0xFFF0 D.0xFFF3 17.CPZSR寄存器中的Z条件码为0,当前的PC值为0xFF00,则执行BEQ 0xAAA0后, PC值为:C A.0xAAA0 B.0xAAA4 C.0xFF04 D.0xFF00 18.下列哪条ARM汇编伪指令可用来定义符号:A A.GBLA B.IF C.MAP D.WHILE 阅读下列程序,回答9~10题: LDR R0, 0x22 LDR R1, 0x11 SUB R0, R0, R1 CMP R0, R1 19.执行这段程序后,R0的值为:C A. A 0x22 B. B 0x33 C. C 0x11 D. D 0 20.执行这段程序后,CPSR的下列哪个标志位将发生变化:C A. C B.V C.Z D.以上都不对 三、简答题 21.请简述ARM处理器的堆栈寻址和块拷贝寻址模式,并比较它们的不同点。 答:堆栈寻址: 按先入先出的方式工作。 块拷贝寻址: 一种多寄存器传送指令,用于将一块数据从存储器的某一块位置拷贝到多个寄存器中或相反。 主要不同点:两者存放数据的顺序相反。

2016年下学期嵌入式系统设计大作业

嵌入式系统设计大作业 1、叙述嵌入式系统开发过程中所要解决的两个问题。 2、叙述嵌入式平台的搭建过程,以linux为例。 3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品? 体系结构是什么? 4、现今较流行的嵌入式操作系统有哪些? 5、PXA270嵌入式开发板的接口有哪些? 6、请写出Nor Flash和Nand Flash的区别。 7、冯。诺依曼架构与哈佛架构的区别。 8、单周期3级流水的情况下,第10个指令周期时,第几条指令执行结束? 9、下面是linux下的一个简单的设备驱动程序,写出linux设备驱动常用的数据结构,同时阅读下面代码,请给出测试程序中的每条语句加以注释。 设备驱动程序Keypad.c的源代码: #include #include #include #include #include #include #include #include #include #include #include #define LEDnKEY_MAJOR 251 #define KEYPAD_NAME "X-Hyper250 Keypad" #define KEYPAD_VERSION "Version 0.1" #define EXT_KEY_CS EXT_PORT2 #define EXT_LED_CS EXT_PORT3 #define LED_SHOW 10 /*EXT_KEY_CS 为向外部LED进行数值设定,它定义在其它头文件里*/ void led_off_on() /**/ { int i; EXT_LED_CS = 0xff; for(i =0 ; i<8;++i) { EXT_LED_CS = ~((1 << i) & 0xff); udelay(30000); } EXT_LED_CS = 0xff; }

嵌入式系统原理与应用习题答案

版权说明 本文件中出现的任何文字叙述、文件格式、插图、照片、方法、过程等内容,除另有特别注明,版权均属本人所有。 ----WangYiwei 由于我正在学习“嵌入式系统原理与应用——基于ARM微处理器和Linux操作系统”这门课程,网络上找不到课后习题答案。因此本人通过认真地做习题,不懂百度,查阅相关书籍等途径,整理了一份答案,可供各位参考。 注意:答案并不一定完全正确,有异议的答案欢迎提出来大家一起探讨。 练习题P14 1.选择题 (1)A 说明:嵌入式系统的发展趋势表现在以下几方面: 1.产品种类不断丰富,应用范围不断普及 2.产品性能不断提高 3.产品功耗不断降低,体积不断缩小 4.网络化、智能化程度不断提高 5.软件成为影响价格的主要因素 (2)D 说明:常见的嵌入式操作系统: VxWorks,Windows CE、uC/OS-II和嵌入式Linux。 (3)A 说明:VxWorks是美国WindRiver公司于1983年开发的一种32位嵌入式实时操作系统。 2.填空题 (1)嵌入式计算机 (2)微处理器外围电路外部设备 (3)板级支持包实时操作系统应用编程接口应用程序 (4)嵌入式处理器微控制器数字信号处理器 3.简答题 (1)简述嵌入式系统的定义和特点 答:定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 特点:专用性强、实时性好、可裁剪性好、可靠性高和功耗低等。

(2)简述计算机系统的发展历程 第一阶段大致在20世纪70年代前后,可以看成是嵌入式系统的萌芽阶段; 第二阶段是以嵌入式微处理器为基础,以简单操作系统为核心的嵌入式系统; 第三阶段是以嵌入式操作系统为标志的嵌入式系统,也是嵌入式应用开始普及的阶段; 第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。 (3)简述MCU和DSP的区别 MCU是微控制器,DSP是数字信号处理器。 MCU相当于小型的电脑,内部集成的CPU、ROM、RAM、I/O总线,所以集成度高是它的特点。 DSP是专用的信息处理器,内部的程序是对不同的机器和环境进行特别优化,所以处理速度是最快的。 练习题 1. 填空题 (1) ARM7 ARM9 ARM9E ARM10E ARM11 (2) 精简指令集计算机 (3) Samsung ARM920T IIC总线 (4) BGA 显卡布线 (5) (6) 8 128 1 (7) S3C2410 64MB 64MB 2. 选择题 (1) D (2)C (3)A (4)B (5)B (6)C (7)D (8)C (9)C (10)B 3. 简答题 (1)ARM和S3C2410X有什么关系? S3C2410是韩国三星公司生产的嵌入式处理器,它采用了ARM公司的ARM920T(即ARM9)内核 (2)ARM7是32位RISC处理器,使用3级流水线,采用冯 ?诺依曼体系结构,不支持MMU。 (3)ARM8是32位RISC处理器,使用5级流水线,采用哈佛体系结构,支持MMU。 (4)S3C2410X芯片有27根地址线,8根片选线(nGCS),32根数据线。 (5)S3C2410X芯片内部集成了一个LCD控制器,SDRAM控制器,3个通道UART,4个通道DMA,4个具有PWM 功能的计时器和一个内部时钟,8通道的10位ADC。 (6)ARM体系结构有哪几种工作状态?又有哪几种运行模式?其中哪些为特权模式?哪些为异常模式?并指出处理器在什么情况下进入相应模式?

嵌入式系统原理与接口复习要点及思考题答案(计)

嵌入式系统原理与接口复习要点及思考题答案(计)

各位:根据掌握要点认真复习,后面附有作业题答案。 第1章掌握要点 1.1.1节嵌入式系统的概念 1.1.3节嵌入式系统的特点 1.3节嵌入式处理器 1.4节嵌入式系统的组成(看课件,有补充的内容) 补:1.嵌入式系统开发过程? 2.嵌入式系统调试常用的基本方法 3.交叉编译和交叉调试 4.嵌入式操作系统 第2章掌握要点 2.1节计算机体系结构分类 2.3.1节 ARM和Thumb状态 2.3.2节 RISC技术 2.3.3节流水线技术 2.4.1 ARM存储系统 2.4.2 Cache:写通、写回、读操作分配cache、写操作分配cache、工作原理、地址映像 2.4.3节 ARM存储系统 补充: (见课件) 1. ARM简介:ARM的命名方式、5种变形

2.理解片内Flash的3种编程方法。 3.理解ARM7芯片存储器存储空间分布。(8个bank,每个bank32MB)第3章掌握要点 3.1节ARM编程模式:处理器模式、处理器工作状态、寄存器组织、 异常中断 3.2节指令格式和寻址方式 3.3节指令系统:掌握和熟练应用课件所讲的指令、可编程序段 第5章掌握要点 5.1节键盘接口:行扫描法原理、掌握编写驱动程序 5.2节 LED显示器接口:理解工作原理,掌握编写驱动程序 5.5.1节 UART异步串行接口:异步通信格式、接收的4种错误类型、初始化、发送程序、接收程序 第1章作业题答案: 1.什么是嵌入式系统? ?第一种,根据IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants)。 ?第二种,嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专 用计算机系统。

嵌入式系统大作业

《嵌入式系统原理及应用》课 程论文 嵌入式数据库的现状和发展趋势 学生姓名 学号 专业 班级 授课教师 所属学院

嵌入式数据库的现状和发展趋势 摘要:随着计算机技术及相关技术的不断发展,嵌入式产品由于其智能化、小型化、便携式等特点,已经普遍应用于我们的生活。这些产品通常是在计算资源、存储资源等条件受限的情况下处理大量的数据,而传统的数据库一般都是运行在各种各样的服务器或大容量的存储器上,显然把传统的数据库直接移植到嵌入式设备上是不可行的。嵌入式数据库应运而生。本文从嵌入式系统结构入手,阐述了嵌入式数据库的发展现状,并具体介绍了当前主流嵌入式数据库的共性、基本特点、关键技术、构件、分类,并提出了发展趋势和进一步研究的技术突破点。 关键词:嵌入式数据库、复制、缓存技术、现状、趋势 引言 随着计算机技术及相关技术的不断发展,嵌入式产品由于其智能化、小型化、便携式等特点,已经普遍应用于我们的生活,比如智能手机、车载导航设备、数字移动电视、机顶盒、智能控制设备等。这些产品通常是在计算资源、存储资源等条件受限的情况下处理大量的数据,而传统的数据库一般都是运行在各种各样的服务器或大容量的存储器上,显然把传统的数据库直接移植到嵌入式设备上是不可行的。那么如何在苛刻的条件下,充分利用有限的资源便成为了人们研究的热点。嵌入式数据库也正是在此条件下,和嵌入式操作系统、嵌入式应用软件相伴而生的。 正文 1嵌入式系统的体系结构 嵌入式系统的英文叫做Embedded System, 是一种包括硬件和软件的完整的计算机系统, 但又跟通用计算机系统不同。嵌入式系统的定义是: / 嵌入式系统是以应用为中心, 以计算机技术为基础, 并且软硬件可剪裁, 适用于应用系统对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。0嵌入式系统所用的计算机是嵌入到被控对象中的专用微处理器, 但是功能比通用计算机专门化, 具有通用计算机所不能具备的针对某个方面特别设计的、合适的运算速度、高可靠性和较低比较成本的专用计算机系统。 嵌入式数据库位于嵌入式系统的中间部分,下面有嵌入式操作系统层,当前主流的嵌入式操作系统有Windows CE;Palm OS。Linux,VXworks,SymbianOS等平台,硬件平台主要有Dragonball,Handspring,MIPS,Hitachi SH,Power PC以及ARM处理器。嵌入式应用软件位于嵌入式数据库之上,可以通过API函数接口,、ODBC,JDBC等与嵌入式数据库通信,来实现数据的检索、删除、添加等操作,更为重要的是要实现数据的完整性、一致性。当前主流的嵌入式数据库,具有支持多个平台、面向多种开发语言、具有多个灵活的接口等特点,主流的嵌入式数据库有:Oracle公司的Berkeley DB、Sysbase Adaptive ServerAnywhere、Linter以及SQLite等,国内的科研机构也积极开展这方面的研究并推出了自己的产品,主要有方舟公司的Noahbase人大金仓kingbase等。

嵌入式系统基础学习知识原理及其应用题目要求程序代码

《嵌入式系统原理及应用》作业题目 作业1 一、调试下面的程序,并回答问题。 .global _start .text _start: LDR SP, =src LDMFD SP!,{R0-R6} STMFD SP!,{R0-R6} LDMFD SP!,{R3} LDMFD SP!,{R4} LDMFD SP!,{R5} LDMFD SP!,{R6} LDMFD SP!,{R0} LDMFD SP!,{R1} LDMFD SP!,{R2} stop: b stop .ltorg src: .long 1,2,3,4,5,6,7 .end 问:该程序完成了什么功能? 答: 该程序完成的功能:先把数据区堆栈中的1~7这七个数据送给R0~R0寄存器,然后又把寄存器列表中的R0~R7存入堆栈,然后又依次把堆栈中的1~7这七个数送给R3~R6,R0~R2,然后程序就结束了,在取数和存数的过程中。堆栈指针sp由0x0000变到0x8030再到0x804c,然后到0x8030,然后依次加4,最后到0x804c;程序计数器R15(PC)由0x8000地址依次加4 。 二、LDMFD,STMFD伪代码实现的原理。 答: 指令STMFD和LDMFD分析: 根据ATPCS规则,我们一般使用FD(Full Descending)类型的数据栈!所以经常使用的指令就有STMFD和LDMFD, 通过ARM对于栈操作和批量Load/Store指令寻址方式,可以知道指令STMFD和LDMFD的地址计算方法: STMFD指令的寻址方式为事后递减方式(DB)

而DB寻址方式实际内存地址为: start_address = Rn - (Number_Of_Set_Bits_In(register_list)*4) end_address = Rn - 4 STM指令操作的伪代码: if ConditionPassed(cond) then address = start_address for i = 0 to 15 if register_list[i] == 1 Memory[address] = Ri address = address + 4 有上面两个伪代码可以得出 STMFD SP!,{R0-R7,LR} 的伪代码如下: SP = SP -9×4; address = SP; for i = 0 to 7 Memory[address] = Ri; address = address + 4; Memory[address] = LR; LDMFD指令的寻址方式为事后递增方式(IA) IA内存的实际地址的伪代码 start_address = Rn end_address = Rn + (Number_of_set_bits_in(register_list)*4) - 4 LDM指令操作的伪代码(未考虑PC寄存器): if ConditionPassed(cond) then address = start_address for i = 0 to 15 if register_list[i] == 1 Ri = Memory[address,4] address = address + 4 所以LDMFD SP!,{R0-R7,PC}^ (;恢复现场,异常处理返回)伪代码是: address = SP; for i = 0 to 7 Ri = Memory[address ,4] address = address + 4; SP = address; 作业2 一、用移位操作完成(R0)*10运算。 参考程序: .text .global _start _start:

嵌入式系统大作业

嵌入式系统大作业-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

基于嵌入式系统的车载GPS导航系统的设计 1 设计目的与功能 1.1 设计目的 随着人们经济基础增强,安全意识增强的基础上,很多人都会选择车载GPS 导航设备,所以制造功能强大,价格低廉的车载GPS导航设备是有很大市场和发展前景的。由于导航仪投入小,外壳模块、芯片等材料市场供应量大,这也是我选择设计车载GPS导航设备的理由。为了满足不同用户的不同需求,我想设计一款内置四维地图系统。 1.2设计功能 1提供准确无误的全3D实景导航; 2附带全国沿途咨询; 3具有视频、音乐播放等娱乐功能。 2.需求分析调研 2.1 产品的硬件组成(型号、类型、电气特性、选择的理由等) (1)处理器:S3C2440A 400MHz,S3C2440A 是三星公司生产推出的基于ARM920T的32位RISC嵌入式微处理器,S3C2440A采用了ARM920T的内核,0.13um的CMOS标准宏单元和存储器单元。 采用ARM920T CPU内核支持ARM调试体系结构。 (2)储存模块:SDRAM , K4M561633-75 , 64MByte Nand FLASH, K9F1208G 64MByte同步动态随机存储器,工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;存储阵列需要不断的刷新来保证数据不丢失;数据不是线性依次存储,而是自由指定地址进行数据读写。 (3)音频模块:PHILIPS公司的UDA1341TS是一块功能强大的专用语音处理芯片。本设计使用的AT91RM9200处理器具有一个IIS音频接口,此接口

嵌入式系统原理作业一

《嵌入式系统原理》作业一参考答案 注意: ●上交时间:下周上小课之前; ●不许打印答案,可以不抄题目,把答写在作业纸上就可以了; 一、填空题 1、ARM的完整拼写形式为 Acorn RISC Machine ,CM4处理器内部正在执行的指令的地址为0x08000100,此时读取PC的值,该值为 0x08000104 。 2、CM4处理器有两种模式:线程模式、 handler模式,还支持两种操作级别:特权级、非特权级(用户级)。 4、根据操作数的来源不同,CM4处理器有不同的寻址方式,最快的寻址方式是立即寻址,指令add r0,r1,r2的寻址方式是寄存器寻址。 5、ATPCS中规定子程序间传递参数,参数个数少于等于4个时,使用寄存器R0-R3 ;参数个数多于4个时,多出的部分使用栈。 6、在CM4处理器中,寄存器间传送数据的指令是 mov ,寄存器和内存单元间传送数据的指令是 ldr/str ,寄存器和状态寄存器间传送数据的指令是mrs/msr 。 7、伪操作import的作用是声明来自外部文件的标号。伪操作“ldr r0,=label”的含义是将标号lable的值送到到r0中。 8、假设某嵌入式处理器有3级流水线,每级流水线所耗时间均为为0.2ms,则顺序执行30条指令需要耗费时间是 6.8 ms。(30+5-1)*0.2 编程题 1、编写一段c语言和汇编语言的混合程序,在c语言函数中实现字符串拷贝(不许用字符串操作相关函数),函数原型如下: void strcpy(char *src, char *dest) //即src所指向的字符串复制到dest中{ // 自己编写字符串拷贝代码 *dst=*src; while(*dst!=0)//循环结束标志是到了字符串末尾,遇到了'\0'(其值为0) {

嵌入式系统原理第三章习题(1)

第三章第一次作业 1. ARM寻址方式有几种?举例说明ARM如何进行不同方式的寻址。 1).寄存器寻址;如MOV R1, R2 2).立即寻址;如MOV R0, #0xFF00 3).寄存器移位寻址;如MOV R0, R2, LSL #3 4).寄存器间接寻址;如LDR R1, [R2] 5).基址加偏址寻址;如LDR R2, [R3,#0x0C] 6).多寄存器寻址;如LDMIA R1!, {R2-R4,R6} 7).堆栈寻址;如STMFD SP!, {R1-R7,LR} 8).相对寻址。如BL SUBR1 2. 简述ARM指令分类及指令格式形式。 ARM指令集可以分为6大类:数据处理指令、Load/Store指令、跳转指令、程序状态寄存器处理指令、协处理器指令和异常产生指令。 ARM指令的基本格式为: {} {S} ,{,} 其中,opcode为操作码;cond为可选的条件码;S为可选后缀;Rd为目标寄存器;Rn为存放第1个操作数的寄存器;operand2为第2个操作数。 3. 假设R0的内容为0x8000,寄存器R1、R2的内容分别为0x01与0x10,存储器中所有存储单元的内容均为0xFF。连续执行下述两条指令后,存储器及寄存器的内容如何变化? STMIB R0!, {R1, R2} LDMIA R0!, {R1, R2} 存储器里内容为: R0→0x8000 0x8004 0x8008 →R1 0x800C →R2 R0’→0x8010 0x8014

寄存器里内容为:R0 ←0x8010 R1 ←0x10 R2 ←0xFF 4. ARM处理器如何进入和退出Thumb指令模式?用汇编语言实现ARM状态和Thumb状态互相的切换。 进入Thumb模式:有2种方法。一种是执行一条交换转移指令BX,将指令中的目标地址寄存器的最低位置1,并将其他位的值放入程序计数器PC,则可以进入Thumb指令。另一种方法是利用异常返回,也可把微处理器从ARM模式转换为Thumb模式。 退出Thumb模式:也有2种方法。一种是执行Thumb指令中的交换转移BX指令可以显式地返回到ARM指令流。另一种是利用异常进入ARM指令流。 ARM状态切换到Thumb状态: CODE32 LDR R0, =Lable+1 BX R0 CODE16 Lable MOV R1, #12 Thumb状态切换到ARM状态: CODE16 LDR R0, =Lable BX R0 CODE32 Lable MOV R1, #10 5. 请将下面C语言代码转换成汇编语言。 (1) If(a==0||b==1) c=d+e CMP R0, #0 CMPNE R1, #1 ADDEQ R2, R3, R4 (2) if ((a= = b)&&(c= = d))&&(e= =f) g++;

嵌入式系统大作业一

《嵌入式系统》课程ARM部分大作业 一、如何定义ARM寄存器列表,试举一个使用寄存器列表的例子,要求实现4个字的内存复制。 答:AREA EXAMPLE1,CODE,READONLY ENTRY LDR R0,=0XFF; //把地址0XFF赋给R0 LDR R5,=0X0F; //把地址0X0F赋给R5 START PBLOCK RLIST {R1-R4}; //把R1-R4定义为PBLOCK LDMIA R0,PBLOCK; //把R0为首地址的内存4个字单元装载至R1到R4中 STMIA R5,PBLOCK; //把R1到R4的值依次存至R5为首地址的内存字单元 STOP B STOP; //死循环 END 二、分析下面程序,写出下面程序遵循的规则,给出关键语句的注释,以及程序功能。 #include<stdio.h> extern void strcopy(char *d,const char *s); int main() { c onst cha r *srcstr=“First string - source”; c har dststr[]=“secon d string - destination”; p rintf(“Before copying:\n”); p rintf(“%S\n%S\n” srcstr,dststr); s trcopy(dststr,srcstr); printf(“After copying:\n”); P rintf(“%s\n%s\n”,srcstr,dststr); r eturn(0); } AREA scopy CODE,READONLY E XPORT strcopy ; Strcopy ;//R0指向目的字符串,R1指向源字符串 L DRB R2,[R1],#1;//加载字节和更新地址 S TRB R2,[R0],#1;//储存字节和更新地址 C MP R2,#0;//检查零终止符 B NE strcopy //如果不是零终止符则循环,否则继续执行 M OV PC,LR;//返回 E ND 答:功能:将r1指向的字符串拷贝到r0指向的地方,字符串以0作结束标志。 三、分析下面程序,写出下面程序遵循的规则,给出关键语句的注释,以及程序

相关主题