打印
[XMC™]

XMC4800 flash security

[复制链接]
1133|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 IFX_Lingling 于 2024-1-15 16:29 编辑

XMC4800 flash security
1:第一部分是flash的加密:
Flash 中有一个特殊的区域 UCB(User Configuration Block),用于 Flash 加密。UCB 区域分为 UCB0,UCB1,UCB2 这三个 1K 的区域,分别分配给 3 个用户使用。每个的权限有所不同,UCB0 用户有对芯片全局读保护和写保护权限,UCB1 用户有对芯片写保护权限,UCB2 用户有对芯片进行 OTP 保护权限。一般比较常用的是全局读保护,即把 PROCON0 的 bit15 值为 1,复位后 Flash 就被读保护了。PROCONx 寄存器是只读的,它会在复位后从 UCB 的对应位置把值 load 进来。


Flash 的加密流程是:
把 PROCNx 的内容配置好,先写 UC Page0
再把 confirmation code 设为 0x8AFE15C3,然后再写 UC Page2
复位后 Flash 就加密了
在代码段的操作可以调用flash的API:
        
XMC_FLASH_InstallProtection(0, 0x8000, 0x7E0, 0x7E0);
                  XMC_FLASH_ConfirmProtection(0);
这两条语句执行完成以后,芯片就处于加密的状态了。
但是在程序的开发过程中会涉及到解密,解密分为两个方向:
1: 临时解密
XMC_FLASH_lDisableReadProtectionCommand55(0x7E0,0x7E0);
临时解密以后再调用语句void XMC_FLASH_ResumeProtection(void)就可以了。

2: 永久解密
永久解密的做法操作次数是收到限制的。推荐只是操作4次。这个可以看XMC4800 reference manual
永久解密代码操作:
 //XMC_FLASH_VerifyReadProtection(0x7E0, 0x7E0);
                  //XMC_FLASH_EraseUCB(XMC_FLASH_UCB0);
具体的寄存器部分可以看下面截图:




使用特权

评论回复
沙发
tpgf| | 2024-4-8 12:01 | 只看该作者
在整个flash的加密过程中,是否需要屏蔽所有的中断呢

使用特权

评论回复
板凳
paotangsan| | 2024-4-8 19:11 | 只看该作者
这种保护的权限有米有等级高低之分呢

使用特权

评论回复
地板
keaibukelian| | 2024-4-8 20:21 | 只看该作者
这是一种硬件加密方式还是软件加密方式啊

使用特权

评论回复
5
heimaojingzhang| | 2024-4-8 21:31 | 只看该作者
加密的算法有选择性吗 还是只有一种啊

使用特权

评论回复
6
guanjiaer| | 2024-4-8 22:06 | 只看该作者
一旦启用了otp保护 还能对这个功能进行解除吗

使用特权

评论回复
7
观海| | 2024-4-8 23:16 | 只看该作者
对于flash的加密是英飞凌的一个可选功能吗

使用特权

评论回复
8
小夏天的大西瓜| | 2024-4-22 21:46 | 只看该作者
Flash 的加密可以借助IDE设置嘛?

使用特权

评论回复
9
suncat0504| | 2024-4-30 17:30 | 只看该作者
一直不太明白,加入这么复杂的安全机制,是否真的有这个必要?现在想想,以前那种一次性写入就不允许修改的,还是挺好的。

使用特权

评论回复
10
suncat0504| | 2024-4-30 17:31 | 只看该作者
感觉芯片的安全措施,越来越细分了,对程序员来说,会增加工作量的吧。如果以操作系统方式运行的,不能在系统上家安全设置吗|?

使用特权

评论回复
11
地瓜patch| | 2024-4-30 22:23 | 只看该作者
全局读保护能防止非法改写

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:
简介:关于英飞凌——我们致力于打造一个更加便利、安全和环保的世界,在赢得自身成功发展的同时,积极践行企业社会责任。

105

主题

189

帖子

5

粉丝