实例介绍
这是北京博创科技的ARM9 2410开发实验箱的实验指导书
博创科技 Beijing universal pioneering technology co , LtD. 费类电子产品,摩托罗拉则计划在其未来的大多数于机上使用 Linux,IBM也制定了在于持机 上运行 Linux的计划。 数年来,“ Linux标准库”组织·直在从事对在服务器上运行的 Linux进行标准化的工作, 现在,嵌入式计算领域也开始了这作。嵌入式 Linux标准吸引了“ Linux标准斥”以及 Unix组织中有益的元素。 在嵌入式系统中使用 Linux的优点和缺点 虽然大多数 Linux系统运行在P平台上,但 Linux也是嵌入式系统的可靠主力。 Linux 的安装和管比UNIX更加简单灵活,这对于那些UNX专家们来说又是个优点,因为 Linux中有许多命令和编程接凵同传统的INX一样。但是对于习惯于 WINDOWS操作系统的人 来说,需要记忆大量的命令行参数却是一个缺点。随着LINX社团的不断努力,1inux的人机 界面开发环境正在不断完善。 典型的 Linux系统绎过打包,在拥有硬盘和人容量内存的PC机上运行,嵌入式系统不 需要这么高的配置。一个功能完备的 Linux内核要求大约1MB内存。而 Linux微内核只 占用其中很小一部分内存,包括虚拟内存和所有核心的操作系统功能在内,只需占用系统约 100K内存。只要有500K的内存,一个有网络栈和基木实用程序的完全的 Linux系统就 可以在·台8位总线(SX)的 Intel386微处理器上运行的很好了。由于内存要求常常是 需要的应用所决定的,比如Web服务器或者SNP代理, Linux系统甚至可以仅使用256KB ROM和512KBRM进行工作。因此它是一个瞄准嵌入式市场的轻量级操作系统。 与传统的实时操作系统相比(RTOS),采用象嵌入式 Linux这样的开放源码的操作系统 的另外一个好处是 Linux开发闭体看来会比RToS的供应商更快地支持新的IP协议和其 它协议。例如,用于 Linux的设备驱动程序要比用于商业操作系统的设备驱动程序多,如网 络接口卡(NIC)驱动程序以及并口和串口驱动程序 核心Liuⅹ操作系统木身的微内核体系结构相当简单。网络和文件系统以模垬形式置于 微内核的上层。驱动程序和其它部件可在运行吋作为可加载模块编译到或者是添加到内核。 这为构造定制的可嵌入系统提供了高度模块化的构件方法。而在典型情况下该系统需结合定 制的驱动程序和应用程序以提供附加功能。 嵌入式系统也常常要求通用的功能,为了避免重复劳动,这些功能的实现运用了许多现 成的程序和驱动程序,它们可以用于公共外设和应用。 Linux可以在外设范闱广泛的多数微 处理器上运行,并早已终有了现成的应用库 Linuⅹ用于嵌入式的因特网设备也是很合适的,原因是它支持多处理器系统,该特性使 Linuⅹ只有了伸缩性。因而改计人员可以选择在双处理器系统上运行实时应用,提高整体的 处理能力。例如,您可以在一个处理器运行GUI,同时在另一个处理器上运行 Linux系统。 在嵌入式系统上运行 Linux的个缺点是 Linux体系提供实吋性能需要添加实吋软件 博创科技 Beijing Universal Pioneering Technology Co, LTD. 模块。而这些模块运行的内核空间正是操作系统实现调度策略、硬件中断冖常和执行程序的 部分。由于这些实时软件模块是在内核空间运行的,因比代码错误可能会破坏操作系统从而 影响整个系统的叫靠性,这对于实吋应用将是个非常严重的弱点。已经有许多嵌入式 Linux 系统的示例;可以有把握地说,棊种形式的Liux能在几乎仼台执行代祃的计算机上运行 1.2嵌入式 Linux开发平台简介 Linux价格低廉、功能强大,可以运行在X86, Alpha, Sparc,MIPS,PPC, MOTOROLA,NEC, AM等使件平台上,而且开放源代码,可以定制。我们所介纪的使件平台是基于ARM体系结构, 由北京博创兴业科技有限公司廾发的 UP-Ne tARM3000和 LP-Ne tARM2410实验仪器。 UP NetARM3000的CPU为ARM7TDMI内核的三星S3C44B0X01芯片,由于没有MM(内存管 理单元)只能运行 uClinux, P NetARM2410的CPU为ARM920T内核的三星S3c2410芯片,由 于有可以运行标准的ARM-LINX内核。通过这两个平台,我们可以学习嵌入式LINK中 的针对有WU和无M的不同开发过程。 P-NetArM3000及相关产品的资料可以访问博创公司 的网站ww.up-tech.com获得。本书以UP-NetARM2110为例,详细介绍嵌入式Linux的开发 过程。 UP- NetARM2410实验仪器介绍 硬件配置 UP- NetARM2410的使件配置如表1.2.1所小,实物如图1.2.1所小: 配置名称 说明 ARM920T结构芯片三星S3c2110X 工作频率203ⅧHz FLASH SAMSUNG K9F1208 64MNA、D SDRAM HY57V561620AT一H 32M×2-64M EtherNet网下 6 两片,10/100M自适应 LQOSOV3DGO1 8寸16 bi t tft 触摸屏 SⅩ-080-W4R-FB FM7843驱动 LED ZLG7290 17键数字小键盘 USB接口 1个HOST/1个 DEVICE 由AT43301构成 USB HUB UART 2个RS232 博创科技 Beijing universal pioneering technology co , LtD. 3个电位器控制输入 AUDIO IIS总线,UDA1311芯片 44.1KHz音频 扩展卡插槽 168Pin EXPOrt 3个,总线直接扩展 调试接口 JTAG 14针、20针 IDE/CF卡插座 笔记本使盘,CF卡 PCMCIA和SD卡插座 PCMCIA型号为DW-650 PS2/IC卡座 PC键盘和鼠标,IC卡 CAN/ DA 选配模块 GPS GPRS扩展板 SIMCOM的SIM100E模块 选配模块,支持双道语音通信 FPGA模块 选配模块 表1.2. L UP-NetARM2410的硬什配置 團 Ia8BA88AA 9 博包料技嵌入互动Mt线 图1.2.1UP- NotARY2410 S3C2410芯片介绍 S3C2410X芯片集成了大量的功能单元,包括 内部1.8V,存储器3.3V,外部103.3V,16KB数据CACH,16KB指令CACH,MM。 博创科技 Beijing Universal Pioneering Technology Co, LTD. 234 内置外部存储器控制器( SDRAM控制和芯片选择逻辑) LCD控制器(最高4色STN和256K彩色TFT),一个LCD专用DMA。 4个带外部请求线的DMA 三个通用异步串行端口(IrDA1.0,16- Byte Tx fifo,and16- Byte rx fifo),2 通道SPI 个多主IIC总线,一个IIS总线控制器 6789 SD主接口版本1.0和多媒体卡协议版本2.11兼容。 2个 USB HOST,个 USB DEV ICE(VER1.1)。 1个PwM定时器和一个内部定时器。 看门狗定时器。 117个通用IO 12 24个外部中断 电源控制模式:标准、慢速、休眠、掉电。 14. 8通道10位ADC和触摸屏接凵 15 带日历功能的实时时钟。 16. 芯片内置PL。 17.设计用于手持设备和通用嵌入式系统。 18. 16/32位RISC体系结构,使用ARW920TCPU核的强大指令集。 ARM带MU的先进的体系结构支持WNE、EPOC32、 LINUX。 20. 指令缓存( cache)、数据缓存、写缓冲和物理地址' AG RAM,减小了对主存储 器带宽和性能的影响 21 ARM920TCPU核支持ARM调试的体系结构 22 内部先进的位控制器总线(AMBA)(AMBA2.0,AHB/APB) 其结构图如下图1.2.2所示 博创科技 Beijing universal pioneering technology co , LtD. ARM920T PA[31:0] ↑个↑ Instruction nstruction External MMU CACHE Coproc 16KB Interace c13 ⅣAB31:0] D|31 ARMgTDMI AMBA JTAG recesso care CP15 Bus (Internal Embedded ICE\\DD131: 01- VF DVA31[产 1CVA(31:0] c13 Data Data CACHE Write Back WBPA[31: 0 PA Tag MMU 16KB〕 RAM A[31:0 LCD BUS CONT CONT. DMA A Arbitor/Decode USB Host Cont Interrupt CONT ExtMaster Powe Management NAND CONT NAND Flash Boot Loader SRAMANORISDRAM Clock Generator MPLL Bridge &i DMA(4ch) UART O.1.2 I2C 12S SDI/MM Watchdog Tim BUS CONT Arbitor/Decod ADC SPIO. 1 Timer/PWM 0-3, 4(Internal 图1.2.2S3C2410X芯片 系统管理 小端/大端支持。 地址空间:每个BAN128MB(全部1G字节)。 3. 每个BAN可编程为8/16/32位数据总线 4 hank0到hank6为固定起始地址 bank7可编程BA起始地址和人小。 共8个存储器BANK。 6个存储器BANK用于ROM,SRAM和其他 2个存储器BA用于ROM,SRAW和同步DRAM 博创科技 Beijing Universal Pioneering Technology Co, LTD. 每个存储器BAN可编程存取周期。 10. 支持等待信号用以扩展总线周期 支持 SDRAM掉电模式下的自刷新。 12. 支持不同类犁的ROM用于启动( NOR/NAND Flash, EEPROM,和其他) 芯片封装 272-FBGA封装图如下图1.2.3所示 RO00O000O0000O000O oao H E 000 D○ 90OOOOOOOC0OO 12345878910111213141117 图1.2.3272FBGA封装 1.3嵌入式 Linux开发流程 嵌入式 linux开发,根据应用需求的不同有不同的配置开发方法,但是一般都要经过以 下过程 建立开发环境。操作系统一般使用 REDHAT一LINⅨ,版本7到9都可以,选择定制安装或 全部安装,通过网络下载相应的GC交叉绵译器进行安装(比如arm-1inux-gcc arm- uclibc-gcc),或者安装产品厂家提供的交叉编译器。 配置丌发主机。配置 MINICOM,般参数为波特率115200,数据位8位,停止位1,无奇 博创科技 Beijing universal pioneering technology co , LtD. 偶校验,软硬件控制流设为无。在WⅠNOWS下的超级终端的配置也是这样。 MINICOM软件的 作用是作为调试嵌入式开发板信息输出的监视器和键盘输入的工只;配置网络,主要是配置 NFS网络文件系统,需要关閉防火墙,简化嵌入式网络调试环境设置过程。 建立引导装线程序B0L0ADER,从网络上下载些公开源代码的BmL0ADER,如U-BOOT B哪B、ⅥIⅥI、LID0、 ARM BOOT、 RED BOC等,根据自己具体芯片进行移植修改。有些芯片没 有内置引导装载程序,比如三星的ARM7、ARM系列芯片,这样就需要编写烧写开发板上f1ash 的烧写程序,网终上有免费下载的WⅠ NDOWS下遥过JTAG并口简易仿真器烧写ARM外围 flash 芯片的稈序。也有 LINUX下公开源代码的 J-FLASH稈序。如果不能烧写自己的开发板,就需 要棖据自己的具体电路进行源代码修改。这是让系统可以正常运行的第一步。如果你购买了 厂家的仿真器当然比较容易烧写 flash了,但是其中的核心技术是无法了解的。这对于需要 迅速开发应用的人来说可以极大地提高开发速度。 卜载别人已经移植好的LⅠNUX操作系统,如 UCLINUX、 ARM-LINUX、PC-LINⅩ等,如果 有专门针对你所使用的CPU移植好的LINX操作系统那是再好不过,下载后再添加自己的特 定硬件的驱动程序,进行调试修改,对于带M的CP可以使用模块)式调试驱动,对于 UCLⅠX这样的系统好像只能编译进内核进行调试。 建立根文件系统,从w. busybox.net下载使用 BUSYBOX软件进行功能裁减,产生一个 最基本的根文件系统,丙根据自己的应用需要添加其他的程序。默认的启动脚本一般都不会 符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc日录下, 包括:/etc/init.d/re.S、/etc/ profile、/ete/. profile等,自动挂装文件系统的配置文件 /etc/ Estab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设为只读,需 要使用 mkcramfs、 genomes等上具产生烧写映象文件。 建立应用程序的 flash磁盘分区,一般使用JFS2或YAFS文件系统,这需要在内核中 提供这些文件系统的驱动,有的系统使用一个线性f1ash(NOR型)512K-32M,有的系统使 用非线性 flash(NAND型)8-512M,有的两个同时使用.需要根据应用规划 flash的分区方 案 开发应用程序,可以下载到根文件系统中,也可以放入 YAFFS、JFFS2文件系统中,有的 应用程序不使用根文件系统,而是直接将应用程序和内核设计在一起,这有点类似于UCOS-II 的方式。 烧写内核、根文件系统、应用程序 发布产品。 博创科技 Beijing Universal Pioneering Technology Co, LTD. 1.4建立嵌入式 Linux开发环境 嵌入式NX开发环境有几个方案 1、基于PC机WN0WS操作系统下的 CYGWIN: 2、在 WINDOWS下安装虚拟机后,再在虚拟机中安装 LINXUX操作系统: 3、直接安装LINX操作系统。 基于 WINDOWS的环境要么有兼容性问题,要么速度有影响,所以我推荐大家使用纯LⅠNU 操作系统廾发坏境。我们实际的廾发坏境为 REDHAT9,它凵经支持中文,并且包含了绝大部分 的开发工具,不用担心装了 LINUX就不能使用WIⅦows的问题。一般的情况都是用户已经有 了WIⅦOWS操作系统,再安装LINX,LINX会自动安装一个叫作GRIB的启动引导软件,可 以选择引导多个操作系统。 预备知识 绝大多数 Linux软件开发都是以 native方式进行的,即本机(0OST)开发、调试,本 机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,因为对于嵌入式系统的开发, 没有足够的资源在本机(即板子上系统)运行开发工具和调试工具。通常的嵌入式系统的软 件开发采用一种交叉编译调试的方式。交叉编译调试环境建立在宿主机(即一台PC机)上, 对应的开发板叫做日标板。 运行 Linux的PC【宿主机】开发时使用宿主枳上的交叉编译、汇编及连接工具形成可执 行的二进制代码(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行),然后把 可执行文件下载到目标机上运行。调试时的方法很多,可以使用串∏,以太网∏等,具体使 用哪种调试方法可以棖据目标杋处理器提供的支持作岀选择。宿主机和目标板的处理器·般 不相同,宿主机为 Intel处理器,而目标板如 UP NetARM2410S开发板为三星S3c2410.GNU编 译器提供这样的功能,在编译器编译时可以选择开发所需的宿主机和目标机从而建立开发环 境。所以在进行嵌入式开发前第一步的工作就是要安装一台装有指定操作系统的PC机作宿主 开发机,对于锨入式LIⅦUX,宿主机上的操作系统一般夏求为 REDHAT LINUX。嵌入式开发通 常要求宿主机配置有网络,支持NFS(为交叉开发时 mount所用)。然后要在宿主机上建立交 叉编译调试的开发环境。环境的建立需要许多的软件模块协同工作,这将是一个比较繁杂的 工作,但现在已通过博创嵌入式教学套件中光盘的安装而自动完成了。 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论