基于ARM的嵌入式Linux软件开发平台的搭建

合集下载

基于ARM-Linux的嵌入式教学实验平台构建的开题报告

基于ARM-Linux的嵌入式教学实验平台构建的开题报告

基于ARM-Linux的嵌入式教学实验平台构建的开题报告一、选题背景随着互联网和物联网的快速发展,嵌入式技术越来越得到广泛应用。

嵌入式系统是指将计算机技术嵌入到各种普通物品中,使其具有智能和自动化控制的功能。

在日常生活中,我们可以看到许多应用嵌入式技术的产品,如智能家居、智能穿戴、智能交通系统等。

嵌入式技术已经成为了关键的技术领域之一,对于现代社会的经济发展和生活方式都有着重要的影响。

在嵌入式技术应用领域,学生们需要掌握嵌入式系统的原理、开发技能和实现方法。

因此,对于嵌入式开发教学平台的建设是非常必要的。

而本项目就是针对嵌入式教学实验平台的创建,主要是基于ARM-Linux的开发。

二、选题意义嵌入式系统是实现智能化和自动化控制的关键技术之一,而作为一个嵌入式系统开发的学生,需要全面掌握基本的开发技能和实现方法。

实验教学平台对于嵌入式开发的学生具有非常重要的作用,通过实际实验操作,学生可以更深入地了解嵌入式系统的原理和运作方式,提高自己仪器设备使用的能力。

同时,学生在实验中可以掌握嵌入式技术的实际应用,为未来嵌入式领域的工作做好充分的准备。

此外,嵌入式系统的应用领域越来越广泛,现实社会对从事嵌入式系统设计与开发的人才需求也越来越大。

因此,通过本项目的开发,可以为学生提供更好的嵌入式教学平台,有利于系统性、全方位地掌握嵌入式系统开发技术,增强其在这个领域的竞争力。

三、项目概述基于ARM-Linux的嵌入式教学实验平台需要完成以下任务:1.搭建基于ARM-Linux的实验平台:需要购置相应的硬件设备、安装ARM-Linux系统。

2.设计实验课程:根据实验课程设置,设计实验内容、实验方案和实验指导书。

3.编写实验代码:根据实验内容编写相应的程序代码,并在平台上进行实际运行测试。

4.实验结果分析:对实验数据进行收集、处理、分析和报告。

五、预期成果通过本项目的实施,预期达到以下几点成果:1.搭建嵌入式教学实验平台并投入使用,满足学生实验需要。

嵌入式Linux系统开发—基于ARM处理器通用平台 第1章

嵌入式Linux系统开发—基于ARM处理器通用平台 第1章
嵌入式Linux系统开发教程 ——基于ARM处理器通用平台
作者:冯新宇
清华大学出版社
第1章 Linux概述与系统管理
第1节 嵌入式系统概述
什么是嵌入式系统
嵌入式系统是以应用为中心,以计算机技术为 基础,且软硬件可裁减,适应应用系统对功能、 可靠性、成本、体积、功耗有严格要求的专用计 算机系统。 1. 以应用为中心:嵌入式系统不应该独立于应用。 2. 以计算机技术为基础:计算机系统由软件和硬 件构成,嵌入式系统也不例外。
1.2嵌入式系统构架
它一般由以下几部分组成: 嵌入式微处理器 外围硬件设备 嵌入式操作系统 特定的应用程序
1.3嵌入式系统与PC的不同
1. 一般专用于特定的任务,而PC是一个通用计算机。 2. 使用多种类型的处理器和处理器体系结构。 3. 及其关注成本 4. 有实时约束 5. 使用实时多任务操作系统 6. 软件故障造成的后果比PC系统更严重 7. 大多有功耗约束 8. 经常在极端的环境下运行 9. 系统资源比PC少的多 10. 通常所有的目标代码存放在ROM中 11. 需要专用工具和方法进行开发设计 12. 嵌入式系统的数量远远超过PC
配置引导装载程序
7.网络配置
网络配置
8.防火墙配置 Red Hat Linux为增加系统安全性,提供了防 火墙保护,在此可以选择适当的安全级别。
(1)高级 (2)中级 (3)无防火墙
防火墙配置
9.设置根口令 设置根口令的窗口如图3.13所示。必须输入一 个根口令。
根口令必须至少包括6个字符,键入的口令 不会在屏幕上显示。
RPM包的名称有其特有的格式,如典型的 RPM 软 名称类似于:
liubing-1.0-1.i386.rpm 该文件名包括软件包名称“liubing”;软件的版本“1.0” 其中包括主版本号和次版本号;“i386”是软件所运行 硬件平台;最后 “rpm”做为文件的扩展名,当然代表文 件的类型为RPM包。

基于ARM+Linux的嵌入式开发

基于ARM+Linux的嵌入式开发

