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.

[参考译文] AM263P4-Q1:中断模式下 AM26xx MCAL 11.00.00 版本中 CDD_I2C 模块的编译问题

Guru**** 2694555 points

Other Parts Discussed in Thread: TCA6416

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1575857/am263p4-q1-compilation-issue-with-cdd_i2c-module-in-am26xx-mcal-11-00-00-version-in-interrupt-mode

器件型号: AM263P4-Q1
主题中讨论的其他器件: TCA6416

工具/软件:

您好团队:

我们已配置了 CDD_I2C 模块中断模式。

在 编译时、我们遇到 I2C 中断问题。

在预处理阶段、ISR 名称将替换为由操作系统生成的索引号

 在相同配置下、AM26xx MCAL 10.02.01 不存在问题。

*I2C 模块在轮询方式中使用时被编译和工作。

您能否提供任何解决方法来解决中断配置问题。

此致、

Hari   

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

    尊敬的 Hari:

    让我在内部进行检查、并在本周结束时与您联系。

    谢谢。此致、

    Nikhil Dasan

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

    尊敬的 Hari:

    您在此处使用的是 CDD_I2C_ISR_CAT2 吗?

    谢谢。此致、

    Nikhil Dasan

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

    你好、Nikhil、

    是的、我们使用的是 CAT2、中断将由操作系统处理。

    此致、

    Hari

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

    那么它是有意义的。  

    之前没有此声明、 对于 CAT2、isr() 扩展为类似 ISR_CDD_I2C_HwUnit0_isr。

    但现在自从添加了声明后、它正在调用  void 1 (void)__attribute_xxxx、void 2 (void)__attribute_xxxx 等

    我认为、删除声明(即更改类似于 SDK 10.2)应该可以解决此问题。 你有试过吗?

    我在内部提出了这个错误,并将作为补丁分享官方修复。  

    同时、这项更改应该会取消阻止您。

    谢谢。此致、

    Nikhil Dasan

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

    我从 MCAL 版本 10.02 接管更改后才会有效。

    实际:11.0

    #if defined (cdd_I2C_HW_UNIT_2_ACTIVE)

    void cdd_I2C_HwUnit2_isr (void)___attribute__((target(“arm")“));

    修改和工作:自 10.02 起

    #if defined (cdd_I2C_HW_UNIT_2_ACTIVE)

    __attribute__((target(“arm")“)))

    * MCU 复位是否有任何变化?

    • 复位正在正常工作、RBL 正在使用 MCAL 10.02 加载我的 SBL。 没问题
    • 在最新的 MCAL 11.0 中、相同的 SBL 无法正常工作、RBL 未从闪存加载 SBL。

    * SBL 和应用程序的 NOR 闪存对齐是否有变化?

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

    您好、

    我相信您使用的是 SIP 器件吗?

    在 API, Fls_Ospi_Program Instance() 中、重置闪存时应注意如下所示。

    您能否检查下述宏是否在您的最终执行?

    谢谢。此致、

    Nikhil Dasan

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

    你好、Nikhil、

    是的、我们使用 SIP 器件并考虑了在 Mcu_Perform 复位之前调用的宏、如下所示。

    board_flash_reset ();来自  ioexp_tca6416_6424.c/h MCAL 中的文件。

    RBL -> BM (SBL)-> BL -> BLU

    存储器映射

    • Bm 位于 0x60000000
    • BL 位于 0x60030000
    • APP/0x60100000 BLU 处进行编程
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Hari:

    您在执行 MCU_performReset () 之前是否使用了相同的 API?

    您是否想了解从 SDK 10.2 迁移到 SDK 11.0 迁移过程中发生的更改?

    谢谢。此致、

    Nikhil Dasan

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

    你好、Nikhil、

    您在执行 MCU_performReset () 之前是否使用了相同的 API?

    是、与 Mcal 10.x.x 使用的 API 相同

    我没有观察到特定于 MCU 模块的重大差异。

    不通过 RBL 复制 SBL 可能有哪些原因?

    我仍在调试问题。

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

    在调用中保持对齐、请在执行复位之前检查 SBL 的内容是否已擦除。

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

    你好、Nikhil、

    SBL 的内容不会被擦除、如果它被擦除、将在下电上电时不工作。

    SBL 在下电上电时加载、但在 MCU 复位时不加载。

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

    尊敬的 Hari:  

    在我这边、我使用 FLS 应用程序测试了此功能 在 FLS 应用结束时执行闪存 reseta 和 MCU 重置 API 测试是在使用 SIP 封装 MCU 的 AM263P 控制卡上完成的。  

    然后、我刷写了 SDK SBL 和此应用程序。 在 POR 时、 我可以由于 MCU 复位而重复执行应用程序。  

    请您尝试在您身边运行此实验吗?此实验的结果将帮助我们分析问题

    总结一下、

    1.拿走了 SDK SBL。

    2.在 FLS 应用中、最后添加了闪存复位和 MCU 复位 闪存复位 API 在 FLS 应用程序本身中提供。

     3.刷写了 SBL 和 Application

    此致、

    Aswin

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

    尊敬的 Aswin:

    由于其他优先任务、我无法测试和回复问题。

    在检查/了解 SDK 的 SBL 后、观察了一个用于解决 OSPI 问题的函数。

    旧 SDK 中也使用相同的功能。

    和在我们的应用中一样、我们仅使用 MCAL、而不使用 SDK、因此我没有完成 TI SBL 行对行代码。  

    您能解释一下、为什么它在进行上电复位?

    在上一个正常工作的应用中、我们使用 OSPI 模式作为 118。

    • 借助最新的 Mcal、我们再次开始使用 TI 推荐的 FLS 配置、其中 OSPI 模式 888。
    • 此模式导致了该问题。

    现在、我 将 OSPI 模式恢复到 118、复位正在工作。

    此致、

    Hari

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

    尊敬的 Hari:

    上述函数会进行闪存复位并将 ospi 设置为 1s-1s-1s 模式。 这样做是为了将闪存置于已知状态。 ROM 将根据引导模式将闪存配置为某种模式。 因此、在重新配置 ospi 和闪存之前、完成了这一操作。 闪存复位将使其处于 1s-1s-1s 模式。 与 RESET ospi 接口一起配置为 1s-1s-1s 模式。

    此致、

    Aswin

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

    尊敬的 Hari:

    在 MCAL SBL 中、是否有 flashFixUpOspiBoot()?

    我使用 FlsApp 示例和 MCU PLUS SDK SBL 执行了软件复位过程、工作方式如上所述。 因此、这必须是 SBL 中的闪存/ospi 配置。

    此致、

    Aswin