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: MSP432 Custom Bootloader

Part Number: MSP432E401Y

Tool/software:

Hello Team,

We need to implement a custom bootloader for MSP432E401Y which should flash the firmware via Ethernet for microcontroller and FPGA(interfaced in our custom board via spi to uC).

I referred some examples from  Resource Explorer in which it is implemented in Assembly language(bl_startup_css.s).

Being a beginner to bootloader development, i'm not sure where to start.

Please answer my below questions:

1. For FPGA, there is driver given from Lattice which is written in embedded C. So I think i have to modify the assembly language code to c. Is my understanding right? Or is there any other way to proceed further?

2. In the existing Bootloader code, the Bootp request is sent from the microcontroller and the PC tool should reply to that request. If there is a reply then the updatehandler will update firmware image sent from the PC Tool. Please correct me if i'm wrong.

Thanks in advance.

  • Hi,

    I referred some examples from  Resource Explorer in which it is implemented in Assembly language(bl_startup_css.s).

    The bl_start_ccs.s file is a startup file and depends on the configuration in the bl_config.h file will boot and load your firmware from the specified serial port (e.g. Ethernet, UART, SPI or others). See below snippet of code in bl_startup_ccs.s file. If you define ENET_ENABLE_UPDATE in the bl_config.h file then the startup file will jump to the UpdateBOOTP function. The UpdateBOOTP function is in the bl_emac.c file.  You can look at bl_emac.c file to see how the firmware is programmed to the flash. 

    1. For FPGA, there is driver given from Lattice which is written in embedded C. So I think i have to modify the assembly language code to c. Is my understanding right? Or is there any other way to proceed further?

    What is the role of your FPGA? Are you trying to update firmware to the internal flash or external FPGA? I don't suggest you convert the bl_startup_ccs.s which is already proven working to C. Why don't you just add a function call in bl_startup_ccs.s file to do whatever you want with your FPGA. Look at the bl_config.h where you can define and plug your custom functions using #define BLXXX_FN_HOOK.

    Before you do anything, I will suggest your run the EMAC bootloader example as-is. Make sure it works before you add new capabilities. 

    2. In the existing Bootloader code, the Bootp request is sent from the microcontroller and the PC tool should reply to that request. If there is a reply then the updatehandler will update firmware image sent from the PC Tool. Please correct me if i'm wrong.

    Your understanding is correct.