TI中文支持网
TI专业的中文技术问题搜集分享网站

DSP2808的FLASH分块用于程序运行和数据存储问题

你好,由于受到了DSP RAM和EEPROM空间的限制,我想将故障数据以2ms的写操作周期向FLASH中存储,我想问的是:

1、手册中提到FLASH只能写1000次,是这样少吗?那对于一个产品来说就寿命就不足啦!难道这个FLASH的设计初衷就是主要用于程序吗?

2、手册中提到FLASH的写周期是16bit-word 50us,我们的需求是一次写操作32word/2ms,这个FLASH的稳定性应该还是能保证的吧?我采用的是以>10S的不定周期一次性擦除数据sector,但是分周期写入大量数据的故障数据存储方式。

3、当前的FLASH空间分配也不能满足需求,所以我尽可能将FLASH中的用于程序的部分整合,这个有没有什么规则?

当前分配情况为:

SECTOR A 16K:.cinit;.pinit;.tableTri     : L = 9.101K

SECTOR B 16K:.econst;.switch;ramfuncs(自定义区域,内部程序拷贝到RAM运行):     L = 12.713K

SECTORC 16K、SECTORD 16K:.text     : L = 23.932K

 

我想将SECTOR A空出来用于存储故障数据,请问目前的这些内容是不是可以随意混合存储在任何的FLASH空间中,比如,是否A中的内容可以全部存储到B中,或者部分存储到D中??

或者,由于他们的编程操作次数不同,所以必须这样分组分块存储???

虽然知道各段包含的内容的描述,但是在具体程序中,并不是很明白是什么规则使得编译器将哪个函数或变量确切地分配到哪个块中。比如,我们的两个通讯函数commsci.obj和comEcan.obj就分配到了.switch中,我不理解,麻烦您帮忙讲解一下。

囧:

1. FLASH一般至少是1万次,但是你2ms一次的擦写,应该是不行了,只能放在RAM里跑或者放进EEPROM。

2.你可以这样定义,就可以 .tableTri  :> FLASHA|FLASHB|FLASHD

你好,由于受到了DSP RAM和EEPROM空间的限制,我想将故障数据以2ms的写操作周期向FLASH中存储,我想问的是:

1、手册中提到FLASH只能写1000次,是这样少吗?那对于一个产品来说就寿命就不足啦!难道这个FLASH的设计初衷就是主要用于程序吗?

2、手册中提到FLASH的写周期是16bit-word 50us,我们的需求是一次写操作32word/2ms,这个FLASH的稳定性应该还是能保证的吧?我采用的是以>10S的不定周期一次性擦除数据sector,但是分周期写入大量数据的故障数据存储方式。

3、当前的FLASH空间分配也不能满足需求,所以我尽可能将FLASH中的用于程序的部分整合,这个有没有什么规则?

当前分配情况为:

SECTOR A 16K:.cinit;.pinit;.tableTri     : L = 9.101K

SECTOR B 16K:.econst;.switch;ramfuncs(自定义区域,内部程序拷贝到RAM运行):     L = 12.713K

SECTORC 16K、SECTORD 16K:.text     : L = 23.932K

 

我想将SECTOR A空出来用于存储故障数据,请问目前的这些内容是不是可以随意混合存储在任何的FLASH空间中,比如,是否A中的内容可以全部存储到B中,或者部分存储到D中??

或者,由于他们的编程操作次数不同,所以必须这样分组分块存储???

虽然知道各段包含的内容的描述,但是在具体程序中,并不是很明白是什么规则使得编译器将哪个函数或变量确切地分配到哪个块中。比如,我们的两个通讯函数commsci.obj和comEcan.obj就分配到了.switch中,我不理解,麻烦您帮忙讲解一下。

Eric Ma:

1在手册中的6.12节中有数据 flash的寿命是50000次擦写。不知道你的1000是从哪里来,不可能只有1000次。

2擦除一个扇区根据6.12的参数。只要操作正确,flash不会有什么问题。

