在《嵌入式编程之单片机的根本构成、作业原理》和《嵌入式编程之单片机的外围功用电路》咱们介绍了单片机硬件方面的常识。本文将介绍单片机的开发环境和编程言语。
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字符串表明赋值,所以“给寄存器A赋值2”的处理就可用“MOV A,#02”表明。
图1:机器言语和汇编言语的比较
尽管汇编言语比机器言语愈加简略易懂了,可是人们读起来仍是挺难了解的。并且,汇编言语还存在另一个问题,便是不同的CPU,机器言语的描绘方法也不同。因而,假如替换了CPU,就必须改写与机器言语有着密不可分联系的汇编言语,作业量比较大。(以上比如中的机器言语和汇编言语均为瑞萨的RL78族单片机中的言语。)
如上所述,每替换一次CPU都必须对程序进行改编,不光形成生产性低下,还加剧了编程人员的担负。
人性化的C言语
可以处理上述问题的编程言语便是C言语。C言语具有不依存于特定的CPU,又具有程序移植性高级的特色。别的,因为编程时可运用人们了解的英文单词,所以对编程人员来说C言语是最简略运用的编程言语。下面咱们将C言语和汇编言语做一个简略地比较。(图2)
图2: 汇编言语和C言语的比较
尽管C言语不依存于CPU并且仍是人们最简略运用的编程言语,但关于CPU来说,C言语却是一种彻底无法了解的言语。因而,就需要一种可以将C言语翻译为机器言语的软件,这便是被称为编译器 (编译程序) 的软件。 经过编译器翻译的程序的文件格局被称为方针文件格局。假如方针文件格局终究没有被装备到存储器中,CPU就无法履行该程序。
别的,近来因为程序越来越趋于复杂化,所以简直都采取了将一个程序分割为多个C言语程序文件的结构。所以,还需要一个东西将多个方针文件格局汇总成一个机器言语并装备到存储器上,可以担当起此重担的便是衔接修改程序(linkage editor,也被称为“linker(链接器)”)。
可以找出程序过错的调试器
由人进行编程的应用程序难免会存在过错(bug)。而用来发现和协助人们批改程序过错的东西被称为调试器(Debugger)。下面简略介绍调试器的类型。
电路内仿真器(In-Circuit Emulator , 简称:ICE) :ICE可替代实践的单片机,与仿真专用的点评单片机(evaluation chip,点评芯片)衔接并进行调试。其间,“In-Circuit Emulator”为美国英特尔公司的注册商标,瑞萨将其命名为“Full-spec Emulators”并向商场供给。
J-TAG仿真器:J-TAG仿真器运用单片机内事前预留的调试电路进行调试。也便是说经过实践运用的单片机来进行调试。和ICE比较,J-TAG仿真器的价格较低。瑞萨将其命名为“On-chip Debug Emulator”并向商场供给。
简易仿真器:简易仿真器是使调试用的监督程序在单片机上运转,在与PC通讯的一起进行调试。除了调试目标的程序之外,还需发动其他监督程序,所以,与%&&&&&%E或J-TAG仿真器比较,简易仿真器的程序运转速度慢并且还有各种功用约束。其最大的长处是价格十分低价。
归纳开发环境
正如上面所讲的,在进行单片机的软件开发时,运用了上述的编译器、衔接修改程序、调试器等各种东西。曾经,这些软件都是作为单个软件别离供给的,一般是经过命令提示符调出各个程序、或是经过批处理程序调出运用。可是,最近开端以归纳开发环境的方法给予供给,归纳开发环境便是将各种程序归纳到一个程序包中,只需经过Renesas CS+ 等便可很简略地将程序调出运用。
例如,瑞萨针对RL78族产品供给了“简略”“快速”“安心”的“CS+”的归纳开发环境。在归纳开发环境中,只需进行简略操作便可使用各种功用,因而,归纳开发环境最适合用来进步软件开发的功率。
* 在2014年10月1日发布, 瑞萨电子集成开发环境CubeSuite+的产品名称现已从V3.00.00版别中改为“C++”。