在嵌入式开发中,一般要制作内核映像和文件系统,同时须将可执行程序放置到文件系统中,并配置好相应的环境变。最后将内核和文件系统一起烧写到开发板上。

嵌入式系统的概念:

以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

嵌入式系统与普通PC机的对比:

软件上的对比:

 

名称

嵌入式系统

PC

引导代码

Bootloader引导,针对不同电路进行移植

主板的BIOS引导,无须改动

操作系统

Linux、WinCE、VxWorks等,需要移植

Windows、Linux等,无需移植

驱动程序

每个设备驱动针对电路板进行开发或移植,一般不能直接下载使用

操作系统含有大多数驱动程序,或下载直接使用

开发环境

交叉编译

本机编译

仿真器

需要

不需要

协议栈

需要移植

操作系统或第三方提供

 

硬件上的对比:

设备名称

嵌入式系统

PC

CPU

嵌入式处理器(ARM,MIPS,Score+

CPU(Intel、AMD等)

内存

SDRAM芯片

SDRAM或DDR内存条

存储设备

Flash芯片

硬盘

输入设备

触摸屏,按键

鼠标、键盘、麦克等

输出设备

LCD

显示器

接口

MAX232等芯片

主板集成

其它设备

音频芯片、USB芯片、网卡芯片等

主板集成或外接卡

 

嵌入式系统的开机顺序:

Bootloader----kernel----rootfs

PC机的开机顺序:

BIOS----GRUB---kernel----rootfs

 

嵌入式系统的开发流程:

1、  开发目标硬件系统

选择微处理器、Flash等。

2、  建立交叉开发环境

安装交叉编译工具链(如arm-linux-gcc)、设置好环境变量、配置串口通信工具(如超级终端、SecureCRT等)、配置网络通信工具(如NFS)等

3、  开发Bootloader:

移植Bootloader,如vivi

4、  移植Linux内核

如Linux2.4.18内核的移植

5、  开发根文件系统

如cramfs文件系统的制作

6、  开发相关的硬件驱动程序

如LCD、网卡、GPIO等

7、  开发上层的应用程序

如网络、GUI开发

 

在第7步中,一般现在PC机上进行开发调试,然后通过交叉编译将代码编程成目标开发板可执行的程序。

接下来我们先不直接烧写内核和根文件系统,而是将内核和文件系统放在PC中,在uboot中分别设置TFTP和NFS,

这样uboot在运行时便可以通过TFTP将内核从PC机读入开发板ROM中,同时通过NFS访问PC机上设置的根文件系统。

当程序运行无误时,再将内核和文件系统烧写到目标开发板。

嵌入式应用程序架构实例精讲 嵌入式应用程序开发_嵌入式系统

嵌入式应用程序架构实例精讲 嵌入式应用程序开发_嵌入式系统_02