当前位置:   article > 正文

01-学习ESP32-freeRTOS的一点理解_rst:0x8 (tg1wdt_sys_reset),boot:0x13 (spi_fast_fla

rst:0x8 (tg1wdt_sys_reset),boot:0x13 (spi_fast_flash_boot)

目录

一、体会

二、ESP32复位


一、体会

        最近项目用到arduino开发,需要用到freeRTOS.觉得这个实时系统的本质就是一个定时器时钟节拍下的任务调度处理。通过创建不同的任务,替代了原来写裸机程序时需要自己配置定时器并完成各个函数或子程序的协调运行问题。这种方式简化了程序搭建过程,使得用户可以把精力放到产品功能设计上。按键或定时器中断和裸机编程类似。

        系统本身引入了一些信号量、消息、临界代码段的概念,需要多多实践即可熟练应用。ESP32对系统做了一些定制化的修改,比如临界段函数taskENTER_CRITICAL(&mux);需要传入一个portMUX_TYPE类型的参数。下面写一个我碰到的问题及处理。

二、ESP32复位

  1. 09:11:06.658 -> rst:0x8 (TG1WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
  2. 09:11:06.658 -> configsip: 0, SPIWP:0xee
  3. 09:11:06.658 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
  4. 09:11:06.658 -> mode:DIO, clock div:1
  5. 09:11:06.691 -> load:0x3fff0018,len:4
  6. 09:11:06.691 -> load:0x3fff001c,len:1216
  7. 09:11:06.691 -> ho 0 tail 12 room 4
  8. 09:11:06.691 -> load:0x40078000,len:9720
  9. 09:11:06.691 -> ho 0 tail 12 room 4
  10. 09:11:06.691 -> load:0x40080400,len:6352
  11. 09:11:06.691 -> entry 0x400806b8
  12. 09:11:08.062 -> ets Jul 29 2019 12:21:46
  13. 09:11:08.062 ->
    系统复位,出现rst:0x8 (TG1WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT),原因是任务栈数据溢出,将任务栈大小配置为2048后,程序正常启动并运行。记得原来用STM32的时候,任务栈用不了这么大,可能原因是arduino代码比较吃内存,毕竟用的是别人写好的库,我测试的工程中用了别人写好的oled库,函数的嵌套和调用比较多导致。
  1. xTaskCreatePinnedToCore(
  2. TaskTerminal, "TaskTerminal", 1024 // Stack size

                
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/196210
推荐阅读
相关标签
  

闽ICP备14008679号