基于上一篇的相关介绍,这里来实战一下:

上一篇见 https://blog.csdn.net/zwl1584671413/article/details/108146790

比如现在我这边生成了一个可烧录的二进制文件,领导让我估算一下当前的固件会占用多少ram? 多少flash?

这个时候,就需要去分析生成的目标文件的各个section了,如 .data, .text, .bss, .rodata等;

首先,进入我这边和一个最终生成的目标文件的目录下,我们先ls一下:

其中cmcp.bin是要烧录到芯片的二进制文件,烧录后芯片就能跑起来了;而cmcp.elf就是将所有用到的函数变量等等符号链接到一起的目标文件,其格式与.o文件基本一样;

下面我们就来查看它的section情况,首先使用objdump -h命令来看一下,

可以看到各个section的名字和其相应的位置,大小等信息,但是对的不太齐,有点乱;

然后我们使用readelf -S命令来看下,

这个命令比上条命令列出的信息基本一样,但是整齐很多,看各个section的size非常清楚;

但是我们只需要.text .data. .bss这三个段而已,可上面的两个命令列出的太多了,却没有这三个?

我估计应该是上面的sectoin是更新细化的段.要想简单点看.text .data .bss,我们用命令size来看下,

这下一目了然了.

这下可以完成任务了.报告领导,当前的文件,ram占用空间为(20150+460898)字节,flash占用大小为402736字节.

当然了,如果你想把.text也放进ram里,那么ram占用大小就成了883784字节,flash占用大小为0字节.至于哪个段放入哪个区域,可以在链接脚本里指定.指定不是随意的,也有一定的规则.比如.bss .data段是不可以放到flash中去的.

GCC全过程详解+剖析生成的.o文件(2)相关推荐

  1. GCC全过程详解+剖析生成的.o文件

    使用GCC编译一个.c文件影藏了哪些过程? GCC四步详解 第一步:预处理(也叫预编译) gcc -E  hello.c  -o hello.i 或者 cpp hello.c > hello.i ...

  2. GCC全过程详解+剖析生成的.o文件[转]

    使用GCC编译一个.c文件影藏了哪些过程? GCC四步详解 第一步:预处理(也叫预编译)         gcc -E  hello.c  -o hello.i         或者 cpp hell ...

  3. Linux平台Makefile文件的编写基础篇和GCC参数详解

    问:gcc中的-I.是什么意思....看到了有的是gcc -I. -I/usr/xxxxx..那个-I.是什么意思呢 最佳答案 答:-Ixxx 的意思是除了默认的头文件搜索路径(比如/usr/incl ...

  4. 浏览器解析html全过程详解

    前端文摘:深入解析浏览器的幕后工作原理 关于浏览器解析html全过程详解 输入URL到浏览器接收返回的数据的整个过程 TCP报文格式详解 IP报文格式详解 Linux IO模式及 select.pol ...

  5. WSO2安装使用的全过程详解

    WSO2安装使用的全过程详解 1. Wso2 Install 1.0 Port 1.1 Docker Install 1.2 Uninstall 2. Git Install 2.0 Port 2.1 ...

  6. 新手必看:访问url到加载全过程详解(看完不会我吃shi)

    新手必看:访问url到加载全过程详解(看完不会我吃shi) 1.放在前面:新手必须知道的那些概念 1.1 什么是IP.域名.主机名.url.服务器 1.2 http & https 1.3 O ...

  7. Apollo6.0代码Lattice算法详解——Part5: 生成横纵向轨迹

    Apollo6.0代码Lattice算法详解--Part5: 生成横纵向轨迹 0.前置知识 1.涉及主要函数 2.函数关系 3.部分函数代码详解 3.1 lattice_planner.cc中代码部分 ...

  8. 系统启动U盘制作全过程详解

    叙:之前自己的系统是家庭版的,在自己升级为专业版的时候出了问题,很生气想重装系统,但是苦于没有系统U盘,想自己制作一个系统U盘,但当时出差手里又没有带空白U盘,很尴尬~,最后自己自己在网上查了很久,试 ...

  9. 视频教程-javascript/jquery全过程详解-Java

    javascript/jquery全过程详解 资深大数据.java讲师,十年开发经验,曾经任职于北大青鸟.讯腾软件等多家知名教育机构,精通javaweb, 前端技术,J2EE技术体系,熟练使用Spri ...

最新文章

  1. Maven最佳实践:划分模块
  2. dev schedulercontrol 不显示周_CBA更新伤病报告:丁彦雨航仍需5周 阿联还要休养半年...
  3. 刘宇凡:数字让切糕与电商溅起涟漪
  4. 2014 年编程语言排名,人人都爱 TypeScript
  5. mysql root情况
  6. php pecl memcached,php – 安装PECL Memcached错误
  7. Marketing Cloud的Contact主数据创建
  8. mp4(H264容器)的详细文件格式分析
  9. Typename和Class在声明模板时的区别
  10. Jquery简单幻灯片
  11. 20.并发容器之ArrayBlockingQueue和LinkedBlockingQueue实现原理详解
  12. nginx 集群部署
  13. 哪个品牌台灯护眼效果好?分享被央视315表扬的护眼灯
  14. 小学一年级20以内加减法题目自动生成(家长的福利,孩子的魔鬼)
  15. MySQL数据库课程设计_Wincc实现与数据库的交互以及报表的实现方式
  16. JJY本地服务器以服务方式运行不能读取消息文件
  17. 关于svn在eclipse中上传和拉取代码
  18. 怎么改html文件的桌面图标,教你怎么把软件图标换成自己喜欢的图标
  19. Python+Vue计算机毕业设计网上书城系统t9avi(源码+程序+LW+部署)
  20. Android获取屏幕信息的几种方式

热门文章

  1. git cherry-pick
  2. JDK各版本内容和新特性
  3. *Codeforces587E. Duff as a Queen
  4. Python 【第八章】:JavaScript 、Dom、jQuery
  5. reactNative 打包那些事儿
  6. 损害计算机系统,哪些情况下容易导致电脑系统崩溃损坏?
  7. 神经网络训练集的图片到底是如何相互作用的?
  8. image.open()得到的图片是什么类型_500G图片1秒压缩成200M,这个方法也太逆天了吧!完全免费...
  9. Ardino基础教程 7_蜂鸣器发声实验
  10. ubuntu9.10配置编译xawtv-3.95