dlbeer / mspdebug

Debugging tool for MSP430 MCUs
GNU General Public License v2.0
190 stars 80 forks source link

HAL exception 0xffff with ezfet on MSP-EXP430FR6989 #44

Open alexshpilkin opened 6 years ago

alexshpilkin commented 6 years ago

As mentioned elsewhere, the ezfet driver does not work with the MSP-EXP430FR6989:

MSPDebug version 0.25 - debugging tool for MSP430 MCUs
[snip]
Reset communications...
Version: 2.11.0.1, HW: 0xaaaaaaaa
Reset firmware...
hal_proto_execute: HAL exception: 0xffff
hal_proto_execute: fid: 0x51

This happens both with a pristine board and after updating the firmware using the tilib driver (with latest libmsp430 3.11.000.001). The tilib driver works if one does not try ezfet before (judging by the LEDs, this is because the board gets stuck in debug mode and tilib considers it to be already in use).

dlbeer commented 6 years ago

On Fri, Jan 19, 2018 at 06:02:30PM +0000, Alexander Shpilkin wrote:

As mentioned elsewhere, the ezfet driver does not work with the MSP-EXP430FR6989:

MSPDebug version 0.25 - debugging tool for MSP430 MCUs
[snip]
Reset communications...
Version: 2.11.0.1, HW: 0xaaaaaaaa
Reset firmware...
hal_proto_execute: HAL exception: 0xffff
hal_proto_execute: fid: 0x51

This happens both with a pristine board and after updating the firmware using the tilib driver (with latest libmsp430 3.11.000.001). The tilib driver works if one does not try ezfet before (judging by the LEDs, this is because the board gets stuck in debug mode and tilib considers it to be already in use).

The ezfet driver is experimental and unfinished. You probably shouldn't use it unless you're planning on trying to develop it further. Use the tilib driver instead.

-- Daniel Beer dlbeer@gmail.com http://dlbeer.co.nz/ PGP: BA6E 0B26 1F89 246C E3F3 C910 1E58 C43A 160A 553B

f4grx commented 4 years ago

Hello, I am using a raspberry pi so no msp430 dll is available, I need to use the ezfet driver for a msp-exp430fr5969

 ./mspdebug -s C6BC846F12001B00 ezfet
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 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.
Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc.

Reset communications...
Version: 2.4.0.20, HW: 0xaaaaaaaa
Reset firmware...
hal_proto_execute: HAL exception: 0xffff
hal_proto_execute: fid: 0x51
pi@iot:~/code/mspdebug $

Is there any chance that this board will be supported? What remains to be done for it to work? I can program, how can I help? Thanks.

edit: managed to build libmsp430.so on the rpi using some makefile tricks edit2: a fw update was required, acm before, hid after, but now I get:

pi@iot:~/code/mspdebug $ LD_LIBRARY_PATH=. ./mspdebug tilib
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 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.
Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc.

Using new (SLAC460L+) API
MSP430_GetNumberOfUsbIfs
MSP430_GetNameOfUsbIf
Found FET: ttyACM0
MSP430_Initialize: ttyACM0
FET firmware update is required.
Re-run with --allow-fw-update to perform a firmware update.
tilib: device initialization failed
pi@iot:~/code/mspdebug $ LD_LIBRARY_PATH=. ./mspdebug tilib --allow-fw-update
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 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.
Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc.

Using new (SLAC460L+) API
MSP430_GetNumberOfUsbIfs
MSP430_GetNameOfUsbIf
Found FET: ttyACM0
MSP430_Initialize: ttyACM0
FET firmware update is required.
Starting firmware update (this may take some time)...
Initializing bootloader...
Programming new firmware...
    16 percent done
    33 percent done
    33 percent done
    50 percent done
   100 percent done
tilib: MSP430_FET_FwUpdate: MSP-FET / eZ-FET core(communication layer) update failed (error = 74)
tilib: device initialization failed
pi@iot:~/code/mspdebug $ LD_LIBRARY_PATH=. ./mspdebug tilib --allow-fw-update
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 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.
Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc.

Using new (SLAC460L+) API
MSP430_GetNumberOfUsbIfs
MSP430_GetNameOfUsbIf
Found FET: HID_FET
MSP430_Initialize: HID_FET
FET firmware update is required.
Starting firmware update (this may take some time)...
tilib: MSP430_FET_FwUpdate: MSP-FET / eZ-FET recovery failed (error = 73)
tilib: device initialization failed
pi@iot:~/code/mspdebug $ LD_LIBRARY_PATH=. ./mspdebug tilib
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 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.
Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc.

Using new (SLAC460L+) API
MSP430_GetNumberOfUsbIfs
MSP430_GetNameOfUsbIf
Found FET: HID_FET
MSP430_Initialize: HID_FET
FET firmware update is required.
Re-run with --allow-fw-update to perform a firmware update.
tilib: device initialization failed
pi@iot:~/code/mspdebug $ sudo LD_LIBRARY_PATH=. ./mspdebug tilib
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 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.
Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc.

