!嵌入式系统开发资料(入门必备)

!嵌入式系统开发资料(入门必备)
!嵌入式系统开发资料(入门必备)

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html,

ARM嵌入式系统开发综述ARM开发工程师入门宝典

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, 前言

嵌入式系统通常是以具体应用为中心,以处理器为核心且面向实际应用的软硬件系统,其硬件是整个嵌入式系统运行的基础和平台,提供了软件运行所需的物理平台和通信接口;而嵌入式系统的软件一般包括操作系统和应用软件,它们是整个系统的控制核心,提供人机交互的信息等。所以,嵌入式系统的开发通常包括硬件和软件两部分的开发,硬件部分主要包括选择合适的MCU或者SOC 器件、存储器类型、通讯接口及I/O、电源及其他的辅助设备等;软件部分主要涉及OS porting和应用程序的开发等,与此同时,软件中断调试和实时调试、代码的优化、可移植性/可重用以及软件固化等也是嵌入式软件开发的关键。

嵌入式系统开发的每一个环节都可以独立地展开进行详细的阐述,而本文的出发点主要是为嵌入式开发的初学者者提供一个流程参考。因为对于初学者在面对一个嵌入式开发项目的时候,往往面临着诸多困难,如选择什么样的开发平台?什么样的器件类型?在进行编译时怎样实现代码优化?开发工具该如何选择和使用?在进行程序调试时应该注意那些问题以及选择什么样的嵌入式OS 等等。希望通过本文,能帮助初学者了解有关ARM嵌入式系统开发流程。

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html,

目录

前言 (2)

1 嵌入式开发平台 (4)

1.1 ARM的开发平台: (4)

1.2 器件选型 (7)

2 工具选择 (11)

3 编译和连接 (13)

3.1 RVCT的优化级别与优化方向 (16)

3.2 Multifile compilation (21)

3.3调试 (22)

4 操作系统 (23)

4.1 哪里可以得到os 软件包 (Open Source and Linux

Kernel) (25)

4.2 安装镜像 (26)

4.3 交叉编译 (26)

总结 (27)

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, 1 嵌入式开发平台

通常嵌入式开发的平台主要包括基于SoC或MCU开发板,板上提供常用的外设、接口和其他功能模块,开发者一般根据自己的应用需要选择适合自己板级开发平台。在这样的平台上开发者可以进行硬件的扩展,操作系统移植和应用软件的开发、调试及固化,并最终形成自己的产品推向市场。但是基于该平台的软件开发工作往往需要等到硬件平台完成后才能开展,这显然不利于缩短TTM (Time to Market),同时调试的过程也是需要反复迭代和修改设计的过程,因此硬件方案的变动在所难免。因此在系统方案没有最终定型前,急于搭建硬件平台不仅费时费力,而且也会造成系统开发成本的提高。因此在进行方案设计的时候,利用CPU或者其他外设的模型进行早期的评估是非常必要的。

1.1 ARM的开发平台:

! ARMulator仿真平台

这是一套最基础的ARM指令集仿真器,内嵌于ADS和RVDS中,是每一位ARM 开发者的很好的起点。ARMulator可以模拟执行开发人员编写的C或汇编程序,支持源代码调试,帮助开发者确定代码编写的正确性。另一方面,ARMulator 还能大致统计出,诸如:代码执行周期数,Cache命中率,存储器访问等利于我们优化代码的信息。但ARMulator是基于CPU的模拟,缺点在于比较难于模拟整个芯片系统的行为。

! RealView Integrator-CP平台

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, https://www.360docs.net/doc/0111630484.html,/products/DevTools/IntegratorFamily.html

RealView Integrator-CP平台(RealView Integrator Compact Platform)可以整合Core Module。Core Module FPGA 还整合了ARM PrimeCell 系列周边器件和内存控制器,包括LCD,MMC卡,音频解码,以及客户自己开发AHB接口器件。

! Versatile PB/AB平台

https://www.360docs.net/doc/0111630484.html,/products/DevTools/VersatileFamily.html

Versatile Platform Baseboard(Versatile PB)是一个可以开发软硬件的PCB平台,可以用LogicTile,AnalyzerTile进行扩展,用来连接用户开发的器件,逻辑分析仪等。而Versatile Application Baseboard(Versatile AB)主要区别是硬件扩展功能有限,因而主要用来进行软件应用开发。

! Emulation Baseboard(EB)

https://www.360docs.net/doc/0111630484.html,/products/DevTools/EB.html

EB平台有一块相对大的FPGA(Xilinx Virtex2 XC2V6000)可以放下用户设计的周边器件,EB可以通过CoreTile 和LogicTile进行扩展,使用户做原型验证更加方便。

! ESL虚拟平台

https://www.360docs.net/doc/0111630484.html,/products/DevTools/RealViewCREATE_Family.html ARM ESL虚拟平台利用SystemC模型构建整个SoC系统,可以基于两种模型构建:时钟精确型(CA)和时钟近似型(CX),CA模型提供了和实际硬件时钟节拍一直的精确度,利用ESL SoC Designer工具在ESL CA模型构建虚拟

获取更多权威电子书 请登录https://www.360docs.net/doc/0111630484.html,

仿真平台上,SoC 硬件工程师利用ESL 工具提供的强大的诸如Core 运行状态监视、Bus Profiling 、Cache 工作状态和Memory Mapping 等可视化插件对系统性能观测和分析,定位系统性能的瓶颈,实现硬件的性能优化和功能划分。

此外,对于嵌入式软件开发工程师而言,ESL 虚拟平台带来的最大好处是让软件开发在更早的阶段开展,而不必等到在硬件平台上进行此工作。这样以来软硬件开发工作可以并行提高,缩短产品上市时间,软硬件的协同开发还可以尽早发现系统bug ,降低开发风险和成本。同时该虚拟平台还提供了ARM 软件开发调试工具接口同步进行软件调试,在ESL 虚拟平台上实现软硬件的协同仿真,可以实现优化软件的目的。

从图1看,传统流程中容易引起反复的环节,而对引入ESL 的开发流程,可将诸如驱动开发调试等,提前放置到虚拟开发平台上进行,实现系统设计的优化、

缩短开发周期等。而且仿真环境所能提供的调试手段,是FPGA 平台所无法比拟的。

图1 传统和引入ESL 工具的SoC 开发流程

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, ! RTSM

https://www.360docs.net/doc/0111630484.html,/products/DevTools/RealTimeSystemModel1176.html RTSM(实时系统模型)是对整个芯片系统在指令集层面上的仿真,它能提供快速、准确的指令仿真,以及与RealView Debugger的无缝连接。大型应用程序的开发可以使用 RTSM模拟技术来完成。 RTSM模拟包括LCD显示器、键盘和鼠标等外设的仿真。不到5s,就可以利用PC在ARM处理器上对OS的启动过程进行模拟,用户可以在ARM提供的RTSM上进行快速的软件仿真。这是OEM在开发软件系统时成本最低的方法。想象一下,芯片公司不用等到芯片生产出来,也不用把缓慢的FPGA板交给方案厂商或OEM;只需要将整个芯片的模型交付,下游厂家就可以尽早尽快地将软件方案开发完毕。最终产品几乎可以从芯片生产出来就准备上市。

1.2 器件选型

器件的选择归根结底是为嵌入式系统选择合适的处理器芯片。ARM处理器是最常见的嵌入式处理器之一,它以低功耗、低成本和高性能而深受业界的青睐。而且ARM是目前产业中资源最为广泛的嵌入式处理器,基于广大的ARM合作伙伴计划,开发者可以在这个联盟里寻求到各种自己意想不到的帮助。从图2

