打印
[应用方案]

新唐N76E003关于FLASH当eeprom重大问题

[复制链接]
楼主: 尛舞icc
手机看帖
扫描二维码
随时随地手机跟帖
21
尛舞icc|  楼主 | 2019-4-24 08:10 | 只看该作者 回帖奖励 |倒序浏览
qiangtech 发表于 2019-4-16 16:55
N76E003是用的FLASH 模拟的EEPROM,你存储的地址应该大于程序的长度。而且,官方例程中,在写FLASH的时候, ...

code少用  这个我知道   但是那个flash存储的 函数绝对有问题  官方的代码啊    也不能用    这算什么啊

使用特权

评论回复
22
尛舞icc|  楼主 | 2019-4-24 08:12 | 只看该作者
pigluffy 发表于 2019-4-20 00:58
我有想到一個可能性,就是你的code size已經超過eeprom的起始位址;

如你eeprom起始位置在0x3800,但是你 ...

没超啊   这个写程序还是知道的    12K的代码     地址也看过没超的    用的是4700以后的地址存的

使用特权

评论回复
23
lomo1316| | 2019-4-24 08:59 | 只看该作者
尛舞icc 发表于 2019-4-24 08:04
void eeprom_write(UINT16 u16_addr,UINT8 u8_data)
{
        UINT8 looptmp=0,u8_addrl_r;

看你代码,感觉有些问题的,我来说一下吧,
1、这个函数是按字节保存的,FLASH模拟E2PROM,不同于真正的E2PROM,不能按字节擦除,所以改写一个字节,也要擦除一页数据,这时就要在RAM中备份该页不需要改写的数据,然后再擦除整页,再将备份的数据以及要改写的字节写入到该页FLASH中。如果有多个数据需要改写,最好不要用这种按字节保存的函数,要自己写一个按块保存的函数,这样多个变量保存也只需要擦写一次,减少擦写次数。
2、你现在选的备份XRAM区域是0x80~0xFF,建议选到0x280~0x2FF,如果你定义XRAM变量很多,超过0x80,可能会导致程序异常。当然,如果你超过了0x280个XRAM区域变量,一样会有问题。要限定自己的XRAM区域的变量个数。
3、看一下数据手册,擦写FLASH的时候,需不需关中断,这个我有点忘了。

总之,要搞清楚原理,不要迷信官方例程,谁也不能保证没有问题。


使用特权

评论回复
24
ayb_ice| | 2019-4-24 09:02 | 只看该作者
尛舞icc 发表于 2019-4-24 08:08
也许吧     但这个芯片确实存在这个问题

新唐是个正规大厂,而且做51很多年了,不可能连这点东西都搞不定,不要老是怀疑别人,要多怀疑自己

使用特权

评论回复
25
chongdongchen| | 2019-4-24 10:28 | 只看该作者
是的,换成其他案例也一样,不要老是怀疑别人,要多怀疑自己。

使用特权

评论回复
26
pigluffy| | 2019-4-25 00:32 | 只看该作者
尛舞icc 发表于 2019-4-24 08:12
没超啊   这个写程序还是知道的    12K的代码     地址也看过没超的    用的是4700以后的地址存的 ...

保存數據的地址使用0x4700? N76e003 code size 最多就0x4800 -1 =>0x47FF也就是18k;

如果你存的資料超過0x47FF -0x4700 => 0xFF,也就是超過0xFF會有問題

使用特权

评论回复
27
捉虫天师| | 2019-4-25 13:29 | 只看该作者
跑官方的例子也有问题?

使用特权

评论回复
28
deadtime| | 2019-4-26 19:31 | 只看该作者
仔细看下手册上说的要怎么用

使用特权

评论回复
29
18357164389| | 2019-5-20 09:55 | 只看该作者
这个芯片的存储我已经解决了,可以下载我的例程http://dl.21ic.com/download/flash-261588.html

使用特权

评论回复
30
jiangshaoling| | 2019-5-29 14:16 | 只看该作者
需要FAE解决可以找我,帮忙处理新唐单片机 15323794243微信同号

使用特权

评论回复
31
internally| | 2019-5-29 20:16 | 只看该作者
应该是哪里没有配置好导致的,正常情况下应用不会有这种问题

使用特权

评论回复
32
imshirt| | 2020-7-4 14:04 | 只看该作者
楼主是个**,鉴定完毕,完全不懂单片机开发,千万不要找他开发案子,就是一垃圾!

使用特权

评论回复
33
imshirt| | 2020-7-4 14:08 | 只看该作者
尛舞icc 发表于 2019-4-24 08:10
code少用  这个我知道   但是那个flash存储的 函数绝对有问题  官方的代码啊    也不能用    这算什么啊 ...


楼主是个(UINT_8*)  S_B;鉴定完毕,完全不懂单片机开发,千万不要找他开发案子,就是一垃圾!

使用特权

评论回复
34
likeymh| | 2020-7-24 14:20 | 只看该作者
遇到同样的问题希望能解决

使用特权

评论回复
35
xiaoxiong1988| | 2020-7-25 16:19 | 只看该作者
尛舞icc 发表于 2019-4-24 08:09
不明白   这个芯片使用 还要考虑这么多    感觉选择这个芯片就是个错误

建议你别用指针去操作,单字节去搞 。一点问题都没有

使用特权

评论回复
36
尛舞icc|  楼主 | 2020-11-5 08:40 | 只看该作者
imshirt 发表于 2020-7-4 14:08
楼主是个(UINT_8*)  S_B;鉴定完毕,完全不懂单片机开发,千万不要找他开发案子,就是一垃圾! ...

你牛B     不能面对错误的人和公司   不是什么好鸟

使用特权

评论回复
37
qewnja| | 2020-11-18 15:09 | 只看该作者
感谢分享,正好需要,官方代码实在是太坑

使用特权

评论回复
38
无关c| | 2024-2-28 16:34 | 只看该作者
一开始擦写正常,擦写多几次,不超50次,就发现擦写不成功了,怎么回事?

使用特权

评论回复
39
dongnanxibei| | 2024-2-28 19:23 | 只看该作者
应该是可以的吧,我看BSP里有类似的例子。

使用特权

评论回复
40
LEDyyds| | 2024-2-28 20:24 | 只看该作者
应该是FLASH地址没规划好,写地址和代码区出现了重叠

使用特权

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

本版积分规则