MCU常用文件格式

1. asm文件

        asm是汇编语言源程序的扩展名,.asm文件是以asm作为扩展名的文件,是汇编语言的源程序文件。汇编语言(Assembly Language)是面向机器的程序设计语言,是利用计算机所有硬件特性并能直接控制硬件的语言。在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。

2. bin文件

        bin文件是二进制文件,是文件格式binary的缩写,后缀名为".bin"的文件,表式它是binary格式。通常来说,它的内容是机器代码,汇编语言编译后的结果。

注意:CPU执行 bin只需要将程序加载到其起始地址,即可执行。uboot和Linux kernel启动时没有ELF Loader,所以烧在flash上的文件只能是raw bin,即镜像文件image

BIN文件是 raw binary 文件,这种文件只包含机器码。
BIN文件(也叫镜像文件)中的所有数据都是机器可以执行的指令码、指令参数或者常量数据,不包含其它调试信息。加载到内存或者Nor FLASH等支持XIP(就地执行)的存储器中规定好的加载地址之后直接从规定好的运行地址开始运行即可。例如单片机中烧写的都是bin文件,以STM32为例,其片内Nor FLASH的起始地址也是代码的加载(烧写)地址为0x08000000。上电复位或者手动复位之后,程序计数器PC指向单片机的复位异常的中断向量地址0x08000004的位置,单片机从复位开始运行。

3. hex文件

        hex全称baiIntel HEX,是可以烧写到单片机中,被单片机执行的一种文件格式。通常用于传输将被存于ROM或者EPROM中的程序和数据。是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。大多数EPROM编程器或模拟器使用Intel HEX文件,其记录由对应机器语言码和/或常量数据的十六进制编码数字组成

4. elf文件

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

注意: CPU执行elf程序则需要一个ELF Loader, gcc编译出来的是elf文件,objcpy将elf文件转换为bin文件

        ELF文件除了机器码外,还包含其它额外的信息,如段的加载地址,运行地址,重定位表,符号表等。
        ELF文件相当于是对bin文件的一个包装和解释,不仅仅包含程序的机器码,还包含加载地址、运行地址和调试信息等,使得运行操作系统(带MMU的CPU运行的具有虚拟地址/内存映像功能的OS,如Linux、Windows)的机器中的ELF Loader模块能够根据elf头信息创建一个新进程并加载elf文件中的机器码到该进程的虚拟内存中去。例如在Linux系统上运行ls命令,Linux系统会在环境变量中定义了的文件夹中找到可执行文件“ls”,然后系统创建一个新的进程以及映射虚拟内存空间,然后ELF Loader会将可执行文件“ls”加载到虚拟内存空间中去并开始执行开进程。(注意,虚拟地址空间也物理地址空间的寻址空间是一样的,32位CPU的有4G的寻址空间,64位的有好多G的寻址空间,但是并不是所有虚拟地址空间中的地址都能访问,MMU只会映射一部分虚拟地址空间到物理地址空间,如果访问没有映射的虚拟地址空间,就会出现内存访问错误Segmentation Fault)

所以ELF文件的体积比对应的BIN文件要大。
因为elf文件中包含了bin文件内容外的其它信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/166600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【广州华锐互动】利用VR体验环保低碳生活能带来哪些教育意义?

随着科技的不断发展,虚拟现实(VR)技术已经逐渐走进了我们的生活。从游戏娱乐到教育培训,VR技术的应用范围越来越广泛。而在这个追求绿色、环保的时代,VR技术也为我们带来了一种全新的环保低碳生活方式。让我们一起走进…

nginx配置相关应用服务

