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.

RTOS/F28M36P63C2: F28M36P63C2 low power mode

Part Number: F28M36P63C2
Other Parts Discussed in Thread: CONTROLSUITE

Tool/software: TI-RTOS

Hello

Now i have a qusetion about low power mode of F28M36P63C2.

I want to into the low power mode when i  push the key, but when i use the "wfi" command in my task, it is don't into the low power mode.

So I want to test the demo source(Sleep_Low_Power_Mode_Wakeup) in "controlSUITE", but when i bulid the "C28" project, there is some error like below:

Do you have any sugestion about low power mode of F28M36P63C2?

<Linking>
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 46: error:
   RAML0 memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 46: error:
   RAML0 memory range overlaps existing memory range RAML0
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 47: error:
   RAML1 memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 47: error:
   RAML1 memory range overlaps existing memory range RAML1
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 64: error:
   BEGIN memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 69: error:
   FPUTABLES memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 69: error:
   FPUTABLES memory range overlaps existing memory range FPUTABLES
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 70: error:
   IQTABLES memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 70: error:
   IQTABLES memory range overlaps existing memory range IQTABLES
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 71: error:
   IQTABLES2 memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 71: error:
   IQTABLES2 memory range overlaps existing memory range IQTABLES2
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 72: error:
   IQTABLES3 memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 72: error:
   IQTABLES3 memory range overlaps existing memory range IQTABLES3
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 74: error:
   BOOTROM memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 74: error:
   BOOTROM memory range overlaps existing memory range BOOTROM
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 76: error:
   RESET memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 76: error:
   RESET memory range overlaps existing memory range RESET
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 82: error:
   BOOT_RSVD memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 82: error:
   BOOT_RSVD memory range overlaps existing memory range BOOT_RSVD
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 84: error:
   RAMM1 memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 84: error:
   RAMM1 memory range overlaps existing memory range RAMM1
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 85: error:
   RAML2 memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 85: error:
   RAML2 memory range overlaps existing memory range RAML2
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 86: error:
   RAML3 memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 86: error:
   RAML3 memory range overlaps existing memory range RAML3
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 88: error:
   CTOMRAM memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 88: error:
   CTOMRAM memory range overlaps existing memory range CTOMRAM
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 89: error:
   MTOCRAM memory range has already been specified
"C:/ti/controlSUITE/device_support/f28m36x/v208/F28M36x_common/cmd/F28M36x_generic_C28_FLASH.cmd", line 89: error:
   MTOCRAM memory range overlaps existing memory range MTOCRAM
error: errors encountered during linking; "LPM_Idle_c28.out" not built
 