给出了常见的ARM处理器的架构和支持的操作系统。目前在业内广为人知的ARM处理器主要有ARM7系列和ARM9系列,同时为了关注今后嵌入式系统的发展,也有必要了解一下最新的ARM11和ARM Cotex系列处理器。

获取更多权威电子书 请登录

https://www.360docs.net/doc/0111630484.html,

图2 ARM 体系结构

ARM7系列

ARM7TDMI 是ARM7系列中使用最广泛的,它是从最早实现32位地址空间编程模式的ARM6内核发展而来的,并增加了64位乘法指令,支持片上调试、16位Thumb 指令集和EmbeddedICE 观察点硬件。ARM7TDMI 属于ARM v4体系结构,采用冯诺伊曼结构,3级流水处理,平均0.9DMIPs/Mhz 性能。不过ARM7TDMI 没有MMU (Memory Management Unit )和Cache ,所以仅支持那些不需要MMU 和Cahce 的小型实时操作系统,如VxWorks 、uC/OS-II 和uLinux 等RTOS 。其他的ARM7系列内核还有ARM720T 和ARM7E-S 等。

ARM9系列

ARM9TDMI 相比ARM7TDMI ,将流水级数提高到5级从而增加了处理器的

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, 时钟频率,并使用指令和数据存储器分开的哈佛结构以改善CPI和提高处理器性能,平均可达1.1DMIPs/Mhz,但是ARM9TDMI仍属于ARM v4T体系结构。在ARM9TDMI基础上又有ARM920T、ARM940T和ARM922T,其中ARM940T 增加了MPU(Memory Protect Unit)和Cache;ARM920T和ARM922T加入了MMU、Cache和ETM9(方便进行CPU实时trace),从而更好的支持象Linux 和WinCE这样的多线程、多任务操作系统。

ARM9E系列

ARM9E系列属于ARM v5TE,在ARM9TDMI的基础上增加了DSP扩展指令,是可综合内核,主要有ARM968E-S、ARM966E-S、ARM946E-S和

ARM926EJ-S(v5TEJ指令体系,增加了Java指令扩展),其中ARM926EJ-S 是最具代表性的。通过DSP和Java的指令扩展,可获得70%的DSP处理能力和8x的Java处理性能提升。另外分开的指令和数据Cache结构进一步提升了软件性能;指令和数据TCM(Tightly Couple Memory:紧耦合存储器)接口支持零等待访问存储器;双AMBA AHB总线接口等。ARM926EJ-S可达250Mhz 以上的处理速度,很好地支持Symbian OS、Linux、Windows CE和Palm OS 等主流操作系统。

ARM11系列

ARM11系列主要有ARM1136、ARM1156、ARM1176和ARM11 MP-Core 等,它们都是v6体系结构,相比v5系列增加了SIMD多媒体指令,获得1.75x 多媒体处理能力的提升。另外,除了ARM1136外,其他的处理器都支持AMBA 3.0-AXI总线。ARM11系列内核最高的处理速度可达500Mhz以上(其中90nm

获取更多权威电子书 请登录https://www.360docs.net/doc/0111630484.html,

工艺下,ARM1176可达

到750Mhz )以及600DMIPS 的性能,请参考和图3相关描述。

图3 ARM11系列内核

基于ARMv6架构的ARM11系列处理器是根据下一代的消费类电子、无线设备、网络应用和汽车电子产品等需求而制定的。其的媒体处理能力和低功耗特点使它特别适合于无线和消费类电子产品;其高数据吞吐量和高性能的结合非常适合网络处理应用;另外,在实时性能和浮点处理等方面ARM11可以满足汽车电子应用的需求。

ARM Cotex 系列

Cortex 系列是ARM 公司目前最新内核系列,属于v7架构,主要有

Cortex-A8、Cortex-R4、Cortex-M3和Cortex-M1等处理器,其中A8是面向高性能的应用处理器,最高可达1Ghz 的处理速度,更好的支持多媒体及其他高性能要求,最高可达2000DMIPS ;R4主要面向嵌入式实时应用领域(Real-Time ),7级流水结构,相对于上代ARM1156内核,R4在性能、功耗和面积(PPA :Performance ,Power and Area )取得更好的平衡,>1.5DMIPS/Mhz 和高于400Mhz 的处理速度。而M3主要是面向低成本和高性能的MCU 应用领域,相比ARM7TDMI ,M3面积更小,功耗更低,性能更高。Cortex-M3处理器的核心

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, 是基于哈佛架构的3级流水线内核,该内核集成了分支预测,单周期乘法,硬件除法等众多功能强大的特性,使其在Dhrystone benchmark上具有出色的表现(1.25 DMIPS/MHz)。根据Dhrystone benchmark的测评结果,采用新的Thumb?-2指令集架构的Cortex-M3处理器,与执行Thumb指令的

ARM7TDMI-S?处理器相比,每兆赫的效率提高了70%,与执行ARM指令的ARM7TDMI-S处理器相比,效率提高了35%。

目前已经有Cortex系列内嵌的产品问世,如TI公司推出的基于Cortex-A8内核的OMAP3430,TI、ST和Luminary也推出了基于Cortex-M3内核的低成本高性能32位MCU,更多详情请登陆这些公司的主页查询。

2 工具选择

根据开发目标平台的不同,ARM提供不同的工具解决方案。

MDK-ARM

RealView Microcontroller Development Kit(MDK) 支持基于ARM7,

ARM9,Cortex-M3微控制处理器,例如Atmel,Freescale,Luminary,NXP,OKI,Samsung,Sharp,ST,TI等厂家的产品。MDK提供工业标准的编译工具和强大的调试支持。MDK是专为MCU的用户开发嵌入式软件而设计的一套开发工具。包括根据器件定制的调试仿真支持,丰富的项目模版,固件示例以及为内存优化的RTOS库。MDK上手容易,功能强大,适合微控制器应用程序开发。

RVDS

获取更多权威电子书 请登录https://www.360docs.net/doc/0111630484.html,

正如前面所介绍RVDS 是专为SOC ,FPGA 以及ASIC 用户开发复杂嵌入式应用程序或者和操作系统平台组件接口而设计的开发工具。RVDS 支持器件设计,支持多核调试,支持基于所有ARM

和Cortex 系列CPU 的程序开发。RVDS 还可以和第三方软件进行很好的连接。

图4 RVDS 和RV-MDK

如上图表示:MDK 主要是为终端客户提供价格低廉,功能强大的开发工具。集成了RealView 编译工具,Keil uVision 开发环境,支持基于

ARM7,ARM9,Cortex-M1,Cortex-M3产品的仿真,提供非常高效的RTOS

Kernel ,除此,提供的Real-Time 库还有TCP/IP 网络套件,Flash 文件系统,USB 器件接口,CAN 总线接口等,方便终端用户进行应用开发。因此对于MDK 用户来说,他们得到的就是可以对MCU 进行仿真和调试,容易使用又没有冗余的功能,关键是价格实惠,而且用户可以先试用再购买。

对于芯片设计公司以及相关解决方案提供商来说,需要的是更加强大的工具,可以进行多核调试,需要更加先进的调试和分析功能,可以支持多种操作系

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, 统,可以进行IP整合开发,可以结合ESL工具进行架构评估,系统软硬件划分等,那么选择RVDS可以提供完整解决方案。

3 编译和连接

ARM RealView 编译工具已经发展了16年,一直致力于为客户提供最好的编译器。RVDS是ARM公司继SDT与ADS1.2之后主推的新一代开发工具,目前最高版本是3.1。它由RealView编译器(RVCT)、RealView汇编器(armasm)、RealView连接器(armlinker),以及RealView调试器(RVDebugger)三部分组成。

