|
由于很多人总问这个问题,所以这里做一个总结文档供大家参考,以下的步骤都是针对嵌入式Linux系统的,很多产家提供的资料也是以linux为主。举个例子,Google近期开发的智能手机操作系统Android其实就是使用linux-2.6.23内核进行改进得到的。下面就由卓跃教育为您做一个介绍。 第一,学习基本的裸机编程。 对于学硬件的人而言,必须先对硬件的基本使用方法有感性的认识,更必须深刻认识该硬件的控制方式,如果一开始就学linux系统、学移植那么只会马上就陷入一个很深的漩涡ARM7的时候还是保持着学51单片机的思维,使用ADS去编程,第一个实验就是控制led。 学习裸机的编程的同时要好好理解这个硬件的构架、控制原理,这些我称他为理解硬件。 还有,norflash内部的每一个单元在这个芯片的内存中都有一个相应的地址单元,那么这些地址与刚刚说的寄存器地址又有什么关系?他们是一样的吗?而与norflash相对应的nandflash内部的储存单元并不是线性排放的,那么s3c2410怎么将nandflash的地址映射在内存空间上进行使用?或者简单地说应该怎么用nandflash? 再有,使用ADS进对ARM9行编程时都需要使用到一个初始化的汇编文件,这个文件究竟有什么用?他里面的代码是什么意思?不要这个可以吗? 第二,使用linux系统进行一些基本的实验。 在买一套板子的时候一般会提供一些linux的试验例程,好好做一段时间这个吧,这个过程也是很有意义的,也是为进一步的学习积累感性认识,你能想象一个从没有使用过linux系统的人能学好linux的编程吗?好好按照手册上的例程做一做里面的实验,虽然有点娃娃学走路,有点弱智,但是我想很多高手都会经历这个过程。 第三,研究完整的linux系统的的运行过程。 所谓完整的linux系统包括哪些部分呢? 三部分:bootloader、linux?kernel(linux内核)、rootfile(根文件系统)。
|
|