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.

[参考译文] CCS:是否可以将特定(已知)位置的静态库与 TI#39;s MSP432工具链链接?

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/950819/ccs-is-it-possible-to-link-a-static-library-at-a-particular-known-location-with-ti-s-msp432-toolchain

工具/软件:Code Composer Studio

我正在设置一个实际固件、该固件需要自定义引导加载程序和主应用程序。 我认为很明显、我应该将这些项目保留为单独的 CCS 项目、但实际上它们可能会存储在同一个源代码库中。

其他开发团队发现、管理固件这两个"半部分"的最有效方式是什么? 在"SimpleLink MSP432无线 Wi-Fi 更新 " Academy 教程(在 WiFi SDK 文档 中:http://dev.ti.com/tirex/explore/node?node=ABcd3tIkTEyB-4cx9ZIVxA__s6qGmnm__LATEST)中、它们有一个有趣的诀窍:

主应用工程包括一个静态字节数组、其中预编译了引导加载程序映像的副本、为编译器进行了注释、因此默认情况下会将其放置在正确的存储器区域中。 因此,当您完成本教程时,即首次刷写设备时,它只能正常工作Registered,并使用固件的[引导加载程序与 APP]两部分刷写芯片。 在为实际 FOTA 准备纯应用程序映像时、使用读者需要做的工作是手动"注释掉"[或者我只希望 CCS 从编译中排除] msp432p401_bootloader.c 文件、以便引导加载程序不属于该部署。

这对于教程来说非常有用、但也是一个工作流、可以尝试为未来的开发和维护团队实现自动化和记录。 我想知道我是否可以使用静态库、而不是像教程那样将我自己的固件引导加载程序部分转换为 C 代码。 是否可以让 CCS 将特定静态库链接到存储器中的特定硬编码位置?

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

    您好 Nathan、

    让我为您研究一下这个问题。  我将在24小时内回复。

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

    您好、Nathan、

    根据我们的 SW 团队的说法、创建静态库是 CCS 中记录在案的过程、不应成为问题。

    https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_getting-started.html#creating-a-new-ccs-project

     关于将库内容放置在特定的存储器位置,您需要修改链接器命令文件,并利用链接器选项 –library 选项,如 spnu118的“8.5.5.5指定库或存档成员作为输入到输出段”一节所述。

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

    在我的项目中尚未圈回这一步、但我想说、这确实与我所需的内容完全相同、并且提供了一些查找相关选项的好提示。 希望尽快确认。 谢谢你丹尼斯!

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

    您好、Nathan、

    非常好。  现在、我将关闭该线程。  如果您想更新此论坛以获得他人的好处、请单击"这未解决我的问题"按钮、并使用更多信息回复此主题。
    如果此主题锁定、请单击"提出相关问题"按钮、您始终可以链接回此主题。


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

    能够确认该技术确实有效、至少在链接过程中是如此。 回顾一下、我们发现图书馆仍然被视为图书馆。 这意味着主(应用)代码引用的任何符号(在引导加载程序中)都将放置在所请求的存储器部分中。 为了避免出现有关该段甚至不存在的警告、我必须手动-至少保留一个符号(CCS 编译> ARM 链接器>高级选项>符号管理)或从应用代码中定义和使用外部引用。

    我怀疑我在这里倒错了树、但如果我继续尝试做这件事、可能会问一个相关的后续问题。    不幸的是、上列出的其他选项也相当不丰富。