richyhuang 发表于 2014-8-11 17:22:37

mc9s12的单片机是如何实现加密的(已解决)

本帖最后由 FSL_TICS_ZJJ 于 2014-9-11 13:07 编辑

看了资料上写的好简单,如何实现的,有没有详细点的例子

•加密后,FLASH和RAM被加密,无法读出
•直接页寄存器,高页寄存器和背景调试控制器仍可读出,未被加

•在加密的存储器中的程序可以访问所有的MCU资源
•从未被加密的存储器中的程序无法访问被加密的程序 (返回值全
为0)
•背景调试控制器也无法访问被加密的程序(返回值全为0)
•加密通过FOPT寄存器的SEC01:SEC00位来设置(0:0, 0:1, 1:1为
加密)
•复位时,FLASH中NVOPT的内容将会被拷贝到高页寄存器FOPT

•在对FLASH编程同时,对NVOPT地址也编入数据即可加密
•加密后,FLASH仍可以全部擦除

lileistone 发表于 2014-8-11 18:25:10

人家不是说了嘛:
“加密通过FOPT寄存器的SEC01:SEC00位来设置(0:0, 0:1, 1:1为加密)”

其实就是Flash读出被禁止了,就叫被加密了。

浪里白条 发表于 2014-8-11 20:22:52

2楼正解,

richyhuang 发表于 2014-8-11 21:14:49

lileistone 发表于 2014-8-11 18:25
人家不是说了嘛:
“加密通过FOPT寄存器的SEC01:SEC00位来设置(0:0, 0:1, 1:1为加密)”



那复位的时候,程序还没运行到设置加密位的时候,不是加密不起作用吗?

BDM调试的时候,可以是停止代码执行的吧

zhangchaoying 发表于 2014-8-11 23:13:19

怎么那么像AVR的熔丝位呢?

FSL_TICS_ZJJ 发表于 2014-8-12 09:56:20

楼主你好,FOPT的数据是复位时从NVOPT那边拷贝过来,其实实际上实现加密是通过修改NVOPT那边的数据实现的。你仔细看看手册中关于NVOPT的配置情况,手册中肯定有讲的。

lileistone 发表于 2014-8-12 10:34:32

richyhuang 发表于 2014-8-11 21:14
那复位的时候,程序还没运行到设置加密位的时候,不是加密不起作用吗?

BDM调试的时候,可以是停止代码执 ...

那几个bit设置好了之后就存在Flash中了,掉电不丢失的,上电复位的时候会拷贝到Flash相关控制器相关寄存器的那些位,先于你的代码启动之前就执行了。
另外这里说“设置”的意思不是你的代码要手动写个什么值进去,而是你写中断向量表的时候就写好(定义好常数数组),直接存在Flash里。用户程序不需要操心这些事……

以上经验来自Kinetis系列控制器,但我猜Freescale多个芯片应该做法是通用的。如果有错误麻烦Freescale Support同志更正一下……

lileistone 发表于 2014-8-12 10:35:33

richyhuang 发表于 2014-8-11 21:14
那复位的时候,程序还没运行到设置加密位的时候,不是加密不起作用吗?

BDM调试的时候,可以是停止代码执 ...

5楼说像AVR的熔丝位,其实这就是Freescale的熔丝位。

richyhuang 发表于 2014-8-12 11:00:37

FSL_TICS_ZJJ 发表于 2014-8-12 09:56
楼主你好,FOPT的数据是复位时从NVOPT那边拷贝过来,其实实际上实现加密是通过修改NVOPT那边的数据实现的。 ...

谢谢,英文的资料看的太累的,中文的又写的太简单了,所以没弄明白,我再好好看看资料

richyhuang 发表于 2014-8-12 11:01:56

lileistone 发表于 2014-8-12 10:34
那几个bit设置好了之后就存在Flash中了,掉电不丢失的,上电复位的时候会拷贝到Flash相关控制器相关寄存 ...

明白了,这个拷贝过程是先于代码执行的,跟backkey的设置一样,谢谢

FSL_TICS_ZJJ 发表于 2014-8-12 14:20:26

richyhuang 发表于 2014-8-12 11:00
谢谢,英文的资料看的太累的,中文的又写的太简单了,所以没弄明白,我再好好看看资料 ...

英文的看多了其实也没那么难懂,反而比中文更加明白。

richyhuang 发表于 2014-8-12 17:42:15

FSL_TICS_ZJJ 发表于 2014-8-12 14:20
英文的看多了其实也没那么难懂,反而比中文更加明白。

那是因为你是美国人嘛{:lol:}

FSL_TICS_ZJJ 发表于 2014-8-13 09:22:35

richyhuang 发表于 2014-8-12 17:42
那是因为你是美国人嘛

因为很多的中文资料也是从英文翻译过来的。
所以英文比较原汁原味。
楼主如果还有技术问题,欢迎技术交流啊。

jiang887786 发表于 2014-9-2 22:53:57

过来看高手回复的,不错

wanstrive 发表于 2014-9-2 23:02:57

用单片机还没使过那些个加密技术。。。

fengyunyu 发表于 2014-9-3 06:58:44

mc9s12,单片机flash加密
页: [1]
查看完整版本: mc9s12的单片机是如何实现加密的(已解决)