1、无ssl证书的conf文件 server {listen 80;server_name test.domain.com;root html;index index.html index.htm;location / {proxy_http_version 1.1;proxy_set_header Connection "";proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_…

Java String.contains()方法

描述: java.lang.String.contains()方法返回true,当且仅当此字符串包含指定的char值序列。 声明: 以下是声明java.lang.String.contains()方法 public boolean contains(CharSequence s) 返回值: 如果此字符串包含&#xff…

2022年MathorCup高校数学建模挑战赛—大数据竞赛A题58到家家政服务订单分配问题求解全过程文档及程序

2022年MathorCup高校数学建模挑战赛—大数据竞赛 A题 58到家家政服务订单分配问题 原题再现: “58 到家”是“58 同城”旗下高品质、高效率的上门家政服务平台,平台向用户提供家政保洁、保姆、月嫂、搬家、维修等众多生活领域的服务。在家政保洁场景中…

欲更新浏览器的Mac用户请注意,AMOS又出一招新“骗术”

近日,Malwarebytes发现有一种专门针对Mac操作系统(OS)的数据窃取程序正通过伪造的网页浏览器更新程序进行分发。Malwarebytes称这与其通常的技术、战术和程序大不相同,该恶意软件可以模仿 Safari 和谷歌 Chrome 浏览器。 网络安全…

【C++心愿便利店】No.13---C++之探索vector底层原理

文章目录 前言一、STL简介1.1 什么是STL1.2 STL的六大组件 二、vector的介绍及使用2.1 vector的介绍2.2 vector的使用2.2.1 vector的定义2.2.2 vector iterator 的使用2.2.3 vector 空间增长问题2.2.4 vector 增删查改 三、vector模拟实现3.1 成员变量3.2 成员函数3.2.1 构造函…

2、分布式锁实现原理与最佳实践(二)

常见分布式锁的原理 4.1 Redisson Redis 2.6之后才可以执行lua脚本,比起管道而言,这是原子性的,模拟一个商品减库存的原子操作: //lua脚本命令执行方式:redis-cli --eval /tmp/test.lua , 10 jedis.set("produ…

python opencv 放射变换和图像缩放-实现图像平移旋转缩放

python opencv 放射变换和图像缩放-实现图像平移旋转缩放 我们实现这次实验主要用到cv2.resize和cv2.warpAffine cv2.warpAffine主要是传入一个图像矩阵,一个M矩阵,输出一个dst结果矩阵,计算公式如下: cv2.resize则主要使用fx&…

精益生产中的周转箱优势:提升效率与质量的得力利器

在当今竞争激烈的制造业中,企业追求高效生产和卓越质量是至关重要的。精益生产理念提供了一套有效的工具和方法,其中周转箱作为一个关键的组成部分,在优化生产流程、提高效率和质量方面发挥着重要作用。下面谈谈精益生产中的周转箱优势&#…

C++:内存管理

内存分布: 首先我们需要了解的是C/C中内存区域的划分: 1. 栈又叫堆栈--非静态局部变量/函数参数/返回值等等,栈是向下增长的:先调用的地址比后调用的地址大。 2. 内存映射段是高效的I/O映射方式,用于装载一个共享的动…

百度文心一言(千帆大模型)聊天API使用指导

开篇不得不吐槽下百度,百度智能云平台首页跳转千帆大模型平台的按钮太多了,不同按钮跳转不同的子页面,不熟悉的,能把人找懵。入口太多,就导致用户不知道从何开始。本文就从一个前端开发人员的角度,教大家快…

【深度学习】基于深度学习的超分辨率图像技术一览

超分辨率(Super-Resolution)即通过硬件或软件的方法提高原有图像的分辨率,图像超分辨率是计算机视觉和图像处理领域一个非常重要的研究问题,在医疗图像分析、生物特征识别、视频监控与安全等实际场景中有着广泛的应用。 SR取得了显著进步。一般可以将现有…

为什么,word文件在只读模式下,仍然能编辑?

Word文档设置了只读模式,是可以编辑的,但是当我们进行保存的时候就会发现,word提示需要重命名并选择新路径才能够保存。 这种操作,即使可以编辑文字,但是原文件是不会受到影响的,编辑之后的word文件会保存到…

torch常用和预期输入输出

import torch import torch.nn as nn import torch.nn.functional as F nn中定义的是类,functional里面定义的是函数操作。 输出shape的计算公式: o u t _ s h a p e r o u n d _ m o d e ( i n _ s h a p e 2 ∗ p a d d i n g − k e r n e l _ s…

20231124给RK3399的挖掘机开发板在Andorid10下加鼠标右键返回

20231124给RK3399的挖掘机开发板在Andorid10下加鼠标右键返回 2023/11/24 12:19 百度:RK3399 Android10 右键返回 https://blog.csdn.net/danhu/article/details/122467256 android9/android10 鼠标右键返回(已验证) danhu 于 2022-01-13 09:46:42 发布 android10 …

Echarts 大屏注册自定义地图解析文件流报错问题解决

效果图: 1、首先通过后台接口获取到SVG图片的文件流,postman能够正确解析出文件流,前端调用api时需要设置返回的响应格式为image/svg+xml格式,否则解析失败 拿到文件流后是这样的 <?xml version="1.0" encoding="utf-8"?> <!-- Generator: …

【深度学习】P1 深度学习基础框架 - 张量 Tensor

深度学习基础框架 张量 Tensor 张量数据操作导入创建张量获取张量信息改变张量张量运算 张量与内存 张量 Pytorch 是一个深度学习框架&#xff0c;用于开发和训练神经网络模型。 而其核心数据结构&#xff0c;则是张量 Tensor&#xff0c;类似于 Numpy 数组&#xff0c;但是可…

AI制作的《大多数普通女孩的一生》——公开教程和工作流

内容来源&#xff1a;JiamigouCn ​这周由AI制作的《大多数普通女孩的一生》&#xff0c;在抖音爆火&#xff0c;获得新华网转发。到目前为止&#xff0c;全网还没有公开教程和工作流&#xff0c;需要花费800-2000购买。 本着AI社区共享原则&#xff0c;我委托公众号“楚思智能…

小学生古诗文大会复赛在线模拟新增刷题版和闯关版,帮助孩子冲刺

小学生古诗文大会明天就要开始了&#xff0c;刚刚古诗文大会主办方也正式发布了通知&#xff0c;总体安排、操作指引和我之前发布的一样&#xff1a;2023年11月25日小学生古诗文大会复选&#xff08;复赛&#xff09;答题操作手册 为了帮助参加复选&#xff08;复赛&#xff09…

NFC技术简介

NFC简介 NFC(近场通信&#xff0c;Near Field Communication&#xff09;是一种短距高频的无线电技术&#xff0c;由非接触式射频识别(RFID)演变而来。 NFC工作频率为13.56Hz&#xff0c;通常只有在距离不超过4厘米时才能启动连接&#xff0c;其传输速度有106 Kbit/秒、212 Kb…