嵌入式Linux的构建分析报告.pptx

  1. 1、本文档共104页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 嵌入式Linux的构建;4.1 嵌入式BootLoader技术; 每种不同的 CPU 体系结构都有不同的 Boot Loader。有些 Boot Loader 也支持多种体系结构的 CPU,比如 U-Boot 就同时支持 ARM 体系结构和MIPS 体系结构。除了依赖于 CPU 的体系结构外,Boot Loader 实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种 CPU 而构建的,要想让运行在一块板子上的 Boot Loader 程序也能运行在另一块板子上,通常也都需要修改 Boot Loader 的源程序。 ;2. Boot Loader 的安装媒介(Installation Medium);图4.1 固态存储设备的典型空间分配结构 ;3. 用来控制 Boot Loader 的设备或机制 ;5. Boot Loader 的操作模式 (Operation Mode) ;6. BootLoader 与主机之间进行文件传输所用的通信设备及协议;4.1.2 Bootloader引导程序;● Bootloader的stage1;● Bootloader的stage2;2.BootLoader代码分析; str r1,[r0] ldr r0,=INTMSK ldr r1,=0xffffffff str r1,[r0] ldr r0,=INTSUBMSK ldr r1,=0x7ff str r1,[r0] …… ldr r0,=LOCKTIME ldr r1,=0xffffff str r1,[r0] …… ldr r0,=SMRDATA ldr r1,=BWSCON add r2, r0, #52; ldr r3, [r0], #4 str r3, [r1], #4 cmp r2, r0 bne %B0 …… ;第二阶段通常用C语言实现,包括内存管理单元初始化、时钟设置、端口设置和串口初始化等。; Uart_Init(0,115200); Uart_Select(0); while(1) { …… Uart_Printf(\n\nSMDK2410 Board (MCU S3C2410) Example Program Ver 1.0 FCLK = %d Hz\n\n, FCLK); …… } } ; 与一般的C语言程序一样,第二阶段程序从Main()函数开始。因为所采用的S3C2410X处理器内含存储器管理单元MMU,所以首先需要进行存储器管理单元的初始化。紧接着设置系统工作主时钟,若使用USB设备则USB时钟也需要做相应初始化。其次对端口工作状态进行设定。然后设定处理器工作模式,以及中断控制。最后初始化串口,与宿主机建立联系,以利于显示调试信息。启动成功后,可以执行主程序。 ;4.1.3 VIVI简介;Press Return to start the LINUX now, any other key for vivi. VIVI也有前面说过的两种工作模式,启动模式可以在一段时间后自行启动Linux内核,这是VIVI的默认方式。出现上述信息后,如果按除回车键外的任意键,即可进入下载模式,出现“vivi”提示符。有如下作用: ● 把内核(kernel)从flash复制到RAM,然后启动; ● 初始化硬件; ● 下载程序并写入flash(通常由串口或者网口先把内核下载到RAM中,然后写入flash); ● 检测目标板(bootloader会有一些简单的代码用以测试目标板硬件的好坏)。 在下载模式下,VIVI为用户提供了一个命令行接口,通过该接口可以使用VIVI提供的一些命令。 ;1. VIVI的命令;(2)part命令 操作MTD分区信息,比如,显示、增加、删除、复位、保存MTD分区等。 ● part show:显示mtd分区信息。 ● part add name offset size flag:增加新的mtd分区,其中name为新mtd分区名称,offset是mtd器件的偏移,size表示mtd分区的大小,flag表示分区类型,可选项有JFFS2、LOCKED和BONFS。 ● part del partname:删除一个mtd分区。 ● part reset:恢复mtd 分区为默认值。 ● part save:在flash中永久保存参数值和分区信息。 ; (4)boot命令 用来引导存储在flash存储器或ram中的linux内核。命令格式: boot media_type [ par

文档评论(0)

美洲行 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档