>> Compilation failure
makefile:145: recipe for target 'LPM_Idle_c28.out' failed
gmake: *** [LPM_Idle_c28.out] Error 1
gmake: Target 'all' not remade because of errors.

  • Those build error messages indicate that you have two linker files included and being used in the build process.

    Which build configuration are you using?
    Have you made any changes to the project?
    Check your Project Explorer view- is there a linker file in the list?
    Check the Project Properties -> Build -> C2000 Linker -> File Search Path - is there also a linker file in the Include list?

    -Mark
  • Hello Mark:

    Thank you for your reply!

    You are right! There have two linker files included. I delete one of item, there is no error when i build C28 project.

    But i  have another problem about "Sleep_Low_Power_Mode_Wakeup", After upgrade the FW, M3 flash can not be power down.

    The FW alway stay the "M3_Flash_Sleep" funtion.Please check below source(blue part).

    Is it relate to hardware? I check the boot mode,  The PF2_GPIO34、PF3_GPIO35、PG7_GPIO47、PG3_GPIO43 is high. 

    And if i  want to used the low power mode, Is it necessary to power down the flash?

    How to used the "wfi" command, The demo source used the "wfi" in main funtion, Can i used wfi in the task?

    Have a nice day!

    void M3_Flash_Sleep(void)
    {
     // Allow writes to protected registers.
     HWREG(SYSCTL_MWRALLOW) = 0xA5A5A5A5;
     HWREG(FLASH_CONFIG_BASE + FLASHCTRL_O_FBFALLBACK) = 0x0; // Change Bank's fall
     // back mode to sleep
     HWREG(FLASH_CONFIG_BASE + FLASHCTRL_O_FPAC1) = 0x0 ;  // Change the Pump's
     // fallback mode to
     // sleep and PSLEEP
     // value of register 0
     HWREG(FLASH_CONFIG_BASE + FLASHCTRL_O_FPAC2) = 0x0 ;  // Change Pump's
     // active grace period
     // to 0
     __asm(" NOP");        // Adding a delay to give Flash wrapper some time
     //alway stay while
     while (HWREG(FLASH_CONFIG_BASE + FLASHCTRL_O_FBPRDY) != 0)  // Wait for M3
     {                                                           // Bank and Pump
     }                                                           // to go to
     // inactive state
     return;
    }
    
    
    void main(void)
    {
     // Initializing variables
     volatile unsigned int IPC_CTOMx = 0;
     volatile unsigned int IPC_MTOCx = 0;
     int i = 0;
     // Allow writes to protected registers.
     HWREG(SYSCTL_MWRALLOW) = 0xA5A5A5A5;
     // Setup main clock tree for 75MHz - M3 and 150MHz - C28x
     SysCtlClockConfigSet(SYSCTL_SYSDIV_1 | SYSCTL_M3SSDIV_2 | SYSCTL_USE_PLL |
       (SYSCTL_SPLLIMULT_M & 0x0F));
     // Register M3 Interrupt Handlers
     IntRegister(INT_TIMER0A, Timer0IntHandler);
     // Setup for M3 Sleep
     // RCC to enable Auto Clock gating to switch to SCGCx
     // control on sleep
     HWREG(SYSCTL_RCC) = 0x08000000;
     // Enable all peripheral clocks
     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA | SYSCTL_PERIPH_GPIOB |SYSCTL_PERIPH_GPIOC);
     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD | SYSCTL_PERIPH_GPIOE |SYSCTL_PERIPH_GPIOF);
     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG | SYSCTL_PERIPH_GPIOH |SYSCTL_PERIPH_GPIOJ);
     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOM);
    //#ifdef _STANDALONE
    //#ifdef _FLASH
     //  Send boot command to allow the C28 application to begin execution
     IPCMtoCBootControlSystem(CBROM_MTOC_BOOTMODE_BOOT_FROM_FLASH);
    //#else
     //  Send boot command to allow the C28 application to begin execution
     //IPCMtoCBootControlSystem(CBROM_MTOC_BOOTMODE_BOOT_FROM_RAM);
    //#endif
    //#endif
     // Do a weak Pull-up on all pins of all GPIO ports to minimize leakage
     GPIOPadConfigSet(GPIO_PORTA_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);   // PORT A, all 8 pins = 0xFF, Weak Pull-up
     GPIOPadConfigSet(GPIO_PORTB_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTC_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTD_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTE_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTF_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTG_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTH_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTJ_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTM_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPinTypeGPIOOutput(GPIO_PORTM_BASE, GPIO_PIN_0); 
     
     
     // Configure CSEL to transfer control to C28 for GPIO 2 and 3
     HWREG(GPIO_PORTA_BASE+ GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
     HWREG(GPIO_PORTA_BASE+ GPIO_O_CR) |= 0x0000000C;
     // Wait for some time
     for (i=0;i<20;i++){};
     HWREG(GPIO_PORTA_BASE + GPIO_O_CSEL) = 0xC;
     // Disable all peripheral clocks in Run mode Clock Gating register (RCGCx)
     HWREG(SYSCTL_RCGC0) = 0x0;
     HWREG(SYSCTL_RCGC1) = 0x0;
     HWREG(SYSCTL_RCGC2) = 0x0;
     HWREG(SYSCTL_RCGC3) = 0x0;
     // Disable all peripheral clocks except Timer0
     // For this example, all peripherals except Timer0 are disabled in LPM (using SCGCx register)
     // Timer0 is enabled to be used as the wake-up source
     // Users can choose to keep selected peripherals ON in LPM by enabling the corresponding
     // bits in the SCGCx register
     HWREG(SYSCTL_SCGC0) = 0x0;
     HWREG(SYSCTL_SCGC1) = 0x0;
     HWREG(SYSCTL_SCGC2) = 0x0;
     HWREG(SYSCTL_SCGC3) = 0x0;
     // Master must power down flash pump before C28 on revE and newer devices
     GPIOPinWrite(GPIO_PORTM_BASE,GPIO_PIN_0,0);
     // Sync with C28x before Flash Power down.
     IpcSync(IPC_FLAG6);
     // Power down flash
     M3_Flash_Sleep();
     GPIOPinWrite(GPIO_PORTM_BASE,GPIO_PIN_0,~0);
     // Set the IPC7 to indicate C28 to Power down Flash then enter IDLE mode
     SendIpcFlag(IPC_FLAG7);
     // Wait for IPC8 bit in CTOMIPCSTS that indicates C28 is in IDLE
     WaitForIpcFlag(IPC_FLAG8);
     // Configure Timer0
     Timer0_Config();
     // Execute 'WFI'instruction to put M3 in SLEEP
     __asm("    wfi\n");
     // On Wake-up, send a wakeup interrupt to C28 (M2CIPC1INT)
     // Then set status= PASS, since M3 is out of SLEEP mode executing past WFI
     Status = M3_STATUS_PASS;
     //Set the flag to wake C28 from IDLE
     SendIpcFlag(IPC_FLAG1);
     for (;;)
     {
      // Wait in infinite loop
     }
    }
    

  • Glad that the duplicate linker file was the issue.

    quick response- it is not required for the Flash to be in low power mode while the device enters LPM. Usually you are entering LPM to reduce the overall power consumption for a period of time, so putting the flash into a low power state is beneficial to that end. One downside of powering down the flash is the flash wake up times. If you need to reduce power, but require the fastest response time to a wake event, you might not want to put the flash in low power mode. It is a tradeoff between wake-up response time and power consumption.

    Based on your original issue, I suspect that you are trying to execute your program from FLASH memory. By default, not all of your code will copy to RAM to execute- Usually main is not copied to RAM. There may be accesses to the Flash keeping it out of low power mode- the flash wakes up on a flash access. If your main code is running from flash, I suspect that the while loop waiting for the flash to enter low power mode, is actually in Flash memory, blocking the low power mode entry. You can verify this by looking at the disassembly view in CCS or the debug view (where your connections is) to see what memory address your program counter is at.

    If my deductions above are correct, you can create a "enter LPM" function and declare it to run from RAM. This new function should call the M3_Flash Sleep function, do system prep before entering LPM, then finally enter LPM. The M3_Flash_Sleep function should also be run from RAM.

    For future reference, please avoid posting more than a few lines of code into the plain text editor. it is not formatted, and very hard to follow. There is a code formatter tool in the rich text editor that will at least format the code.

    -Mark
  • Hello Mark:

    I upgrade the demo source(Sleep_Low_Power_Mode_Wakeup), and add the source code  "#pragma CODE_SECTION(M3_Flash_Sleep, ".data");"

    But flash is also can not power down, If the flash has been power down, the led will be close(i  add the test source).

    I want to confirm how can i use the demo source into the LPM? How about C28 demo source, is it need to change?

    void main(void)
    {
     // Initializing variables
     volatile unsigned int IPC_CTOMx = 0;
     volatile unsigned int IPC_MTOCx = 0;
     int i = 0;
     // Allow writes to protected registers.
     HWREG(SYSCTL_MWRALLOW) = 0xA5A5A5A5;
     // Setup main clock tree for 75MHz - M3 and 150MHz - C28x
     SysCtlClockConfigSet(SYSCTL_SYSDIV_1 | SYSCTL_M3SSDIV_2 | SYSCTL_USE_PLL |
       (SYSCTL_SPLLIMULT_M & 0x0F));
     // Register M3 Interrupt Handlers
     IntRegister(INT_TIMER0A, Timer0IntHandler);
     // Setup for M3 Sleep
     // RCC to enable Auto Clock gating to switch to SCGCx
     // control on sleep
     HWREG(SYSCTL_RCC) = 0x08000000;
     // Enable all peripheral clocks
     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA | SYSCTL_PERIPH_GPIOB |SYSCTL_PERIPH_GPIOC);
     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD | SYSCTL_PERIPH_GPIOE |SYSCTL_PERIPH_GPIOF);
     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG | SYSCTL_PERIPH_GPIOH |SYSCTL_PERIPH_GPIOJ);
     SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOM);
    //#ifdef _STANDALONE
    //#ifdef _FLASH
     //  Send boot command to allow the C28 application to begin execution
     IPCMtoCBootControlSystem(CBROM_MTOC_BOOTMODE_BOOT_FROM_FLASH);
    //#else
     //  Send boot command to allow the C28 application to begin execution
     //IPCMtoCBootControlSystem(CBROM_MTOC_BOOTMODE_BOOT_FROM_RAM);
    //#endif
    //#endif
     // Do a weak Pull-up on all pins of all GPIO ports to minimize leakage
     GPIOPadConfigSet(GPIO_PORTA_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);   // PORT A, all 8 pins = 0xFF, Weak Pull-up
     GPIOPadConfigSet(GPIO_PORTB_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTC_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTD_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTE_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTF_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTG_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTH_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTJ_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPadConfigSet(GPIO_PORTM_BASE,0xFF,GPIO_PIN_TYPE_STD_WPU);
     GPIOPinTypeGPIOOutput(GPIO_PORTM_BASE, GPIO_PIN_0);  /* Work Led */
     
     GPIOPinTypeGPIOOutput(GPIO_PORTM_BASE,GPIO_PIN_0);
     
     // Configure CSEL to transfer control to C28 for GPIO 2 and 3
     HWREG(GPIO_PORTA_BASE+ GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
     HWREG(GPIO_PORTA_BASE+ GPIO_O_CR) |= 0x0000000C;
     // Wait for some time
     for (i=0;i<20;i++){};
     HWREG(GPIO_PORTA_BASE + GPIO_O_CSEL) = 0xC;
     // Disable all peripheral clocks in Run mode Clock Gating register (RCGCx)
     HWREG(SYSCTL_RCGC0) = 0x0;
     HWREG(SYSCTL_RCGC1) = 0x0;
     HWREG(SYSCTL_RCGC2) = 0x0;
     HWREG(SYSCTL_RCGC3) = 0x0;
     // Disable all peripheral clocks except Timer0
     // For this example, all peripherals except Timer0 are disabled in LPM (using SCGCx register)
     // Timer0 is enabled to be used as the wake-up source
     // Users can choose to keep selected peripherals ON in LPM by enabling the corresponding
     // bits in the SCGCx register
     HWREG(SYSCTL_SCGC0) = 0x0;
     HWREG(SYSCTL_SCGC1) = 0x0;
     HWREG(SYSCTL_SCGC2) = 0x0;
     HWREG(SYSCTL_SCGC3) = 0x0;
     // Master must power down flash pump before C28 on revE and newer devices
     GPIOPinWrite(GPIO_PORTM_BASE,GPIO_PIN_0,0); //OPEN LED
     // Sync with C28x before Flash Power down.
     IpcSync(IPC_FLAG6);
     // Power down flash
     M3_Flash_Sleep();
     
    GPIOPinWrite(GPIO_PORTM_BASE,GPIO_PIN_0,~0);//CLOSE LED
     // Set the IPC7 to indicate C28 to Power down Flash then enter IDLE mode
     SendIpcFlag(IPC_FLAG7);
     // Wait for IPC8 bit in CTOMIPCSTS that indicates C28 is in IDLE
     WaitForIpcFlag(IPC_FLAG8);
     // Configure Timer0
     Timer0_Config();
     // Execute 'WFI'instruction to put M3 in SLEEP
     __asm("    wfi\n");
     // On Wake-up, send a wakeup interrupt to C28 (M2CIPC1INT)
     // Then set status= PASS, since M3 is out of SLEEP mode executing past WFI
     Status = M3_STATUS_PASS;
     //Set the flag to wake C28 from IDLE
     SendIpcFlag(IPC_FLAG1);
     for (;;)
     {
      // Wait in infinite loop
     }
    }
    
    
    
    #pragma CODE_SECTION(M3_Flash_Sleep, ".data");
    void M3_Flash_Sleep(void)
    {
     // Allow writes to protected registers.
     HWREG(SYSCTL_MWRALLOW) = 0xA5A5A5A5;
     HWREG(FLASH_CONFIG_BASE + FLASHCTRL_O_FBFALLBACK) = 0x0; // Change Bank's fall
     // back mode to sleep
     HWREG(FLASH_CONFIG_BASE + FLASHCTRL_O_FPAC1) = 0x0 ;  // Change the Pump's
     // fallback mode to
     // sleep and PSLEEP
     // value of register 0
     HWREG(FLASH_CONFIG_BASE + FLASHCTRL_O_FPAC2) = 0x0 ;  // Change Pump's
     // active grace period
     // to 0
     __asm(" NOP");        // Adding a delay to give Flash wrapper some time
     while (HWREG(FLASH_CONFIG_BASE + FLASHCTRL_O_FBPRDY) != 0)  // Wait for M3
     {                                                           // Bank and Pump
     }                                                           // to go to
     // inactive state
     return;
    }

  • Yes, you will also need to be sure that the c28x code is not executing from Flash either. follow the same procedure as you did for the M3 core on the C28x.

    Again, please avoid dumping more than a few lines of code into the post. If you need to include code, use the code formatter tool, or attach a text file to the post. I have edited your posts to show you what the formatter tool looks like.

    Thanks,
    Mark
  • Hello Mark:

    I try to declare the funtion run from RAM of M3 and C28("#pragma CODE_SECTION(M3_Flash_Sleep, ".data");"), But also can not power down the flash.

    How to declare the funtion run from RAM ? Do you have any suggestion?

    Look forward to your reply.

  • HI,

    Here is a wiki with a few links on the topic. processors.wiki.ti.com/.../FAQs

    I highly encourage you to work through the workshop for this device : processors.wiki.ti.com/.../C2000_Archived_Workshops


    If you cannot get it working, after going through these, please let me know.

    -Mark
  • HI there,
    Any updates?
    -Mark