我想从不同的内存位置执行同一组指令。 使用属性和链接器文件,我可以指定函数定义应位于的地址/内存部分:
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")));
但是在这种情况下,我需要具有相同功能定义的多个副本,并且对其中一个进行更改将需要我更改所有这些副本,从而使代码看起来难看。
是否有更好的方法?