现在的位置: 首页 > 综合 > 正文

学习ARM开发(3)

2013年10月22日 ⁄ 综合 ⁄ 共 1252字 ⁄ 字号 评论关闭
学习ARM开发(3)

上一次说到装好LINUX后,就要装开发环境了,因为编译在LINUX下,当然是用GCC,但这个GCC跟LINUX本身带的又不一样。目标代码是ARM,而LINUX带的,一般是I386的目标代码。因此,一定要安装ARM的编译器。到网上下载 arm-elf-tools-20030314.sh,然后运sh ./arm-elf-tools-20030314.sh运行,就可以安装好ARM的GCC编译器了。你在LINUX下,就可以用arm-elf-gcc -v就可测试一下,是否安装成功了。这个编译器已经包括了as,ld,gcc等三个编译器,已经可以编译汇编和C代码,并且可以连接成目标文件。
编译器已经安装好之后,就说明整个开发环境已经建立起来,就做你想要做的事情了。至于怎么样写MAKEFILE文件,我就不说了。因为这些都是很基础的东西,并且都是细节的东西,记不住那么多,要用到的时候再去查手册行了。并且一个项目或许只用写一个MAKEFILE的格式,然后其它的都可以从这个基础上修改而来。我不会从头去建立一个MAKEFILE的,那需要太多时间了。只要到其它项目里拷贝一个,自己进行修改,就可以使用。
接着下来,就要写程序,那怎么样写呢?这是一个问题。写程序的目标机器是什么呢?用什么语言来写呢?应从那里下手呢?其实是有很多问题在这里的。
因为我以前没有学习过ARM,只学习过80X86的微机原理,我想这个ARM也是计算机,只要是一样的东西,就要用一样的方法来学习。以前我在大学里学习微机原理的流程是这样的:
学习二进制表示法,学习中央处理器组成,学习汇编,学习CPU的内存管理,学习CPU的IO口。
那么我也要用这种方法来学习才对。
二进制表示方法是一样的,所以不用学习了。那么我为什么CPU写程序呢?这个一定要搞清楚的,否则也不会怎么样写。ARM的CPU是与X86的CPU是不一样的。它是采用了RISC设计,以前也不懂这个是什么,所以就到网上查下,在《维基百科,自由的百科全书》里说明如下:

精简指令集,计算机CPU的一种设计模式,也被称为RISC(Reduced Instruction Set Computing 的缩写)。

早期,这种CPU指令集的特点是指令数目少,每条指令都采用标准字长、执行时间短、CPU的实现细节对于机器级程序是可见的等等。

实际上在后来的发展中,RISC与CISC在争吵的过程中相互学习,现在的RISC指令集也达到数百条,运行周期也不再固定...... 虽然如此,RISC设计的根本原则--针对流水线化的处理器优化--没有改变。

原来如此,RISC的一般特性是什么呢?采用RISC指令的CPU,大多数都是定长指令,采用加载与储存操作数据的办法。就是所有要操作的数,都要保存到寄存器才能作运算,不像X86的CPU,可以直接操作内存里的数据。这个在写汇编时需要了解的。其它的区别,对于写程序来说,是没有区别的。
ARM的CPU执行代码是三步进行的,取指---译码----执行。

下一个目标学习ARM汇编。

抱歉!评论已关闭.