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.

MSP430F5系列,如何写入信息flash的A区

Other Parts Discussed in Thread: MSP430F5310

使用的是MSP430F5310这款芯片,按照数据手册可以对信息flash的B、C、D区随意读写,但A区不能写数据!

如何解锁?我试了修改FCTL3寄存器中的LOCKA位,始终修改不了这个值。

  • peng peng,

    Segment A也是可以写入数据的,如何写入详见 user guide对应的 “7.2.1 Segment A”。其中有对应的汇编操作example,你可以参考一下,具体如下:

    The state of the LOCKA bit is toggled when a 1 is written to it. Writing a 0 to LOCKA has no effect. This
    allows existing flash programming routines to be used unchanged.
    ; Unlock Info Memory
    MOV #FWPW,&FCTL4 ; Clear LOCKINFO, if set
    ; Unlock SegmentA
    BIT #LOCKA,&FCTL3 ; Test LOCKA
    JZ SEGA_UNLOCKED ; Already unlocked?
    MOV #FWPW+LOCKA,&FCTL3 ; No, unlock SegmentA
    SEGA_UNLOCKED ; Yes, continue
    ; SegmentA is unlocked
    ; Lock SegmentA
    BIT #LOCKA,&FCTL3 ; Test LOCKA
    JNZ SEGA_LOCKED ; Already locked?
    MOV #FWPW+LOCKA,&FCTL3 ; No, lock SegmentA
    SEGA_LOCKED ; Yes, continue
    ; SegmentA is locked
    ; Lock Info Memory
    MOV #FWPW+LOCKINFO,&FCTL4 ; Set LOCKINFO

  • 谢谢,嗯,用汇编解锁A区似乎可以实现。

    用C语言,好像不行样~

  • 不会的,计算机是识别程序的,不会因为汇编或者C而发生本质变化。