arm學(xué)習流程
首先仔細閱讀開發(fā)板使用手冊,依據(jù)手冊進行環(huán)境的搭建和實驗。 (所在目錄 光盤TQ2440_CDTQ2440開發(fā)板配套教材集TQ2440開發(fā)板使用手冊V2.5_20100611.pdf)
本文引用地址:http://m.butianyuan.cn/article/201611/318245.htm開發(fā)板使用手冊里對板子的軟硬件進行了概要的介紹,對開發(fā)環(huán)境的搭建,操作系統(tǒng)影像的燒錄,應(yīng)用程序的燒寫仿真等都做了詳細的描述。這些都是ARM初學(xué)者學(xué)習ARM開發(fā)的第一步,也是十分重要的一步。所以手冊一定要好好閱讀,只有對板子了解清楚了,對開發(fā)環(huán)境熟悉了以后的學(xué)習才能順利進行。
二、裸奔三部曲
不管是搞上層還是底層,對硬件的底層控制有一定的了解都是十分有必要的。如果準備往底層、 驅(qū)動方面發(fā)展,那更是應(yīng)該深入研究裸奔的程序,因為驅(qū)動程序是直接跟硬件打交道的,驅(qū)動程序的主要代碼是實現(xiàn)硬件控制,然后跟操作系統(tǒng)有個接口就可以了。對于將來想往上層應(yīng)用發(fā)展不想做驅(qū)動的用戶,對這部分可簡要的看一下,了解個大概,不要浪費太多的時間。
三、操作系統(tǒng)移植
對于這部分,也是建議大家簡單看下,不要過深的研究(實在有興趣的除外)。操作系統(tǒng)的移植一般只在開發(fā)的初級階段,當你到一個公司的時候,他們的嵌入式操作系統(tǒng)都是移植好的,不需要移植。你最有可能的是修改驅(qū)動,或做上層應(yīng)用,所以嵌入式真正的要學(xué)的是驅(qū)動和應(yīng)用程序的編寫。多下功夫在驅(qū)動或操作系統(tǒng)下的應(yīng)用程序編寫,對將來的工作幫助會更大。
四、WINCE 還是 LINUX
很多用戶會問,到底選擇哪個,其實任何一個都可以的。關(guān)鍵是要學(xué)習深入和透徹。WINCE編程,類似VC很方便和快捷,但是不開源,其應(yīng)用受到一定的限制。linux編程會麻煩一些,整天跟命令打交道。怎么選擇看自己的愛好了,VC學(xué)的得好的,可以選WICE會比較容易上手。linux 學(xué)習難度會大一些,并且總是和命令打交道有的人可能不習慣,但是應(yīng)用會廣些??傊还苓x哪種,
只要認真的學(xué)習,學(xué)好了,都是前途一片光明的。
五、驅(qū)動還是上層應(yīng)用
驅(qū)動靠近底層硬件,喜歡擺弄硬件,對硬件了解多的人建議選擇這個,有點枯燥,一天到晚做的工作就是,讀數(shù)據(jù),拷貝數(shù)據(jù),送給應(yīng)用程序,怪無聊的,不過這方面的應(yīng)用真的很多,想想吧現(xiàn)在那個公司做產(chǎn)品不是首先從底層開始的。上層應(yīng)用有趣些,實現(xiàn)的都是“功能”,還能做出漂亮的界面,不過牽涉的知識也多,因為上層應(yīng)用,需要好多方面才能工作,比如網(wǎng)絡(luò),數(shù)據(jù)庫,圖像
處理,這種文件,那種文件,這協(xié)議,那格式的,有時候搞的頭都痛,是比驅(qū)動要復(fù)雜一些的。不過只要功夫深,鐵杵都能磨成針,滴水還能穿石呢,等你學(xué)了幾年以后,你再回過頭來看看,這些東西不算什么,不算什么...
六、正真的開始
這里要說的是很重要的一點。也是好多買板子的用戶的一個誤區(qū),就是以為建了環(huán)境,跑了裸奔,弄了幾下linux,看了兩個應(yīng)用程序,學(xué)習就算結(jié)束了。其實大錯特錯了,這時候,學(xué)習才真正剛剛開始。
因為前邊你的工作其實都是在準備,熟悉板子,建立開發(fā)環(huán)境,熟悉開發(fā)環(huán)境等,等這些都弄好了之后,如果你就跑了幾個現(xiàn)成寫好的程序,一看沒問題就OK了,那其實你什么也沒有學(xué)到。因為正真有用的東西是,你針對一個應(yīng)用用你所學(xué)的知識能找到一個合適的解決辦法,將來你工作的時候就是根據(jù)企業(yè)的需要來想辦法解決問題的,到那時候根本沒有現(xiàn)在寫好的代碼的。所以,學(xué)到這個階段是一定要自己動手,做一個真實的應(yīng)用出來,把嵌入式開發(fā)的流程走一遍,從硬件的分析,相關(guān)資料的搜索,閱讀,程序的組織,調(diào)試,修改BUG等等,中間你會遇到很多很多的問題,當你把這些問題都一一解決,真正做好一個應(yīng)用的時候,你的水平才算真正上了一個臺階。這個時候,你就算入門了,因為你會開發(fā)了。 但是你做應(yīng)用會相當慢,因為中間遇到的很多問題你解決起來會很慢,沒有多少經(jīng)驗可以參考,好多知識還不懂或不清楚,這可能會導(dǎo)致你遇到的問題都是新問題,所以有時候解決一個問題都要好久。怎么辦呢?答案只有一個,繼續(xù)做應(yīng)用,到你做了很多以后,好多東西都明白了,再弄起來就快多了,這時候你就是熟練了,升了一個級別。然后繼續(xù)做應(yīng)用…..所以學(xué)習的路,很長,大家不要止步。這樣說也許大家會覺得很累,總是學(xué)習學(xué)到什么時候呢,其實不然,很有趣的,因為當你發(fā)現(xiàn)你由一個階段到另一個階段時候,你那種成就感,一下子覺得自己不再是菜鳥了,心里會充實的多,并且最重要的一點,拿的薪水由一個階段到另一個階段跳變的時候也是驚心動魄的,一下子就有可能翻番的 :) 。
你想如果你在學(xué)校時候就可以做個應(yīng)用,那你直接就是上升了一個階段了,心里的底氣也足了,因為面視的人往往會問,我想讓做個什么什么應(yīng)用,你覺得你能做嗎,如果你做過一個完整的應(yīng)用,熟悉流程,你就會信心十足的回答他,你能。這樣找工作好找,并且你比別人占得了一個先機,等他們弄了一段時間到你的水平的時候,你就又升級了,感覺又要上一個臺階,薪水也要跟著…..
這里啰嗦的有點多,主要是想大家學(xué)習能深入進去,不要淺嘗輒止,只有這樣才能真正學(xué)到有用的東西,才能使這塊開發(fā)板買的有價值。
關(guān)于要做點什么應(yīng)用,建議從簡單的開始,比如從控制個燈開始,控制蜂鳴器,控制一些串口應(yīng)用的器件,比如溫度傳感器,紅外傳感器,AD芯片等,然后再到稍微復(fù)雜點的,步進電機,射頻讀卡器,然后再到更復(fù)雜的,無線網(wǎng)卡,GPS定位模塊等等。。??傊銜l(fā)現(xiàn),每做好一個東西,你自己就會覺得你的水平上升了一大截。
七、C語言到底有多重要
C語言到底有多重要呢,答案是非常非常的重要。這里我說一下我的親身經(jīng)歷大家就明白了,我做軟件工作這么多年的經(jīng)歷,只要有面視,幾乎每次都有C語言的試題給你做。為什么呢?這就是因為企業(yè)都知道對于做軟件的來說,C語言就是一個基礎(chǔ),基礎(chǔ)不行,其他一切都是空談。就像一個人能干這個,能干那個,但是他路都走不穩(wěn),誰會愿意用他呢? 所以建議大家在學(xué)校的時候,把C語言的基礎(chǔ)一定學(xué)扎實。Linux的開發(fā)大多是C,或C++,WINCE類似VC ,對于這些C都是基礎(chǔ),如果C學(xué)不好將來再弄這些,你會覺得舉步維艱。
八、總結(jié):
好多用戶買了板子不知道從那兒下手,或是不知道學(xué)習是怎么一個流程,感到很迷忙,所以我才寫了這個文檔給大家。都是自己的一點拙見,中間也有可能有說的不對的地方,歡迎大家來批評指正,或是一起共同探討吧。
評論