




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式linux在arm开发板上的移植 嵌入式linux在arm开发板上的移植 linux在嵌入式设备上的应用越来越广泛 非常多的嵌入式设备都开始由使用其它嵌入式OS向使用linux转变 随着嵌入式技术的发展 现在有越来越多的人才投入到嵌入式开发队伍中来 为了初学者能更快的踏进嵌入式开发的大门 有大量的开发板 学习板也应运而生 以基于arm处理器的最多 所以今天所介绍的主题就是 嵌入式linux在arm开发板上的移植 希望能对刚开始接触嵌入式开发的爱好者们提供一些微薄的帮助 Arm系列微处理器 Arm家族基本分为arm7 arm9和arm10几个系列 其中arm7和arm9应用最为广泛 ARM7的处理速度为0 9MIPS MHz 常见的ARM7芯片系统主时钟为20MHz 133MHzARM9的处理速度为1 1MIPS MHz 常见的ARM9的系统主时钟为100MHz 233MHzARM10最高可以达到700MHz Target 嵌入式开发基本模型 Host ICE Serial 并口 JTAG 嵌入式系统的引导文件的下载 不同种类的芯片具有不同下载方式使用JTAG或ICE特殊芯片的特殊引导方法 嵌入式系统的引导文件的下载 1 通过JTAG口下载通常ARM处理器都支持JTAG调试端口 通过JTAG口下载引导程序到RAM或Flash中 一般都需要专用或通用的ICE系统来支持 嵌入式系统的引导文件的下载 JTAG主要的信号线TDOInputTestDataOutfromtargettoICETDIOutputTestDataInfromICEtotargetTCKOutputTestClockoutputfromICEtothetargetTMSOutputTestModeSelectNSRSTInput Output 可选项 SystemReset 与目标板上的系统复位信号相连 可以直接对目标系统复位 同时可以检测目标系统的复位情况 为了防止误触发 应在目标端加上适当的上拉电阻nTRSTOutput 可选项 JTAG复位 在目标端应加适当的上拉电阻以防止误触发 嵌入式系统的引导文件的下载 2 通用的ICEARM的硬件开发工具主要包括两类仿真器 一是JTAG仿真器 二是全功能在线仿真器 JTAG仿真器是利用ARM处理器中的调试模块的功能 通过其JTAG边界扫描口来与仿真器连接 如MultiICE JEENI仿真器等全功能在线仿真器 由于其信真头完全取代目标板上的CPU 因而功能非常强大 嵌入式系统的引导文件的下载 特殊芯片的特殊引导方法很多嵌入式处理器都提供了自举模式 Bootstrap 供用户写入引导代码 自举模式利用了固化在芯片内部的一段引导程序 当处理器复位时 如果在特定引脚上加信号 则处理器将在复位后执行固化ROM中的程序 自举ROM中的程序完成串口的初始化 然后等待用户从串口写入用户代码 嵌入式系统的引导文件的下载 CirrusLogic的clps7111 Ep9312系列ARMcore的CPU内置128字节的boot程序 这个boot程序的功能是 设置串行口的参数为 9600 8N1 NoFlowControl 然后送出一个字符跳转去执行这2K的程序 嵌入式系统的引导文件的下载 MX1的bootstrap模式MX1提供了4条复位引脚 复位时引脚不同的电平组合可以从不同的片选端启动系统 自举模式所能接受的是一种专门格式的文本文件 包括数据和要写入 读出的地址 通过usb接口下载 引导程序 bootloader PC机中的引导加载程序由BIOS 其本质就是一段固件程序 和位于硬盘MBR中的OSBootLoader 比如 LILO和GRUB等 一起组成嵌入式系统中 加载启动任务就完全由BootLoader来完成 BootLoader就是在操作系统内核运行之前运行的一段小程序BootLoader一般由硬件初始化 通信设备驱动 通信协议处理几个部分构成 有些bootloader还具有写flash的功能 引导程序 bootloader PC机引导方式 BIOS在完成硬件检测和资源分配后 将硬盘MBR中的BootLoader读到系统的RAM中 然后将控制权交给OSBootLoader BootLoader的主要运行任务就是将内核映象从硬盘上读到RAM中 然后跳转到内核的入口点去运行 也即开始启动操作系统 引导程序 bootloader 嵌入式bootloader在嵌入式系统中 通常并没有像BIOS那样的固件程序 注 有的嵌入式CPU也会内嵌一段短小的启动程序 因此整个系统的加载启动任务就完全由BootLoader来完成 系统在上电或复位时通常都从地址0 x00000000处开始执行 而在这个地址处安排的通常就是系统的BootLoader程序 引导程序 bootloader 嵌入式bootloader的作用与特点Bootloader的作用是初始化硬件设备 建立内存空间的映射图 从而将系统的软硬件环境带到一个合适的状态 以便为最终调用操作系统内核准备好正确的环境 BootLoader是严重地依赖于硬件而实现的 不可能实现一个通用的bootloader 引导程序 bootloader Bootloader的实现 由于BootLoader的实现依赖于CPU的体系结构 因此大多数BootLoader都分为stage1和stage2两大部分 依赖于CPU体系结构的代码 比如设备初始化代码等 通常都放在stage1中 而且通常都用汇编语言来实现 以达到短小精悍的目的 而stage2则通常用C语言来实现 这样可以实现给复杂的功能 而且代码会具有更好的可读性和可移植性 引导程序 bootloader BootLoader的stage1通常包括以下步骤 以执行的先后顺序 硬件设备初始化为加载BootLoader的stage2准备RAM空间拷贝BootLoader的stage2到RAM空间中设置好堆栈跳转到stage2的C入口点 引导程序 bootloader BootLoader的stage2通常包括以下步骤 以执行的先后顺序 初始化本阶段要使用到的硬件设备检测系统内存映射 memorymap 将kernel映像和根文件系统映像从flash上读到RAM空间中为内核设置启动参数 引导程序 bootloader 常用的bootloaderBlob lart tudelft nl lartware blob Redboot 交叉编译环境的建立 安装linux服务器或windows下的cygwin环境Gcc和glibc的获取与安装 交叉编译环境的建立 Linux服务器 通常选择Redhat或Debian 安装成个人桌面 工作站和Server都可以 Cygwin主要是针对在windows下建立交叉开发环境而提供的一种虚拟的unix模拟环境 交叉编译环境的建立 Cygwin是CygnusSolutions公司开发的自由软件 核心是写了一个共享库 cygwin dll 把win32API没有的unix风格的调用 fork signals select 等封装在里面 也就是说基于win32API写了一个unix系统库的模拟层 下载网址 Http 交叉编译环境的建立 工具链由一套用于编译 汇编和链接内核及应用程序的组件组成 这些组件包括 Binutils 用于操作二进制文件的实用程序集合 它们包括诸如ar as objdump objcopy这样的实用程序 Gcc GNUC编译器 Glibc 所有用户应用程序都将链接到的C库 避免使用任何C库函数的内核和其它应用程序可以在没有该库的情况下进行编译 交叉编译环境的建立 获取途径 一些比较流行的已预编译的工具链包括那些来自Compaq FamiliarLinux LART LARTLinux 和Embedian 基于Debian但与它无关 的工具链 所有这些工具链都用于基于ARM的平台 armLinux内核的构建 获取linux内核根据需要选取armlinuxpatch文件并安装patch配置和编译内核 armLinux内核的构建 获得linux内核与armpatchlinux内核参考下载网址 linux kernel v2 4linux 2 4 18 tar gz或linux 2 4 18 tar bz2armpatch参考下载网址 linux org uk pub armlinux people kr pub armlinux v2 4patch 2 4 18 rmk1 gz armLinux内核的构建 解压缩内核 打armpatchtar xvzflinux 2 4 18 tar gz或tar xvjflinux 2 4 18 tar bz2cdlinuxzcat patch 2 4 18 rmk1 gz patch p1另一种打patch的方法 gzippatch 2 4 18 rmk1 gz产生patch 2 4 18 rmk1文件cdlinuxpatch p1 patch 2 4 18 rmk1 armLinux内核的构建 内核编译过程makemrpropermake target devices config linux arch arm def config mx1ads makeoldconfigmakedepmakezImage将在arch arm boot 下生成zImage内核文件 随时可以通过makemenuconfig或makexconfig来配置内核 内核配置系统 内核配置系统 基本结构Makefile 分布在Linux内核源代码中的Makefile 定义Linux内核的编译规则配置文件 config in 给用户提供配置选择的功能 配置工具 包括配置命令解释器和配置用户界面 提供基于字符界面 基于Ncurses图形界面以及基于Xwindows图形界面的用户配置界面 各自对应于Makeconfig Makemenuconfig和makexconfig 内核配置系统 Linux内核中的Makefile以及与Makefile直接相关的文件Makefile 顶层Makefile 是整个内核配置 编译的总体控制文件 config 内核配置文件 包含由用户选择的配置选项 用来存放内核配置后的结果 如makeconfig arch Makefile 位于各种CPU体系目录下的Makefile 如arch arm Makefile 是针对特定平台的Makefile各个子目录下的Makefile 比如drivers Makefile 负责所在子目录下源代码的管理Rules make 规则文件 被所有的Makefile使用 内核配置系统 顶层Makefile有两个主要的任务 产生vmlinux文件内核模块 module 为了达到此目的 顶层Makefile递归的进入到内核的各个子目录中 分别调用位于这些子目录中的Makefile 嵌入式linux的root文件系统 几种主要的文件系统Ext2文件格式的ramdiskRomfsCramfs 嵌入式linux的root文件系统 mke2fs vm0 dev ram4096mount text2 dev ram mntcd mntcp bin sbin etc dev filesinmntcd umount mntddif dev rambs 1kcount 4096of ext2ramdisk 嵌入式linux的root文件系统 一些要包含在Ramdisk中的重要目录是 bin 保存大多数象init busybox shell 文件管理实用程序等二进制文件 dev 包含用在设备中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六班级上册数学教学方案
- 工业互联网平台联邦学习隐私保护在网络安全防护中的应用报告
- 2025年中国户外广告机行业市场调查研究及发展战略规划报告
- 2025年中国甜品市场行情动态分析及发展前景趋势预测报告
- 2023-2028年中国KTV点歌系统行业市场调查研究及投资前景展望报告
- 水溶性光固化引发行业深度研究报告
- 校园文化艺术节活动策划方案
- 2025年中国黄色温变颜料行业市场发展前景及发展趋势与投资战略研究报告
- 业务推广方案
- 2025年中国山羊乳行业市场调研分析及投资战略咨询报告
- DB45T 2711-2023 艾滋病合并马尔尼菲篮状菌病的筛查与诊疗技术规范
- 电商运营岗位聘用合同样本
- 《妇产科学》课件-8.1决定分娩的因素
- 部队热射病预防与急救
- 糖尿病性坏死性筋膜炎
- 2024年教师资格考试初中学科知识与教学能力信息技术试题与参考答案
- DB11T 1975-2022 建筑垃圾再生产品应用技术规程
- 荆州市国土空间总体规划(2021-2035年)
- 2024-2030年中国粪便菌群移植(FMT)行业经营风险与投融资趋势预测报告
- 儿童参加活动免责协议书范本
- 银行灭火和应急疏散应急预案
评论
0/150
提交评论