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.

[FAQ] [参考译文] [常见问题解答] AM2634-Q1:如何使用 CCS Studio 编译 MCAL 项目?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1166635/faq-am2634-q1-how-to-use-ccs-studio-to-compile-my-mcal-projects

器件型号:AM2634-Q1

目前、MCAL 项目似乎是基于 makefile 的环境、如何使用 CCS Studio 轻松创建、编译和调试基于 MCAL 的项目? 我们看到有关缺少汇编文件和源文件的大量错误。 如何解决此问题?  

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

    以下是我为实现这一目标而采取的步骤以及需要注意的一些重要事项

    1. 通过从 MCU+SDK 导入、在 CCS Studio 中创建一个空项目。
    2. CCS 工程基于 makefile、您希望编译的任何源文件都应在 makefile 文件中指定、 但是、CCS Studio 非常复杂、足以为您执行此操作、即、如果添加了".c"源文件、并且在完成编译工程时、编译依赖项将自动添加到 makefile 文件中、如下所示  

          

     

    1. 现在、在 CCS Studio 中编译 MCAL 文件的任务更多是移植工作、我们需要逐个将独立文件放入 CCS 项目中、并生成所需的文件列表、 在这种情况 下、我已将所有这些内容添加到名为"mcal_SRCS"的文件夹中、当我触发生成时、CCS 将识别源、并对 makefile 进行适当的更改并自动生成。
    2. 在执行此操作的过程中、会有许多定义作为汇编文件的一部分(主要是启动代码、与矢量相关的代码)、但在 CCS 中编译 asm 文件并不是很直接、而后者需要更改编译器标志、如下所示。 为了 在 CCS 中编译 asm 文件、我们需要添加"-x ti-asm"标志。 如需更多信息、请参阅 TI-ARM-CLANG 编译器用户指南(编译器用户指南)第353页 、第 3.5.3节 TI-Syntax Arm Assembler  






    3. 完成此操作并进行编译后、 成功编译后、您应该会在"Debug/"文件夹中看到 ASM 文件的目标文件、如下所示  



    4. 编译后、链接步骤就到了、很可能会在这里看到问题、因为 MCAL 使用完全不同的链接器脚本、而基于 CCS 的工程使用不同的链接器。 由于在两个链接器中重新定义了区域、因此可以看到许多区域重叠错误。 仔细观察这里并调整存储器区域名称可解决此问题、如下所示(仅在一个链接器脚本中声明区域的方法)



     

    1. 这些步骤完成后、您应该能够顺利编译、并生成.out 文件、这些文件可以加载到 CCS 工程中并直接在 EVM 上运行。 请注意、来自 Linker 脚本的警告很少、我尚未解决。 除上述几点外、请确保将以下预定义符号添加到 CCS 工程设置中、因为 MCAL Compiler.h 文件需要这些符号来验证 AUTOSAR 版本和 Memmaps 文件、以了解编译器类型(clang 或 Diab) 如果未提供该选项、您将看到许多有关 pragma 的编译器旧警告。 (在 CCS 项目设置中添加以下符号)

    希望这对您自己创建 CCS 集成 MCAL 程序有帮助且非常清晰。 附加了一个示例项目、该项目从 MCAL 编译"mcu_app.c"示例、并将其替换为您需要的任何示例、并对其进行相应编译

    .e2e.ti.com/.../mcal_5F00_ccs_5F00_integration_5F00_demo.zip

    谢谢