目录
1、概述
上篇文章分析了一下如何去安装HSE,这里再记录一下,安装AB SWAP之后,程序是如何实现切换的。
如何安装HSE驱动连接如下:如何安装HSE
安装hse ab swap之后,我们可以通过调用hse_interface里的SID =
HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCK来实现A B bank之间的切换。切换的原理如下:
上图观察时候的注意点:
1、逻辑地址、物理地址、关联地址之间的关系需要分清楚。
2、两个flash 0x00400000(PF0)与0x00500000(PF1)是属于不同属性的PF
3、标黄的部分,一定要理解
2、切换步骤
安装HSE ab swap模式后,需要保证B区里也必须有程序的存在。这里实现由两种方式:
第一,在切换前,将active的程序copy到passive;第二,在ld文件内,以bin文件拼接的方
式,在passive block内放置一版程序。
调用active passive block函数,完成切换。目前认为,我们在更新完passive的程序之后,
调用该SID之后,硬件执行remapping操作,在一次reset之后,程序还是从0x00400000处执
行。
注意点:
1.必须保证passive 有程序,才能确保切换成功
2.程序的更新地址永远是0x00500000,程序运行起始地址永远是0x00400000。(没有boot参与的情况下)
3.在ld文件拼接程序时,passive的程序运行其实地址必须是0x00400000,如果有
bootloader,地址信息也和active程序保持一致。
切换服务SID = HSE_SRV_ID_ACTIVATE_PASS