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.

MPS430F449 and protection fuse

Other Parts Discussed in Thread: MSP430F449

Dear Gentlemen,


i am reading the code of a MSP430F449 from an instrument i have here, that i am going to repair. I suspect a fault on the CPU so the purpose is just to check the code, and eventually be able to execute some "step" with the debugger.

I thought the producer is keeping the code protected (fuse), but i could read it, or at least so it seems.

But i am not sure if the entire whole area has been read correctly, i am safely assuming the whole code is good.

This is the command i issue to read the code:

sudo mspdebug pif -j -d /dev/parport0

██ [ repair ] [ 13:58:01 ]
██ sudo mspdebug pif -j -d /dev/parport0
MSPDebug version 0.22 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2013 Daniel Beer <dlbeer@gmail.com>
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Starting JTAG
JTAG ID: 0x89
Chip ID: F449
Chip ID data: f4 49

Available commands:
    =           erase       isearch     power       save_raw    simio       
    alias       exit        load        prog        set         step        
    break       fill        load_raw    read        setbreak    sym         
    cgraph      gdb         md          regs        setwatch    verify      
    delbreak    help        mw          reset       setwatch_r  verify_raw  
    dis         hexout      opt         run         setwatch_w  

Available options:
    color                       gdb_loop                    
    enable_bsl_access           gdbc_xfer_size              
    enable_locked_flash_access  iradix                      
    fet_block_size              quiet                       
    gdb_default_port            

Type "help <topic>" for more information.
Use the "opt" command ("help opt") to set options.
Press Ctrl+D to quit.



To read the code i use:

save_raw 0x1000 0xF000 dump.bin

some code below:


(mspdebug) di 0xffe0
0xffe0:
    0ffe0: 80 c8 ff ff               BIC     R8,     0xffe1
    0ffe4: 6a bc                     BIT.B   @R12,   R10
    0ffe6: ff ff 54 e5               AND.B   @R15+,  0xe554(R15)
    0ffea: 70 dd                     BIS.B   @R13+,  PC
    0ffec: f2 da ff ff               BIS.B   @R10+,  &0xffff
    0fff0: 36 f7                     AND     @R7+,   R6
    0fff2: 78 b4                     BIT.B   @R4+,   R8
    0fff4: ff ff ff ff               AND.B   @R15+,  0xffff(R15)
    0fff8: 48 fd                     AND.B   R13,    R8
    0fffa: ff ff ff ff               AND.B   @R15+,  0xffff(R15)
    0fffe: 68 24                     JZ      0x100d0

(mspdebug) dis 0x80c8
0x80c8:
    080c8: 6f 4a                     MOV.B   @R10,   R15
    080ca: 0f 5f                     RLA     R15
    080cc: 0e 4f                     MOV     R15,    R14
    080ce: 0f 5f                     RLA     R15
    080d0: 0f 5f                     RLA     R15
    080d2: 0e 5f                     ADD     R15,    R14
    080d4: 0f 5f                     RLA     R15
    080d6: 0f 5e                     ADD     R14,    R15
    080d8: ff 90 03 00 51 03         CMP.B   #0x0003, 0x0351(R15)
    080de: 05 20                     JNZ     0x80ea
    080e0: cf 43 43 03               CLR.B   0x0343(R15)
    080e4: ef 42 51 03               MOV.B   #0x0004, 0x0351(R15)
    080e8: 5c 3c                     JMP     0x81a2
    080ea: ef 43 43 03               MOV.B   #0x0002, 0x0343(R15)
    080ee: cf 43 51 03               CLR.B   0x0351(R15)
    080f2: 32 3c                     JMP     0x8158

Every comment is appreciated.

**Attention** This is a public forum