OpenEdv-开源电子网

 找回密码
 立即注册
查看: 99|回复: 0

RK356B AMP 架构RTT系统中配置GPIO中断无法触发

[复制链接]

1

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2015-8-28
在线时间
21 小时
发表于 前天 17:17 | 显示全部楼层 |阅读模式
本帖最后由 lilibo 于 2026-3-9 18:10 编辑

问题:无法进入中断设置时的回调函数,但测试可以检测到电平的变化,可能怀疑设备树中断没配置好,但不清楚需要配置什么。
我是用一个输出引脚去控制中断引脚触发低电平,但中断函数却无法进入。
GIC_AMP_IRQ_CFG_ROUTE(36, 0xd0, CPU_GET_AFFINITY(0, 2))这是增加的但是也没用,不知什么原因。


1.设备树配置

2.测试代码
/* 引脚定义 */
#define LED_PIN_NUM  32     // GPIO1PA0引脚(可根据实际板卡修改)
#define KEY_PIN_1    33     // GPIO1PA1引脚(可根据实际板卡修改)
#define KEY_PIN_2    34     // GPIO1PA2引脚(可根据实际板卡修改)
#define KEY_PIN_3    35     // GPIO1PA3引脚(可根据实际板卡修改)
// 按键中断服务函数
void button_callback(void *args)
{
    rt_kprintf("Button pressed! LED toggled.\n");
}
int main(int argc, char **argv)
{
    rt_thread_t init_thread;
    uint8_t  key1,key2,key3;
    static uint8_t cnt= 0;
    rt_kprintf("Hi, this is RT-Thread!!\n");
        /* 初始化LED引脚为输出模式 */
    rt_pin_mode(LED_PIN_NUM, PIN_MODE_OUTPUT);

    /* 初始化KEY引脚为输入模式(上拉) */
    rt_pin_mode(KEY_PIN_1, PIN_MODE_INPUT_PULLUP);
    rt_pin_mode(KEY_PIN_2, PIN_MODE_INPUT_PULLUP);
    rt_pin_mode(KEY_PIN_3, PIN_MODE_INPUT_PULLUP);
    rt_pin_attach_irq(KEY_PIN_2, PIN_IRQ_MODE_FALLING, button_callback, RT_NULL);
    rt_pin_irq_enable(KEY_PIN_2, PIN_IRQ_ENABLE);
    init_thread = rt_thread_create("test",
                                   rt_test_thread_entry, RT_NULL,
                                   2048, 8, 20);
    if (init_thread != RT_NULL)
        rt_thread_startup(init_thread);   
#ifdef RT_USING_NEW_OTA
    /*
     * rk_ota_set_boot_success will set `successful_boot` flag to 1.
     * Move this function to a location where all of your service
     * has finished to make sure to set `successful_boot` after
     * all of your main service has succeeded.
     */
    rk_ota_set_boot_success();
#endif
    while (1)
    {
       rt_thread_mdelay(5000) ;
       rt_pin_write(LED_PIN_NUM,cnt++%2);
       key1=rt_pin_read(KEY_PIN_1);
       key2=rt_pin_read(KEY_PIN_2);
       key3=rt_pin_read(KEY_PIN_3);
       RTTLIB_USR_TRACE_DEBUG("key1:%d,key2:%d,key3:%d!!\n",key1,key2,key3);
    }
    return 0;
}


下载 (1).png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-3-10 23:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表