ESP-IDF学习——报错以及相关配置

记录学习ESP-IDF过程中出现的一些问题以及配置修改。

  • 使用taskENTER_CRITICAL()和taskEXIT_CRITICAL()进入临界区时编译器提示需要参数,并且build会失败,点击函数跳转时出现两个task文件,一个需要参数,另一个不需要参数,发现FreeRTOS有两个内核文件夹,ESP32是多核,建议使用SMP版本的FreeRTOS

Component config > FreeRTOS > Kernal
勾选 Run the Amazon SMP FreeRTOS kernel instead (FEATURE UNDER DEVELOPMENT)

  • 在使用临界区保障代码运行不被打断时,触发Backtrace严重错误,特征为打印 CPU 寄存器,然后重启,经测试后发现是超时使用临界区导致watch dog出错。

1.调整watch dog timeout时间
Component config > ESP System Settings > Trace memory > Panic handler behaviour
选择为Print registers and halt(打印寄存器后暂停,避免关键任务出错导致循环重启)
Component config > ESP System Settings > Trace memory > Interrupt watchdog timeout (ms)
调整该项数值,设置为大于临界区代码执行的时间(非必要不修改)
2.避免在临界区代码内使用printf()等耗时长的函数,避免操作IO。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值