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.

[参考译文] CC2652RB:SYSCFG -定义定制硬件

Guru**** 2577385 points
Other Parts Discussed in Thread: SYSCONFIG, CC2652RB

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/997066/cc2652rb-syscfg---defining-custom-hardware

器件型号:CC2652RB
Thread 中讨论的其他器件:SysConfig

您好-  

我们如何为 syscfg 定义我们自己的定制 PCB/硬件(类似于 LP 的定义方式)?

不仅删除了与 LP 关联的所有内容、还实际定义了替代板、包括命名引脚和硬件接口。 我发现在 syscfg 中很难复制我们通过以前 SDK 版本中的基本电路板文件所能实现的功能。

我们之前从 syscfg 中获取了基本输出文件、并对其进行了更改(但不包括 projectName.syscfg)、以便直接构建到我们的项目中。 每次我们更新 SDK 或在示例项目之间进行更改以向我们的产品添加更多功能时、都很难进行复制。

_________________________________________

我还将在这里添加一些有关 syscfg 运行情况的反馈:它看起来并不一致。  我在这方面有一些经验、整个接口没有响应、当我尝试单击其他模块时、不会更改视图。 发生这种情况时、我尝试保存我的更改、它抛出了一条关于发生某些异常的"OH Snap "消息。 现在似乎还可以、但这是一个令人沮丧的过程、无法使用强大的工具。

