ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:1.14MB ,
资源ID:3759431      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3759431.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程嵌入式Linux开发基础知识1Word文件下载.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

软件工程嵌入式Linux开发基础知识1Word文件下载.docx

1、与传统的实时操作系统(RTOS)相比,采用像嵌入式 Linux 这样的开放源码的操作系统的另外一个好处是 Linux 开发团体看来会比 RTOS 的供应商更快地支持新的 IP 协议和其他协议。例如,用于 Linux 的设备驱动程序要比用于商业操作系统的设备驱动程序多,如网络接口卡(NIC)驱动程序以及并口、串口驱动程序。Linux 操作系统本身的微内核体系结构相当简单。网络和文件系统以模块形式置于微内核的上层。驱动程序和其他部件可在运行时作为可加载模块编译到或者是添加到内核。这为构造定制的可嵌入式系统提供了高度模块化的构件方法。而在典型情况下该系统需结合定制的驱动程序和应用程序以提供附加功能。

2、嵌入式系统也常常要求通用的功能,为了避免重复劳动,这些功能的实现运用了许多现成的程序和驱动程序,它们可以用于公共外设和应用。Linux 可以在外设范围广泛的多数微处理器上运行,并早已经具备了现成的应用库。Linux用于嵌入式的因特网设备也是很合适的,原因是它支持多处理器系统,该特 性使Linux具有了伸缩性。因而设计人员可以选择在双处理器系统上运行实时应用,提高整体的处理能力。例如,可以在一个处理器运行GUI,同时在另一个处理器上运行Linux系统。在嵌入式系统上运行 Linux 的一个缺点是 Linux 体系提供实时性能需要添加实时软件模块。而这些模块运行的内核空间正是操作系统实现调度策略、

3、硬件中断异常和执行程序的部分。由于这些实时软件模块是在内核空间运行的,因此代码错误可能会破坏操作系统从而影响整个系统的可靠性,这对于实时应用将是一个非常严重的弱点。尽管如此,已经有许多嵌入式 Linux 系统的示例,可以有把握地说,某种形式的 Linux 能在几乎任一台执行代码的计算机上运行。1.2 嵌入式Linux开发平台简介嵌入式Linux可以运行的硬件平台十分广泛,从x86、MIPS、POWERPC到ARM,以及其他许多硬件体系结构。目前在世界范围内,ARM体系结构的SOC逐渐占领32位嵌入式微处理器市场,并且在国内市场上很容易购买到ARM核的嵌入式处理器,我们所介绍的硬件平台也是基于A

4、RM体系结构的,由北京博创兴业科技有限公司开发的UP-NetARM3000和UP-NetARM2410/UP-NetARM2410-S实验仪器。UP-NetARM3000的CPU为AMR7TDMI内核的三星S3C44B0X01芯片,由于没有MMU,只能运行CLinux,UP-NetARM2410的CPU为AMR920T内核的三星S3C2410芯片,由于有MMU,就可以运行标准的ARM-Linux内核。通过这两个平台,可以学习嵌入式Linux中的针对有MMU和无MMU的不同开发过程。UP-NetARM3000及其他产品的资 料可以访问博创公司的网站www.up-获得。这里针对UP-NetARM2

5、410作详细的介绍。1硬件配置UP-NetARM2410的硬件配置如表1-1所示,实物如图1-1所示。表1-1 UP-NetARM2410的硬件配置配 置 名 称型 号规 格CPUARM920T结构芯片三星S3C2410X工作频率为203MHz以太网AX8879610/100Mbps自适应Flash盘SAMSUNG K29F280864MB内存SDRAMHY57V561620BTH32MB2=64MBLCDSTN 240320 256色TFT 640480 24位色键盘LED数码管驱动器ZLG729017键数字小键盘触摸屏FM7843驱动USB主从接口USB1.1串口RS2322个AD3个电位