Linux环境下的编译、连接
GNU编译工具和GNU make
构建嵌入式Linux开发环境
本系统采用交叉开发环境,目标机为基于ARM
的通用电力采集终端,宿主机为运行Linux (Red Hat或Debian)的PC机,如图所示。
JTAG 目标机 COM1 网口
PC机
构建嵌入式Linux开发环境
两种模式:“启动加载”模式和“下载”模式 Flash的分区:
bootloader,kernel映像,root FS,用户数据 区 “下载”模式是针对开发的 首先通过JTAG口固化好bootloader,然后进入 “下载”模式,用串口通信方式或网口通信方 式将宿主机上的kernel映像和root FS下载到 Flash上。
基于ARM LinuБайду номын сангаас的嵌入式开发
主讲人:郑红
ARM介绍
ARM core ARM芯片生产厂家基于ARM core生产出不同
型号的ARM芯片
IP(知识产权)
ARM core ARM920T
Fabless
ARM 芯片s3c2410
设备(如PDA)开发商
电力采集终端
ARM介绍
ARM 是目前世界上应用最为广泛的嵌入式处
ARM汇编及与C语言的混合编程
在C程序中嵌入ARM汇编语句
__asm { instruction[;instruction] … [instruction] }
Boot Loader
分为stag1和stag2 在 stage1 阶段要实现的功能包括以下几个主要
的内容: 1.硬件设备初始化。 2.为加载 Boot Loader 的 stage2 准备 RAM 空 间。 3.拷贝 Boot Loader 的 stage2 到 RAM 空间中 并设置好堆栈。 4.跳转到 stage2 的 C 入口点。

ARM+Linux开发平台搭建详细步骤

ARM+Linux开发平台搭建详细步骤

1、安装VMWare虚拟机(创建一台虚拟的电脑)并设置(1)用默认的步骤安装,并输入注册号(2)打开VMWare,点击文件-新建虚拟机接下去几步选择默认不停的点击“下一步”直到最后点击“完成”就行了2、在VMWare上定制安装Linux系统在虚拟机的CD中选择挂载硬盘上的Linux iso镜像文件点击开启此虚拟机,出现这个界面时,把鼠标点进虚拟机界面,选择第一项,并回车这里选择Skip这里选择忽略所有数据选择将修改写入磁盘选择软件开发工作站等待安装完成安装完成后选择重新引导(会重启系统)选择以后再注册选择以后再连接点击完成后会重启系统用root用户名登陆系统,开始时字体太小,点击出在下图界面后选择外观在这里设置字体大小3、配置虚拟机和Linux系统的网络(1)先关闭虚拟Linux系统,配置VMWare网络,设置为桥接模式(2)打开虚拟Linux系统,使用ifconfig命令查看linux系统的网络信息可以发现eth0网卡没有打开。

(2)关闭NetworkManager服务(该服务与网卡冲突,不关闭打不开网卡)输入service NetworkManager stop命令来关闭(3)修改网卡eth0的配置文件用vim打开/etc/sysconfig/network-scripts/ifcfg-eth0文件(也可找到指定目录用鼠标打开)将ONBOOT=“no”改为”yes”(不改的话,虽然网卡可以启动,但是用ifconfig命令无法看到eth0的IP信息)(4)用/etc/int.d/network restart命令来重启网卡(5)再次用ifconfig命令来查看网卡信息,这时能完整的看到网卡的各项信息了4、安装和配置Samba服务器(1)挂载安装光盘,安装光盘在系统中是文件夹形式:/dev/cdrom/,将其挂载到/mnt/目录下(2)用rmp –ivh命令来安装光盘中的samba3.5.10版本的安装包(3)建立一个win用户,专门用来登陆samba,并设置其用户密码和登陆samba的密码创建一个win用户:useradd win创建win的密码:passwd win (会提示输入两次密码)创建win用户登陆samba的密码:smbpasswd –a win (会提示输入两次密码)(4)修改samba服务器的配置文件/etc/samba/smb.conf,用vim打开(也可找到指定目录用鼠标打开)找到最后91%处的如下几行,进行修改。

基于ARM9的嵌入式Linux应用开发平台的分析与实现

基于ARM9的嵌入式Linux应用开发平台的分析与实现

基于ARM9的嵌入式Linux应用开发平台的分析与实现陈斌【摘要】随着经济的迅速发展以及科学技术水平的不断提高,IT行业取得了较大程度上的进步,为我国国民经济的发展以及人民生活水平的提高做出重要贡献。

尤其是近几年来,信息技术、网络技术飞速发展,IT领域不断发展与升级,在这种环境之下,嵌入式系统成为IT领域的重要焦点之一。

目前状况下,行业内存在着诸多的嵌入式系统,而在这些嵌入式系统当中,Linux最为受到青睐,这主要是因为Linux具有自身的强大优势,主要表现在三个方面,分别是元代码开放、功能强大一级级易于移植等。

