完善资料让更多小伙伴认识你,还能领取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的选项
2617 浏览 1 评论
3203 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1776 浏览 1 评论
3602 浏览 6 评论
5981 浏览 21 评论
931浏览 4评论
1308浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
576浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1296浏览 3评论
1350浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 12:30 , Processed in 1.093295 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号