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.

F28069 controlCARD Emulation Boot question

I'm connecting F28069 controlCARD to CCS v5.0 in debug mode via emulator. I find that the controlCARD invokes _c_int00 both with FLASH-BOOT (EMuBMode 0x000B) and RAM_BOOT (EMuBMode 0x000A) options (selected via the script menu). I confirmed the memory contents in the memory browser. My cmd file is set up to place the "codestart" section in the M0 SARAM location, however the program still finds and runs codestart with the FLASH-BOOT setting. Does the emulator somehow disregard the boot setting when calling _c_int00?

 

  • Hi Adnan,

    I find that the controlCARD invokes _c_int00 both with FLASH-BOOT (EMuBMode 0x000B) and RAM_BOOT (EMuBMode 0x000A) options (selected via the script menu).

    Very true...

    Here's detailed info on RAM <-> FLASH:

    2364.Flash to RAM.pdf

    6013.Running from Internal Flash.pdf

    Regards,

    Gautam

  • Thanks for the reply.

    I have read your suggested documents before, but I don't think they address the emulator functions. My question was more about the behavior of the emulator at boot. According to the technical reference the only way a controller can perform RAM-BOOT is when the EmuBMode value is 0x000A. However, when I check this value in the memory browser it always says 0x0003 (FLASH-BOOT), but my 'codestart' section that is placed in M0 SARAM still fires. How does the emulator know to look into M0 SARAM for the entry point code when the boot mode is set to look in the FLASH? This to me is an anomaly which leads me to conclude that the emulator somehow detects that my codestart is in RAM and acts accordingly, even though the registers are set up to do otherwise. 

    The situation also works in reverse, i.e., with 'codestart' placed in ROM and EmuBMode manually set to RAM-BOOT (0x000A). In this case the 'codestart' fires even though the registers suggest it shouldn't. Appears that 'codestart' fires regardless of where it is placed when running with emulator.

    When I disconnect the controlCARD from my laptop and run standalone, however, the boot mode works as expected, i.e., in FLASH-BOOT.

    Any clarification of this issue will be very instructive.

    Regards,

     

     

  • I did some digging and may have found the answer: In CCS, under the active project properties there is an entry for C2000 Linker options that allows you to "Specify Program Entry Point ........ -e". This entry point is set to "code_start" in my case and that's where my program starts execution when run on the emulator in debug mode. The code_start section in turn calls _c_int00. However, when running from FLASH the code_start has to be invoked from the correct boot position (0x3F7FF6).