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.

CCS/TM4C1294NCPDT: Bootloader using USB as well as UART

Part Number: TM4C1294NCPDT

Tool/software: Code Composer Studio

Dear All,

I am trying to use USB as well as UART boot-loader to update my firmware. As I am done with both individually,  for UART based boot-loader I am using BOOT_SERIAL example and for USB based boot-loader I am using USB_STICK_UPDATE along with USB_DEMO example project.

I go through the Boot_Serial example and I believe that instead of using two different project we can use same Boot_serial example for both UART as well as USB based boot-loader. But when I am defining the USB commented part inside the bl_config.h file. Something is going wrong and we are not able to update the firmware either using UART or USB but as soon as I am commenting back those line my UART based boot-loader is working fine.

I am not able to find out the problem please let me know the possible reason for this. Prompt reply will be appreciated.

Thanks & Regards

Parvez Alam

 

  • The comments in the bl_config.h show that in this project, the two methods are mutually exclusive.

    //*****************************************************************************
    //
    // The following defines are used to configure the operation of the boot
    // loader.  For each define, its interactions with other defines are described.
    // First is the dependencies (in other words, the defines that must also be
    // defined if it is defined), next are the exclusives (in other words, the
    // defines that can not be defined if it is defined), and finally are the
    // requirements (in other words, the defines that must be defined if it is
    // defined).
    //
    // The following defines must be defined in order for the boot loader to
    // operate:
    //
    //     One of CAN_ENABLE_UPDATE, ENET_ENABLE_UPDATE, I2C_ENABLE_UPDATE,
    //            SSI_ENABLE_UPDATE, UART_ENABLE_UPDATE, or USB_ENABLE_UPDATE
    //     APP_START_ADDRESS
    //     VTABLE_START_ADDRESS
    //     FLASH_PAGE_SIZE
    //     STACK_SIZE
    //
    //*****************************************************************************

    //*****************************************************************************
    //
    // Selects the UART as the port for communicating with the boot loader.
    //
    // Depends on: None
    // Exclusive of: CAN_ENABLE_UPDATE, ENET_ENABLE_UPDATE, I2C_ENABLE_UPDATE,
    //               SSI_ENABLE_UPDATE, USB_ENABLE_UPDATE
    // Requires: UART_AUTOBAUD or UART_FIXED_BAUDRATE, UART_CLOCK_ENABLE, 
    //           UARTx_BASE, UART_RXPIN_CLOCK_ENABLE, UART_RXPIN_BASE, 
    //           UART_RXPIN_PCTL, UART_RXPIN_POS, UART_TXPIN_CLOCK_ENABLE,
    //           UART_TXPIN_BASE, UART_TXPIN_PCTL and UART_TXPIN_POS
    //
    //*****************************************************************************
    #define UART_ENABLE_UPDATE
    

    //*****************************************************************************
    //
    // Selects USB update via Device Firmware Update class.
    //
    // Depends on: None
    // Exclusive of: CAN_ENABLE_UPDATE, ENET_ENABLE_UPDATE, I2C_ENABLE_UPDATE,
    //               SSI_ENABLE_UPDATE, UART_ENABLE_UPDATE,
    // Requires: CRYSTAL_FREQ, USB_VENDOR_ID, USB_PRODUCT_ID, USB_DEVICE_ID,
    //           USB_MAX_POWER
    //
    //*****************************************************************************
    //#define USB_ENABLE_UPDATE
    

  • Is there a reason that you chose not to use the ROM based bootloader?
  • Dear Bob,

    I tried to use this example by removing the comments, but in this case I am not able to update the firmware either using USB or UART. I think some more changes required but I am not able to recognize those changes, please let me know the changes.

    Thanks & Regards
    Parvez Alam