打印
[应用相关]

AN0183_AT32F402_405_Security_Library_Application_Note

[复制链接]
1227|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
084425|  楼主 | 2023-11-1 16:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 084425 于 2023-11-1 16:54 编辑

目前越来越多的微控器(MCU)应用需要使用到复杂的算法及中间件解决方案(middleware solution),因此,如何保护软件方案商开发出来的核心算法等知识产权代码(IP-Code),便成为微控制器应用中一项很重要的课题。
因为这一重要的需求,AT32F402/405系列提供了安全库区(SLIB)的功能,以防止重要的IP-Code被终端用户的程序做修改或读取,进而达到保护的目的。
本文档将详细阐述AT32F402/405系列安全库区的应用原理和软件使用方法。

安全库区的应用原理
  • 设定以密码保护主闪存中指定范围的程序区(即安全库区), 软件方案商可将核心算法存放到此区域, 以达到保护的功能, 其余空白程序区可以提供给终端商客户进行二次开发。
  • 安全库区划分为唯读区(SLIB_READ_ONLY)及指令区(SLIB_INSTRUCTION), 并可选择部分或是整个安全库区存放唯读区或者指令区。
  • 唯读安全库区(SLIB_READ_ONLY)的数据能透过I-Code和D-Code总线读取, 不能写入。
  • 指令安全库区(SLIB_INSTRUCTION)内的程序代码仅能被MCU透过I-Code总线抓取指令(仅能被执行), 不能透过D-Code总线以读取数据的方式读取(包含ISP/ICP/调试模式以及从内部RAM启动的程序), 以读取数据的方式去访问SLIB_INSTRUCTION时, 读到的数值全都是0xFF。
  • 安全库区的程序代码及数据, 除非输入正确的密码, 否则无法被擦除。在密码不正确时, 对安全库区执行写入或擦除, 将会在FLASH_STS寄存器的EPPERR位置"1"提出警告。
  • 终端用户执行主闪存的整片擦除时, 安全库区的程序代码及数据不会被擦除。
  • 当安全库区的保护功能被启动后, 可以透过在SLIB_PWD_CLR寄存器写入先前设置的密码来解除保护功能。解除安全库区的保护时, 芯片将会执行主闪存的整片擦除(包含安全库区的内容)。因此即使软件方案商设置的密码被泄漏,也不会有程序代码外泄的疑虑。

AN0183_AT32F402_405_Security_Library_Application_Note_ZH_V2.0.0.pdf (2.07 MB)

使用特权

评论回复
沙发
lajfda001| | 2023-11-2 08:53 | 只看该作者
这个是不是需要省掉安全芯片了?

使用特权

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

本版积分规则

14

主题

225

帖子

0

粉丝