搜索
bottom↓
回复: 16

为什么KE02的EEPROM进行读操作之后不能写?(已解决)

[复制链接]

出0入0汤圆

发表于 2014-5-15 10:40:52 | 显示全部楼层 |阅读模式
本帖最后由 浪里白条 于 2014-5-15 19:21 编辑

WriteEEPROM();
ReadEEPROM();
这样可以往EEPROM里写入数据,但是这样,EEPROM死活写不进去数据
ReadEEPROM();
WriteEEPROM();
还有,为什么我每次DEBUG的时候编译器都会把eeprom里的数据擦掉,我该在哪里进行设置?
--------------------------------------------------------------------------------------------------------------------------------
void WriteEEPROM()
{
        Error = FLASH1_Write(EEPROM_TDeviceData,&CMGS[8],0x10000000,11);  
        while (!DataWrittenFlg)
        {                                                   
                FLASH1_Main(EEPROM_TDeviceData);                                                
        }
        DataWrittenFlg = FALSE;
        if (FLASH1_GetOperationStatus(EEPROM_TDeviceData) == LDD_FLASH_FAILED)
                ;
        else
                ;
}

void ReadEEPROM()
{
        Error = FLASH1_Read(EEPROM_TDeviceData,0x10000000,&CMGS[8],11);    /* Start reading from the flash memory */
        do {
                FLASH1_Main(EEPROM_TDeviceData);
                OpStatus = FLASH1_GetOperationStatus(EEPROM_TDeviceData);
        } while (!((OpStatus == LDD_FLASH_IDLE) | (OpStatus == LDD_FLASH_FAILED)));
}

-------------------------------------------------------------------------------------------

出0入0汤圆

发表于 2014-5-15 11:57:02 | 显示全部楼层
好像KE02的EEPROM也是用Flash模拟的,所以我知道,每次你下载程序的时候,下载器会执行擦除Flash块,所以你的EEPROM数据全部被擦掉了!至于读写那块,我没试过!希望对你有帮助!

出0入0汤圆

 楼主| 发表于 2014-5-15 14:08:09 | 显示全部楼层
版主,求解答、。

出0入0汤圆

发表于 2014-5-15 17:04:47 | 显示全部楼层
wangpengcheng 发表于 2014-5-15 11:57
好像KE02的EEPROM也是用Flash模拟的,所以我知道,每次你下载程序的时候,下载器会执行擦除Flash块,所以你 ...

KE02是有内置的EEPROM的。

出0入0汤圆

发表于 2014-5-15 17:09:17 | 显示全部楼层
我记得,KE02的EEPROM如果是有数据的,在写之前需要先擦掉才可以写的。
所以楼主你后面写的地址里面之前有没有数据呢?

出0入0汤圆

发表于 2014-5-15 17:34:28 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-5-15 17:04
KE02是有内置的EEPROM的。


是真EEPROM吗?不是那种Flex的?

出0入0汤圆

发表于 2014-5-15 17:38:32 | 显示全部楼层
wangpengcheng 发表于 2014-5-15 17:34
是真EEPROM吗?不是那种Flex的?

嗯啊,是个独立的地址,和flash是分开的,不需要你像K系列那样,还要自己去分区然后再搞。

出0入0汤圆

发表于 2014-5-15 17:39:22 | 显示全部楼层
楼主你好,经过确认,每次你debug的时候,芯片都会被mass erase,所以呢,所有的flash,包括eeprom都被擦掉了,KE就这个特点。

出0入0汤圆

 楼主| 发表于 2014-5-15 19:20:13 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-5-15 17:39
楼主你好,经过确认,每次你debug的时候,芯片都会被mass erase,所以呢,所有的flash,包括eeprom都被擦掉 ...

谢谢你的回复,读写问题已经解决。

出0入0汤圆

发表于 2014-5-16 08:48:03 | 显示全部楼层
浪里白条 发表于 2014-5-15 19:20
谢谢你的回复,读写问题已经解决。

能否把解决方法分享一下?

出0入0汤圆

发表于 2014-5-16 08:48:52 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-5-15 17:38
嗯啊,是个独立的地址,和flash是分开的,不需要你像K系列那样,还要自己去分区然后再搞。
...

我知道不用配,呵呵,我是想说是否会有占用Flash空间?

出0入0汤圆

发表于 2014-5-16 09:16:47 | 显示全部楼层
wangpengcheng 发表于 2014-5-16 08:48
我知道不用配,呵呵,我是想说是否会有占用Flash空间?


你看,eeprom的地址完全独立于flash,所以,eeprom不占用flash空间哦。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-5-16 09:19:25 | 显示全部楼层
浪里白条 发表于 2014-5-15 19:20
谢谢你的回复,读写问题已经解决。

你是说先读再写不行吗?
我这边试了都是可以的恩。

出0入0汤圆

发表于 2014-5-22 22:17:28 | 显示全部楼层
读EEPROM不用这么,就像读内部RAM一样的,定义一个数组,指向就可以了,内部EEPROM非常不错

出0入0汤圆

发表于 2014-6-13 15:30:43 | 显示全部楼层
楼主不好意思,以前回复有点出入。
其实是可以烧写的时候不擦掉EEPROM的,如果你不选择mass erase的话,而是选择sector erase,那么eeprom的数据还会照样存在,配置如下图:
这个是keil下的JLINK烧写界面:


现在补充下这个回答。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-6-13 15:35:12 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-6-13 15:30
楼主不好意思,以前回复有点出入。
其实是可以烧写的时候不擦掉EEPROM的,如果你不选择mass erase的话,而 ...

感谢版主对问题的补充,这么久了都还记得这个问题,必须要赞一个。

出0入0汤圆

发表于 2014-6-13 15:42:07 | 显示全部楼层
浪里白条 发表于 2014-6-13 15:35
感谢版主对问题的补充,这么久了都还记得这个问题,必须要赞一个。


呵呵,不客气。
我们在回答问题的时候还会留意之前的问题,如果发现有更好的办法,会分享出来给你们的。
这样其实也方便了后面遇到同样问题的网友。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 17:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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