【ESP32】反复重启

本文讲述了开发者在ESP32项目中遇到的开发问题,主要原因是未正确分配结构体内存,导致StoreProhibited错误。作者通过调试找出问题并分享了解决方法,提醒读者在使用结构体时务必确保其正确初始化。
摘要由CSDN通过智能技术生成

ESP32开发 反复重启

串口输出如下所示:

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 188777542, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5828
entry 0x400806a8
Power: Waiting...
Power: ON
Encoder init start...
Guru Meditation Error: Core  1 panic'ed (StoreProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x400d12d1  PS      : 0x00060530  A0      : 0x800d15f4  A1      : 0x3ffb1f60
A2      : 0x3ffca144  A3      : 0x40086a94  A4      : 0x0800001c  A5      : 0x00000003
A6      : 0x00000003  A7      : 0x00000000  A8      : 0x00000000  A9      : 0x00000007
A10     : 0x3ff440ec  A11     : 0x400d11a4  A12     : 0x3ffc1a10  A13     : 0x00000000
A14     : 0x3ff59000  A15     : 0x00000000  SAR     : 0x00000005  EXCCAUSE: 0x0000001d  
EXCVADDR: 0x00000000  LBEG    : 0x400014fd  LEND    : 0x4000150d  LCOUNT  : 0xffffffff

ELF file SHA256: 0000000000000000

Backtrace: 0x400d12d1:0x3ffb1f60 0x400d15f1:0x3ffb1f80 0x400ec1ee:0x3ffb1fb0 0x40089a32:0x3ffb1fd0

Rebooting...
ets Jun  8 2016 00:22:57

经过调试,发现是结构体的使用出现了问题。
使用结构体的时候只定义了一个结构体指针,这样并没有给结构体分配空间,所以在给结构体赋值的时候,程序找不到地址空间进行操作,所以出现了CPU异常。
报错信息中,StoreProhibited应该就是指这个原因。

下次得注意结构体的使用,应该是学C过了很久了,期间很少使用结构体,导致不熟练。不过好在,现在排查出来了,但花费的时间过长,之后应该注意调试流程。

Controller_Action * encoder_act_info;
void func(void)
{
	encoder_act_info->xxx = 1; // WRONG!!!!!
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值