I have successfully been able to run applications on both the M3 and C28 core of the concerto kit using the debug tool in Code Composer 4. However, I am struggling to get the correct settings to boot the device out of on board flash. Could someone provide the correct jumper and switch settings to get the device to boot on its own without the debugger.
Hi Brent,
The key to getting Concerto to boot on its own is disconnecting TRST from the emulator. This can be done by switching the left most switch in SW3 to the down position. You will also need to ensure that all the switches in SW1 are in the up position. This will allow the M3 to boot standalone. To boot the C28 you need to have a call to the IPC function that boots the C28:
// Send boot command to allow the C28 application to begin execution IPCMtoCBootControlSystem(CBROM_MTOC_BOOTMODE_BOOT_FROM_FLASH);
Take a look at the dual core blinky example in the latest Concerto controlSUITE release (v110) for an example.
Trey
Trey German
C2000 Applications
Hi,
I am having the same problem. I am loading the software and running the Master version of the blinky program. I am able to step through it fine and it plays fine. When I stop the debugging, it continues to run the blinky program. On power cycle, it no longer runs the program. My SW3 position one has been switched to OFF, and SW1 remains in default (all in the ON/UP position). Is this because I am running the Master version of blinky and the C2000 core is not getting programmed?
-Vincent
Hi Vincent,
You'll need to set the SW1 dip switches to the OFF position (towards the DIMM connector). This will configure the M3 core to boot from flash.
If you want to boot the C28x from flash, you will need to send a IPC command to the C28x. Trey's post shows how to do this.
Regards,Harrison
Thanks Harrison, but Trey's post says that the dip dwitches in SW1 should be in the up position (away from the dimm connector) and the left most switch position in SW3 should be in the down position. I have tried with all switches in SW1 in the down position(towards the dimm connector) and it seems to be doing something, but it does it slower, for example, the blinky code blinks much slower than when i'm running it from debug mode.
The F28M35x_examples_Master blinky example doesn't configure the Flash wait states, which would be why you are seeing slower code execution. Try the F28M35x_examples_Dual version and you should see the LED blink at the correct frequency.
The lines of interest for configuring the flash waitstates in blinky_dc_m3.c:
// Copy time critical code and Flash setup code to RAM// This includes the following functions: InitFlash();// The RamfuncsLoadStart, RamfuncsLoadSize, and RamfuncsRunStart// symbols are created by the linker. Refer to the device .cmd file. memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize); // Call Flash Initialization to setup flash waitstates// This function must reside in RAM FlashInit();
Thanks Harrison,
What position should the SW3 switches be in?
Vincent,
to run from flash (without debugger) SW3-1 must be down. SW3-2 doesn't matter (it's just for the UART).
If you check on the control suite package \\TI\controlSUITE\development_kits\~controlCARDs\CCF28M35xxHWdevPkg\ you can find a PDF with the schematic for the board and will see that SW3-1 is connects or disconnects the TRST-n signal from the JTAG emulator. That way, for the board to run from flash without the debugger, the JTAG emulator must be disconnected. Hope it makes sense.