MDK如何在C代码中获取编译后的bin文件的大小

要在C代码程序中获取编译器最终生成的bin文件大小,通过读取编译器中生成的链接符号变量来计算。

比如,测试程序中生成的Code大小为1906个字节,RO-data的大小为486个字节。两者相加1906+486=2392.

在这里插入图片描述
项目配置:
在这里插入图片描述
分散加载脚本:

; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
 
LR_IROM1 0x08000000 0x00080000  {
   
       ; load region size_region
  ER_IROM1 0x08000000 0x00080000  {
   
     ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
   .ANY (+XO)
  }
  RW_IRAM1 0x20000000 0x00020000  {
   
     ; RW data
   .ANY (+RW +ZI)
  }
}
 

注意:其中的执行域的名称为ER_IROM1。
添加代码:

extern int Image$$ER_IROM1$$RO$$Base;
extern int Image$$ER_IROM1$$RO$$Limit;
 
 
 
#define LINKER_VAR_IROM_START Image$$ER_IROM1$$RO$$Base
#define LINKER_VAR_IROM_LIMIT Image$$ER_IROM1$$RO$$Limit
 
 
		{
   
   
			int *pBase, *pLimit;
			int nSize;
			
			pBase = &LINKER_VAR_IROM_START;
			pLimit = &LINKER_VAR_IROM_LIMIT;</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值