Linux嵌入式系统软件开发基础 嵌入式Linux系统层次

在嵌入式Linux开发过程中,选择好的嵌入式Linux开发平台和调试工具可以极大地提高嵌入式Linux开发效率。嵌入式系统的特点是系统资源小,因此具体目标板的设备驱动程序(Device Driver)需要定制,BDM /JTAG调试工具是开发Linux内核的很好手段。调试工具利用CPU的JTAG接口,对运行程序进行监控,不占用系统的其他资源。从嵌入式软件开发的角度出发,一个嵌入式Linux系统可以分为4个层次。
(1)Linux内核,为特定的嵌入式硬件系统板定制的内核及内核的启动参数。为了实现Linux内核的移植,要把编译生成的Boot-loader,Kernal Image(内核)及Root Filesystem(根文件系统)烧写到Hash中。在编译内核的时候,还可以选择需要支持的网络协议,所支持的主要协议包括TCP/IP(如TCP、IP、UDP、ICMP、ARP、RARP、FTP、TFTP、BOOTP、DHCP、RIP、OSPF、HTTP等)。由于内核己经支持多种网络协议,因此通过加载不同的应用程序,就可以实现相应类型的应用。
(2)引导和加载Linux内核的程序,主要是用户自己编制的Boot-loader程序。Boot-loader的功能相当于PC的BIOS,在硬件板一加电后就开始运行,它要用串行电缆把PC与硬件开发板连接起来,在PC端通过对程序的编译,生成一个bin文件,通过简易的JTAG探头,把它烧写到Nand-Flash。
Boot-loader主要完成硬件初始化,同时设置Linux启动时所需要的参数,然后跳到Linux内核启动代码的第一个字节开始引导Linux。
(3)和Linux内核配合使用的根文件系统,包括建立根文件系统和建立于Flash设备上的文件系统。将文件系统也烧写到Hash后,Linux就可以在硬件板上正常运行了。
(4)用户应用程序。为了使人机交互界面友好,通常在用户应用程序和Linux内核层之间移植一个嵌入式图形用户界面(Graphic User Interface,GUI)。
当前,嵌入式软件开发已经逐步规范化,为了能够开发出更优秀的嵌入式软件,就要更深层次的了解嵌入式Linux系统,熟练的使用嵌入式Linux系统进行嵌入式软件开发。
