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仍可以全部擦除 人家不是说了嘛:
“加密通过FOPT寄存器的SEC01:SEC00位来设置(0:0, 0:1, 1:1为加密)”
其实就是Flash读出被禁止了,就叫被加密了。 2楼正解, lileistone 发表于 2014-8-11 18:25
人家不是说了嘛:
“加密通过FOPT寄存器的SEC01:SEC00位来设置(0:0, 0:1, 1:1为加密)”
那复位的时候,程序还没运行到设置加密位的时候,不是加密不起作用吗?
BDM调试的时候,可以是停止代码执行的吧 怎么那么像AVR的熔丝位呢? 楼主你好,FOPT的数据是复位时从NVOPT那边拷贝过来,其实实际上实现加密是通过修改NVOPT那边的数据实现的。你仔细看看手册中关于NVOPT的配置情况,手册中肯定有讲的。 richyhuang 发表于 2014-8-11 21:14
那复位的时候,程序还没运行到设置加密位的时候,不是加密不起作用吗?
BDM调试的时候,可以是停止代码执 ...
那几个bit设置好了之后就存在Flash中了,掉电不丢失的,上电复位的时候会拷贝到Flash相关控制器相关寄存器的那些位,先于你的代码启动之前就执行了。
另外这里说“设置”的意思不是你的代码要手动写个什么值进去,而是你写中断向量表的时候就写好(定义好常数数组),直接存在Flash里。用户程序不需要操心这些事……
以上经验来自Kinetis系列控制器,但我猜Freescale多个芯片应该做法是通用的。如果有错误麻烦Freescale Support同志更正一下…… richyhuang 发表于 2014-8-11 21:14
那复位的时候,程序还没运行到设置加密位的时候,不是加密不起作用吗?
BDM调试的时候,可以是停止代码执 ...
5楼说像AVR的熔丝位,其实这就是Freescale的熔丝位。 FSL_TICS_ZJJ 发表于 2014-8-12 09:56
楼主你好,FOPT的数据是复位时从NVOPT那边拷贝过来,其实实际上实现加密是通过修改NVOPT那边的数据实现的。 ...
谢谢,英文的资料看的太累的,中文的又写的太简单了,所以没弄明白,我再好好看看资料 lileistone 发表于 2014-8-12 10:34
那几个bit设置好了之后就存在Flash中了,掉电不丢失的,上电复位的时候会拷贝到Flash相关控制器相关寄存 ...
明白了,这个拷贝过程是先于代码执行的,跟backkey的设置一样,谢谢 richyhuang 发表于 2014-8-12 11:00
谢谢,英文的资料看的太累的,中文的又写的太简单了,所以没弄明白,我再好好看看资料 ...
英文的看多了其实也没那么难懂,反而比中文更加明白。
FSL_TICS_ZJJ 发表于 2014-8-12 14:20
英文的看多了其实也没那么难懂,反而比中文更加明白。
那是因为你是美国人嘛{:lol:} richyhuang 发表于 2014-8-12 17:42
那是因为你是美国人嘛
因为很多的中文资料也是从英文翻译过来的。
所以英文比较原汁原味。
楼主如果还有技术问题,欢迎技术交流啊。
过来看高手回复的,不错 用单片机还没使过那些个加密技术。。。 mc9s12,单片机flash加密
页:
[1]