你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STMF1加密后的FLASH代码怎么运行?

[复制链接]
s40742360 提问时间:2015-8-25 13:14 /
代码加密后写入FLASH,CPU从FLASH读出的代码都是加密的,怎么运行呢?
收藏 评论17 发布时间:2015-8-25 13:14

举报

17个回答
JackieLaura 回答时间:2015-8-25 16:25:39
没加密过,等大拿来分享经验。。。
stmcu.org.png
enjoyfreescal 回答时间:2015-8-25 16:27:53
所谓代码加密后写入flah是怎么一个原理?
党国特派员 回答时间:2015-8-26 08:16:59
首先要有一段没有加密的解密程序来读取flash,解密后再运行。
党国特派员 回答时间:2015-8-26 08:21:49
你为什么不用stm32本身的加密功能,要自己去加密代码呢? null.png null1.png null2.png null3.png null4.png
你好我好大家好! 回答时间:2015-8-26 08:59:04
顶顶                              
s40742360 回答时间:2015-8-26 11:23:33
党国特派员 发表于 2015-8-26 08:21
你为什么不用stm32本身的加密功能,要自己去加密代码呢?

1. STM32本身的加密流程是怎样的?
我主要关心的是代码加密后写入FLASH,不是RDP那些。

2. 还有,你说的“解密后再运行”怎么实现?是把解密后的代码拷贝到RAM运行么?
这样的话,加密代码在链接的时候应该定位到RAM,对吗?
如果是的话,RAM只有64KB,如果解密的代码本身已很大,RAM不光要存放解密后的代码,还要负责堆、栈、变量,RAM很可能出现不够用的情况。

谢谢关注
党国特派员 回答时间:2015-8-26 12:51:40
针对你说的定位问题,在你编译的时候就已经定位。
比如 我的程序编译的时候就定位在在RAM里0x20001000处。解密的时候把解密后的程序直接放在RAM 的0x20001000处就可以了,因此也不存在定位问题。
RAM太小,你就加大RAM...
s40742360 回答时间:2015-8-26 13:05:37
党国特派员 发表于 2015-8-26 12:51
针对你说的定位问题,在你编译的时候就已经定位。
比如 我的程序编译的时候就定位在在RAM里0x20001000处。 ...

明白,感谢。

再问一下STM32本身的加密是怎样实现的?
比如有没有这样的方式:系统存储器的BootLoader在写FLASH的时候就使用硬件加密了,然后在取指后,硬件解密后CPU再执行?
adlu 回答时间:2015-8-26 17:47:31
代码加密后写入FLASH,CPU从FLASH读出的代码都是加密的,怎么运行呢?

加密的目的是不让别人获取程序代码,或者获取了也不能使用。
很少像你说的,把代码加密后存入FLASH,然后CPU读取FLASH解密再放到RAM中运行。

加密的基本方式又两种,一是硬件加密,二是软件加密。
硬件加密:一般是烧断熔丝,或者锁死FLASH(TI的FLASH型DSP用这种),目的都是防止别人读取程序代码。
软件加密:一般是ID加密,或者使用专用芯片加密。软件加密的程序,别人即使读到了FLASH中的代码,复制到其他板子上,也是不能正常工作的。
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版