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.

[参考译文] AWR2243:毫米波链路移植洞察

Guru**** 2481465 points
Other Parts Discussed in Thread: AWR2243

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1324686/awr2243-insight-about-porting-of-the-mmwave-link

器件型号:AWR2243

大家好、

我目前正在致力于将毫米波链路移植到基于 Linux 的系统。 我已成功为我的系统编译了毫米波链接库。 我实施了 Communication、Enable/Disable、Mutex 和 Semaphore Callback 函数以及 AsyncEventHandler。 现在、对于有关 HostIRQ 的回调函数、尤其是 RegisterInterruptHandler、我有些不知所措。 能不能详细介绍一下这个回调函数实际应该执行的操作、以及它与掩码和取消掩码函数之间的关系。 我知道在通信时 HostIRQ 的用途。

此外,我不是很确定,如何正确地实施 OsiSpawn 回调,以及在细节是什么是它的功能. 您能不能给我提供一些信息

此致

时间

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

    您好!

    我建议使用 google 站点搜索查找有关该主题的旧论坛主题帖

    下面我们举例说明

    网站 e2e.ti.com OsiSpawn

    下面是一些主题

    https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/915603/awr1243boost-port-mmwavelink-to-linux

    您可以使用不同的关键字执行多个搜索。

    关于将 mmwavelink 移植到 Linux 的主题在过去已经讨论过、

    谢谢!

    塞萨尔

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

    尊敬的 Cesar:

    我已经这样做了,但我仍然不明白。

    您能否告诉我、如果触发主机 IRQ、应该会发生什么情况? 调用哪个函数以及处理异步事件的整个过程是什么? 根据我的理解、所有这一切都发生在与其他线程不同的线程中、我是对的吗?

    谢谢!

    时间

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

    您好!

    请给我一天时间、以便在我们的支持团队中为该问题找到合适的人选

    谢谢!

    塞萨尔

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

    尊敬的 Cesar:

    谢谢、我期待您的回答。

    此致

    时间

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

    尊敬的 Tim:

    感谢您的耐心等待。

    如果触发了主机 IRQ、则该流程进入异步事件读取环路。 此外、它会读取 msg 处理程序>写入 CNIS >等待主机 IRQ 低电平、然后相应地发送异步事件。

    请参阅 第3.2节 ICD 文档(MMWAVE_mcuplus_SDK_04_04_01_02/MMWAVE_DFP_02_02_04_00/docs/mmWave-Radar-Interface-Control.pdf)中的整个命令/响应流程。

    谢谢。
    阿尼尔班

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

    Anirban、您好!

    感谢您的回答。 异步事件读取环路是由毫米波链接库执行的、还是必须在我的移植中自行实现?

    据我所知、应用程序需要运行两个不同的线程、一个线程会不断等待 HostIRQ 中断、另一个线程会完成剩下的全部工作、对吗?

    此外、我不确定如何告知毫米波链接库中断已被触发。 是否有某种应编写/编写的变量或函数?

    此致

    时间

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

    Tim、您好!

    您必须在应用程序中实现异步事件读取循环。

    mmwavelink 库是一个与操作系统无关的库、它不涉及任何多线程概念。 来自 AWR 器件的主机 IRQ 通过主机 IRQ 物理引脚传入到主机(请查看主机中断引脚的数据表)

    mmwavelink 库具有自己的主机 IRQ 处理程序。

    请按照我之前提到的方法从 ICD 中浏览命令/响应序列、并参考 AWR2243的数据表 第9.3.2节(控制) ,了解更多详细信息。 您可以考虑仔细阅读 mmwavelink 源代码并与命令/响应流程图(ICD doc)链接、以便更好地理解。

    谢谢。
    阿尼尔班

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

    Anirban、您好!

    感谢您的快速回答、但我仍有一些未决问题:

    因此、只有在主机发出命令后不久才会执行异步事件读取循环?

    如果不涉及多线程概念、哪个用途可以实现 osiSpawn 回调函数?

    当检测到主机中断时、我必须在异步事件读取循环中调用哪个函数? 回调函数 registerInterruptHandler 以及其他有关 HostIRQ 的函数如何参与此

    谢谢。

    时间

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

    您好!

    因此,只有异步事件读取循环才会在主机发出命令后不久执行?

    是的。 但是、不适用于所有命令。  
    如果主机发送的命令需要异步事件、则需要运行循环来读取异步事件。

    如果没有涉及多线程概念,哪个用途实现了 osiSpawn 回调函数?

    mmWaveLink 使用 OsiSpawn 函数调用 rlDriverMsgReadSpawnCtx 函数、以在不同中断上下文中读取异步事件消息。   

    检测到主机中断时,我必须在 ASYNC 事件读取循环中调用哪个函数? 如何将回调函数 registerInterruptHandler 以及其他有关 HostIRQ 的函数加入此项[/引号]
    rlRegisterInterruptHandler 注册  rlDriverHostIrqHandler  用作对主机 IRQ 的回调。
    您需要在应用程序中具有异步事件处理程序、它将根据类型(例如 cpuFAULT 状态、帧触发器就绪状态、温度报告、其他监测报告等)来处理异步事件。
    谢谢。
    阿尼尔班
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Anirban、您好!

    感谢您的快速回答。 您能否介绍一下异步事件读取循环是如何启动的? rlDeviceWaitIrqStatus 回调函数用于处理此情况?

    谢谢。

    时间

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

    抱歉、Tim、我们不提供定制代码。

    您可以参阅 AWR294x DFP (版本>2.4.8)中存在的链路测试应用程序。 它具有您正在寻找的类似实现类型。

    谢谢。
    阿尼尔班  

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

    Anirban、您好!

    我不是要求自定义代码、我只是想知道是否需要在 rlDeviceWaitIrqStatus 回调函数中实现 ASYNC 事件读取循环、该函数列在移植指南中。

    谢谢。

    时间

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

    尊敬的 Tim:

    否。

    应在您的定制应用中实现异步事件读取循环。 此功能仅用于检查 AWR 器件的异步事件、例如启动状态/各种故障状态等。

    如果您为此实现了异步事件读取函数、那么您应该调用  rlDriverMsgRead  将读取标头和有效载荷的函数。 现在、如果验证了 msg 并且事件类型为异步、则流将转到异步事件处理程序。

    谢谢。
    阿尼尔班