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/MOTORWARE:使用 HAL 模块-对调制常见文件的方法有疑问

Guru**** 2589265 points
Other Parts Discussed in Thread: MOTORWARE

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/610084/ccs-motorware-using-hal-module---doubts-regarding-the-approach-of-modyfing-common-files

器件型号:MOTORWARE

工具/软件:Code Composer Studio

您好!

我不熟悉 TI MCU、开始开发一个利用 MotorWare 模块的项目。 TI 鼓励使用其 HAL 模块、而不是直接调用硬件、因此我希望遵守这一要求。 根据我的理解、这意味着外设器件的任何使用都意味着从"C:/ti/Motorware/XX/sw "目录中更改 HAL 源文件。 但是、我发现这种方法存在一些问题:

- MotorWare 软件的未来更新是否不会覆盖这些文件中的更改?

-如果我想创建另一个使用相同模块的项目,该怎么办? 它必须使用相同的文件、并根据不同的项目进行调整!

-说我想在另一台计算机上打开项目。 我不仅要复制项目文件、还要复制整个"sw"目录-这是一个复杂的问题。 如果我不能覆盖已有的文件(例如其他人使用的文件)、该怎么办?

对经验丰富的开发人员来说、一个问题-我对我的问题是否正确、以及您如何解决这个问题?

我一直在考虑复制要更改到项目位置的文件、但#include 依赖项可能会使它变得麻烦。 我可能可以复制整个"sw"目录、但它为我提供了大量我甚至可能不使用的文件。 是否没有更智能的解决方案?

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

    每当您安装新版本的 Motorware 时、都会创建一个新目录;因此、您对模块/驱动程序目录所做的任何更改都应保持不变。

    理论上、您可以创建模块/驱动程序源文件的副本、重命名并将其作为新名称包含在 CCS 工程中。 否则、是的、所有 Motorware 项目都共享一组通用的模块/驱动程序。

    Motorware 的分布式实验室依靠目录结构来保持相对链接的源文件/头文件不变。 您可以选择删除链接并将源文件放置在任意位置并链接到它们、或者选择将其复制到相同的 CCS 工程目录中并以这种方式进行分发。 如果您想在我们设置的框架内工作、那么是的、您很可能需要复制/sw/目录、并进行版本控制或重新分配该目录。 不过、您可以从 CCS 包含选项中选择 Copy into Project Workspace、这将在项目目录中创建本地副本-我们选择不在分布式版本中执行此操作以避免源代码膨胀、 但是、如果您希望拥有本地化版本或独立的项目目录、而不是压缩和共享、这是一个非常可行的选择。

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

    感谢您的回答。

    复制源文件而不是将其链接起来只能解决一半的问题、因为仍有可能出于项目目的而更改的头文件-我担心移动这些头文件会产生大量"未解析的包含"问题、因为文件结构非常复杂。

    我想我只需复制所有新项目的整个"sw"目录、并将其保留在相邻位置。 它的重量为170 MB、因此任何"打包发送"操作都将受到阻碍、但至少我将确保我使用的任何内容都保留在一个位置。 使用相对链接、我应该能够在不同的计算机之间无缝地传输代码。

    除非我"按原样"保留 HAL 层并在其基础上开发程序-使用 HAL 函数实现任何更改、但不直接更改它们。 您是否认为使用此类方法时代码的效率会低得多?

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

    拆分/sw/目录的一个想法是删除/sw/solutions 子目录中不需要的任何电路板+器件对-只是一个想法。


    至于您在上一篇帖子末尾的问题-如果我理解正确、那么使用现有 HAL API 创建代码应该不会有问题。 您不应因使用我们提供的 API 而出现不必要的效率损失。 我是否正确解决了您的问题?


    肖恩