我一直在更新到 SDK v 5.10.00.48和 CCS v10.3、供参考。

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

    您好!

    我已指派一位专家对此进行评论、但同时我相信  、SysConfig 文档的以下定制板支持一章可能会有所帮助。 您能否验证链接的章节对您的用例有帮助?

    此致、

    1月

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

    1月-

    我已经使用之前的 SDK 尝试了该章(尤其是第1.3节)中的方法、但没有什么成功。

    目前、我正在对当前项目再次尝试、同时还将从简单的外设示例迁移到多角色示例、作为我们项目的基础。

    一次一一口一口都很重要、但我会告诉您指南方法对我是否成功。

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

    1月-  

    我似乎在几天内没有得到任何答复、当然、我的方面也没有取得太多进展。

    专家可能会问的第一个问题是:为什么 syscfg 会删除我刚才给引脚的命名约定并覆盖它?

    作为设置-我之前从您的链路跟踪1.3。 我已经告诉 syscfg、这是定制硬件、现在应该已经放弃了对 LaunchPad 的所有引用。

    正如您在下面看到的、我有两个屏幕截图。 第一个示例显示了我如何在 syscfg 中为其初始配置设置所有 GPIO。 我认为我不缺少任何基本内容(如果我是、请告诉我)、但当我允许 syscfg 输出 drivers_config 文件时、我的引脚名称没有指向这些特定 GPIO 的定义、 但是、有人公然过度写入它从 LaunchPad 中记住的约定(如第二个屏幕截图所示)。

    为什么会发生这种情况? 更重要的是、我如何告诉 syscfg IOID_NN 是我们的蜂鸣器引脚、以便我们可以通过我们的应用来实现这种命名约定(就像我们在过去几年的开发中所具有的那样)?

    我知道我可能会遇到更多问题(尤其是我想命名的特定 GPIO、在启动时使用特定配置进行设置、 然后在某些情况下用于通信模块)-因此、我肯定会考虑一种客户定义其硬件的方法、即使在什么引脚是什么名称时、也应该合理地请求该工具来实现。

      

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

    Tyler、

    请对延迟表示歉意。

    指南似乎有些不完整。 使用 BLE5用户指南中显示的"迁移电路板变体"所示的相同原理、我转到条目"电路板"并选择了选项"使用定制电路板"

    这仍然保持了上的原始 GPIO 引脚 如以下库存和我修改过的文件之间的比较所示:

    删除原始 LP 引脚并添加新引脚、就像在"GPIO SysConfig "部分中所做的那样 已正确修改。

    当然、任何构建工程的尝试都失败、因为源代码仍然使用原始 LP 引脚名称、但它指示引脚实际上已更改。

    请尝试一下、看看您是否可以让新的引脚"粘"。

    希望这对您有所帮助、

    拉斐尔

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

    Rafael -感谢您的更新、我不担心延迟、我理解这些事情可能需要时间才能跟踪。

    所以、是的、我能够完成您所做的工作(如果我删除引脚而不是修改它们、那么对 LP 引脚的引用就会消失)。 但是、您的解决方案无法解决我的问题。  

    在第二组屏幕截图中、这些引脚仍然称为 GPIOCC26XX_DIO_NN、而不是您尝试为其提供的名称。  

    当您从 LaunchPad 硬件开始时、它会为引脚名称创建#defines、并将其分配给它们表示的 DIO 值。 删除/创建/编辑这些引脚的操作并不相同;这就是我认为缺少的功能。

    为什么 syscfg 中没有简单的接口来表示 DIO_00 =键盘_INT?

    在 定义 GPIO /模块的用法时、我希望使用这些名称、而不是每次都参考器件引脚分配、而是在应用中使用引脚时不会创建这些别名。

    根据我之前的经验、如果我在 syscfg 中定义了一个 GPIO 来命名引脚(这实际上不能满足我的需求)、然后尝试在模块中使用所述的 GPIO、则 syscfg 会在我身边使用同一引脚执行两项操作。 这种响应是有道理的、  但是、这进一步证明了 ISO 的定义、即 syscfg 的工作方式、不是我想要做的-因此、我想知道是否有一种与 LaunchPad 集成我的类似的方法来定义"电路板" 引脚名称添加到 syscfg 项目空间中。

    请告诉我这是否更有意义、或者这是否可能。

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

    Rafael -我很想去看看.syscfg 文件本身,看看是否有办法解决问题;它让我陷入了一个兔子洞,已经显示出一些可衡量的成功。

    似乎可以通过一种方法来修改 GPIOx.pinInstance.$name、从而生成我想要的定义。 请参阅我的.syscfg 文件中的以下代码段。

    GPIO1.pull              = "Pull Up";
    GPIO1.$name             = "KEYPAD_INT";
    GPIO1.gpioPin.$assign   = "7";
    GPIO1.pinInstance.$name = "CONFIG_PIN_BTN1";
    
    GPIO2.$name             = "NFC_DETECT";
    GPIO2.pull              = "Pull Down";
    GPIO2.gpioPin.$assign   = "8";
    GPIO2.pinInstance.$name = "CONFIG_PIN_BTN2";
    
    GPIO3.$name             = "OPT1";
    GPIO3.gpioPin.$assign   = "40";
    GPIO3.pinInstance.$name = "CONFIG_PIN_0";

    我不理解的是 CCS 中的实际 syscfg 接口应该如何实现此修改。 此外、从 模块端的角度来看、这种设置看起来不像。

    为了测试这一点、我删除了我希望在项目中命名的两个引脚(I2C_SDA 和 I2C_SCL)、并将这些引脚输入到 I2C 通信模块的模块设置中。  由于没有地方为这些引脚命名、这些引脚永远不会被创建、并且引脚由两个超通用 GPIO/PIN 预定义值引用、这两个值都根据 IOID 号返回到相同的定义。

    深入探究,我认为我在 syscfg 端找到了用于获取 LaunchPad 板元数据的界面:sdk_base/source/ti/boards/.meta/lp_CC2652rb.syscfg.json  (以及在论坛帖子中无意中如何执行表情符号)

    那么-我想现在的问题是-这些.json 文件是如何创建的?

    我是否必须手动编辑此文件并希望获得最佳效果、或者是否有一个工具可以使此过程更轻松? 是否有方法可以指向 syscfg 的脚本、以便在我可以创建时将其指向其他.json 文件?

    在我看来、这些类型的接口是为那些基本上是业余爱好者/评估板而设置的、客户无法根据自己的定制板来调整它们、这对我来说真的很愚蠢。 谁可以利用这样的鸽子般的工具?

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

    Tyler、

    我有时间与开发团队讨论这一点、并提供了一些澄清。

    [引用 userid="259469" URL"~/support/wireless-connectivity/bluetooth/f/bluetooth-forum/997066/cc2652rb-syscfg---defining-custom-hardware/3686616 #3686616")这些引脚仍称为 GPIOCC26XX_DIO_NN、而不是您尝试为其提供的名称。  [/报价]

    谢谢你的补充,我现在明白问题的症结所在。

    名称与 driverlib .h 文件匹配 在 SDK_ROOT/SOURCE /ti/drivers/GPIO 下、因此、无论用户如何修改、我都可以看到如何保留它以防止断开与驱动程序本身的连接。 当然、您可能会更改这些条目、但我怀疑 GPIO 调用会产生后果。

    [引用 userid="259469" URL"~/support/wireless-connectivity/bluetooth/f/bluetooth-forum/997066/cc2652rb-syscfg---defining-custom-hardware/3686616 #3686616"]为什么 syscfg 中没有简单的接口来表示 DIO_00 = keypad_INT?[/quot]

    这可以通过上面突出显示的方面来解释-这是一种遵循原始驱动程序结构的更保守的立场。 但是、在代码中、您也许可以添加一个具有#define 的自定义头文件、该文件会进行匹配、尽管 GUI 的初始灵活性显然完全丧失。

    [引用 userid="259469" URL"~/support/wireless-connectivity/bluetooth/f/bluetooth-forum/997066/cc2652rb-syscfg---defining-custom-hardware/3686616 #3686616"]我想在 定义 GPIO /模块的使用方法时使用这些名称,而不必每次都引用器件引脚,而不必在我使用应用程序中的引脚时创建这些别名。

    原因可能是强调使用 PIN 驱动程序。

    文件中 ,BoardGpioInitTable[]中提到的名称都是通用的(CONFIG_PIN_0、CONFIG_PIN_1等),但是,由于此表由 PIN 驱动程序使用(通过此文件底部显示的 PIN_init),因此此处的名称在整个代码中没有太大的影响。

    相反,在应用程序本身中,您可以使用 PIN_open()为每个引脚创建句柄(具有有意义的名称),并且在整个代码中仅引用该句柄。

    [引用 userid="259469" URL"~/support/wireless-connectivity/bluetooth/f/bluetooth-forum/997066/cc2652rb-syscfg---defining-custom-hardware/3686624 #368624"]这些.json 文件是如何创建的?[/quot]

    这些文件随附与我们的开发套件相匹配的 SysConfig 产品本身。 您正在进行的这些修改会更改 PIN 驱动程序资源本身的名称、当然允许 GUI 执行此操作是可行的、但开发团队提到、在特定情况下、决定不允许在工具上执行此操作。 因此、此时我没有其他权变措施、这一点也不受官方支持(正如您可以想象的那样)。

    关于您遇到的锁定的最后一个方面:已确定此问题、并且错误报告显示将在 CCSv11中修复此问题。 遗憾的是、目前我们没有权变措施、除了在 CCS 中打开 SYSCFG UI 时不点击工程的任何其他部分。

    此致、

    拉斐尔

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

    拉斐尔-  

    我认为这听起来像是问题的终点、但我真的不认为我可以放心地说它"解决了我的问题"-因为它看起来基本上是"开发团队决定不允许您想要的东西"。

    正如我之前提到过的、我认为产品线使用"可配置的软件工具"真的很傻(实际上有点尴尬)、该工具仅适用于自己的特定硬件、 它只能在开发和评估的第一个月内提供实用的帮助、而不是实际客户最终产品所需的持续开发和支持。

    如果客户意见可能会影响这一决策、我建议产品团队重新考虑策略、甚至允许简单的.json 替换工具或生成器允许某人定义其引脚名称/模块名称并与之一起运行。

    话虽如此、我认为我的最佳选择是修改.json 文件以与电路板硬件保持一致、并尝试将 syscfg 链接到项目中。

    这不是一个很好的解决方案、因为我要自定义的文件位于 SDK 中。 我们不会在 git repo 中跟踪完整的 SDK (并尝试不修改这些文件中的任何一个)、因此我们必须对我们自己跟踪该文件的方式进行创造性的跟踪。 我们还必须确保在每次 SDK 更新中、我们都会替换 SDK 中的适当文件、以便进行更改。 有点粗略、但与像我们之前所做的那样重新处理整个 syscfg 输出文件相比、在长期运行中可能减少了工作量。

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

    Tyler、

    [引用 userid="259469" URL"~/support/wireless-connectivity/bluetooth/f/bluetooth-forum/997066/cc2652rb-syscfg---defining-custom-hardware/3687786 #3687786"]我认为这听起来像是问题的终结点,但我真的不认为我可以放心地说它“解决了我的问题”-因为该解决方案似乎基本上是“开发团队决定不允许您需要的东西”。

    我完全理解并认为措辞并未完全涵盖一条线程的众多结果。 换言之,这是一个答案,而不是一个解决办法(至少目前不是)。

    尽管如此、我也同意您的看法、即有改进的空间、并且实际执行 GUI 所承诺的所需功能。 我之前的帖子旨在为您提供设计背后的当前状态和一些历史记录、但我将向开发团队提交一份增强报告、以跟踪其实施情况。

    [引用 userid="259469" URL"~/support/wireless-connectivity/bluetooth/f/bluetooth-forum/997066/cc2652rb-syscfg---defining-custom-hardware/3687786 #3687786"]这不是一个很好的解决方案、因为我将要自定义的文件位于 SDK 中。 我们不会在 git repo 中跟踪完整的 SDK (并尝试不修改这些文件中的任何一个)、因此我们必须对我们自己跟踪该文件的方式进行创造性的跟踪。 我们还必须确保在每次 SDK 更新中、我们都会替换 SDK 中的适当文件、以便进行更改。 有点粗略、但与像我们之前所做的那样重新处理整个 syscfg 输出文件相比、在长期运行中可能减少了工作量。

    我一定会在您的版本控制系统中跟踪这些修改、并且、由于您在其中、还会跟踪项目中物理上仍位于 SDK 目录树中的任何链接文件。 在已知情况下、工具版本的简单更改会删除对定制工程的修改。

    此致、

    拉斐尔