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.

[参考译文] AM62A7:使用 fftlib 时的链接器问题

Guru**** 2482225 points
Other Parts Discussed in Thread: FFTLIB

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1445509/am62a7-linker-issue-using-fftlib

器件型号:AM62A7
主题中讨论的其他器件:FFTLIB

工具与软件:

团队成员好
"能否帮助我解决链接器问题、以便在 C7504上从 AM62AXMCU SDK 10.0.0.15实施 fftlib 测试?


我尝试从 fftlib 文件夹中将 fftlib 测试模块 fftLIB_fft1d_i32fc_c32fc_o32fc 部署到 hello_world FreeRTOS 示例项目中。 我在中将"主"函数重命名
fftlib\test\fft_c7x\FFTLIB_fft1d_i32fc_c32fc_o32fc\FFTLIB_fft1d_i32fc_o32fc_d.c
并在工程的 main.c 文件中调用它(hello_world_am62ax-sk_c75ss0-0_freertos_ti-c7000\main.c)

但在构建时、它会遇到链接器故障问题。 我使用了 helloworld 项目中的原始链接器、并添加了以下部分作为 fftlib 源所需的(fftlib\cmake\linkers\c7504\lnk.cmd)。 请检查附件。

最后、它在以下错误中失败:

#17003-D 从函数"TI_profile_setStackDepth"重定位到符号"__TI_stack_size"溢出;33位重定位地址0xf7f341040太大/test/common/TI_profile.obj、无法在32位带符号的 PC 相关字段(类型="R_C7X_PCR_OFFSET_ADD000000KPC _HI27"(配置文件)中编码

失败的功能:

void TI_profile_setStackDepth (void){
#if !defined (_host_Build)&&!defined (disable_stack_profiling)

 int32_t i;

 对于(i = 0;i <((uint64_t)&_STACK_SIZE / 4);i++){
  if (topStack[i]!= 0xDEADBEEF){      //错误
   休息;
  }
 }

 newSP =(i * 4)+(uint64_t) topStack;

 STACKSIZ[ACT_kernel]=(oldSP - newSP);
#endif
}

我发现源代码会在一定程度上检查内存段。 我还尝试了禁用 disable_stack_profiling、此设置允许我成功构建代码、但当我运行调试时、系统无法从"main"函数启动。

我的链接器文件:  

/cfs-file/__key/communityserver-discussions-components-files/791/linker-_2800_1_2900_.txt

关于 CCS、您有没有在 C7上运行 fftlib 的示例? 或者、请指导我如何在 MCU SDK 示例项目上使用 fftlib 库?  
谢谢你
居伊
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Guy、

    对于链接器错误、您将面临以下 wiki 文章 、其中提供了有关重定位溢出错误的一些详细信息、可能导致这些错误的原因以及一些解决方案。

    关于您关于如何在项目中使用 fftlib 的疑问、我正在解决该问题、并会在我获得更新后立即回复您。

    此致、

    开会。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢大家的努力、

    我们正在等待您的消息、  

    此致

    居伊  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shemesh:
    我正在查看您的查询。 请等待明天回复。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shemesh:

    我们的 SDK 中还没有任何基于 FreeRTOS 的 fftlib 示例。

    我建议您不要直接尝试在 FreeRTOS 中运行单元测试、而是先从空的 FreeRTOS 项目开始、导入 fftlib 库(FFTLIB_C7504.lib 应属于 SDK 的一部分)、然后从此处开始构建您的应用程序。 fftlib 内的测试文件夹是一个无 RTOS 项目、并且使用 cmake 进行编译、因此您在尝试在 CCS 中进行编译时可能缺少一些依赖关系。 您可以使用这些文件作为参考来创建 FreeRTOS 工程。 请告诉我,如果你有一个地方. fftlib 的文档位于 mcu_plus_sdk/source/fftlib/docs 下。  

    谢谢!
    Shreyansh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好  Shreyansh、

    感谢您的支持。  

    就我们而言,我们成功地使用 FFTLIB 执行了 NORTOS 项目。 工作正常。 但我们想要添加 GPIO 功能、我们可以切换它直到 TI 的高速缓存初始化点功能、之后它会崩溃。 请参阅进一步的解释和附件,你可以看看它吗?  

    我创建了一个 C7x Empty nortos 项目、并将测试  fft1d_i32fc_c32fc_o32fc 导入到我的项目中。 它可以 正常工作。  
    但如果要在项目中控制 GPIO (GPIO0_41)、Test_Init 只能在调用 FFTLIB_GPIO 函数之前工作。  在 FFTLIB_CPU 使 Test_Init 停止后调用函数 GPIO_pinWriteHigh。 请参阅附件。
    您能在此处说明根本原因吗? 如何才能使 GPIO 与 FFTLIB 配合使用?"

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好  Shreyansh、

    感谢您的支持。  

    我将这个问题发布为新主题、我将关闭此主题。  

    谢谢你

    居伊
    ePiccolo 工程