一 bootloader的概念
bootloader就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。

二 bootloader的特征
1 初始化硬件,特别是内存控制器
2 提供linux内核的启动参数
3 启动linux内核

简化开发过程的一些特征:
1 读写存储器
2 通过串口/网口下载文件到RAM
3 从RAM复制文件到FLASH中

三 bootloader安装
系统加电或复位后,所有的CPU通常都从CPU制造商预先安排的地址上取指令。比如,S3C44B0在复位后都从地址0X00000000取它的第一条指令。而嵌入式系统通常都有某种类型的固态存储设备(比如:ROM,EEPROM或FLASH等)被安排在这个起始地址上,因此在系统加电后,CPU将首先执行bootloader程序。也就是说对于基于S3C44B0的这套系统,我们的bootloader是从0地址开始存放的,而这块起始地址需要采用可引导的固态存储设备如FLASH。

四 控制bootloader的设备或机制
串口通讯是最简单也是最廉价的一种双机通讯设备,所以往往在bootloader中主机和目标机之间都通过串口建立连接,bootloader程序在执行时通常会通过串口来进行I/O,比如:输出打印信息到串口,从串口读取用户控制字符等。当然如果认为出口通讯速度不够,也可以采用网络或USB通讯,那么相应的在bootloader中就需要编写各自的驱动。

五 bootloader的启动过程
多阶段的bootloader能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的bootloader大多都是2阶段的启动过程,也即启动过程可以分为stase1和stase2两部分。

六 bootloader的操作模式
1 启动加载模式:这种模式也称为“自主”模式,也即bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是bootloader的正常工作模式。
2 下载模式:在这种模式下,目标机上的bootloader将通过串口连接或网络连接等通信手段从主机下载文件,比如:下载应用程序,数据文件,内核映像等,从主机下载的文件通常首先被bootloader保存到目标机的RAM中然后再被bootloader写到目标机上的固态存储设备中。bootloader的这种模式通常在系统更新时使用。

七 bootloader的重要功能
1 烧写falsh
2 烧写内核
3 烧写文件系统
4 使用jtag口或其他

八 u-boot启动过程
1 stage1:
a 基本的硬件初始化
b 为加载stage2准备RAM空间
c 拷贝stage2到RAM中
d 设置堆栈指针sp
e 跳到stage2的入口点
2 stage2:
a 初始化本阶段要使用到的硬件设备
b 检测系统的内存映射
c 加载内核映像和文件系统映像
d 设置内核的启动参数
e 调用内核

九 移植u-boot的步骤
1 下载源代码
2 阅读readme文件
3 了解u-boot结构
4 添加修改
5 编译
6 调试
7 发布

转载于:https://www.cnblogs.com/auleaf/archive/2011/09/15/2178158.html

bootloader 简介相关推荐

  1. 【linux】BootLoader简介(c语言编程)

    BootLoader简介 一.BootLoader     1.BootLoader的作用             一个嵌入式linux系统从软件的角度看通常可以分为4个层次:            ...

  2. BootLoader简介——linux内核的引导

    1.BootLoader 在CPU上电启动时,一般连内存控制器都没有初始化过,根本无法在主存中运行程序,更不可能处在Linux内核启动环境中,为了初始化CPU及其他外设,使得Linux内核可以在系统主 ...

  3. 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boo ...

  4. DM368开发 -- Bootloader 开发(转毕设)

    参看:基于 DM368 的高清视频监控系统设计与实现 -- 文波 DM368 的启动过程大致如下: 首先进行启动代码的加载与执行, 主要是指 Bootloader启动阶段,其次启动系统内核并挂载文件系 ...

  5. ARM上的Bootloader的具体实现1071098736

    BootLoader简介: 当完成用户程序的编译并下载到目标板上运行时,总是要首 先进行存储器的映射,然后通过 ADS(或 SDT)调试环境下载,显然,这个过程对 普通用户来说显得特别烦琐,然而,要在 ...

  6. mfc上位机网络接收图片并显示_基于UDS on CAN的BootLoader上位机

    该上位机目前已经进行过单件.台架和实车的多轮测试验证,稳定运行,有需要的同仁可以加微信:ys15528121925. BootLoader简介 在汽车行业,bootloader用来给汽车ECU升级程序 ...

  7. 常见bootloader介绍

    一.BootLoader简介 在专用的嵌入式板子运行操作系统已经变得越来越流行.一个嵌入式系统从软件的角度看通常可以分为三个层次: 1. 引导加载程序.包括固化在固件(firmware)中的Boote ...

  8. stm32 通用bootloader_STM32通用Bootloader

    STM32 通用 Bootloader 简介 为了能让开发者快速掌握 OTA 升级这把利器,RT-Thread 开发团队提供了通用的 Bootloader.开发者通过该 Bootloader 即可直接 ...

  9. ESP32修改BootLoader:在boot中添加GPIO和IIC驱动方式

    ESP32修改BootLoader:在boot中添加GPIO和IIC驱动方式 1. ESP Bootloader简介 ESP32有着强大的引导加载程序(Bootloader)功能: 主要执行以下任务: ...

最新文章

  1. springboot~openfeign从JSON文件读取数据
  2. 2 关于数据仓库维度数据处理的方法探究系列——无变化维度处理
  3. 聊聊flink的CsvTableSink
  4. Junit内部解密之四: Junit单元测试最佳实践
  5. python3.4编程_求教python3.4的编程问题
  6. hdu 4350 Card(递推循环节,3级)
  7. Gartner:企业机构需重新定义网络安全领导者角色
  8. error: ‘XXX‘ is defined but never used (no-unused-vars)报错的解决方案
  9. SpringSecurity动态加载用户角色权限实现登录及鉴权
  10. 顶岗实习周记java方向_前途虽远,扶摇可接 | 商务日语专业顶岗实习动员大会...
  11. 应用IMXMLObject自定义功能性组件
  12. 基本类型和引用类型,执行环境和作用域
  13. 小米路由器无线网无法连接到服务器,小米路由器桥接后进不了路由器设置
  14. link_path_walk()分析
  15. 社交鼻祖人人网被卖 曾意气风发比肩Facebook 一代人的回忆终结了
  16. win10系统 开启蓝牙服务器,Win10打开蓝牙的方法步骤详解
  17. 2023系统分析师讲义知识点总结
  18. ensp 防火墙 pat 映射
  19. 关于send和recv在UDP的使用
  20. 数据告诉你,全世界到底有多少人在炒币

热门文章

  1. 自适应谱线增强matlab,自适应谱线增强器.doc
  2. IAR for AVR delay函数
  3. Go Web编程--使用bcrpyt哈希用户密码
  4. Laravel核心解读--控制器 1
  5. mipi 调试经验【转】
  6. 用路由做企业管理:所有人都说不可能的时候(中)
  7. 深入理解HTTP协议、HTTP协议原理分析【转】
  8. php编译时出错make: *** [libphp5.la] Error 1
  9. 键入一个网页后了发生什么
  10. 用javascript写Android和iOS naitve应用,实在炫酷。