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.

[参考译文] CC3300MOD:需要有关 TI CC3300 SDK 的 IRQ、其他配置、API 见解和移植的信息

Guru**** 2796425 points

Other Parts Discussed in Thread: CC3300

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1621356/cc3300mod-require-information-about-irq-other-configurations-api-insight-and-porting-for-ti-cc3300-sdk

器件型号: CC3300MOD
主题中讨论的其他部件: cc3300

尊敬的所有人:

  1. 已了解 WLAN_IRQ_PIN 在 AM243X LanuchPad 套件示例“CC3xx_thick_mac_network_termina"中“中进行了引脚配置、其 IRQ 来自 BP‑CC33XXMOD。 在哪个文件中声明此 WLAN_IRQ_PIN 和 WLAN_IRQ_TRIG_TYPE。

什么是触发器类型下降或上升?

GPIO_setTrigType (gWlanIRQGpioAddr、WLAN_IRQ_PIN、WLAN_IRQ_TRIG_TYPE);

 

  1. 我们将在 STM32F412ZG 上移植此 IRQ。 需要了解的移植的一部分
  • 根据硬件配置 IRQ 引脚、并将边沿分配为正或负
  • 回调将在 SDK 内部配置
  • 就是这样。
  • 如果配置正确、则 IRQ 应该可以正常工作、不会有太多麻烦。
  • 我们的理解是否正确?
  • 我们需要考虑的任何其他要点、请提出建议。

 

  1. 对于 BP‑CC33XXMOD SPI 接口、该接口分为两部分。
    • 第 1 部分:简单的 SPI 主器件从通信、其中主器件将发送命令并发送虚拟时钟来读取响应
    • 第 2 部分:在 IRQ 上、通过发送命令和读取响应作为第 1 部分、从 BP‑CC33XXMOD 读取数据
    • 我们对 SPI 通信的理解是正确的吗? 如有任何更改、请予以澄清。
    • WLAN_if.c、WLAN_COMMANDS.h、提供 Wlan_Start、Wlan_Stop、Wlan_Role、Wlan_Role Down、Wlan_Connect 等用户 API 功能 Wlan_Disconnect、Wlan_Scan、Wlan_Get、Wlan_Set。 仅供参考、以上列表中的哪个所有命令都涉及 IRQ?

 

  1. 在测试期间移植后、由于 SDK 例程的 SPI、IRQ 或内部、功能将不起作用。 您建议调查 SPI、IRQ、SDK 中的哪个组件无法正常工作、以及如何对其进行分析以使其正常工作。

谢谢。。

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

    您好、

    1. cc33xx SDK 可视为插件、这意味着它需要一个基本 SDK 才能使用。 在本例中、AM243 是基础 SDK。 此外、所有硬件定义都作为 syscfg 的一部分处理、因此这些定义可在自动生成的文件 ti_driver_config.h 中找到、所有其他定义都位于 AM243 SDK 中。 对于您的具体问题、对于 AM243、是上升沿类型。
    2. 您的理解是正确的。 如果 STM 中有 EDGE 选项、则可以使用该选项并模拟 AM243 的功能。 请注意、在这种情况下、IRQ 处理应更简单、因为有单一的中断源(即 cc33xx 芯片本身)、在主机发送 0xBFFC 消息之前、芯片不会将中断置为无效。 因此、在主机确认中断之前、不可能获得(也不丢失)中断。
    3. 通常有 3 种可能的命令:0xBFFC、0xBFF8 和 0x BFF0。
      1. 0xBFFC 确认中断并读取一些重要值、例如消息类型(命令完成,事件,数据)。
      2. 0xBFF8 只是为了从芯片和主机之间尚未通过 0xBFF0 提供的邮箱读取更多数据。 可能是 WLAN_SCAN 期间的扫描结果示例。
      3. 0xBFF0 用于输入和输出的实际数据/命令。 因此、每个命令都将使用它来承载其命令有效载荷。 也将用于数据的实际 RX/TX 等
    4. 实际的 WLAN_xxx() API 将使用上述所有项。 每个命令都需要执行所有命令。 例如、WLAN_GET () 会为实际命令发送 0xBFF0、然后得到一个中断、触发 0xBFFC、并最终在需要时通过 0xBFF8 从邮箱读取更多数据。
    5. 最好的方法是使用逻辑分析仪在驱动器侧用一些消息探测线路。

    此致、

    Shlomi

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

     Shlomi Itzhak 

    感谢您的解释。

    而进一步研究发现 IRQ 的中断服务例程如所示   

    我们将 进一步研究 ISR 如何处理 IRQ、  

    1) 以下函数理解为处理和'WWIRq.Machine'处理 Event_State 状态机的函数。

    请 确认我们的理解。

    2) 请稍微解释一下 IRQ 处理程序例程的内部工作情况

    3) 基于之前对 2 个线程(事件线程和传输线程)的理解。 这些线程与 IRQ 处理程序例程的关系。

    4) 在移植到其他微控制器(如 STM32)时、我们知道我们需要使用相同的回调函数而不做任何更改。 请确认。

    5) 我们将使用“API"开始“开始我们的测试 Wlan_Start。 请告知我们 IRQ 引脚是否将用于此 API。 如果是、请提供一些详细信息。

    6) 另请告知我们 “SPI"API",“,这“这是、是主机与 CC3300 之间通过 Wlan_Start 进行交换的不同命令。

    谢谢...

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

    您好、

    是的、您的理解是正确的。

    基本上,IRQ 主入口点是 FwEvent_IRQ_HANDLER (),然后它通过 trnspt_RequestSchedule () 从主传输任务请求工作。

    初始化时,多个客户端通过 trnspt_RegisterClient () 注册到传输任务以获得带宽,其中一个是事件客户端。

    要服务的回调是 Fw Event_New 事件 ()。

    从这一点开始、状态机会接管所有状态、并将 0xBFFC、0xBFF8 和 0xBFF0 发送到芯片获取/发送命令/事件/数据。

    不确定我关注的是您提到的回调。

    至于 wlan_start()、当然涉及 IRQ。 对于发送的每个块、您都会看到一个中断置为有效。

    为了便于您参考、请找到我刚才捕获的初始化阶段的逻辑捕获。

    你可以用它来了解更多,仔细检查自己。

    Shlomi

    e2e.ti.com/.../ThickMAC_5F00_R9_5F00_init_5F00_roleUp_5F00_scan_5F00_connect.sal