打印

关于使用GD32芯片boot程序中移植littlefs文件系统编译出现内存溢出的问题

[复制链接]
3797|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
阿巴斯|  楼主 | 2024-4-1 19:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近遇到boot程序中使用文件系统来进行下载app程序,原来的是fatfs,想更换为littlefs文件系统,在更换完成后进行编译时,一直显示程序代码超过boot程序所分配的32KB的空间。导致内存溢出就是littlefs文件系统的源代码,去掉littlefs文件系统代码,编译是正常的而且空间使用并不是很大,但是加了littlefs之后,编译一直显示程序代码大小超过32KB。

使用littlefs,除了需要配置结构体:
const struct lfs_config cfg = {
    // block device operations
    .read  = W25Qxx_readLittlefs,
    .prog  = W25Qxx_writeLittlefs,
    .erase = W25Qxx_eraseLittlefs,
    .sync  = W25Qxx_syncLittlefs,

    // block device configuration
    .read_size = 256,
    .prog_size = 256,
    .block_size = W25Q128_ERASE_GRAN,
    .block_count = W25Q128_NUM_GRAN,
    .cache_size = 512,
    .lookahead_size = 512,
    .block_cycles = 500,
};

还需要什么配置什么地方?

使用特权

评论回复
沙发
lamanius| | 2024-4-16 11:06 | 只看该作者
可能是结构体定义的变量比较大了?

使用特权

评论回复
板凳
t1ngus4| | 2024-4-16 12:10 | 只看该作者
你可以看看堆栈溢出方面的设置,看看有没有必要

使用特权

评论回复
地板
cen9ce| | 2024-4-16 13:12 | 只看该作者
其实直接找个例程,在例程上面进行移植比较好哦

使用特权

评论回复
5
q1ngt12| | 2024-4-16 14:18 | 只看该作者
你把结构体的定义缩小一点试试?

使用特权

评论回复
6
w2nme1ai7| | 2024-4-16 15:22 | 只看该作者
这个我虽然没移植过文件系统,但是我觉得可能是你的结构体或者哪里的外部变量比较大了

使用特权

评论回复
7
p0gon9y| | 2024-4-16 16:25 | 只看该作者
你看看堆栈大小,如果未正确配置堆栈大小,导致堆栈溢出,影响LittleFS文件系统的正常运行

使用特权

评论回复
8
kaif2n9j| | 2024-4-16 18:00 | 只看该作者
在移植过程中,可能未正确配置LittleFS文件系统的参数,导致文件系统运行时占用的内存超出了预期

使用特权

评论回复
9
tax2r6c| | 2024-4-17 07:23 | 只看该作者
可能是未正确处理文件系统操作中可能出现的错误情况,导致内存溢出。

使用特权

评论回复
10
d1ng2x| | 2024-4-17 09:06 | 只看该作者
GD32芯片的boot程序可能内置的内存大小不足以支持LittleFS文件系统的运行,导致内存溢出

使用特权

评论回复
11
suw12q| | 2024-4-17 10:12 | 只看该作者
我觉得可以这样,确保正确配置文件系统参数,包括块大小、页大小等,以及文件系统的存储空间大小,然后一步一步的分析看哪里存储溢出搞得问题

使用特权

评论回复
12
烟雨蒙蒙520| | 2024-7-31 22:57 | 只看该作者
在使用 LittleFS 后代码超出了 32KB 的限制,可能是因为 LittleFS 的代码体积较大。

使用特权

评论回复
13
阿巴斯|  楼主 | 2024-9-2 10:19 | 只看该作者
是代码超过32K了,对fs代码进行不必要的功能进行屏蔽后,缩小代码的空间,编译通过,功能正常!

使用特权

评论回复
14
王派oo| | 2024-9-30 13:31 | 只看该作者
确认没有包含不必要的源文件或库文件,特别是在链接时。逐步去掉不相关的模块,看看是否能减小编译后的代码。

使用特权

评论回复
15
而服务器人| | 2024-9-30 13:34 | 只看该作者
通常优化级别应设置为-O2或-Os,以减小代码体积。

使用特权

评论回复
16
申小林一号| | 2024-9-30 14:05 | 只看该作者
可能是堆栈大小设置不够

使用特权

评论回复
17
stormwind123| | 2024-10-31 12:36 | 只看该作者
cache_size和lookahead_size可以设置为更小的值,以减少RAM的使用

使用特权

评论回复
18
laocuo1142| | 2024-10-31 12:37 | 只看该作者
减少块擦除周期

使用特权

评论回复
19
flycamelaaa| | 2024-10-31 13:26 | 只看该作者
检查是否有未使用的函数或代码段,并考虑将它们从项目中移除。

使用特权

评论回复
20
stormwind123| | 2024-10-31 16:23 | 只看该作者
检查您是否使用了最新版本的LittleFS。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

28

帖子

0

粉丝