platformio中arduino框架下esp32 flash信息修改问题

问题描述:

购买的esp32-wroom-32E的flash明明是16MB,但是为什么在烧录的时候只能显示1MB?

回答:

在platformio中选择板子的时候,给的模板默认是4MB的模板。4MB又会被分成5个区。下图是flash的一个分区表,用arduino的话,代码是存放在app0区的,也就是你的代码区仅有0x140000大小。

问题描述:

我希望我的代码区尽可能的大,不需要其他分区,应该怎么做?

回答:

在工程目录文件夹下,新建一个userFlash.csv文件,文件名随便,格式是csv。然后打开,你可以直接用vscode打开,把下面这个粘贴进去,官方给出了常见的分区。arduino-esp32/tools/partitions at master · espressif/arduino-esp32 · GitHub。一定要注意如果使用excel打开,不用逗号。因为csv文件本身是以逗号作为表格分割符的。但是你用vscode打开,他其实跟你用txt打开csv文件是一样的,一定要加逗号。分区的数值总的来说是你的实际flash大小,当然比他小也没事。

# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
otadata,  data, ota,     0xe000,  0x2000,
app0,     app,  ota_0,   0x10000, 0x640000,
app1,     app,  ota_1,   0x650000,0x640000,
spiffs,   data, spiffs,  0xC90000,0x370000,

之后在platformio.ini中添加 board_build.partitions = partitions.csv

此时你再次编译就不会出现问题了。(烧录还是会有问题的)

问题描述:

已经修改了flash分区表,编译也没问题了,但是就是烧录不了

回答:

是编绎时没接入板,与板的flash大小没关。修改配置无效,是因为编绎程序首先认为板是默认4M大小的。而pio run -t menconfig 只是修改配置项,只能在编绎成功时才能将配置一起并入目标码,可能这个编译顺序错误或提示错误。所以就要了解从哪里读到的是4M大小。plaftfromio 新建项目时,要选择板,其实每种板子都有它的配置文件。plaftfromio 先读取的是配置文件。由与是选的板子是esp32 dev module ,所以 配置文件是 esp32_dev.json。

解决: 修改 板的配置文件,这里是 esp32_dev.json.windows 一般位于{userProfile}.platformio\platforms\espressif32\boards 目录下。环境重装时记得这里要改过来,否则项目又会报错~。

"upload": {

    "flash_size": "16MB",

    "maximum_ram_size": 327680,

    "maximum_size": 4194304,

    "require_upload_port": true,

    "speed": 460800

  },

至此,保存重启vscode 就可以了

 

在Visual Studio Code使用PlatformIOArduino框架烧录STM32芯片并进行调试,可以按照以下步骤进行操作: 1. 准备工作: - 确保你已经安装了Visual Studio Code和PlatformIO插件。 - 创建一个新的PlatformIO项目,并选择使用Arduino框架。 - 你还需要连接好STM32开发板,并确保开发板与计算机之间建立了正确的连接。 2. 编写代码: - 在PlatformIO项目的`src`文件夹下创建一个新的`.cpp`文件,写入你的Arduino代码。 3. 配置调试环境: - 在Visual Studio Code打开PlatformIO项目。 - 在左侧的侧边栏,点击调试按钮(调试图标)打开调试视图。 - 点击调试视图的齿轮图标,选择“添加配置”并选择“PlatformIO: STM32”。 - 这将在`.vscode/launch.json`文件创建一个调试配置。 4. 调试配置: - 在`.vscode/launch.json`文件,找到刚刚创建的调试配置,并根据你的配置需求进行修改。 - 确保以下几个配置项是正确的: - "executable": "${command:platformio.device}", - "servertype": "platformio", - "filterStderr": false 5. 开始调试: - 在调试视图点击绿色的启动按钮开始调试。 - 如果一切顺利,PlatformIO将自动构建、烧录代码到STM32芯片,并开始在调试器运行你的代码。 - 现在你可以在调试视图设置断点、单步调试等操作。 请注意,上述步骤假设你已经正确配置了PlatformIOArduino框架,并且你的STM32开发板已经连接并可以正常工作。如果你遇到任何问题,请参考PlatformIO的官方文档或在PlatformIO的社区寻求帮助。 希望这对你有所帮助!如果你还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值