从特定内存地址调用C函数? (TI代码 Composer 工作室3.3)

标签 c memory-management signal-processing

我正在尝试调用驻留在特定内存地址 (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/

相关文章:

c - 将字符串解析为 C 中的数组?

c - 在 C 中模拟 lambda 表达式的优雅方式

python - Pandas 数据框 - 选择行并清除内存?

c++ - 在返回泄漏的内存时修复内存泄漏?

java - 使用低通滤波器在频域中去除信号中的白噪声

python - 汉宁窗值在 Python 和 Matlab 中不匹配

c - 如何在终端中接受密码而不显示密码

c - 如何在 c 中正确使用 scandir()?

c++ - C/C++ 转换为程序集,低级内存行为 : how is it done?

c++ - 在 C++ 中将 uint8_t 缓冲区转换为复杂的浮点缓冲区