国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 5565|回復: 6
打印 上一主題 下一主題

2.ARM和Linux學習方法探討

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2009-8-3 23:22:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關鍵詞: linux , 探討 , 學習
該課討論ARMLinux的學法方法,大伙多發言。
沙發
 樓主| 發表于 2009-8-3 23:30:42 | 只看該作者
發一篇給電子設計信息網(www.eaw.com.cn)的“技術人生”雜志寫的文章,希望大伙能有所體會。另外,如果要轉載請注明是電子設計信息網的“技術人生”雜志,謝謝!

如何快速有效的掌握ARM和Linux
如何才能少走彎路,即“快速”又“有效”的掌握ARM Linux?這是大多數初學者都會有的疑問,阿南覺得這是一個非常好的問題,學習者就應當經常思考自己是否處在最有效的方式下學習。所以《ARM Linux入門與實踐》一書也主要以阿南的ARM和Linux自學經歷為線索、基礎,試圖希望自學朋友們能夠從中體會出規律、方法和道理,再根據自身的實踐情況總結出適合自己的一套快速、有效的掌握ARM Linux的學習步驟和方法。此次有幸在《技術人生》里和朋友們再次交流這個問題,阿南感到高興!希望能夠給更多的朋友以借鑒,也歡迎朋友們給阿南來信(ccn422@hotmail.com)進一步交流學習共同提高。
一.明確學習目標和目的
隨著工作的深入,需要學習的知識、技術也越來越多,這讓阿南不得不在學習時特別強調目標和目的性。比如在ARM的學習中,不需要學習太多的匯編知識,因為一般的ARM應用幾乎不親自用匯編去寫程序,只需要能夠理解啟動代碼和少量用匯編實現的底層庫函數。在Linux的學習中,不需要去研究大量的內核源代碼,只需學習常用的Linux命令、目錄結構等,再以應用編程和Linux驅動編程為主。如果工作上需要GUI和網絡編程,那么也可以有選擇的學習相應的部分知識�?傊龅剑号c目標較遠的“不學”,或暫時不學,因為即使學了也很快會忘記,但卻浪費了原本就緊張的時間。阿南認為之所以有天才或智者,主要取決于它善于思考,尋找方法和捷徑,善于判斷重點和次要,善于花時間扎扎實實的做好必須要做的工作,學習必須要學習的知識,而不拘泥于次要或不相關的細節上。
二.硬件是基礎,但它沒有想象中難
通常可以將整個嵌入式系統分成硬件、底層驅動和應用程序三個部分,而學習者除了具有不同程度的單片機基礎的電子類專業外,還有計算機軟件專業的朋友。據阿南觀察,無論是電子還是計算機專業都對底層驅動最感興趣,都想將來從事基于Linux下的驅動開發。底層驅動位于硬件和應用程序之間,是橋梁,它不僅要求工程師能夠理解硬件,也要求有一定的應用編程能力。其中硬件是基礎,如果不想只從事純應用(和硬件沒有任何關系)編程,那必須要求掌握一定的ARM系統與接口等硬件技術,具有分析系統原理和調試解決問題的能力。而事實上,初學者往往忽略了硬件,忽略了整個系統的原理構成。電子類專業的學習者急于去學習軟件,急于在開發板上運行程序,有些朋友甚至將開發板自帶的所有程序編譯、運行一次就認為已經學完、掌握ARM了。計算機專業的朋友更是害怕硬件,只學軟件。阿南覺得這種學習方式是不好的,應該重視硬件,從硬件的原理開始掌握。其實硬件并沒有初學者想像中難,ARM處理器原廠或第三方也都會提供完整的硬件參考設計,都是標準化電路及接口,學習者只要突破一種就可舉一反三到多種ARM處理器,就可以幫助學習者在學習軟件時消除硬件上的模糊。如果計算機專業的朋友確實沒有一點的硬件基礎,可以找本模擬、數字的基礎書查閱,也可參考一些嵌入式硬件設計的書籍和直接查看芯片的數據手冊。
三.在源碼和實驗中求答案,培養獨立解決問題的思維能力
什么最能體現一個工程師的經驗水平?什么樣的能力最能體現一個工程師在團隊中的價值?阿南認為是解決問題的能力,只有解決別人都不能解決的問題才能真正體現您在團隊中的價值和不可或缺的重要性。如果說編程的速度,您可能會比一個人快,但你絕對不會比兩個人甚至整個團隊加起來還要快,但您完全可以解決其它人甚至一個團隊都無法解決的問題。而解決問題的能力如何去培養呢?它需要在初學時就養成一種獨立思考解決問題的習慣,需要在實踐中不斷的摸索、總結經驗和思維方式,也是一個工程師內功的表現。而目前很多學習者在遇到問題時就不知所措,急于請教別人,甚至在BBS發出“跪求”,把“男兒膝下有黃金”忘的一干二凈,這種習慣是不可取的,也培養不出解決問題的能力,更達不到有效掌握一種技術的真締。在ARM應用中通常分硬件和軟件問題,硬件通常由電源、處理器配置以及接口等問題,檢查的順序應該是電源、ARM內核再到外圍接口,ARM硬件仿真器在硬件調試中將發揮重要的作用,有時也需要示波器等常用工具,甚至需要借用測試代碼。軟件的問題更多的是需要分析源代碼,有時也必須通過仿真調試。
四.以單片機的思維,重點突出ARM的不同之處
大部分的ARM學習者都有一定程度的單片機基礎,此時完全可以將ARM看作是超級單片機,以單片機的思維方式去理解,重點突出ARM系統的不同且關鍵之處,加以學習。在硬件上,ARM通常運行更高的主頻,通過總線擴展大容易的Flash和SDRAM(甚至DDR),具有更多的管腳及采用高密度的BGA封裝,以及超強的外設等,因此ARM系統往往需要更多層的PCB,且對器件的布局,信號走線等都有一定的要求。所以在ARM的硬件設計中要特別注意處理器的一些關鍵信號引腳的處理,一定要仔細閱讀處理器用戶手冊上對各信號管腳的描述,有些引腳在不用時必須接固定的高或低電平,DDR的信號線需要等長處理等,否則系統將不能正常運行。由于目前單片機基本上是將Flash和RAM內置,所以朋友們可能都沒有像最早的8031那樣擴展過外部存儲器(可以重新復習一下單片機的基礎),此時應該重點理解ARM的總線擴展方式,理解它是如何外擴Flash、SDRAM(或DDR)及其它的總線設備等,它們的存儲空間又是如何分配等,此時參考數據手冊的內存映射圖和一些SDRAM、Flash等的基本原理、尋址方式等都大有幫助。在軟件,ARM如果不跑操作系統,那么它和單片機也是非常類似的,此時朋友們只需熟悉ARM的開發環境、工具的使用。然后將重點放在ARM處理器的啟動過程和中斷處理過程上,阿南認為如果沒能理解這兩個過程,那么就不算掌握ARM�。�!由于官方或第三方都會提供測試程序,所以我們也不需要親自去實現,但必須把它分析透徹,因為它太重要了,直接關系著整個系統能否正常運行。ARM處理器通常都會外擴大容量的NAND Flash,支持NAND Flash的直接引導啟動,而這是單片機所沒有的,因此朋友們也需要重點理解NAND Flash的應用。在使用單片機時,我們習慣從無到有開始寫程序,而在使用ARM時我們要懂得利用資源,直接在官方提供的DEMO中提取代碼。
五.PC機的Linux技術同樣適用于ARM Linux
阿南發現很多朋友存在一個誤區:學習嵌入式Linux必須在開發板上才能進行,而不能好好利用PC機的強大資源或者忽略了Linux的基礎。其實PC機的Linux編程同樣適用于ARM Linux,當您有了PC機的Linux基礎后,只需重點學習ARM Linux的開發方式、工具使用,及嵌入式硬件資源的局限性所帶來一些需要注意的地方。阿南覺得ARM Linux基本上就等于ARM的前后臺應用和通用的Linux技術的結合。因此完整的ARM和Linux技術的學習順序應該為ARM的硬件,ARM前后臺應用,PC機Linux的命令操作,PC機Linux應用編程,PC機Linux的驅動技術,PC機的GUI和網絡編程,再到基于ARM Linux特有的開發技術。當然朋友們也可以有選擇的進行學習,比如不需要GUI或不需要網絡編程,不想從事ARM硬件等。
六.不實踐永遠掌握不了ARM,工具決定效率
嵌入式是一門實踐性很強的技術,如果只想看書,而不去實踐,那么阿南建議請不要浪費時間。多看書也無用(現在書店的嵌入式書籍太多),要有選擇性、針對性的看�?磿哪康目梢愿爬槔碚摶A、應用指導和給解決問題提供思路3種。理論基礎需要系統的學習,建議選擇一些國外的經典教材(如《UNIX環境高級編程》或《GNU/Linux編程指南》等),但對將來的應用不相關的也可以略去或泛讀�;A的學習也離不開實踐,需要實踐操作來進一步的驗證理解。應用指導一般都是在實踐應用到時再去學習,邊看邊實踐,如處理器的某個外設使用,需要查看處理器的用戶指南或規格書的相關部分。如ARM Linux開發環境、工具的使用,可以參考具體的資料,也可以作一些筆記給以后應用時直接參考。當出現無法解決的難題而沒有頭緒時,此時可能需要上網收索相關的資料,或大量的查找相關的技術書籍,當有思路后就要通過實踐測試、實驗去驗證解決問題�?傊碚撌菫閷嵺`服務的,脫離了實踐,脫離了實際應用,看書就等于浪費時間�。�!開發工具在實踐中起著重要作用,不僅決定開發效率,也提高學習的效率。因此學習者需要一個開發學習板(或實踐產品及目標板),朋友們如果資金允許,也請盡量配置一個硬件仿真器,它不僅給仿真調試帶來了便利,而有些問題就必須要通過仿真器查看CPU內部寄存器等狀態來查找解決。

阿南
2008-11-24
板凳
發表于 2009-8-4 00:24:00 | 只看該作者
隨便一個夠啃半幾年的呵呵,我感覺吧,給學員一個大概框架~首先是一個整體的把握~
至于個人就看自己興趣和愛好,就向那個方向發展~
地板
發表于 2009-8-5 22:56:03 | 只看該作者
俺的個人經歷是:要學好ARM (含普通的MCU)與LINUX,首先得購買開發學習板,其次就是要有兩臺電腦,一臺用作主機編譯調試開發板的環境,另一臺用運行在linux下的mincom 串口輸出與調試命令輸入,調試時很方便。
地下室
發表于 2009-8-5 23:49:07 | 只看該作者
回復4樓宇宙飛船
這兩臺電腦的配置不需要很高吧?用舊的,比較慢的筆記本是否也可以?
6
發表于 2009-8-6 09:07:18 | 只看該作者
第一件事,就是學會pc版本的linux,linux的跨平臺特性非常好。
7
 樓主| 發表于 2009-8-6 09:53:03 | 只看該作者
是的,在PC機上學習linux還是非常方便的
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费三级大片 | 精品资源在线 | 八戒八戒影视免费观看动漫 | aaa在线视频 | 国产精品合集一区二区三区 | 插插插操操操 | 精品国产欧美一区二区最新 | 国产91亚洲精品 | 欧美午夜在线观看 | 五月婷婷婷婷 | 成人免费看黄页网址大全 | 国产在线极品 | 久久精品免费观看久久 | 手机看片国产日韩 | 韩国特级一级毛片免费网站 | 在线岛国片 | 在线观看高清免费理论片 | 亚洲激情视频在线观看 | 国产精品视频一区牛牛视频 | 四虎免费观看 | 国产成人精品一区二三区在线观看 | 一区国产传媒国产精品 | 国产性片在线观看 | 国产对白精品刺激一区二区 | 黄色在线观看视频网站 | 国内欧美一区二区三区 | 两个人免费视频看完整 | 亚洲精品区 | 四虎色影院 | 欧洲成人免费高清视频 | 女人张开腿让男人桶免费最新 | 国产福利在线观看永久免费 | 睡美人免费观看完整版韩国 | 在线国产欧美 | 欧美天天射 | 日本高清不卡在线 | 五月天婷婷在线播放 | 美女视频黄的免费看网站 | 欧美一区二区三 | 亚洲一级黄色片 | 91精品网站 |