You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SIM808固件编译报armlink L6220:APP加载区超出容量限制

SIMCOM SIM808固件编译错误(L6220)解决方案

问题背景

基于Real View ARM Workbench IDE 4.0与SIM_EAT SDK开发SIM808模块固件,取消注释APP_InitRegions();、APP_init_clib();、app_mem_init();三行代码后,触发链接错误:

armlink : error L6220: Load region APP size (197016 bytes) exceeds limit (196608 bytes)

APP加载区配置为192KB(0x00030000),当前代码超出308字节。

解决方案

1. 代码与编译优化

  • 排查APP_InitRegions()、APP_init_clib()、app_mem_init()三个函数的实现,删除冗余常量、未使用分支或代码片段。
  • 提升编译器优化等级:在Real View IDE中将优化选项设为-O2或-O3,压缩生成的RO代码体积(调试阶段可临时回退至-O0)。
  • 清理编译列表:移除项目中未使用的库文件或目标文件,比如编译输出中未用到的传感器、通信模块。

2. 临时扩大Flash分区

从Flash映射可知,APP1区域后有EEP(8KB)、Res(8KB)两个未使用的预留区域,可临时调整分区:

  • 修改分散加载文件scat_SIM808M32.txt,将APP加载区大小从0x00030000(192KB)扩大至0x00034000(208KB),覆盖Res区域:
APP  0x90309000 0x00034000
{
  APPCFG +0
  { 
      * (APP_CFG)
  }

  APP0 +0
  { 
    main.o* (APPENTRY)
  }
  APP1 +0
  {
    main.o* (+RO)
    *.o*    (+RO)
  }

  APP_RAM   0xF0380000 0x00060000
  {
    main.o  (+RW,+ZI)
    *.o     (+RW,+ZI)
  }  
}
  • 同步修改Flash映射定义,更新APP_MAX_SIZE:
#define APP_MAX_SIZE            ((UINT32)4096*52)

注意:后续若需使用EEP或Res区域,需将代码移回原分区,避免地址冲突。

3. 拆分RO段到APP2区域

Flash映射中APP2区域有44KB可用,若当前项目未使用该区域,可将部分RO代码分流至此:

  • 修改分散加载文件,新增APP2加载区配置:
APP  0x90309000 0x00030000
{
  APPCFG +0
  { 
      * (APP_CFG)
  }

  APP0 +0
  { 
    main.o* (APPENTRY)
  }
  APP1 +0
  {
    main.o* (+RO)
    SysModules\util.o* (+RO)
    SIM808EATModules\*.o* (+RO)
  }
}

APP2  0x9033D000 0x0000B000
{
  FleetBoardP\*.o* (+RO)
  SysModules\fat\*.o* (+RO)
  *.o*    (+RO)
}

APP_RAM   0xF0380000 0x00060000
{
    main.o  (+RW,+ZI)
    *.o     (+RW,+ZI)
}  

4. 优化链接器选项

  • 删除链接命令中的--keep *.o,该选项会强制保留所有目标文件,增大RO段体积;改为仅保留必要文件,比如--keep main.o。
  • 添加链接器选项--remove --remove_unused_sections,自动移除未被引用的代码与数据。

验证方式

修改配置后重新编译,查看output.lis中的RO段大小统计,确认APP加载区未超出限制。若仍有溢出,分析map文件定位占用空间最大的模块,针对性优化。

内容的提问来源于stack exchange,提问作者Hossein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 13:44:53