3. 可以把地址相连的flash区域分割和合并,前提是必须地址是连续的。比如原来flashC和flashD是分开的,可以将它们合并成flashCD,也可以拆分flashC1, FLASHC2.

这个论坛中有很多帖子谈到CMD的用法,你自己搜一下。

Eric

你好,由于受到了DSP RAM和EEPROM空间的限制,我想将故障数据以2ms的写操作周期向FLASH中存储,我想问的是:

1、手册中提到FLASH只能写1000次,是这样少吗?那对于一个产品来说就寿命就不足啦!难道这个FLASH的设计初衷就是主要用于程序吗?

2、手册中提到FLASH的写周期是16bit-word 50us,我们的需求是一次写操作32word/2ms,这个FLASH的稳定性应该还是能保证的吧?我采用的是以>10S的不定周期一次性擦除数据sector,但是分周期写入大量数据的故障数据存储方式。

3、当前的FLASH空间分配也不能满足需求,所以我尽可能将FLASH中的用于程序的部分整合,这个有没有什么规则?

当前分配情况为:

SECTOR A 16K:.cinit;.pinit;.tableTri     : L = 9.101K

SECTOR B 16K:.econst;.switch;ramfuncs(自定义区域,内部程序拷贝到RAM运行):     L = 12.713K

SECTORC 16K、SECTORD 16K:.text     : L = 23.932K

 

我想将SECTOR A空出来用于存储故障数据,请问目前的这些内容是不是可以随意混合存储在任何的FLASH空间中,比如,是否A中的内容可以全部存储到B中,或者部分存储到D中??

或者,由于他们的编程操作次数不同,所以必须这样分组分块存储???

虽然知道各段包含的内容的描述,但是在具体程序中,并不是很明白是什么规则使得编译器将哪个函数或变量确切地分配到哪个块中。比如,我们的两个通讯函数commsci.obj和comEcan.obj就分配到了.switch中,我不理解,麻烦您帮忙讲解一下。

哟:

回复 囧:

我是故障时才擦除一次这个sector,所以时间间隔通常很长,但是写周期是每2ms写32个word。

请问如果按照 .tableTri :> FLASHA|FLASHB|FLASHD 来定义,会不会有可能.tableTri被拆分到多个FLASH中存储??如果拆分开了,是不是也不会出错?

你好,由于受到了DSP RAM和EEPROM空间的限制,我想将故障数据以2ms的写操作周期向FLASH中存储,我想问的是:

1、手册中提到FLASH只能写1000次,是这样少吗?那对于一个产品来说就寿命就不足啦!难道这个FLASH的设计初衷就是主要用于程序吗?

2、手册中提到FLASH的写周期是16bit-word 50us,我们的需求是一次写操作32word/2ms,这个FLASH的稳定性应该还是能保证的吧?我采用的是以>10S的不定周期一次性擦除数据sector,但是分周期写入大量数据的故障数据存储方式。

3、当前的FLASH空间分配也不能满足需求,所以我尽可能将FLASH中的用于程序的部分整合,这个有没有什么规则?

当前分配情况为:

SECTOR A 16K:.cinit;.pinit;.tableTri     : L = 9.101K

SECTOR B 16K:.econst;.switch;ramfuncs(自定义区域,内部程序拷贝到RAM运行):     L = 12.713K

SECTORC 16K、SECTORD 16K:.text     : L = 23.932K

 

我想将SECTOR A空出来用于存储故障数据,请问目前的这些内容是不是可以随意混合存储在任何的FLASH空间中,比如,是否A中的内容可以全部存储到B中,或者部分存储到D中??

或者,由于他们的编程操作次数不同,所以必须这样分组分块存储???

虽然知道各段包含的内容的描述,但是在具体程序中,并不是很明白是什么规则使得编译器将哪个函数或变量确切地分配到哪个块中。比如,我们的两个通讯函数commsci.obj和comEcan.obj就分配到了.switch中,我不理解,麻烦您帮忙讲解一下。

哟:

回复 Eric Ma:

1、我也是查看的6.12中的数据,是2808的,给出的寿命是1000次

3、我也明白FLASH区域可以分割和合并,只是想确认一下,

