ARM裸機從零開始的學習2 基礎概念

2021-08-08 09:03:00 字數 2163 閱讀 3560

arm裸機從零開始的學習2---基礎概念

---參考朱有鵬arm裸機全集

1、嵌入式的系統的構成特點和演進方向

(1)專用,軟硬體可裁剪可配置

(2)低功耗,高可靠性、高穩定性

(3)軟體**短小精悍

(4)**可固化(**可以燒錄到韌體裡面去)

(5)實時性:嵌入式系統的實時性是要求很高的,ucos

(6)弱互動性,很多學生都喜歡玩觸控螢幕,但是那真的不是嵌入式的主流

(7)專業開發人員

2、嵌入式系統的組成

(1)硬體

微處理器:cpu

儲存器:儲存你程式需要加工的資料

(2)軟體:(嵌入式軟體和微控制器的軟體是不分層)

嵌入式作業系統:(基本上是寫好的)驅動其實就是在寫作業系統

bsp:  board  support  package  板級開發包(硬體的支援軟體)

應用軟體:

應用程式:

作業系統的應用程式設計和網路程式設計

gui   gprs   3g   wifi

作業系統        智慧型作業系統         操縱平台

硬體               **處理器             rom、ram、io口

整體功能太複雜了,不分層比較難做。

應用程式和作業系統之間的程式設計。

能用的人是不一定是能造出來的,所以寫驅動比較難

3、嵌入式系統的發展演進1:

(1)以單晶元為核心,可程式設計控制器的存在的形式

--沒有作業系統支援

--軟體以彙編為主

--功能單一,處理效率低,儲存容器小,沒有對外介面

--使用簡單,**低

(2)以嵌入式cpu為基礎,簡單作業系統為核心

--cpu種類多,通用性弱

--系統開銷小,效率高

--達到一定的相容性,拓展性

--使用者體驗度不高,互動介面不夠友好

(3)以嵌入式作業系統為標誌

--相容性好,適用性不同平台

--系統開銷小,效率高具有高模組化以及拓展性

--圖形化介面,使用者介面友好

--豐富的外部介面

(4)以物聯網為標誌

--將感測器技術,網際網路技術以及傳統的嵌入式技術綜合聯絡

--小型號,智慧型化,網路化以及視覺化

--低功耗,綠色環保

--多核技術、雲計算技術以及虛擬化技術

dsp(主運算)加arm(主控)

4、何為交叉編譯?

嵌入式的交叉編譯的。

兩種開發模式:

(1)非嵌入式開發:

純軟體開發,直接一台電腦就可以進行開發了。

(2)嵌入式開發:

編譯得到可執行程式,發布給開發板等之類的低等的處理器,這種方式就叫做交叉編譯。

嵌入式開發的cpu比較簡單,本身無法搭建開發環境,有些連作業系統都沒有。交叉編譯可以用高效能機器為低效能機器開發

軟體。

交叉編譯有什麼特點?

交叉編譯必須使用專用的交叉編譯工具鏈

由於可執行程式不能本地的執行調式,因此必須配合一定的手段

將可執行程式載入到目標嵌入式裝置執行以及調式)

5、cpu的設計原理、資料匯流排和位址匯流排

(smp:對稱多核處理器)

cpu和匯流排示意圖

1、一般soc裡面都有cpu和uart

控制器 :進行一些邏輯的控制

運算器 :加減乘除

2、匯流排:傳輸資料的通道

2.1、分為位址匯流排和資料匯流排

cpu通過位址匯流排傳輸資料

把位址匯流排和資料分開是為了資料的傳輸速度快,儲存塊裡面是分塊的。

資料匯流排的位數決定cpu單次通訊資料交換的

3、ddr:執行記憶體

4、flash:相當於計算機的硬碟

注意點:

1、cpu的位址匯流排位數和資料匯流排是可以不同的

典型代表就是51微控制器(資料匯流排雖然是8位,但是位址匯流排是16位的)但是一般是相同的

2、cpu的位數指的是資料匯流排的位數

3、32位cpu的定址範圍是4g,所以記憶體是32位的比較好,所以程式設計最好使用int

從零開始學習react

react.createlement tag,content class shoppinglist extends react.component return 我們可以把兩者結合起來,使 react 的 state 成為 唯一資料來源 渲染表單的 react 元件還控制著使用者輸入過程中表單發生的...

C 從零開始學習

首先你需要乙個編譯器,在這裡我首先是推薦功能強大的visual studio最強ide。vs 可以嘗試自己在ide裡面敲一下,畢竟只有多動手才能成功!include 此為標頭檔案 using namespace std 告訴編譯器使用 std 命名空間。main方法為主函式,是程式開始執行的地方 i...

從零開始學習 從零開始學習資料結構 雜湊桶

雜湊桶的本質是雜湊表,雜湊表的本質是 k v,k v 不就是 map,那麼這樣一層一層學習下來,就能理解的更為透徹,學習程式設計一定要有追根刨底的好奇心,這樣你的進步會非常快。1 桶 就是可以存放資料的結構 在這裡我認為桶就是結構體!在雜湊表的改進之上,雜湊表當時自己的做法是 表中存放的是指標,而不...