Несколько экземпляров одной и той же функции в нескольких местах в памяти в C - PullRequest
0 голосов
/ 12 октября 2018

Я хочу, чтобы один и тот же набор команд выполнялся из другой области памяти.Используя файл атрибута и компоновщика, я могу указать раздел адреса / памяти, в котором должно находиться определение функции:

void TaskFxn_0(UArg a0, UArg a1) __attribute__((section(".task_0")));

Одно решение для перебора - иметь несколько копий одной и той же функции и помещать их в разныерасположение в памяти:

void TaskFxn_0(UArg a0, UArg a1)  __attribute__((section(".task_0")));
void TaskFxn_1(UArg a0, UArg a1)  __attribute__((section(".task_1")));
void TaskFxn_2(UArg a0, UArg a1)  __attribute__((section(".task_2")));
void TaskFxn_3(UArg a0, UArg a1)  __attribute__((section(".task_3")));
void TaskFxn_4(UArg a0, UArg a1)  __attribute__((section(".task_4")));
void TaskFxn_5(UArg a0, UArg a1)  __attribute__((section(".task_5")));

Но в этом случае мне нужно иметь несколько копий одного и того же определения функции, и внесение изменений в одну из них потребует, чтобы я изменил все из них, чтобы код выглядел уродливо.

Есть ли лучший способ сделать это?

...