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 桶 就是可以存放資料的結構 在這裡我認為桶就是結構體!在雜湊表的改進之上,雜湊表當時自己的做法是 表中存放的是指標,而不...