为主。我一直很难理解,其实 的界面比 的界
面好看多了,使用起来也很方便,更为重要的是, 的开发和
下的开发基本一样,学起来简单得多,但是学 或者使用 做嵌入式的
人就是远比 多。在和很多工作的人交流时我了解到,他们公司从没考
虑使用 ,因为成本高,都是使用 进行开发。我读研究生的的实验
室中也没有使用 的,大都研究 ,也有少部分项目使用 ,
但是就没有听说过使用 的,原因就是开源!当然现在 听说
也开源,不过在成本和资源上 已经有了无人能挡的优势。与此相对应的
是,越来越多的电子厂商已经开始使用 开发产品。举个例子, 近
期开发的智能手机操作系统 其实就是使用 内核进行改
进得到的。
第一,学习基本的裸机编程。
对于学硬件的人而言,必须先对硬件的基本使用方法有感性的认识,更必须
深刻认识该硬件的控制方式,如果一开始就学 系统、学移植那么只会马
上就陷入一个很深的漩涡。我在刚刚开始学 的时候是选择 (主意
是当时 还很贵),学 的时候还是保持着学 !" 单片机的思维,使
用 #$ 去编程,第一个实验就是控制 学过一段时间 的人都会笑这样
很笨,实际上也不是,我倒是觉得有这个过程会好很多,因为无论做多复杂的
系统最终都会落实到这些最底层的硬件控制,因此对这些硬件的控制有了感性
的认识就好很多了学习裸机的编程的同时要好好理解这个硬件的构架、控制原
理,这些我称他为理解硬件。所谓的理解硬件就是说,理解这个硬件是怎么组
织这么多资源的,这些资源又是怎么由 %&、由编程进行控制的。比如说,
%'" 中有 # 转换器,有 ()*(通用 )* 口),还有 +,+- 控制器,
这些东西都有一些寄存器来控制,这些寄存器都有一个地址,那么这些地址是
什么意思?又怎么通过寄存器来控制这些外围设备的运转?还有,,+- 内
部的每一个单元在这个芯片的内存中都有一个相应的地址单元,那么这些地址
与刚刚说的寄存器地址又有什么关系?他们是一样的吗?而与 ,+- 相对应
的 +,+- 内部的储存单元并不是线性排放的,那么 %'" 怎么将
+,+- 的地址映射在内存空间上进行使用?或者简单地说应该怎么用
+,+-?再有,使用 #$ 进对 +. 行编程时都需要使用到一个初始化的
汇编文件,这个文件究竟有什么用?他里面的代码是什么意思?不要这个可以
吗?
诸如此类都是对硬件的理解,理解了这些东西就对硬件有很深的理解了,这
对以后更深一步的学习将有很大的帮助,如果跳过这一步,我相信越往后学越
会觉得迷茫,越觉得这写东西深不可测。因为,你的根基没打好。