硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1223|回复: 6
收起左侧

[技术讨论] STM32L431代码超出flash范围

[复制链接]

24

主题

50

回帖

122

积分

初级会员

积分
122
发表于 2024-8-20 08:06:25 | 显示全部楼层 |阅读模式
本帖最后由 zhouyalong 于 2024-8-20 08:09 编辑

代码加完文件系统后,写了功能函数,程序报错Error[Lp011]: section placement failed unable to allocate space for sections/blocks with a total estimated minimum size of 0x4'4463 bytes (max align 0x8) in <[0x800'0000-0x803'ffff]> (total uncommitted space 0x3'fe74).        说是flash超了,如果开了最高级别的优化,代码能编译成功,除了这种方法,还有其他不开优化等级也能使代码编译通过的吗?我看网上说改icf文件,但是不知道怎么修改,使用的芯片是STM32L431RCT6的,256K的flash,64k的SRAM        ,生成的MAP文件为



微信图片_20240820080652.png

主要是第二个readonly  data memory占用空间太大了,根据网上查找的,第一个加第二个合起来是flash 的大小,超过了256k,有没有其他的方法?

下面这个是ICF文件

微信图片_20240820080831.png

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-8-20 10:32:37 | 显示全部楼层
如果不开优化,那有必要看下那个文件占用的Flash比较大,手动优化程序了。
回复

使用道具 举报

34

主题

206

回帖

308

积分

高级会员

积分
308
发表于 2024-8-20 11:15:56 | 显示全部楼层
找到占用大的地方,手动优化
回复

使用道具 举报

2

主题

77

回帖

88

积分

初级会员

积分
88
发表于 2024-8-20 11:31:42 | 显示全部楼层
readonly data 占了近 180K ,估计优化有难度,这个数据一定要放在单片机内部吗
回复

使用道具 举报

24

主题

365

回帖

437

积分

高级会员

积分
437
发表于 2024-8-20 13:35:49 | 显示全部楼层
KEIL工程的吗,KEIL可以指定哪些源文件进行优化,你可以把你调试过的或者使用的一些第三方的不用再需要调试的开源代码指定为MiniSize优化。需要调试的设置为不优化。
回复

使用道具 举报

3

主题

295

回帖

304

积分

高级会员

积分
304
发表于 2024-8-20 13:47:29 | 显示全部楼层
看了下楼主历史发帖,应该是单片机新手,上来让新手就做难度大的项目,公司心很大。LCD的字库和图库可以简化,只留实际用到的,FRAM FM25V05这个也可以用起来。主要看map文件一个一个排查,不排除楼主犯低级错误的可能
回复

使用道具 举报

24

主题

50

回帖

122

积分

初级会员

积分
122
 楼主| 发表于 2024-8-21 14:56:17 | 显示全部楼层
找到问题了,文件系统配置有问题,从栈改为堆了
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 06:34 , Processed in 0.040815 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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