.cinit;.pinit;.tableTri;.econst;.switch;ramfuncs;.text  如果通过使用一个FLASH来分割分配的话,在空间足够的前提下,基于FLASH擦除操作的最小单位是SECTOR,这是不是会有任何影响?也就是说,是不是可以确定以上所有块都是仅在烧写程序时单次擦除写入操作的,并不会发生有的块需要多些擦除,从而在擦除过程中影响到了其他块???

你好,由于受到了DSP RAM和EEPROM空间的限制,我想将故障数据以2ms的写操作周期向FLASH中存储,我想问的是:

1、手册中提到FLASH只能写1000次,是这样少吗?那对于一个产品来说就寿命就不足啦!难道这个FLASH的设计初衷就是主要用于程序吗?

2、手册中提到FLASH的写周期是16bit-word 50us,我们的需求是一次写操作32word/2ms,这个FLASH的稳定性应该还是能保证的吧?我采用的是以>10S的不定周期一次性擦除数据sector,但是分周期写入大量数据的故障数据存储方式。

3、当前的FLASH空间分配也不能满足需求,所以我尽可能将FLASH中的用于程序的部分整合,这个有没有什么规则?

当前分配情况为:

SECTOR A 16K:.cinit;.pinit;.tableTri     : L = 9.101K

SECTOR B 16K:.econst;.switch;ramfuncs(自定义区域,内部程序拷贝到RAM运行):     L = 12.713K

SECTORC 16K、SECTORD 16K:.text     : L = 23.932K

 

我想将SECTOR A空出来用于存储故障数据,请问目前的这些内容是不是可以随意混合存储在任何的FLASH空间中,比如,是否A中的内容可以全部存储到B中,或者部分存储到D中??

或者,由于他们的编程操作次数不同,所以必须这样分组分块存储???

虽然知道各段包含的内容的描述,但是在具体程序中,并不是很明白是什么规则使得编译器将哪个函数或变量确切地分配到哪个块中。比如,我们的两个通讯函数commsci.obj和comEcan.obj就分配到了.switch中,我不理解,麻烦您帮忙讲解一下。

哟:

回复 Eric Ma:

明白你的意思了,非常感谢

你好,由于受到了DSP RAM和EEPROM空间的限制,我想将故障数据以2ms的写操作周期向FLASH中存储,我想问的是:

1、手册中提到FLASH只能写1000次,是这样少吗?那对于一个产品来说就寿命就不足啦!难道这个FLASH的设计初衷就是主要用于程序吗?

2、手册中提到FLASH的写周期是16bit-word 50us,我们的需求是一次写操作32word/2ms,这个FLASH的稳定性应该还是能保证的吧?我采用的是以>10S的不定周期一次性擦除数据sector,但是分周期写入大量数据的故障数据存储方式。

3、当前的FLASH空间分配也不能满足需求,所以我尽可能将FLASH中的用于程序的部分整合,这个有没有什么规则?

当前分配情况为:

SECTOR A 16K:.cinit;.pinit;.tableTri     : L = 9.101K

SECTOR B 16K:.econst;.switch;ramfuncs(自定义区域,内部程序拷贝到RAM运行):     L = 12.713K

SECTORC 16K、SECTORD 16K:.text     : L = 23.932K

 

我想将SECTOR A空出来用于存储故障数据,请问目前的这些内容是不是可以随意混合存储在任何的FLASH空间中,比如,是否A中的内容可以全部存储到B中,或者部分存储到D中??

或者,由于他们的编程操作次数不同,所以必须这样分组分块存储???

虽然知道各段包含的内容的描述,但是在具体程序中,并不是很明白是什么规则使得编译器将哪个函数或变量确切地分配到哪个块中。比如,我们的两个通讯函数commsci.obj和comEcan.obj就分配到了.switch中,我不理解,麻烦您帮忙讲解一下。

Xiao Dong:

这种应用,建议上FRAM。

赞(0)
未经允许不得转载:TI中文支持网 » DSP2808的FLASH分块用于程序运行和数据存储问题
分享到: 更多 (0)