嵌入式相关问题的思考

嵌入式相关问题的思考

一、嵌入式系统中的软件有哪些特征?

答:
(1)小巧性,资源有限。
(2)可裁剪性,支持开放性和可伸缩性的体系结构。
(3)强实时性,EOS实时性一般较强,可用于各种设备控制中。
(4)统一的接口,提供应用软件统一的服务接口。
(5)操作方便、简单、提供友好的图形GUI和图形界面,追求易学易用。
(6)强稳定性,弱交互性,嵌入式系统一旦 开始运行就不需要用户过多的干预、这就要负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。
(7)固化代码,在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。

二、列表比较典型的嵌入式实时操作系统

答:
嵌入式相关问题的思考_第1张图片
嵌入式相关问题的思考_第2张图片

三、目前市场上的嵌入式实时操作系统种类繁多,如何进行嵌入式实时操作系统的选择?

答:
1、考虑内核的大小和性能
2、考虑外挂模块或者组件的丰富性,例如设备驱动、文件系统、网络协议栈、图形界面管理、电源管理等
3、考虑可裁减性,是否需要满足嵌入式系统有限资源的约束、对嵌入式操作系统配置的灵活性等的要求
4、考虑对不同硬件平台的可移植性,移植到不同目标硬件的移植工作复杂性,考虑支持的嵌入式处理器的种类数量、是否提供相应嵌入式处理器的BSP模板、提供的外围硬件设备驱动程序的种类数量等因素
5、考虑开发环境的完备性,是否提供交叉开发工具以及交叉开发工具的额集成性与开放性等因素
6、考虑服务与价格等因素,是否提供源代码、技术文档的完善性以及升级维护和技术支持能力等的服务,同时考虑包括开发购买 价格和使用价格等的价格因素

四、嵌入式软件运行过程有几个阶段?每个阶段的主要工作是什么?

答:
1、嵌入式软件运行过程有5个阶段
2、每个阶段的主要工作
(1)上电复位、板级初始化阶段

嵌入式系统上电复位后完成板级初始化工作。
板级初始化程序具有完全的硬件特性,一般采用 汇编语言实现。不同的嵌入式系统,板级初始化时要完成的工作具有一定的特殊性,但以下工作一般是必须完成的:
CPU中堆栈指针寄存器的初始化。
BSS段(Block Storage Space表示未被初始化的数据)的初始化。
CPU芯片级的初始化:中断控制器、内存等的初始化。

(2)系统引导/升级阶段

根据需要分别进入系统软件引导阶段或系统升级阶段。
软件可通过测试通信端口数据或判断特定开关的方式分别进入不同阶段。

(a)系统引导阶段

系统引导有几种情况:
将系统软件从NOR Flash中读取出来加载到RAM 中运行:这种方式可以解决成本及Flash速度比 RAM慢的问题。软件可压缩存储在Flash中。
不需将软件引导到RAM中而是让其直接在NorFlash上运行,进入系统初始化阶段。
将软件从外存(如NandFlash、CF卡、MMC等) 中读取出来加载到RAM中运行:这种方式的成本更低。

(b)系统升级阶段

进入系统升级阶段后系统可通过网络进行远程升级或通过串口进行本地升级。
远程升级一般支持TFTP(简单文件传输协议)FTP(文件传输协议)HTTP(超文本传输协议)等方式。
本地升级可通过Console口使用超级终端或特定的升级软件进行。

(3)系统初始化阶段

在该阶段进行操作系统等系统软件各功能部分必需的初始化工作,如根据系统配置初始 化数据空间、初始化系统所需的接口和外设 等。
系统初始化阶段需要按特定顺序进行,如首先完成内核的初始化,然后完成网络、文件 系统等的初始化,最后完成中间件等的初始 化工作。

(4)应用初始化阶段

在该阶段进行应用任务的创建,信号量、消息队列的创建和与应用相关的其它初始化工作。

(5)多任务应用运行阶段

各种初始化工作完成后,系统进入多任 务状态,操作系统按照已确定的算法进行任务 的调度,各应用任务分别完成特定的功能

五、什么是BSP? BSP与 BIOS有什么不同?

答:
1、BSP是嵌入式系统的基础部分,也是实现系 统可移植性的关键。它负责上电时的硬件初 始化、启动RTOS或应用程序模块、提供底层 硬件驱动,为上层软件提供访问底层硬件的手段。
2、BSP与BIOS区别
(1)PC机主板上的BIOS开始部分所做工作和BSP比较类似,主要是负责在电脑开启时检测、初始化系统设备(设置栈指针,中断分配,内存初始化等)、装入操作系统。但是BIOS 不包含设备驱动程序,而BSP却包含。
(2)BIOS不可修改(芯片生产过程固化); BSP可以编程修改(如一些与应用相关、系统无关的硬件设备驱动)。

六、什么是Boot Loader?

答:
Boot Loader是在操作系统内核运行之前执行的一段小程序。它将操作系统内核从 外部存储介质拷贝到内存中,并跳转到内核的首条指令。通过这段小程序,我们可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用OS内核准备好正确的环境,最后从别处(flash/以太网/UART)载入内核映像并跳到入口地址。在嵌入式系统中,Boot Loader严重依赖于硬件,几乎不可能建立 一个通用的 Boot Loader。

你可能感兴趣的:(自动化嵌入式)