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.

[FAQ] [参考译文] [常见问题解答] TDA4VM:如何使用 TDA4VM EVM 上的 SW10生成 QNX A72 GPIO 中断

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1322022/faq-tda4vm-how-to-generate-qnx-a72-gpio-interrupt-using-sw10-on-tda4vm-evm

器件型号:TDA4VM

在 TDA4VM EVM 上、GPIO0_0连接到 SW10。   有关 SW10位置、请参阅 TDA4VM EVM 用户指南。

SW10 + GPIO0_0是否可用于在 QNX 运行的情况下在 TDA4VM A72上生成中断?

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

    是的、GPIO0_0可由 SW10驱动以生成到 TDA4VM 上 A72的中断。  以下补丁和步骤修改 PSDK QNX 版本中的 GPIO 示例代码、使 EVM 上的 PUSH 按钮 SW10能够创建一个中断、然后由 A72上的 QNX 处理。

    此补丁已在 PSDK QNX 9.1版本上进行测试

    使用 TDA4VM EVM

    以下步骤假设用户已安装并构建 PSDK QNX 9.1版本、并已创建一个正常运行的 SD 卡。  这些步骤都在上面的 SDK QNX 链接中介绍。

    修补程序安装步骤:

    创建环境变量 PSDKQA_PATH,使其成为安装中 psdkqa 目录的变量

    • 导出 PSDKQA_PATI= /psdkqa

    下载补丁:

    安装补丁

    • cp tda4vm-sdk91-gpio.patch ${PSDKQA_PATH}/QNX
    • cd ${PSDKQA_PATH}/QNX
    • 补丁-p1 <./tda4vm-sdk91-gpio.patch

    从 SDK RTOS PDK 安装复制一些其他头文件

    • mkdir -p ${PSDKQA_PATH}/pdk/packages/ti/drv/gpio soc /
    • mkdir -p ${PSDKQA_PATH}/pdk/packages/ti/drv/gpio src
    • CP ${PSDKQA_PATH}/../pdk_jacinto_09_01_00_22/packages/ti/drv/gpio / soc / GPIO_soc.h ${PSDKQA_PATH}/pdk/packages/ti/drv/gpio soc / GPIO_soc.h
    • CP ${PSDKQA_PATH}/../pdk_jacinto_09_01_00_22/packages/ti/drv/gpio/GPIO.h ${PSDKQA_PATH}/pdk/packages/ti/drv/gpio
    • CP ${PSDKQA_PATH}/../pdk_jacinto_09_01_00_22/packages/ti/drv/gpio src / V0/GPIO_v0.h ${PSDKQA_PATH}/pdk/packages/ti/drv/gpio src / V0

    构建更新了 GPIO 二进制文件

    • cd ${PSDKQA_PATH}/QNX
    • 制作示例

    将 GPIO 二进制文件复制到 SD 卡:

    • CP ${PSDKQA_PATH}/qnx/examples/gpio/aarch64/o.le/gpio /media/${USERNAME}/qnxfs/tibin/gpio

    如需 GPIO 示例代码的帮助/用法、请在目标上键入以下内容:

    •  使用 GPIO

    要测试 SW10

    •  k3conf 写入0x0011c000 0x40007
    •  GPIO -M0 -n0 -a392 -I -R1与

    预期输出

    为什么指定中断392?

    GPIO 中断路由/映射信息在 TDA4VM TRM 中提供。  

    GPIO0至 GPIMUX_INTRTR0

    TRM 屏幕截图下方表示 GPIO_0有一个组级中断、该中断将传递到 GPIO_MUX_INTRTR0 (参见方框图)。  GPIO0上的任何 GPIO 中断都将触发该组级中断。  区分特定中断和 GPIO 组并相应地处理状态位由中断处理程序来决定。

    随附的 TRM 表给出了  GPIO_MUX_INTRTR0 、 GPIO0_INTR0_IN_256上的特定输入端口(请参阅表)。   

     

    GPIOMUX_INTR0

    根据上一节所知、GPIO0_0的 GPIOMUX_INTRTR0的输入端口为256。   此 GPIO_INTRTRO_INP 实例必须编程到输出端口 GPIOMUX_INTRTR0_OUTP。  这将创建一条从输入端口到输出端口的多路复用器路径。    

    具体查看这个中断是如何路由到 A72 GIC 的、请参考下表、其中显示了 GPIO_MUX_INTR0_OUTP[63:8]可以映射到 GIC[447:392]。  此表表示器件具有的可用硬件映射。   TRM 表未考虑可能发生的任何 S/W 资源管理。

    概要

    GPIO 组0上的中断若要在 GIC 实例392上发出中断信号、通过 TDA4VM 器件的路径为:

    • 组 GPIO0[0]-> GPIO_INTR0_INP[256]-> GPIO_INTR0_OUTP[8]-> GIC[392]