就目前市场状况而言,ARM9系列的嵌入式微处理器已经成为嵌入式系统首选的处理器产品,本文就在此基础之上针对基于ARM9的嵌入式Linux应用开发平台的分析与实现进行有益探讨。

【期刊名称】《佳木斯职业学院学报》【年(卷),期】2014(000)005【总页数】2页(P1-2)【关键词】嵌入式系统 ARM9 Linux应用开发平台文件系统【作者】陈斌【作者单位】铁岭师范高等专科学校【正文语种】中文【中图分类】TP316.811.嵌入式系统模型图1显示的主要是嵌入式系统的模型结构:如果从物理层面的角度对其进行一定程度上的分析,可以将嵌入式计算系统理解成一个专用的电子系统,一般情况下,这一专用的电子系统都处于一个非电子系统环境之下,且这一系统环境具有一定的复杂性。

至于这两种系统的关系,可以对其进行一定程度的抽象化处理,即具有复杂性的非电子系统是嵌入式系统的外部环境,我们将其称为被嵌入的系统。

就一般状况而言,整个系统之中所包含的嵌入式系统为多个,同时,嵌入式系统能够与外界进行直接的通信。

对于嵌入式系统而言,它能够提供一个专门的服务给被嵌入系统,这一服务主要表现为两个方面:一方面,这一服务可以表现为对外界输入的响应;另一方面,这一服务也可以是对被嵌入系统或者与之相邻的嵌入式系统数据的响应。

就如现代机电控制系统,对于这一系统而言,它是一种分布式的系统,在这种系统环境之下,各个处理单元都是通过网络进行一定程度上的连接的。

基于Linux嵌入式系统开发平台的建立_袁俊杰

基于Linux嵌入式系统开发平台的建立_袁俊杰

