- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
引导程序内核根文件系统整理ppt
经典2410开发平台基本硬件电路 Bootloader的概念 Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对Boot Loader 归纳出一些通用的概念来,以指导用户特定的Boot Loader 设计与实现。 Bootloader的工作模式(一) 下载模式 对研发人员来说,Bootloader一般需要工作在这种模式下,特别是调试内核或者Bootloader本身的时候。 通过串口终端与Bootloader进行交互,可以操作系统硬件。比如通过网口或者串口下载内核,烧写Flash等等。 Bootloader的工作模式(二) 启动加载模式 嵌入式产品发布的时候,Bootloader必须工作在该模式下。 这种情况下,Bootloader必须完成硬件自检、配置,并从Flash中将内核拷贝到SDRAM中,并跳转到内核入口,实现自启动,而不需要人为的干预。 Bootloader的安装媒介 系统上电时或复位以后,都从芯片厂商预先安排的一个地址处取第一条指令执行(对我们的S3C2410芯片,从0x0处开始)。 由于上电或复位需要运行的第一段程序就是Bootloader,故必须把Bootloader放入该地址。将Bootloader写入固态存储设备,永久保存,系统上电后将自动执行Bootloader。 Bootloader的烧写 Bootloader可以配置系统。 没有Bootloader,系统就不能启动。 Bootloader可以实现自烧写。但是系统中没有还没有Bootloader的时候,怎么启动? ————JTAG烧写。 典型的Flash存储空间分配图 嵌入式系统中常见的Bootloader Vivi Blob Redboot U-Boot(armboot、ppcboot整合) U-Boot简介 1999年由德国DENX软件工程中心的Wolfgang Denk发起,全称Universal Bootloader。 特点: ★支持多种硬件构架:包括ARM、x86、PPC、MIPS、m68k、NIOS、Blackfin ★支持多种操作系统:包括Linux、VxWorks、NETBSD、QNX、RTEMS、ARTOS、LynxOS ★支持多达216种以上的开发板 ★开放源代码,遵循GPL条款 ★易于移植、调试 官方网站:http://www.denx.de/wiki/U-Boot/WebHome U-Boot目录结构 ●board 目标板相关文件,主要包含硬件初始化、SDRAM初始化 ●common 独立于处理器体系结构的通用代码 ●cpu 与处理器相关的文件,包含cpu初始化、串口初始化、中断初始化等代码 ●doc U-Boot的说明文档 ●drivers 设备驱动代码,如Flash驱动、网卡驱动、串口驱动等 ●fs U-Boot支持的文件系统的实现,如cramfs、fat、ext2、jffs2等 ●include U-Boot使用的头文件,包括不同硬件构架的头文件 ●lib_xxx 处理器相关文件,如我们要使用的lib_arm,与arm体系结构相关的文件 ●net 网络功能的上层文件,实现各种协议,如nfs、tftp、arp等 U-Boot启动流程 和大多数的Bootloader一样,U-BOOT的启动分为两个阶段: stage1:依赖于CPU体系结构的代码,主要用汇编来实现。 stage2:通常用C语言来实现,这样可以实现复杂的功能,而且具有更好的可读性和可移植性。 U-Boot启动流程之stage1 第一阶段的代码位于cpu/arm920t/start.S中,依次完成以下功能: 1、系统上电,进入svc模式 2、关闭看门狗,禁止所有中断 3、进行初级硬件初始化 4、将自身代码拷贝到SDRAM中 5、设置堆栈 6、清空bss段 7、跳转到C语言实现的stage2中 U-Boot的使用(1/3) 1、printenv 打印环境变量 打印U-Boot的环境变量,包括串口波特率、ip地址、mac地址、内核启动参数、服务器ip地址等等。 2、setenv 设置环境变量 对环境变量的值进行设置,保存在SDRAM中,但不写入Flash。这样系统掉电以后设置的环境变量就不存在了。 3、sa
您可能关注的文档
- 庾岭小学“女生如何防范性侵害”安全法制教育.ppt
- 延庆旅游市场数据分析报告.ppt
- 延年健管软件服务内容.ppt
- 广州常见园林植物.ppt
- 延迟中断容忍网络.ppt
- 廖明阳教授讲义 新药发现毒理学研究策略与新技术新方法介绍.ppt
- 建立信心走向成功.ppt
- 庞中华字帖.ppt
- 建立学习型组织.ppt
- 广阔的天空(幼儿教育).ppt
- 2025年江苏省镇江市-警察招考行政能力测验真题(含答案).pdf
- 2025年设备采购实施方案(共5篇).pdf
- 2025年公共政策分析 期末考试题答案.pdf
- 2025年部编人教版八年级语文下册期末测试卷(可打印).pdf
- 2025年见证取样送检制度及注意事项(广州地区).pdf
- 2022年-2023年保密知识考试教育模拟考试题(含答案) .pdf
- 2023-2024学年度新人教版四年级下册语文教学计划及进度表 .pdf
- 2025年1、民法是调整平等主体的公民之间、法人之间、公民和法人之间财产....pdf
- 2025年12月高等学校英语应用能力考试A级真题及答案.pdf
- 2022学生入团申请书范文8篇 .pdf
文档评论(0)