|
我们从硬件/软件协同设计的角度出发,构建和实现了一套基于Linux系统的嵌入式系统开发平台,包括硬件设计平台和软件开发平台两部分。利用该平台可以方便地进行有关嵌入式系统的研发,是一套廉价而全面的解决方案。
硬件设计平台
硬件平台由基本系统(包括CPU和存储器)加上外围接口电路模块构成。基本系统为操作系统内核提供一个最小的调试和运行环境,外围接口模块包括目前应用较为广泛的多种硬件接口电路,如LCD液晶显示模块、触摸屏模块、CF卡模块、USB模块、以太网模块、IC卡模块等,可以方便地根据开发者的需求进行选择使用。硬件设计平台基本框架如图1所示。
目前,硬件平台基于摩托罗拉公司的DragonBall EZ328(16MHz)微处理器,主要配置包括8MB EDO DRAM、4MB FLASH、320×240像素单色LCD、6个输入按键、一路RS232接口、一路10M以太网接口等。EZ328是一款得到了广泛应用的32位嵌入式微处理器,内部集成了大量的功能模块,并且具有较强的扩展能力。EZ328取消了内存管理单元(MMU),降低了硬件成本及运行功耗。EZ328所支持的引导模式也极大地方便了系统的调试。在我们的开发板上,只要驱动EZ328的EMUBRK引脚为低电平并执行系统复位,就可使EZ328进入引导模式,其内建的引导程序就会开始运行,初始化芯片上集成的UART控制器并准备接收数据。这样开发者就可以通过UART控制器写寄存器来初始化开发板,然后下载程序到开发板的RAM和FLASH中运行调试。同时,硬件平台CPU可方便地升级到VZ328(主频33MHz,EZ328的后续产品)。而且,在EZ328硬件平台上开发的软件几乎不需要修改就能使用在VZ328和ColdFire系列微处理器上,具有很广的适用面。ColdFire微处理器主要应用于互联网设备、LAN电话技术、低端网络控制、工业控制、图像和存储等等。
图1 硬件设计平台基本框架
图2 软件开发环境
软件开发平台
软件平台由嵌入式Linux操作系统、嵌入式图形用户界面(GUI)、GNU交叉编译调试工具组成。其中嵌入式Linux操作系统包括嵌入式Linux内核,ROM/RAM文件系统。选用Linux是因为Linux高度模块化,容易定制,具有很高的可移植性。
软件平台所实现的嵌入式Linux系统内核是在mCLinux系统的基础上移植而来的。它是专门面向没有MMU的CPU的Linux操作系统,并且专为嵌入式系统做了许多小型化的工作,得到了广泛的应用,新型的蓝牙网络设备也采用了mClinux操作系统。mCLinux作为一个高度优化的、代码紧凑的嵌入式Linux,虽然体积很小,但仍然保留了Linux的大多数优点:稳定、良好的移植性,优秀的网络功能,完备的对各种文件系统的支持,以及标准丰富的API。在我们的开发平台上,移植的操作系统内核大小约400KB,提供了通用Linux API和完整的TCP/IP 协议栈,实现了对NFS、ext2、ROMfs、JFFS文件系统的支持。
GUI采用了MicroWindows,具有中文本地化支持,包括GB2312 等字符集的支持,中文输入法等等。在其上又开发了基于FLTK的嵌入式GUI图形包,提供了比较完善的图形功能,如对菜单、按钮、滚动条等多种GUI控件的支持。
采用这种图形包,我们已开发出大小仅1MB的嵌入式中文Web浏览器,并且正在集成清华文通的中文手写输入软件。
交叉编译调试工具采用通用的Linux开发套件—GNU开发套件,包括了一系列的开发调试工具。主要组件有:
● Gcc—编译器,可以做成交叉编译的形式,即在宿主机上开发编译目标板上可运行的二进制文件。
● Binutils—辅助工具,包括objdump(可以反编译二进制文件),as(汇编编译器),ld(连接器)等等。
● Gdb—调试器,可使用多种交叉调试方式,包括使用串口和以太网调试。
开发环境
本嵌入式系统开发平台的GNU开发套件运行于桌面Linux操作系统。开发者首先使用Gcc和Gdb编译和调试bootloader程序;再通过串口将宿主机和目标板连接起来,使EZ328进入引导模式,通过一个简单的perl程序将调试好的Bootloader程序下载到目标板的RAM中,作为monitor监控程序,同时在宿主机上启动minicom和它进行串口通信,对Linux内核及驱动进行下载和调试;一旦Linux内核在目标板上运行并初始化以太网接口,再由网线将宿主机和目标板连接起来(如图2所示)。通过以太网,开发者可以使用NFS文件系统安装上宿主机的硬盘,这样目标板就可以通过以太网对宿主机的硬盘直接进行操作,不需下载即可调试程序;若Linux内核启动了远程登录服务,开发者还可以登录到目标板上调试应用程序。
结语
嵌入式系统具有集成度高、体积小、反应速度快、智能化、稳定性高及可靠性强等特点,应用十分广泛。追踪国外嵌入式系统领域的先进技术,根据国情研发自己的嵌入式系统软硬件平台,对提高国内的嵌入式系统研究水平非常重要。在现有的这套开发平台上,我们已经为有关单位完成了电子书(Ebook)项目的研制,同时开展了嵌入式操作系统实时性的研究,整个平台具有良好的使用效果和应用前景。 |
|