完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在开发一个项目,其中包括一个引导加载程序和一个要跳转到的应用程序。
两个二进制文件都在 M0+ 内核上执行,以便利用仅为该内核提供的安全功能。 思路如下: 引导加载程序验证应用程序的完整性/真实性,然后跳入其中。 我正在尝试启用隐藏保护 (HDP) 功能,以允许在重置或重启后执行引导加载程序,然后保护它所在的闪存区域。 换句话说,我需要将引导加载程序置于安全区域并防止潜在的读取或写入操作。 基于RF0453,我必须从我的引导加载程序调用RSSLIB_PFUNC->CloseExitHDP函数来关闭 HDP 区域,然后跳转到我的应用程序。 在不启用 HDP 的情况下,我可以使用上面的 RSSLIB 函数验证引导加载程序是否跳转到我的应用程序。 但是,当我启用 HDP 时,RSSLIB_PFUNC->CloseExitHDP功能似乎永远不会跳转到我的应用程序。 引导加载程序位于闪存偏移量0x08020000中。 我的应用程序位于闪存偏移量0x08001800中。 因此,基于此,我按如下方式启用 HDP:
|
|
相关推荐
1个回答
|
|
我找到了我的问题的解决方案,所以我分享它以防它对任何人有用:
在 RM0453 Rev 2 的第 68 页,它声明如下: “内存的安全区域只能从安全 CPU2 和安全 DMA 通道进行专门的读取、写入和执行访问” 在同一页上,它还指出: “CPU2 只能对非安全区域进行读写访问。CPU2 无法从非安全区域执行” 所以,我的错误是,当我启用安全性时,我将安全区域设置为从页面 0x40 (0x8020000) 开始的区域,该区域仅存储安全引导加载程序。 该应用程序存储在闪存中,从页面 0x3 (0x8001800) 开始,这不是安全区域的一部分,因此,由于启用了安全性,因此 CPU2 无法跳转到该非安全区域并执行。 因此,要使其正常工作必须做的是:
另外如前所述:
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2718 浏览 1 评论
3235 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1807 浏览 1 评论
3645 浏览 6 评论
6033 浏览 21 评论
1333浏览 4评论
208浏览 3评论
195浏览 3评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
348浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
440浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 03:06 , Processed in 1.579589 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191