ARM的相关技术,目前已经占领了75%以上的32位RISC嵌入式产品市场[6].ARM的微处理器核适用于各种领域,正迅速成为便携式通信设备、手持计算、多媒体数字消费和嵌入式方案,解决市场中RISC批量生产的标准[6]. ARM处理器在国内也非常普及,所以本文选用ARM微处理器.ARM处理器有一系列内核结构,以使用于不同领域.在所有ARM处理器中,ARM920T微处理器属于中端产品,应用也十分广泛.本文选用内嵌ARM920T三星公司生产的32位S3C2410处理器.S3C2410A是32位低功耗RISC宏单元,其工作频率为203MHz.同时支持Thumb16位压缩指令集,从而能以较小的存储空间需求,获得32位的系统性能. CPU内部集成有16 KB的指令缓存和数据缓存、LCD控制器(可支持STN和TFT)、NAND Flash BootLoader、系统管理器(片选逻辑和SDRAM控制器)、3路UART、4路DMA、4路PWM和1个内部时钟控制器、8路10位ADC和触摸屏接口、可编程的通用I /O口、以及I2C和I2S总线接口、USB Host/ USB Device接口等等,并带有SD Host和多媒体卡(Multi-Media Card)接口,有着非常丰富的片内外围,极大地简化了系统的设计.2Linux操作系统内核通常操作系统由内核和一些系统服务程序(命令解释、库文件、链接和编译程序等)组成.内核是操作系统的灵魂,它为用户进程提供一个虚拟机接口.用户进程可以并行运行、公平地占用系统资源而互不干扰.Linux操作系统一般由内核、shell、文件结构和实用工具4个主要部分组成.Linux系统的内核采用单块结构,可以动态地加载和卸载模块[7,8].系统利用内核模块的可动态装载和卸载功能,可以方便地在内核中添加新的组件或卸载不再需要的内核组件:内核模块的动态装载性使得内核映像的尺寸保持在最小,并且具有最大的灵活性、同时便于检验新的内核代码,而不需重新编译内核且重新引导,从而用户可以根据自己系统的需要构筑自己的私有内核,其源码的公开更为改造其内核提供了可能,尤其为重建有特殊要求的操作系统提供了可能[9].3基于Linux的开发环境及开发工具为了实现基于Linux的应用开发,必须建立一个完备的Linux开发环境.嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的.目前一般采用的解决办法是首先在通用计算机上编写程序,然后通过交叉编译生成目标平台上可以运行的二进制代码格式,最后再下载到目标平台上的特定位置上运行.需要交叉开发环境的支持是嵌入式应用软件开发时的一个显著特点,交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式[1],如图1所示.图1交叉开发环境Fig.1The cross developm ent environm ent3.1交叉编译和链接在完成嵌入式软件的编码之后,需要进行编译和链接以生成可执行代码,由于开发过程大多是在使用Intel公司x86系列CPU的通用计算机上进行的,而目标环境的处理器芯片是ARM9的微处理器,嵌入式系统没有足够的内存或存储资源来编译可执行代码,这就要求在建立好的交叉开发环境中进行交叉编译和链接.交叉编译器和交叉链接器是能够在宿主机上运行,并且能够生成在目标机上直接运行的二进制代码的编译器和链接器.例如在基于ARM体系结构的gcc交叉开发环境中,arm-linux-gcc是交叉编译器,arm-linux-ld是交叉链接器.嵌入式系统在链接过程中通常都要求使用较小的函数库,以便最后产生的可执行代码能够尽可能地小,因此实际运用时一般使用经过特殊处理的函数库.对于嵌入式Linux系统来讲,功能越来越强、体积越来越大的C语言函数库glibc和数学函数库libm已经很难满足实际的需要,因此需要采用它们的精化版本uClibc、uClibm和newlib等[10].目前嵌入式的集成开发环境都支持交叉编译和27 2006年6月袁俊杰,等:基于Linux嵌入式系统开发平台的建立基于Linux嵌入式系统开发平台的建立袁俊杰,曹作良(天津理工大学机械工程学院,天津300191)摘要:嵌入式系统的开发与研究已成为当前的一个热点,Linux由于其独有的优势而成为很多厂家开发嵌入式应用的系统,而ARM作为一种高性能、低成本的嵌入式RISC微处理器,已成为应用最广泛的嵌入式处理器.本文介绍了ARM处理器和Linux操作系统的特点,并结合系统核心是32位ARM920T处理器S3C2410开发板对整个开发过程,包括硬件结构、开发环境及开发工具进行了分析,特别是对交叉编译环境和Linux内核编译与移植进行了重点分析.关键词:嵌入式系统;ARM;Linux中图分类号:TP311. 52文献标识码:AEstablishment of the embedded system design based on LinuxYUAN Jun-jie,CAO Zuo-liang(School ofMechanicalEngineering,Tianjin University ofTechnology,Tianjin 300191,China) Abstract:Research and developmenton the embedded system has become a currenthot spot,and owing to Linux's advantageas a kind ofOS in designing the embedded application,itbecomes a selection by a few of companies. As a highcapability andlow costRISC mictoprocessor,ARM has already become themost comprehensive embedded processor. This paper introducesthe ARM processorand the LinuxOS. Combiningwith the S3C2410 thata designation panelwith the 32 bitARM920Tproces-sor,the complete process is analyzed,including hardware architecture,developmentenvironmentand tools. In particular,thecrossing compiled environmentand the transplantation ofLinux are emphatically analyzed.Key words:tmbedded system;ARM;Linux目前,在嵌入式系统里基于ARM微核的嵌入式处理器已经成为市场主流.随着ARM技术的广泛应用,建立面向ARM构架的嵌入式操作系统也就成为当前研究的热点问题.目前已经涌现出了较多的嵌入式操作系统,例如VxWork、Windows CE、Palm OS、Linux等等[1-2].在众多的嵌入式操作系统里,许多开发人员选择的却是Linux,这是因为它公开源代码并且是免费的,可以让任何人将其修改移植到自己的目标平台系统里使用[3]. ARM Linux支持包括ARM710、ARM720T、ARM902T、StrongARM等系列的ARM处理器,这些ARM处理器都带有内存管理单元(MMU),而对于不带有内存管理单元的CPU,一般采用μClinux作为其操作系统[4-5].本文选用的微处理器S3C2410是基于32位ARM920T内核的微处理器,基于此,构造一个Linux嵌入式操作系统,将它嵌入到基于32位ARM920T内核的系统中,在此基础上开发各种应用程序.1硬件ARM处理器是一种16 /32位的高性能、低成本、低功耗的嵌入式RISC微处理器,由ARM公司设计,然后授权给各半导体厂商.它为一个完整系统的开发提供全面的技术支持,世界几乎所有的主要半导体厂商都生产基于ARM体系结构的通用芯片,或在收稿日期:2005-12-12.基金项目:天津市自然科学基金(023615011).第一作者:袁俊杰(1980—),男,硕士研究生.通讯作者:曹作良(1945—),男,教授,硕士生导师. 交叉链接,如WindRiverTornado和GNU工具链等,编写好的嵌入式软件经过交叉编译和交叉链接后通常会生成两种类型的可执行文件:用于调试的可执行文件和用于固化的可执行文件.3.2交叉编译环境GNU工具以源代码的方式发行,不同的体系结构,GNU提供相应的开发软件包.可到网上下载交叉编译器工具链:cross-2. 95. 3. tar. bz2,作为root用户登陆到linux下,进入/usr/local目录,新建arm目录,执行以下命令:tar jxvf cross-2. 95. 3. tar. bz2修改PA TH变量,增加/usr/local/arm /2. 95. 3 /bin,如exportPATH=/usr/local/arm /2. 95. 3 /bin:$PA TH这样Linux就可以有了基于ARM体系结构的编译器、链接器、调试器以及实用程序.3.3NFS辅助开发环境建立1)宿主机(NFS服务器及其设置):(1)修改配置文件etc /exports,如/nfs /rootfs192. 168. 67. 16(rw,sync,no_root_squash)/nfs /rootfs为创建的根文件系统在主机上的目录,192. 168. 67. 16是下位机IP,rw表示允许下位机读写该目录,no_ root_squash允许下位机以主机root用户身份挂载根文件系统.(2)配置其为所有用户可读,chmod 644 /etc /ex-ports(3)让NFS服务器重新载入etc /exports,/etc /ini.t d /nfs reload可以用/usr/sbin /rpcinfo -p检查是否启动了正常NFS服务器,至少应该看到nfs, mountd和portmapper(4)检查防火墙设置,没有屏蔽NFS使用的端口和允许通信的主机,检查iptables,ipchains等设置,以及/etc /hosts. deny,/etc /hosts. allow.如简单点就关闭iptables和ipchains服务.2)目标板:(1)Linux内核采用模块化的组织结构,可以通过增减内核模块的方式来增减系统功能.内核需要支持NFS,准备好内核源代码linux-2. 6. 14. tar,利用交叉编译器生成运行在目标板上的Linux内核.把源代码保存到宿主机的用户目录下,运行解压命令:tar-xvf linux-2. 6. 14. tar解压完毕后,进入用户目录下的linux目录(内核源码目录),键入makemenuconfig,Enable:File Systems→Network File Systems→NFS file system supportProvideNFSv3 client support配置完成后,重新编译内核,依次键入:make depmake cleanmake zImage产生新的内核文件zImage,将该文件烧写到从0x30f00000开始的Nand Flash中.(2)目标板重启后,运行以下命令:mount-tnfs192. 168. 67. 1:/nfs /rootfs /mnt-o nolock 192. 168. 67. 1为NFS服务器IP,/nfs /rootfs为服务器开放给本目标板的目录.NFS辅助开发环境建立完毕.4嵌入式Linux的应用开发完成了上述的工作,一个嵌入式平台搭建成功,在这个平台上就可以进行嵌入式开发了.本文介绍一个简单的自定义键盘测试程序,主要说明在Linux 中加入的过程.在宿主机Linux下使用VIM编辑器,新建一个testkey. c,程序流程如图2:编辑应用程序Makefile在与testkey. c同一个目录下新建Makefile, viMakefileMakefile内容如下:CC=/usr/local/arm /2. 95. 3 /bin /arm -linux-gccall:cl testkeytestkey:testkey. c$(CC)-o testkey testkey. ccl:-rm -rf testkey编译应用程序在testkey. c和Makefile相同目录下执行:make就可以得到名为testkey的可执行程序这个可执行程序就是经过arm-linux-gcc交叉编译的arm平台上的←按下按键3key 3 strokekey 131 stroke3 Readkey 4 stroke←按下按键4key 4 strokekey 132 stroke/mnt/testkey#cd../mnt#5结论本文在分析了ARM和Linux的特点的基础上,介绍了嵌入式Linux开发平台的搭建过程,对Linux的内核编译进行了详细的分析,最后用一个简单的实例说明了应用程序的添加过程.这样就可以在此基础上进行各种驱动程序和应用程序的开发了.参考文献:[1]邹思轶. Linux嵌入式设计与应用[M].北京:清华大学出版社,2002.[2]马忠梅,李善平. ARM&Linux嵌入式系统教程[M].北京:北京航空航天大学出版社,2004.[3]陈渝,李明,杨白华,等.源码开放的嵌入式系统软件分析与实践[M].北京:北京航空航天大学出版社,2004.[4]桑楠.嵌入式系统原理及应用开发技术[M].北京:北京航空航天大学出版社,2002.[5]吴明晖.基于ARM的嵌入式系统开发与应用[M].北京:人民邮电出版社,2004.[6]田泽.嵌入式系统开发与应用[M].北京:北京航空航天大学出版社,2005.[7]夏玮玮,沈连丰,肖婕,等.嵌入式系统关键技术分析与开发应用[J].业界论坛,2003,(2):5-9.[8]SARW AR,Al-SAGABI. LINUX&UNIX程序开发基础教程[M].英宇,姚锋,译.北京:清华大学出版社,2004.[9]英海燕.基于ARM的嵌入式Linux操作系统移植[J].现代情报,2005,(5):155-156.[10]袁太生,张素琴.嵌入式环境下Linux移植问题的探讨[J].计算机应用研究,2003,(11):61-63.29 2006年6月袁俊杰,等:基于Linux嵌入式系统开发平台的建立。

