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.

MSPM0G3507: CRC check at 0x0 does not match with UniFlash and UART-Bootloader

Part Number: MSPM0G3507
Other Parts Discussed in Thread: UNIFLASH, CCSTUDIO

[1.5.2026, 13:12:23] [INFO] CORTEX_M0P: Number of bytes programmed: 1560 bytes
[1.5.2026, 13:12:23] [INFO] CORTEX_M0P: Programming speed: 0.9168kByte/s
[1.5.2026, 13:12:24] [INFO] CORTEX_M0P: CRC check at 0x0 does not match. expected value: 0x9BDB32BD obtained from BSL: 0xCC21B5E2

  • Have you found a solution in the meantime? I’m having the same issue with the MSPM0G3705, the UART bootloader, and CCStudio UniFlash.

  • Hi Joern,

    Could you answer the following questions:

    1. What version of Uniflash/CCS are you using?
    2. What is the firmware image format?
    3. Is the UART bootloader you are using the ROM BSL or a secondary BSL?
    4. Have you made any modifications to NONMAIN? If so, what has been changed? Are you also erasing NONMAIN?
    5. Is this for a custom PCB or LaunchPad?
    6. Does the issue reproduce on every attempt or intermittenly?
    7. Can you program successfully via SWD?
    8. Have you tried erasing the entire device before programming?

    Best,

    Owen

  • 1.) Version 9.5.0.5651
    2.) HEX (generated with armobjcopy with --output-target=ihex
    3.) ROM BSL (with UART)
    4.) I didn't touched NONMAIN
    5.) Custom board with MSPM0G3705 (WeAct studio) and USB-serial-converter CH340X on PA10 and PA11
    6.) every attempt
    7.) Yes (with openOCD)
    8.) Yes

  • Hi Joern,

    Can you read the memory of the device and see if there are any patterns of corruption, etc.

    If possible, could you also share the HEX file?

    Could you also share an in-depth walkthrough of the steps you are following to recreate this?

    Best,

    Owen

  • Hi Owen,

    when I read the memory content back (with SWD) from the MCU it is exactly the same, as in the file I had written with BSL.
    It happen with every file, that the UniFlash say that some CRC is corrupt, if writte the file via BSL and UART, but the code seems to work anyway on the MCU. With SWD I have no problems.
    For example I take the example "blink_led with freertos" from ti and simply activate the arm_objcopy tool and add there "--output-target=ihex" to generate an hex-file for uniflash. I got the hex-file that I have added to this reply. And I have read the NONMAIN.bin from the MCU - I don't know what it should look like, but maybe this helps.
    And additional I add the whole log from uniflash with the crc-error message from flashing and verify.blink_led_files_mspm0g3507.zip
    Error: 
    [8.5.2026, 11:08:47] [INFO] CORTEX_M0P: CRC check at 0x0 does not match. expected value: 0xA7FB1B64 obtained from BSL: 0x90F1F104

    Regards Jörn

  • Hi Joern,

    Thanks for the information. I looked into this more and think the issue may be with the format. I would suggest trying the TI-TXT formatted hex file. When I used this, I still saw the CRC error message, however, the program still seemed to flash to the device.

    I am investigating further with our team to see if it is an issue with the Uniflash tool.

    Best,

    Owen