还未设置个性签名
成为VIP会员 享9项特权: 开通会员

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

嵌入式bin文件和elf文件重点

Q4MP_gh_c472c21 来源:未知 作者:李倩 2018-05-15 11:04 次阅读

文件格式

(1)BIN文件:binary文件,即二进制文件。

(2)HEX文件:hex的全称是Intel HEX,此类文件通常用于传输将被存于ROM或者EPROM中的程序和数据。是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。大多数EPROM编程器或模拟器使用Intel HEX文件。 HEX文件记录由对应机器语言码和/或常量数据的十六进制编码数字组成。

(3)ELF文件: 是Linux的主要可执行文件格式。 ELF文件除了机器码外,还包含其它额外的信息,如段的加载地址,运行地址,重定位表,符号表等。

(4)bin文件和elf文件重点摘要:

执行raw binary很简单,只需要将程序加载到其起始地址,就可以执行; 执行ELF程序则需要一个ELF Loader。 现在知道了吧,uboot和Linux kernel启动的时候是没有ELF Loader的,所以烧在flash上的文件只能是raw binary格式的,即镜像文件image。

a)通过gcc编译出来的是elf文件

b)通过objcpy可以把elf文件转换为bin文件

(5)LDS文件:它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。指定连接文件的存储地址、运行地址,存储地址和运行地址可以相同也可以不同。转自:https://wenku.baidu.com/view/9a8beb125f0e7cd18425369a.html

(6)map文件:map文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法,是整个程序工程信息的静态文本,通常由linker生成。 map文件保存整个工程的静态文本信息,里面有所有函数的入口地址。

通过查看map文件,我们可以找到代码段(.text),全局未初始化区(.bss),数据段(.data)。

map文件的作用是,我们可以根据程序产生错误地址在map文件中找到相应的函数、变量地址。

(7)symbol文件:目标文件的值、类型、名字,例如: 00000024 T cleanup_before_linux

00000024是以16进制显示的其值,T为类型表示此函数位于代码区,而cleanup_before_linux是其名字。可以看出,上面显示的cleanup_before_linux这个symbol的值实际上是该函数在text section中的偏移。但是,每个符号的值的具体含义依其类型而异(类型见原文)。当然,对于每个符号的值,其类型、其值以及它们所属的section是密切相关的。

(8)Code:代表执行的代码,程序中所有的函数都位于此处。

RO-data: 代表只读数据,程序中所定义的全局常量数据和字符串都位于此处。

RW-data:代表已初始化的读写数据,程序中定义并且初始化的全局变量和静态变量位于此处。

ZI-data:代表未初始化的读写数据,程序中定义了但没有初始化的全局变量和静态变量位于此处。

一、下载到FLASH中的数据大小是:(Code + RO Data + RW Data)这个数据关系到占用了多少单片机的FLASH,关系到是否可以再添加程序。比如你的单片机FLASH是8K,编译程序后,发现程序已经7K了,但是工程还需要写很多程序,那就可以考虑换个FLASH大点的单片机了。

二、程序运行是要在RAM中运行的大小是:(RW Data + ZI Data) 单片机的两个重要参数,一个是上面的FLASH大小,一个是RAM大小。看了第一条,就知道这条的重要性。

刚入门的,看程序的大小,会看HEX文件在WINDOWS中的占用大小来确定占用FLASH的大小,是不对的。

这个HEX文件在电脑上的大小是4.46KB,但是它只会占用单片机FLSAH的1.57KB,如下图所示:

(提示:在你生成的工程中的Listings文件夹里面,有一个.map后缀的文件,拉到最后面,就有算好的大小)

  • 嵌入式
    +关注

    关注

    3861

    文章

    15059

    浏览量

    259041
  • 二进制
    +关注

    关注

    2

    文章

    440

    浏览量

    38827
  • bin
    bin
    +关注

    关注

    1

    文章

    28

    浏览量

    12181
