设计与开发

单片机bin 单片机内部基本原理 bin文件如何跑起来 编译器做了什么?

小编 2024-10-23 设计与开发 23 0

单片机内部基本原理 bin文件如何跑起来 编译器做了什么?

无论是单片机还是cpu内部主要有三种部件 ALU 控制器 寄存器。

这个要从编译器开始讲起,编译器会给你编写的软件增加一个头部,无论是MDK还是IAR等等,这个头部是做了什么工作那?头部主要利用单片机寄存器上电后从FLASH将全局变量以及全局未初始化变量搬移倒RAM,增加堆栈 复位 中断向量表 才开始从flash读取你编写的程序,因为编译器已经把程序整个编码为机器码放在flash,有不太了解机器码的可以再去了解,机器码主要是运算加减搬移的那些操作,只不过单片机它就认识了。

单片机内部的控制器读取flash的机器码,通过内部R0-R15做数据中转和RAM交换数据,通过ALU做运算,ALU非常擅长做逻辑的运算,寄存器是存放需要暂存处理的数据,使得它跑了起来。

编译器----编译器的程序----bin文件----机器码----运行

玩了这么多年单片机,hex文件和bin文件的区别你知道吗?

单片机程序写好之后,我们都要把程序下载到单片机的内存中,单片机才会按照程序员的逻辑执行命令实现功能。之前也讲过下载单片机的几种方式,比如ISP下载,JTAG下载,下载文件的格式最常见的是hex文件,这个格式大家都是知道的,还有一种bin文件是单片机的下载文件。下面介绍这两种格式的区别。

HEX文件和BIN文件是我们经常碰到的2种文件格式。下面简单介绍一下这2种文件格式的区别:

1. hex文件包含地址信息。 在用ISP方式烧写程序时,我们都有这样的经验:1)选择单片机型号;2)选择串口号;3)设置波特率(或者默认);4)选择下载的文件;5)点击下载按钮下载。如下图所示。

经过这几步后,程序下载工作就完成了,在以上的步骤中我们并没有选择要把程序下载到单片机的哪块内存中,即不需要设置地址。因为HEX文件内部的信息已经包括了地址。而烧写BIN文件的时候,用户是一定需要指定地址信息的。单片机多下载hex文件。

2. BIN文件格式只包括了数据本身,没有包含地址

bin文件本身只是数据,没有包含地址信息,所以在下载bin文件时需要选择内存的起始地址和终止地址,即要把bin文件下载到指定的内存空间。通常需要指定程序内存地址的芯片为ARM芯片和DSP芯片。

3、HEX文件和BIN文件大小不一样

对于bin文件,通过右键属性查看到的文件的大小就是数据的实际大小。而对HEX文件而言,你看到的文件大小并不是实际的数据的大小。一是因为HEX文件是用ASCII来表示数据,二是因为HEX文件本身还包括别的附加信息。

hex文件的大小该怎么看呢?之前我推送过查看方法,忘记的朋友可以点下面的链接查看:

你写的单片机程序有多大,你知道吗? (点击查看 )

单片机的程序下载方式有哪些?(点击查看)

本订阅号致力于单片机、ARM等嵌入式软硬件的设计经验分享,秉承“人人都是电子设计经验的分享者”的理念,成功路上不孤单,我们一起努力。

公众号:micropoint8。嵌入式学习网振兴网:www.picmcu.com

相关问答

HEX文件和 BIN 文件格式的区别?

bin文件是二进制文件,所有数据就是写入到单片机中的实际数据。HEX文件是十六进制文件,整个文件以行为单位,每行以冒号开头,内容全部为16进制码(以ASCII码...

mcu. bin 什么文件?

是不能直接烧到单片机中的。中间要有转换程序。但是现在很多编程器都设计成直接可以导入hex文件烧录的,其实这是做了设计的。bin文件是二进制文件,是可以直接...

单片机 怎么生成hex格式?

单片机常常使用汇编语言编写程序,完成对硬件的控制和数据处理等功能。将汇编程序转换为单片机可以执行的目标代码并最终生成HEX格式的过程为烧录。HEX格式是一...

单片机 英文怎么翻译 ?

[回答]onlyauthor=...-搜索相关网页-基于70个网页2.SONIX摘要:No.27036专业代理SONIX松瀚单片机松翰科技单片机(SONIX)代理商(华南地区)8...

51 单片机 可执行文件的扩展名为?

51单片机可执行文件的扩展名是.HEX,或.BⅠN,现行51单片机编程平在程序编译之后生成的都是.HEX文件,但在程序烧录过程中,下载工具会将hex文件转换为bin格式写...

单片机 编程如何配置输出文件?

单片机编程配置输出文件需要先确定使用的开发环境和编译器,例如Keil、IAR等;然后在编译器中设置输出文件的格式和路径,一般为HEX或BIN格式;最后将编写好的...

买的 单片机 如何能使用?

使用51单片机需要达到以下基本条件:1、至少要搭建一个最小系统;2、你需要编制一个51的控制程序;3、你需要将程序编译连接成HEX或BIN格式的代码并下载或烧录...

单片机 编程语言?

单片机编程用c语言开发,因为单片机需要非常底层开发语言,用c语言开发效率非常高,而且c语言可以非常灵活,对于控制硬件非常合适。c语言最大的好处是可以利用...

ljmp什么程序?

ljmp长转移指令的功能是:把指令码中的目标地址addr16装入程序计数器PC,使机器执行下一条指令时无条件转移到addr16处执行程序,不影响任何标志。51单片机指令...

stc-isp怎么给 单片机 下载编程,烧录软件?-ZOL问答

3.打开STC-ISP软件,设置好你单片机的型号,载入HEX或BIN文件,就可以了。擦你可会,告诉你吧那个驱动是你下载线的驱动和你的软件有毛关系一般是CH243和CH341或...

猜你喜欢