RVDS对代码密度的提升、代码执行速度的提高,都可以由ARM开发工具自动实现,而不需要软件开发人员花费过多的时间手动优化高级语言代码。这是RVDS的优势所在。

先前版本中的编译器armcc,tcc,armcpp,tcpp 已经整合成一个编译器armcc,可以将标准的C或C++语言源程序编译成32位ARM指令代码或者16位Thumb指令代码或者Thumb-2指令代码。

编译器输出的ELF格式的目标文件,包含调试信息。除此之外,编译器可以输出所生成的汇编语言列表文件。

RVDS的编译器根据最新的ARM架构进行特别的优化,针对每个ARM架构都提供最好的代码执行性能,最优的代码密度。可以根据需要选择调试信息级别,以及不同的代码优化方向和优化级别。

RVCT中C和RogueWaveC++库包括

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, ! 完整ISO标准C语言库

标准C语言函数集,C语言库需要的支持函数以及在Semihosted执行环境中需要的目标相关的函数。

C语言库结构使用户很容易定义目标相关函数,以适应特定的目标环 ARM

境。

! 浮点函数库使用ARM在IEEE754标准(二进制浮点算法)上实现的浮点环境。

! RogueWaveC++库

RogueWaveC++库包含标准C++函数,编译器需要的支持函数。

各种源文件经过ARM编译器编译后生成ELF格式的目标文件。这些目标文件和相应的C/C++运行时库经过ARM连接器处理后,生成ELF格式映像文件。 ARM连接器可以去除使用不到的代码段和函数,这样可以减少内存的使用。 ARM连接器可以将不同的指令代码和数据代码放置到不同的内存地址范围。(https://www.360docs.net/doc/0111630484.html,/support/faqdev/1245.html)

通常在嵌入式系统中,指令和数据代码会固化在非易失性存储器中(ROM 或Flash),可以从这些地方上电启动。从运行速度方面考虑,部分指令和数据代码会在启动后搬运到易失性存储器(RAM)中,因此连接器可以使用一些方法机制来配置调度。

这种分散装载(scatterloading)的机制可以让把不同的指令和数据分散的放到不同的地址,而且这些地址在系统启动和系统运行可以是不同的映射。

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, 详细的地址分配可以是用参数来指定,或者用一个描述文件来作为连接器的参数。使用描述文件会使维护起来非常简单,而且如果要改变地址分配,不需要把整个项目完全重新来做,只要把项目中需要的目标重新连接即可。

一个scatterloading文件的示例:

LOAD_FLASH 0x04000000 0x80000 ; 启动地址和长度

{

EXE_FLASH 0x04000000 0x80000

{

init.o (Init, +First) ;

* (+RO) ;

}

32bitRAM 0x0000 0x2000

{

vectors.o (Vect, +First) ;

int_handler.o (+RO)

}

16bitRAM 0x2000 0x80000

{

* (+RW,+ZI) ;

}

}

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, ! 本文件定义了启动区域和三个执行区域。在大括号外面定义了启动区域(LOAD_FLASH),里面三个定义了执行区域

(EXEC_FLASH,32bitRAM,16bitRAM)。

! 为了提高运行速度,异常向量(在vectors.s)和异常句柄(在int_handler.c)被重新放置到32bitRAM的零地址开始的地方。

! 可以读写的变量被复制到16bitRAM的0x2000地址开始的地方。

! 零初始化的数据和可读写数据放在16bitRAM内。

! 其他不需要搬运的代码只需要还放在Flash里就好。

3.1 RVCT的优化级别与优化方向

提到RVCT就不能不提armcc的四个优化级别和两个编译选项,-O1、-O2、-O3、-O4,以及-Otime、-Ospace。

-Ospace与-Otime负责给编译器提供代码优化的大方向,告知编译器编译任务的主要目标是代码密度(-Ospace)还是代码性能(-Otime)。而-O1、-O2、-O3、-O4则分别代表4种逐次递进的不同优化级别。

OSpace 还是OTime?

显然代码密度与代码执行速度在很多情况下是一对矛盾。以下面的代码为例。例1中左右两段代码可以完成相同的任务,但是左边的有较高的代码密度,右边的则有较高的执行速度。因为当expr = 0时,标志循环结束时,右边的代码可以顺序执行下去;而左边代码必须先跳转至循环体首部判断expr的值,随

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, 后再跳转道循环体尾,继续执行下一条指令。

例1代码速度与尺寸的对比

do

(expr)

while

(expr) if

{ { do

}

body;

body; {

while (expr);

} }

那么我们什么时候使用Otime 什么时候使用Ospace呢?Otime与Ospace 需要开发人员根据系统实际需求来决定,最好的情况是在两者之间找到一个合适的平衡点,而不是单纯的追求速度或者代码尺寸的缩小。即,将不同的代码模块根据其特性分别使用不同的编译选项。

此外,RVCT编译器支持很多非常有用的编译选项,如--no_inline(取消所有代码的内联函数)、--split_ldm(限制LDM/STM指令的最大操作寄存器数目)、--split_sections(将每个函数,而不是源文件,作为一个编译单元进行操作)等等。

编译器的所有这一切都可以严格根据开发者的要求,帮助开发人员得到系统真正需要的优化过了的代码。

O3还是O2?

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, 老的开发工具,如ADS1.2中,只有3种递进的代码优化级别,对应3种编译选项,即-O0(Minimum optimization)、-O1(Restricted optimization)、-O2(High optimization )。

使用-O0编译选项时,RVCT编译器只对代码作最基本的优化操作,编译结束后用户得到的代码与用户手写源代码之间的差距很小,这种特性的主要作用是为了方便用户在程序开发阶段的调试工作,避免由于优化而产生的调试屏障。此外,很多资深软件工程师偏向于手写优化代码,在这种情况下,由于代码已经被优化过,可以使用-O0编译选项减少RVCT的工作量,节省编译链接的时间。

-O1与-O2则分别是相对于-O0更加高级别的编译优化选项,前者提供有限的优化;后者则会对代码进行较大程度的优化改进操作。

RVDS中新增加了-O3(Maximum optimization)编译选项,它可以最大程度的发挥RVCT编译器的优势,将代码编译成最优。O3与O2都是较高级别的编译优化选项,但-O3相比较于-O2,主要优势有以下几点。当用户使用-O3选项时:

――编译器会自动对代码进行髙阶标量优化。所谓的高阶标量优化就是编译器对根据代码特点,针对循环、指针等进行髙阶优化。

――编译器会把尽可能多函数的编译为内联(inline)函数;

――Multifile compilation功能被自动使能。

对于循环与指针的髙阶优化(High-level scalar optimizations)

当编译选项为-O3 –Otime时,RVCT会根据代码的具体情况,针对循环、

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, 指针等部分作髙阶优化工作:循环解开(Loop unrolling)、融合(fusion)、位置调整(interchange)、指针优化等等。以例2的函数为例。例2是一段简单的C 循环函数,在循环中含有数组指针调用。

例2

CodeA

void increment(int *restrict b, int *restrict c)

{ int i;

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

{

c[i] = b[i] + 1;

}

}

CodeB

void increment(int *b, int *c)

{

int i;

int *pb, *pc;

int b3, b4;

pb = b - 1;

pc = c - 1;

b3 = pb[1];

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, for (i = (100 / 2); i != 0; i--)

{

b4 =*(pb +=2);

pc[1] = b3 + 1;

b3 = pb[1];

*(pc += 2) = b4 + 1;

}

}

仔细观察可以发现,CodeA与CodeB可以完成同样的功能,即将数组b的每个成员加1赋值给数组c对应成员。但是CodeB与CodeA相比,有较高的执行速度。主要体现在以下几点:

――循环100次变成了循环50次(loop unrolling),减少了跳转次数;

――数组变成了指针,减少每次计算数组偏移量的指令;

――微调了不同代码操作的执行顺序,减少了流水线stall的情况;

――循环从++循环变成了――循环。这样可以使用ARM指令的条件位,为每次循环减少了一条判断指令。

很多程序员就是这样,通过这种手写不同的C代码,再实现相同任务的情况下,提高了代码执行效率。

在RVDS中,使用-O3 –Otime编译选项,RVCT会自动帮助程序员进行这些髙阶标量优化,即,RVCT会直接将CodeA优化成以前由CodeB才能得到的汇编代码。虽然优化之后函数的代码尺寸大于原先的函数,但是执行速度却有大

嵌入式系统原理与应用复习知识点总结

第一章 1、嵌入式系统的应用范围:军事国防、消费电子、信息家电、网络通信、工业 控制。 2、嵌入式系统定义:嵌入式系统是以应用为中心,以计算机技术为基础,软件 与硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专 用计算机系统。(嵌入式的三要素:嵌入型、专用性与计算机系统)。 3、嵌入式系统的特点:1)专用性强;2)实时约束;3)RTOS;4)高可靠性;5) 低功耗;6)专用的开发工具和开发环境;7)系统精简; 4、嵌入式系统的组成: (1)处理器:MCU、MPU、DSP、SOC; (2)外围接口及设备:存储器、通信接口、I/O 接口、输入输出设备、电源等;(3)嵌入式操作系统:windows CE、UCLinux、Vxworks、UC/OS; (4)应用软件:Bootloader 5、嵌入式系统的硬件:嵌入式微处理器(MCU、MPU、DSP、SOC),外围电路, 外部设备; 嵌入式系统的软件:无操作系统(NOSES),小型操作系统软件(SOSE)S,大型 操作系统软件(LOSES)注:ARM 处理器三大部件:ALU、控制器、寄存器。 6、嵌入式处理器特点:(1)实时多任务;(2)结构可扩展;(3)很强的存储区 保护功能;(4)低功耗; 7、DSP处理器两种工作方式:(1)经过单片机的DSP可单独构成处理器;(2) 作为协处理器,具有单片机功能和数字处理功能; 第二章 1、IP核分类:软核、固核、硬核; 2、ARM 处理器系列:(1)ARM7系列(三级流水,thumb 指令集,ARM7TDMI); (2)ARM9系列(DSP处理能力,ARM920T)(3)ARM/OE(增强DSP)(4)SecurCone 系列(提供解密安全方案);(5)StrongARM系列(Zntle 产权);(6)XScale系列(Intel 产权);(7)Cortex 系列(A:性能密集型;R:要求实时性;M:要求低 成本) 3、ARM 系列的变量后缀:(1)T:thumb 指令集;(2)D:JTAG调试器;(3)快

