文档详情

ARM与Linux入门学习建议.doc

发布:2017-09-03约1.66万字共17页下载文档
文本预览下载声明
ARM与Linux入门学习建议 推荐资源 1.全国大学1000多门20000多课时课程在线看 (必收藏) /index-htm-m-bbs-cateid-73.html 2. 数十G的photoshop教程在线看或下载 /thread-htm-fid-87.html 3.数十G ,word,excel办公软件教程在线看或下载 本文由wuwenfeng09贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 由于很多人总问这个问题,所以这里做一个总结文档供大家参考。这里必须先说明,以下的步骤 都是针对 Linux 系统的,并不面向 WinCE。也许你会注意到,现在做嵌入式的人中,做 linux 研究 的人远比做 WinCE 的人多,很多产家提供的资料也是以 linux 为主。我一直很难理解,其实 WinCE 的界面比 linux 的界面好看多了,使用起来也很方便,更为重要的是,WinCE 的开发和 Windows 下 的开发基本一样,学起来简单得多,但是学 linux 或者使用 linux 做嵌入式的人就是远比 WinCE 多。 在和很多工作的人交流时我了解到,他们公司从没考虑使用 WinCE,因为成本高,都是使用 linux 进行开发。我读研究生的的实验室中也没有使用 WinCE 的,大都研究 linux,也有少部分项目使用 vxwork,但是就没有听说过使用 WinCE 的,原因就是开源!当然现在 WinCE6.0 听说也开源,不过 在成本和资源上 linux 已经有了无人能挡的优势。与此相对应的是,越来越多的电子厂商已经开始使 用 linux 开发产品。举个例子,Google 近期开发的智能手机操作系统 Android 其实就是使用 linux-2.6.23 内核进行改进得到的。 第一,学习基本的裸机编程。 对于学硬件的人而言,必须先对硬件的基本使用方法有感性的认识,更必须深刻认识该硬件的控制方 式,如果一开始就学 linux 系统、学移植那么只会马上就陷入一个很深的漩涡。我在刚刚开始学 ARM 的时候是选择 ARM7 (主意是当时 ARM9 还很贵) 学 ARM7 的时候还是保持着学 51 单片机的思维, , 使用 ADS 去编程,第一个实验就是控制 led。学过一段时间 ARM 的人都会笑这样很笨,实际上也不 是,我倒是觉得有这个过程会好很多,因为无论做多复杂的系统最终都会落实到这些最底层的硬件控 制,因此对这些硬件的控制有了感性的认识就好很多了 学习裸机的编程的同时要好好理解这个硬件的构架、控制原理,这些我称他为理解硬件。所谓的理解 硬件就是说, 理解这个硬件是怎么组织这么多资源的, 这些资源又是怎么由 cpu、 由编程进行控制的。 比如说,s3c2410 中有 AD 转换器,有 GPIO(通用 IO 口),还有 nandflash 控制器,这些东西都有 一些寄存器来控制,这些寄存器都有一个地址,那么这些地址是什么意思?又怎么通过寄存器来控制 这些外围设备的运转?还有,norflash 内部的每一个单元在这个芯片的内存中都有一个相应的地址单 元,那么这些地址与刚刚说的寄存器地址又有什么关系?他们是一样的吗?而与 norflash 相对应的 nandflash 内部的储存单元并不是线性排放的,那么 s3c2410 怎么将 nandflash 的地址映射在内存空 间上进行使用?或者简单地说应该怎么用 nandflash?再有,使用 ADS 进对 ARM9 行编程时都需要 使用到一个初始化的汇编文件,这个文件究竟有什么用?他里面的代码是什么意思?不要这个可以 吗? 诸如此类都是对硬件的理解,理解了这些东西就对硬件有很深的理解了,这对以后更深一步的学习将 有很大的帮助,如果跳过这一步,我相信越往后学越会觉得迷茫,越觉得这写东西深不可测。因为, 你的根基没打好。 不过先声明一下,本人并没有使用 ADS 对 ARM9 进行编程,我是学完 ARM7 后直接就使用 ARM9 学 linux 系统的,因此涉及使用 ADS 对 ARM9 进行编程的问题我很难回答^_^,自己去研究研究吧。 对于这部分不久将提供一份教程,这个教程中的例程并不是我为我们所代理的板子写的,是我在我们 学院实验室拿的,英培特为他们自己 的实验箱写的,不过很有借鉴意义,可以作为一份有价值的参 考。 第二,使用 linux 系统进行一些基本的实验。 在买一套板子的时候一般会提供一些 linux 的试验例程,好好做一段时间这个吧,这个过程也是 很有意义的,也是为进一步的学习积累感性认识,你能想象一个从没有使用过 linux 系统的人能学好 linux 的编程吗?好好按照手册上的例
显示全部
相似文档