需要您的帮助来澄清原始概念:
在嵌入式系统中,当程序在处理器上运行时(以ARM为例),据我所知,这是因为“要执行的代码”加载在主内存中。
我的问题是:
发布于 2020-02-06 14:07:50
我想你是从非技术背景来的,所以这些条件对你来说是新的。要完全理解这个网站上的许多答案,最好是上一门像计算机科学101 (CS101)这样的初学者课程。这至少给你介绍了计算机如何工作的词汇和一般概念。
你的两个问题并没有太大的区别。
可执行文件:设计为由计算机运行的文件
可执行文件是为特定的体系结构(比如ARM系统)编译的,相同的可执行文件不能在其他体系结构上运行。CS 101课程将详细说明为什么会出现这种情况。
软件:告诉CPU (如ARM)该做什么的一组指令。
软件更多地与指令有关,而不是构成正在运行的应用程序的文件。
二进制图像:包含一组字节的文件。
二进制映像是一个低级概念,可以是可执行文件、图片、电影或磁盘驱动器的副本。这里的主要区别是内容是二进制的,而不是文本。
发布于 2020-02-06 16:56:42
正如@Nat提到的,这里的上下文很重要。我将从一个裸金属(没有操作系统)的上下文来讨论这个问题。
通常,您的软件是用某种语言(C/C++、汇编程序等)编写的。这构成了你的源代码。现在,源代码不是可以由目标处理器直接执行的格式,因此我们需要通过编译/组装过程运行源代码来生成对象代码,然后通过链接器来生成可执行对象代码文件。
该EOC文件的格式可以由目标处理器直接执行,但仍然需要以某种方式加载到内存中。
在裸金属(无操作系统)嵌入式系统上,通常通过调试器或Flash程序员将其写入某种形式的非易失性存储,然后由目标处理器根据其启动过程直接执行。
https://softwareengineering.stackexchange.com/questions/404789
复制相似问题