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.
尊敬的团队:
我使用的是 TMDSCNCD263评估板和来自 SDA 的 GPIO 中断示例、工作正常。
现在必须在 GPIO14、GPIO29、GPIO55和 GPIO78上配置更多中断、SysConfig 工具可用于配置这些引脚上的中断
Pinmux 最初根据 SDK 中的给定示例进行配置,遵循相同的过程, 如 GPIO_Init ()
现在的问题是"如何为各自的引脚配置 ISR?" 因为我按照显示的同样的过程在 GPIO_INPUT_INTERRUPT_MAIN (NULL)函数中配置 ISR。
我将对所有引脚使用相同的回调函数(这应该不是问题)
在示例中添加了代码、以在引脚中配置 ISR
HwiP_Params_init (&hwiPrms1);
pinNum = CONFIG_GPIO0_PIN;
hwiPrms1.intNum = intrNum;
hwiPrms1.callback =&GPIO_bankIsrFxn;
hwiPrms1.args =(void *) pinNum;
hwiPrms1.isPulse = true;
RetVal = HwiP_structure (&gGpioHwiObject1、&hwiPrms1);
请指导如何正向状态来 为引脚配置 ISR 、因为读取数据表和配置 ISR 非常复杂
尊敬的 Vikas:
请参阅以下常见问题解答、了解如何在 AM263x 中配置 GPIO 中断。
[FAQ] GPIO-AM263X:配置 MCU-PLUS-SDK 中断
此致、
阿克希特
我将 gpio19配置为引脚中断模式
和中断使能、依据
HwiP_Params_init (&hwiPrms);
hwiPrms.intNum = CSLR_R5FSS0_CORE0_CONTROLSS_INTRXBAR0_OUT_19;
hwiPrms.callback =&GPIO_muxIsrFxn;
hwiPrms.args =(void *) pinNum;
RetVal = HwiP_built (&gGpioHwiObject、&hwiPrms);
未命中回调函数
静态空 GPIO_muxIsrFxn (void *args)
{
/*
*处理引脚中断-这是脉冲中断。 无需清除状态
*
*/
// DebugP_log ("已生成中断!!\r\n ");
uint32_t pinNum =(uint32_t) args;
uint32_t bankNum = GPIO_GET_Bank_index (pinNum);
uint32_t intrStatus、pinMask = GPIO_GET_Bank_bit_mask (pinNum);
/*获取和清除组中断状态*/
intrStatus = GPIO_getBankIntrStatus (gGpioBaseAddr、bankNum);
// GPIO_clearBankIntrStatus (gGpioBaseAddr、bankNum、IntrStatus);
gGpioIntrDone2++;
DebugP_log ("已生成中断!!\r\n ");
/*每个引脚的中断处理*/
}
您能交叉检查一下我在错误的代码中
您能否尝试将 hwiPrms.intNum 更 改为 GPIO_INT_XBAR_GPIO_MUX_19、并告诉我它是否起作用。
谢谢
阿克希特
GPIO_INT_XBAR_GPIO_MUX_19在 ME 上不起作用 CSLR_R5FSS0_CORE0_INTR_GPIO_INTRXBAR_OUT_14正在工作、
Am2634具有144个已启用中断的 GPIO、因此请告诉我如何将20个引脚配置为中断以及如何管理这些中断的回调函数?
只有4个 GPIO 中断映射到 VIM0 then CPU 内核。 中断号为144,145,146和147。
CSLR_R5FSS0_CORE0_INTR_GPIO_INTRXBAR_OUT_14为--> 144
您的代码中的其他 GPIO 中断事件使用哪些中断编号?
根据 CSLR_R5FSS0_CORE0_INTR_GPIO_INTRXBAR_OUT_14,142是中断编号
但问题是、我们可以在此 MCU/SDK 上定义20个 GPIO 中断吗?
是的、你可以在你的应用中定义任一数量的 GPIO 中断。 但是、正如 TRM 中提到的、只有4个 VIM 通道分配给所有 GPIO 中断。
您可以具有一个用于 GPIO 中断的 ISR、或者最多四个用于 GPIO 中断的 ISR。
1。如果为 XBAR 实例选择 GPIO_INT_XBAR_VIM_MODULE0_0、中断号为142
2.如果 为 XBAR 实例选择 GPIO_INT_XBAR_VIM_MODULE0_1、中断号为143
您是否有多个 GPIO 中断的一些示例代码、或者告诉我如何更新 GPIO_input_interrupt_am263x-cc_r5fss0-0_nortos_ti-arm-clang 项目以用于多个中断
尊敬的 Vikas:
我没有针对多个 GPIO 中断的有效示例。
用于配置 AM2634中多个 GPIO 中断的任何文档
尊敬的 Vikas:
我正在处理一个 CCS 项目、以处理来自多个 GPIO 引脚的中断、并将在测试后发布该项目。
以下是 GPIO 配置:
添加另外两个 GPIO 引脚、这两个引脚都是输入引脚、并在上升沿触发。
CONFIG_GPIO0:GPIO43引脚
CONFIG_GPIO1:GPIO45引脚
2.配置 GPIO 中断交叉开关:
CONFIG_GPIO0:GPIO43 --> GPIO_INT_XBAR_VIM_MODULE0_1 已映射到中断号143
CONFIG_GPIO0:GPIO45 --> GPIO_INT_XBAR_VIM_MODULE0_3 已映射到中断号145
3. GPIO43和 GPIO45的寄存器引脚中断。
感谢 Wang、感谢您的努力。
我还以相同的方式进行尝试、仅能配置4个中断、但需要4个以上的中断
由于它 只有4个、GPIO_INT_XBAR_VIM_MODULE0_0/1/2/3、我们只能配置4个中断吗?
void Drivers_gpioIntXbarOpen()
{
/*
* GPIO 中断 XBAR
*/
SoC_xbarSelectGPioIntxbarInputSource (CSL_GPIO_INTR_XBAR_U_BASE、GPIO_INT_XBAR_VIM_MODULE0_0、GPIO_INT_XBAR_GPIO_MUX_21);
SoC_xbarSelectGPioIntxbarInputSource (CSL_GPIO_INTR_XBAR_U_BASE、GPIO_INT_XBAR_VIM_MODULE0_1、GPIO_INT_XBAR_GPIO_MUX_43);
SoC_xbarSelectGPioIntxbarInputSource (CSL_GPIO_INTR_XBAR_U_BASE、GPIO_INT_XBAR_VIM_MODULE0_3、GPIO_INT_XBAR_GPIO_MUX_45);
}
在我的项目中、我需要使用20个以上的 GPIO 中断、因此请告诉我如何配置20个中断、
我相信 AM2634是功能最强大的 MCU、能够处理所有 GPIO 中断
您可以使用 GPIO 组中断。 同一组中的16个 GPIO 引脚将共享相同的中断编号和中断 ISR。 IRS 可以通过读取 GPIO 中断状态寄存器来处理中断源。
我没有机会尝试,但我认为这种方法应该起作用。
1.使用 GPIO 组中断
您将获得16个引脚的中断。 在 GPIO ISR 中、您必须检查哪个引脚的中断原因。
GPIO 组中断的 ISR:
2.使用 GPIO 独立引脚中断:
是的,我也在以同样的方式思考,也尝试,但它不起作用(这是主要的问题)
我在同一个组上配置5个 GPIO、具有相同的中断编号、同时测试它 是否在最后一个引脚上提供中断、而不是在所有引脚上、
请求自行测试
1. 5个 GPIO 应在同一 GPIO 组中
GPIO[15:0]--组0
GPIO[31:16]--组1
等等
2. Xbar 输出(GPIO INT BAR )应该是同一组#
我进行了测试、结果运行正常。
您能将代码发送给我们吗?
本示例中使用了7个 GPIO。 CONFIG_GPIO2/4/5/6使用 GPIO 组中断。
GPIO_GPIO21:Push_Button、 GPIO 独立引脚中断、ISR 为 GPIO_IsrFxn00 ()
2. CONFIG_GPIO0:GPIO43, GPIO 独立引脚中断,ISR 为 GPIO_IsrFxn01 ()
3.CONFIG_GPIO1:GPIO45, GPIO 独立引脚中断,ISR 为 GPIO_IsrFxn02 ()
4. CONFIG_GPIO2:GPIO49、 GPIO 组中断、ISR 为 GPIO_bankIsrFxn03 ()
5. CONFIG_GPIO4:GPIO51, GPIO 组中断,ISR 为 GPIO_bankIsrFxn03 ()
6. CONFIG_GPIO5:GPIO52, GPIO 组中断,ISR 为 GPIO_bankIsrFxn03 ()
7. CONFIG_GPIO6:GPIO55, GPIO 组中断,ISR 为 GPIO_bankIsrFxn03 ()
太好了、我也发现了我的错误
在配置组中断时、我传递了 hwiPrms.args =引脚编号而不是存储体编号