找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 357|回复: 0
打印 上一主题 下一主题
收起左侧

关于自己绘制的pcb上esp32-s使用板载psram出错的问题

[复制链接]
跳转到指定楼层
楼主
ID:1127161 发表于 2024-6-26 18:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大佬,我自己绘制了一个pcb电路板,使用的是esp32-S做核心片,因为内存不够,我在上面载入了一片乐鑫psram64h。
我一年前曾贴片过一篇pcb,我个人的开发环境是vscode搭配platform IO;一年前的这块pcb,不需要做任何设置,做任何初始化,直接使用
  mySerial.printf("PSRAM free size: %d\n", heap_caps_get_free_size(MALLOC_CAP_SPIRAM));
  mySerial.printf("Internal free size: %d\n", heap_caps_get_free_size(MALLOC_CAP_8BIT));
即可在串口助手上看到我板载的psram64h的8M内存,分别分配了4M到psram与默认堆中。
但是我前阵子新贴了一批板子(未更换pcb、原理图),烧录同样的代码,
  mySerial.printf("PSRAM free size: %d\n", heap_caps_get_free_size(MALLOC_CAP_SPIRAM));
  mySerial.printf("Internal free size: %d\n", heap_caps_get_free_size(MALLOC_CAP_8BIT));
这两句函数并不能读到我的psram,串口助手中可分配的psram为0,默认堆大小也只有200k;
但是使用  int psram_size = esp_spiram_get_size();
  mySerial.printf("PSRAM size: %d bytes\n", psram_size);
能够读到具有8M的空间,只是未分配至堆中,
于是我个人手动添加  esp_spiram_add_to_heapalloc();至setup中;
发现可用psram成功分配至可用堆大小中,但是在实际使用过程中,这段内存似乎是乱的,因为之前我这个设备调用摄像模块,拍摄600*800的jpeg想服务器上传时,长度大概是30000个字节,但是如果将摄像头的缓冲区初始化在psram中,上传的长度是80000个字节,并且上传至服务拼接后并不能显示出图片。
我个人怀疑 是否是这段内存的编址有问题? 或者说 我并不能直接使用  esp_spiram_add_to_heapalloc();来添加这段内存,需要提前进行初始化? 如果是这个原因,我该怎么做? 还请各位大佬解答,如果成功解决可以有小额的感谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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