工具/软件:TI C/C++编译器
你(们)好。
我们使用的是 DSP 芯片"TMS320F2810"、当我们编译项目时、我们看到如下所示。
什么是"ramfuncs"? "ramfuncs"的用法是什么、为什么我们有该错误10247-D
谢谢
Ganesh
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI C/C++编译器
你(们)好。
我们使用的是 DSP 芯片"TMS320F2810"、当我们编译项目时、我们看到如下所示。
什么是"ramfuncs"? "ramfuncs"的用法是什么、为什么我们有该错误10247-D
谢谢
Ganesh
您好、Ganesh、
请检查工程的链接器命令文件。 您可以调整分区的大小。
请参阅以下链接。 它解释了包括 ramfuncs 部分在内的各个部分。
software-dl.ti.com/.../sdto_cgt_Linker-Command-File-Primer.html
Ganesh、
除了 Santosh 提供的详细信息之外、我还想提供 ramfuncs 部分的使用上下文。
如您所知、最终的嵌入式应用程序会将所有已初始化的段映射到闪存(而不是 RAM)。 这样、应用程序驻留在闪存中、当器件部署在现场并加电时、器件将引导至闪存(闪存引导配置)并执行应用程序。 但是、出于性能原因、应用程序可能必须从 RAM 执行某些代码(RAM 为0等待)。 此外、有些器件/闪存初始化例程只应从 RAM 执行。 您希望从 RAM 中执行的所有这些函数都可以映射到 ramfuncs 部分(在最新的编译器中称为 TI.ramfunc)。 如 Santosh 共享的链接中所述、您可以为链接器 cmd 文件中的加载指定一个闪存地址、为该段的运行指定一个 RAM 地址。 此函数的链接器放置可确保控制到达 RAM 位置而不是闪存执行。 因此,在应用程序中,您需要在执行此段中的任何代码之前调用 memcopy()。 memcopy()将所有内容从闪存复制到 RAM。 如果您不复制、当 CPU 从未初始化的 RAM 中提取垃圾时、您的应用程序将以 ITRAP 结束。
您可以查看有关 从闪存运行应用的应用手册(spra958)
请注意、此应用手册最近未更新。 如有任何疑问、请告知我们。
谢谢、此致、
Vamsi