瑞芯微Rockchip开发者社区
直播中

surround

12年用户 553经验值
私信 关注
[问答]

ESP32芯片无法进入烧录模式下载程序怎么办呢

ESP32芯片无法进入烧录模式下载程序怎么办呢?
ESP32芯片在linux里下载程序时提示串口权限不足怎么办呢?

回帖(6)

刘平

2022-1-14 09:36:00
1
举报

张厉界

2022-1-14 09:40:05
1
举报

荣春梅

2022-1-14 09:43:54
1、遇到的问题以及解决方法

1.1无法进入烧录模式下载程序

因为esp32芯片进入烧写模式的条件是启动时检测boot引脚,因此需要摁着boot键才能下载程序。
出现连接不上spi flash时,出现如下情况:

出现这种情况一般是启动配置的strapping引脚采样电平不符合启动模式,需要调整硬件威廉希尔官方网站 。
1.2 在linux里下载程序的时候老提示串口权限不足

linux下面串口设备的一般是root权限,因此使用串口需要取得root权限或者修改dev目录下串口的权限。
想 串口支持当前用户,需要把当前用户添加到Group,添加办法
sudo usermode -a -G dialout $USER1.3  LoadProhibited问题   寄存器转储


Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x400e412b  PS      : 0x00060430  A0      : 0x800e41ae  A1      : 0x3ffc9550  
A2      : 0x3ffc75d0  A3      : 0x0000001b  A4      : 0x00000000  A5      : 0x00000000  
A6      : 0x3ffb3a28  A7      : 0x00000000  A8      : 0x3ffbd6dd  A9      : 0x00000000  
A10     : 0x3ffb4040  A11     : 0x40082ef8  A12     : 0x3ffc75cc  A13
当应用程序尝试读取或写入无效的内存位置时,会发生此 CPU 异常。
可能原因:写入/读取的地址可在寄存器转储中的 EXCVADDR 寄存器中找到.
1、如果此地址为零,则通常表示应用程序尝试引用 NULL 指针;
2、如果此地址接近于零,则通常意味着应用程序尝试访问结构体的成员,但指向该结构的指针为 NULL;
3、如果该地址是别的(垃圾值,不在 0x3fxxxxxx - 0x6xxxxxxx 范围内),则可能意味着用于访问数据的指针未初始化或已损坏。
引用NULL指针(&地址引用错误、野指针....)
上述例子原因在于下面,我free掉了这个扇区的信息,后期又esp_ota_get_running_partition()去获取,结果出错。


  • esp_partition_t * partition = esp_ota_get_running_partition();
  • ESP_LOGI(TAG,"current partition info: %s",partition->label);
  • free(partition);



1.3 在编译时出现error: unrecognized command line option '-mfix-esp32-psram-cache-issue'

原因:这是因为ESP32的某些修订存在一些问题,这些问题会对外部RAM的使用产生影响。而这些内容都记录在ESP32 ECO文档中。
ESP-IDF以下列方式处理提及的错误
ESP32 rev v0-----ESP-IDF没有针对此版本硅片中的错误的解决方法,它不能用于将外部的PSRAM映射到ESP32s 主存储映射中。
ESP32 rev v1-----某些机器指令序列在外部存储器位置上运行时(ESP32 ECo 3.2)上运行时,此芯片版本中的错误会带来微信。
为了解决这个问题,编译ESP-IDF的gcc编译器 扩展了一个标志:-mfix-esp32-psram-cache-issue。
将这个标志传递给命令行上的gcc,编译器可以解决这个问题,并只输出可以安全执行的代码。
出现不认识的错误,是编译工具链的问题。
可以通过在ESP-IDF中,选择CONFIG_SPIRAM_CACHE_WOrKAROUND时,将启动此标志。此时ESP-IDF还采取其他措施确保不使用PSRAM访问和违规指令集的组合。这些措施包括:
在Makefile中除能下图选项,即可不启动此标志。不建议使用。
举报

张桂荣

2022-1-14 09:46:23
1
举报

李亚东

2022-1-14 09:49:46
1
举报

向可嘉

2022-1-14 09:53:59
1、遇到的问题以及解决方法

1.1无法进入烧录模式下载程序

因为esp32芯片进入烧写模式的条件是启动时检测boot引脚,因此需要摁着boot键才能下载程序。
出现连接不上spi flash时,出现如下情况


出现这种情况一般是启动配置的strapping引脚采样电平不符合启动模式,需要调整硬件威廉希尔官方网站 。
1.2 在linux里下载程序的时候老提示串口权限不足

linux下面串口设备的一般是root权限,因此使用串口需要取得root权限或者修改dev目录下串口的权限。
想 串口支持当前用户,需要把当前用户添加到Group,添加办法
sudo usermode -a -G dialout $USER1.3  LoadProhibited问题   寄存器转储


Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x400e412b  PS      : 0x00060430  A0      : 0x800e41ae  A1      : 0x3ffc9550  
A2      : 0x3ffc75d0  A3      : 0x0000001b  A4      : 0x00000000  A5      : 0x00000000  
A6      : 0x3ffb3a28  A7      : 0x00000000  A8      : 0x3ffbd6dd  A9      : 0x00000000  
A10     : 0x3ffb4040  A11     : 0x40082ef8  A12     : 0x3ffc75cc  A13
当应用程序尝试读取或写入无效的内存位置时,会发生此 CPU 异常。
可能原因:写入/读取的地址可在寄存器转储中的 EXCVADDR 寄存器中找到.
1、如果此地址为零,则通常表示应用程序尝试引用 NULL 指针;
2、如果此地址接近于零,则通常意味着应用程序尝试访问结构体的成员,但指向该结构的指针为 NULL;
3、如果该地址是别的(垃圾值,不在 0x3fxxxxxx - 0x6xxxxxxx 范围内),则可能意味着用于访问数据的指针未初始化或已损坏。
引用NULL指针(&地址引用错误、野指针....)
上述例子原因在于下面,我free掉了这个扇区的信息,后期又esp_ota_get_running_partition()去获取,结果出错。

  • esp_partition_t * partition = esp_ota_get_running_partition();
  • ESP_LOGI(TAG,"current partition info: %s",partition->label);
  • free(partition);


1.3 在编译时出现error: unrecognized command line option '-mfix-esp32-psram-cache-issue'

原因:这是因为ESP32的某些修订存在一些问题,这些问题会对外部RAM的使用产生影响。而这些内容都记录在ESP32 ECO文档中。
ESP-IDF以下列方式处理提及的错误
ESP32 rev v0-----ESP-IDF没有针对此版本硅片中的错误的解决方法,它不能用于将外部的PSRAM映射到ESP32s 主存储映射中。
ESP32 rev v1-----某些机器指令序列在外部存储器位置上运行时(ESP32 ECo 3.2)上运行时,此芯片版本中的错误会带来微信。
为了解决这个问题,编译ESP-IDF的gcc编译器 扩展了一个标志:-mfix-esp32-psram-cache-issue。
将这个标志传递给命令行上的gcc,编译器可以解决这个问题,并只输出可以安全执行的代码。
出现不认识的错误,是编译工具链的问题。
可以通过在ESP-IDF中,选择CONFIG_SPIRAM_CACHE_WOrKAROUND时,将启动此标志。此时ESP-IDF还采取其他措施确保不使用PSRAM访问和违规指令集的组合。这些措施包括:
在Makefile中除能下图选项,即可不启动此标志。不建议使用。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分