采用usb线刷linux固件的原理

通过其他文章,我已经提到过,一款SOC都是自带BROM的,上电后都首先运行BROM中的代码,那么线刷固件和BROM有什么关系呢?我们接下来来研究下。

对于BROM它的作用有两个,一个是用来正常启动固件,另一个就是刷机了。一般BROM中的固化程序会检测当前SOC的状态,到底是刷机状态呢,还是正常启动的状态,它一般是通过检测SOC上的寄存器来判断,并且SOC会引出跟这个寄存器相关的引脚来供硬件工程师添加按键,由此按键是否按下来确定当前CPU的状态。

当BROM检测到是刷机状态,那么它将首先初始化一下usb口,并且使用usb口下载第一个最基本的引导程序到片内SRAM上运行。这个引导程序会做接下来的刷机操作,它会接管CPU,初始化DDR或者SDRAM,然后使用usb口下载第二段刷机程序到片外RAM中,并运行之,这第二段刷机程序最终把正常固件下载并写入Flash中。

由上面的过程可以看出,刷机用的程序包始终是从usb口下载下来的,并且不保存到Flash中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值