嵌入式技术基础与实践_习题参考答案

单片机习题参考答案 第1章概述习题参考答案 1.嵌入式系统的基本含义是什么?为什么说单片机是典型的嵌入式系统? 答:即MCU的含义是:在一块芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM 等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。大部分嵌入式系统以MCU为核心进行设计。MCU从体系结构到指令系统都是按照嵌入式系统的应用特点专门设计的,它能很好地满足应用系统的嵌入、面向测控对象、现场可靠运行等方面的要求。因此以MCU为核心的系统是应用最广的嵌入式系统。 简述嵌入式系统的特点以及应用领域。 答:嵌入式系统属于计算机系统,但不单独以通用计算机的面目出现;嵌入式系统开发需要专用工具和特殊方法;使用MCU设计嵌入式系统,数据与程序空间采用不同存储介质;开发嵌入式系统涉及软件、硬件及应用领域的知识;嵌入式系统的其他特点,比如紧张的资源,较高稳定性要求,低功耗,低成本等。一般用于工业控制,智能家电,日常电子等领域。 3.比较MCU与CPU的区别与联系。 答:CPU是一个单独的PC处理器。而MCU,则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。所以可以这么说,MCU 是一个包含微处理器的嵌入式系统,而CPU紧紧是一个处理器而已。 4.举例说明嵌入式系统在日常生活中的应用。 答:日常数码产品:手机,MP3,U盘,相机等。 日常工业类:冰箱,空调,微波炉,汽车等。 5.C语言的那些特性使得它成为嵌入式系统中使用频率最高的高级语言。 答:相比底端汇编,更简单易学;与高级语言如(C++,C#,java等)相比,执行效率高,编译后的编码体积小,而且支持好的编译器还支持嵌入汇编代码;对位的操纵能力很强。6.阅读光盘中【第01章(概述)阅读资料】中的“嵌入式C语言工程简明规范”,用一页纸给出嵌入式C语言工程简明规范的要点。 答:此规范主要针对单片机编程语言和08编译器而言,包括命名、注释、编码规范性等内容。建议在一个工程或者一个项目中尽量遵循相同的代码规范,而不是说你只能拥有一个代码规范。 (1)命名规则:命名清晰明了,有明确含义,使用完整单词或约定俗成的缩写。通常,较短的单词可通过去掉元音字母形成缩写;较长的单词可取单词的头几个字母形成缩写。即"见名知意";命名风格要自始至终保持一致;命名中若使用特殊约定或缩写,要有注释说明;为了代码复用,命名中应避免适用与具体项目相关的前缀;应使用英语命名。 (2)注释:注释基本原则就是有助于对程序的阅读理解,说明程序在"做什么",解释代码的目的、功能和采用的方法。一般情况源程序有效注释量在30%左右。注释语言必须准确、易懂、简洁。边写代码边注释,修改代码同时修改相应的注释,不再有用的注释要删除。汇编和C中都用"//",取消";" 不使用段注释" /* */ "(调试时可用)。 使用文件注释必须说明文件名、项目名称、函数功能、创建人、创建日期、版本信息等相关信息。修改文件代码时,应在文件注释中记录修改日期、修改人员,并简要说明此次修改的目的。所有修改记录必须保持完整。文件注释放在文件顶端,用"/*……*/"格式包含。

arm嵌入式系统基础教程课后答案.doc

arm 嵌入式系统基础教程课后答案【篇一:arm 嵌入式系统基础教程习题答案周立功】 /p> 1 、举出3 个书本中未提到的嵌入式系统的例子。 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的 专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(embedded microprocessor unit, empu) 嵌入式微控制器(microcontroller unit, mcu) 嵌入式dsp 处理器(embedded digital signal processor, edsp) 嵌入式片上系统(system on chip) 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实 时操作系统提高了系统的可靠性。其次,提高了开发效率,缩短了 开发周期。再次,嵌入式实时操作系统充分发挥了32 位cpu 的多任务潜力。 第二章 1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务 是什么? 项目的生命周期一般分为识别需求、提出解决方案、执行项目和结 束项目 4 个阶段。识别需求阶段的主要任务是确认需求,分析投资 收益比,研究项目的可行性,分析厂商所应具备的条件。 提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。 执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定 期监控进展,分析项目偏差,采取必要措施以实现目标。 结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系 统交接给维护人员;结清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险? 在一个项目中,有许多的因素会影响到项目进行,因此在项目进行 的初期,在客户和开发团队都还未投入大量资源之前,风险的评估

嵌入式系统开发基础——基于ARM9微处理器C语言程序设计各章习题

第一章习题 1。嵌入某种微处理器或单片机的测试和控制系统称为嵌入式控制系统(Embedded Control System)。 在应用上大致分为两个层次,以MCS-51为代表的8位单片机和以ARM技术为基础的32位精减指令系统单片机 2。目标机上安装某种嵌入式操作系统和不安装嵌入式操作系统, 以MCS-51为代表的8位单片机不安装嵌入式操作系统。 3。32位、16位和8位 5。32位、16位 6。在大端格式中,字数据的高字节存储在低字节单元中,而字数据的低字节则存放在高地址单元中。 在小端存储格式中,低地址单元存放的是字数据的低字节,高地址单元中,存放的是数据的高字节。 第二章习题 (略) 第三章习题 1。 (1)寄存器大约有17类,每个的定义都是寄存器名字前面加一个小写”r” (2)在56个中断源中,有32个中断源提供中断控制器,其中,外部中断EINT4~EINT7通过“或”的形式提供一个中断源送至中断控制器,EINT8~EINT23也通过“或”的形式提供一个中断源送至中断控制器。 第四章习题 1,56个中断源,有32个中断源提供中断控制器 2,两种中断模式,即FIQ模式(快速模式)和IRQ模式(通用模式)。通过中断模式控制寄存器设置。 3,常用的有5个,它们是中断模式控制寄存器,控制中断模式;中断屏蔽寄存器,控制中断允许和禁止;中断源挂起寄存器,反映哪个中断源向CPU申请了中断;中断挂起寄存器,反映CPU正在响应的中断是哪个中断源申请的;中断优先级寄存器,它和中断仲裁器配合,决定中断优先级。

4,中断源挂起寄存器,反映哪个中断源向CPU申请了中断;中断挂起寄存器,反映CPU正在响应的中断是哪个中断源申请的。中断源向CPU申请了中断如果该中断源没被屏蔽并且没有和它同级或高级的中断源申请中断,才能被响应。系统中可以有多个中断源向CPU申请中断,但同一时刻CPU只能响应一个最高级的中断源中断请求。中断源挂起寄存器和中断挂起寄存器反映了中断系统不同时段的状态。 5,进入中断服务程序先清中断源挂起寄存器和中断挂起寄存器;中断结束,将该中断源屏蔽。 6,将该中断源屏蔽取消;将该中断源屏蔽。 第五章习题 1,S3C2410芯片上共有117个多功能的输人/输出引脚,它们是。 ?1个23位的输出端口(端口A); 。1个11位的输入/输出端口(端口B); 。1个16位输入/输出端口(端口C); ?1个16位输入/输出端口(端口D); ?1个16位输入/输出端口(端口E); ?1个8位输人/输出端口(端口F); ?1个16位输入/输出端口(端口G); 。1个11位的输入/输出端口(端口H)。 2,S3C2410 I/O口的控制寄存器、数据寄存器、上拉电阻允许寄存器的作用? 端口控制寄存器定义了每个引脚的功能;与I/O口进行数据操作,不管是输入还是输出,都是通过该口的数据寄存器进行的,如果该端口定义为输出端口,那么可以向GPnDA T的相应位写数据。如果该端口定义为输人端端口,那么可以从GPnDAT的相应位读出数据。 端口上拉寄存器控制每个端口组上拉电阻的使能/禁止。如果上拉寄存器某一位为0,则相应的端口上拉电阻被使能,该位做基本输入/输出使用,即第1功能;如果上拉寄存器某一位是1,则相应的端口上拉电阻被禁止,该位做第2功能使用。 5, rGPBCON=rGPBCON& 0xFFFFFC∣1; //蜂鸣器配置,PB1口接蜂鸣器,输出delay(1000); rGPBDAT & = 0xFFFFFE; //蜂鸣器响,低电平有效 rGPBDAT∣=1; // 蜂鸣器停 第六章习题 3,S3C2410 UART波特率如何确定?

ARM嵌入式系统基础教程复习

《嵌入式系统基础教程》复习 1.什么是嵌入式系统?其特点有些什么? 答:嵌入式系统是“以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。” 特点:1)是专用的计算机系统,用于特定的任务; 2)资源较少,可以裁减; 3) 功耗低,体积小,集成度高,成本低; 4)使用实时操作系统; 5) 可靠性要求更高,具有系统测试和可靠性评估体系; 6)运行环境差异大 7)大部分程序固化在ROM中; 8) 较长的生命周期; 9)嵌入式微处理器通常包含专用调试电路 2.嵌入式系统的BooTLoader的功能是什么? 答:BootLoader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码。通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。(对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,但在系统启动时都必须运行BootLoader,为系统运行准备好软硬件环境。) 3.目前嵌入式操作系统有哪些? 答:1)μC/OS-II 嵌入式操作系统内核;2)VxWorks嵌入式实时操作系统;3)WinCE操作系统;4)Linux操作系统;5)Symbian操作系统 4.构造嵌入式开发环境有哪几种形式? 答:1)交叉开发环境;2)软件模拟环境;3)评估电路板 5.嵌入式系统开发的基本流程? 答:1)系统定义与需求分析; 2)系统设计方案的初步确立; 3)初步设计方案性价比评估与方案评审论证; 4)完善初步方案、初步方案实施; 5)软硬件集成测试; 6)系统功能性能测试及可靠性测试。 6.什么是可编程片上系统? 答:用可编程逻辑技术把整个系统放到一块硅片上,称作可编程片上系统SOPC。它是一种特殊的嵌入式系统,首先它是SOC,即由单个芯片实现整个系统的主要逻辑功能,具有一般SOC基本属性;其次,它又具备软硬件在系统可编程的功能,是可编程系统,具有可裁剪、可扩充、可升级等灵活的设计方式。 7.有时要使用Thumb技术的原因 答:(Thumb指令集是把32位的ARM指令集的一个子集重新编码后形成的一个特殊的16位指令集。)在性能和代码大小之间取得平衡,在需要较低的存储代码时采用Thumb指令系统用Thumb指令编写最小代码量的程序(能够很好的解决代码长度的问题),却取得以ARM代码执行的最好性能,可以带来低功耗,小体积,低成本。 8.ARM处理器的工作模式有哪几种? 答:1)正常用户模式(user); 2)快速中断模式(fiq); 3)普通中断模式(irq); 4)操作系统保护模式(svc)或管理模式; 5)数据访问中止模式(abt); 6)处理未定义指令的未定义模式(und); 7)运行特权级的操作系统任务的系统模式(sys)。 9.寄存器R13,R14,R15的专用功能各是什么? 答:1)寄存器R13保存堆栈指针SP;

