 嵌入式linux系統讓你從入門到(dao)精(jing)通,新(xin)手必備
							時間:2018-06-08      來源:未知(zhi)
							嵌入式linux系統讓你從入門到(dao)精(jing)通,新(xin)手必備
							時間:2018-06-08      來源:未知(zhi) 
							對于新手來(lai)說,嵌入式(shi)linux系(xi)統(tong)應該如(ru)何更快更好(hao)的學(xue)(xue)習(xi),首先可以告訴你:你要(yao)有C語言基(ji)礎(chu),看(kan)你走哪方(fang)面(mian),看(kan)是底層系(xi)統(tong)還是應用層開發。要(yao)知道他們(men)都各自(zi)包括什(shen)么,這些(xie)都是你學(xue)(xue)習(xi)嵌入式(shi)linux之(zhi)前(qian)需要(yao)好(hao)好(hao)思考(kao)的。你可以看(kan)看(kan)嵌入式(shi)學(xue)(xue)習(xi)路線來(lai)大(da)概的了解一下(xia)。那下(xia)面(mian)我(wo)們(men)就來(lai)在嵌入式(shi)領域權威的嵌入式(shi)linux大(da)神(shen)怎么說:
在嵌入式(shi)linux系統學習之前,C語言,匯編基礎是必(bi)須要有的,當然程(cheng)度越(yue)熟練越(yue)好,但是至(zhi)少可以自己寫(xie)出來(lai)程(cheng)序。
學(xue)C語言(yan)唯一(yi)的方法是多寫(xie)程(cheng)序多練習(xi),編譯出錯沒(mei)(mei)關系,自己(ji)去(qu)解決;執(zhi)行出錯沒(mei)(mei)關系,自己(ji)去(qu)分析。之前學(xue)習(xi)C語言(yan)使用vc來學(xue)習(xi)的,經常練習(xi)一(yi)些例子來加強(qiang)自己(ji)的C語言(yan)能力。記得勤鍛煉是必要的。
首先我們要明白你的目的是什么,大概來說所謂嵌入式(shi)Linux可以分為兩部分:底層系統、應用開(kai)發(fa)。
如果你是(shi)(shi)想做(zuo)應(ying)用(yong)(yong)(yong)開發(fa),那(nei)么(me)你去(qu)(qu)把(ba)C語言、數(shu)據結構、JAVA什(shen)么(me)的(de)(de)(de)學(xue)(xue)好吧。嵌(qian)入(ru)式應(ying)用(yong)(yong)(yong)開發(fa)和PC上(shang)的(de)(de)(de)應(ying)用(yong)(yong)(yong)開發(fa)并沒有(you)什(shen)么(me)特別要(yao)(yao)注(zhu)意的(de)(de)(de)。也(ye)許你說在嵌(qian)入(ru)式上(shang)要(yao)(yao)做(zuo)些(xie)優(you)化(hua),是(shi)(shi)的(de)(de)(de),要(yao)(yao)優(you)化(hua),但是(shi)(shi)未經優(you)化(hua)的(de)(de)(de)程序(xu)和PC上(shang)的(de)(de)(de)程序(xu)開發(fa)沒什(shen)么(me)差別。另外,當你有(you)能力去(qu)(qu)優(you)化(hua)時(shi)(shi)(shi),你已(yi)經不(bu)用(yong)(yong)(yong)來問這個問題了。具體到某個例子,比(bi)如說開發(fa)界面(mian),在PC上(shang)我(wo)們(men)用(yong)(yong)(yong)VC;在嵌(qian)入(ru)式Linux里也(ye)許我(wo)們(men)用(yong)(yong)(yong)QT也(ye)許用(yong)(yong)(yong)Android,這個時(shi)(shi)(shi)候(hou)你應(ying)該(gai)去(qu)(qu)學(xue)(xue)學(xue)(xue)QT、Android的(de)(de)(de)編(bian)程。但是(shi)(shi)基礎還是(shi)(shi)C或(huo)JAVA,在此基礎上(shang)去(qu)(qu)熟(shu)悉它(ta)們(men)的(de)(de)(de)接(jie)口。你學(xue)(xue)過VC的(de)(de)(de)話,也(ye)是(shi)(shi)要(yao)(yao)花時(shi)(shi)(shi)間去(qu)(qu)了解(jie)那(nei)些(xie)類、控件(jian)的(de)(de)(de)。
如(ru)果你(ni)(ni)是對底層系(xi)統(tong)感興趣,那(nei)么你(ni)(ni)就要(yao)進行如(ru)下(xia)的學習:底層學習有驅動(dong)和(he)應(ying)用,這又該怎么選擇呢?
1.我們說(shuo)的(de)驅動,其實并不局限于硬件的(de)操(cao)作,還有(you)操(cao)作系統的(de)原理、進程的(de)休眠喚醒調度(du)等概念。
2.做應用門檻低(di),特別是(shi)現在的ANDROID,純JAVA。做應用的發展路徑個(ge)人(ren)認為就(jiu)是(shi)業務純熟。
比如在通信行業、IPTV行業、手機行業,你了解(jie)行業的需求。所以,當領導的人(ren),多是做應用的。
3.做(zuo)(zuo)驅(qu)(qu)動,其實我不想稱為(wei)“做(zuo)(zuo)驅(qu)(qu)動”,而(er)是(shi)(shi)想稱為(wei)“做(zuo)(zuo)底層(ceng)系(xi)統”,做(zuo)(zuo)好了這是(shi)(shi)通殺(sha)各行業。
4.其實(shi),做底層(ceng)還是做應用,之(zhi)間并沒有(you)一個界線,有(you)底層(ceng)經驗,再去做應用,你會感覺很踏(ta)實(shi)。
上面(mian)是一些(xie)我對嵌入式(shi)linux系(xi)統學習的一些(xie)社會經驗,下面(mian)就是重點啦。嵌入式(shi)Linux底層系(xi)統包含哪些(xie)東西?不要急,舉一個例子你就知道了(le)。
1.電腦一開機,那些界面是(shi)誰(shui)顯示(shi)的(de)?是(shi)BIOS,它(ta)(ta)做什么?一些自檢,然后(hou)從硬盤(pan)上讀(du)入(ru)windows,并啟動它(ta)(ta)。
類似的(de),這個BIOS對應于嵌入式Linux里(li)的(de)bootloader。這個bootloader要去Flash上讀入Linux內核,并啟動它。
2.啟動windows的目(mu)的是(shi)什(shen)么?當然是(shi)上(shang)(shang)網聊天什(shen)么的了。這些(xie)上(shang)(shang)網、聊天工具在(zai)哪?
在C盤、D盤上。所以(yi), windows要(yao)先識別出C盤、D盤。在Linux下(xia)我們稱為根(gen)文件系統。
3. windows能識別出C盤、D盤,那么肯定能讀寫硬盤才行。這涉及(ji)的東西稱為驅動程序。當然不僅(jin)僅(jin)是硬盤,還有(you)網卡、USB等(deng)等(deng)。
嵌入式Linux能從Flash上讀(du)出并執行(xing)應用程序,肯定也得有Flash的驅(qu)動程序啊,當然也不僅僅是Flash。
對于嵌入(ru)式(shi)LINUX里含有bootloader,內(nei)核,驅動程序、根文件系統(tong)這4大塊。
bootloader這一個(ge)裸板程(cheng)序,其(qi)實有(you)3部(bu)分要(yao)點:
1.對硬件的操作(zuo)
2.對ARM體系處理器的了解
3.程序的基本(ben)概念:重定位、棧、代碼段(duan)數據段(duan)BSS段(duan)什(shen)么的。
對硬(ying)件的操(cao)作,需要看原理圖、芯片手冊(ce)。
二、內核:
想速(su)成的(de)(de)人,先跨(kua)過內核(he)的(de)(de)學習(xi),直接(jie)學習(xi)怎么寫驅動。
想成為高(gao)手(shou),內核(he)必須深刻了(le)解。注意,我(wo)說的(de)是了(le)解,我(wo)沒奢望去寫出一(yi)個內核(he)。
要對(dui)里(li)面的(de)調度機制(zhi)、內存管理機制(zhi)、文件管理機制(zhi)等等有(you)所了解
三、驅動:
驅動包含兩部分:硬件本身的操作、驅動程序的框架。
又是(shi)硬件(jian),還(huan)是(shi)要看得懂原理圖、讀得懂芯片(pian)手冊,多(duo)練吧。
四、根文件系統這里就不細說了,你可以可以看《嵌入(ru)式Linux應用開(kai)發完全手冊》里構(gou)建根文件系統那章來(lai)學習是很有用的。
  就先說這么多了,還想了解更多可以咨詢華清遠見哦,學習嵌入式linux系統,你掌握好上面的一些方法,是很有用的,好好學吧
  
  
  相關推薦:嵌入式學習路線總結

