嵌入式系统概念以及嵌入式基础知识
\插播一条:我自己在明年年初录制了一套还比较系统的入门单片机教程,想要的朋友找我拿就行了免費的(禾厶-亻言-手戈)。近来比较闲,带做毕设,带中学生出席市级以上赛事///红色图标【‟で】liutianwang123
嵌入式基础知识
1、嵌入式系统概念
嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部份组成。它具有“嵌入性”、“专用性”与“计算机系统”的三个基本要素。
2、嵌入式系统应用
人们平时所广泛使用的手机、PDA、MP3、机顶盒都属于嵌入式系统设备;而车载GPS系统、机器人也是属于嵌入式系统。
3、嵌入式系统的特征
(1)面向特定应用的特性。嵌入式系统与通用型系统的最大区别就在于嵌入式系统大多工作在为特定用户群设计的系统中,因而它一般都具有低帧率、
容积小、集成度高等特性,而且可以满足不用应用的特定需求。
(2)嵌入式系统的硬件和软件都必须进行高效地设计,量体裁衣、去除冗余红旗linux5.0,力争在同样的晶圆面积上实现更高的性能中文linux操作系统,这样就能在具体应用中对处理器的选择更具有竞争力。
(3)嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统,从事嵌入式系统开发的人才也必须是复合型人才。
(4)为了提升执行速率和系统可靠性,嵌入式系统中的软件通常都固化在储存器芯片或单片机本身中,而不是储存于c盘中。
(5)嵌入式开发的软件代码尤其要求高质量、高可靠性,其代码必须有更高的要求。
(6)嵌入式系统本身不具备二次开发能力,即设计完成后用户一般不能对其中的程序功能进行更改,必须有一套开发工具和环境能够进行再度开发。
4、嵌入式系统的体系结构
嵌入式系统作为一类特殊的计算机系统,通常包括以下3个方面:硬件设备、嵌入式操作系统和应用软件。它们之间的关系如图4.2所示。
外围设备是嵌入式系统中用于完成储存、通信、调试、显示等辅助功能的其他部件。目前常用的嵌入式外围设备按功能可以分为储存设备(如RAM、SRAM、Flash等)、通信设备(如RS-232插口、SPI插口、以太网插口等)和显示设备(如显示屏等)3类。
5、几种主流嵌入式操作系统剖析
嵌入式Linux同Linux一样,具有低成本、多种硬件平台支持、优异的性能和良好的网路支持等优点。另外,为了更好地适应嵌入式领域的开发,嵌入式Linux还在Linux基础上做了部份改进,如下所示
·改善的内核结构
在嵌入式系统常常采用的是另一种称为微内核(Microkernel)的体系结构,即内核本身只提供一些最基本的操作系统功能,如任务调度、内存管理、中断处理等,而类似于文件系统和网路合同等附加功能则运行在用户空间中,而且可以按照实际须要进行抉择。这样就大大降低了内核的容积,以便维护和移植。
·提高的系统实时性
借助Linux作为底层操作系统,在其上进行实时化改建推进系统的运行和响应速率,进而建立出一个具有实时处理能力的嵌入式系统。
6、ARM处理器硬件开发平台
6.1ARM处理器简介
ARM是一类嵌入式微处理对齐的Thumb指令。
2.ARM体系结构的储存格式
·大端格式:在这些格式中,字数据的高字节储存在低地址中,而字数据的低字节则储存在高地址中。
·小端格式:与大端储存格式相反,在小端储存格式中,低地址中储存的是字数据的低字节,高地址储存的是字数据的高字节。
3.ARM处理器模式
ARM微处理器支持7种运行模式,分别如下。
·用户模式(usr):ARM处理器正常的程序执行状态。
·快速中断模式(fiq):用于高速数据传输或通道处理。
·外部中断模式(irq):用于通用的中断处理。
·管理模式(svc):操作系统使用的保护模式。
·数据访问中止模式(abt):当数据或指令预取中止时步入该模式,可用于虚拟储存及储存保护。
·系统模式(sys):运行具有特权的操作系统任务。
6.4ARM微处理器系列简介
7、交叉编译
交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。
8、交叉调试
嵌入式系统的交叉调试有多种方式,主要可分为软件方法和硬件方法两种
(1)软件形式
软件形式调试主要是通过插入调试桩的形式来进行的。调试桩形式进行调试是通过目标操作系统和调试器内分别加入个别功能模块,两者互通讯息来进行调试。该方法的典型调试器有Gdb调试器。
(2)硬件调试
硬件调试器的基本原理是通过仿真硬件的执行过程,让开发者在调试时可以随时了解到系统的当前执行情况。目前嵌入式系统开发中最常用到的硬件调试器是ROMMonitor、
ROMEmulator、In-CircuitEmulator和In-CircuitDebugger。
问题一、从各方面比较嵌入式系统与通用计算机的区别。
答:(1)嵌入式系统与通用型系统的最大区别就在于嵌入式系统大多工作在为特定用户群设计的系统中,因而它一般都具有低帧率、体积小、集成度高等特性,而且可以满足不用应用的特定需求。
(2)嵌入式系统的硬件和软件都必须进行高效地设计,量体裁衣、去除冗余,力争在同样的晶圆面积上实现更高的性能。
(3)嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统,从事嵌入式系统开发的人才也必须是复合型人才。
(4)为了提升执行速率和系统可靠性,嵌入式系统中的软件通常都固化在储存器芯片或单片机本身中,而不是储存于c盘中。
(5)嵌入式开发的软件代码尤其要求高质量、高可靠性,因为嵌入式设备所处的环境常常是无人职守或条件恶劣的情况下,因而,其代码必须有更高的要求。
(6)嵌入式系统本身不具备二次开发能力,即设计完成后用户一般不能对其中的程序功能进行更改,必须有一套开发工具和环境能够进行再度开发
问题二、ARM9有什么优于ARM7的特点?
答:(1)ARM7处理器采用的3级流水线设计,而ARM9则采用5级流水线设计.
通过使用5级流水线机制,在每一个时钟周期内可以同时执行5条指令。这样就大大提升了处理性能。
在同样的加工工艺下,ARM9处理器的时钟频度是ARM7的1.8~2.2倍。
(2)ARM9采用的是耶鲁结构,ARM7采用的是冯诺依曼结构
冯·诺依曼结构共用数据储存空间和程序储存空间,它们共享储存器总线,这也是往年设计时常用的方法;
而耶鲁结构则具有分离的数据和程序空间及分离的访问总线。所以耶鲁结构在指令执行时,取址和取数可以并行构建嵌入式linux系统,因而具有更高的执行效率。
(3)ARM9引入了高速缓存和写缓存提升了储存器的访问速率。
(4)支持MMU
MMU是显存管理单元,它把显存以“页”为单位来进行处理。一页显存是指一个具有一定大小的连续的显存块构建嵌入式linux系统,一般为4096B或8192B。操作系统为每位正在运行的程序
构建并维护一张被称为进程显存映射的表,表中记录了程序可以存取的所有显存页以及它们的实际位置。
每每程序存取一块显存时,它会把相应的虚拟地址(virtualaddress)传送给MMU,而MMU会在PMM中查找这块显存的实际位置,也就是化学地址(physicaladdress),化学地
址可以在显存中或c盘上的任何位置。假如程序要存取的位置在c盘上,就必须把包含该地址的页从c盘上读到显存中,而且必须更新PMM以反映这个变化(这被称为pagefault,即
页错)。只有拥有了MMU能够真正实现显存保护。诸如当A进程的程序企图直接访问属于B进程的虚拟地址中的数据,这么MMU会形成一个异常(Exception)来制止A的越界操作。这样,通过显存保护,一个进程的失败并不会影响其他进程的运行,因而提高了系统的稳定性,
ARM9也正是为此拥有了MMU,比ARM7有了更强的稳定性和可靠性。
问题三、什么是交叉编译?为何要进行交叉编译?
答:交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。
编译的最主要的工作就在将程序转化成运行该程序的CPU所能辨识的机器代码,因为不同的体系结构有不同的指令系统。因而,不同
的CPU须要有相应的编译器,而交叉编译就好似翻译一样,把相同的程序代码翻译称不同的CPU对应语言。
问题四、嵌入式开发常用的调试手段有哪几种?说出它们各自的异同点?
答:嵌入式系统常用的调试手段时交叉调试,主要分为软件调试和硬件调试两种形式。
软件方法调试主要是通过插入调试桩的形式来进行的。调试桩形式进行调试是通过目标操作系统和调试器内分别加入个别功能模块,两者互通讯息来进行调试。该方法的典型调试器有Gdb调试器。
硬件调试器的基本原理是通过仿真硬件的执行过程,让开发者在调试时可以随时了解到系统的当前执行情况。目前嵌入式系统开发中最常用到的硬件调试器是ROMMonitor、ROMEmulator、In-CircuitEmulator和In-CircuitDebugger。
问题五、嵌入式硬件系统通常由哪几部份组成?核心是哪些?核心由哪几部份组成?她们的关系是如何的(请用图表示下来)?
答:嵌入式系统通常由嵌入式处理器、存储器和输入/输出部份组成。
其中嵌入式微处理器是嵌入式硬件系统的核心,一般由三大部份组成:控制单元、算术逻辑单元和寄存器
问题六、Bootloader在嵌入式系统中主要起哪些作用?完成什么主要的工作?
答:BootLoader是在操作系统运行之前执行的一段程序,通过这段程序,初始化硬件设备,构建显存空间的映射表,因而构建适当的系统软硬件环境,为最终
调用操作系统内核做好打算。
BootLoader的stage1一般包括以下工作:
(1)硬件设备初始化。
(2)加载BootLoader的stage2打算RAM空间。
(3)拷贝BootLoader的stage2到RAM空间。
(4)设置堆栈
(5)跳转到stage2的C入口点。
BootLoader的stage2一般包括以下工作:
(1)初始化本阶段要使用的硬件设备
(2)测量系统显存映射
(3)将内核映像和根文件系统映像从flash设备上复制到RAM空间中
(4)设置内核启动参数
(5)调用启动内核