【车载开发系列】单片机烧写的文件
【车载开发系列】单片机烧写的文件
【车载开发系列】单片机烧写的文件
- 【车载开发系列】单片机烧写的文件
- 一. 什么是bin
- 二. 什么是Hex
- 三. 什么是Motorola S-record(S19)
- 四. ELF格式
- 五. Bin与Hex文件的比对
- 六. 单片机烧写文件的本质
一. 什么是bin
bin是binary的缩写,翻译为“二进制”。binary file二进制文件是一个非text file文本文件的计算机文件。
binary file是一种计算机文件格式,它以二进制编码表示文件的内容。这些文件通常包含计算机程序或数据,例如软件/固件、操作系统、文档、音频和视频等。
它是我们最常见的二进制文件,它是纯数据文件,也即是“所见即所得”,所以如果我们想看看需要下载到单片机flash的数据的大小,最简单的方法就是查看我们编译连接后生成的bin文件大小。
二. 什么是Hex
hex文件是Intel很早就推出的一种文件格式,它除了有效数据信息之外还包含了一些多余信息(包括地址信息,校验码之类的等等信息),所以hex文件是很大的,而最终下到单片机的flash里的仍是其中的有效数据段,而其他的信息段则是作为flash编程软件的辅助信息的(包括地址信息)。
Intel Hex格式最初于1973年为Intel的Intellec Microcomputer Development Systems (MDS)设计,以便从纸带上加载和执行程序。它还被用于向Intel指定memory内容,以便生产ROM。1973年,Intel的“软件小组”仅由Bill Byerly和Ken Burget以及作为外部顾问的Gary Kildall组成。从1975年开始,该格式被MCS系列II ISIS-II系统所利用,使用文件扩展名HEX。
后来许多PROM和EPROM编程设备接受了这种格式。
如果烧写或者下载Bin文件时,软件会弹出首地址框输入相应地址信息,而在烧写Hex文件的时候则不必再输入地址信息了,因为Hex里面已经包含了。
Intel Hex文件格式是一种以ASCII文本形式传达二进制的十六进制值信息的文件格式。它通常用于对Microcontroller微控制器、EPROM和其它类型的可编程逻辑器件和硬件仿真器进行编程。在一个典型的应用程序中,compiler编译器或assembler汇编器将程序的源代码(例如C或汇编语言)转换为machine code 机器码,并将其输出到HEX文件中。有些人还将其用作容纳流数据包的容器格式。由此产生的文件常用的扩展名是.HEX或.H86。然后,programmer编程器读取HEX文件,以将机器码写入PROM中,或传输到目标系统进行加载和执行。
Hex文件内部是以文本格式来存储内容的,每行以冒号(:)起始,后面每两个字母是一个8bit的16进制数;
三. 什么是Motorola S-record(S19)
Motorola S-record是一种文件格式,由摩托罗拉在20世纪70年代中期为Motorola 6800处理器创建,以ASCII文本形式传达二进制信息的十六进制值
四. ELF格式
可执行与可链接格式 (Executable and Linkable Format,ELF),常被称为ELF格式,是一种用于可执行文件、目标代码、共享库和核心转储(core dump)的标准文件格式,一般用于类Unix系统,比如Linux,Macox等。ELF格式灵活性高、可扩展,并且跨平台。比如它支持不同的字节序和地址范围,所以它不会不兼容某一特别的CPU或指令架构。这也使得ELF格式能够被运行于众多不同平台的各种操作系统所广泛采纳。
ELF文件一般由三种类型的文件:
- 可重定向文件
文件保存着代码和适当的数据,用来和其他的目标文件一起来创建一个可执行文件或者是一个共享目标文件。比如编译的中间产物.o文件; - 可执行文件
一个可执行文件; - 共享目标文件
共享库。文件保存着代码和合适的数据,用来被下连接编辑器和动态链接器链接。比如linux下的.so文件。
五. Bin与Hex文件的比对
- | Bin文件 | Hex文件 |
---|---|---|
格式不同 | 二进制数据 | 十六进制值信息 |
使用不同 | 只包含数据本身 | 还包括地址信息 |
文件大小 | 小 | 大,是Bin文件两倍以上 |
指定烧录的起始地址 | 需要 | 不需要 |
直接传输bin文件可以简化bootloader软件的设计,减少一些处理过程,缩小boot程序的体积,但是要注意需要事先规定写入的地址;而通过上位机软件和下载器烧写时,使用hex文件,可以简化操作、增加可靠性。
一般软件IDE都可以生成hex文件,有的也能生成bin文件,可以将hex转bin。
六. 单片机烧写文件的本质
- 把单片机当做一个存储器,每一条程序指令都对应一个唯一的存储地址,把这些指令以字节为单位一条条存储到指定的存储地址中,这就是烧录程序的本质。
- 下载过程时,上位机软件根据.hex文件记录的指令内容和对应的地址信息,经过USB转串口线,跟单片机的预置系统程序进行串口通讯,从而把.hex记录的信息传输到单片机内部的flash存储器中,实现了程序的烧录下载。
- 单片机程序下载的本质就是将由0和1组成的hex文件写入到掉电数据不会消失的EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦除可编程只读存储器)中。
相关文章:
![](https://i-blog.csdnimg.cn/direct/9c58cb32aedf43888035965b58cc2854.png)
【车载开发系列】单片机烧写的文件
【车载开发系列】单片机烧写的文件 【车载开发系列】单片机烧写的文件 【车载开发系列】单片机烧写的文件一. 什么是bin二. 什么是Hex三. 什么是Motorola S-record(S19)四. ELF格式五. Bin与Hex文件的比对六. 单片机烧写文件的本质 一. 什么是bin bin是…...
![](https://www.ngui.cc/images/no-images.jpg)
pyqt 用lamada关联信号 传递参数 循环
在PyQt中,使用lambda函数来关联信号并传递参数是一个常见的做法,尤其是在需要为不同的对象实例关联不同的槽函数参数时。但是,需要注意的是,直接使用lambda可能会导致一些不易察觉的错误,尤其是当它在循环中使用时。这…...
![](https://www.ngui.cc/images/no-images.jpg)
adb命令
adbclient adbserver adbd 三者之间的关系 adbclient, adbserver, 和 adbd 是 Android Debug Bridge (ADB) 组件中的三个主要组成部分。它们各自扮演着不同的角色,共同协作来实现设备调试和管理的功能。下面我将详细介绍这三个组件之间的关系: adbd (A…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring Boot项目热部署
Spring Boot项目热部署是什么 Spring Boot项目热部署是一种开发时的优化技术,可以使开发人员在修改代码后不需要重新启动应用程序即可实时看到修改的效果。在传统的开发模式中,每次修改代码后都需要重新编译、打包和部署应用程序,这样会浪费大…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
Chat App 项目之解析(八)
Chat App 项目介绍与解析(一)-CSDN博客文章浏览阅读340次,点赞7次,收藏3次。Chat App 是一个实时聊天应用程序,旨在为用户提供一个简单、直观的聊天平台。该应用程序不仅支持普通用户的注册和登录,还提供了…...
![](https://img-blog.csdnimg.cn/img_convert/41027dd726908473019032f325fc5c1f.png)
CAAC无人机飞行执照:学习内容与考试流程详解
CAAC无人机飞行执照的学习内容与考试流程是无人机爱好者及从业者必须了解的重要信息。以下是对这两方面的详细解析: 学习内容 CAAC无人机飞行执照的学习内容涵盖了多个方面,以确保学员能够全面掌握无人机飞行和应用的技能。主要学习内容包括:…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
苹果手机怎么连接蓝牙耳机?3个方案,3秒连接
在快节奏的现代生活中,无线蓝牙耳机因其便捷性和自由度成为了许多人的首选。那么,苹果手机怎么连接蓝牙耳机呢?本文将为您介绍3种快速连接苹果设备与蓝牙耳机的方案,让您在享受音乐、通话或观看视频时,不再受线缆束缚&…...
![](https://i-blog.csdnimg.cn/direct/3a6521fbe0704dca80a4e9408174b278.png)
CAD图纸加密软件有哪些?10款超级好用的CAD图纸加密软件推荐
在数字化设计日益普及的今天,CAD图纸作为企业的核心资产,其安全性变得尤为重要。为了防止图纸被非法获取、篡改或泄露,使用专业的CAD图纸加密软件成为了许多企业和设计师的首选。本文将为您推荐10款在2024年表现突出的CAD图纸加密软件&#x…...
![](https://i-blog.csdnimg.cn/direct/44876f26e83944c0bf93e578c79b4da5.gif#pic_center)
【html+css 绚丽Loading】000011 三元轮回珠
前言:哈喽,大家好,今天给大家分享htmlcss 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕…...
![](https://i-blog.csdnimg.cn/direct/25e6bdeda606464b9bea86c4805fc1e1.jpeg)
算法学习018 求最短路径 c++算法学习 中小学算法思维学习 比赛算法题解 信奥算法解析
目录 C求最短路径 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、运行结果 五、考点分析 六、推荐资料 C求最短路径 一、题目要求 1、编程实现 给定n个顶点,每个顶点到其它顶点之间有若干条路,选择每条路需要消耗一定…...
![](https://i-blog.csdnimg.cn/direct/0a5d741a79254f9a9afb29c939c734c9.png)
vue-element-admin——<keep-alive>不符合预期缓存的原因
vue-element-admin——<keep-alive>不符合预期缓存的原因 本文章,以现在中后台开发用的非常多的开源项目vue-element-admin为案例。首先,列出官方文档与缓存<keep-alive>相关的链接(请认真阅读,出现缓存<keep-ali…...
![](https://i-blog.csdnimg.cn/direct/503a6235e74545f2a1642f51cbfeecd3.jpeg)
基于ElementPlus的分页表格组件ReTable
分页表格ReTable 组件实现基于 Vue3 Element Plus Typescript,同时引用 vueUse lodash-es tailwindCss (不影响功能,可忽略) 基于ElTable和ElPagination组件封装的分页表格,支持本地分页以及远程请求两种方式。本地数据分页自带全量数据的…...
![](https://www.ngui.cc/images/no-images.jpg)
力扣题/图论/课程表
课程表 力扣原题 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课…...
![](https://i-blog.csdnimg.cn/direct/7b4ce5e5531c40c692fd8cb5a816f0aa.png)
SQL进阶技巧:基于指定规则的缺失值填充问题
目录 0 场景描述 1 数据准备 2 问题分析 3 小结 0 场景描述 有如下breed表。表中有breed、dt、value字段,value值中存在大量的NULL值,NULL值为缺省值,缺省值需要按照一定规则进行填充。 规则如下: 用表中value值紧邻且非空的两行均值进行填充。 1 数据准备 with bre…...
![](https://img-blog.csdnimg.cn/img_convert/f557d900626a79380ed56d539caef901.jpeg)
【气象百科】光伏自动气象站的功能优势
随着全球对可再生能源需求的日益增长,光伏发电作为清洁、可再生的能源形式,正逐步成为推动能源转型的重要力量。而光伏自动气象站,作为光伏电站智能化管理的重要组成部分,其独特的功能优势在提升光伏系统效率、优化运维策略、增强…...
![](https://i-blog.csdnimg.cn/direct/521a279065954031a102c2cd69b37a06.png)
嵌入式AI快速入门课程-K510篇 (第二篇 Ubuntu的基础操作)
第二篇 Ubuntu的基础操作 文章目录 第二篇 Ubuntu的基础操作1. 安装 VMware 运行 Ubuntu1.1 安装 VMware 1.2 使用VMware打开Ubuntu1.2.1 下载、解压Ubuntu映像文件1.2.1 在BIOS上启动虚拟化(virtualization)1.1.1 使用VMware运行Ubuntu 2.第1章 Ubuntu操作入门1.1 Ubuntu下打开…...
![](https://i-blog.csdnimg.cn/direct/c56a8b2f4925499785384b13f4f04371.png)
android13隐藏调节声音进度条下面的设置按钮
总纲 android13 rom 开发总纲说明 目录 1.前言 2.情况分析 3.代码修改 4.编译运行 5.彩蛋 1.前言 将下面的声音调节底下的三个点的设置按钮,隐藏掉。 效果如下 2.情况分析 查看布局文件 通过布局我们可以知道这个按钮就是 com.android.keyguard.AlphaOptimizedImageB…...
![](https://www.ngui.cc/images/no-images.jpg)
Java ArrayList和LinkedList
ArrayList ArrayList是Java中最常用的数据结构之一,它是一个动态数组的实现,允许你在程序中存储和管理一个可变大小的对象列表,我们可以添加或删除元素。 ArrayList 继承了 AbstractList ,并实现了 List 接口。 基本概念 Arra…...
![](https://i-blog.csdnimg.cn/direct/e4ca91b2e2364a96aced94c374f8729b.png)
STM32F030行列式按键扫描
1)行扫说明,行列式按键扫描时: 行输出:行逐一输出高电平,其他的为低,既循环只输出一个高电平; 列读入:所有列通过下拉电阻100K后,都变为低电平,逐一读入&…...
![](https://img-blog.csdnimg.cn/img_convert/96d7659b6144b5a2b28362560cb9c110.png)
FPGA 综合笔记
仿真时阻塞赋值和非阻塞赋值 Use of Non-Blocking Assignment in Testbench : Verilog Use of Non-Blocking Assignment in Testbench : Verilog - Stack Overflow non-blocking assignment does not work as expected in Verilog non-blocking assignment does not work a…...
![](https://www.ngui.cc/images/no-images.jpg)
Android MVVM框架详解与应用
在Android开发中,随着应用复杂度的增加,如何有效地组织和管理代码成为了一个重要的问题。MVVM(Model-View-ViewModel)架构模式因其清晰的结构和高效的开发效率,逐渐成为Android开发者们青睐的架构模式之一。本文将详细…...
![](https://img-blog.csdnimg.cn/img_convert/d8e36333344240414609f606155ba0a3.png)
浅析KHD-厨帽检测算法从源码到实际应用的方案
厨帽检测算法,作为计算机视觉技术在食品安全领域的一项重要应用,其实际应用过程涉及多个方面。 厨帽检测算法主要基于深度学习技术,特别是卷积神经网络(CNN)和目标检测框架(如YOLO、Faster RCNN等ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
ESXi里的FreeBSD装bhyve Ubuntu子系统,外网不通,子系统里无法ping通外面(使用NAT解决)
ESXi里的FreeBSD装bhyve Ubuntu子系统,子系统里无法ping通外面,除了宿主机,其它ip都ping不通。(另一台FreeBSD物理机同样的bhyve ubuntu子系统,网络就是通的,但是TrinityCore服务lag延时很大) …...
![](https://www.ngui.cc/images/no-images.jpg)
Connectionist Logic Systems and Hybrid Systems by Translation
Connectionist Logic Systems Definition: Connectionist Logic Systems (CLS) are computational models that combine elements of connectionism (neural networks) with symbolic logic. These systems aim to leverage the strengths of both paradigms—connectionism’…...
![](https://img-blog.csdnimg.cn/img_convert/7105da96754ef40f444ba46cab973ca4.jpeg)
盘点数据摆渡的8种常用方式 最推荐哪一种?
跨网数据摆渡是很多企业面临的一种传输场景,因为大部分企业为了保护核心数据,都会做不同级别的网络隔离,所以数据摆渡会涉及不同网络之间的数据传输和整合。这种情况下,数据需要从一个组织或地理位置传输到另一个组织或地理位置&a…...
![](https://i-blog.csdnimg.cn/direct/26705f1cd73043c887bd06b6ea04e07d.png#pic_center)
仿照ContentLoadingProgressBar 的特点在Android项目中自定义Loading对话框
ContentLoadingProgressBar 是 Android 中的一个控件,继承自 ProgressBar。它在 ProgressBar 的基础上添加了一些特殊功能,主要用于在加载内容时显示进度。它的一些主要特点如下: 自动隐藏和显示:ContentLoadingProgressBar 会在…...
![](https://i-blog.csdnimg.cn/direct/8de0026d4a02456da076b406aa6758af.png#pic_center)
基于数据复杂度的数据库选型
数据模型的选择对于 IT 系统的开发至关重要,它不仅决定了数据存储和处理的方式,影响系统的性能、扩展性以及维护性等。本质上来说,不同的数据模型反映了我们对业务问题的不同思考和抽象程度。 今天我们从不同数据模型对于复杂数据和关系的支…...
![](https://i-blog.csdnimg.cn/direct/7443dc7c3862454f909404fd31f0f3b5.png)
QT基础知识5
思维导图 client.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), socket(new QTcpSocket(this))//给客户端实例化分配空间 {ui->setupUi(this);//初始化界面ui->msgEdit-&…...
![](https://i-blog.csdnimg.cn/direct/bc264f044a5c4de8b3ee488f47c793d6.png)
C++中vector存放内置数据类型
#include<iostream> using namespace std; #include<vector> #include<algorithm>//迭代器先理解为指针 void MyPrint(int val) {cout << val << endl; } void test01() {vector<int> v;v.push_back(1);v.push_back(2);vector<int>:…...
![](https://www.ngui.cc/images/no-images.jpg)
shell编程:安装部署前常见环境检查
脚本任务 监测主机是否联通正常 检查安装操作系统版本是否和需求一致 检查CPU是否满足规格要求 检查内存是否满足规格要求 检查数据磁盘是否满足规格要求 检查操作系统分区目录大小是否满足需求 检查集群主机时间是否一致 0.配置文件准备及脚本变量初始化 编写config.i…...
![](/images/no-images.jpg)
网站死链接提交/360优化大师官方下载手机
在掌舵30年的侯为贵宣布即将交棒之时,中兴通讯(000063,SZ)也交出了历史上最优成绩单。 1月19日,中兴通讯发布2015年业绩快报,营业收入1008.25亿元,较上年增长23.76%,归属于上市公司股…...
![](https://img-blog.csdnimg.cn/20200324140403470.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTI3MDA1MTU=,size_16,color_FFFFFF,t_70)
wordpress https到期/网页生成
安装OpenStack客户端并创建一个云主机 查看创建好的openstack项目中的信息和云主机网络连通性 openstack web界面使用方法 openstack-allinone-使用方法 安装OpenStack客户端并创建一个云主机 安装OpenStack client端,方便后期使用命令行操作openstack [roottest…...
公众号转wordpress/2022近期重大新闻事件10条
最近在github上下载了一些不错的开源项目,发现在Eclipse中通过Import导入不好使了,在网络上查了很多资料终于弄明白了。 这里以github上 的 Apollo播放器项目为例,介绍如何导入Android开源项目到Eclipse中。 Apollo播放器项目地址ÿ…...
![](https://img-blog.csdnimg.cn/img_convert/617f390950017ab4bc0371ea1f0e5cdd.png)
o2o网站建设哪家好/googleseo优化
1.准备两个个全新的tomcat8,用来作为sso单点登录的客户端,如下: 2.修改server.xml文件(因为考虑到端口冲突,所以将里面的端口全部改掉) 需要框架源码的朋友可以看我个人简介联系我,推荐源码 其中apache-tomcat-clien…...
![](/images/no-images.jpg)
网站建设项目的预表/搜索引擎优化的方式有哪些
终于找到了。...
![](https://img-blog.csdnimg.cn/img_convert/21f1d8dae21e7bb40e5f6c44deaac926.png)
防制网站怎么做/百度推广和优化有什么区别
实地集团2006年从广州出发,始终致力于将科技与人文连接,重新构建人类对于自身与居住空间关系的认知。目前,实地集团已经发展成为一家为用户提供贯穿全生命周期智慧人居解决方案的综合性企业。实地集团认为,智慧人居绝不是冰冷数据…...