




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式linux在arm开发板上的移植,北京泰科威科技有限公司,1,嵌入式linux在arm开发板上的移植,linux在嵌入式设备上的应用越来越广泛,非常多的嵌入式设备都开始由使用其它嵌入式OS向使用linux转变。随着嵌入式技术的发展,现在有越来越多的人才投入到嵌入式开发队伍中来,为了初学者能更快的踏进嵌入式开发的大门,有大量的开发板、学习板也应运而生,以基于arm处理器的最多,所以今天所介绍的主题就是“嵌入式linux在arm开发板上的移植”,希望能对刚开始接触嵌入式开发的爱好者们提供一些微薄的帮助。,2,Arm系列微处理器,Arm家族基本分为arm7、arm9和arm10几个系列,其中arm7和arm9应用最为广泛。ARM7的处理速度为0.9MIPS/MHz,常见的ARM7芯片系统主时钟为20MHz-133MHzARM9的处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟为100MHz-233MHzARM10最高可以达到700MHz,3,Target,嵌入式开发基本模型,Host,ICE,Serial,并口,JTAG,4,嵌入式系统的引导文件的下载,不同种类的芯片具有不同下载方式使用JTAG或ICE特殊芯片的特殊引导方法,5,嵌入式系统的引导文件的下载,1.通过JTAG口下载通常ARM处理器都支持JTAG调试端口,通过JTAG口下载引导程序到RAM或Flash中,一般都需要专用或通用的ICE系统来支持。,6,嵌入式系统的引导文件的下载,JTAG主要的信号线TDOInputTestDataOutfromtargettoICETDIOutputTestDataInfromICEtotargetTCKOutputTestClockoutputfromICEtothetargetTMSOutputTestModeSelectNSRSTInput/Output(可选项)SystemReset,与目标板上的系统复位信号相连。可以直接对目标系统复位,同时可以检测目标系统的复位情况。为了防止误触发,应在目标端加上适当的上拉电阻nTRSTOutput(可选项)JTAG复位。在目标端应加适当的上拉电阻以防止误触发,7,嵌入式系统的引导文件的下载,2.通用的ICEARM的硬件开发工具主要包括两类仿真器,一是JTAG仿真器,二是全功能在线仿真器。JTAG仿真器是利用ARM处理器中的调试模块的功能,通过其JTAG边界扫描口来与仿真器连接,如MultiICE、JEENI仿真器等全功能在线仿真器,由于其信真头完全取代目标板上的CPU,因而功能非常强大,8,嵌入式系统的引导文件的下载,特殊芯片的特殊引导方法很多嵌入式处理器都提供了自举模式(Bootstrap),供用户写入引导代码。自举模式利用了固化在芯片内部的一段引导程序,当处理器复位时,如果在特定引脚上加信号,则处理器将在复位后执行固化ROM中的程序。自举ROM中的程序完成串口的初始化,然后等待用户从串口写入用户代码。,9,嵌入式系统的引导文件的下载,CirrusLogic的clps7111Ep9312系列ARMcore的CPU内置128字节的boot程序。这个boot程序的功能是:设置串行口的参数为:9600,8N1,NoFlowControl。然后送出一个字符跳转去执行这2K的程序。,10,嵌入式系统的引导文件的下载,MX1的bootstrap模式MX1提供了4条复位引脚,复位时引脚不同的电平组合可以从不同的片选端启动系统。自举模式所能接受的是一种专门格式的文本文件,包括数据和要写入/读出的地址。通过usb接口下载,11,引导程序(bootloader),PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的OSBootLoader(比如,LILO和GRUB等)一起组成嵌入式系统中,加载启动任务就完全由BootLoader来完成,BootLoader就是在操作系统内核运行之前运行的一段小程序BootLoader一般由硬件初始化、通信设备驱动、通信协议处理几个部分构成,有些bootloader还具有写flash的功能,12,引导程序(bootloader),PC机引导方式:BIOS在完成硬件检测和资源分配后,将硬盘MBR中的BootLoader读到系统的RAM中,然后将控制权交给OSBootLoader。BootLoader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,也即开始启动操作系统。,13,引导程序(bootloader),嵌入式bootloader在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。系统在上电或复位时通常都从地址0 x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。,14,引导程序(bootloader),嵌入式bootloader的作用与特点Bootloader的作用是初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。BootLoader是严重地依赖于硬件而实现的,不可能实现一个通用的bootloader。,15,引导程序(bootloader),Bootloader的实现:由于BootLoader的实现依赖于CPU的体系结构,因此大多数BootLoader都分为stage1和stage2两大部分。依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在stage1中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而stage2则通常用C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性。,16,引导程序(bootloader),BootLoader的stage1通常包括以下步骤(以执行的先后顺序):硬件设备初始化为加载BootLoader的stage2准备RAM空间拷贝BootLoader的stage2到RAM空间中设置好堆栈跳转到stage2的C入口点,17,引导程序(bootloader),BootLoader的stage2通常包括以下步骤(以执行的先后顺序):初始化本阶段要使用到的硬件设备检测系统内存映射(memorymap)将kernel映像和根文件系统映像从flash上读到RAM空间中为内核设置启动参数,18,引导程序(bootloader),常用的bootloaderBlobhttp:/www.lart.tudelft.nl/lartware/blob/Redboot,19,交叉编译环境的建立,安装linux服务器或windows下的cygwin环境Gcc和glibc的获取与安装,20,交叉编译环境的建立,Linux服务器,通常选择Redhat或Debian。安装成个人桌面、工作站和Server都可以。Cygwin主要是针对在windows下建立交叉开发环境而提供的一种虚拟的unix模拟环境。,21,交叉编译环境的建立,Cygwin是CygnusSolutions公司开发的自由软件。核心是写了一个共享库(cygwin.dll),把win32API没有的unix风格的调用(fork,signals,select)等封装在里面。也就是说基于win32API写了一个unix系统库的模拟层。下载网址:Http:/,22,交叉编译环境的建立,工具链由一套用于编译、汇编和链接内核及应用程序的组件组成。这些组件包括:Binutils用于操作二进制文件的实用程序集合。它们包括诸如ar、as、objdump、objcopy这样的实用程序。GccGNUC编译器。Glibc所有用户应用程序都将链接到的C库。避免使用任何C库函数的内核和其它应用程序可以在没有该库的情况下进行编译。,23,交叉编译环境的建立,获取途径:一些比较流行的已预编译的工具链包括那些来自Compaq(FamiliarLinux)、LART(LARTLinux)和Embedian(基于Debian但与它无关)的工具链所有这些工具链都用于基于ARM的平台。,24,armLinux内核的构建,获取linux内核根据需要选取armlinuxpatch文件并安装patch配置和编译内核,25,armLinux内核的构建,获得linux内核与armpatchlinux内核参考下载网址:/pub/linux/kernel/v2.4linux-2.4.18-tar.gz或linux-2.4.18-tar.bz2armpatch参考下载网址:.uk/pub/armlinux/peoplehttp:/kernel.pr.kr/pub/armlinux/v2.4patch-2.4.18-rmk1.gz,26,armLinux内核的构建,解压缩内核,打armpatchtarxvzflinux-2.4.18.tar.gz或tarxvjflinux-2.4.18-tar.bz2cdlinuxzcat./patch-2.4.18-rmk1.gz|patchp1另一种打patch的方法:gzippatch-2.4.18-rmk1.gz产生patch-2.4.18-rmk1文件cdlinuxpatchp1./patch-2.4.18-rmk1,27,armLinux内核的构建,内核编译过程makemrpropermaketarget-devices_config(linux/arch/arm/def-config/mx1ads)makeoldconfigmakedepmakezImage将在arch/arm/boot/下生成zImage内核文件。随时可以通过makemenuconfig或makexconfig来配置内核。,28,内核配置系统,29,内核配置系统,基本结构Makefile:分布在Linux内核源代码中的Makefile,定义Linux内核的编译规则配置文件(config.in):给用户提供配置选择的功能;配置工具:包括配置命令解释器和配置用户界面(提供基于字符界面、基于Ncurses图形界面以及基于Xwindows图形界面的用户配置界面,各自对应于Makeconfig、Makemenuconfig和makexconfig)。,30,内核配置系统,Linux内核中的Makefile以及与Makefile直接相关的文件Makefile:顶层Makefile,是整个内核配置、编译的总体控制文件.config:内核配置文件,包含由用户选择的配置选项,用来存放内核配置后的结果(如makeconfig)arch/*/Makefile:位于各种CPU体系目录下的Makefile,如arch/arm/Makefile,是针对特定平台的Makefile各个子目录下的Makefile:比如drivers/Makefile,负责所在子目录下源代码的管理Rules.make:规则文件,被所有的Makefile使用,31,内核配置系统,顶层Makefile有两个主要的任务:产生vmlinux文件内核模块(module)为了达到此目的,顶层Makefile递归的进入到内核的各个子目录中,分别调用位于这些子目录中的Makefile。,32,嵌入式linux的root文件系统,几种主要的文件系统Ext2文件格式的ramdiskRomfsCramfs,33,嵌入式linux的root文件系统,mke2fs-vm0/dev/ram4096mount-text2/dev/ram/mntcd/mntcp/bin,/sbin,/etc,/dev.filesinmntcd./umount/mntddif=/dev/rambs=1kcount=4096of=ext2ramdisk,34,嵌入式linux的root文件系统,一些要包含在Ramdisk中的重要目录是:/bin保存大多数象init、busybox、shell、文件管理实用程序等二进制文件/dev包含用在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西工程学院《仪器机械学基础》2023-2024学年第二学期期末试卷
- 长春医学高等专科学校《建筑信息建模技术与管理》2023-2024学年第二学期期末试卷
- 天津理工大学中环信息学院《火电厂烟气净化Ⅱ》2023-2024学年第二学期期末试卷
- 河北轨道运输职业技术学院《野生动植物保护与管理》2023-2024学年第二学期期末试卷
- 西安高新科技职业学院《公共关系学》2023-2024学年第二学期期末试卷
- 大理护理职业学院《植物资源化学》2023-2024学年第二学期期末试卷
- 2024年核磁共振岩心测试仪投资申请报告代可行性研究报告
- 2024年高性能铁氧体一次磁粉项目投资申请报告代可行性研究报告
- 安全教育说课稿
- 2025年四川泸州自贸区龙驰商务秘书服务有限公司招聘笔试参考题库含答案解析
- 高三尖子生、边缘生辅导方案2
- 2025-2030海工装备制造行业市场深度调研及前景趋势与投资研究报告
- 华为测试面试题及答案
- 漂珠销售合同协议
- 2025化学中考解题技巧 专题10 技巧性计算(解析版)
- 部门加班调休管理制度
- 2025-2030中国工业物联网行业市场深度调研及发展前景与趋势预测研究报告
- 海鲜门店管理制度
- 考勤制度操作指南
- 2025年上半年商务部外贸发展事务局第二次招聘8人易考易错模拟试题(共500题)试卷后附参考答案
- 安徽省C20教育联盟2025年九年级英语中考“功夫”卷(一)
评论
0/150
提交评论