文档章节

代码实现一个基本的bootloader

xiaocui911
 xiaocui911
发布于 2015/11/13 14:08
字数 534
阅读 158
收藏 6

    什么是bootloader?百度一下一大堆,它就是给处理器优化出一个合适的环境,然后再把引线指向内核,剩下的事就交给内核,不会再有它什么事(这里的bootloader不是uboot)。那么就有人问了:如果它在执行中想有些参数之类的东西想传递给内核该怎么办呢?这不是太荒唐了吗?那当然不会这么简单了。

    硬件初始化的工作大家应该能猜到一二,1、肯定是时钟呀,但在这之前需要先关掉看门狗,2、当然是内存了(就是RAM),然后就到内核了(简单吧),但这之前如果我们的bootloader过大的话,也需要把它重定位到RAM中去。这中间有一个小技巧:就是如果你想加快bootloader的运行速度可以开启ICACHE来加快进程。然后进入main函数执行跳转工作。

在这个过程中我们bootloader会在内存中开辟一段空间把一些参数以内核能够认识的方式添加到ram段,这样每当内核需要bootloader的参数的时候她就会取这段内存以特定的方式解析数据,然后bootloader对内核就能够间接传参了。至于地址的重定位以及内核是如何跳转,这些我在代码中有比较详细的注释。代码中的一些数据是从前人的uboot中copy过来,至于寄存器的操作要针对不同的处理器另当别论了。这篇bootloader仅仅是uboot的入门,完整的uboot比这要复杂多了。

代码的参考地址:http://www.oschina.net/code/snippet_2241389_52110




© 著作权归作者所有

xiaocui911
粉丝 6
博文 69
码字总数 14765
作品 0
深圳
程序员
私信 提问
uboot的作用和启动方式

声明:本文由个人学习过程中整理而成,转载请注明出处。 1、bootloader介绍 (1)对于计算机系统,从开机上电到操作系统的启动需要一个引导程序叫做bootloader(启动加载程序)。 通过bootloade...

为更好铭天
2017/04/13
0
0
基于linux的数字电视机顶盒几种升级方式的设计与实现

摘要: 本文主要阐述了基于linux操作系统的数字电视机顶盒的常用几种升级方式:OTA,USB,网络,结合常用的bootloader:cfe,u-boot实现升级做了简述,并综合对比其各自的优劣。 关键词: 数字电...

地狱的烈火
2013/05/15
553
0
alicedodo/arduino-nrf2401-bootloader

arduino-nrf2401-bootloader 介绍 这是一个专门为arduino UNO/Nano/Pro Mini打造的无线下载bootloader,可通过NRF24L01+模块或串口烧写程序.2 Kb Flash.兼容STK500V2协议,支持avrdude,支持ard...

alicedodo
04/28
0
0
简化STM32的编程之eBox生态圈

STM32目前已经成为一款性价比相当高的单片机控制解决方案,由于STM32本身功能比较全面,备受大家的青睐,网络上有这相当全面的资料,不管是新手还是老鸟都可以通过一个开发板的学习来了解STM...

eBox生态圈
2015/09/24
5
0
如何实现蓝牙空中升级BLE OTA

如何实现BLE OTA?什么叫DFU?如何通过UART实现固件升级?又如何通过USB实现固件升级?怎么保证升级的安全性?什么叫双备份(dual bank)DFU?什么叫单备份(single bank)DFU?什么叫后台式...

iini
2018/07/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

c语言实现Sqlite3的创建db和增删改查db操作

SQLite,是一款轻型的数据库,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中使用广泛,现在准备学习一下sqlite3的使用方法并写一个测试demo,后面在项目智能...

jorin_zou
12分钟前
2
0
【2019年8月版本】OCP 071认证考试最新版本的考试原题-第2题

choose three Which three are true about the CREATE TABLE command? A) It can include the CREATE...INDEX statement for creating an index to enforce the primary key constraint. B) ......

oschina_5359
15分钟前
3
0
如何在二维码中循环批量插入图片

现在二维码种类比较多,为了突出二维码的个性及吸引客户,很多朋友都喜欢在二维码上插入图片。想要每个二维码都与众不同,但是有的时候需要批量插入图片数量有限,如果制作的二维码比较多的话...

中琅软件
16分钟前
4
0
LTR那点事—AUC及其与线上点击率的关联详解

LTR(Learning To Rank)学习排序是一种监督学习(SupervisedLearning)的排序方法,现已经广泛应用于信息索引,内容推荐,自然语言处理等多个领域。以推荐系统为例,推荐一般使用多个子策略...

达观数据
17分钟前
3
0
IntelliJ 如何显示代码的代码 docs

希望能够在 IntelliJ 代码上面显示方法的 docs。 如何进行显示? 你可以使用 Ctrl + Q 这个快捷键来查看方法的 Docs。 https://blog.ossez.com/archives/3061...

honeymoose
20分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部