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.

Concerto C28 unable to boot from flash in standalone mode Sysbios

Other Parts Discussed in Thread: CONTROLSUITE, SYSBIOS

xdc tools: 3.23.4.60
sys/bios: 6.33.6.50
CCS:  5.2.1.00018

F28M35H52C1 control card.

I imported setup_m3 (C:\ti\controlSUITE\device_support\f28m35x\v201\F28M35x_examples_Control\setup_m3) project and burnt into M3 core.

When I burn blinky_c28 (C:\ti\controlSUITE\device_support\f28m35x\v201\F28M35x_examples_Control\blinky\), the LED blinks upon power reset. This means the switch settings on the control card are correct.

I modified typical sysbios example project on C28 core, to add code for blinking LED in the task fxn. I have marked 'Enable boot from FLASH' in boot module.

The code works (LED blinks) on burning but it doesn't run on power reset. The code on C28 core is as follows:

I added  F28M35x_GlobalVariableDefs.c, Bhelpuri_F28M35x_Gpio.c, F28M35x_Headers_BIOS.cmd to the project.

  

/*************************************************************************************************/

/*
* ======== main.c ========
*/

#include <xdc/std.h>

#include <xdc/runtime/Error.h>
#include <xdc/runtime/System.h>

#include <ti/sysbios/BIOS.h>

#include <ti/sysbios/knl/Task.h>

#include <F28M35x_Device.h>
#include "F28M35x_GlobalPrototypes.h" // Prototypes for global functions
// within the .c files.

#define LED_0_DIR_REG GpioG1CtrlRegs.GPCDIR.bit.GPIO70
#define LED_0_DAT_REG GpioG1DataRegs.GPCDAT.bit.GPIO70

/*
* ======== taskFxn ========
*/
Void taskFxn(UArg a0, UArg a1)
{
System_printf("enter taskFxn()\n");

unsigned long delay;

// Step 6. IDLE loop. Just sit and loop forever (optional):
for(;;)
{
//
// Turn on LED
//
LED_0_DAT_REG = 0;
// GpioG1DataRegs.GPBDAT.bit.GPIO34 = 0;
GpioG1DataRegs.GPBTOGGLE.bit.GPIO34 = 1;
//
// Delay for a bit.
//
for(delay = 0; delay < 2000000; delay++)
{
}

//
// Turn off LED
//
LED_0_DAT_REG = 1;
// GpioG1DataRegs.GPBDAT.bit.GPIO34 = 1;
GpioG1DataRegs.GPBTOGGLE.bit.GPIO34 = 1;
//
// Delay for a bit.
//
for(delay = 0; delay < 2000000; delay++)
{
}


}

Task_sleep(10);

System_printf("exit taskFxn()\n");
}

/*
* ======== main ========
*/
Void main()
{
Task_Handle task;
Error_Block eb;

System_printf("enter main()\n");

Error_init(&eb);
task = Task_create(taskFxn, NULL, &eb);
if (task == NULL) {
System_printf("Task_create() failed!\n");
BIOS_exit(0);
}

// Step 2. Initialize GPIO:
// This example function is found in the F28M35x_Gpio.c file and
// illustrates how to set the GPIO to it's default state.
InitGpio(); // Skipped for this example
EALLOW;
LED_0_DIR_REG = 1;
EDIS;
LED_0_DAT_REG = 1;// turn off LED

BIOS_start(); /* enable interrupts and start SYS/BIOS */
}

/****************************************************************************************/