1. 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。
2. 嵌入式系统一般包含嵌入式微处理器、外围硬件设备、嵌入式操作系统和应用程序 4 个部分
3. 嵌入式系统当前不具备本地系统开发能力,需要宿主机上作一套专门的开发工具和环境
嵌入式操作系统
嵌入式操作系统的一个重要特性是实时性。所谓实时性,就是在确定的时间范围内响应 某个事件的特性。
开放源码的嵌 入式操作系统。 其中著名的嵌入式操作系统有: µC/OS、 VxWorks、 Neculeus、 Linux 和 Windows CE 等
嵌入式 Linux 开发环境
嵌入式系统的硬件一般有很大的局限性,或者处理器频率很低,或者存储空间很小,或 者没有键盘、鼠标设备。这样的硬件平台无法胜任(或者不便于)庞大的 Linux 系统开发任 务。因此,开发者提出了交叉开发环境模型。
交叉开发环境是由开发主机和目标板两套计算机系统构成的。目标板 Linux 软件是在开 发主机上编辑、编译,然后加载到目标板上运行的。为了方便 Linux 内核和应用程序软件的 开发,还要借助各种连接手段。
需要DIY的内容?
Linux 是开放源码的软件工程,它的大量应用程序也来源于 GNU 软件工程。因此,完全 可以自己动手制作一套完整的嵌入式 Linux 系统和开发工具。
但是,庞大的系统软件开发和 测试将花费大量人工时,无法预料的 BUG 可能严重阻滞项目进度。
大
量的开源软件和商业的 Linux 软件共同出现在 Linux 操作系统上,半导体公司、Linux 操作系统公司、第三方软件公司等已经形成庞大的
Linux 生态系统。任何一家公司都不可能 对 Linux 系统做全面的维护和技术支持。 嵌入式 Linux
系统的开发工具绝大多数是命令行方式的,这使得学习 Linux 开发比 Windows 开发难度更大。商业公司在嵌入式 Linux
产品开发的时候,希望有更方便、更快捷的开发工具可以使用。因此,嵌入式 Linux 集成开发环境具有市场需求。
Eclipse 已经成为集成开发环境的标准平台。KDevelop/ Anjuta
这些集成开发环境不但能够支持应用程序开发和调试,而且专门提供了内核、文件系统 的工程。另外可以集成各种测试工具和版本控制等功能,大大方便了嵌入式 Linux 开发。
嵌入式 Linux 系统开发要点
需要熟悉 Linux 系统组成部分, 熟悉 Linux 开发工具,还要熟悉 Linux 编程。 嵌入式 Linux 系统包含 Bootloader (引导程序)内核和文件系统 3 部分。
在启动一个嵌入式 Linux 项目之前,必须仔细考虑下面要点。
(1)选择嵌入式 Linux 发行版
(2)熟悉开发环境和工具 交叉开发环境是嵌入式 Linux 开发的基本模型。Linux 环境配置、GNU 工具链、测试工 具甚至集成开发环境都是开发嵌入式 Linux 开发的利器。
(3)熟悉 Linux 内核 因为嵌入式 Linux 开发一般需要重新定制 Linux 内核,所以熟悉内核配置、编译和移植 也很重要。
(4)熟悉目标板引导方式 开发板的 Bootloader 负责硬件平台的最基本的初始化,并且具备引导 Linux 内核启动的 功能。由于硬件平台是专门定制的,一般需要修改编译 Bootloader。
(5)熟悉 Linux 根文件系统 Linux 离不开文件系统,程序和文件都存放在文件系统中。系统启动必需的程序和文件 都必须放在根文件系统中。Linux 内核命令行参数可以指定要挂接的根文件系统。
(6)理解 Linux 内存模型 Linux 是保护模式的操作系统。内核和应用程序分别运行在完全分离的虚拟地址空间, 物理地址必须映射到虚拟地址才能访问。只有理解 Linux 内存模型,才能最大程度地优化系 统性能。
(7)理解 Linux 调度机制和进程线程编程 Linux 调度机制影响到任务的实时性,理解调度机制可以更好地运用任务优先级。进程 和线程编程则是应用程序开发所必需的。
阅读(1150) | 评论(0) | 转发(0) |