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.

[参考译文] 编译器/TMS570LS3137-EP:HALCoGen 生成的 FreeRTOS 的链接问题

Guru**** 2446730 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/626490/compiler-tms570ls3137-ep-link-problem-with-halcogen-generated-freertos

器件型号:TMS570LS3137-EP
主题中讨论的其他器件:HALCOGEN

工具/软件:TI C/C++编译器

您好!

我已经使用 HALCoGen 04.07.00和 CCS 创建了 FreeRTOS 项目  7.1.0.00016。 在不添加任何我自己的源代码/文件的情况下、工程会成功编译。  问题是、每当我添加任何 FreeRTOS 调用时、都会出现链接器错误、表示符号未解析。  是否需要为 FreeRTOS 配置链接器、不确定如何处理

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我能够顺利构建示例 FreeRTOS 项目、但没有更多经验。 HALCoGen
    帮助->帮助主题->FreeRTOS 页面指向此链接 :www.freertos.org/FreeRTOS-quick-start-guide.html
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复。

    该链接实际上并不相关、我不想寻求有关如何"使用"FreeRTOS、从 FreeRTOS.org 上的源代码构建 FreeRTOS 或自行完成端口的帮助。  当我尝试在使用最新版本 HALCoGen (当前为04.07.00)生成的项目中添加 FreeRTOS 调用时、我将尝试弄清为什么我会遇到链接器错误。  此外、所有由 HACoGen 生成的 FreeRTOS 源文件都能无误地编译、如果我在程序中没有进行任何 FreeRTOS 调用、编译也可以、但只要我添加任何 FreeRTOS 函数调用、链接器似乎就无法解决该问题。  如果我使用 HALCoGen 版本04.05.01以完全相同的方式重新创建项目、以生成文件、则一切正常。

    您指的是哪个演示项目? TI 示例之一? 您使用的是哪些工具/版本?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请分享链接器错误。
    如果我使用 HALCoGen 4.07.00和 FreeRTOS 向您发送 CCS 示例项目、是否有帮助?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您有一个示例项目、我将获取一个示例项目。  以下是链接器错误:

    错误#10234-D:未解析的符号仍然存在
    错误#10010:链接期间遇到错误;未生成"FreeRTOStest.out"

    说明资源路径位置类型
    未解析的符号 xQueueCreateMutexStatic、首先在./source/os_mpu_wrappers.obj FreeRTOStest C/C++ problem 中引用

    这是 sys_main.c 源代码

    SemaphoreHandle_t test_Mutex;
    
    int main (void)
    {
    //用户代码开始(3)*
    
    //创建互斥量
    test_Mutex = xSemaphoreCreateMutex();
    
    //用户代码结束*/
    
    返回0;
    } 

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

    不、我不相信我启用了 gcc 扩展、我查看了 HALCoGen 帮助您启用 gcc "CCS 项目的区域 (Project properties -> Build -> ARM Compiler -> Advanced options -> Language options -> Enable support for gcc extensions)"、但我看不到任何地方可以启用该选项。  我尝试使用"Edit Flags..."手动添加标记 功能 、该功能似乎可以正常工作、但链接错误仍然存在。

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

    您好、Michael、

    这是 HALCoGen 中的一个已知问题。 我们已经为此开了一个 TT。 此修复程序将是下一版本的一部分。

    作为权变措施、请使用附加的文件并替换 HALCoGen\drivers\freertos\portable\ccs\Cortex-R4e2e.ti.com/.../7450.mpu_5F00_wrappers.c 中存在的 MPU_wraper.c 文件

    谢谢、此致、

    Veena