关于esp32 常量区溢出问题。

oneofzero
Posts: 2
Joined: Thu Dec 20, 2018 9:07 am

关于esp32 常量区溢出问题。

Postby oneofzero » Thu Dec 20, 2018 9:18 am

我定义了一个 const char[] 的数组 大小是1.2M 结果运行不起来。 改成250K 就能运行。
开发板有 4M spi flash, 为什么会崩溃??啥原因呢。 :?:

ESP_@In逍遥子
Posts: 132
Joined: Thu Nov 15, 2018 2:06 am

Re: 关于esp32 常量区溢出问题。

Postby ESP_@In逍遥子 » Thu Dec 20, 2018 12:00 pm

可以看到你的程序运行相关 log 吗?帮助我们分析~

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: 关于esp32 常量区溢出问题。

Postby ESP_Gargamel » Thu Dec 20, 2018 12:28 pm

如果你有这么大的数组,用默认的 partition 分区表肯定是不行了,默认的 partiton 分区的 app 才 1M。

所以,你可以通过以下进行尝试:
step 1. 修改分区表,可以参看这个文档:https://docs.espressif.com/projects/esp ... ables.html
step 2. menuconfig->Serial flasher config->Flash size (4 MB) 选择 4 MB

oneofzero
Posts: 2
Joined: Thu Dec 20, 2018 9:07 am

Re: 关于esp32 常量区溢出问题。

Postby oneofzero » Fri Dec 21, 2018 1:50 am

对的, 我用visualgdb 环境开发,我直接把那个cvs的表 里的1M 改成4M 结果报 4.1M 和4M 不匹配。。现在改成3M 能正常运行了。 :roll:

ESP_@In逍遥子
Posts: 132
Joined: Thu Nov 15, 2018 2:06 am

Re: 关于esp32 常量区溢出问题。

Postby ESP_@In逍遥子 » Fri Dec 21, 2018 3:48 am

为啥会出现 4.1M 和 4M 不匹配,可以来看看吗

ESP_igrr
Posts: 2072
Joined: Tue Dec 01, 2015 8:37 am

Re: 关于esp32 常量区溢出问题。

Postby ESP_igrr » Fri Dec 21, 2018 3:52 am

Probably because the partition start is at 0x10000, and if the size is set to 0x400000, then the end of the partition will be at 0x410000, outside of 4MB range?

ESP_@In逍遥子
Posts: 132
Joined: Thu Nov 15, 2018 2:06 am

Re: 关于esp32 常量区溢出问题。

Postby ESP_@In逍遥子 » Fri Dec 21, 2018 6:50 am

整块 flash 不是全部用来存储 APP 的,你定义的 csv 总大小操作了 flash 的总大小,可以详细看看上面的文档。有详细介绍

Who is online

Users browsing this forum: No registered users and 184 guests