实验一 ARM嵌入式系统开发环境搭建

实验一ARM嵌入式系统开发环境搭建一、虚拟机安装配置ARM嵌入式系统开发需要linux环境,为了在windows下使用linux,需要安装虚拟机。

虚拟机软件采用Virtualbox,linux操作系统的版本使用lubuntu。

lubuntu系统已制成镜像文件,只需导入到virtulbox即可。

1. 安装VirtualBox虚拟机软件。

采用默认安装。

2. 运行Virtualbox虚拟机软件,导入lubuntu虚拟机。

在“管理”菜单中,选择“导入虚拟电脑”项,在后续对话框中选择镜像文件,其余参数按照默认。

3. 启动lubuntu虚拟电脑进入linux界面。

二、建立交叉编译环境1. 查看arm gcc 编译工具# cd /opt/host/armv4l# ls bin列出的以“armv4l-unkown –linux-”开头的系列文件就是gcc编译工具软件。

#armv4l-unknown-linux-gcc –v应该显示以下信息:如果没有出现该信息,则检查~/.bashrc文件,在其中加入“PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/”。

2. 建立桥接网络当使用tftp下载程序时,为了使开发板能够访问虚拟机中的数据,需要对网络加以设置。

开发板的IP为192.168.0.115;虚拟机的IP 设为:192.168.0.100(1) 在lubuntu虚拟机的网卡配置中,选择“桥接网卡”,(2) 在windows操作系统网络配置界面中,将本地网卡和虚拟机的网卡桥接起来。