!嵌入式系统开发资料(入门必备)

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, ARM嵌入式系统开发综述ARM开发工程师入门宝典

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, 前言 嵌入式系统通常是以具体应用为中心,以处理器为核心且面向实际应用的软硬件系统,其硬件是整个嵌入式系统运行的基础和平台,提供了软件运行所需的物理平台和通信接口;而嵌入式系统的软件一般包括操作系统和应用软件,它们是整个系统的控制核心,提供人机交互的信息等。所以,嵌入式系统的开发通常包括硬件和软件两部分的开发,硬件部分主要包括选择合适的MCU或者SOC 器件、存储器类型、通讯接口及I/O、电源及其他的辅助设备等;软件部分主要涉及OS porting和应用程序的开发等,与此同时,软件中断调试和实时调试、代码的优化、可移植性/可重用以及软件固化等也是嵌入式软件开发的关键。 嵌入式系统开发的每一个环节都可以独立地展开进行详细的阐述,而本文的出发点主要是为嵌入式开发的初学者者提供一个流程参考。因为对于初学者在面对一个嵌入式开发项目的时候,往往面临着诸多困难,如选择什么样的开发平台?什么样的器件类型?在进行编译时怎样实现代码优化?开发工具该如何选择和使用?在进行程序调试时应该注意那些问题以及选择什么样的嵌入式OS 等等。希望通过本文,能帮助初学者了解有关ARM嵌入式系统开发流程。

