嵌入式交叉编译环境及系统裁剪(PBootloader程序结构P内核裁剪)剖析.ppt

嵌入式交叉编译环境及系统裁剪(PBootloader程序结构P内核裁剪)剖析.ppt

  1. 1、本文档共91页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows 超级终端设置 首先需要连接串口,进行串口设置。连接串口至PC相应接口,另一端连接在硬件平台的Uart1 接口上。确认连接无误。打开超级终端软件,进入如下图1 所示界面: Windows 超级终端设置 填写连接名,选择图标,点击“确定”,如下图2 所示。 Windows 超级终端设置 连接时选择通讯使用串口,有的PC可能有两个串口,使用时请确认选择已连接到平台的串口,可以选择 COM1、COM2... ,点击“确定”,出现图3 画面。 Windows 超级终端设置 修改波特率为 38400bps 或 115200bps(根据 NBOOT 中 调试波特率设置),数据流控制为“无”(注意:这样可以从终端输入字符),结果如下图4 所示: Windows 超级终端设置 Linux系统超级终端设置 (2)Blob Blob是Boot Loader Object的缩写。它遵循GPL,源泉代码完全开放。 Blob最初是为一块专用开发板写的(处理器是StrongARM SA-1100)。现在Blob已经被移植到了很多CPU上。 源码下载:/projects/blob (3)ARMBoot Armboot是一个bootloader,是为基于ARM或者StrongARM CPU的嵌入式系统所设计的。它支持多种类型的Flash。 源码下载:/projects/armboot (4)RedBoot Redboot 是Red Hat公司开发的一个独立运行在嵌入式系统上的BootLoader程序,是目前比较流行的一个功能、可移植性好的BootLoader。 源码下载:/rdboot (5)vivi vivi 是韩国mizi 公司开发的bootloader, 适用于ARM9处理器。 目前实验箱上使用的Bootloader是vivi 源码下载: vivi(下载模式)使用的典型命令 load :用于加载文件到内存或Flash中 part:显示Flash的分区,包括vivi,kernel,rootfs等的位置 param:修改vivi的参数,如核心命令行参数 flash:管理flash。 boot:启动Linux核心 1、vivi结构 vivi的结构分为两个阶段: Stage1的代码在vivi目录下的arch/s3c2410/head.s中,Stage2的代码从vivi目录下init/main.c的main函数开始。 四、vivi的裁剪与编译 Stage1完成如下任务: (1)关闭WatchDog; (2)禁止所有终端; (3)初始化系统时钟; (4)初始化内存控制寄存器; (5)检查是否从掉电模式唤醒,如果是,则调用WachupStart函数进行处理; (6)点亮所有LED; (7)初始化UART0; (8)将vivi的代码从NAND Flash复制到SDRAM中。 Stage2完成如下任务: (1)打印vivi的信息; (2)调用初始化函数。 (3)boot_or_vivi():判断是否按下回车键,若按下,则进入vivi shell;若没有,则执行boot命令,启动内核。 (4)boot命令执行后,找到kernel分区,并找它的偏移量和大小,执行boot_kernel()函数,复制内核映像。 (4)设置Linux启动参数,打印“Now Booting Linux…”。 (5)调用call_linux()函数启动内核。 在vivi源程序目录下,使用以下命令: #make distclean #make menuconfig #make 生成文件vivi 2、vivi配置及编译 第4章:嵌入式交叉编译环境及系统裁剪 4.1 嵌入式交叉编译环境构建 4.2 Bootloader程序 4.3  Linux操作系统的裁剪和编译 什么叫Linux移植?内核为什么要移植?如何移植? 1、把Linux操作系统针对具体的目标平台做必要的改写之后,安装到该目标平台使其正确运行,这就叫移植。 2、因为不同的嵌入式系统使用的微处理器不同(体系结构不同),再加上硬件设计时,可能存储器安排的地址也不同。因此要根据系统的体系结构、硬件的结构来修改源代码,否则系统不能正确运行。 一、内核的裁剪与编译 通常对Linux源码的修改工作难度较大,它要求不仅对Linux内核结构要非常熟悉,还要对目标平台的硬件结构非常熟悉。 所以这部分工作一般由目标平台提供商来完成。例如ARM平台,它的这部分工作就是由ARM公司的工程师完成的。我们所做的就是:下载相关版本的Linux内核补丁(Patch);然后将它打到内核上,最后进行交

文档评论(0)

四月 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档