新闻中心

EEPW首页>嵌入式系统>设计应用> ARM嵌入式系统的软件开发方法

ARM嵌入式系统的软件开发方法

作者: 时间:2012-11-22 来源:网络 收藏

  从的角度出发,一个嵌入式Linux系统可以分为4个层次。

  (1)引导和加载Linux内核的程序,主要是用户自己编制的Boot-loader程序。Boot-loader的功能相当于PC的BIOS,在硬件板一加电后就开始运行,它要用串行电缆把PC与硬件开发板连接起来,在PC端通过对程序的编译,生成一个bin文件,通过简易的JTAG探头,把它烧写到Nand-Flash。

  Boot-loader主要完成硬件初始化,同时设置Linux启动时所需要的参数,然后跳到Linux内核启动代码的第一个字节开始引导Linux。

  (2)Linux内核,为特定的嵌入式硬件系统板定制的内核及内核的启动参数。为了实现Linux内核的移植,要把编译生成的Boot-loader,Kernal Image(内核)及Root Filesystem(根文件系统)烧写到Hash中。在编译内核的时候,还可以选择需要支持的网络协议,所支持的主要协议包括TCP/IP(如TCP、IP、UDP、ICMP、ARP、RARP、FTP、TFTP、BOOTP、DHCP、RIP、OSPF、HTTP等)。由于内核己经支持多种网络协议,因此通过加载不同的应用程序,就可以实现相应类型的应用。

  (3)和Linux内核配合使用的根文件系统,包括建立根文件系统和建立于Flash设备上的文件系统。将文件系统也烧写到Hash后,Linux就可以在硬件板上正常运行了。

  (4)用户应用程序。为了使人机交互界面友好,通常在用户应用程序和Linux内核层之间移植一个嵌入式图形用户界面(Graphic User Interface,GUI)。

  2.环境构建

  对于Linux下的开发环境,最重要的是一个交叉编译器,其次是一个标准的C库。然而编译一个可靠的交叉编译器,是非常复杂的工作,有两个方法可以得到一个交叉编译器。

  (1)到专门为ARM开发建立的网站下载一个别人编译好的编译器,如网站ftp∶//ftp.arm.linux.Org.uk/pub/armlinux/toolcham,这里提供了多个版本的交叉编译器,它们都是基于glibc的C库,但glibc的C库比较庞大,不适合作为小型的开发使用。所以可以选择第二种方法去构造一个基于更小的C库μClibc的编译器。

  (2)编译一个交叉编译器,虽然这个工作非常复杂,但Linux平台下面有全世界的爱好者在共同维护,所以可以找到许多编译一个交叉编译器的方法。

  www.μClibc.Org网站中提供了一个基于pClibc的C库交叉编译器的构造方法,这个编译器是针对多平台的。μClibc是原来μCLinux(一个专门用于没有MMU的嵌入式芯片使用的Linux版本)开发过程中的一个C库,现在已经独立于μLinux项目并且进一步完善。它目前己经可以支持很多的系统平台,而且它比glibc更加小巧,非常适合作为嵌入式的开发。很多原来基于glibc开发的软件在μClibc下面也可以很方便地移植,甚至无须做任何改动就可以编译运行。;μClibc对glibc的大部分函数都做了重写,并且保持名称一样。利用μClibc构建嵌入式Linux系统将比glibc占用更小的空间。

  构建好了环境或交叉编译器,就可以在PC上编译ARM运行的程序了,对调试各个硬件程序模块和移植ARM Linux/GUI系统很有帮助。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

linux相关文章:linux教程



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