[技术问答] MA35D1 RTP gcc.arm.ld memory issue

[复制链接]
1504|10
 楼主| 两只袜子 发表于 2023-8-7 10:55 | 显示全部楼层 |阅读模式
在build M4的软件时遇到memory size不足的问题,提示如下:

ld.exe: JelliesV3.elf section '.text' will not fit in region 'FLASH'

ld.exe: section ,data VMA [00010000,000102af] overlaps section ,text VMA [00080000,00011aa71]



在CMSIS\GCC\gcc.arm.ld 里面做了以下改动后就可以build成功也能在device里面顺利执行,这个改动是正确的吗?正确的话能,这里可以maximum set多少呢?

默认

MEMORY



  FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x10000

  RAM (rwx) : ORIGIN = 0x00010000, LENGTH = 0x10000





修改为:

MEMORY



  FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x20000

  RAM (rwx) : ORIGIN = 0x00020000, LENGTH = 0x10000
alxd 发表于 2024-10-24 14:39 | 显示全部楼层
在MA35D1微控制器上使用GCC编译器时,如果遇到链接脚本(gcc.arm.ld)中的内存问题,可能的原因是内存区域定义错误
Betty1299 发表于 2024-10-24 15:45 | 显示全部楼层
链接脚本中定义的内存区域(如RAM、ROM)可能与实际硬件不匹配,导致程序无法正确加载或运行
Carina卡 发表于 2024-10-24 16:46 | 显示全部楼层
ORIGIN 和 LENGTH 的值与实际硬件不匹配。内存区域的重叠或冲突
Charlotte夏 发表于 2024-10-24 17:52 | 显示全部楼层
如果程序使用的堆栈大小超过了链接脚本中定义的堆栈大小,可能会导致内存溢出或程序崩溃
Alina艾 发表于 2024-10-24 18:54 | 显示全部楼层
stack 段的大小不足,导致堆栈溢出。
Emily999 发表于 2024-10-24 20:02 | 显示全部楼层
如果数据段和代码段在内存中重叠,可能会导致数据被意外覆盖,从而引发内存问题
Allison8859 发表于 2024-10-24 21:09 | 显示全部楼层
.text 和 .data 段在内存中重叠。
Betty996 发表于 2024-10-25 08:30 | 显示全部楼层
未初始化的全局变量(.bss 段)可能没有正确分配内存,导致程序运行时出现内存问题
Carmen7 发表于 2024-10-25 10:06 | 显示全部楼层
链接脚本中的内存布局可能与编译器选项不匹配,导致程序无法正确链接
Annie556 发表于 2024-10-25 11:10 | 显示全部楼层
某些硬件可能具有内存保护机制,如果程序访问了受保护的内存区域,可能会导致内存问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2122

主题

8121

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部