6、器控制输入调试接口JTAG,14针、20针JTAG烧写Flash音频输出IIS总线,UDA1341芯片,44.1kHz音频扩展插槽3个168Pin总线直接扩展DA扩展板DA转换SD卡扩展板GPS_GPRS扩展板SIMCOM的SIM100-E模块 支持双道语音通信PS/2&IC_CARD扩展板外接键盘鼠标和IC卡CAN扩展板IDE_CF卡展板图1-1 UP-NetARM2410实物图2S3C2410芯片介绍(1)S3C2410X芯片集成了大量的功能单元,包括: 内部1.8V,存储器3.3V,外部I/O3.3V,16KB数据CACHE,16KB指令CACHE,MMU。 内置外部存储器控制器(SDR

7、AM 控制和芯片选择逻辑)。 LCD控制器,一个LCD专用DMA。 4个带外部请求线的DMA。 3个通用异步串行端口(IrDA1.0, 16-Byte Tx FIFO, and 16-Byte Rx FIFO),2通道SPI。 一个多主I2C总线,一个I2S总线控制器。 SD主接口版本1.0和多媒体卡协议版本2.11兼容。 两个USB HOST,一个USB DEVICE(VER1.1)。 4个PWM定时器和一个内部定时器。 看门狗定时器。 117个通用I/O。 24个外部中断。 电源控制模式:标准、慢速、休眠、掉电。 8通道10位ADC和触摸屏接口。 带日历功能的实时时钟。 芯片内置PLL。

8、设计用于手持设备和通用嵌入式系统。 16/32位RISC体系结构,使用ARM920T CPU核的强大指令集。 带MMU的先进的体系结构支持WinCE、EPOC32、Linux。 指令缓存(CACHE)、数据缓存、写缓冲和物理地址TAG RAM,减小了对主存储器带宽和性能的影响。 ARM920T CPU 核支持 ARM 调试的体系结构。 内部先进的位控制器总线(AMBA)(AMBA2.0,AHB/APB)。S3C2410X芯片其结构图如图1-2所示。图1-2 S3C2410X芯片(2)系统管理 小端/大端支持。 地址空间:每个BANK128MB(全部为1GB)。 每个BANK可编程为8/16/3

9、2位数据总线。 BANK 0到BANK 6为固定起始地址。 BANK 7可编程BANK起始地址和大小。 一共8个存储器BANK。 6个存储器BANK用于ROM、SRAM和其他。 两个存储器BANK用于ROM、SRAM和同步DRAM。 每个存储器BANK可编程存取周期。 支持等待信号用以扩展总线周期。 支持SDRAM掉电模式下的自刷新。 支持不同类型的ROM用于启动(NOR/NAND Flash、EEPROM和其他)。(3)芯片封装272-FBGA封装图如图1-3所示。图1-3 272-FBGA封装图1.3 嵌入式Linux开发流程在一个嵌入式系统中使用Linux开发,根据应用需求的不同有不同的

10、配置开发方法,但是一般都要经过如下的过程:1建立开发环境操作系统一般使用RedHat-Linux,版本从7到9都可以,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装(例如arm-Linux-gcc、arm-clibc-gcc),或者安装产品厂家提供的交叉编译器。2配置开发主机配置MINICOM,一般的参数为波特率为115200bps,数据位为8位,停止位为1,无奇偶校验,软件硬件流控设为无。在Windows下的超级终端的配置也是这样的。MINICOM软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。配置网络,主要是配置NFS网络文件系统,需要关闭防火墙,简

11、化嵌入式网络调试环境设置过程。3建立引导装载程序BOOTLOADER从网络上下载一些公开源代码的BOOTLOADER,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根据自己具体的芯片进行移植修改。有些芯片没有内置引导装载程序,例如三星的ARM7、ARM9系列芯片,这样就需要编写开发板上Flash的烧写程序,网络上有免费下载的Windows下通过JTAG并口简易仿真器烧写ARM外围Flash芯片的烧写程序,也有Linux下的公开源代码的J-Flash程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是系统正常运行的第一步。如果购买了厂

12、家的仿真器当然比较容易烧写Flash,这对于需要迅速开发自己产品的人来说可以极大地提高开发速度,但是其中的核心技术是无法了解的。4下载别人已经移植好的Linux操作系统如CLinux、ARM-Linux、PPC-Linux等,如果有专门针对所使用的CPU移植好的Linux操作系统那是再好不过的,下载后再添加自己的特定硬件的驱动程序,进行调试修改,对于带MMU的CPU可以使用模块方式调试驱动,对于CLinux这样的系统则需编译进内核进行调试。5建立根文件系统从下载使用BUSYBOX软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他程序。默认的启动脚本一般都不会符合应用的需

