This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430x2xx Family User's Guide对Flash一章中的SegmentA说明有误!?

Other Parts Discussed in Thread: MSP430G2553

我最近正在调试和使用MSP430G2553芯片,调试到Flash的读写时,遇到如下两个问题:

 第一个问题:

1,我想把自己校准的DCO几个常用时钟,也放入InfoA段Flash未使用到的单元中,以便日后直接使用。可是,

在我配置写Flash的InfoA段时,按照: 说明,清除LOCKA位后,(部分配置代码如下)

FCTL1 = FWKEY + ERASE; // 段擦除模式
FCTL3 = FWKEY; // 解锁                                       这样 根本无法擦除和写入InformationA中。

相反,在初始化时,我先把LOCKA置位,即相关配置程序代码如下:

FCTL1 = FWKEY + ERASE; // 段擦除模式
FCTL3 = FWKEY+LOCKA; // 解锁                          后,可以擦除InformationA了,而且可以正常写入了!!!!

请问专家,这是什么情况?

第二个问题:

2,除了InfoA ,其他的主Flash和InfoB\C\D,第二次烧入程序后,都自动将上一次写入Flash中的数据擦除吗?

  • Jingbing Wang,

    问题1:The state of the LOCKA bit is toggled when a 1 is written to it. Writing a 0 to LOCKA has no effect. 也就是LOCKA每写入一次1,其状态翻转一次。如果此时是锁着的,写入LOCKA则解锁;再写入一次,则锁着。写入0,没有任何意义。

    问题2:编译器有对应选项的。CCS为:Properties->Debug0->MSP430 Properties, 如下图所示:


  • 问题2: IAR为:Options, 你可以选择是否擦除information memory


  • 第二个问题

    那可以记得把infoA中所有的校准数据都备份吆,否则许多厂家数据就没了。

  • 注意Info信息段分A,B两端,每次是批量写A或B,好像不能单独修改某个字节吧,如果修改个别的字节就只能开内存的缓冲了。