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.

TMS320F28P650DK: The sysconfig can not assigns CLA program in RAMLS8 and RAMLS9 correctlly.

Part Number: TMS320F28P650DK
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE

Tool/software:

Hi, respectful Ti's SYSCONFIG team.

    I found a bug when i using sysconfig to assign the cla program in the RAMLS8 and RAMLS9, because in the .cmd file I set the RAMLS8 and RAMLS9 with the value 0x04000 and 0x06000 like the figure 1. indicated. But automatically derived .c files by sysconfig cannot  assign the program  in the correct address because the MEMORY MAP of CPU and CLA about RAMLS8 and RAMLS9 are different, it is indicated in the figure 2. So, could you fix this bug?

Thanks.

Mingbo Song

  

  • Hi,

    User need to use the CPU address to load and CLA address for run. Did you try running the generated code and saw the issue. 

    Vivek Singh

  • Hi, Vivek.

    Yes, I'm sure of that. When I tried using the sysconfig to configurate the CLA, regardless of whether the CLA memory config or the CLA task address regist. The code generated by the sysconfig has this problem. Because the sysconfig generate the configuration code automatically, so the tool does not suggesst developer to modify the code, so I try another way to fix this problem. Firstly, cancel using sysconfig to configure the CLA but manually, before memcpy the CLA task code from FLASH BANK to RAMLS8 and RAMLS9, I give the W/R access of these two RAM from CLA back to CPU(because sysconfig's code run before user's configuration code, at this moment the W/R access is CLA's), then memcpy form LOAD to RUN, otherwise the CPU will not MEMCPY successfully. Indicated in following code segment. But I'd still like to be able to use sysconfig exclusively for all of the device configurations.

    Thanks.

    Mingbo Song

    void CLA_init()
    {
    #ifdef _FLASH
    #ifndef CMDTOOL // Linker command tool is not used

    extern uint32_t Cla1ProgRunStart, Cla1ProgLoadStart, Cla1ProgLoadSize;
    extern uint32_t Cla1ConstRunStart, Cla1ConstLoadStart, Cla1ConstLoadSize;

    //
    // Select LS8RAM and LS9RAM to be the programming space for the CLA
    // First configure the CLA to be the controller for LS8,LS9 and then
    // set the space to be a program block
    //
    MemCfg_setLSRAMControllerSel(MEMCFG_SECT_LS8,MEMCFG_LSRAMCONTROLLER_CPU_ONLY);
    MemCfg_setCLAMemType(MEMCFG_SECT_LS8,MEMCFG_CLA_MEM_PROGRAM);

    MemCfg_setLSRAMControllerSel(MEMCFG_SECT_LS9,MEMCFG_LSRAMCONTROLLER_CPU_ONLY);
    MemCfg_setCLAMemType(MEMCFG_SECT_LS9,MEMCFG_CLA_MEM_PROGRAM);

    //
    // Copy the program and constants from FLASH to RAM before configuring
    // the CLA
    //
    memcpy((uint32_t *)((uint32_t)&Cla1ProgRunStart + (0x1E000U)), (uint32_t *)&Cla1ProgLoadStart,
    (uint32_t)&Cla1ProgLoadSize);
    memcpy((uint32_t *)&Cla1ConstRunStart, (uint32_t *)&Cla1ConstLoadStart,
    (uint32_t)&Cla1ConstLoadSize );

    //
    // Select LS8RAM and LS9RAM to be the programming space for the CLA
    // First configure the CLA to be the controller for LS8,LS9 and then
    // set the space to be a program block
    //
    MemCfg_setLSRAMControllerSel(MEMCFG_SECT_LS8,MEMCFG_LSRAMCONTROLLER_CPU_CLA1);
    MemCfg_setCLAMemType(MEMCFG_SECT_LS8,MEMCFG_CLA_MEM_PROGRAM);

    MemCfg_setLSRAMControllerSel(MEMCFG_SECT_LS9,MEMCFG_LSRAMCONTROLLER_CPU_CLA1);
    MemCfg_setCLAMemType(MEMCFG_SECT_LS9,MEMCFG_CLA_MEM_PROGRAM);


    #endif //CMDTOOL
    #endif //_FLASH

    CLAInvCtrlLaw_init();
    }

  • Ok, thanks. We'll check this and get back to you.

  • Hi,

    Our SW team has confirmed that this is known issue and they will be fixing it in next release. Mean while you can refer to the example (C2000Ware\driverlib\f28p65x\examples\c28x\cla\cla_asin_ls8_9) in C2000Ware to make any manual changes.

    Vivek Singh

  • Hi, Vivek.

    Thanks a lot. Looking forward to your next release version.

    Mingbo Song