13、要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设为只读,需要使用mkcramfs、genromfs等工具产生烧写映像文件。6建立应用程序的Flash磁盘分区一般使用JFFS2或YAFFS文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性Flash(NOR型)512KB32MB,有的系统使用非线性Flash(NAND型)8512MB,有的两个同时使用,需要

14、根据应用规划Flash的分区方案。7开发应用程序应用程序可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,这有点类似于COS-II的方式。8烧写内核、根文件系统、应用程序9发布产品1.4 建立嵌入式Linux开发环境嵌入式Linux开发环境有以下几个方案:(1)基于PC机Windows操作系统下的CYGWIN。(2)在Windows下安装虚拟机后,再在虚拟机中安装Linux操作系统。(3)直接安装Linux操作系统。由于基于Windows的环境要么有兼容性问题,要么速度有影响,所以推荐读者使用纯Linux操作系统环境。我

15、们实际的开发环境为RedHat 9.0,它已经支持中文,并且包含了绝大部分的开发工具,不用担心装了Linux就不能使用Windows的问题,一般的情况都是用户已经有了Windows操作系统,再安装Linux,Linux会自动安装一个叫做GRUB的启动引导软件,可以选择引导多个操作系统。一、预备知识绝大多数的Linux 软件开发都是以native方式进行的,即本机(HOST)开发、调试,本机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,因为对于嵌入式系统的开发,没有足够的资源在本机(即嵌入式目标系统)运行开发工具和调试工具。通常的嵌入式系统的软件开发采用一种交叉编译调试的方式。交叉编译调

16、试环境建立在宿主机(即一台PC 机)上,对应的开发板叫做目标板。运行Linux的PC(宿主机)开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行)。然后把可执行文件下载到目标机上运行。调试时的方法很多,可以使用串口、以太网口等,具体使用哪种调试方法可以根据目标机处理器所提供的支持作出选择。宿主机和目标板的处理器一般都不相同,宿主机为Intel处理器,而目标板如UP-NETARM2410开发板为三星S3C2410。GNU编译器提供这样的功能,在编译器编译时可以选择开发所需的宿主机和目标机从而建立开发环境。所以在进行嵌入式开

17、发前第一步的工作就是要安装一台装有指定操作系统的PC机作为宿主开发机,对于嵌入式Linux,宿主机上的操作系统一般要求为RedHat Linux。嵌入式开发通常要求宿主机配置有网络,支持NFS(为交叉开发时mount所用)。然后要在宿主机上建立交叉编译调试的开发环境。环境的建立需要许多的软件模块协同工作,这将是一项比较繁杂的工作,但现在已完全由博创嵌入式教学套件中光盘的安装而自动完成了。二、对开发PC机的性能要求由于RedHat 9.0安装后占用空间约为2.45GB之间,还要安装ARMLinux开发软件,因此对开发计算机的硬盘空间要求较大。硬件要求如下: CPU:高于奔腾500MB,推荐高于赛

18、扬1.7GB。 内存:大于128MB,推荐256MB。 硬盘:大于10GB,推荐高于40GB。三、开发工具软件的安装与配置1RedHat Linux 9.0的安装在一台PC上安装RedHat Linux 9.0,选择Custom定制安装,在选择软件包时最好将所有包都安装,需要空间约2.7GB,如果选择最后一项:everything,即完全安装,将安装3张光盘的全部软件,需要磁盘空间大约5GB。因此建议提前为RedHat Linux的安装预留大约515GB的空间,具体视用户的硬盘空间大小来确定,在安装完RedHat后还要安装Linux的编译器和开发库以及ARMLinux的所有源代码,这些包安装后

19、总共需要的空间大约为800MB。2开发环境配置配置网络,包括配置IP地址、NFS服务器和防火墙。网络配置主要是要安装好以太网卡,对于一般常见的RTL8139网卡,RedHat 9.0可以自动识别并自动安装好,完全不要用户参与,因此建议使用该网卡。然后配置宿主机IP为192.168.0.121。如果在有多台计算机使用的局域网环境使用该开发设备,IP地址可以根据具体情况设置,如图1-4所示。图1-4 网络配置双击设备eth0的蓝色区域,进入以太网设置界面,如图1-5、图1-6所示。图1-5 以太网常规设置界面图1-6 以太网路由设置界面对于RedHat 9.0,它默认的是打开了防火墙,因此对于外来