获取更多权威电子书请登录https://www.360docs.net/doc/0111630484.html, 目录 前言 (2) 1 嵌入式开发平台 (4) 1.1 ARM的开发平台: (4) 1.2 器件选型 (7) 2 工具选择 (11) 3 编译和连接 (13) 3.1 RVCT的优化级别与优化方向 (16) 3.2 Multifile compilation (21) 3.3调试 (22) 4 操作系统 (23) 4.1 哪里可以得到os 软件包 (Open Source and Linux Kernel) (25) 4.2 安装镜像 (26) 4.3 交叉编译 (26) 总结 (27)

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

习题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 位)

(完整版)通用PC系统与嵌入式系统的区别.doc

通用 PC系统与嵌入式系统的区别.txt精神失常的疯子不可怕,可怕的是精神正常的疯子! 一什么是嵌入式系统 嵌入式系统一般指非 pc 系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用 为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格 要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于pc 中 bios 的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要 求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统 及应用软件系统等组成,它是可独立工作的“器件”。 嵌入式系统几乎包括了生活中的所有电器设备,如掌上pda、移动计算设备、电视机顶盒、 手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安 全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。 嵌入式系统的硬件部分,包括处理器 / 微处理器、存储器及外设器件和 i/o 端口、图形控制器等。嵌 入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而 大多使用eprom、eeprom 或闪存 (flash memory)作为存储介质。软件部分包括操作系统软件 ( 要求实时和多任务操作 ) 和应用程序编程。应用程序控制着系统的运作和行为;而操作系统控制 着应用程序编程与硬件的交互作用。 二嵌入式处理器 嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般具备 4 个特点: (1) 对实时和多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时 操作系统的执行时间减少到最低限度;(2) 具有功能很强的存储区保护功能,这是由于嵌入 式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强 大的存储区保护功能,同时也有利于软件诊断;(3) 可扩展的处理器结构,以能迅速地扩展 出满足应用的高性能的嵌入式微处理器;(4) 嵌入式微处理器的功耗必须很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,功耗只能为mw 甚至μ w 级。 据不完全统计,目前全世界嵌入式处理器的品种总量已经超过1000 种,流行的体系结构有 30 多个系列。其中 8051 体系占多半,生产这种单片机的半导体厂家有20 多个,共 350 多种衍生产品,仅 philips 就有近 100 种。现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空间一般从64kb 到 16mb,处理速度为 0.1~2000mips ,常用封装 8~144 个引脚。 根据现状,嵌入式计算机可分成下面几类: (1) 嵌入式微处理器(embedded microprocessor unit, empu) 嵌入式微处理器采用“增强型”通用微处理器。由于嵌入式系统通常应用于环境比较恶劣的 环境中,因而嵌入式微处理器在工作温度、电磁兼容性以及可靠性方面的要求较通用的标准 微处理器高。但是,嵌入式微处理器在功能方面与标准的微处理器基本上是一样的。根据实

嵌入式技术基础与实践(第3版)课后习题1-8章答案

试阅: hello ---------------------正文 第一章 1.嵌入式系统的基本含义是什么?为什么说单片机是典型的嵌入式系统? 答:即MCU的含义是:在一块芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。大部分嵌入式系统以MCU为核心进行设计。MCU从体系结构到指令系统都是按照嵌入式系统的应用特点专门设计的,它能很好地满足应用系统的嵌入、面向测控对象、现场可靠运行等方面的要求。因此以MCU为核心的系统是应用最广的嵌入式系统。 2.简述嵌入式系统的特点以及应用领域(举例)。 答:嵌入式系统属于计算机系统,但不单独以通用计算机的面目出现;嵌入式系统开发需要专用工具和特殊方法;使用MCU设计嵌入式系统,数据与程序空间采用不同存储介质;开发嵌入式系统涉及软件、硬件及应用领域的知识;嵌入式系统的其他特点,比如紧张的资源,较高稳定性要求,低功耗,低成本等。 一般用于工业控制,智能家电,日常电子等领域。 日常数码产品:手机,MP3,U盘,相机等。 日常工业类:冰箱,空调,微波炉,汽车等。 3.比较MCU与CPU的区别与联系。 答:CPU是一个单独的PC处理器。而MCU,则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。所以可以这么说,MCU 是一个包含微处理器的嵌入式系统,而CPU仅仅是一个处理器而已。 4. 总结嵌入式系统常用术语。 硬件:封装,印刷电路板,动态可读写随机存储器与静态可读写随机存储器,只读存储器,闪速存储器,模拟量与开关量。 通信:并行通信,串行通信,串行外设接口,集成电路互连总线,通用串行总线,控制器局域网,背景调试模式,边界扫描测试协议,串行线调试技术。 功能模块及软件:通用输入/输出,A/D与D/A,脉冲宽度调制器,看门狗,液晶显示,发光二级管,键盘,实时操作系统。 5.C语言的那些特性使得它成为嵌入式系统中使用频率最高的高级语言。 答:相比底端汇编,更简单易学;与高级语言如(C++,C#,java等)相比,执行效率高,编译后的编码体积小,而且支持好的编译器还支持嵌入汇编代码;对位的操纵能力很强。

嵌入式系统基础知识总结

必读:嵌入式系统基础知识总结 2016-07-22电子发烧友网 本文主要介绍嵌入式系统的一些基础知识,希望对各位有帮助。 嵌入式系统基础 1、嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 (2)嵌入式系统发展的4个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向Internet阶段。 (3)知识产权核(IP核):具有知识产权的、功能具体、接口规范、可在多个集成电路设计中重复使用的功能模块,是实现系统芯片(SOC)的基本构件。(4)IP核模块有行为、结构和物理3级不同程度的设计,对应描述功能行为的不同可以分为三类:软核、固核、硬核。 2、嵌入式系统的组成 包含:硬件层、中间层、系统软件层和应用软件层 (1)硬件层:嵌入式微处理器、存储器、通用设备接口和I/O接口。 嵌入式核心模块=微处理器+电源电路+时钟电路+存储器

Cache:位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。它的主要目标是减小存储器给微处理器内核造成的存储器访问瓶颈,使处理速度更快。 (2)中间层(也称为硬件抽象层HAL或者板级支持包BSP). 它将系统上层软件和底层硬件分离开来,使系统上层软件开发人员无需关系底层硬件的具体情况,根据BSP层提供的接口开发即可。 BSP有两个特点:硬件相关性和操作系统相关性。 设计一个完整的BSP需要完成两部分工作: A、嵌入式系统的硬件初始化和BSP功能。 片级初始化:纯硬件的初始化过程,把嵌入式微处理器从上电的默认状态逐步设置成系统所要求的工作状态。 板级初始化:包含软硬件两部分在内的初始化过程,为随后的系统初始化和应用程序建立硬件和软件的运行环境。 系统级初始化:以软件为主的初始化过程,进行操作系统的初始化。 B、设计硬件相关的设备驱动。 (3)系统软件层:由RTOS、文件系统、GUI、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和开发平台。 (4)应用软件:由基于实时系统开发的应用程序组成。

周立功-ARM嵌入式系统基础教程课后习题答案11

第一章 思考与练习 1、举出3个书本中未提到的嵌入式系统的例子。 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系 统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(Embedded Microprocessor Unit, EMPU) 嵌入式微控制器(Microcontroller Unit, MCU) 嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP) 嵌入式片上系统(System On Chip) 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。 其次,提高了开发效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了32 位CPU 的多任务潜力。 第二章 1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么? 项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。 识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。 提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。 执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展, 分析项目偏差,采取必要措施以实现目标。 结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险? 在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。 需求风险;时间风险;资金风险;项目管理风险 3、何谓系统规范?制定系统规范的目的是什么? 规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。 4、何谓系统规划?为何要做系统规划 系统规划就是拟定一个开发进程,使项目在合理的进程范围中逐渐建构完成。其目地是让客户可以进一步地掌握系统开发的进程,并确定检查点,以让双方确定项目是否如预期中的进度完成。 5、为什么在项目结束前需要进行项目讨论? 项目的讨论一个项目进行的反馈机制。通过这一个程序,项目团队的经验才可以被记录 下来,也就是说,这是一个撰写项目历史的过程。 第三章 1、ARM7TDMI中的T、D、M、I的含义是什么? 64 位乘法指令(带M 后缀的)、支持片上调试(带D 后缀的)、高密度16 位的Thumb 指令机扩展(带T 后缀的)和EmbededICE 观察点硬件(带I 后缀的) 2、ARM7TDMI采用几级流水线?使用何种存储器编址方式? 三级流水线(取指译码执行);使用了冯·诺依曼(V on Neumann )结构,指令和数据共用一条 32 位总线。 3、ARM处理器模式和ARM处理器状态有何区别? 处理器模式指的是处理器在执行程序时在不同时刻所处的不同状态,处理器状态指的是处理器当前所执行的指令集。 4、分别列举ARM的处理器模式和状态。 状态: ARM 状态32 位,这种状态下执行的是字方式的ARM 指令

