我想在位置 0x3FF802 放置一个函数 void loadableSW (void)。在另一个函数 residentMain() 中,我将使用指向函数的指针跳转到该位置。如何声明函数 loadableSW 来完成这个。为了清楚起见,我附上了 residentMain 的骨架。
更新:目标硬件是 TMS320C620xDSP。由于这是一个航空航天项目,确定性行为是一个理想的设计目标。理想情况下,他们想知道内存的哪一部分包含特定时间的内容。我刚刚知道的解决方案是在链接器文件中定义内存中的一个部分。该部分应从 0x3FF802(放置函数的位置)开始。由于 loadableSW 函数的大小是已知的,因此也可以确定内存部分的大小。然后该指令#pragma CODESECTION ("function_name", "section_name")
可以将该函数放在指定的部分中。
由于测试脚本中不允许使用编译指示指令,我想知道是否有其他方法可以在不使用任何链接器指令的情况下执行此操作。
另外我很好奇。C++ 中的函数有放置语法吗?我知道有一个对象,但功能?
void residentMain (void)
{
void (*loadable_p) (void) = (void (*) (void)) 0x3FF802;
int hardwareOK = 0;
/*Code to check hardware integrity. hardwareOK = 1 if success*/
if (hardwareOK)
{
loadable_p (); /*Jump to Loadable Software*/
}
else
{
dspHalt ();
}
}