Page 1 of 1

ESP32S3_TuyaOS-3.6.7 申请gpio外中断会溢出

Posted: 2024年 Apr 16日 14:30
by 15017704375

esp32s3 r8


第一种申请方式
TUYA_GPIO_BASE_CFG_T touch_int;
touch_int.direct=TUYA_GPIO_INPUT;
touch_int.level=TUYA_GPIO_LEVEL_HIGH;
touch_int.mode=TUYA_GPIO_PULLUP;
tkl_gpio_init(PIN_TOUCH_INT,&touch_int);
TUYA_GPIO_IRQ_T touch_int_irq;
touch_int_irq.arg=(void*)PIN_TOUCH_INT;
touch_int_irq.mode=TUYA_GPIO_IRQ_FALL;
touch_int_irq.cb=touch_ini_pin_iqr;
tkl_gpio_irq_init(PIN_TOUCH_INT, &touch_int_irq);

tkl_gpio_irq_enable(PIN_TOUCH_INT);


第二种申请方式
gpio_config_t int_gpio_config = {
.mode = GPIO_MODE_INPUT,
.pull_up_en=GPIO_PULLUP_ENABLE,
.pull_down_en=GPIO_PULLUP_DISABLE ,
.pin_bit_mask = 1ULL << PIN_TOUCH_INT,
//.intr_type=GPIO_INTR_ANYEDGE ,
};
ESP_ERROR_CHECK(gpio_config(&int_gpio_config));
gpio_install_isr_service(ESP_INTR_FLAG_LEVEL1);

gpio_isr_handler_add(PIN_TOUCH_INT, my_lcd_touch_int_pin_isr_handler, NULL);

用了这两种申请gpio外中断,会造成死机


Re: ESP32S3_TuyaOS-3.6.7 申请gpio外中断会溢出

Posted: 2024年 Apr 18日 15:51
by JSHANG

中断函数执行了没?是不是中断太多了,或中断中加打印导致的?


Re: ESP32S3_TuyaOS-3.6.7 申请gpio外中断会溢出

Posted: 2024年 Apr 19日 10:55
by 15017704375

没加打印,就发送信号量

试过连信号量都不加,就一个空函数也死机


Re: ESP32S3_TuyaOS-3.6.7 申请gpio外中断会溢出

Posted: 2024年 Apr 22日 08:53
by JSHANG

那只能看crash的栈,看一下crash在那个函数,具体分析了。GPIO的使用,可以直接参考ESP32的实列实现。


Re: ESP32S3_TuyaOS-3.6.7 申请gpio外中断会溢出

Posted: 2024年 Apr 22日 09:25
by 15017704375

可以帮忙定位一下crash位置吗


Re: ESP32S3_TuyaOS-3.6.7 申请gpio外中断会溢出

Posted: 2024年 Apr 22日 09:55
by JSHANG

你把这个UART core的栈复制保存为文件core;然后copy到对应编译生成的output目录下,和生成的.elf文件一个目录。
然后执行编译命令后面加个 “core”关键字就能dump出调用栈了。