Using new (SLAC460L+) API
MSP430_GetNumberOfUsbIfs
MSP430_GetNameOfUsbIf
Found FET: HID_FET
MSP430_Initialize: HID_FET
FET firmware update is required.
Re-run with --allow-fw-update to perform a firmware update.
tilib: device initialization failed
pi@iot:~/code/mspdebug $ LD_LIBRARY_PATH=. ./mspdebug tilib --allow-fw-update
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 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.
Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc.

Using new (SLAC460L+) API
MSP430_GetNumberOfUsbIfs
MSP430_GetNameOfUsbIf
Found FET: HID_FET
MSP430_Initialize: HID_FET
FET firmware update is required.
Starting firmware update (this may take some time)...
tilib: MSP430_FET_FwUpdate: MSP-FET / eZ-FET recovery failed (error = 73)

Will probably have to try and do that: https://blog.kutej.net/2019/03/msp-exp430g2et-linux

solution implies sudo and retries: http://amforth.sourceforge.net/TG/recipes/TI-Launchpad430.html Indeed it works

pi@iot:~/code/mspdebug $ sudo LD_LIBRARY_PATH=. ./mspdebug tilib --allow-fw-update
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 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.
Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc.

Using new (SLAC460L+) API
MSP430_GetNumberOfUsbIfs
MSP430_GetNameOfUsbIf
Found FET: HID_FET
MSP430_Initialize: HID_FET
FET firmware update is required.
Starting firmware update (this may take some time)...
Initializing bootloader...
Programming new firmware...
     0 percent done
    34 percent done
    67 percent done
   100 percent done
Update complete
Done, finishing...
MSP430_VCC: 3000 mV
tilib: MSP430_VCC: Internal error (error = 68)
tilib: device initialization failed
pi@iot:~/code/mspdebug $ sudo LD_LIBRARY_PATH=. ./mspdebug tilib --allow-fw-update
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 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.
Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc.

Using new (SLAC460L+) API
MSP430_GetNumberOfUsbIfs
MSP430_GetNameOfUsbIf
Found FET: ttyACM0
MSP430_Initialize: ttyACM0
FET firmware update is required.
Starting firmware update (this may take some time)...
Initializing bootloader...
Programming new firmware...
    22 percent done
    25 percent done
    28 percent done
    31 percent done
    34 percent done
    37 percent done
    40 percent done
    40 percent done
    43 percent done
    46 percent done
    49 percent done
    52 percent done
    52 percent done
    55 percent done
    58 percent done
    61 percent done
    64 percent done
    67 percent done
    67 percent done
    67 percent done
    70 percent done
    73 percent done
    76 percent done
    79 percent done
    82 percent done
    85 percent done
    85 percent done
    88 percent done
    91 percent done
    94 percent done
    97 percent done
   100 percent done
Update complete
Done, finishing...
MSP430_VCC: 3000 mV
MSP430_OpenDevice
MSP430_GetFoundDevice
Device: MSP430FR5969 (id = 0x012c)
3 breakpoints available
MSP430_EEM_Init
Chip ID data:
  ver_id:         8169
  ver_sub_id:     0000
  revision:       30
  fab:            55
  self:           5555
  config:         30
  fuses:          55
warning: unknown chip

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

Available options:
    color                       gdb_loop
    enable_bsl_access           gdbc_xfer_size
    enable_fuse_blow            iradix
    enable_locked_flash_access  lowercase_dis
    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.

(mspdebug)

Leaving that here so that more people can benefit from these tricks.

dlbeer commented 4 years ago

On Thu, Apr 30, 2020 at 07:38:37AM -0700, f4grx wrote:

I am using a raspberry pi so no msp430 dll is available, I need to use the ezfet driver.

 ./mspdebug -s C6BC846F12001B00 ezfet
MSPDebug version 0.25 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2017 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.
Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc.

Reset communications...
Version: 2.4.0.20, HW: 0xaaaaaaaa
Reset firmware...
hal_proto_execute: HAL exception: 0xffff
hal_proto_execute: fid: 0x51
pi@iot:~/code/mspdebug $

Is there any chance that this board will be supported? What remains to be done for it to work? I can program, how can I help? Thanks.

The ezfet driver is just an experiment, and it's a long way off from being usable. My suggestion would be to build libmsp430.so from source for the Raspberry Pi and use the "tilib" driver.

Cheers, Daniel

-- Daniel Beer dlbeer@gmail.com http://dlbeer.co.nz/ PGP: BA6E 0B26 1F89 246C E3F3 C910 1E58 C43A 160A 553B

f4grx commented 4 years ago

I managed to recompile msp430.dll for a raspi with minimal changes to find hid-libusb and get everything working.

I also have a goodfet to test but I have not tried that yet.