入门向导:ARM与嵌入式linux

浪起激光2013-04-2359649

由于很多人总问这个问题,所以这里做一个总结文档供大家参考。这里必须先说明,以下的步骤都是针对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(根文件系统)。
那么这3部分是怎么相互协作来构成这个系统的呢?各自有什么用呢?三者有什么联系?怎么联系?系统的执行流程又是怎么样的呢?搞清楚这个问题你对整 个系统的运行就很清楚了,对于下一步制作这个linux系统就打下了另一个重要的根基。介绍这方面的资料网上可以挖掘到几吨,自己好好研究吧。
第四、开始做系统移植
上面说到完整的linux有3部分,而且你也知道了他们之间的关系和作用,那么现在你要做的便是自己动手学会制作这些东西。
当然我不可能叫你编写这些代码,这不实现。事实上这个3者都能在网下载到相应的源代码,但是这个源代码不可能下载编译后就能在你的系统上运行,需要 很多的修改,直到他能运行在你的板子上,这个修改的过程就叫移植。在进行移植的过程中你要学的东西很多,要懂的相关知识也很多,等你完成了这个过程你会发 现你已经算是一个初出茅庐的高手了。
在这个过程中如果你很有研究精神的话你必然会想到看源代码。很多书介绍你怎么阅读linux源代码,我不提倡无目的地去看linux源代码,用许三 多的话说,这没有意义。等你在做移植的时候你觉得你必须去看源代码时再去找基本好书看看,这里我推荐一本好书倪继利的《linux内核的分析与编程》,这 是一本针对linux-2.6.11内核的书,说得很深,建议先提高自己的C语言编程水平再去看。
至于每个部分的移植网上也可以找到好多吨的资料,自己研究研究吧,不过要提醒的是,很多介绍自己经验的东西都或多或少有所保留,你按照他说的去做总 有一些问题,但是他不会告诉你怎么解决,这时就要靠自己,如果自己都靠不住就找我一起研究研究吧,我也不能保证能解决你的问题,因为我未必遇到过你的问 题,不过我相信能给你一点建议,也许有助你解决问题。
这一步的最终目的是,从源代码的官方主页上(都是外国的,悲哀)下载标准的源代码包,然后进行修改,最终运行在板子上。
盗用阿基米德的一句话:“给我一根网线,我能将linux搞定”。 

本文链接:https://www.goldlaser.cn/Read/79.html 转载需授权!

  • 风冷激光除锈机户外移动施工好不好用?

    风冷激光除锈机户外移动施工好不好用?

    风冷激光除锈机户外移动施工好不好用?这个需要从多个角度去考量:风冷激光除锈机非常适合户外移动施工,可以说是为这类场景量身打造的,但也需要了解它的能力和局限。它的核心优势就是“移动方便”,但“风冷”这个...

    阅读学习2026-07-21
  • 1500瓦手持激光除锈机够不够除厚漆?

    1500瓦手持激光除锈机够不够除厚漆?

    1500瓦手持激光除锈机够不够除厚漆?目前连续式的激光除锈机,1500瓦是功率最小的了。对于某些应用它也是可以胜任并且性价比高。1、对于浮锈(黄锈)不要求效率的可以完全胜任2、对于薄的漆层也是可以的3...

    阅读学习2026-07-20
  • 对于这几种防腐专用漆,激光除锈机能清除吗?

    对于这几种防腐专用漆,激光除锈机能清除吗?

    激光除锈机大多数是在防腐喷涂前进行金属表面的清洁处理,但是遇到一些翻新类的情况,往往采用它去清除金属表面的漆层,那么效果效率怎么样呢?首先来看下防腐漆的种类:防腐漆的主要种类防腐涂料按使用场景,可以分...

    阅读学习2026-07-18
  • 关于激光设备的两用物项检查报告怎么做?

    关于激光设备的两用物项检查报告怎么做?

    关于激光设备的两用物项检查报告怎么做?最近我们海外订单都会需要这个两用物项的证书报告,该报告属于一台机器一个报告的形式,为第三方出具,内容为激光器的证明。一份完整的检查报告或技术说明,通常需要包含以下...

    阅读学习2026-07-17
  • 激光除锈机对环境有什么要求?

    激光除锈机对环境有什么要求?

    激光除锈机对环境的“脾气”有具体要求,主要围绕着温度、湿度、供电和现场平整度这几方面。如果工作环境超出了它的“舒适区”,轻则影响清洁效果,重则可能损坏设备。我把几项核心要求整理成了下面这个表格,方便你...

    阅读学习2026-07-14
  • 实地考察激光除锈机时需要了解哪些信息

    实地考察激光除锈机时需要了解哪些信息

    去实地考察,主要是为了避开“纸上谈兵”的坑,亲眼看看设备的真实水平和厂家的靠谱程度。结合你提到的浪起激光,建议你在考察时,重点关注以下四个方面,把考察做深做细。核心考察:现场“打样测试”这是最关键的一...

    阅读学习2026-07-13
  • 2000W激光可以焊接多厚的材料?

    2000W激光可以焊接多厚的材料?

    2000W激光可以焊接多厚的材料?这个其实没有很标准的答案,有的看激光熔深,有的看焊接牢固怎么样,当然也取决于是什么材料?主流厚度的参考(0.5-4毫米):很多厂家将2000W机型设计为0.5-4.0...

    阅读学习2026-07-12
  • 高温天气激光除锈机应注意什么?

    高温天气激光除锈机应注意什么?

    目前济南温度在36度左右,户外太阳照射范围更热,那么高温天气激光除锈机应注意什么?高温天气对激光除锈机是个不小的考验,核心风险集中在散热不足导致“罢工”、湿气引发“内伤”和灰尘加速“磨损”这三个方...

    阅读学习2026-07-11
  • 新手对于激光除锈机上手快不快?

    新手对于激光除锈机上手快不快?

    对于新手来说,激光除锈机上手的门槛很低,可以说非常快。如果只是想学会基本操作,通常10分钟到半小时就能掌握;经过1-2天的简单培训,新手基本就可以独立完成日常除锈作业了。新手能快速上手,主要得益于现在...

    阅读学习2026-07-05
  • 调Q脉冲激光器横模吗?激发方式是什么

    调Q脉冲激光器横模吗?激发方式是什么

    调Q脉冲激光器可以有多种横模,但高质量的应用通常追求基横模(TEM₀₀)输出。它的激发方式(泵浦方式)主要是光泵浦,可以用连续光或脉冲光来泵浦。具体来看:横模:从基模到高阶模追求基模(TEM₀₀):...

    阅读学习2026-07-03

猜你还喜欢这些...