嵌入式程序开发

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

嵌入式系统的概念:编程

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

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

软件上的对比:spa

 

名称操作系统

嵌入式系统调试

PCblog

引导代码接口

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

 

嵌入式系统的开发流程:

一、  开发目标硬件系统

选择微处理器、Flash等。

二、  创建交叉开发环境

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

三、  开发Bootloader:

移植Bootloader,如vivi

四、  移植Linux内核

如Linux2.4.18内核的移植

五、  开发根文件系统

如cramfs文件系统的制做

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

如LCD、网卡、GPIO等

七、  开发上层的应用程序

如网络、GUI开发

 

在第7步中,通常如今PC机上进行开发调试,而后经过交叉编译将代码编程成目标开发板可执行的程序。

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

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

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