TI中文支持网
TI专业的中文技术问题搜集分享网站

LAUNCHXL-CC26X2R1: OAD升级流程开始起点的疑问

Part Number:LAUNCHXL-CC26X2R1

我们的手机app可以通过一些握手和加密让芯片确定他的身份,在OAD更新时我们希望非认证身份无法执行OAD的任何操作(尤其是起始).

在`simple_peripheral_oad_onchip`程序中存在`SP_OAD_QUEUE_EVT`,`SP_OAD_COMPLETE_EVT`,`SP_OAD_NO_MEM_EVT`三个标签值,在这三个对应的函数区内就行是否认证过身份的判断,若未认证则跳过.

但将将修改之后的程序下载进芯片后依旧可以执行OAD的整个过程,因此发起`OAD升级流程开始起点的疑问`的问题帖,望解答.

Galaxy Yue:

您好,

viys 说:加密让芯片确定他的身份

首先考虑确认身份这一步骤可能存在问题

安全校验方面可以看下这个帖子:

https://e2echina.ti.com/support/wireless-connectivity/bluetooth/f/bluetooth-forum/758234/launchxl-cc26x2r1-oad

其次,建议您看一下OAD的指南,link如下

https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_7_10_01_24/docs/ble5stack/ble_user_guide/html/oad-secure/image-header.html

viys 说:OAD升级流程开始起点

认为是bootloader保存的应用程序起始地址,您可以查看相关代码去看代码逻辑

,

viys:

抱歉我未能描述清楚,身份确认为我们自己的程序,目前验证成功.

ti相关资料表示,OAD时对升级镜像进行核验,但当有OAD申请时我们并不希望非用户身份可以进行请求,避免非必要的资源占用和浪费.

我们使用的是on-chip,片内空间有限.

需求是,找出接收OAD最开始的请求的函数,仅当身份验证成功时才进入OAD的流程.

,

Galaxy Yue:

首先bim会调用Bim_findImage函数,在flash的第0页搜索用户应用程序(镜像类型OAD_IMG_TYPE_APPSTACKLIB),如果成功(即镜像头中的镜像类型正确、镜像验证字段0的个数为偶数、CRC和安全验证都通过),则调用用户应用程序而不返回main()函数

如果上述的操作失败,则返回到bim_main()函数,再次调用Bim_findImage函数,从flash的第1页开始搜索持久应用程序(镜像类型OAD_IMG_TYPE_PERSISTENT_APP),如果第1页没有找到,则继续寻找第2页,直到结束。如果成功(即镜像头中的镜像类型正确、镜像验证字段0的个数为偶数、CRC和安全验证都通过),则调用持久应用程序而不返回main()函数,从而下载新的用户程序镜像。如果失败则返回main()函数,调用setLowPowerMode()函数进入低功耗。

,

viys:

您好我的身份验证在on-chip-XXX工程中,这个工程的OAD流程起始点在哪里呢

,

Galaxy Yue:

您好,

考虑是从创建OAD任务作为入口点

,

viys:

在该任务中屏蔽掉`SP_OAD_COMPLETE_EVT`,`SP_OAD_QUEUE_EVT`,`SP_OAD_NO_MEM_EVT`这三个事件分支即可,我的问题已解决,非常感谢ti和您的支持Rose

,

Galaxy Yue:

非常感谢您的反馈,这将十分有用。

谢谢您的努力,祝顺利!

赞(0)
未经允许不得转载:TI中文支持网 » LAUNCHXL-CC26X2R1: OAD升级流程开始起点的疑问
分享到: 更多 (0)