迪文科技论坛

 找回密码
 立即注册
搜索
查看: 2911|回复: 25

【提问】合格数量和不合格数量,如何掉电保存?

[复制链接]

15

主题

155

回帖

3489

积分

论坛元老

Rank: 8Rank: 8

积分
3489
发表于 2021-8-9 10:55:18 | 显示全部楼层 |阅读模式
DMG10600T070_A5WTC ,系统就一个屏。没有其他了。

现在,合格数量和不合格数量,一直在变化,若变化一次,保存一次,
我怕FLASH的寿命不行,

请问:
1、 FLASH的寿命是多少次?
2、 FLASH在CPU内部的GUI内吗?
3、 掉电的瞬间,系统GUI内核能自动保存吗?不能自动保存,掉电瞬间能通知KEIL程序,让KEIL程序发指令保存吗?

回复

使用道具 举报

0

主题

655

回帖

7546

积分

论坛元老

Rank: 8Rank: 8

积分
7546
发表于 2021-8-9 11:12:51 | 显示全部楼层
楼主:1.Flash的寿命是10万次
          2.Nor Flash在芯片内部,不在GUI核。
          3.掉电的瞬间,GUI不会自动保存,可以写程序定时保存。
沧海横流,方显英雄本色。
回复

使用道具 举报

4

主题

309

回帖

2194

积分

金牌会员

Rank: 6Rank: 6

积分
2194
发表于 2021-8-9 14:28:19 | 显示全部楼层
可以考虑外接一个延时电路(电容器)挂在屏上,可以临时供电1秒以上就行,接到断电信号IO口状态改变执行断电。
回复

使用道具 举报

15

主题

155

回帖

3489

积分

论坛元老

Rank: 8Rank: 8

积分
3489
 楼主| 发表于 2021-8-9 16:38:44 | 显示全部楼层
Lreamy 发表于 2021-8-9 11:12
楼主:1.Flash的寿命是10万次
          2.Nor Flash在芯片内部,不在GUI核。
          3.掉电的瞬间,GUI ...

每个产品生产时间5秒,
就是合格和不合格值,每5秒变化一次,
每5秒保存一次,我怕FLASH寿命有问题。

若10分钟保存一次,这个时间内的值会丢失。

我以前开发的产品,都有掉电检测电路,掉电瞬间保存一次。

我不知道迪文,是怎么解决这个问题的。   这个问题是一个基本问题。
回复

使用道具 举报

0

主题

655

回帖

7546

积分

论坛元老

Rank: 8Rank: 8

积分
7546
发表于 2021-8-9 16:57:46 | 显示全部楼层
hzpyl 发表于 2021-8-9 16:38
每个产品生产时间5秒,
就是合格和不合格值,每5秒变化一次,
每5秒保存一次,我怕FLASH寿命有问题。

见楼上,可以加一个延时电路,或者整个产品加一个ups
沧海横流,方显英雄本色。
回复

使用道具 举报

1

主题

18

回帖

479

积分

中级会员

Rank: 3Rank: 3

积分
479
发表于 2021-8-9 21:30:53 | 显示全部楼层
不是可以做均衡擦写吗,迪文的Nor Flash是一个扇区一个扇区去擦除的吗,如果分扇区那么扇区是好大。,,,,就是改变就写,当这块内存快写到极限寿命的时候就偏移内存写新的
回复

使用道具 举报

15

主题

155

回帖

3489

积分

论坛元老

Rank: 8Rank: 8

积分
3489
 楼主| 发表于 2021-8-10 08:41:31 | 显示全部楼层
请问迪文,08写Nor Flash是每次都擦除整个扇区,再写吗?

因为很多另外厂家的单片机,为了提高擦除寿命,会用一次擦除,多次写的方法。
譬如,我们经常变化的参数为5个,  0x01,0x02,0x03,0x04,0x05, 0xA5,0x5A (A55A为结束标志)
每次保存,都在前一次的后面,保存满后,擦除一次就够了。
这样,2K扇区,可以保存292次,寿命提高很多。
回复

使用道具 举报

0

主题

655

回帖

7546

积分

论坛元老

Rank: 8Rank: 8

积分
7546
发表于 2021-8-10 09:13:25 | 显示全部楼层
hzpyl 发表于 2021-8-10 08:41
请问迪文,08写Nor Flash是每次都擦除整个扇区,再写吗?

因为很多另外厂家的单片机,为了提高擦除寿命, ...

Nor Flash不是每次都擦除整个扇区的,只是针对你写入的地址,为了提高擦除寿命,可以自行分区,对某一块Flash多次擦除之后,再对下一块进行擦除。
沧海横流,方显英雄本色。
回复

使用道具 举报

15

主题

155

回帖

3489

积分

论坛元老

Rank: 8Rank: 8

积分
3489
 楼主| 发表于 2021-8-10 10:03:25 | 显示全部楼层
我前面可能没有表达清楚。
譬如,我用2个扇区保存2类数据:
#define        FLASH_EEPROM1                        0x001000
#define        FLASH_EEPROM2                        0x002000

我保存FLASH_EEPROM1时,是每次都擦除FLASH_EEPROM1这个扇区,再写吗?

迪文有详细的资料吗?

回复

使用道具 举报

0

主题

655

回帖

7546

积分

论坛元老

Rank: 8Rank: 8

积分
7546
发表于 2021-8-10 10:16:44 | 显示全部楼层
hzpyl 发表于 2021-8-10 10:03
我前面可能没有表达清楚。
譬如,我用2个扇区保存2类数据:
#define        FLASH_EEPROM1                 ...

我可能也没有说清楚,看你的数据长度是多少,从001000开始往后占多少空间,每次实际上只擦除了这一段空间而不是整个Flash,当这一段空间的寿命用完了之后,可以使用其他的空间。
沧海横流,方显英雄本色。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-25 19:22 , Processed in 0.121239 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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