20、的IP 访问它全部拒绝,这样其他网络设备根本无法访问它,即无法用NFS mount,许多网络功能都将无法使用。因此网络安装完毕后,应立即关闭防火墙。操作如下:单击“红帽子”开始菜单,选择安全级别设置,选中“无防火墙”选项,如图1-7所示。在系统设置菜单中选择服务器设置菜单,再选中服务菜单,将iptables服务取消,并确保nfs选项选中。图1-7 安全级别设置配置NFS的步骤如下:单击主菜单“系统设置”“服务器设置”“NFS服务器”命令(英文为:SETUP SYSTEM SERVICENFS),单击“增加”按钮出现如图1-8所示的界面在目录(Drictory)中输入需要共享的路径,在主机(Ho

21、sts)中输入允许进行连接的主机IP地址,并选择允许客户对共享目录的操作为只读(Read-only)或读写(Read/Write)。图1-8 NFS基本设置如图1-9所示为一些常规选项设置,可以保留默认值。图1-9 NFS常规设置如图1-10所示为对客户端存取服务器的一些其他设置,一般不需要设置,取默认值。图1-10 NFS用户访问设置当将远程根用户当作本地根用户时,对于操作性比较方便,但是安全性较差。最后退出时则完成NFS 配置。配置好后,应显示如图1-11所示的界面。图1-11 配置好的NFS界面也可以手工编写/etc/exports文件,其格式如下:共享目录可以连接的主机(读写权限,其他

22、参数)例如:/arm2410 192.168.0.*(rw,sync)表示将本机的/arm2410目录共享给IP地址为192.168.0.1192.168.0.254的所有计算机,可以读取和写入。配置完成后,可用如下办法简单测试一下NFS 是否配置好了:在宿主机上自己挂载(mount)自己,看是否成功就可以判断NFS 是否配好了。例如在宿主机/目录下执行命令:mount 192.168.0.10:/arm2410 /mnt其中192.168.0.10应修改为自己主机的IP地址。然后到/mnt/目录下看是否可以列出/ arm2410 目录下的所有文件和目录,如果可以则说明mount 成功,NFS

23、 配置成功。3开发工具软件的安装将北京博创兴业科技有限公司提供的附带开发工具光盘插入CDROM,然后执行以下命令:mount /dev/cdrom /mnt若系统不识别/dev/cdrom,可以执行如下命令,假设CDROM为从盘,即为/dev/hdb,则:mount t iso9660 /dev/hdb /mntcd /mnt (进入mount 后的目录)如果CDROM在安装RedHat 的时候已经默认安装,以上命令不要执行,直接进入CDROM 所在目录(一般为/mnt/cdrom)。这种情况下,则执行命令:cd /mnt/cdrom./install.sh (运行安装脚本)安装脚本程序将自动

24、建立/ arm2410 目录,并将所有开发软件包安装到/ arm2410 目录下,同时自动配置编译环境,建立合适的符号连接。四、Linux开发软件的安装目录结构表1-2为Linux开发软件的安装目录说明,均以/arm2410目录为起点。表1-2 /arm2410下的文件说明目 录 名说 明busybox-1.00-pre10Busybox-1.00源代码editorLinux 下编辑编译器docArm2410forLinux 使用说明书microwindows-0.9MicroWindows图形系统源代码insight-6.0Linux下源代码查看器Rootfs开发板中根目录下文件Kernel

25、ArmLinux内核源代码Demo所有实验演示程序mplayerdemo多媒体演示程序minigui_src做minigui实验需要的资源,需要按照指导书安装imgroot.cramfs根文件系统映像文件,可以直接写入Flash中zImage.binARMLinux-2.4内核压缩映象文件,可以直接写入Flash中exp所有实验的源代码shinstall.sh 安装脚本uninstall.sh 反安装脚本mount-dos.sh Linux下挂装Windows的分区示例脚本mk_romfs_img.sh 生成根文件系统映像文件示例脚本mnt_udisk.sh MOUNT U盘编译器安装路径说明如表1-3所示。表1-3 编译器安装路径说明编 译 器安 装 路 径arm-elf-gcc-2.95.3/opt/host/armv4l应用开发库和头文件Armv4l-unknown-Linux-gcc/opt/host/armv4l/bin主编译器上述诸多程序的源代码都在光盘中提供。在安装完成Linux后,就是对Linux的网络环境的配置,最主要是配置NFS服务器。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2