esp-idf填坑记:ADC读取导致Abort

近日使用esp32s2进行开发。发现设备反复重启,现将解决过程记录如下。

前事之不忘,后世之师!

现象

发现设备反复重启,通过串口日志发现,在ADC读取的时候,触发了abort。

软件环境:

esp-idf: v4.2.1

调试

编译运行esp-idf自带ADC示例,发现现象一致。如果日志级别设置为info,则不会出现abort;如果设置为debug, 则必然出现。

利用设备abort时输出的“Backtrace”信息,发现是在调用“adc1_get_raw”之后触发abort。

通过网上检索,发现有人提过类似问题。参考:Debug logging from adc_set_init_code (on main thread) causing an abort because it thinks it calls from an ISR (IDFGH-4233) · Issue #6091 · espressif/esp-idf (github.com)

出现故障原因是esp-idf在“adc_set_init_code”里面有一个debug级别的日志输出。当芯片为esp32s2且开启了debug日志的时候,将会导致abort。

图1 adc_set_init_code实
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值