《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 初學(xué)嵌入式開發(fā)ARM的學(xué)習(xí)方法

初學(xué)嵌入式開發(fā)ARM的學(xué)習(xí)方法

2015-06-03

      這個(gè)題目很大,,給人一種感覺我好像很成功,,其實(shí)不然,。實(shí)際上自己水平不高,,甚至很低,,但是做過了一些曲折的學(xué)習(xí)道路,同時(shí)把自己真實(shí)的學(xué)習(xí)歷程表達(dá)出來,,希望對(duì)后來者有借鑒的意義,,甚幸!

      工作三年、幾成廢人!

  我2000年畢業(yè)于華中地區(qū)的一個(gè)理工科大學(xué),,專業(yè)是機(jī)械電子,,我當(dāng)時(shí)已經(jīng)簽了一家內(nèi)陸某個(gè)省級(jí)機(jī)關(guān)工作,家里八輩是農(nóng)民,,并且很偏遠(yuǎn),,能夠進(jìn)入這樣的 地方是祖墳有風(fēng)水。但在畢業(yè)前夕有個(gè)進(jìn)入it的機(jī)會(huì),,我本想進(jìn)去的,,家里人極力反對(duì),阻力可想而知,。同時(shí)要交4000元的違約金,,對(duì)我來說是天文數(shù)字。大 學(xué)里的費(fèi)用很多是借的,,幾乎將近一半的費(fèi)用是在大學(xué)勤工儉學(xué)掙的,,為了省錢,高中一個(gè)學(xué)期回家一次,,大學(xué)一年回去一次,。并且我個(gè)人也有特殊的人生背景(悲 景更確切),這里不多說了,,寫十篇也寫不完,,同時(shí)偏離主題。這樣我就參加了工作,。一張報(bào)紙一杯茶的日子,,幾乎下班后有種很空虛和恐慌的感覺。在工作中雖然 是與自己專業(yè)有點(diǎn)關(guān)系,,但是很少,。專業(yè)幾乎荒廢。我自己也思考,,如果再不出去,,自己將會(huì)成廢人,只好讓國家養(yǎng)了,。兩年后決定出去,,但是幾成廢人,誰要呢, 只好到學(xué)校去鍍金,。這是中國教育和社會(huì)的悲哀!

  至于專業(yè)就改為計(jì)算機(jī)方面,,聽說好找工作,我說實(shí)話不是很對(duì)計(jì)算機(jī)特別感興趣,,生存第一需要,。不要笑我,,哈哈!

  考研成績出來,,超過了國家線幾十分。那個(gè)方向要兩個(gè),,我第三,,但是那年非碘,不面試就按分?jǐn)?shù)來排,,自然我落選了,。其實(shí)給我面試機(jī)會(huì)也不一定要我,哈哈,,自己幾斤幾兩很清楚,。

  最后調(diào)劑到另外一個(gè)學(xué)校,交錢,,咬咬牙,,交吧!現(xiàn)在仍然債臺(tái)高筑!

  進(jìn)入學(xué)校前夕為什么要把這段列出,看后就知道了,。

  單位有網(wǎng)絡(luò),,經(jīng)常上網(wǎng)查些英語資料,在那里唯獨(dú)英語沒有丟很多,。于是我就在網(wǎng)上查資料,,學(xué)什么好呢,最后確定學(xué)嵌入式把,,聽說跟硬件相對(duì)比較緊密!而我 在大學(xué)里多少學(xué)習(xí)了數(shù)字電路,,單片機(jī)等,所以多少也有所利用,,不會(huì)真的一無所知,。當(dāng)然在這之前也自學(xué)過數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)組成原理等,。C 語言在大學(xué)就學(xué)了,。哈哈這就是我的家底。

  我知道自己的基礎(chǔ)差,,于是我就拿操作系統(tǒng),,數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)、c++來看,,機(jī)關(guān)有這個(gè)好處,,空余時(shí)間多,于是平常就看書,,很痛苦,,沒有人請(qǐng)教。

  另外就上網(wǎng)到論壇上去,,我就到各個(gè)專業(yè)的技術(shù)論壇,,其實(shí)是電子論壇和嵌入式論壇。我?guī)缀鯖]有發(fā)帖,,幾乎把幾個(gè)大型的出名的論壇的帖子翻遍了,,雖然有很多重復(fù)的,我才知道嵌入式是個(gè)什么東東,。這些帖子對(duì)我以后的學(xué)習(xí)產(chǎn)生了極大的影響,。

  最關(guān)鍵兩點(diǎn):1、嵌入式是什么?

  2,、嵌入式需要哪些知識(shí)?

  知道了這兩點(diǎn),,好辦!我就開始規(guī)劃學(xué)習(xí)路線。計(jì)算機(jī)的基本理論不能丟,,于是重點(diǎn)看組成原理,,數(shù)據(jù)機(jī)構(gòu),操作系統(tǒng),、c++.同時(shí)論壇上了解到,,實(shí)時(shí)操作系 統(tǒng)ucos是一個(gè)很好的嵌入式操作系統(tǒng),對(duì)初學(xué)者很好,。于是我就買了一本書,,但是代碼在電腦里調(diào)不通,網(wǎng)上也有很多相同的問題,,我就看書,,分析代碼,一遍 不行就兩遍,,三遍,,這樣才看了入了門,才知道什么是進(jìn)程,。原來看操作系統(tǒng)書時(shí),,根本就不知道進(jìn)程是個(gè)什么東西。在這段時(shí)間掌握的東西不多,,但是,,對(duì)我以后 的影響很大,,我想起了大學(xué)時(shí)一個(gè)同學(xué)跟我說過了一句話:大學(xué)里最重要的不是學(xué)到了什么,最重要的是學(xué)會(huì)怎么學(xué)!大概是這個(gè)意思,。

  進(jìn)入我的避難所對(duì)我來講,,再次進(jìn)入大學(xué)不再是大學(xué),而是避難所,。希望這次進(jìn)入給我喘氣和養(yǎng)精蓄銳的機(jī)會(huì)和時(shí)間,。我是這樣認(rèn)為和實(shí)踐的。

  在學(xué)校我有三件事:上課,,上圖書館,,上網(wǎng)。

  對(duì)于上課,,學(xué)校開了很多課程,,非常好,,很多是名人名師講解,,于是很多同學(xué)都想學(xué),都去聽,。我也考慮過,,最后放棄。我是這樣認(rèn)為的,,時(shí)間是有限的,,什么都 想學(xué),什么都學(xué)不成,。于是我把我自己學(xué)的課進(jìn)行了分化,,一般的課程通過就行,重要的一定好好學(xué),。我希望不要什么爭(zhēng)論學(xué)習(xí)課程多和少的問題,,這僅僅是我的看 法。所以我的成績應(yīng)該是很差的,。分?jǐn)?shù)低,。好在后來的單位沒有要我的成績單,否則就慘,。

  我個(gè)人感覺是上圖書館的效率比在寢室里高多了,,這是我的經(jīng)驗(yàn)。

  上網(wǎng),,我給自己定了規(guī)矩:不玩游戲,,不灌水,少看電影!因?yàn)闀r(shí)間對(duì)我來說太少和寶貴了,,我沒有資格和資本來浪費(fèi)這些,。上網(wǎng)我就在幾個(gè)重要的專業(yè)技術(shù)網(wǎng)站上逛,,下載技術(shù)資料。

  有人會(huì)問,,您下了那么多資料,,怎么看的完和消化的了呢?

  我是這樣對(duì)待這個(gè)問題的:1、 網(wǎng)上資料比較零散,,不系統(tǒng),,但是如果把差不多的東西收集起來看就相對(duì)完整了,(嵌入式的圖書就是這兩年特別多,,特別是2004年,,簡(jiǎn)直是向外涌!2003年想買本嵌入式,特別是嵌入式linux的不多,。)

  2,、 對(duì)于像我這種入門的來說,很多看不懂,,沒關(guān)系,,反復(fù)看,我個(gè)人對(duì)學(xué)習(xí)方法的一個(gè)總結(jié)是:重復(fù)是最好的老師!

  3,、 即使有的用不上,,也可以收集以后用的上時(shí)查閱。

  但是我并非什么都要,,目前我的技術(shù)路線是嵌入式linux,,所以像wince之類基本上不收集。

  總之,,我在學(xué)校里我充分利用時(shí)間來學(xué)習(xí),,我看到一些同學(xué)整天的掛在網(wǎng)上打游戲,發(fā)些無關(guān)痛癢的帖子,,浪費(fèi)時(shí)間呀!我真的很痛心!

  學(xué)習(xí)嵌入式在這里我把它單獨(dú)列出,,文章有點(diǎn)紊亂,但是內(nèi)容希望有益,。

  1,、學(xué)習(xí)linux根據(jù)我在論壇的了解,我選擇學(xué)習(xí)嵌入式linux,,剛好我們學(xué)校也重視嵌入式linux,,從實(shí)驗(yàn)室到課程安排都是關(guān)于嵌入式linux方面,天時(shí)地利!這里我把學(xué)習(xí)linux的經(jīng)驗(yàn)和教訓(xùn)說說,。

  可以這樣說,,在論壇里說道學(xué)習(xí)linux差不多就學(xué)習(xí)linux內(nèi)核。于是我電腦里安裝了linux就開始看linux內(nèi)核方面的書了,。我記得來學(xué)校以 前就買到一本陳莉君的講linux內(nèi)核的第一版,,現(xiàn)在有第二版了,。我就開始看那本說,大家說linux內(nèi)核情景分析不錯(cuò),,我就買了上下冊(cè),,后來又買了 《深入理解linux內(nèi)核》,最后猜蛄嗣虜俚摹肚度朧較低場(chǎng)芬彩欠治鰈inux內(nèi)核代碼的,,主要講arm相關(guān)的,。

  看內(nèi)核期間是個(gè) 非常痛苦的過程,看情景分析有種在森林中找出路,,其間我組織了一些同學(xué)學(xué)習(xí)內(nèi)核,,幾乎沒有幾個(gè)能堅(jiān)持下來的。我認(rèn)為我是堅(jiān)持下來了,。情景分析在看第一,、第 二遍是幾乎沒有摸到門道,我分析有三個(gè)方面的原因:1,、自己的基礎(chǔ)差,,這是最關(guān)鍵的。2,、內(nèi)核本身很難,。3、沒有交流和高人指點(diǎn),。到了第三遍時(shí)我才摸到 門,才差不多知道個(gè)linux的大概脈絡(luò),,很多細(xì)節(jié)也是稀里糊涂,。

  學(xué)習(xí)linux總結(jié),這里聲明一下,,我指的嵌入式主要是偏向軟件的嵌入式,。學(xué)習(xí)嵌入式的重點(diǎn)和難點(diǎn)關(guān)鍵在操作系統(tǒng),如果沒有掌握操作系統(tǒng),,我認(rèn)為很難把握一個(gè)嵌入式系統(tǒng),。即使在做嵌入式開發(fā)中,作應(yīng)有層的開發(fā)幾乎可以不知道操作系統(tǒng)也可以開發(fā),,我認(rèn)為那是浮在表面的,。很難深入和提高自己的層次。聲明:一孔之見!不可深究!

  在學(xué)習(xí)linux內(nèi)核過程中犯了一個(gè)極其嚴(yán)重路線錯(cuò)誤:對(duì)linux幾乎不懂就開始學(xué)習(xí)內(nèi)核,。我個(gè)人推薦一個(gè)學(xué)習(xí)路線是:使用linux—〉linux系統(tǒng)編程開發(fā)——〉驅(qū)動(dòng)開發(fā)和分析linux內(nèi)核,。而我差不多相反,實(shí)際上你不會(huì)使用linux也可以學(xué)習(xí)內(nèi)核,,但是如果你懂了這些東西學(xué)習(xí)更有效率,。

  關(guān)于要不要學(xué)習(xí)內(nèi)核的問題,,我的回答如下:不一定。如果你是喜歡鉆研的那你進(jìn)入內(nèi)核會(huì)滿足你的欲望,。同時(shí)對(duì)你以后的嵌入式系統(tǒng)的開發(fā)有很好的影響,。如果 你想從事嵌入式linux系統(tǒng)開發(fā),最好對(duì)內(nèi)核有所了解,。如果僅僅是做應(yīng)用開發(fā)沒有必要,。我打個(gè)比喻:c、c++,、java等語言是武林中的某個(gè)武林派別 的話,,如什么拳法,什么刀法等,,那么linux 內(nèi)核應(yīng)該是一個(gè)人的內(nèi)功的反應(yīng),。

  怎么開始學(xué)linux內(nèi)核:最好有三件寶物:《深入理解linux內(nèi)核》《情景分析》和源代碼。

  先看《深》,,那主要講原理,,好像市場(chǎng)上有本講原理性并且更淺,《linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》聽說不錯(cuò),。如果沒有學(xué)習(xí)操作系統(tǒng)的,,像我這樣的,最好先看看 操作系統(tǒng)原理的書,??戳藥妆楹螅涂辞榫胺治?,最好對(duì)著《深》看,。兩本交*看,《深》是綱,,《情》是目,。最后深入代碼。

  2,、學(xué)習(xí)嵌 入式linux學(xué)習(xí)嵌入式,,我認(rèn)為兩個(gè)重點(diǎn),cpu和操作系統(tǒng),,目前市場(chǎng)是比較流行arm,,所以推薦大家學(xué)習(xí)arm.操作系統(tǒng)很多,我個(gè)人對(duì)開始學(xué)習(xí)的人,,特別不是計(jì)算機(jī)專業(yè)的,,推薦學(xué)習(xí)ucos.那是開源的,同時(shí)很小,。學(xué)習(xí)很好,。為什么選linux,,我不想講太多,網(wǎng)上這方面的太多,,但是我在工作中發(fā) 現(xiàn),,做linux的技術(shù)路線很難,在windows幾乎不會(huì)有的問題,,在linux開發(fā)中幾乎遍地陷阱,。一掉進(jìn)去劃很長時(shí)間出來,一旦解決自己又長進(jìn)了! 相對(duì)來說開發(fā)周期長,,難度大?,F(xiàn)在資料也逐漸豐富起來,難度也降低了些!

  至于怎么學(xué)習(xí),,這是他的特色地方,,必須有塊開發(fā)板,我是同學(xué)里最早買學(xué)習(xí)板的,,雖然化錢,,我認(rèn)為值。對(duì)我實(shí)習(xí)和工作產(chǎn)生了很大的影響,。

  如果沒有開發(fā)板,,那是紙上談兵。有人說,,那要1000-2000亞,,的確是,兄弟,,看長遠(yuǎn)的,,對(duì)您的職業(yè)和發(fā)展那點(diǎn)錢不算什么!有的人說我站著說話不腰 痛,好吧,,錢這東西對(duì)我影響很大,我在大學(xué)里掃廁所,,掃的不錯(cuò),,獎(jiǎng)5元/月。兄弟你有過嗎?我認(rèn)為教育投資是效益最有保障的!我實(shí)習(xí)拿3k,,很多同學(xué)拿 1-2k,,當(dāng)然比我高的也有。雖然我現(xiàn)在沒有畢業(yè),,但一家公司就簽了,。從事目前流行的高檔的消費(fèi)電子的研發(fā)。對(duì)于我兩年前一無所知的我,,應(yīng)該有質(zhì)的變化,, 我感謝學(xué)校收了我這個(gè)廢品,。當(dāng)然我也非常的努力。說這么多并不是要炫耀我什么,,實(shí)際上根本不值得炫耀,,雖然現(xiàn)在工作環(huán)境和待遇比較滿意,但是,,我發(fā)現(xiàn)我很 差,,特別是代碼能力,我希望平常大家少玩游戲,,多編程,。編程才是硬道理!3、 學(xué)習(xí)板和培訓(xùn)你可以不接受培訓(xùn),,但是不能不買開發(fā)板,。如果你想學(xué)習(xí)嵌入式一定要買塊學(xué)習(xí)板,最好買塊arm9的,,貴些也值,。可以跑高級(jí)操作系統(tǒng),。這 個(gè)不要什么品牌公司的,,一般不會(huì)出什么問題,市場(chǎng)上的板子一般是三星的2410,,基本上是抄的,。如果是做產(chǎn)品那要注意些。一般的公司一般要2000,,加 lcd要3000甚至更多,。我接觸到有的板只要1200,加lcd也就2000,,差別比較大,,我認(rèn)為學(xué)習(xí)都?jí)蚶病?/p>

  對(duì)于培訓(xùn),如果有 條件最好參加,,主要是嵌入式相對(duì)別的不同,,自己摸索很費(fèi)時(shí),如果有高手指點(diǎn)非常的好,,進(jìn)步快,。特別是認(rèn)識(shí)做這些的朋友。我接受過培訓(xùn),,認(rèn)識(shí)個(gè)朋友,。在以后 的工作中幫我很多,在這里謝謝他!我記得哈佛的一個(gè)MBA的學(xué)生這樣說,大意是:在哈佛學(xué)到什么不重要,,最重要的是這些未來各大公司的高級(jí)管理人員是我的同學(xué)!真是有遠(yuǎn)見!

  目前市場(chǎng)是培訓(xùn)比較貴,,一個(gè)星期兩三千,真正算起來也要,,那些講師待遇絕對(duì)不會(huì)低,。但是有個(gè)致命的問題是連續(xù)上課,一連幾天,,效果不佳,。我希望社會(huì)上多出些1000元左右,并且時(shí)間長些,,如一個(gè)月,,一周一到兩次課。如果沒人做,,我來做,,哈哈!

  沒有想到,一下寫了這么多,,其實(shí)還想寫的,,比如在中科院的一位老兄是怎樣學(xué)習(xí)linux內(nèi)核和看書的,真的很感動(dòng),。他的為人我很欽佩,。也想介紹毛德操的 《嵌入式系統(tǒng)》那本書,對(duì)學(xué)習(xí)arm linux的很好,,也想介紹實(shí)習(xí)和工作的東西,,太長了,耽誤大家時(shí)間,。我也不想檢查里面的錯(cuò)別字了,,很多!就寫到這里吧。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。