嵌入式系统概述

1 嵌入式系统概述 嵌入式系统(Embedded System )也称嵌入式计算机系统。顾名思义,嵌入式系统是计算机的一种特殊形式,是计算机技术、通信技术、半导体技术、微电子技术、语音图像数据传输技术,甚至传感器等先进技术和具体应用对象相结合后的更新换代产品。嵌入式系统不仅和一般的PC 机上的应用系统不同,而且针对不同的具体应用而设计的嵌入式系统之间的差别也很大。嵌入式系统强调硬件和软件的协同性与整合性,软件和硬件可剪裁的,适用于应用系统对功能、可靠性、成本、体积、功耗和应用环境等有严格要求的专用计算机系统。 嵌入式系统特别强调“量身定做”的原则,开发人员往往需要针对某一种特殊用途开发出一个截然不同的嵌入式系统,其特点如下。 (1)嵌入式系统具有应用针对性 应用针对性是嵌入式系统的一个基本特征,体现这种应用针对性的首先是软件,软件实现特定应用所需要的功能,所以嵌入式系统应用中必定配置了专用的应用程序;其次是硬件,大多数嵌入式系统的硬件是针对应用专门设计的,但也有一些标准化的嵌入式硬件模块,采用标准模块可降低开发的技术难度和风险,缩短开发时间,但灵活性不足。 (2)嵌入式系统硬件扩展能力要求不高 硬件上,嵌入式系统作为一种专用的计算机系统,其功能、机械结构、安装要求比较固定,所以一般没有或仅有较少的扩展能力;软件上,嵌入式系统往往是一个设备固定组成部分,其软件功能由设备的需求决定,在相对较长的生命周期里,一般不需要对软件进行改动。但也有一些特例,比如现在的手机,尤其是安装有嵌入式操作系统的智能手机,软件安装、升级比较灵活,但相对于桌面计算机,其软件扩展能力还是相当弱。 (3)嵌入式系统操作系统精简 在现代的通用计算机中,没有操作系统是无法想象的,而在嵌入式计算机中情况则大第 章

嵌入式系统开发基础—基于ARM微处理器和Linux操作系统的课后答案

1-1 什么是嵌入式系统?嵌入式系统和普通计算机系统的区别是什么?举例说明。 答: 问题一:嵌入式系统是以应用为中心,以计算机为基础,其软硬件可裁剪配置,对功能、可靠性、成本、体积、功耗有严格约束的一种专用计算机系统。 1-2 简述嵌入式系统的构成 1-3 答:R13:也记作SP,在ARM指令集中虽然没有强制,但是通常用于堆栈指针SP;在Thumb 指令集中强制其作为堆栈指针。 R14:也记作程序连接寄存器LR(Link Register),用于保存子程序调用或异常中断处理返回时程序的返回地址。 R15:也记作程序计数器PC,用于标示下一条将要执行的指令地址。 CPSR:程序状态寄存器,包含条件标识位、中断标识位、当前处理器模式等状态和控制位。 SPSR:备份的程序状态寄存器。在异常中断处理过程中,用于保存被中断处理程序的执行现场和处理器状态。 1-4 答:(1)复位异常中断:当系统上电、复位、软件复位时产生该类型中断。 (2)未定义指令异常中断:当ARM处理器或系统中的协处理器认为当前指令未定义时,产生该中断。通常利用该中断模拟浮点向量运算。 (3)软件中断:可用于用户模式下特权操作的调用,既可以是系统功能,也可以是用户自定义的功能。

(4)指令预取中止异常中断:如果处理器预取的指令地址不存在,或者该地址不允许当前指令访问,产生该类型的中断。 (5)数据访问中止异常中断:如果数据访问的目标地址不存在,或者该地址不允许当前指令访问,则产生该中断。 (6)外部中断:当处理器的外部中断请求引脚有效,而且CPSR的I控制位被清除时,产生该类型的中断 (7)快速外部中断:当处理器的快速中断请求引脚有效,而且CPSR的F控制位被清除时,产生该中断。 1-5 答:(1)ADR R0, TABLE (2) ADR R1, DATA LDR R0, [R1] (3) LDR R0, =DATA (4) TABLE EQU 800 MOV R0, #TABLE (5) TABLE SPACE 20 1-6 答: R0=DATA1这组数据在存储器中所存放的起始地址,由编译器分配; R1=0x0C0D0E0F; R2=0xF; R3=0x8020; [0x8020]=R1 1-7 答: AREA SWITCH, CODE, READONLY ENTRY AND R2, R0, 0x3 ;R2 R0的低两位 MOV R2, R2, LSL #30 ;将低两位移动到高两位 BIC R0, R0, 0x3 ;将R0的低两位清0 AND R3, R1, 0xC0000000 ;R3R1的高两位 MOV R3, R3, LSR #30 ;将高两位移动到低两位 BIC R1, R1, 0xC0000000 ;将R1的高两位清0 ORR R0, R0,R3 ;R1的高两位写入到R0的低两位 ORR R1, R1, R2 ;R0的低两位写入到R1的高两位 END 1-8 答: // main.c Include “stdio.h” extern int sum (int num[], int n); main(){ int array[10]={20, 30, 23, 5,15,64,6,15,72,73 };

《ARM嵌入式系统基础教程》试题及答案