桥接参数如下:IP设置为:192.168.0.2掩码:255.255.255.0网关:192.168.0.2(3)lubuntu虚拟机的IP设置:虚拟机IP:192.168.0.100掩码:255.255.255.0网关:192.168.0.23. 配置minicom参数minicom程序用于在linux环境下通过串口和开发板通信。

基于ARM的嵌入式开发平台设计

基于ARM的嵌入式开发平台设计摘要:ARM作为嵌入式系统中应用场景相对广泛的一款处理器,凭借着自身优秀的性价比、低消耗和高稳定性得到了市场的青睐。

嵌入式Linux与ARM处理器的结合是嵌入式技术领域的主流解决方案,因此在ARM处理器上构建嵌入式Linux系统具有重要的实用价值。

本文就是基于ARM嵌入式系统的基本概念和实际应用场景展开探讨,浅谈ARM嵌入式系统的使用价值和发展前景。

关键词:ARM;嵌入式;平台设计引言:随着通信技术、计算机技术的飞速发展、微处理器工艺的改进以及社会的日益信息化,嵌入式系统在通信、工农业以及人们日常生活等各个领域得到了广泛的应用,嵌入式系统成为了当今社会的热门行业。

为了能够维持整个系统的正常运营,就必须要保障系统内的信息指令能够快速下达到各个部分,同时各个部分也要有快速相应指令和反馈自身运转状态的能力。

因此,在讨论ARM的嵌入式系统软件开发课题时,必须慎重考量各方面的因素。

1、嵌入式Linux系统的组成基于Linux内核的嵌入式系统,使用任何特定的链接库或用户工具。

嵌入式Linux通常由三部分组成:Bootloader、Linux内核和根文件系统,嵌入式Linux系统的开发不同于普通PC系统的开发。

在嵌入式系统的开发过程中,需要编译嵌入式系统所包含的功能模块,最后生成一个单一的图像文件。

自底向上的映像文件是:Bootloader、Linux内核、设备驱动程序、根文件系统和应用程序。

在嵌入式Linux系统的开发中,系统配置的开发方法会随着应用程序的需求而变化。

ARM处理器核心可分为ARM7、ARM9、ARM9E、arm10e、ARM11、securicore、StrongARM、XScale等系列。

ARM7、ARM9、ARM9E和ARM10E是ARM处理器的几个主流系列。

这四个系列的处理器可以为不同应用程序的特定嵌入式系统需求提供特定的解决方案。

基于ARMv7体系结构的新产品系列分为三个系列:A(应用领域)、R(实时领域)和M(控制领域),针对高端和低端的需求,提出了具体的核心。

《基于ARM9的嵌入式Linux系统开发原理与实践》课件第6章

第6章 创建嵌入式Linux交叉开发工具链
6.1 下载源文件 6.2 建立工作目录 6.3 输出环境变量 6.4 建立内核头文件 6.5 建立二进制工具 6.6 建立初始编译器 6.7 建立c库 6.8 建立全套编译器 6.9 完成工具链的设置 6.10 测试和验证交叉编译工具 本章小结
6.1 下 载 源 文 件
转移文件: [root@localhost bin] #mv as ar gcc ld nm ranlib strip $PREFIX/lib/gcc-lib/arm- linux/2.95.3 [root@localhost bin] #for file in as ar gcc ld nm ranlib
图6-1 Linux 2.4.21内核配置界面
6.5 建立二进制工具
binutils是GNU工具之一,它包括连接器、汇编器和其他 用于目标文件和档案的工具,它是二进制代码的处理维护工 具。安装binutils工具包含的程序有addr2line、aபைடு நூலகம்、as、c++filt、 gprof、ld、nm、objcopy、objdump、ranlib、readelf、size、 strings、strip、libiberty、libbfd和libopcodes。
给Linux内核打补丁: [root@localhost linux-2.4.21] #patch -p1 < ../../setup-
dir/patch-2.4.21-rmk1
配置: [root@localhost linux-2.4.21] #make ARCH=arm
CROSS_COMPILE=arm-linux- menuconfig
图6-4 编译初始编译器错误示例

