打印
[Kinetis]

K10关于flexNVM初始化及RTC初始化的问题。

[复制链接]
6053|32
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dongshan|  楼主 | 2013-11-13 10:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    flexNVM用作eeprom, 只想初始化一次。 于是移植了以前K40的代码,此段代码在k10上工作正常。但是到了K10上时,在调试时发现,只要芯片复位,总会初始化。也就是说SIM_FCFG1的DEPART位总是为0xf,即默认值。但是数据是写入成功的,读出来是正确的。这是怎么回事呢?


RTC初始化时也一样,只想初始化一次,于是我判断RTC_CR中的TCE位是否使能,RTC_CR寄存器是在VBAT域的,电池一直存在,为什么每一次芯片复位,TCE位总是为0? 在调用RTC_Init时,此位已经置1了,郁郁不得其解。

相关帖子

沙发
dongshan|  楼主 | 2013-11-13 10:37 | 只看该作者
麻烦版主及各位网友帮忙看一下吧。

使用特权

评论回复
板凳
FSL_TICS_ZJJ| | 2013-11-13 10:46 | 只看该作者
你好,请问你用的芯片的具体型号是多少?以及mask号。

使用特权

评论回复
地板
dongshan|  楼主 | 2013-11-13 10:49 | 只看该作者
型号是MK10DX256VLL7, mask是1N36B

使用特权

评论回复
5
FSL_TICS_ZJJ| | 2013-11-13 10:52 | 只看该作者
dongshan 发表于 2013-11-13 10:49
型号是MK10DX256VLL7, mask是1N36B

稍等,我看一下!你K40的代码移植过来,配置方面有没有一些改动?

使用特权

评论回复
6
dongshan|  楼主 | 2013-11-13 10:54 | 只看该作者
FSL_TICS_ZJJ 发表于 2013-11-13 10:52
稍等,我看一下!你K40的代码移植过来,配置方面有没有一些改动?

FlexNVM大小不一样,配置的大小变了。

使用特权

评论回复
7
FSL_TICS_ZJJ| | 2013-11-13 11:00 | 只看该作者
dongshan 发表于 2013-11-13 10:54
FlexNVM大小不一样,配置的大小变了。

这样吧,你把你的代码上传一下,我看一下!

使用特权

评论回复
8
dongshan|  楼主 | 2013-11-13 11:00 | 只看该作者
调用代码如下:

使用特权

评论回复
9
dongshan|  楼主 | 2013-11-13 11:00 | 只看该作者
好的,我马上传。

使用特权

评论回复
10
dongshan|  楼主 | 2013-11-13 11:04 | 只看该作者
传的是驱动文件,调用时就是一句,图片中也帖出。

Drv.rar

2.27 KB

使用特权

评论回复
11
dongshan|  楼主 | 2013-11-13 11:06 | 只看该作者
首先谢谢版主的支持,项目太大,有二万行左右,所以不能上传,望版主理解。如果需要我可以做一个测试工程传上来。

使用特权

评论回复
12
FSL_TICS_ZJJ| | 2013-11-13 11:16 | 只看该作者
dongshan 发表于 2013-11-13 11:06
首先谢谢版主的支持,项目太大,有二万行左右,所以不能上传,望版主理解。如果需要我可以做一个测试工程传 ...

就改了flash分配区域的那个数据是吗?其他没改?partition 内部没有改是吗?最好把你K40代码相关动掉的地方都说一下,便于我查找问题。

使用特权

评论回复
13
dongshan|  楼主 | 2013-11-13 11:23 | 只看该作者
FSL_TICS_ZJJ 发表于 2013-11-13 11:16
就改了flash分配区域的那个数据是吗?其他没改?partition 内部没有改是吗?最好把你K40代码相关动掉的地 ...

因为K40与K10的flashNVM大小不一样,所以就是更改了常数的定义。函数代码没有修改。

我的开发环境是keil, 会不会更keil有关呢

使用特权

评论回复
14
FSL_TICS_ZJJ| | 2013-11-13 11:32 | 只看该作者
dongshan 发表于 2013-11-13 11:23
因为K40与K10的flashNVM大小不一样,所以就是更改了常数的定义。函数代码没有修改。

我的开发环境是kei ...

我这边还没有K10的板子,那你EEPROM这块,除了每次复位后分配的问题,还有没有其他问题?你分配后,可以读写操作吗?

使用特权

评论回复
15
dongshan|  楼主 | 2013-11-13 12:01 | 只看该作者
FSL_TICS_ZJJ 发表于 2013-11-13 11:32
我这边还没有K10的板子,那你EEPROM这块,除了每次复位后分配的问题,还有没有其他问题?你分配后,可以 ...

分配后,读写正常的。

使用特权

评论回复
16
FSL_TICS_ZJJ| | 2013-11-13 16:49 | 只看该作者
dongshan 发表于 2013-11-13 12:01
分配后,读写正常的。

你在flexNVM中给EEPROM分16K以上的备份区试试呢。

使用特权

评论回复
17
dongshan|  楼主 | 2013-11-13 17:09 | 只看该作者
FSL_TICS_ZJJ 发表于 2013-11-13 16:49
你在flexNVM中给EEPROM分16K以上的备份区试试呢。

partition_flash(EEPROM_2K,DFLASH_SIZE_0);

基中DFLASH_SIZE_0就是说把所有的flexNVM都给eeprom作备份区了,K10有32K的flexNVM, 所以已经有32K作为备份区了。

使用特权

评论回复
18
FSL_TICS_ZJJ| | 2013-11-13 17:26 | 只看该作者
dongshan 发表于 2013-11-13 17:09
partition_flash(EEPROM_2K,DFLASH_SIZE_0);

基中DFLASH_SIZE_0就是说把所有的flexNVM都给eeprom作备份 ...

对,你说的对,我看错了,以为backup区被搞成0了。

使用特权

评论回复
19
FSL_TICS_ZJJ| | 2013-11-13 17:31 | 只看该作者
本帖最后由 FSL_TICS_ZJJ 于 2013-11-13 17:34 编辑

我看你的代码啊,前面的EEPROM_2K是0x03,然后,在分区中,FTFL_FCCOB4 = eeprom_size;即FTFL_FCCOB4=0x03,但是手册中要求FCCOB4[5:4]=11,所以程序中是不是应该是0x33呢?

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
dongshan + 2
20
dongshan|  楼主 | 2013-11-14 09:05 | 只看该作者
FSL_TICS_ZJJ 发表于 2013-11-13 17:31
我看你的代码啊,前面的EEPROM_2K是0x03,然后,在分区中,FTFL_FCCOB4 = eeprom_size;即FTFL_FCCOB4=0x03 ...

谢谢版主,正是你所说的原因, FCCOB4[5:4]的值不为11造成的错误。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

79

主题

1143

帖子

7

粉丝