笔者此处也是选用MDK编译器作为入门开发讲解。

各个系统的ARM处理器架构有些不一样,并且同一架构的ARM处理器各个厂商的具体芯片使用均是不一样的。一般弄清其中一个系列的架构即可,其它都是通用处理器相关的内容,技术学其一是能通其它的,往往根据之前的积累看新的处理器技术手册就能很快掌握新的处理器使用。笔者此处选ARM7作为讲解,当然ARM9是完全兼容ARM7指令的,学习了ARM7,ARM9也同时掌握了。具体到芯片型号,笔者此处选用原Philips半导体公司NXP的LPC2100系列,以LPC2103为例。

进行ARM编程前,是必须先了解ARM的体系结构的,包括ARM的处理器模式、寄存器组织、异常、寻址方式等。体系结构相关的内容都是会直接涉及到汇编处理的过程,因此,学习相关知识的时候会同时涉及到汇编程序的学习。汇编对于arm开发,是比较重要的,尤其是处理操作系统底层的代码或bootloader之类代码,是必须要用汇编实现体系结构相关的代码,其它像c之类的高级语言均是无能为力的。笔者在文章的末尾给出了周立功ARM教程PPT,包括ARM7的体系结构,汇编指令讲解这些内容,是相当不错的教材,以供大家学习。

学习一门完全没有接触过的技术,是需要一个逐步感性的认识过程的。对于初学者,不建议直接买开发板学习,因为没有足够的认识之前,往往会迷失方向,不知从何处学起,如果反复的上电,连下载线下载代码,却并不知道代码为什么要这样写,会消耗个人的斗志。笔者此处推荐Proteus仿真软件,Proteus仿真软件最成功的就是仿真51单片机的运行,但Proteus也是可以仿真ARM7运行的,当然支持的芯片极为有限,仅支持NXP的LPC2100系列的几款。但这对于我们的前期学习是完全足够了,这也是为什么笔者前面选择NXP LPC2103 这款ARM7的原因。软件仿真的好处就是零成本,可以直接改代码,省去开发板连下载线下载代码这些繁琐的步骤,方便验证,并且可以跟踪每一行代码的运行实现。Proteus仿真软件界面如图3-1。仿真软件只能仿真一些简单的代码,并且仿真结果也并不一定百分百正确,对ARM有一定的认识后,就可以买开发板做进一步的学习,如三星的arm9开发板、意法半导体的Cortex-M3开发板等都是不错的选择。

3_入门准备 - 图1

Proteus arm7仿真软件