基于ARM的嵌入式Linux开发平台构建

基于ARM的嵌入式Linux开发平台构建技术分类:嵌入式系统| 2011-09-26维库电子随着计算机技术、通信技术的飞速发展和3C(计算机、通信、消费电子)的融合,嵌入式系统已经渗透到各个领域。

在32位嵌入式微处理器市场上,基于ARM(Advanced RISC Machine)内核的微处理器在市场上处于绝对的领导地位,因此追踪ARM技术的发展趋势显得尤为重要。

在嵌入式操作系统的选择上,Linux一直因其内核精简、代码开放、易于移植等特点受到广大嵌入式系统工程师的青睐。

另外,嵌入式系统一旦具备网络接入功能,其信息处理能力更加强大,因此有必要为嵌入式系统构建Web服务器。

本文主要目的是研究基于ARM 的嵌入式Linux开发平台构建,并在此基础上进行网络应用程序的开发。

选用指南在进行嵌入式系统的开发之前,首先必须要选择恰当的开发平台。

对于经验丰富的开发者来说,当然可以自己动手组装硬件,然后挑选合适的嵌入式Linux系统,将其移植到开发平台上。

但对于初学者来说,可能更好的办法是购买硬件厂商已经做好的开发板,将精力集中在应用程序的开发上。

虽然ARM微处理器有多达十几种的内核结构、几十个芯片生产厂家和众多的功能组合,但这也给广大嵌入式开发人员在确定方案时带来了一定的困难。

客观上讲,嵌入式系统一般都是量身打造的。

开发人员必须依据客户需求选择合适的软硬件平台,否则的话要么无法完成所要求的功能,要么就会造成资源的浪费,挑选出一个合适的方案确实很不容易。

初学者在做决定时不妨借鉴下面的一些经验。

ARM处理器包含ARM7系列,ARM9系列,ARM9E系列,ARM10E系列,SecurCore 系列,Inter的Xscale,Inter的StrongARM ARM11系列其中,ARM7、ARM9、ARM9E 和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。

SecurCore系列专门为安全要求较高的应用而设计。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于ARM的嵌入式Linux软件开发平台的搭建
作者:吴捷
来源:《电脑知识与技术》2016年第22期
摘要:嵌入式软件开发是当前热门技术,而构建嵌入式软件开发环境是进行嵌入式软件开发的基础。

该文对如何搭建基于ARM的嵌入式Linux软件开发平台进行了探究。

根据软件开发的一般流程,从交叉编译环境的建立,到TFTP和NFS的配置,都进行了详细的论述,并通过实验证明了平台的可用性。

关键词:嵌入式系统;ARM;Linux;交叉编译
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)22-0227-02
Abstract:Embedded software development is the focus of current research,construction of the embedded software development environment is the basis of embedded software development. This paper research on how to build embedded Linux software development platform based on ARM. According to the mainline of software development process,from the establishment of cross-compilation environment,to TFTP and NFS development environment,all are discussed in detail,and the availability of the platform was demonstrated by the experimental results.
Key words:embedded system; ARM; Linux; cross-compilation
嵌入式设备的使用日益广泛,其中操作系统的选用成为关注的焦点。

嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括硬、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面等。

与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。

目前主流的嵌入式操作系统有Windows CE、VxWorks、嵌入式Linux等。

其中,Linux成为极有吸引力的一种选择,它是个和Unix相似、以核心为基础的、完全内存保护、多任务多进程的操作系统。

支持广泛的计算机硬件,程式源码全部公开,任何人可以修改并在GNU通用公共许可证(GNU General Public License)下发行。

由于Linux桌面系统在实际使用中熟悉的人较少,开发者在进行嵌入式Linux软件开发和研究的过程中,往往面临搭建开发平台的困难[1]。

本文对基于ARM的嵌入式Linux开发平台的搭建进行了研究,提供了一种可靠性较高的方法。

1 嵌入式开发软件平台搭建
嵌入式软件开发一般遵循“宿主机一目标板”的开发模式。

其中核心内容主要是宿主机交叉编译环境[2]以及TFTP和NFS环境的搭建。

在本文给出的实验示例中,宿主机上安装的是目前比较流行的RHEL 6版本。