《ARM嵌入式系统基础教程》试题及答案 一、选择题 1、以下说法不正确的是(B )。 A、任务可以有类型说明 B、任务可以返回一个数值 C、任务可以有形参变量 D、任务是一个无限循环 2下列描述不属于RISC计算机的特点的是(C)。 A.流水线每周期前进一步。B.更多通用寄存器。 C.指令长度不固定,执行需要多个周期。 D.独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输。 3 存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端模式存储,则2000H存储单元的内容 为(D)。 A、0x21 B、0x68 C、0x65 D、0x02 4 μCOS-II中对关键代码段由于希望在执行的过程中不被中断干扰,通常采用关中断的方式,以下X86汇编代码正确而且不会改变关中断之前的中断开关状态的是(D) A.先CLI、执行关键代码、再STI B. 先STI、执行关键代码、再CLI C. 先POPF、CLI、执行关键代码、再PUSHF D. 先PUSHF、CLI、执行关键代码、再POPF。 5 RS232-C串口通信中,表示逻辑1的电平是(D )。 A、0v B、3.3v C、+5v~+15v D、-5v~-15v 6 ARM汇编语句“ADD R0, R2, R3, LSL#1”的作用是(A)。 A.R0 = R2 + (R3 << 1) B. R0 =( R2<< 1) + R3 C. R3= R0+ (R2 << 1) D. (R3 << 1)= R0+ R2 7 IRQ中断的入口地址是(C)。FIQ的入口地址为0x0000001C A、0x00000000 B、0x00000008 C、0x00000018 D、0x00000014 8 S3C2420X I/O口常用的控制器是(D)。 A.端口控制寄存器(GPACON-GPHCON)。 B.端口数据寄存器(GPADAT-GPHDA T)。 C.外部中断控制寄存器(EXTINTN)。 D.以上都是。 9 实时操作系统中,两个任务并发执行,一个任务要等待其合作伙伴发来信息,或建立某个条件后再向前执行,这种制约性合作关系被成为(A)。 A. 同步 B. 互斥 C. 调度 D. 执行 10 和PC系统机相比嵌入式系统不具备以下哪个特点(C)。 A、系统内核小 B、专用性强 C、可执行多任务 D、系统精简 11 、ADD R0,R1,#3属于(A)寻址方式。 A. 立即寻址 B. 多寄存器寻址 C. 寄存器直接寻址 D. 相对寻址 12、GET伪指令的含义是(A) A. 包含一个外部文件 B. 定义程序的入口 C. 定义一个宏 D. 声明一个变量 13、存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存 储,则2000H存储单元的内容为(C)。 A、0x00 B、0x87 C、0x65 D、0x61 14、μCOS-II操作系统不属于(C)。 A、RTOS B、占先式实时操作系统 C、非占先式实时操作系统 D、嵌入式实时操作系统 15、若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDR R0,[R1,#8]!后R0的值为(D )。 A. 0x2000 B. 0x86 C. 0x2008 D. 0x39 16、寄存器R13除了可以做通用寄存器外,还可以做(C )。 A、程序计数器 B、链接寄存器 C、栈指针寄存器 D、基址寄存器 17、FIQ中断的入口地址是(A)。

嵌入式技术基础与实践复习题参考答案

嵌入式技术基础与实践(第二版) 习题参考答案 目录 嵌入式技术基础与实践(第二版) (1) 习题参考答案 (1) 第1章概述习题参考答案 (2) 第2章FreescaleS08微控制器习题参考答案 (3) 第3章第一个样例程序及工程组织习题参考答案 (4) 第5章串行通信接口SCI习题参考答案 (6) 第6章GPIO的应用实例—键盘、LED与LCD习题参考答案 (9) 第7章定时器模块习题参考答案 (10) 第8章串行外设接口SPI习题参考答案 (11) 第9章Flash存储器在线编程习题参考答案 (13)

第1章概述习题参考答案 1.嵌入式系统的基本含义是什么?为什么说单片机是典型的嵌入式系统? 答:即MCU的含义是:在一块芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。大部分嵌入式系统以MCU为核心进行设计。MCU从体系结构到指令系统都是按照嵌入式系统的应用特点专门设计的,它能很好地满足应用系统的嵌入、面向测控对象、现场可靠运行等方面的要求。因此以MCU为核心的系统是应用最广的嵌入式系统。 2.简述嵌入式系统的特点以及应用领域。 答:嵌入式系统属于计算机系统,但不单独以通用计算机的面目出现;嵌入式系统开发需要专用工具和特殊方法;使用MCU设计嵌入式系统,数据与程序空间采用不同存储介质;开发嵌入式系统涉及软件、硬件及应用领域的知识;嵌入式系统的其他特点,比如紧的资源,较高稳定性要求,低功耗,低成本等。一般用于工业控制,智能家电,日常电子等领域。 4.比较MCU与CPU的区别与联系。 答:CPU是一个单独的PC处理器。而MCU,则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。所以可以这么说,MCU是一个包含微处理器的嵌入式系统,而CPU紧紧是一个处理器而已。

ARM嵌入式系统基础教程第二版课后习题答案

第1章嵌入式系统概述 (1)举出3个本书中未提到的嵌入式系统的例子。 答:键盘、鼠标、扫描仪。 (2)什么叫嵌入式系统? 答:嵌入到对象体系中的专用计算机应用系统。 (3)什么叫嵌入式处理器?嵌入式处理器分为哪几类? 答:嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。分为3类:1.注重尺寸、能耗和价格;2.关注性能;3.关注全部4个需求——性能、尺寸、能耗和价格。 (4)什么是嵌入式操作系统?为何要使用嵌入式操作系统? 答:嵌入式操作系统是操作系统的一种类型,是在传统操作系统的基础上加入符合嵌入式系统要求的元素发展而来的。原因:1.提高了系统的可靠性;2.提高了开发效率,缩短了开发周期。3.充分发挥了32位CPU的多任务潜力。 第2章ARM7体系结构 1.基础知识 (1)ARM7TDMI中的T、D、M、I的含义是什么? 答:T:高密度16位Thumb指令集扩展;D:支持片上调试;M:64位乘法指令;I:Embedded ICE硬件仿真功能模块。 (2)ARM7TDMI采用几级流水线?使用何种存储器编址方式? 答:3级;冯·诺依曼结构。 (3)ARM处理器模式和ARM处理器状态有何区别? 答:ARM处理器模式体现在不同寄存器的使用上;ARM处理器状态体现在不同指令的使用上。 (4)分别列举ARM的处理器模式和状态? 答:ARM的处理器模式:用户模式、系统模式、管理模式、中止模式、未定义模式、中断模式、快速模式;ARM的处理器状态:ARM状态、Thumb状态。 (5)PC和LR分别使用哪个寄存器? 答:PC:R15;LR:R14。 (6)R13寄存器的通用功能是什么? 答:堆栈指针SP。 (7)CPSR寄存器中哪些位用来定义处理器状态?

嵌入式系统基础知识题库

嵌入式系统设计师考试笔记之嵌入式系统基础知识- 自《嵌入式系统设计师考试复习笔记之存储管理篇》在嵌入式在线的博客出现后,意外的得到很多朋友的关注和评论,收到不少朋友的邮件,问一些有关考试的问题,希望得到我的复习笔记的其他部分。我非常感谢他们,他们的热切关注,使我有了继续往下写的无限动力,使我萌生了将我以前的复习笔记、考试经验结合大纲教程并重新按《教程》的章节顺序整理一份适合考生复习的笔记手册,笔记后面再分析历年的真题,按章节考点找出相关的考题进行分析,希望能和有兴趣的人们一起讨论讨论。 嵌入式系统设计师的一天考试分为上午和下午部分,两部分的考试方式、试题难度、考点分布和复习方法都是不同的。这次我们讨论的是嵌入式系统基础知识,我本人觉得,这部分出下午大题的可能性不大,主要是分布在上午的75道选择题之中。 从历年的真题和考试大纲来看,上午的选择题主要考查一些基本概念,重要原理的理解,一些关键技术和一些重要的原理引申出来的简单计算。根据这些考试特点,复习的时候可以采用适当的策略,当然每个人的方法都是不一样的,适合自己的办法才是最好的办法。方法大家可以自己慢慢去体会,我的也不多说了,通过笔记和真题分析就可以体现处理。对于很多关键的知识点和基本概念,除了记住之外还要彻底理解,否则出题的时候会进行一些变换,或者引申一些计算,那么就算你知道考那个考点,可能你也做不好。 在复习的过程中,你要记住:你不是要考一个很高的分数,而是要考一个通过的分数,在复习过程中可以放弃一些内容,只要保证在大部分基本概念,关键技术,重要原理和历年考点上都把握住,能够拿到需要的分数就可以了。 复习笔记 1、嵌入式系统的定义

相关文档
最新文档