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.

CCS/TMS320F280049C: TMS320F280049 CLA access Peripheral register

Part Number: TMS320F280049C

Tool/software: Code Composer Studio

Hi
In my software, I hope the CLA background task to do something periodically. so I start CpuTimer0 in main() function like this.

void main(void)
{
    InitSysCtrl(); // the CpuTimer0 clock is enabled
    InitCpuTimers();
    CpuTimer0Regs.TCR.all = 0x4000;         //start CpuTimer0, run free with no interrupt
     ...
    while(1){;;;};
}

In file "cla_ex1_background_task_cla.cla"

    uint32_t cntCpuTimer0;
    uint32_t cntTask8;
    __attribute__((interrupt("background"))) void Cla1BackgroundTask ( void )
   {
       while(1)
       {
            cntCpuTimer0 = CpuTimer0Regs.TIM.all;
            cntTask8++;
       }
   }

At this point, the program compile successfully and run normally. In the Expressions window, I can see variable cntTask8 and CpuTimer0Regs.TIM.all is
always changing, but variable cntCpuTimer0 keep to zero, why?
Here's my question is
1. Does CLA can not access CpuTimer register?
2. Does CLA can access other Peripheral register like SPI, SCI, I2C etc?
3. which Peripheral register can CLA access, except AdcxResultRegs.ADCRESULTx ?

Best regards

  • Hello,

    Refer to the device data sheet:

    • The functional block diagram in the device datasheet shows all of the bus connections from the CLA to peripherals.  
    • Peripheral Registers Memory Map lists all of the register sets and which CPU and DMA has access to them. 

    Regards

    Lori