




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、嵌入式開發都要學什么課程C語言開發網絡、操作系統、體系結構嵌入式系統概念嵌入式開發實踐ARM學習之R13寄存器R13對應的物理寄存器R13功能嵌入式之堆棧硬件開發1條件:Linux方法:隨便,主要是掌握ANSI C編程(不包括gtk,qt等圖形可視化開發)首先C語言,這個是毋庸置疑的,不管是學嵌入式軟件還是硬件開發的人員,對C語言的掌握這個是必需的,特別是對于以后致力于嵌入式軟件開發的人,現在絕大部分都是用C語言,你說不掌握它可以嗎?至于如何學習C語言,我想這些基礎的知識每個人都有自己的方法,關鍵要去學習,看書也好,網上找些視頻看也好。很多人會問,C語言要學到怎么樣,我覺得這沒有標準的答案。我
2、想至少你在明白了一些基礎的概念后,就該寫代碼了,動手才是最重要的,當你動手了,遇到問題了,再反過來學習,反過來查查課本,那時的收獲就不是你死看書能得到的。C語言開發2條件:Linux,各種書,算法、例程。方法:通過C編程實現簡單的網絡等知識的算法和過程。開發者應該對操作系統有所了解,這對你對硬件和軟件的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如進程、線程,系統如何來分配資源的,系統如何來管理硬件的,當然,不是看書就能把這些理解透,如果不是一時能理解,沒關系,多看看,結合以后的項目經驗,會有更好的理解的。網絡、操作系統、體系結構3條件:各個嵌入式網站,討論組,書籍方法:少提問(尤其是
3、等著天上掉餡餅,這主要是防止增長惰性,也解決不了實際問題),多思考。還有應該學習嵌入式系統,如linux或者wince下的編程,這些對以后做應用的編程很有幫助,當然,如果做手機的話,那可以學習MTK、塞班、Android等操作系統,Android是以后發展的趨勢,現在很熱門,Android也是基于linux系統封裝的,所以建議先學習下linux。嵌入式系統概念4條件:各種嵌入式系統開發工具的demo版,包括編譯器,仿真器。可以找高手們要,也可以下載。方法:這里有兩個分支,一個是基于MCU/MDSP的嵌入式系統開發,一個是象Palm OS,WinCE,uC/OS II等RTOS下的應用軟件開發。
4、對硬件感興趣,想成為真正高手的由第一個分支入手,以后進入第二個分支;如果十分厭煩硬件,只想停留在軟件開發上的,可以只由第二個分支入手,以后就和pc上的開發沒有什么本質上的區別了,找份不錯的工作應該沒問題,可以不用進行下面的步驟了,感興趣可以參考第6條。還有,應該學習下單片機或者ARM或者MIPS,很多人說我沒有單片機的經驗,直接學ARM可以嗎?我覺得那完全沒有問題的,當然如果你學習過單片機,那最好不過了,以后學習ARM就更簡單了。嵌入式開發實踐5現在很多人都在學習arm 嵌入式系統 嵌入式開發 arm核心板 arm9等有關arm的知識,那么在學習過程中了解arm指令也是必然的,下面我就自己在學
5、習arm指令中記錄的關于隊長方面的知識做一個簡單的總結,希望對大家有所幫助寄存器 R13 在 arm 指令中常用作堆棧指針ARM學習R13寄存器6對于 R13 寄存器來說,它對應6個不同的物理寄存器,其中的一個是用戶模式與系統模式共用,另外5個物理寄存器對應于其他5種不同的運行模式。采用以下的記號來區分不同的物理寄存器: R13_ 其中,mode為以下幾種模式之一:usr、fiq、irq、svc、abt、und。如何學習嵌入式之R13對應的物理寄存器7寄存器R13在arm指令中常用作堆棧指針,但這只是一種習慣用法,用戶也可使用其他的寄存器作為堆棧指針。而在Thumb指令集中,某些指令強制性的要
6、求使用R13作為堆棧指針。由于處理器的每種運行模式均有自己獨立的物理寄存器R13,在用戶應用程序的初始化部分,一般都要初始化每種模式下的R13,使其指向該運行模式的棧空間,這樣,當程序的運行進入異常模式時,可以將需要保護的寄存器放入R13所指向的堆棧,而當程序從異常模式返回時,則從對應的堆棧中恢復,采用這種方式可以保證異常發生后程序的正常執行。如何學習嵌入式之R13功能8有四種類型的堆棧:堆棧是一種數據結構,按先進后出(First In Last Out,FILO)的方式工作,使用一個稱作堆棧指針的專用寄存器指示當前的操作位置,堆棧指針總是指向棧頂。當堆棧指針指向最后壓入堆棧的數據時,稱為滿堆
7、棧(Full Stack),而當堆棧指針指向下一個將要放入數據的空位置時,稱為空堆棧(Empty Stack)。同時,根據堆棧的生成方式,又可以分為遞增堆棧(Ascending Stack)和遞減堆棧(DecendingStack),當堆棧由低地址向高地址生成時,稱為遞增堆棧,當堆棧由高地址向低地址生成時,稱為遞減堆棧。這樣就有四種類型的堆棧工作方式,ARM 微處理器支持這四種類型的堆棧工作方式,即: Full descending 滿遞減堆棧堆棧首部是高地址,堆棧向低地址增長。棧指針總是指向堆棧最后一個元素(最后一個元素是最后壓入的數據)。 ARM-Thumb過程調用標準和arm、Thumb
8、 C/C+ 編譯器總是使用Full descending 類型堆棧。嵌入式之堆棧9 Full ascending 滿遞增堆棧堆棧首部是低地址,堆棧向高地址增長。棧指針總是指向堆棧最后一個元素(最后一個元素是最后壓入的數據)。 Empty descending 空遞減堆棧堆棧首部是低地址,堆棧向高地址增長。棧指針總是指向下一個將要放入數據的空位置。 Empty ascending 空遞增堆棧堆棧首部是高地址,堆棧向低地址增長。棧指針總是指向下一個將要放入數據的空位置。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條件:各種嵌入式芯片、存儲器等電路器件,protel99等電路設計軟件,電路板制作。方法:這時候該有開發條件了,最起碼是51系列,這個比較方便。電路的設計內容較多,不過看起來嚇人,實際上比軟件要簡單的多。只要下功夫,實踐會告訴你一切。最后如果你把以上的知識都有所了解后,就該去閱讀閱讀一些優秀的代碼,比如結合arm芯片手冊學習去學習下UBOOT的源代碼,了解下最小的系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 疫苗接種與群體免疫動力學考核試卷
- 管道工程社會責任報告與評估考核試卷
- 禮儀用品行業服務品質管理考核試卷
- 組織文化與員工參與度考核試卷
- 原動設備制造企業的戰略管理與規劃考核試卷
- 租賃設備的市場調研方法與技巧考核試卷
- 禮儀用品行業市場風險防范考核試卷
- 稀土金屬壓延加工的智能化制造趨勢分析考核試卷
- 天津農學院《發動機原理》2023-2024學年第二學期期末試卷
- 山東省聊城市東阿縣2025屆初三教學質量檢測試題(二)化學試題含解析
- 《陸上風電場工程設計概算編制規定及費用標準》(NB-T 31011-2019)
- 提問技巧與溝通客戶需求
- 小程序開發方案
- 園林植物的識別與應用-喬木園林植物的識別與應用
- 第10課《綠色上網》教學設計
- 林業種植工作總結
- 舞臺藝術與表演技巧教程
- 幼兒園園長專題講座藝術創造與審美觀培養
- 何威新書《吵出好婚姻》一場重構親密關系冒險之旅
- 第7課《珍視親情+學會感恩》第2框《理解父母+學會感恩》【中職專用】《心理健康與職業生涯》(高教版2023基礎模塊)
- 無人機駕駛員培訓計劃及大綱
評論
0/150
提交評論