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.

TMDS243EVM: Flashing application without switching boot modes

Part Number: TMDS243EVM
Other Parts Discussed in Thread: UNIFLASH

We've been exploring the AM64x and AM243x EVM's and we are consistently running in to a the same issue: We are constantly switching between boot modes when developing for the R5 and M4 cores.

With normal, smaller microcontrollers, the program flow is as follows:

  1. Write the application to flash using JTAG/SWO
  2. Debugger Asserts reset pin
  3. Microcontroller starts executing code from the reset vector, which launches your application.

Since the application is written to flash, it persists when the device is power-cycled.

However, with the AM64x/AM243x, we have 3 methods of flashing the binary:

  1. UART uniflash: AM243x MCU+ SDK: Flashing Tools (ti.com)
    1. Requires switching between UART and OSPI boot modes
  2. USB DFU Uniflash: AM243x MCU+ SDK: Flashing Tools (ti.com)
    1. Requires switching between DFU and OSPI boot modes
  3. JTAG Uniflash: AM243x MCU+ SDK: Flashing Tools (ti.com)
    1. Bare-bones example that requires manual typing in console

None of these methods are suitable for rapid-prototyping and debugging, and are more suited when the application is flashed once in the factory.

For development, the SBL_NULL bootloader is recommended, or perhaps the DEV boot modes. However, these don't save the application when powered down.

Is there a method I missed that allows us to flash and interact with the R5/M4 cores similarly to a regular microcontroller?