数码之家

 找回密码
 立即注册
搜索
查看: 1518|回复: 9

ESP32-WROOM-32D模组上传Arduino IDE编译的固件总是重启,该如何解决

[复制链接]
发表于 2022-5-13 19:59:06 | 显示全部楼层 |阅读模式
    手头的ESP32-WROOM-32D模组搭载的是单核CPU,因此Arduino IDE需要配置成单核编译模式。用ESP32的示例编译并上传固件后不断重启。
例如GetChipID,源代码:  
uint32_t chipId =0;
void setup() {
       Serial.begin(115200);
}
void loop() {
       for(int i=0; i<17; i=i+8) {
         chipId |= ((ESP.getEfuseMac() >> (40 -i)) & 0xff) << i;
       }
       Serial.printf("ESP32 Chip model = %sRev %d\n", ESP.getChipModel(), ESP.getChipRevision());
       Serial.printf("This chip has %dcores\n", ESP.getChipCores());
  Serial.print("Chip ID: "); Serial.println(chipId);
  
       delay(3000);
}
则运行后会不断重启并打印如下信息:
Rebooting...
ets Jun  8 2016 00:22:57
rst:0xc(SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0,SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clockdiv:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room4
load:0x40078000,len:10944
load:0x40080400,len:6388
entry 0x400806b4
E (104)system_api: Base MAC address from BLK0 of EFUSE CRC error, efuse_crc = 0x00;calc_crc = 0xd0
abort() was calledat PC 0x400e1753 on core 0
ELF file SHA256:0000000000000000
Backtrace:0x4008443b:0x3ffb1ee0 0x40084699:0x3ffb1f000x400e1753:0x3ffb1f200x400d0cee:0x3ffb1f600x400d0b9b:0x3ffb1f900x400d14f1:0x3ffb1fb00x40085651:0x3ffb1fd0
如果把源码中的
for(int i=0;i<17; i=i+8) {
        chipId |= ((ESP.getEfuseMac() >> (40 - i)) & 0xff) << i;
       }
这一部分注释掉,即:
uint32_t chipId =0;
void setup() {
       Serial.begin(115200);
}
void loop() {
       Serial.printf("ESP32 Chip model = %sRev %d\n", ESP.getChipModel(), ESP.getChipRevision());
       Serial.printf("This chip has %dcores\n", ESP.getChipCores());
  Serial.print("Chip ID: ");Serial.println(chipId);
  
       delay(3000);
}
则可以完全正常,请教各位大佬,这是什么原因?该如何解决?

发表于 2022-5-13 22:27:04 | 显示全部楼层
小米的拆机板吧,mac厂商自定义写入似乎就会这样
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-14 08:37:57 | 显示全部楼层
muyan 发表于 2022-5-13 22:27
小米的拆机板吧,mac厂商自定义写入似乎就会这样

应该是,有什么办法可以解决吗?
回复 支持 反对

使用道具 举报

发表于 2022-5-19 17:05:32 | 显示全部楼层
github上有一个项目,从arduino的库里关闭mac地址的crc校验,只是很久没有更新了
回复 支持 反对

使用道具 举报

发表于 2022-5-22 12:22:40 | 显示全部楼层
需要重新编译sdk包。如果你使用的是2.0.3,我可以给你一个修改过的库,替换后不会重启了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-27 15:58:38 | 显示全部楼层
kazuyuki 发表于 2022-5-22 12:22
需要重新编译sdk包。如果你使用的是2.0.3,我可以给你一个修改过的库,替换后不会重启了 ...

我用Arduino ESP8266开发板包版本是3.02,这可能不能用SDK来编译吧,毕竟是Arduino 的。
回复 支持 反对

使用道具 举报

发表于 2022-5-27 22:46:50 | 显示全部楼层
arduino的sdk包就是用idf 2.0.3编译的,arduino要使用库只能自己重新编译sdk库才行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-1 12:20:27 | 显示全部楼层
kazuyuki 发表于 2022-5-27 22:46
arduino的sdk包就是用idf 2.0.3编译的,arduino要使用库只能自己重新编译sdk库才行 ...

怎样自己进行预编译?
回复 支持 反对

使用道具 举报

发表于 2023-8-27 07:38:09 来自手机浏览器 | 显示全部楼层
后来有解决吗?!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-27 13:02:34 | 显示全部楼层
本帖最后由 lmn2005 于 2023-8-27 13:05 编辑
左瘸子 发表于 2023-8-27 07:38
后来有解决吗?!

只能使用4楼坛友提供的方法将就使用,那库好几年没有更新了,github主也声明不再更新了。
曾经安装过乐鑫ESP32_IDF编译环境V2.42,也照常重启,因为不知道如何关闭mac地址的crc校验。
也好久没有去弄ESP32了。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-25 11:45 , Processed in 0.171600 second(s), 9 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表