我擦除的起始位0x1060
使用的段擦除,文档上面说是1kb。然后是13c0-13ff是校验位。
我把起始位移到0xFC0,擦除不成功。使用1060擦除一段,程序异常无法启动,一直在low_level_init.c中运行,tlv不通过。请问这个flash读写应该如何操作。
Susan Yang:
Flash memory has n segments of main memory and one segment of information memory
也就是说information memory只有一段,段是flash擦除的最小单位,从0x1060的地址开始擦除可能会出现异常
user5322468:
回复 Susan Yang:
那我应该如何解决这个问题,我现在想使用主flash,最后 面0xffdc,之前睁1kb的大小来使用,但是不知道使用哪个擦除函数,FLASH_massErase使用这个是主擦除,但是文档上面
This function erases all the flash memory banks. For devices likeMSP430i204x, this API erases main memory and information flash memory if the FLASH_unlockInfo API was previously executed(otherwise the information flash is not erased). Also note that erasing information flash memory in the MSP430i204x impacts the TLV calibration constants located at the information memory.
擦除主的时候不能使用flash_unlockinfo ?那flash被其他地方使用怎么办?
您觉得我上述的办法,可以解决吗?还是说有其他更好的解决办法。我现在因为TLV被擦除,导致无法调试,有办法恢复吗。
灰小子:
回复 user5322468:
先编译一下程序,在生成的代码里会个.map文件,里面会显示使用了那些flash,哪些没使用。
然后就可以回头修改代码,找个未使用的flash段来擦除和写flash。
user5322468:
回复 灰小子:
请教下,在infoflash中里面13c0-13ff是校验位,有木有电压的校验,这个info中分别是哪些校验。我现在i2041采集电压的时候每个片子的参考值不一样,文档上面是,1146到1170,中值是1158.最大输出值 7FFFFF
我现在输入500mv,我用1158算电压,有3-4mv的误差。我是用7FFFFF/1158
灰小子:
回复 user5322468:
有的。你看数据手册里6.12Device Descriptor部分
www.ti.com/…/msp430i2041.pdf
user5322468:
回复 灰小子:
1mv的电压怎么算 最大(7FFFFF)
8388607/1158=7244
这是1mv对应的sd24采样值。
我现在每块片子的值都不一样。
你给我看的数据表里面没有这个参考系数。文档上面是 1.1461.1581.17(V)
每天片子波动都不一样,我应该如何得到正确的参考值?