足球外围app-靠谱的外围足球app

行业新闻
Group news
足球外围app(靠谱的外围足球app)    您的位置: 足球外围app  >  行业新闻  >  正文

怎么读取单片机程序_单片机程序是如何执行的_如何读懂单片机程序

2019年11月08日 文章来源:网络整理 热度:168℃ 作者:刘英

  怎么读取单片机程序_单片机程序是如何执行

  单片机又叫芯片,里面是有程序的。芯片里面的程序都是经过加密的,一般是读不出来的。但是可以破解出来,有加密自然就有解密。如果你想解密你手里的单片机,只需要在百度里输入“芯片解密”就可以找到专门破解芯片的公司了。

  

怎么读取单片机程序_单片机程序是如何执行的_如何读懂单片机程序

  接下来我们了解一下单片机的程序是如何执行的:

  单片机的运行需要执行程序,同时硬件也是必不可少的,二者缺一不可。大家都知道单片机的运行需要执行写好的程序,但是单片机的指令数据都被写在了哪里?在哪读取指令?单片机达人给你解答技术难题。

  让我们从最开始的环节讲起。在单片机上电的瞬间,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行的指令,由此程序在MCU上开始执行(当然在调用程序的main之前,还有一系列其他的的初始化要做,如堆栈的初始化,不过这些很少回去修改)。PC在上电时,和MCU差不多,不过读取的是BIOS,有它完成了很多初始化操作,最后,调用系统的初始化函数,将控制权交给了操作系统,于是我们看到了Windows、Linux系统启动了。

  如果将操作系统看作是在处理器上奔跑的一个大裸机程序(就是直接在硬件上跑的程序,因为操作系统就是直接跑在CPU上的,这样看待是可以的,不过这个裸机程序功能很多,很强大),那么操作系统的启动很像MCU程序的启动。前者有一个很大的初始化程序完成很复杂的初始化,后者有一段不长的汇编代码完成一些简单的初始化。这一点看,它们在流程上是很相似的。

  如果是系统上的程序启动呢?它们是由系统来决定的。Linux上在shell下输入。/p后,首先检查是否是一个内建的shell命令;如果不是,则shell假设它是一个可执行文件(Linux上一般是elf格式),然后调用一些相关的函数,将在硬盘上的p文件的内容拷贝到内存(DDR RAM)中,并建立一个它的运行环境(当然这里边还有内存映射,虚拟内存,连接与加载,等一些其他东西),准备执行。

  

怎么读取单片机程序_单片机程序是如何执行的_如何读懂单片机程序

  由以上可知,单片机上的程序和平时在系统上运行的程序相比,在启动时差异是很大的(如果将程序调用main以前的动作,都抽象为初始化的话,程序的启动可以简化为:建立运行环境+调用main函数,这样程序的执行差异是不大的)。因为单片机上跑的程序(裸机程序),是和操作系统一样跑在硬件上的,它们属于一个层次的。过去之所以没有区分出单片机上的程序和PC机上的程序的一些差异,就是没有弄明白这一点。

  由此,以前的一些疑惑也就解开了。为什么在单片机上的程序不怎么使用malloc,而PC上经常使用?因为单片机上没有已经写好的内存管理算法代码,而在PC上操作系统里运行的程序,libc已经把这些都做了,只需要调用就可以了。如果在单片机上想用动态内存,也可以,但是这些代码要自己去实现,并定义一个相应的malloc,有时候一些公司会提供一些库函数可能会实现malloc,但是因为单片机上RAM内存十分有限,如果不知道它的运行方式,估计会很危险。同样,因为在PC的系统上运行的程序与逻机程序的不同,裸机程序不会有动态链接,有的只是静态链接。

  关于程序在执行时,从哪里读取指令,哪里读取数据,也曾因为没有弄清楚系统上的程序和裸机程序之间的区别,而疑惑了很久。虽然在《微型计算机原理》课上知道程序运行时,从内存中读取指令和数据进行执行和回写。但是单片机上只有几K的RAM,而flash一般有几十K甚至1M,这个时候指令和数据都在内存中吗(这里指的内存仅指RAM,因为PC上我们常说的内存就是DDR RAM memory,先入为主以至于认为单片机上也是这样,还没有明白其实RAM和Flash都是内存)?

  这不可能,因为课上老师只说内存,但是PC上内存一般就是DDR RAM,不会是硬盘,硬盘是保存数据的地方;由此类比时,容易把自己弄糊涂,单片机的RAM对应于DDR RAM,那Flash是不是就对应于硬盘了呢?在CSAPP上明白了,PC上之所以都在DDR RAM上,是速度的因素。硬盘的速度太慢,即使是即将到来的SSD比起DDRRAM,还是差着几个数量级,所以拷贝到DDRRAM中。这时,一个程序的代码和数据是连续存放的,其中代码段是只读区域,数据段是可读写区域(这是由操作系统的内存管理机制决定的)。

上一篇:关于 Unicode 所有开发者都应该知道的前五件事 并用来防止欺诈


下一篇:基于蓝牙通信技术和密钥芯片的手机电子钱包支付系统解析

友情链接
Links
XML 地图 | Sitemap 地图