嵌入式開發(fā)都要學(xué)什么課程_第1頁
嵌入式開發(fā)都要學(xué)什么課程_第2頁
嵌入式開發(fā)都要學(xué)什么課程_第3頁
嵌入式開發(fā)都要學(xué)什么課程_第4頁
嵌入式開發(fā)都要學(xué)什么課程_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、嵌入式開發(fā)都要學(xué)什么課程C語言開發(fā)網(wǎng)絡(luò)、操作系統(tǒng)、體系結(jié)構(gòu)嵌入式系統(tǒng)概念嵌入式開發(fā)實(shí)踐ARM學(xué)習(xí)之R13寄存器R13對(duì)應(yīng)的物理寄存器R13功能嵌入式之堆棧硬件開發(fā)1條件:Linux方法:隨便,主要是掌握ANSI C編程(不包括gtk,qt等圖形可視化開發(fā))首先C語言,這個(gè)是毋庸置疑的,不管是學(xué)嵌入式軟件還是硬件開發(fā)的人員,對(duì)C語言的掌握這個(gè)是必需的,特別是對(duì)于以后致力于嵌入式軟件開發(fā)的人,現(xiàn)在絕大部分都是用C語言,你說不掌握它可以嗎?至于如何學(xué)習(xí)C語言,我想這些基礎(chǔ)的知識(shí)每個(gè)人都有自己的方法,關(guān)鍵要去學(xué)習(xí),看書也好,網(wǎng)上找些視頻看也好。很多人會(huì)問,C語言要學(xué)到怎么樣,我覺得這沒有標(biāo)準(zhǔn)的答案。我

2、想至少你在明白了一些基礎(chǔ)的概念后,就該寫代碼了,動(dòng)手才是最重要的,當(dāng)你動(dòng)手了,遇到問題了,再反過來學(xué)習(xí),反過來查查課本,那時(shí)的收獲就不是你死看書能得到的。C語言開發(fā)2條件:Linux,各種書,算法、例程。方法:通過C編程實(shí)現(xiàn)簡單的網(wǎng)絡(luò)等知識(shí)的算法和過程。開發(fā)者應(yīng)該對(duì)操作系統(tǒng)有所了解,這對(duì)你對(duì)硬件和軟件的理解,絕對(duì)有很大的幫助。應(yīng)該把系統(tǒng)的管理理解一下,比如進(jìn)程、線程,系統(tǒng)如何來分配資源的,系統(tǒng)如何來管理硬件的,當(dāng)然,不是看書就能把這些理解透,如果不是一時(shí)能理解,沒關(guān)系,多看看,結(jié)合以后的項(xiàng)目經(jīng)驗(yàn),會(huì)有更好的理解的。網(wǎng)絡(luò)、操作系統(tǒng)、體系結(jié)構(gòu)3條件:各個(gè)嵌入式網(wǎng)站,討論組,書籍方法:少提問(尤其是

3、等著天上掉餡餅,這主要是防止增長惰性,也解決不了實(shí)際問題),多思考。還有應(yīng)該學(xué)習(xí)嵌入式系統(tǒng),如linux或者wince下的編程,這些對(duì)以后做應(yīng)用的編程很有幫助,當(dāng)然,如果做手機(jī)的話,那可以學(xué)習(xí)MTK、塞班、Android等操作系統(tǒng),Android是以后發(fā)展的趨勢(shì),現(xiàn)在很熱門,Android也是基于linux系統(tǒng)封裝的,所以建議先學(xué)習(xí)下linux。嵌入式系統(tǒng)概念4條件:各種嵌入式系統(tǒng)開發(fā)工具的demo版,包括編譯器,仿真器。可以找高手們要,也可以下載。方法:這里有兩個(gè)分支,一個(gè)是基于MCU/MDSP的嵌入式系統(tǒng)開發(fā),一個(gè)是象Palm OS,WinCE,uC/OS II等RTOS下的應(yīng)用軟件開發(fā)。

4、對(duì)硬件感興趣,想成為真正高手的由第一個(gè)分支入手,以后進(jìn)入第二個(gè)分支;如果十分厭煩硬件,只想停留在軟件開發(fā)上的,可以只由第二個(gè)分支入手,以后就和pc上的開發(fā)沒有什么本質(zhì)上的區(qū)別了,找份不錯(cuò)的工作應(yīng)該沒問題,可以不用進(jìn)行下面的步驟了,感興趣可以參考第6條。還有,應(yīng)該學(xué)習(xí)下單片機(jī)或者ARM或者M(jìn)IPS,很多人說我沒有單片機(jī)的經(jīng)驗(yàn),直接學(xué)ARM可以嗎?我覺得那完全沒有問題的,當(dāng)然如果你學(xué)習(xí)過單片機(jī),那最好不過了,以后學(xué)習(xí)ARM就更簡單了。嵌入式開發(fā)實(shí)踐5現(xiàn)在很多人都在學(xué)習(xí)arm 嵌入式系統(tǒng) 嵌入式開發(fā) arm核心板 arm9等有關(guān)arm的知識(shí),那么在學(xué)習(xí)過程中了解arm指令也是必然的,下面我就自己在學(xué)

