Part Number:TMS320F28375SOther Parts Discussed in Thread:C2000WARE, UNIFLASH
看了c2000的例程,只是把内存分为两个空间,然后对这两个空间进行加密,有什么办法可以直接对整个程序进行加密,程序需要烧写到flash中。
Yale Li:
https://e2echina.ti.com/blogs_/b/the_process/posts/dcsm
,
?? ?:
是否有库函数的教程,我在c2000中找到了例程,但是没有到有详细的教程介绍
,
Yale Li:
有关DCSM的教程,可以看下这个页面:
https://dev.ti.com/tirex/content/c2000_academy_2_03_00_43_all/modules/c2000_security_safety/c2000_functional_safety.html
其实我之前发的那个中文链接,总结的也非常到位。
详细的只能通过TRM来学习:spruhx5g_TMS320F2837xS Microcontrollers Technical Reference Manual (Rev. G)第145页3.13 Dual Code Security Module (DCSM)
例程就是在C2000Ware中的:C:\ti\c2000\C2000Ware_5_00_00_00\driverlib\f2837xs\examples\cpu1\dcsm
没有配置DCSM的库函数。配置就是通过写相应的OTP以及操作相关的寄存器来完成的。这一部分的内容并不多。读完TRM了解了工作原理之后你肯定就会使用了。
UniFlash也可以配置:
(从截图的部分往下翻,都是配置DCSM的)
,
?? ?:
感谢您的解答,是否有uniflash针对dcsm的介绍?
,
Yale Li:
没有。
读完TRM中的DCSM部分,了解了工作原理之后,自然就会配置了。
,
?? ?:
我在debug config中对Z1-GRABRAM和Z1-GRABSECT进行数据写入,但是烧写完成后读DCSM中寄存器的值还是没变化,但是写入的密码已经发生了变化,请问这是什么情况
,
?? ?:
我刚刚在使用uniflash后,输入密码无法解锁,提示
Error connecting to the target: (Error -1156 @ 0x0) Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device. (Emulation package 9.12.0.00150)
是否需要更改boot模式,当前为获取模式
,
Yale Li:
?? ? said:但是烧写完成后读DCSM中寄存器的值还是没变化,但是写入的密码已经发生了变化,请问这是什么情况
从第二张图片来看密码已经写入成功了。配置DCSM实际上配置的是OTP(OneTimeProgrammed) FLASH,只能由1写为0;这些寄存器就是读密码、PMF(PasswordMatchFlow)、以及通过GUI写密码时需要用到的中间寄存器;
?? ? said:是否需要更改boot模式,当前为获取模式
配置了DCSM之后再连接仿真,需要将boot模式改为等待引导模式。