NXP实战笔记(十五):32K3xx基于RTD-SDK在S32DS上安装HSE之后,进行AB SWAP功能实现OTA升级。

目录

1、概述

2、切换步骤

3、调试结果

4、切换失败原因总结

5、AB BLOCK指示寄存器

6、程序回滚


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

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

剑从东方起

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

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

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

打赏作者

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

抵扣说明:

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

余额充值