1.1 宿主机交叉编译环境的搭建
因为成本原因,嵌入式系统的资源往往是有限的,因此直接在嵌入式系统的硬件平台上编写软件比较困难。

这时候就需要交叉编译。

所谓交叉编译就是在某个主机平台上(比如PC 上)用交叉编译器编译出可在其他平台上(比如ARM上)运行的代码的过程。

嵌入式系统交叉编译环境如图1所示。

下面就介绍如何搭建宿主机交叉编译环境。

本文在测试时使用的交叉编译器版本为arm-linux-gcc-3.4.1.tgz,硬件方面使用的是上海双实科技提供的基于S3C2440的开发板。

安装交叉编译器arm-linux-gcc-3.4.1.tgz步骤如下:(通过U盘拷贝到系统中,并放置根目录下)
cd /
tar zxvf arm-linux-gcc-3.4.1.tgz
vi /root/.bashrc
添加下面一句
PATH=$PATH:/usr/local/arm/3.4.1/bin
source /root/.bashrc //使文件生效
arm-linux-gcc –v //查看交叉编译器版本号,应该显示为3.4.1
1.2 TFTP的搭建
TFTP是一种传输文件的简单协议,它没有FTP协议那么多特征,不支持目录列表及用户认证[3],但是实现快捷,被广泛应用于嵌入式开发领域。

TFTP也是基于传统的C/S模式进行工作, TFTP开发环境的构建分为宿主机端的tftp-server支持以及目标板的tftp-client支持。

1.2.1 构建宿主机tftp开发环境
1)首先利用配置好的本地yum源安装tftp服务软件包
mount /dev/cdrom /media
yum install tftp*
2)修改配置文件
在RHEL 6系统中TFTP服务默认情况下是禁用的,所以要修改/etc/xinetd.d/tftp文件来开启服务。

操作如下:
vi /etc/xinetd.d/tftp
将配置选项disable= yes改为disable= no,保存退出
3)重新启动tftp-server
service xinetd restart
1.2.2 构建目标板tftp开发环境
一般来说,目标板都能够支持tftp-client,所以嵌入式目标板tftp环境一般就不需要再配置了。

在目标板可以通过类似命令tftp –r a.c –g 211.65.180.1下载文件。

1.3 NFS开发环境的搭建
tftp服务只在需要下载或传输文件至开发板时使用。

在应用程序开发环节,通常都要
搭建好NFS环境[4]。

NFS是系统间进行文件共享的一种网络协议,在NFS的应用结构中有服务器和客户机两种角色,NFS客户端通过挂载NFS文件系统的方式访问NFS服务器中输出的共享目录。

因此,NFS方式比ftp方式有着更高的执行效率。

1.3.1 宿主机NFS开发环境的建立
1)安装NFS服务器
mount /dev/cdrom /media
yum install nfs-utils
2)关闭服务器端防火墙
service iptables stop
3)配置NFS服务器
在宿主机端以root的身份登录。

使用vi编辑器编辑/etc/exports文件,该文件中默认内容为空,可以添加如下内容:
/home/share 211.65.180.1 (rw,sync,no_root_squash)
添加的内容表示允许IP为211.65.180.1的计算机以读写的权限来访问共享目录
/home/share。

4)启动RPC服务(在RHEL6中用rpcbind服务代替之前的portmap服务)
service rpcbind start
5)启动NFS服务器
service nfs start
1.3.2 目标机NFS开发环境的建立
目标板如果不支持NFS,则需要重新编译内核,添加相应的选项。

1)配置内核支持NFS客户端
将内核源代码拷贝到相关目录下,然后输入命令make menuconfig,在出现的图形界面中选择Load an Alternate Configuration File菜单载入配置文件,添加内核对NFS的支持,然后保存退出,用命令make uImage编译内核,将生成的uImage重新下载到目标板启动即可。

2)目标板对NFS共享目录的挂栽
mount -t nfs –o nolock 192.168.0.10:/tftpboot /tmp
2 结束语
本文对构建基于ARM的嵌入式Linux软件开发环境进行了探究。

作者在宿主机上安装了内核较新的Linux企业版本RHEL 6,着重研究了交叉编译环境的建立,TFTP和NFS的配置,从实验结果来看,提供了一种可靠性较高的方法。

参考文献:
[1] 苟军年. ARM-Linux嵌入式软件开发平台的搭建. 计算机时代[J]. 2010(11): 53-55.
[2] 张欢庆,高丽,宋承祥. 基于ARM的嵌入式Linux交叉编译环境的研究与实现[J]. 计算机与数字工程, 2012, 40(2): 151-153.
[3] 李怀刚,邱建新. 网络安装Linux的技术原理分析及实现[J]. 计算机应用与软件,2006, 23(9): 110-112.
[4] 叶军,朱华生. 嵌入式Linux NFS方式下应用程序的实现[J]. 微计算机信息, 2007,23(8).。

相关文档
最新文档