Liunx系统移植的步骤:
1、开发环境的搭建2、系统引导3、内核引导3、设备驱动程序4、文件系统 Bootloader自举程序
因为嵌入式系统的开发,没有足够的资源在本机上运行开发工具和调试工具,所以很难在嵌入式系统的硬件平台上进行软件开发。通常的嵌入式系统的软件开发采用一种交叉的开发的方式.
TARGET就是目标机,HOST是开发机(宿主机)。在开发主机上,可以安装开发工具,编辑,编译目标板的Liunx引导程序,内核和文件系统,然后在目标板上运行。
Gcc编译器 gcc的基本用 gcc[options][filenames]
gcc的执行过程
1、 预处理2、编译3、汇编4、链接
Make工具通过makefile的文件来完成并自动维护编译工作。要使用make,首先要创建makefile文件。
makefile基本结构
1) 需要有make工具创建的项目,通常是目标文件和可执行文件;
2) 要创建的项目所依赖的文件;
3) 创建每个项目时需要运行的命令;
Makefile变量
GNU的make工具除了提供建立目标的基本功能之外,还有许多便于表达依赖性关系以及建立目标命令的特色,其中之一就是变量或宏的定义能力。如果用户要以相同的编译选项同时编译多个C源文件,且为了每个目标的编译指定冗长的编译选项的话,利用简单的变量定义,可简化makefile文件,避免这种乏味的工作。
隐含规则
隐含规则是指由make自定义的规则,这些规则定义了如何从不同的依赖文件建立特定类型的目标。
构建交叉编译环境的3种方法;
1) 分步编译和安装交叉编译环境所需要的库和源代码,最终生成交叉编译环境。
2) 通过Crosstool脚本工具来实现一次编译生成交叉编译环境。
3) 使用开发平台供应商提供的开发环境安装套件建立交叉编译环境,这是最常用的方法!
建立交叉编译环境的过程可以划分的步骤:
1) 做好准备工作,包括下载工具源码包和补丁,准备内核头文件,创建工作目录等;
2) 编译,安装;
3) 编译辅助编译器;
4) 建立glibc库,这里要使用交叉编译工具链。
5) 编译生成完整的编译器,重新配置gcc功能,使其支持c、c++等语言; 内核分类:进程管理、内存管理、文件系统、设备控制和网络;
嵌入式Linux内核裁剪方法
一方面是针对硬件特点对源代码的修改,另一方面是功能模块的裁剪。
内核功能裁剪的方法
1) 使用linux自身的配置工具,编译定制内核;
2) 修改内核源代码,进行内核裁剪;
3) 基于系统调用关系,进行内核裁剪;
内核定制过程:
增加新的内核组建——配置内核——生成内核——装载内核
内核编译及装载3步
1、 执行#make dep 命令,正确设置编译内核所需的附属文件,进行依赖性编译;
2、 执行#make clean 命令,清除以前构造内核时产生的所有目标文件,模块文件和一些临时文件;
3、 执行#make zlmage命令,生成可执行内核映像文件;
对设备如何管理
将所有的设备看作具体的文件,通过文件系统层对设备进行访问。和设备相关的2个层次——文件系统层和设备驱动层;
模块就是一个已编译但未连接的可执行文件,利用这种机制,我们可以根据需要,再不重新编译内核的情况下,将编译好的模块动态地插入运行中的内核,或者将内核中已经存在的某个模块移走。
设备类型:字符设备、块设备、网络设备;
第二篇:嵌入式系统总结
第一章 嵌入式系统概述
1、 嵌入式系统的定义、特点
1) 定义
以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
2) 特点
a、 极其关注成本
b、 对实时性有较强要求
c、 采用嵌入式操作系统或实时操作系统
d、 软件故障造成的后果更为严重
e、 多为低功耗系统
f、 常在恶劣的环境下运行
g、 系统资源是非常少
h、 在ROM中存放所有程序的目标代码
i、 采用多类型的处理器和处理体系结构
j、 需要专用工具和方法进行设计
k、 具有软件固化特点
2、 嵌入式系统的基本构成
构成
1) 硬件
a、 嵌入式核心芯片
b、 嵌入式存储器
c、 外设和接口
2) 软件
a、 应用软件
b、 嵌入式操作系统
c、 BSP
d、 嵌入式开发工具
3、 举例说明嵌入式系统的应用及未来发展趋势
1) 应用
a、 工业控制:电力系统
b、 交通管理:车辆导航
c、 信息家电:冰箱等网络化
d、 家庭智能管理系统:防盗系统
e、 Pos网络及电子商务:自动售货机
f、 环境工程与自然:实时气象信息网
g、 机器人
2) 发展趋势(还没写完)
a、 高可靠性、高稳定性
b、 运算速度快、开发周期短
c、 强大的扩展功能和网络传输功能
第二章 嵌入式系统的设计方法
1、 嵌入式系统的设计方法有哪些,他们有何异同点
1) 设计方法有
a、 传统的嵌入式系统开发方法
b、 软硬件协同设计方法
2) 他们的异同
a、 协同设计方法采用并行和协同的设计思想,而传统设计方法是以硬件优先
的原则
b、 协同设计方法采用统一的工具描述,可合理划分系统软硬件功能、资源。
而传统设计方法不易划分、不易发现软硬件之间的接口问题
c、 协同支持多领域专家的协同开发,而传统设计方法不可能对系统做出较好
的综合优化。
第三章 嵌入式处理器
1、 嵌入式处理器的分类有哪些?各自的作用和使用领域是什么?
1) 微处理器:其作用和CPU基本相同,只保留的和嵌入式应用相关的功能,而且它
体积更小,功耗更低,适合应用在(没写完)
2) 微控制器:它把整个计算机系统的主要硬件都集成到一块芯片上,从而减少功耗和
成本,提高可靠性。
3) 数字信号处理器:能够执行数字信号处理算法和编译效率高的特性。使用在多媒体
应用领域。
4) 嵌入式片上系统:从整个系统的功能和性能出发,用软硬件结合的设计等方法把各
种硬件集成为单一芯片。
2、 简述ARM 处理器的工作状态
3、 简述使用多处理器结构需要考虑的几个问题
1) 节点间通信方式:
2) 任务调度策略
3) Cache 一致性问题
4) 系统的异构性问题
第四章 嵌入式系统的存储器
1、 解释下列概念:RAM、ROM、PROM、EPROM 、EEPROM 、FLASH.
1) RAM:是可读可写的存储器,CPU可以对RAM单元的内容随机地进行读写访问。
2) ROM:是只读存储器,由生产厂家按用户要求,直接把数据写入。写入后无法改变
其内容。
3) PROM:是一次可编程只读存储器,芯片出厂时内容全为0,用户可用专门的PROM
写入器将信息写入,但写入后是不可改变的。
4) EPROM:是可擦除可编程存储器,它是一种紫外线可擦除的存储器,当被紫外线照
射到时,数据就会被重新初始化。
5) EEPROM:是一种电可擦除存储器,为的克服EPROM的不足,开发的EEPROM,它
可以在线编程和擦除数据。
6) FLASH:flash存储器集中了EPROM 和 EEPROM 两者的优点,既具有像EPROM
的编程机制,又具有EEPROM的擦除特点。
2、 存储器的主要功能是什么?如何衡量存储器的性能?