使用的是MSP430F5310这款芯片,按照数据手册可以对信息flash的B、C、D区随意读写,但A区不能写数据!
如何解锁?我试了修改FCTL3寄存器中的LOCKA位,始终修改不了这个值。
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.
使用的是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