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.

[参考译文] RM48L930:启用 FreeRTOS 互斥量放大器后出现链接器错误;HALCoGen 中的计时器支持

Guru**** 2465890 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/665508/rm48l930-linker-errors-after-enabling-freertos-mutex-timer-support-in-halcogen

器件型号:RM48L930

您好!

我创建了 HALCoGen FreeRTOS 项目(选择了 RM48L950ZWT_FreeRTOS 器件)、并使用默认设置 在 CCSv7中构建了代码 OK。  然后我返回 HALCoGen、 单击"OS"选项卡、并启用了"Use Mutexes"和"Use Recurive Mutexes"。  我还在中添加了一些测试代码以创建 2个任务,然后在 main()中调用 vTaskStartScheduler。

使用此配置、我会得到 缺少函数 xQueueCreateMutexStatic 的链接器错误。   这是因为 FreeRTOSConfig.h 中的默认设置为 CONFIGSUPPORT_STATIC_allocation = 0。   但是、当我将其更改为 configSUPPORT_STATIC_allocation = 1时、我会收到5个其他链接器错误(vApplicationGetIdleTaskMemory、xEventGroupCreate、xQueueGenericCreate、xTaskCreate)。  对此有什么想法吗?  请注意、如果我更改 FreeRTOSConfig.h 中的默认设置、那么下次在 HALCoGen 中生成代码时、这些设置似乎会丢失、因为#define CONFIGSUPPORT_STATIC_ALLOADING 之前没有#ifndef  0。  我不熟悉 HALCoGen 和 FreeRTOS、我缺少什么?  欢迎所有评论!

谢谢、

Keith

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

    更新:我在 以下帖子中找到了我的第一个问题(链接错误)的答案: https://e2e.ti.com/support/microcontrollers/hercules/f/312/p/626490/2320355。  底线是,这是 HALCoGen 4.07.00中的一个已知问题。  您必须使用该帖子中的更新文件替换 MPU_wrapers.c 文件、然后在 HALCoGen 中重新生成代码、然后在 CCS 中重新生成代码。

    我的第二个问题仍然存在...

    此致、

    Keith

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

    如果我理解正确、您的第二个问题是如何更改 configSUPPORT_STATIC_allocation 的默认定义、而不会在下次重新生成代码时丢失该定义?

    这可以通过将此参数的重新定义放置在初始定义之后文件中的某个用户代码段中来实现。 这可能会有问题;但是、如果您需要在没有警告的情况下进行编译、因为这将提供有关 CONFIGSUPPORT_STATIC_allocation 重新定义不兼容的警告。

    第二个选项是将您的 Halcogen 构建目录与您的开发目录分开。 当然、在第一代代码中、您需要将所有文件移动到您的开发项目目录中;但是、对于代码的后续再生、您只能复制所更改的文件。 即、.h 文件不应在代码生成迭代之间发生更改、因此您可以将它们保留在开发区域、而只复制 Halcogen 的更新源文件。

    如果您考虑的第二个问题是有关链路错误、我需要进一步调查。 如果可能、如果您可以将项目压缩并发布到此线程、以便我可以重新创建和调试它、那会很有帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的响应。  这很有帮助。

    Keith