导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[missARM]ARM与嵌入式linux的入门建议(六部



No.111459
作者:missARM
邮件:3322386182@qq.com
ID:133181
登陆:12次
文章数:37篇
最后登陆IP:119.136.84.215
最后登陆:2017/3/9 18:24:52
注册:2016/2/28 11:06:55
财富:330
发帖时间:2016/3/6 15:07:47
发贴者IP:119.139.117.47
标题:missARM:ARM与嵌入式linux的入门建议(六部曲)
摘要:No.111459ARM与嵌入式linux的入门建议(六部曲) 欢迎大家进入qq群 116454842,共同交流、学习。

由于很多人总问这个问题,所以这里做一个总结供大家参考。这里必须先说明,

以下的步骤都是针对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的编程吗?好好按 
照手册上的例程做一做里面的实验,虽然有点娃娃学走路,有点弱智,但是我想

很多高手都会经历这个过程。
   在这方面我们深蓝科技目前没有计划提供相应的例程,主要是开发板的提

供商会提供很丰富的例程,我们 
不做重复工作,只提供他们没有的、最有价值的东西给大家。

  第三,研究完整的linux系统的的运行过程。
  所谓完整的linux系统包括哪些部分呢?
  三部分:bootloader、linux kernel(linux内核)、rootfile(根文件 ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:20203毫秒 查询8次