您好,欢迎来到欧得旅游网。
搜索
您的当前位置:首页基于ARM和Linux的MiniGUI及其应用程序的移植

基于ARM和Linux的MiniGUI及其应用程序的移植

来源:欧得旅游网
lSSN 1009—3044 E—mail:kfyj@cccc.net.cn http://www.dnzs.net.cn Tel:+86—55 1—5690963 5690964 ComputerKnow ̄edgeand Technology电脑知识与技术 Vo1.6,No.34,December 2010,PP.9914—9916 基于ARM和LinUX的MiniGUl及其应用程序的移植 赵强,李敬文 (兰州交通大学电子与信息工程学院,甘肃兰州730070) 摘要:近年来,随着计算机技术、通讯技术的迅速发展,特别是互联网的迅速普及和3C(计算机、通信、消费电子)合一的咖速,微型 化和专业化成为发展的新趋势,嵌入式系统开发已经成为了信息产业的热点。基于ARM硬件平台及Linux操作系统的嵌入式产品 应用开发已经成为主流。而在嵌入式的开发过程中,针对目标平台的操作系统及应用软件移植成为影响嵌入式产品开发进度的一 个关键因素。该文介绍了MiniGUI在嵌入式Linux平台上的移植过程,从实际出发,详细阐述如何在开发板上移植BootLoader.内 核,文件系统,并且对linux部分源码进行了简要的分析和说明,最后将MiniGUI与在其环境下编辑的应用程序移植到ARM目标 平台上。 关键词:Linux:MiniGUI;交叉编译;移植 中图分类号:TP316 文献标识码:A 文章编号:1009—3044(2010)34—9914—03 Replant of MiniGUI and Application Program Based oH ARM and Linux ZHAO Qiang,LI Jing—wen (Insittute of Electronic and Information Engineering,Lanzhou Jiaotong University,Lanzhou 730070,China) ’ Abstract:Recently,along with the fast development of computer and communications technology,especially rapid popularization of Inter- nent and syncretism acceleration of 3C(computer Communication&Consume Electric),micromation and specialization become the main developing trend,at the same time,embedded products rum into the mainstream of information industry.System poritng to the target planffor is the main factor which affects the process of embedded~systems development.This issue teHs the process of the replant of the MimGUI on the Linux platform,proceed from actual condition,it portrays how to replant BootLoader,kernel, ̄esystem on the board,it also analyses and describes parts of the codes,finally,it replants the sofeware MiniGUI and the program developed on it to the ARM platform. Key words:Linux;MiniGUI;cross—compile;replant MiniGUI是一个面向嵌入式系统的轻量级图形用户界面支持系统,可以应用在电视机顶盒、PDA、实时控制系统等诸多场合。到 现在,MiniGUI已经十分成熟稳定,而且对于中文的支持最好。它支持GB2312与BIG5字符集,其他字符集也可以轻松加入。 MiniGUI发展到现在,获得了巨大的成功,尤其在实时嵌人式领域或资源极端有限的场合更具有显著的优势,其占用资源少,稳定可 靠,可伸缩性强,多操作系统支持,丰富的控件资源等优点使其具有更大的市场优势。由于MiniGUI的分层结构特点,因而移植十分 方便。在MiniGUI中,硬件层很好地被抽象为GAL层与IAL层,移植时只需要针对实际的硬件特点按照GAL层调用接口与IAL层 调用接口来做内部实现即可[21。 l U—Boot的板级移植 在一个基于ARM的嵌入式系统中,系统在上电或复位后,CPU通常从地址OxO0000000处读取第一条指令开始执行,这个地址处 放置的通常就是系统的Boot Loader,Boot Loader在系统启动期间执行的时间非常短,不过所执行的任务却是非常重要的:初始化硬 件设备,建立内存空间的映射图,从而将系统的软件、硬件环境带到一个合适-的状态,以便为最终调用操作系统内核做好准备嘲。 1.1操作过程 1)连接计算机,使用RS232将ARM板与PC机连接,启动超级终端,并连接成功。 2)烧写FLASH,通过XMODEM协议将loader.bin下载到SDRAM中 日,加载后显示,如图1。 3)加载文件“boot.bin” Uboot>loadb 2oo00000 ##Ready for binary(kermit)download to 0x20000000 at l 15200 bps… 选择kermit协议.在超级终端中发送文件boot.bin。 加载完成后显示: ##Total Size=Ox00002908=10504 Bytes ##Start Addr=0x20000000 然后,将内存中的文件写到FLASH中 图1 串口连接 收稿日期:2010-09—27 作者简介:赵强(1984一),男,山西晋中人,硕士在读,研究方向为嵌入式系统;李敬文(1965一),男,辽宁沈阳人,教授,主要研究方向 为图染色,数据库。 9914 计算机工程应用技术 * s 本栏目责任编辑:梁书 第6卷第34期(2010年12月) Computer Knowledge and Technology电脑知识与技术 Uboot>protecdt off all Uboot>cD.b 20000000 10000000 0x2908 4)烧写文件“u—boot.bin.gz” Uboot>loadb 20000000 ##Ready if)r binary(kemlit1 download to 0x20000000 at I1 5200 bps… Uboot>cD.b 20000000 10000000 此时,U—boot已经启动。 1.2修改环境变量 1)修改网卡环境: Uboot>setenv ethaddr O0一l B-77—02—22-45 Uboot>setenv ipaddr 192.168.0.10 Uboot>setenv sezverip 1 92.1 68.0.20 Uboot>saveenv 2)修改启动过程: Uboot>setenv bootargs root=/dev/ram rw initrd=0x20000000,8000000 ramdisk—size=21000 console=ttyS0,l 15200,mem=64M Uboot>setenv kernel tirp 2 1 000000 ulmage Uboot>setenv ramdisk tirp 2 1 1 00000 ramdisk ・ Uboot>setenv boot bootm 21000000 Uboot>setenv bootcmd run kernel rein ramdisk run boot Uboot>saveenv 3)运行tirp,将Linux内核和文件系统下载到平台中。 2 Linxu内核和文件系统 内核是操作系统的灵魂,是抽象的资源操作到具体硬件操作细节之间的接1:3,它负责进程管理、内存管理、文件系统管理以及 没备驱动程序管理,以及网络_f二数据包的发送 接收等等[8】。当PC机启动时,CPU首先进入实模式,并开始执行相应地址处的代 码。开始运行时,它将[J己装入到绝对地址0x90000处,再将其后的2K字节装入到0x90200处,最后将核心的其余部分装入到 0xl0000处。执行完检查硬件的代码部分后,系统开始设置32位寄存器,处理器初始化完毕,设置好内存页面,然后就开始调用内核 人口甬数,开始执行内核I 。 2.1内核配置 在文件/include/asm—al ̄/mach/arch.h中,定义如下I51: #define MACHINESTARq’(_type,一name) \ eonst struet machindesemath—desc##_type\ attribute一((_section一(“.arch.info”)))={ \ .nr=MACH—TYPE##一type, .name=name. _#define MACHINEEND\ );  ̄/include/asm—arm/arch—arm/map.h中定义如下: #define ARM—ADDR(x)(0xF0000000+(x)) ●●_●●● physical addresses of all the chip—select areas≈| #define ARM—CS6 f0x30000000) #define ARM——SDRAM——PAI ,水UARTs{/ #define ARMVA—UART ARM—ADDR(0xO0800000) #define ARMPAUART f0x500000001 需要指出的是,各种类型和名称都已预先在arch/a丌Tl,tools,mach—type中定义。如果要为平台自定义名称和类型.须在arch/arm/ tools/mach-type中添加相应的类型、名称、编号。 map—desc结构用来描述I/O地址空间映射,如下: static struct mapdesc armiodese[] initdata={ ISA IO Space map fmemory space selected by A24) / 本栏目责任编辑:梁书 *t 计算机工程应用技术 9915 Compu ̄rKnowledge and Technology电脑知识与技术 {(u32)ARM VA—ISA—WORD,ARM—CS2,SZ一16M,MT_DEVICE}, {(u32)ARM~VA—ISA—BYTE,ARM—CS2,SZ~16M,MT_DEVICE},}; 第6卷第34期(2010年12月) 在include/asm-arm/mach/map.h中定义了这个结构,4个成员按顺序分别是虚拟地址、物理地址、地址空间长度、地址空间类型。 其余初始化函数都是根据具体的硬件外设来编写的。 2.2文件系统 Linux在很大程度上依赖于文件系统的概念,Linux中的每个对象几乎都可以被看作一个文件,内核在没有结构的硬件上构造 结构化的文件系统,所构造的文件系统抽象在整个系统中广泛使用。文件系统分为两部分:上层用于处理系统内核的各种表格和数 据结构,而下层则用来实现文件系统本身的函数,并通过VFS调用 。 Ramdisk是嵌人式afo—lrinux的文件系统,主要存放系统设备、linux命令集、linux启动脚本程序和用户应用程序,ram—disk是 arnl—linxu的重要组成部分 #gunzip ramdisk.gz #makedir/mnt/ramdisk #mount-0 loop ramdisk/mnt/ramdisk #cd/mnt/ramdisk 编译Busybox #cd busybox一1.X #make menuconfig change the path of cross compiler and install according to ur set—up #make now you can ls to nr rootfs/bin rooffs/sbin and can find ur binaries 3 MiniGUI、应用程序移植 ~般而言,在嵌人式系统开发过程巾,我们编译完MiniGUI和应用程序后,需要把MiniGUI库、资源和应用程序拷贝到为目标 系统准备的文件系统中,使用相关的工具生成目标映像,然后下载到目标机上运行[61。 交叉编译MiniGUI源代码后,会生成一些.SO的文件,将这些库拷贝到文件系统中(/usr/loeal/lib).将MiniGUI.cfg文件拷贝到文件 系统的/usr/local/etc下,MiniGUI移植完成。 交叉编译应用程序源代码,生成执行文件,通过fIp发送到目标板上,在终端输入以下命令 #cd/usr/local/ #cd/test.sh 终端显示: #This is a test program. 到此。整个系统移植成功。 4结束语 为了提高系统效率,Linux内核是采用整体式层次结构实现的。采用这种体系结构的内核效率高,但是可移植性比分层设计的 内核差。这给移植工作带来了很大的难度。同时,嵌入式系统移植本身就是一个很复杂的工程,这也给移植工作带来了很大的难度。 本文详细介绍了目标平台移植的详细过程,包括BootLoader、内核和根文件系统移植,最终成功将MiniGUI和应用程序移植到目标 平台,符合设计要求,提高了在其平台上开发GUI的性能和效率。 参考文献: 【1]Rubini A,Corbet J.Linux设备驱动程序[M].2版.北京:中国电力出版社,2002. 『21 MiniGUI编程指南【N]版本2.0北京飞漫软件技术有限公司. f3]马忠梅.ARM9嵌入式系统设计一基于¥3C2410与Linux[M].北京:北京航空航天大学出版社,2007. f41赵炯.Linux内核完全注释[M].2005. [5]詹荣开.嵌入式Bootloader技术内幕【M].北京:清华大学出版社,2000. 【6】秦蔚.ARM平台下Linux内核移植技术的分析研究与应用【D】.北京:昆明理工大学,2004. [7]杜春雷.ARM体系结构与编程[M】.甘肃:兰州大学出版社,2004. f81孙钟秀.操作系统教程【M】.北京:清华大学出版社,2003. 9916* 计算机工程应用技术 一 本栏目责任编辑:梁书 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- ovod.cn 版权所有 湘ICP备2023023988号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务