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.

C28X memcpy problem when stand-alone

Other Parts Discussed in Thread: CONTROLSUITE

I've notice a problem in Concerto device when run stand-alone (without emulator)

on C28X part ....

  • I've made some tests and I notice that

    "rumfunctions" doesn't work even if I copy code from flash to ram using

    	extern Uint16 RamfuncsLoadStart;
    	extern Uint16 RamfuncsLoadSize;
    	extern Uint16 RamfuncsRunStart;
    	memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);

    because I try to blink a LED using

    DELAY_US(100000L);

    but processor seems to stall in this routine

  • I load

    {$CONTROLSUITE}\device_support\f28m35x\v200\F28M35x_examples_Dual\flash_exe

    both C28X and M3 code,

    I modify M3 code adding below snippet to leave C28X turn on/off LD3 on demo board

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
    GPIOPinConfigureCoreSelect(GPIO_PORTC_BASE, GPIO_PIN_7, GPIO_PIN_C_CORE_SELECT);

    I modify C28X code adding below snippet

        for(;;)
        {
    #ifdef _DELAY_US_CODE
        	DELAY_US(100000L);
    #else
        	long z=(150E6)/32;
        	while(z--)asm(" nop");
    #endif
        	EALLOW;
        	GpioCtrlRegs.GPCDIR.bit.GPIO71	= 1;
        	GpioDataRegs.GPCDAT.bit.GPIO71	= !GpioDataRegs.GPCDAT.bit.GPIO71;
        	EDIS;
        }

    if I use while (which is in flash) LD3 blink, if I use DELAY_US (which is in RAM, copied by memcpy) LD3 doesn't blink,

    remember that I'm not using emulator and M3 call

    IPCMtoCBootControlSystem(CBROM_MTOC_BOOTMODE_BOOT_FROM_FLASH);   

    can someone help me ?