无忧商务网,免费信息发布推广平台,您可以 [登陆后台] 或 [免费注册] 无忧商务网 | 企业黄页 | 产品库存 | 供求信息 | 最新报价 | 企业资讯 | 展会信息
黄页信息| 库存信息| 技术服务| 供应信息| 求购信息| 二手信息| 加工信息| 供求库| 报价库| 展会库| 代理信息| 保健| 生活黄页| 食谱| 网络黄页| 水族休闲| 人力HR| 招聘
首页>>生活网>>生活保健>>3C小百科-消费性电子-其他
解析单片机上应用的一款Boot Loader

<STRONG>Boot Loader的概念及功能<BR><BR></STRONG>       在以ARM为代表的嵌入式系统中,操作系统内核运行前的硬件初始化、建立内核镜像等都是由Boot Loader来完成的。在PC机上,最先启动的是主板上的BIOS,BIOS负责对硬件初始化,给操作系统提供硬件的接口函数等等,但在嵌入式操作系统中并没有BIOS,因此整个嵌入式操作系统的加载启动任务就完全由Boot Loader来完成。<BR><BR>
<P align=center><IMG style="WIDTH: 300px; HEIGHT: 170px" height=170 alt="boot loader流程图" hspace=0 src="http://www.dzdqw.com/jishu/UploadFiles_9637/200610/20061010225426332.gif" width=300 border=0><BR>图1  Boot Loader流程图</P>
<P>       Boot Loader通常存放于目标平台的非易失存储介质中,主要用于完成由硬件启动到操作系统启动的过渡,能够在上电后对SDRAM、CACHE、FLASH等硬件部分进行检测,建立内存空间的映射图和内核镜像,建立通讯通道和调试通道等,还能够提供Shell Menu检测设置菜单和相应的检测程序,引导操作系统及应用程序,从而为最终调用操作系统内核准备好正确的环境。<BR><BR>       目前,嵌入式系统中广泛应用的UBoot、vivi、blob、armboot等Boot Loader在原有功能的基础上,增加了更多的功能并大大增强了移植性。嵌入式系统中硬件的种类繁多,差距较大,而Boot Loader是严重依赖于硬件而实现的。不同的CPU体系需要不同的Boot Loader,即便是同一种体系结构,由于其它硬件设备配置的不同,如板卡硬件地址的分配、RAM芯片的型号等,也需要对Boot Loader作一定的修改才能使用。因此,开发人员需针对不同的处理器和开发板,对Boot Loader进行定制,来实现不同的功能。<BR><BR><STRONG>       Boot Loader的操作模式</STRONG><BR><BR>       Boot Loader通常包括&#8220;启动加载(Boot loading)&#8221;和&#8220;下载(Downloading)&#8221;两种模式。这两种操作模式仅对开发人员具有一定的意义。<BR><BR>       启动加载模式:Boot Loader从目标机上的固态存储设备上将操作系统加载到RAM中运行,无需用户介入。此模式是Boot Loader正常的工作模式。<BR><BR>       下载模式:在这种模式下,目标机上的Boot Loader通过串口连接或网络连接等手段从主机上下载文件到目标机的RAM中,然后再烧写到目标机上的固态存储设备中。通常在第一次安装内核与根文件系统以及系统的更新时使用此模式。</P>
<P><STRONG>       Boot Loader的具体实现<BR><BR>       硬件配置</STRONG><BR><BR>       本文以UP-NetARM3000为例来介绍Boot Loader的工作机理和运行流程。UP-NetARM3000使用的是三星公司生产的S3C44B0X芯片,这是三星公司推出的一款高性价比和高性能的微控制器。它具有32位的ARM7TDMI内核,外部时钟为8MHz,内部倍频最高可达72MHz,工作频率为64MHz。S3C44B0X通过提供全面的、通用的片上外设,大大减少了系统中处理器以外的元器件配置,从而使系统的成本大大降低,它集成的各种片上功能包括:8KB Cache、扩展内存控制器、2通道UART带有握手协议、1通道SIO、2个通用DMA、2个外设用DMA、外部存储控制器、LCD控制器、IIC/IIS总线接口、5个通道PWM定时器和一个内部定时器、看门狗定时器、71个通用I/O口、8个外部中断源、8通道10位ADC、片上PLL时钟产生器等。<BR><BR><STRONG>       Boot Loader的启动流程</STRONG><BR><BR>       大多数Boot Loader通常都分为Stage1和Stage2两大部分。Stage1通常由汇编语言编写,即Boot Loader的启动代码,旨在对部分硬件设备进行初始化。Stage2即Boot Loader的主代码,为了实现更加复杂的功能,使代码具有更好的可读性和可移植性,通常由C语言来实现,主要用来加载操作系统内核。 具体启动流程如图1所示。<BR><BR>      <STRONG> &#183; Stage1部分<BR><BR>       设置CPU的速度、时钟频率及中断控制寄存器<BR></STRONG><BR>       Boot Loader的启动代码首先定义了一个全局入口,然后对异常向量进行设置。由于Boot Loader严重的依赖于硬件而实现,因此根据CPU体系结构和具体的硬件配置来设置CPU的速度、时钟频率及中断控制寄存器。除完成上述功能,启动代码还需要实现禁止看门狗定时器、设置时钟控制寄存器、设置锁相环控制寄存器、使能所有功能单元块时钟等功能。另外,系统中断的设置也是在这部分实现的,主要是中断向量表和IRQ中断入口地址的设置。<BR><BR></P>
相关资讯
类别浏览
安徽 北京 福建 甘肃 广东 广西 贵州 海南 河北 河南 黑龙江 湖北 湖南 吉林 江苏 宁夏 青海 山东 山西 陕西 上海 四川 天津 新疆 西藏 云南 浙江 重庆 辽宁 江西 内蒙古
无忧商务网 版权所有 Copyright © 2020.6 www.cn5135.com All Rights Reserved. 湘ICP备12008603号
本站所有产品都是会员自行发布,所有信息都有对方的企业名片和联系方式,如果您需要咨询产品具体参数和细节,请直接联系和咨询厂商,谢谢。
行业子站: 机械 库存 建材 物流 礼品 能源 农业 汽摩 食品 通讯 五金 玩具 矿产 印刷 休闲 服务 服装 化工 环保 电子 纺织 电工 电脑 电器 办公 安全 包装 仪器 家居