单片机内部基本原理 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 分别是什么文件?-ZOL问答在单片机开发过程中,常用的文件格式包括HEX和BIN。HEX文件通常由KEIL等开发工具生成,而BIN文件则可以通过其他软件如图像转换工具生成。这些文件都可以用于烧...
如何编辑 单片机 的 BIN 文件,将其转化为可修改的 ... _网络编辑_...要编辑单片机的BIN文件并将其转换为可修改的汇编语言,需要使用反汇编器。反汇编器是一种将机器代码转换为汇编语言的工具。以下是一些步骤:1.找到...
单片机 程序烧录打不开文件hextobin .bin -ZOL问答51单片机烧录程序和调试方法:以下是如何编译程序,如何下载程序到单片机,以及接线图。①为了过程方便,通常会新建一个英文文件夹,这里以qq文件...
HEX文件和 BIN 文件格式的区别?bin文件是二进制文件,所有数据就是写入到单片机中的实际数据。HEX文件是十六进制文件,整个文件以行为单位,每行以冒号开头,内容全部为16进制码(以ASCII码...
单片机 中两个字节存放的16位二进制怎么准确转换为BCD码?BINBCD:MOVB,#100(100作为除数送入B中)DIVAB(十六进制数除以100)MOVR3,A(百位数送r3,余数放入B中)...BINBCD:MOVB,...
“ 单片机 ”的英文翻译是什么?[回答]单片机1.singlechip2.SCM单片机:1.ELAN义隆单片机_苏州启普微电子有限公司台湾义隆电子单片机(ELAN)代理商http://www.chi...
单片机 编程语言?单片机编程用c语言开发,因为单片机需要非常底层开发语言,用c语言开发效率非常高,而且c语言可以非常灵活,对于控制硬件非常合适。c语言最大的好处是可以利用...
hc05可以发 bin 文件吗?是的,HC-05蓝牙模块可以发送二进制(.bin)文件。HC-05模块可以通过串口通信与微控制器或计算机连接,您可以使用适当的串口通信协议将二进制文件发送到HC-05模...
在 单片机 里如果实现当两个信号不匹配持续1秒才执行程序,这个程序该怎么写?在单片机里如果实现当两个信号不匹配持续1秒才执行程序,这个程序该怎么写?一个一个来回答你吧。问题1:写好的程序需要先经过软件编译成机器代码,一般是*.he...
单片机 系统中,串口下载程序,软件是如何下载进去的?STC单片机,装好USB转TTL或USB转串口的驱动,打开下载软件选择驱动安装后虚拟出来的串口(有的软件会自动扫描),选择正确的单片机型号,选择合适的波特率(默...