查看: 3152|回复: 4

[已解决] FlASH 问题(已解决)

[复制链接]

该用户从未签到

25

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
302
最后登录
1970-1-1
发表于 2013-6-19 16:53:22 | 显示全部楼层 |阅读模式
关于kinetic(有FLEXNVM的) FLASH的几个问题请教:
1.对于flash IFR不太懂,program flash IFR 和Data flash IFR的地址是重复的呀,都是:0x00-0xff,program flash IFR的64B 只能写一次,有什么特别的用处吗?
2.芯片ID,就是在SIM寄存器SIM_UID里面的128bit的注释说:reset load from Flash IFR,请问对应1问中的哪部分?
3.FLASH加密:初始后门密钥是从哪里获取请问?另外,请问有没有加密的例程代码?
4.FLASH的前1K是存储中断向量还有一些控制字段的,这个是如何保证不重叠的?因为我之前让程序在FLASH上运行,只要加入中断程序就跑飞一直不懂为什么,现在想想,有没可能是这个问题?
问题有点多,非常感谢回复!
我知道答案 目前已有3人回答
回复

使用道具 举报

该用户从未签到

1

主题

178

帖子

0

高级会员

Rank: 4

积分
825
最后登录
1970-1-1
发表于 2013-6-20 10:14:26 | 显示全部楼层

回复:FlASH 问题

 1.program flash IFR 和Data flash IFR都是独立于program flash或Data flash的存储区,所以它们的地址也是独立的,并且需要专门的读写命令才能访问,program flash IFR确实只能写一次,用户可以用来保存一些不会改变又不想被mass erase影响到的数据,比方说产品的序列号什么的。
2.你能告诉我你看的文档名字和版本吗?我手头上的没有这个注释
3.你是指Backdoor Comparison Key吧,它们在0x0_0400 - 0x0_0407的位置,一般不初始化的话全是0xFF,即mass erase后的状态。如果你要加密例程的话,可以参考Kineti_SC,直接改vector.h里面的宏定义就可以了,详见下图:
1.PNG
把FE改为FF就加密了。另外再flash loader里面要加个命令行参数:
2.PNG
4.你可以参考vector.c里对中断向量表的定义,并在link文件里把这个数组放在0x00000000起始的位置上就可以了。对于你说的只要加入中断程序就跑飞,我觉得原因有很多,比方说定义的中断程序没有映射到正确的中断源上,也有可能是编译器的问题。这个要具体问题具体分析。
 
希望我的回答对你有帮助
回复 支持 反对

使用道具 举报

该用户从未签到

25

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
302
最后登录
1970-1-1
 楼主| 发表于 2013-6-20 20:10:37 | 显示全部楼层

回复:FlASH 问题

非常感谢回复!
关于问题2:我看到的文档是Document Number: K10P64M72SF1RM;Rev. 1.1, Dec 2012,我手头还有K60的版本好像确实没有这句话。
问题3:就是说把FLASH 配置字段中的FSEC安全状态改变为加密对不对?但是我用的IDE是CW10.4,不知道你说的在IAR里面改命令行参数是在哪里,另外这个命令行参数是在哪里定义的呀?
问题4:我想映射应该是对的啊,因为我在RAM里面跑程序的时候就是可以的。我把映射的那个句子写在这:__vector_table[INT_DMA2] = (uint32)DMACh2ISR; 麻烦你帮我看看,我觉得我快要接近正确答案了,嘿嘿

 
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

178

帖子

0

高级会员

Rank: 4

积分
825
最后登录
1970-1-1
发表于 2013-6-21 12:48:48 | 显示全部楼层

RE:FlASH 问题(正解)

关于问题2:我看到的文档是Document Number: K10P64M72SF1RM;Rev. 1.1, Dec 2012,我手头还有K60的版本好像确实没有这句话。
-对的有这段话,原文是:Reset value loaded during System Reset from Flash IFR. 而IFR有一些reserved的区域,我个人理解是存放这些信息的地方。
0x00 – 0xBF 192 Reserved
问题3:就是说把FLASH 配置字段中的FSEC安全状态改变为加密对不对?但是我用的IDE是CW10.4,不知道你说的在IAR里面改命令行参数是在哪里,另外这个命令行参数是在哪里定义的呀?
CW 10.4和IAR不一样,不需要命令行参数,只需要修改类似vector.h里面的宏定义就可以了。
问题4:我想映射应该是对的啊,因为我在RAM里面跑程序的时候就是可以的。我把映射的那个句子写在这:__vector_table[INT_DMA2] = (uint32)DMACh2ISR;
这里__vector_table是定义在flash还是SRAM,一般的做法是直接把中断入口函数写好,不是在程序运行时动态修改,因为这种作法只对存放在SRAM中的中断向量表有效。
回复 支持 反对

使用道具 举报

该用户从未签到

25

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
302
最后登录
1970-1-1
 楼主| 发表于 2013-6-25 09:46:24 | 显示全部楼层

回复:FlASH 问题(已解决)

非常感谢!抱歉回复的有些晚了。
回复第 4 楼 于2013-06-21 12:48:48发表:
 
 
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-19 19:47 , Processed in 0.107991 second(s), 26 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表