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.

[参考译文] CC3120:为什么从 CC3120获取 INT 后 sl_IfRead ()无法读取数据?

Guru**** 2557800 points
Other Parts Discussed in Thread: CC3120

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/744919/cc3120-why-sl_ifread-fails-to-read-data-after-getting-int-from-cc3120

器件型号:CC3120

您好!

  我们现在将在器件上测试在简单的免费 RTOS 上运行的主机驱动程序、主机 CPU 通过 SPI 接口连接 CC3120芯片。

  成功重置 CC3120并从 CC3120获得初始化完成 IRQ 后、我们可以成功回读固件版本。 然后,我们尝试使用 sl_WlanConnect() API 连接指定的 AP。  sl_WlanConnect() API 的返回值为0,我们从 CC3120获得了有关连接状态的异步中断。 但是,sl_IfRead ()被阻止,而不读回任何数据。 我们认为 CC3120已通知 MCU 有关异步事件、CC3120应准备好读取数据。

   从 CC3120接收到中断后 sl_IfRead ()无法读取数据的可能原因是什么?

  顺便说一下,我们使用 Read()函数来实现 sl_IfRad() API。 我们是否应该将此 read()函数配置为非阻塞函数?

  谢谢。

     Todd

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

    复位后,是否在执行这些调用中的任何一个之前执行 sl_start()?

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

    是的、我在调用 sl_WlanConnect()之前执行了 sl_Start()。 此外,在调用 sl_WlanConnect()之前,我成功回读了固件版本。 我认为 SPI 驱动器可以正常工作。

    谢谢。

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

    您是否能够解决您的问题?

    我认为我们应该仔细研究阻断功能调用、找出您正在等待的内容以及您未收到的内容。

    您是否在异步事件之前阻止?

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

    调用"sl_WlanConnect()" API 连接指定 AP 时出现此阻止问题。 主机驱动程序确实从 CC3120获取中断以读回异步事件。 但是,"sl_IfRead ()" API 无法读回任何数据。 我们还使用了示波器来测量信号、并且 CC_IRQ 线路始终保持高电平。

    我确信主机驱动程序在尝试读取数据时确实向 CC3120发送了同步模式。

    谢谢。

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

    我们可以尝试通过一些调试步骤来澄清问题、从而找出问题所在。
    1.当您提到 sl_IfRead () API 不读回任何数据时,它只是返回读0字节还是在尝试从 CC3120读取数据时卡住?
    2.当您执行 sl_IfRead ()时,正在运行的代码的调用栈是什么?
    3.除了 sl_Start() API 正常工作之外,您还可以使用哪些其他 API 而不会出现任何问题?
    4.为了确保 IRQ 处理程序没有问题,当您尝试在回调模式下运行 sl_Start()时,会发生什么情况,而不是按照默认方式阻止它直到它完成?

    此致、
    Michael