以文本方式查看主题 - 曙海教育集团论坛 (http://peixun0.cn/bbs/index.asp) -- Linux应用开发 (http://peixun0.cn/bbs/list.asp?boardid=32) ---- 基于ARM嵌入式Linux应用程序开发研究(1) (http://peixun0.cn/bbs/dispbbs.asp?boardid=32&id=1671) |
-- 作者:wangxinxin -- 发布时间:2010-11-23 11:03:16 -- 基于ARM嵌入式Linux应用程序开发研究(1) 当今社会,嵌入式系统已经渗透到人们工作、生活中的各个领域,嵌入式处理器已占分散处理器市场份额的94%。而嵌入式Linux系统也蓬勃发展,不仅继承了Linux源码开放、内核稳定高效、软件丰富等优势,还具备支持广泛处理器结构和硬件平台、占有空间小、成本低廉、结构紧凑等特点。 1 ARM处理器及开发板 在嵌入式领域,ARM已取得了极大的成功,造就了IP核商业化、市场化的神话。据统计,全球有103家巨型IT公司在采用ARM技术,20家最大的半导体,一商中有19家是ARM的用户。ARM系列芯片已经被广泛的应用于移动电活、手持式计算机以及各种各样的嵌入式应用领域,成为世界上销量最大的32 位微处理器。ARM已成为业界实际的RISC芯片标准。 ARM系列处理器根据各自特点应用于不同领域。从应用的角度上ARM芯片选择的一般原则:MMU;处理器速度;内置存储器容量;USB接口;GPIO 数量;中断控制器;IIS(integrate interface ofsound)音频接口;nWAIT信号;RTC(real timeclock);LCD控制器;PWM输出等各项指标。 本文使用的是ARM9,其性能远远高过ARM7。开发板使用的是广州斯道信息技术有限公司的开发板,中央处理器是三星公司的S3C2410。ARM9具有以下特点:5级流水线;采用哈佛结构;高速缓存和写缓存的引入;支持MMU。 2嵌入式Linux系统 嵌入式操作系统是嵌入式应用软件的基础和开发平台,它的出现解决了嵌入式软件开发标准化的难题。嵌入式系统具有操作系统的最基本的功能。目前主流的嵌入式系统有以下儿种:Linux、VxWorks、QNX、Windows CE、Palm OS。 嵌入式Linux操作系统具有一些独特的优势:层次结构及内核完全开放;强大的网络支持功能;具备一整套工具链;广泛的硬件支持特性。 嵌入式Linux系统有很多种。本文使用的是Red Hat9操作系统。 在安装有Windows和Linux双系统的PC上,系统会以Linux的GRUB作为引导装入器来选择启动二者。此时若直接删除Linux分区,会导致系统无法启动Windows或者是需要用行命令才能启动Windows。可以先使用虚拟机安装Linux系统,练习使用,熟悉后再在PC上 安装。
3应用程序开发 这里省略前面三步,从开发应用程序开始。 3.1交叉开发环境建立 对嵌入式系统而言,只装备必要的资源是前提条件,这也决定了嵌入式应用程序的开发环境不可能是资源有限的嵌入式系统,只能利用资源丰富的PC开发,然后建立交叉开发平台。 交叉编译器(cross-compiler)是进行交叉平台开发的主要软件工具。它是运行在一种处理器体系结构上,但是可以生成在另一种不同的处理器体系结构上运行的目标代码的编译器。 要建立交叉开发环境,主要需要几个工具包:gcc,glib,binutils,gdb等。一般开发板都提供这些工具,如果不是使用的开发板,在网上也是可以下载到全部软件包的。依次将它们安装在PC上即可。 Linux的软件安装方法与Windows不同。Linux中根据不同的压缩打包方式使用不同的命令安装。在安装过程中,由于软件包之间的依赖关系,系统可能会警告还有哪些没有安装,可以忽略这些警告。 3.2 U-Boot 在U-Boot(UniversalBootloader)之前,先介绍一下Bootloader。简单的说,Bootloader就是在操作系统内核运行之前的一段引导程序,类似于PC中的BIOS。通过它,可以完成对应硬件设备的初始化,并建立内存空间的映射图的功能,为最终调用系统内核做好准备。 U-Boot是遵循GPL条款的开放源码项目,它不仅仅支持嵌人式Linux系统的引导,U-Boot中Universal的一层含义就是在于U- Boot支持多种嵌入式操作系统,就目前来看,U-Boot对Linux的支持最完善。另外一层含义则是U-Boot支持多种常用系列的处理器。 U-Boot支持的主要功能:系统引导;基本辅助功能(操作系统接口功能;可灵活设置、传递多个关键参数给操作系统;支持目标板多种存储方式;CRC32校验);设备驱动;上电自检功能;特殊功能(XIP内核引导)。 U-Boot移植主要分为两步:配置主板和设置Flash和SDRAM时序。 3.3嵌入式Linux系统内核编译和移植 嵌入式Linux内核的编译都是通过make的不同命令实现的,一般分为3步:(1)内核配置。主要是用户用于为目标板选择处理器架构的选项。内核支持4种方法的配置, |