BootLoader和OTA的关系

什么需要BootLoader

在Linux系统中,软件组成可以跟Windows进行类比:

BootLoader的主要作用是:

  • 初始化硬件:比如设置时钟、初始化内存

  • 启动内核:从Flash读出内核、存入内存、给内核设置参数、启动内核

  • 调试作用:在开发产品时需要经常调试内核,使用BootLoader可以方便地更新内核

在单片机中,软件没那么复杂,一般只有一个程序,上电就运行这个程序,并不需要BootLoader。

但是涉及软件升级时,必须引入要BootLoader。假设没有BootLoader,程序无法升级自己:

  • 单片机资源比较紧张,Flash容量比较小,一般无法存储两份程序

  • 当前的程序在Flash上运行,它无法更新自己:通过网络下载程序到内存后,烧写到Flash不就破坏本身正在运行的程序了吗?

所以在单片机中,涉及软件升级时,必须引入BootLoader:

Flash上烧写有BootLoader和APP(用户程序),启动过程如下:

  • 上电时BootLoader先运行

  • BootLoader判断发现:Flash上有APP并且无需升级,BootLoader就会启动APP

  • BootLoader判断发现:Flash上没有APP或者需要升级,BootLoader执行升级操作

2. 后续

我们学习单片机的BootLoader,目的是进行OTA升级。

我们学习Linux的OTA升级,离不开u-boot。

所以,我们先学习BootLoader再学习OTA。

后续分为2个项目:

  • BootLoader

    • 对于单片机,我们从0写一个BootLoader

    • 对于Linux,我们从0写一个BootLoader,然后分析u-boot的源码

  • OTA

    • 我们先分析开源软件SWUpdate,理解标准的OTA方案

    • 再在单片机、Linux上分别实现OTA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

7yewh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值