当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于ARM的嵌入式Linux应用程序开发研究

0 引 言

当今社会,嵌入式系统已经渗透到人们工作、生活中的各个领域,嵌入式处理器已占分散处理器市场份额的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应用程序开发

一般嵌入式开发流程如图1所示。

这里省略前面三步,从开发应用程序开始。

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种方法的配置,虽然界面不同,但功能是一样的,其中make menuconfig使用最广泛;(2)建立依赖关系。在第一次编译时发生,产生".de-pend"文件,运行"make dep"即可;(3)建立内核。这里建立的是压缩的内核映像,使用"make zIm-age"或"make bzImage"。这样就完成了编译,下载在开发板即可。

一般来说与开发板通信有3种方式:网络下载(tftp,ftp等),串口下载和USB下载。用tftp下载,需要配置Linux下的tftp服务,然后将PC和开发板直连线(非网线)即可;用串口下载,需要配置Linux下的串日通信工具Minicom。配置的主要是一些重要参数,如波特率。

但是只有系统内核是不够的,要使系统正常启动,还需要加载文件系统,所以需要制作文件系统。可以手工制作,但是工作量太大,一般是把现有文件系统加载到目标板,包括制作文件系统镜像和用NFS加载文件系统方法。

开发板上一般已经烧写好了嵌入式系统内核镜像,文件系统和前面讲的U-Boot,在掌握了烧写方法后,可以自己下载。

3.4源程序的获得、编译和调试

由于Linux是开源软件,所以运行在其下的应用软件也是开源软件,不管是哪一类的都免费获得源代码。可以直接在已有的源代码上进行修改得到符合要求的代码。论文中使用的就是已有的源代码,如图2所示。

Linux操作系统支持汇编,C,C++,Basic,Fortran,Pascal,JAVA,PHP等多种编程语言。其下的文本编辑器是Vi和Emacs,二者均有强大的编辑功能。图形界面的编程用的是Qt或是MiniGUI。利用以上软件,跟在Windows和其他操作系统下的软件编写方法完全相同。

编写软件的过程与在其他系统下没有什么不同,不同的地方在与编译和调试。嵌入式中称之为交叉编译和交叉调试。

交叉编译就是将在PC上编写好的源代码经过编译、链接生成可以在嵌入式系统上运行的代码,如图2所示。

在交叉调试中,调试器和被调试程序分别在PC系统和嵌入式系统中,这是与一般调试不同的地方。交叉调试一般分为软件调试和硬件调试。

软件调试插入调试桩的方式进行。典型的是GDB调试器,它分为GdbServer和GdbClient,前者作为调试桩安装在arm的嵌入式系统中,后者驻于本地PC中,二者可通过串口、网口、并口通信。

硬件调试一般都使用的是仿真器,常用的如ROMMonitor、ROMEmulator、In-CircuitEmulator和In-CircuitDebugger。硬件调试功能更强大,性能更优秀,但是有的价格昂贵,额外的设备增加了成本。而ARM的JTAG端口实现在CPU内部调试,通过端口发送命令和接收信息。

JTAG采用的主要技术为边界扫描技术,它的基本思想就是在靠近芯片的输入输出管脚上增加一个移位寄存器单元。当芯片处于调试状态时候,这些边界扫描寄存器可以将芯片和外围的输入输出隔离开来。通过这些边界扫描寄存器单元,可以实现对芯片输入输出信号的观察和控制,它提供了一个便捷的方式用于观测和控制所需要调试的芯片。通过JTAG接口可以方便地对目标系统进行测试,同时,还可以实现Flash的编程,是非常受人欢迎的调试方式。

4结 论

主机从网络下载mp3格式歌曲,通过串口(或tftp)传送到开发板上,用经过调试的播放器,结合教研室开发的功率放大器,很好的实现了播放音频的功能。

在此基础上,还可以进一步开发视频播放功能。除了播放器应用软件,还可以根据存储器的大小增加其他应用程序

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

物联网正在扩大规模并加速发展,进而驱动着全新的经济。而Arm生态系统正是这一巨大机遇背后的推动力。

关键字: ARM 物联网

ARM公司是一家知识产权(IP)供应商,它与一般的半导体公司最大的不同就是不制造芯片且不向终端用户出售芯片,而是通过转让设计方案,由合作伙伴生产出各具特色的芯片。

关键字: ARM

2018年10月26日,深圳星河丽思卡尔顿酒店,ARM中国CEO吴雄昂在ARM年度技术论坛上对记者如是说,彼时的吴坚定,温雅,意气风发。时隔两年,ARM中国CEO吴雄昂再次回到媒体视线,这一次,ARM中国与来自投资方和剑...

关键字: ARM 芯片 集成电路

凭借其全新的功能丰富的移动交易应用程序,屡获殊荣的经纪商HFM让客户实现触手可及的全方位交易体验。 毛里求斯路易港2022年10月14日 /美通社/ -- 全球多资产经纪商...

关键字: 应用程序 FM 移动应用 ADI

喜欢折腾主机的小伙伴一定都知道X86和ARM架构的区别,前者在PC领域已经统治了几十年;后者则主要应用于移动领域,尤其是近几年,ARM的产品在终端应用特别是手持终端应用飞速发展。

关键字: 国产 ARM 主机

科技公司们认为,收购将使英伟达控制一个重要的供应商,该供应商向苹果、英特尔、三星电子、亚马逊和华为等公司授权基本的芯片技术,同时也向不计其数的中小技术企业提供授权。总部位于英国的ARM公司将芯片设计和相关软件代码授权给所...

关键字: 英伟达 ARM 半导体公司

在去年九月,英伟达宣布以400亿美金收购ARM时,就注定这场收购不会太顺利。因为一旦ARM成功被英伟达收购,这将使ARM改变在全球半导体市场中的中立立场,因为ARM的很多客户,都是英伟达的直接或者间接的对手。除此之外,还...

关键字: 英伟达 ARM 半导体

伦敦2022年10月13日 /美通社/ -- Ubuntu Pro是扩展式安全维护和合规订阅服务,目前针对数据中心和工作站已推出公开测试Beta版本。Canonical将按照...

关键字: UBUNTU CANONICAL BSP 应用程序

以下内容中,小编将对工控主板的相关内容进行着重介绍和阐述,希望本文能帮您增进对工控主板的了解,和小编一起来看看吧。

关键字: ARM 工控主板 主板

在这篇文章中,小编将为大家带来工控主板的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: ARM 工控主板 主板

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