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.

LAUNCHXL-F28377S: Flash programming question

Part Number: LAUNCHXL-F28377S

Hello TI community,

I was just wondering if it was possible to flash a program onto the LaunchXL-F28377S and have it be able to run whenever I power it on. I am currently looking at the boot mode section in the technical reference manual but I am confused as what the different boot mode do and what "boot" refers to in general. Does boot mean when it a power source plugs in to turn the device on? Currently whenever I plug my micro usb cable into the board, it resets into the blinky example. I end up having to reflash my program each time I want to reset the device.

  • Brenden,

    Make sure to use Flash based linker command file (e.g. 2837xS_Generic_FLASH_lnk.cmd) for your project. This will ensure that your code is mapped to Flash and thus your application gets programmed in to Flash when you load your coff file in to the device via CCS.

    To answer your question regarding boot process at a high level: Whenever you power cycle the device (or for any other resets as well), the code that first gets executed is the boot code - which exists in the device's BootROM memory space. This boot code will initialize the device to bring it in to a known good state so that any application code can be executed thereafter. At the end of the device initialization, the boot code reads few user configurable GPIO pins to know what the user wants the boot code to do after the device initialization. For example, if the user wants to program the Flash via JTAG, he would configure the Boot mode GPIO pins to "Wait" mode. Boot code reads this configuration and stays in an endless loop so that user can connect the emulator and proceed to Flash program via CCS (or other tools). Once the user application is loaded in to Flash, the user will then configure the boot mode GPIOs to "Flash boot" mode and power cycles the device in standalone mode. Boot code will now jump to flash entry point after the device initialization and CPU starts executing the user application from Flash. Users may want to use other boot modes as per their needs.

    In your case, configure the boot mode GPIO pins to "Boot to Flash" mode once you program your application in to Flash using CCS. When you power cycle your device, your application will get executed from Flash.

    Hope this helps.

    Thanks and regards,
    Vamsi
  • Hi Vamsi,

    so in the project properties under C2000 linker, in the file search path where I used to have "2837xS_Generic_RAM_lnk" I changed to "2837xS_Generic_FLASH.lnk" as per instructed. My program stays on the board now when I reboot the evaluation board. There is one small problem though. When I am debugging in CCS and press run, I jump to an interrupt function in "F2837xS_DefaultISR.c" called "ILLEGAL_ISR." This was not happening before when I was programming through the RAM. For context, I have two ISR in my program, one that handles start of conversion of an ADC from the EPWM and another from the CPU timer (however, I commented out the initialization of the CPU Timer 0 ISR so there is only really one ISR present).
  • Brenden,

    I noticed that you started another thread for your new question - which is good.
    I will reply on that post. I am closing this thread.

    Thanks and regards,
    Vamsi