我正在尝试调用驻留在特定内存地址 (0x100h) 中的 C 函数,但每次我使用 JTAG 调试器查看函数调用时,它都会跳过它(无函数调用)并继续执行下一个行代码。我将被调用的函数放在 #pragma code_section(used_func, "FUNC_SEC") 中以将其链接到内存地址。实际函数位于 funcs.c 文件中。
我的project.cmd链接器文件具有以下内存和节行..
MEMORY
{
FUNC_SEC : origin = 0x000100, length = 0x0000ff
}
SECTIONS {
CALLED_FUNC : LOAD = FUNC_SEC, PAGE = 0 {
..\release\Tests.obj(.text)
}
}
当查看0x100h地址时,它是空的,这可以解释该函数无法正常工作。我想要完成的是调用驻留在 DSP (TMS320c28x) RAM 区域中的函数并执行它。完成任务后,程序将在 DSP 闪存区域中恢复。
注意,函数名称等已更改..
有人可以帮我解决这个问题吗?谢谢!
最佳答案
您可能想回顾一下您的启动例程。您的函数是否正确地从加载地址复制到执行地址。
关于从特定内存地址调用C函数? (TI代码 Composer 工作室3.3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4376766/