高手(shou)全面(mian)解(jie)析嵌(qian)入式linux怎么學
時間:2018-06-04 來源:未知
嵌(qian)入(ru)式(shi)linux學(xue)習是很多(duo)人最頭(tou)疼的事(shi)了(le),掌握不了(le)方法,學(xue)習總是很迷茫,那么(me)今天(tian)華清遠(yuan)見的大神高(gao)手就告訴你(ni):嵌(qian)入(ru)式(shi)linux學(xue)習經(jing)驗,方法及步驟,對(dui)學(xue)習嵌(qian)入(ru)式(shi)linux是很有(you)用的。
1、嵌入式linux學習,剛開(kai)始的時候,你要會用,要熟悉,linux系統(tong),會使用這(zhe)是最基(ji)本的。
2、熟悉(xi)嵌入式(shi)linux系統了(le),那接下來,就是linux開(kai)發的具體學習了(le),首(shou)先你要知道嵌入式(shi)linux離不開(kai)編程基礎(chu),所以你需要熟悉(xi)C語言,c++等(deng)
3、寫(xie)完(wan)程(cheng)序了(le)(le)發現不(bu)就是(shi)一(yi)個很普通的(de)(de)文(wen)件(jian)嗎,怎么(me)能(neng)像別人(ren)寫(xie)的(de)(de)程(cheng)序一(yi)樣運行起(qi)來呢?這時我(wo)們需要知道(dao)如何編譯(yi)一(yi)個程(cheng)序,需要知道(dao)編譯(yi)器及(ji)一(yi)些其他工具的(de)(de)使用,比如GCC,在開發的(de)(de)過程(cheng)中我(wo)們為(wei)了(le)(le)提供工作效率(lv)還(huan)會用到Make,Shell等(deng),為(wei)了(le)(le)能(neng)夠很好的(de)(de)管(guan)理(li)我(wo)們代碼(ma)的(de)(de)不(bu)同版本,我(wo)們還(huan)需要知道(dao)什么(me)是(shi)SVC,CVS,subversion,git等(deng)。
4、當我們再往深(shen)了(le)學的時候(hou),就要(yao)考(kao)慮(lv)效(xiao)率問(wen)題了(le),這時候(hou),你就需要(yao)接觸(chu)數據(ju)結構,多(duo)線程(cheng),多(duo)進程(cheng)了(le),這樣會(hui)讓你的效(xiao)率更加提高。
5、學到這(zhe)里,你就會在(zai)學習的時候看到Cortex-A15 、四核 、ARM等等字(zi)眼,什么(me)是ARM,什么(me)是Cortex-A15,我們(men)需(xu)要(yao)進一步(bu)的了解。
6、花了(le)很(hen)(hen)長(chang)時(shi)(shi)間系統做(zuo)好了(le),發現板子上很(hen)(hen)多(duo)(duo)的(de)什(shen)么(me)不能用,怎么(me)辦(ban)呢?這(zhe)時(shi)(shi)我(wo)(wo)們(men)需(xu)(xu)要(yao)(yao)寫一些驅(qu)動(dong)(dong)(dong)(dong)來驅(qu)動(dong)(dong)(dong)(dong)這(zhe)些設(she)備(bei),這(zhe)時(shi)(shi)我(wo)(wo)們(men)需(xu)(xu)要(yao)(yao)知(zhi)道,什(shen)么(me)是字符設(she)備(bei)驅(qu)動(dong)(dong)(dong)(dong)、塊設(she)備(bei)驅(qu)動(dong)(dong)(dong)(dong)、網絡設(she)備(bei)驅(qu)動(dong)(dong)(dong)(dong),為(wei)了(le)更好的(de)寫驅(qu)動(dong)(dong)(dong)(dong)我(wo)(wo)們(men)需(xu)(xu)要(yao)(yao)了(le)解更多(duo)(duo)的(de)硬(ying)件相(xiang)關(guan)的(de)東西,我(wo)(wo)們(men)需(xu)(xu)要(yao)(yao)看懂(dong)芯片手冊,我(wo)(wo)們(men)需(xu)(xu)要(yao)(yao)看懂(dong)原理圖,只有我(wo)(wo)們(men)懂(dong)我(wo)(wo)們(men)的(de)設(she)備(bei),才能更好的(de)驅(qu)動(dong)(dong)(dong)(dong)它。等等,這(zhe)里就列舉(ju)更多(duo)(duo)的(de)內容了(le),因為(wei)還有很(hen)(hen)多(duo)(duo)。
上面只(zhi)是一些簡單的嵌入式(shi)linux的學習經驗,后(hou)面告(gao)訴你嵌入式(shi)linux的學習方(fang)法步驟。
嵌入式linux方法步(bu)驟:
關于命令
當然是(shi)知道(dao)的(de)越多(duo)(duo)越好,用的(de)越熟越好,但別只為了(le)練命令而(er)練命令:搜linux常(chang)用命令,得到一(yi)堆結果(guo),對(dui)著(zhu)敲!枯燥!效率低!易忘!我的(de)建議(yi)是(shi)從使用中學(xue)習,比如你(ni)(ni)要(yao)配(pei)samba,你(ni)(ni)就要(yao)安裝samba:yum ,aptget或make install,你(ni)(ni)會學(xue)到安裝命令及用法,關(guan)防火(huo)墻,你(ni)(ni)要(yao)學(xue)到sudo service iptables stop 如果(guo)你(ni)(ni)有心(xin),你(ni)(ni)肯定不(bu)只想知道(dao)這句話(hua)是(shi)關(guan)防火(huo)墻,你(ni)(ni)還(huan)想知道(dao)每(mei)個(ge)單詞的(de)意思(si)及用法linux可以(yi)做很多(duo)(duo)東西,你(ni)(ni)從中可以(yi)學(xue)很多(duo)(duo)東西!主攻(gong)書籍:linux內(nei)核完全剖析、unix環境高級編程、深入理解linux內(nei)核、情景分析和源代。
2:系統編程
不(bu)建議直接整APUE,因為如(ru)(ru)果基(ji)礎不(bu)好(hao)很(hen)可(ke)(ke)能有些地方(fang)看(kan)(kan)不(bu)懂, linux系統(tong)編(bian)(bian)程(cheng)其(qi)實就是(shi)(shi)(shi)函數(shu)調用,就是(shi)(shi)(shi)io 進(jin)程(cheng)線程(cheng),ipc(進(jin)程(cheng)通信),網絡編(bian)(bian)程(cheng),可(ke)(ke)能還會有UI。快速了(le)解Linux編(bian)(bian)程(cheng)是(shi)(shi)(shi)什么東西,快速知道如(ru)(ru)何寫(xie)一個簡單的(de)程(cheng)序,如(ru)(ru)文件(jian)拷(kao)貝程(cheng)序(想(xiang)想(xiang)是(shi)(shi)(shi)不(bu)是(shi)(shi)(shi)很(hen)多時候你整了(le)一大堆理論,卻還是(shi)(shi)(shi)寫(xie)不(bu)出程(cheng)序來(lai),是(shi)(shi)(shi)不(bu)是(shi)(shi)(shi)清楚知道函數(shu)的(de)功能,卻不(bu)知道怎么調用,xxx從入門(men)到(dao)精(jing)通系列正好(hao)解決這個問題(ti),它儼(yan)然就是(shi)(shi)(shi)帶實例(li)的(de)中(zhong)文man手冊,講(jiang)解參數(shu),講(jiang)返回(hui),然后給個例(li)程(cheng)…)。可(ke)(ke)以(yi)找(zhao)一家大書(shu)店,去計算機分類(lei)中(zhong)找(zhao)到(dao)這方(fang)面的(de)書(shu),可(ke)(ke)以(yi)在(zai)書(shu)店里看(kan)(kan),也可(ke)(ke)以(yi)買下(xia)來(lai)。快速的(de)了(le)解linux編(bian)(bian)程(cheng)是(shi)(shi)(shi)何物。然后再(zai)看(kan)(kan)apue 這類(lei)書(shu)會很(hen)好(hao)上手。另外(wai),經常試寫(xie)下(xia)系統(tong)命令:ls cd cp 等(deng),經常看(kan)(kan)man。
3:驅動
驅(qu)(qu)動是個(ge)(ge)很深奧的(de)東西,學驅(qu)(qu)動不要只(zhi)限于(yu)驅(qu)(qu)動框架,一定要知道(dao)它(ta)每(mei)個(ge)(ge)功(gong)能的(de)實(shi)現(xian)原理,比如(ru)你給驅(qu)(qu)動添(tian)加(jia)了(le)(le)poll功(gong)能,不要只(zhi)知道(dao)這樣寫(xie)就(jiu)可以(yi)實(shi)現(xian)poll,以(yi)后按這個(ge)(ge)寫(xie)就(jiu)可以(yi)了(le)(le),你還要知道(dao)它(ta)的(de)原理!!就(jiu)是到內核(he)里看(kan)它(ta)是怎(zen)樣一步步調用過(guo)來(lai)的(de),中間經歷了(le)(le)什么(me)?!
學(xue)驅動要多(duo)看(kan)(kan)內核原碼!了解內核子系統!不要說你看(kan)(kan)不懂,一(yi)開(kai)始誰也看(kan)(kan)不懂。必須有塊開(kai)發板(arm9及以上),有條件可(ke)參加培(pei)訓(進步(bu)快,能認(ren)識些(xie)朋(peng)友)。主攻書籍:《嵌入式(shi)Linux應用程(cheng)序開(kai)發標(biao)準(zhun)教(jiao)程(cheng)》等
4:vim
還是(shi)那句話,操作的越(yue)眼(yan)花繚亂越(yue)好!請自(zi)行Google它的配置放法!這里提幾個常用插件:ctags, cscope, clang, wm, 還有很(hen)多!請自(zi)行Google!別用百(bai)度!! vim是(shi)個神器!功能上(shang)完(wan)全不輸source insight等(deng)任何(he)IDE!
還有一點,就是上面也說了,C語言是必須要學習的,你可以借鑒C語言學(xue)習視頻來學習,還是不(bu)錯的。
嵌入式linux學(xue)習(xi)要(yao)實踐(jian)和理論相結合來(lai)學(xue)習(xi),這樣效果還是(shi)很好的(de)

