<meta name="keywords" content="庄家克星时时彩,初学者福音:ARM与嵌入式Linux的入门建议" />
单片机/处置赏罚赏罚器FPGA软件/编程电源模拟电子PCB设计测试丈量无源/分立音视频/显示MEMS系统设计破费电子工业/测控汽车电子通讯/群集医疗电子机械人
检查: 3605|回复: 0
打印 上一主题 下一主题

[提问] 初学者福音:ARM与嵌入式Linux的入门建议 [复制链接]

xyd2018 (离线)
积分
1499
帖子
300
跳转到指定楼层
楼主
揭晓于 2019-3-16 10:46:40 |只看该作者 |倒序浏览
或许你会重视到,现在做嵌入式的人中,做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阻拦编程的效果我很难回复^_^,自己去研究研究吧。

关于这部门不久将供应一份教程,这个教程中的例程着实不是我为我们所署理的板子写的,是我在我们学院实验室拿的,英培特为他们自己 的实验箱写的,不外很有自创意义,可以作为一份有价值的参考。

第2、应用linux系统阻拦一些基本的实验
在买一套板子的时间浅易会供应一些linux的实验例程,好好做一段时间这个吧,这个历程也是很居心义的,也是为进一步的学习积累理性熟悉,你能想象一个从没有应用过linux系统的人能学好linux的编程吗?好好凭证手册上的例程做一做外面的实验,虽然有点娃娃学走路,有点弱智,然则我想许多能手都邑履历这个历程。

在这方面我们深蓝科技现在没有妄图供应照顾的例程,主若是开发板的供应商会供应很富厚的例程,我们不做重复使命,只供应他们没有的、最有价值的器械给年夜家。

第3、研究完全的linux系统的的运转历程
所谓完全的linux系统网罗哪些部门呢?

三部门:bootloader、linux kernel(linux内核)、rootfile(根文件系统)。

那么这3部门是怎样相互协作来组成这个系统的呢?各自有甚么用呢?三者有甚么联系?怎样联系?系统的推行流程又是怎样样的呢?弄清晰这个效果你对一切系统的运转就很清晰了,关于下一步制造这个linux系统就打下了此外一个主要的基础。简介这方面的质料网上可以掘客到几吨,自己好好研究吧。

第四、泉源做系统移植
下面说到完全的linux有3部门,而且你也知道了他们之间的关系和作用,那么现在你要做的就是自己着手学会制造这些器械。

虽然我弗成能叫你编写这些代码,这不完成。现实上这个3者都能在网下载到照顾的源代码,然则这个源代码弗成能下载编译后便可以在你的系统上运转,须要许多的修改,直到他能运转在你的板子上,这个修改的历程就叫移植。在阻拦移植的历程当中你要学的器械许多,要懂的相关知识也许多,等你完成了这个历程你会发现你曾经算是一个初出茅庐的能手了。

在这个历程当中假定你很有研究精神的话你一定会想到看源代码。许多书函介你怎样浏览linux源代码,我不提倡无目的地去看linux源代码,用许三多的话说,这没居心义。等你在做移植的时间你以为你必须去看源代码时再去找基本好书看看,这里我推荐一本好书倪继利的《linux内核的剖析与编程》,这是一本针对linux-2.6.11内核的书,说得很深,建议先进步自己的C语言编程水平再去看。

至于每个部门的移植网上也能够或许找到许多若干许多几何吨的质料,自己研究研究吧,不外要提醒的是,许多简介自己履历的器械都或多或少有所生涯,你凭证他说的去做总有一些效果,然则他不会告诉你如那里置赏罚赏罚,这时间间就要靠自己,假定自己都靠不住就找我一起研究研究吧,我也不克不及保证能处置赏罚赏罚你的效果,由于我未必遇到过你的效果,不外我信托能给你一点建议,或许有助你处置赏罚赏罚效果。

这一步的事实目的是,从源代码的官方主页上(都是本国的,悲痛)下载尺度的源代码包,然落先行修改,事实运转在板子上。

盗用阿基米德的一句话:“给我一根网线,我能将linux弄定”。

第五、研究linux驱动法式模范模范的编写
移植系统着实不是事实的目的,事实的目的是开发产物,做项目,这些都要阻拦驱动法式模范模范的开发。

Linux的驱动法式模范模范可以说是五花八门,linux2.4和linux2.6的编写有相昔时夜的差异,就是同为linux2.6然则不合版本间的驱动法式模范模范也有差异,是以编写linux的驱动法式模范模范变都不是那么容易的使命,关于最新版本的驱动法式模范模范的编写以致还没有足够的参考质料。那么我的建议就是应用、移植一个不算很新的版本内核,这样到时学驱动的编程就有足够的质料了。

第六、研究应用法式模范模范的编写
做作品做项目除编写驱动法式模范模范,最后还要编写应用法式模范模范。现在的趋势是图形应用法式模范模范的开发,而图形应用法式模范模范中用得最多的照样qt/e函数库。我一直就应用这个函数库来开发自己的应用法式模范模范,不外我欲望你能应用国产的MiniGUI函数库。盗用周杰伦的广告词就是“支持国产,支持MiniGUI”。MiniGUI的编程较量类似Windows下的VC编程,较量容易上手,效果应当说是相当不错的,我曾应用已往开发arm7的法式模范模范。不外MiniGUI最年夜的欠好就是没有像qtopia这样的图形操作平台,这年夜年夜限制了他的推行,我曾司理想过与北京飞漫公司(就是MiniGUI的版权具有者)协作应用MiniGUI函数库开发像qtopia这样的图形操作平台,不外由于水平无限这只能是理想了,呵呵。

完成这一步你基本就学完了嵌入式linux的一切内容了。   
尚有一个小小的履历想和年夜家分享。我在学习嵌入式linux的历程当中很少问人,客不雅不雅启事是身边的师长教员、同砚师兄都没有这方面的能手,主不雅不雅启事是我不喜欢问人,喜欢自己研究处置赏罚赏罚效果。这样做有个利益,就是可以前进自己处置赏罚赏罚效果的才干,由于做这些器械总有许多效果你难以明确,他人也没有这方面的履历,也不是一切效果都有人给你谜底,这时间间必须要自己处置赏罚赏罚效果,这样,小我的处置赏罚赏罚效果才干就显得异常要害了。是以我的建议就是浅易的效果到网上搜索一下,确切找不到谜底了就问问能手,照样不行了就自己去研究,不要一味去等他人帮你处置赏罚赏罚效果。
记着,效果是学习的最好时机。收费试听C语言、电子、PCBSTM32、Linux、FPGA、Python等。想学习的你和我联系预定便可以收费听课了宋工Q3/5/2/4/6/5/9/0/8/8   Tel/WX:1/7/3/1/7/9/5/1/9/0/8



关于我们  -  服务条目  -  应用指南  -  站点舆图  -  友谊链接  -  联系我们
庄家克星时时彩-时时彩qq群-时时彩平台推荐 © 版权一切   | 京公网安备110108881021702