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.

MSP432E401Y: BSL Scripter issue

Part Number: MSP432E401Y


I am having issues with the BSL scripter, it fails with the unhelpful message "[ACK_ERROR_MESSAGE]Unknown Error!"

I believe using Wireshark that only a small proportion of the data is being transferred approx 25% of a 1000k text file. 

I've tracked the fault down to the function

void BslE4xxEthernetResponseHandler::processResponse(uint8_t ack, std::vector<uint8_t> *response)

the response is not TFTP_ACK or TFTP_ERROR but NULL.

Any suggestions as to how to progress would be appreciated

  • Hi,

      I'm not an expert with BSL scripter. You said you are trying to transfer a 1000k text file. 1000k is 10MB. The BSL scripter as I know is used to program or update a firmware image on the MCU. The MCU has only 1MB of flash for storage. 

    https://www.ti.com/lit/slau655

  • The file transferred is a text file containing the hex data so 2100 lines like this

    @4000
    00 FC 03 20 E9 32 04 00 11 B2 04 00 11 B2 04 00
    11 B2 04 00 11 B2 04 00 11 B2 04 00 11 B2 04 00
    11 B2 04 00 11 B2 04 00 11 B2 04 00 11 B2 04 00
    11 B2 04 00 11 B2 04 00 43 B5 04 00 C9 20 03 00
    2D E9 F0 4F 91 F8 3D 30 91 F8 3C 20 42 EA 03 22
    91 F8 3E 30 42 EA 03 42 91 F8 3F 30 AD F1 74 0D
    42 EA 03 62 08 92 91 F8 39 30 91 F8 38 20 42 EA
    03 22 91 F8 3A 30 42 EA 03 42 91 F8 3B 30 42 EA
    03 62 0C 92 91 F8 35 30 91 F8 34 20 42 EA 03 22
    91 F8 36 30 42 EA 03 42 91 F8 37 30 42 EA 03 62

    Interestingly if I shorten the file (you just add a 'q' on a line to terminate the data) then it transfers but obviously has only transferred a bit of the program.

  • How big is your file size? You mentioned 1000k. Is this the size you use?

    I'm wondering if you choose binary instead of hex, will it produce the same issue?

  • The BSL scripter needs hex data in text format to work. I can flash the code using a Ti debugger. I have the bootloader at address 0x0000 my app resides at address 0x4000. I use the 'magic packet' method to enter the bootloader. The data starts to transfer and I can see this using wireshark but unfortunately it jusr stops, rather than replying with an ACK or error, the BSL scripter receives a NULL and gives an error.

  • Hi Philip,

      Have you tried a stock Ethernet bootloader example without modification? Do you see the same problem or this is only occurring on your own application?

  • Issue is resolved, when jumping to the bootloader via the 'magic packet' procedure, although processor interrupts are disabled, the watchdog is not and the Watchdog_close method provided has no code associated for the MSP432E401Y so a bit of register tweaking before entering the bootloader fixed the problem