Other Parts Discussed in Thread: C2000WARE
Tool/software:
I have a question regarding shared memory areas with different logical addresses.
I'm working with the DSP TMS320F28P650 [DataSheet], focusing on CPU1 and its associated CLA. The CLA's program area is allocated to LS9RAM, but the start address of this memory differs depending on whether it's accessed by CPU1 or the CLA. [See Page 266 of the datasheet]
To manage the copy address for CPU1 and the run address for the CLA, I created two separate sections in the linker command file:
-
CLA Program Section (Cla1Prog): This section maps the CLA code with the correct addresses required by linker for the CLA's LS9RAM area.
-
CPU1 Access Section: This section allows CPU1 to determine the start address, enabling it to write to the same LS9RAM area.
I'm wondering if there's a simplified way to do the same.
RAMLS9_CLA : origin = 0x006000, length = 0x002000 // Use only if configured as CLA program memory RAMLS9_CPU : origin = 0x024000, length = 0x002000 // When configured as CLA program use the address 0x6000 #if defined(__TI_EABI__) Cla1ProgCPU : {} LOAD = APPFLASH_CPU1, RUN = RAMLS9_CPU, RUN_START(Cla1ProgRunStart), ALIGN(4) #else Cla1ProgCPU : {} LOAD = APPFLASH_CPU1, RUN = RAMLS9_CPU, RUN_START(_Cla1ProgRunStart), ALIGN(4) #endif #if defined(__TI_EABI__) Cla1Prog : {} LOAD = APPFLASH_CPU1, RUN = RAMLS9_CLA, LOAD_START(Cla1ProgLoadStart), LOAD_SIZE(Cla1ProgLoadSize), ALIGN(4) #else Cla1Prog : {} LOAD = APPFLASH_CPU1, RUN = RAMLS9_CLA, LOAD_START(_Cla1ProgLoadStart), LOAD_SIZE(_Cla1ProgLoadSize), ALIGN(4) #endif