乐游棋牌

乐游棋牌

乐游棋牌官网

2019-09-30 投稿人 : fzxlj.com 围观 : 1716 次

本系列说明了嵌入式系统开发技术人员必需的基础知识。此基础知识是硬件和软件技术人员都应掌握的常见技术知识。

在“微控制器1简介”和“微控制器2简介”中,我们了解了微控制器的硬件。在本期中,我们将学习开发环境和编程语言。

CPU可以理解的机器语言

微控制器的CPU从存储器中读取程序,但一次只能读取一条指令,然后解释并执行每条指令。存储器中存储的内容,无论是程序还是数据,都是二进制代码“ 0”和“ 1”的字符串。指令二进制代码告诉CPU该怎么做,而数据二进制代码是CPU操作或处理指令时要使用的值。 CPU的操作包括加减法等指令。这些像密码一样排列的“ 0”和“ 1”字符串是机器语言。例如,图1的左侧显示了一种机器语言指令,意思是“将2放入寄存器A(该寄存器是CPU内部的存储区)。

除非遇到跳转指令,否则CPU始终按存储器地址的顺序读取指令代码。例如,如果复位后的地址是0000,则从0000开始以0001、0002和0003的顺序读取和执行指令。也可以说程序是根据以下内容安排一系列机器语言的处理要求。

如上所述,CPU仅能理解机器语言。因此,为了使CPU运行,必须使用机器语言程序。但是,机器语言并不容易识别和读写。因此,人们使用更简单,更易于理解的字符串代替机器语言(汇编语言)。例如,在“将寄存器A赋值为2”的情况下,如果用汇编语言表示,则非常简单,请参见图1的右侧。在汇编语言中,赋值由MOV字符串表示,因此,“将2分配给寄存器A”的过程可以用“ MOV A,#02”表示。

图1:机器语言和汇编语言的比较

尽管汇编语言比机器语言更简单易懂,但仍然很难理解。此外,汇编语言还有另一个问题,即不同的CPU,机器语言描述也不同。因此,如果更换CPU,则需要重写与机器语言不可分割的汇编语言,并且工作量相对较大。 (以上示例中的机器语言和汇编语言是瑞萨RL78系列微控制器的语言。)

如上所述,每次更换CPU时,都必须对程序进行修改,这不仅导致生产率降低,而且增加了程序员的负担。

用户友好的C语言

解决上述问题的编程语言是C语言。 C语言具有不依赖于特定CPU和高程序可移植性的特征。另外,C是程序员最简单的编程语言,因为可以使用熟悉的英语单词进行编程。下面我们简单地比较一下C语言和汇编语言。 (图2)

图2:汇编语言和C语言的比较

尽管C语言不依赖于CPU,并且是人们最简单的编程语言,但是C语言对于CPU来说是一种完全无法理解的语言。因此,需要一种可以将C语言翻译成机器语言的软件,称为编译器(compiler)。由编译器翻译的程序的文件格式称为目标文件格式。如果最终没有将目标文件格式配置到内存中,则CPU无法执行该程序。

此外,由于最近程序的复杂性增加,几乎所有程序都采用将程序划分为几个C语言程序文件的结构。因此,还需要一种工具来将多种目标文件格式聚合为一种机器语言并将其配置到内存中。链接编辑器(也称为链接器)可以执行此任务。

日期归档

乐游棋牌

乐游棋牌