5、習(xí)arm指令中記錄的關(guān)于隊(duì)長方面的知識(shí)做一個(gè)簡單的總結(jié),希望對(duì)大家有所幫助寄存器 R13 在 arm 指令中常用作堆棧指針ARM學(xué)習(xí)R13寄存器6對(duì)于 R13 寄存器來說,它對(duì)應(yīng)6個(gè)不同的物理寄存器,其中的一個(gè)是用戶模式與系統(tǒng)模式共用,另外5個(gè)物理寄存器對(duì)應(yīng)于其他5種不同的運(yùn)行模式。采用以下的記號(hào)來區(qū)分不同的物理寄存器: R13_ 其中,mode為以下幾種模式之一:usr、fiq、irq、svc、abt、und。如何學(xué)習(xí)嵌入式之R13對(duì)應(yīng)的物理寄存器7寄存器R13在arm指令中常用作堆棧指針,但這只是一種習(xí)慣用法,用戶也可使用其他的寄存器作為堆棧指針。而在Thumb指令集中,某些指令強(qiáng)制性的要

6、求使用R13作為堆棧指針。由于處理器的每種運(yùn)行模式均有自己獨(dú)立的物理寄存器R13,在用戶應(yīng)用程序的初始化部分,一般都要初始化每種模式下的R13,使其指向該運(yùn)行模式的棧空間,這樣,當(dāng)程序的運(yùn)行進(jìn)入異常模式時(shí),可以將需要保護(hù)的寄存器放入R13所指向的堆棧,而當(dāng)程序從異常模式返回時(shí),則從對(duì)應(yīng)的堆棧中恢復(fù),采用這種方式可以保證異常發(fā)生后程序的正常執(zhí)行。如何學(xué)習(xí)嵌入式之R13功能8有四種類型的堆棧:堆棧是一種數(shù)據(jù)結(jié)構(gòu),按先進(jìn)后出(First In Last Out,F(xiàn)ILO)的方式工作,使用一個(gè)稱作堆棧指針的專用寄存器指示當(dāng)前的操作位置,堆棧指針總是指向棧頂。當(dāng)堆棧指針指向最后壓入堆棧的數(shù)據(jù)時(shí),稱為滿堆

7、棧(Full Stack),而當(dāng)堆棧指針指向下一個(gè)將要放入數(shù)據(jù)的空位置時(shí),稱為空堆棧(Empty Stack)。同時(shí),根據(jù)堆棧的生成方式,又可以分為遞增堆棧(Ascending Stack)和遞減堆棧(DecendingStack),當(dāng)堆棧由低地址向高地址生成時(shí),稱為遞增堆棧,當(dāng)堆棧由高地址向低地址生成時(shí),稱為遞減堆棧。這樣就有四種類型的堆棧工作方式,ARM 微處理器支持這四種類型的堆棧工作方式,即: Full descending 滿遞減堆棧堆棧首部是高地址,堆棧向低地址增長。棧指針總是指向堆棧最后一個(gè)元素(最后一個(gè)元素是最后壓入的數(shù)據(jù))。 ARM-Thumb過程調(diào)用標(biāo)準(zhǔn)和arm、Thumb

8、 C/C+ 編譯器總是使用Full descending 類型堆棧。嵌入式之堆棧9 Full ascending 滿遞增堆棧堆棧首部是低地址,堆棧向高地址增長。棧指針總是指向堆棧最后一個(gè)元素(最后一個(gè)元素是最后壓入的數(shù)據(jù))。 Empty descending 空遞減堆棧堆棧首部是低地址,堆棧向高地址增長。棧指針總是指向下一個(gè)將要放入數(shù)據(jù)的空位置。 Empty ascending 空遞增堆棧堆棧首部是高地址,堆棧向低地址增長。棧指針總是指向下一個(gè)將要放入數(shù)據(jù)的空位置。10操作堆棧的匯編指令堆棧類型 入棧指令 出棧指令 Full descending STMFD (STMDB) LDMFD (LD

9、MIA) Full ascending STMFA (STMIB) LDMFA (LDMDA) Empty descending STMED (STMDA) LDMED (LDMIB) Empty ascending STMEA (STMIA) LDMEA (LDMDB)11條件:各種嵌入式芯片、存儲(chǔ)器等電路器件,protel99等電路設(shè)計(jì)軟件,電路板制作。方法:這時(shí)候該有開發(fā)條件了,最起碼是51系列,這個(gè)比較方便。電路的設(shè)計(jì)內(nèi)容較多,不過看起來嚇人,實(shí)際上比軟件要簡單的多。只要下功夫,實(shí)踐會(huì)告訴你一切。最后如果你把以上的知識(shí)都有所了解后,就該去閱讀閱讀一些優(yōu)秀的代碼,比如結(jié)合arm芯片手冊(cè)學(xué)習(xí)去學(xué)習(xí)下UBOOT的源代碼,了解下最小的系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論