工具与软件:
大家好!
我有一个软件、该软件具有多种工作模式。
代码使用 CPU 或 CLA。 因为 CLA 器件被分为许多功能、我根据当前的工作模式使用这些功能。
但是 CLA 的可用存储器受到限制(仅 LS 空间)、我想知道是否可以定义重叠?
由于我在每个配置中只使用了几个 CLA 函数、因此想法是为实际的工作模式加载相应的函数。
我的 CLA 函数命名如下:y
- CLA1ModeA_xxxx:用于模式 A 的所有 CLA 函数
- CLA1ModeB_xxxx:用于模式 B 的所有 CLA 函数
- 等等
在链接器文件中、我的 CLA 段定义如下:
Cla1Prog : LOAD = FLASHG,
RUN = RAMLS1_5,
LOAD_START(_Cla1funcsLoadStart),
LOAD_END(_Cla1funcsLoadEnd),
RUN_START(_Cla1funcsRunStart),
LOAD_SIZE(_Cla1funcsLoadSize),
PAGE = 0, ALIGN(4)
CLAscratch :
{ *.obj(CLAscratch)
. += CLA_SCRATCHPAD_SIZE;
*.obj(CLAscratch_end) } > RAMLS0, PAGE = 1
.scratchpad : > RAMLS0, PAGE = 1
.bss_cla : > RAMLS0, PAGE = 1
.const_cla : LOAD = FLASHG,
RUN = RAMLS0,
RUN_START(_Cla1ConstRunStart),
LOAD_START(_Cla1ConstLoadStart),
LOAD_SIZE(_Cla1ConstLoadSize),
PAGE = 1
如何将其更改为与 UNION 和 GROUP 一起使用覆盖?
UNION
{
GROUP
{
???
} load = FLASHG, LOAD_START(_taskA_load_start), SIZE(_taskA_size)
GROUP
{
???
} load = FLASHG, LOAD_START(_taskB_load_start), SIZE(_taskB_size)
} run = RAMLS1_5, RUN_START(_task_run_start)
感谢您的任何帮助。
此致
法布里斯