收藏 人收藏

    评论

    相关推荐

    直流无刷电机(BLDC)基础知识---TMC4671-LA

    提到直流无刷电机,那不得不提的就是有刷电机了。有刷电机有一个比较令人讨厌的缺点:那就是“吵”。 因为电刷和换向环需要时刻...
    发表于 09-23 18:10 5260次 阅读

    超详细的嵌入式学习路线图!

    学习完RTOS后,基本嵌入式所涉及的技术已经掌握一半了,你也可以独立完成一些小的项目,也可以找到一个....
    的头像 嵌入式微处理器 发表于 09-23 15:43 158次 阅读

    Q格式的表示方式以及相应的运算

    Q格式是二进制的定点数格式,相对于浮点数,Q格式指定了相应的小数位数和整数位数,在没有浮点运算的平台....
    的头像 我快闭嘴 发表于 09-23 15:20 199次 阅读

    讯维会议音视频系统解决方案符合智能会议室的建设要求

    扩声系统采用电动音箱,电动调节,可预设多个定位角度;可通过Cat6网线传输,支持中控控制,会场控制有....
    发表于 09-23 14:25 111次 阅读

    Qt应用程序出现卡顿的现象怎么解决呢

    在使用Qt完成项目开发后,需要将其运行在嵌入式linux平台上,在设备启动后,经uboot引导和li....
    的头像 工程师邓生 发表于 09-23 10:38 91次 阅读

    工业4.0最佳选择-特控嵌入式工控机MEC-T6422

    工业4.0是以智能制造为主导的第四次工业革命或革命性的生产方法,是集成大量计算机、通信和控制技术为一....
    发表于 09-23 10:23 17次 阅读
    工业4.0最佳选择-特控嵌入式工控机MEC-T6422

    恩智浦原型嵌入式设计:电池管理系统应用

    使用恩智浦基于模型的设计工具箱进行快速原型嵌入式设计:电池管理系统应用
    发表于 09-22 15:50 65次 阅读

    迅为RK3568开发板视频教程上新,ARM入门更简单

    驱动视频全新升级,并持续更新~更全,思路更科学,入门更简单。 迅为基于iTOP-RK3568开发板进行讲解, 【Android11系统移...
    发表于 09-21 17:00 387次 阅读

    CPU和GPU频率的查看及设置

    在嵌入式设备中为了降低功耗防止芯片发热,厂商一般默认都将CPU和GPU频率为最小,为了提高性能,减少....
    发表于 09-21 14:42 245次 阅读

    嵌入式热门DIY项目:智能机器人开源资料合集(原理图、代码、论文)

    智能机器人设计是不少电子发烧友首选的热门DIY项目,现整理了一批机器人开源项目,基本都包含了原理图、代码、论文资料等,速...
    发表于 09-20 15:02 10390次 阅读
    嵌入式热门DIY项目:智能机器人开源资料合集(原理图、代码、论文)

    工控机的国产化和自主可控成为发展需要

    工控机是面向其他行业的可靠、嵌入式、智能化的工控机。 目前,工控机已广泛应用于煤炭、电力、冶金、石化....
    的头像 kimkylin 发表于 09-20 14:42 82次 阅读

    学习C语言的绊脚石

    C语言在嵌入式学习中是必备的知识,审核大部分操作都要围绕C语言进行,而其中有三块“难啃的硬骨头”几乎....
    发表于 09-20 09:36 194次 阅读

    工信部推进eSIM技术在智能设备上的应用

      据悉,eSIM卡的使用近期引发更大讨论,工信部对相关提问进行了相关回答。
    的头像 科技快讯 发表于 09-19 14:50 114次 阅读

    保护IoT中的传统嵌入式系统

      至关重要的是,我们的智能互联基础设施要尽可能安全,同时要意识到安全性从来都不是绝对的。关注和理解....
    的头像 星星科技指导员 发表于 09-17 17:36 84次 阅读

    嵌入式Web服务器可以解决物联网问题吗

      开发支持物联网的产品并不一定意味着您需要完整的物联网基础设施。具有网络库功能的嵌入式 Web 服....
    的头像 星星科技指导员 发表于 09-17 17:02 121次 阅读

    物联网中的实时操作系统通过控制来应对复杂性

      将 RTOS 放入物联网边缘节点将使该节点能够更准确地控制自身;对网络命令做出反应,定期唤醒以检....
    发表于 09-17 16:46 6次 阅读

    Linux驱动开发-内核共享工作队列

    在工作队列里,我们把推后执行的任务叫做工作(work),描述它的数据结构为work_struct,这....
    的头像 DS小龙哥-嵌入式技术 发表于 09-17 15:03 340次 阅读

    嵌入式人工智能学习路线

    嵌入式人工智能,一个不算陌生的新技术名词。它曾经被云端和现实技术所束缚,只能在很小范围进行实验、运用,但是随着5G时代的渐...
    发表于 09-16 17:07 2898次 阅读

    全国产化全志A40i核心板,照亮电力设备国产化之路

    CPU国产化仅仅是第一步,对于飞凌嵌入式而言什么才是“真正的国产化”呢?不光是CPU要使用国产工业级....
    的头像 流川枫枫 发表于 09-16 14:31 68次 阅读
    全国产化全志A40i核心板,照亮电力设备国产化之路

    怎么查看嵌入式Linux开发中各个线程的运行情况

    在嵌入式Linux开发中,有时候为了定位问题,需要查看某个进程的各个线程的运行情况。
    发表于 09-16 14:05 112次 阅读

    杨昊楠:深挖技术底层,探索嵌入式的奥秘

    嘉宾介绍 杨昊楠(论坛号:mnbn) 主要从事Flash芯片的程序开发,主要采用芯圣等芯片,具有独立....
    的头像 电子发烧友论坛 发表于 09-16 12:07 95次 阅读

    esp32物联网的应用实例 LoRa网关制作、触屏DIY电视、Sygic导航HUD

      在很多物联网系统解决方案中,ESP32作为一种低成本、易开发的制造模块,特别适合对短期项目开发的....
    发表于 09-16 11:58 217次 阅读

    如何使用Tracealyzer的流模式来跟踪ThreadX应用

    Tracealyzer是Percepio 公司开发的一款用于RTOS的嵌入式软件系统的可视化跟踪工具....
    的头像 我快闭嘴 发表于 09-16 11:14 132次 阅读

    嵌入式Qt-FFmpeg设计一个RTSP播放器

    本篇介绍了通过Qt程序,设计一个RTSP视频播放器,运行在嵌入式Linux平台上,来播放网络视频,并....
    的头像 码农爱学习 发表于 09-16 08:47 417次 阅读
    嵌入式Qt-FFmpeg设计一个RTSP播放器

    i.MX8MQ自制底板无PCIe问题详解

    在飞凌嵌入式OKMX8MQ-C开发板上有两个PCIe接口,对应着两个PCIe差分时钟,两路PCIe分别用作了M.2接口卡槽KEY...
    发表于 09-15 17:04 2313次 阅读

    电机驱动电路之H桥基本知识---Trinamic电机驱动芯片

      H桥是一种电子电路,可使其连接的负载或输出端两端电压反相/电流反向。这类电路可用于机器人及其它实作场合中直流电动机的顺...
    发表于 09-15 16:39 2864次 阅读

    跳转表、指针数组和函数指针的概念

    笔者能力有限,如果文中有不对的地方,还请各位朋友能及时地给我指出来,我将不胜感激,谢谢!
    发表于 09-15 14:14 185次 阅读

    Uboot命令应用

    U-Boot 是一个主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机系统结构,包括PPC、....
    的头像 嵌入式技术 发表于 09-15 12:34 511次 阅读
    Uboot命令应用

    使用C语言实现面向对象开发

    想必很多人在第一次面对 OOPC(Object-Oriented-Programming-with-....
    发表于 09-15 10:37 162次 阅读

    二进制存储库具备哪些功能呢

    跨软件供应链管理二进制文件和构建工件。
    的头像 工程师邓生 发表于 09-15 09:47 56次 阅读

    使用二进制信号量取代任务通知

    二进制信号量只有0和1,两个任务公用一个信号量,一个任务用于产生信号量(即对信号量+1),另一个任务....
    的头像 工程师邓生 发表于 09-15 09:22 44次 阅读

    采用TI嵌入式语音识别 (TIesr) 库的TIDEP0066参考设计

    描述                      TIDEP0066 参考设计...
    发表于 09-15 07:46 747次 阅读

    嵌入式Qt-交叉编译FFmpeg与视频播放测试

    本篇介绍了嵌入式Qt播放视频的准备工作:交叉编译FFmpeg库并移植到Linux板子中,并先通过ff....
    的头像 码农爱学习 发表于 09-15 02:08 620次 阅读
    嵌入式Qt-交叉编译FFmpeg与视频播放测试

    米尔电子荣获2022年度ST合作伙伴荣誉

    近日,ST Microelectronics意法半导体为深圳市米尔电子有限公司颁发了2020年度合作....
    的头像 米尔MYIR 发表于 09-14 16:10 117次 阅读
    米尔电子荣获2022年度ST合作伙伴荣誉

    国产开发板各项性能测试--米尔MYD-YT507H开发板

    此次的板卡测试,是米尔MYD-YT507H开发板的各项性能测试。
    的头像 米尔MYIR 发表于 09-14 15:26 200次 阅读
    国产开发板各项性能测试--米尔MYD-YT507H开发板

    嵌入式以太网功能实现架构、电路设计与应用

    随着物联网行业的不断发展,外围电路模块化已成趋势。以太网PHY应用广泛,需求量大,如何简化硬件设计,....
    的头像 ZLG致远电子 发表于 09-14 11:47 175次 阅读

    嵌入式Qt-简易网络监控摄像头

    本篇介绍了如何用Qt实现一个网络摄像头功能,通过服务端将USB摄像头转换为一个IP摄像头,Linux....
    的头像 码农爱学习 发表于 09-14 08:52 114次 阅读
    嵌入式Qt-简易网络监控摄像头

    secure boot相关的基本概念和框架

    secure boot是指确保在一个平台上运行的程序的完整性的过程或机制。secure boot会在....
    的头像 我快闭嘴 发表于 09-13 14:20 144次 阅读

    介绍几种嵌入式软件开发常用软件提高我们的工作效率

    单片机软件开发常常使用 IDE(嵌入式集成开发环境),因为 IDE 软件集成了编辑、编译、下载、调试....
    发表于 09-13 11:19 128次 阅读

    智慧物联网系统发展

    数字经济成为重要的新经济形态。随着经济社会数字化转型、智能化升级步伐加快,物联网已是数字经济中新型基....
    发表于 09-13 10:39 101次 阅读

    嵌入式Qt-控制硬件:滑动条控制RGB灯

    本篇介绍了通过Qt中滑条的使用,并使用滑条来控制i.MX6ULL板子中RGB三个颜色LED的亮灭。通....
    的头像 码农爱学习 发表于 09-12 14:29 852次 阅读
    嵌入式Qt-控制硬件:滑动条控制RGB灯

    为物联网系统建立更好的基准

      与处理器无关的网关基准测试将针对基于 Linux 的操作系统 (OS),以促进适用于最广泛系统的....
    的头像 星星科技指导员 发表于 09-10 17:41 121次 阅读
    为物联网系统建立更好的基准

    基于STM32+JAVA宠物管理系统的设计与实现

    本系统主要是由RFID自动识别技术,通过无线射频方式对宠物的电子标签进行读取,获取宠物的基本信息和在....
    的头像 DS小龙哥-嵌入式技术 发表于 09-09 11:40 1134次 阅读
    基于STM32+JAVA宠物管理系统的设计与实现

    基于JAVA超市自助购物系统的设计与实现

    基于RFID的自动识别技术,通过无线射频方式实时获得磁卡对超市物品的电子标签进行读取,然后将数据通过....
    的头像 DS小龙哥-嵌入式技术 发表于 09-09 11:39 770次 阅读
    基于JAVA超市自助购物系统的设计与实现

    Qt创建动态库给C#调用,通过回调完成交互

    在windows下做应用开发时,经常需要多种不同的语言混合编程。比如:利用Qt开发一个动态库,给C#....
    的头像 DS小龙哥-嵌入式技术 发表于 09-09 11:37 698次 阅读
    Qt创建动态库给C#调用,通过回调完成交互

    Qt软件开发_解决中文路径无法识别问题

    在QT for Windows 下编程时,经常因为一些中文路径、带空格的路径导致一些问题出现。 目录....
    的头像 DS小龙哥-嵌入式技术 发表于 09-09 11:36 662次 阅读
    Qt软件开发_解决中文路径无法识别问题

    C语言-枚举、共用体

    前面章节学习了结构体,结构体里可以按顺序存放相同或者不同的数据类型,每个成员都有它对应的存储空间。 ....
    的头像 DS小龙哥-嵌入式技术 发表于 09-09 11:31 180次 阅读

    C语言-链表(单向链表、双向链表)

    在前面章节已经学习了数组的使用,数组的空间是连续空间,数组的大小恒定的,在很多动态数据存储的应用场景....
    的头像 DS小龙哥-嵌入式技术 发表于 09-09 11:30 293次 阅读

    14种嵌入式操作系统的特点介绍

    综上可知,μClinux最大特点在于针对无MMU处理器设计,这对于没有MMU功能的stm32f103....
    的头像 倩倩 发表于 09-09 10:59 214次 阅读

    嵌入式Qt-实现两个窗口的切换

    本篇介绍了介绍了QStackedWidget的使用,通过这个类,实现了Qt时钟和Qt秒表这两个页面可....
    的头像 码农爱学习 发表于 09-09 09:03 956次 阅读
    嵌入式Qt-实现两个窗口的切换

    关于C语言结构体内存对齐

    今天给大家带来一道经典、易错的关于C语言结构体内存对齐的题目。
    发表于 09-08 11:54 84次 阅读

    嵌入式Qt-做一个秒表

    本篇通过一个秒表的实例,介绍了如何使用Qt Creator的UI界面设计功能,进行Qt的开发,并将代....
    的头像 码农爱学习 发表于 09-08 08:52 779次 阅读
    嵌入式Qt-做一个秒表

    CH32307是不是不能使用管理员Vlibwchnet.a 开启FPU?

    CH32307不能使用管理员Vlibwchnet.a 开启FPU? riscv-none-embed-gcc -march=rv32imafc -mabi=ilp32f -msmall-data-limit...
    发表于 09-08 06:29 125次 阅读

    技术分享|如何做嵌入式系统的自动化测试

    嵌入式测试的系统级测试主要从系统的输入输出来进行测试,通过测试工具为各个输入接口创造各种输入,经被测系统处理后,检查各个...
    发表于 09-07 16:31 3707次 阅读

    香蕉派BPI-R3 开源路由器开发板公开发售价格为680人民币,联发科MT7986(Filogic 830)方案

    香蕉派BPI-R3 开源路由器开发板公开发售价格为680人民币 香蕉派BPI-R3开源路由器开发板采用联发科MT7986 (Filogic...
    发表于 09-07 15:41 423次 阅读

    单片机和嵌入式Linux的区别

    单片机和嵌入式他们最终都是要跑硬件的,所以你也会遇到像GPIO口、I2C、串口、SPI、定时器、看门....
    发表于 09-07 14:42 174次 阅读

    FreeRTOS入门基础知识简析

    AUTOSAR OS可根据各个任务的可抢占属性配置,来提供不同的调度策略,调度策略可分为以下三种。
    的头像 工程师邓生 发表于 09-06 18:19 261次 阅读

    算法科普:非对称算法

    非对称算法,你了解多少呢?
    的头像 嵌入式物联网开发 发表于 09-05 21:07 295次 阅读
    算法科普:非对称算法

    让STM32应用与存储位置无关

    最近有客户询问,能否使用 STM32CubeIDE 在编译时通过设置某个编译选项,让STM32 应用....
    发表于 09-05 11:43 164次 阅读

    部分iPhone14机型或移除SIM卡槽

      目前,物理SIM卡插槽正在被嵌入式SIM卡取代,从用户的角度来看,这是最合适的。据消息人士称,苹....
    的头像 科技快讯 发表于 09-05 10:01 303次 阅读