嵌入式基礎(2)---硬體基礎知識
嵌入式系統是一種專用的計算機系統,作為裝置或裝置的一部分。國內普遍認同的嵌入式系統定義為:以應用為中心,以計算機技術為基礎,軟硬體可 裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統。舉些例子,手機、電子時鐘、智慧報警裝置、自動監控器、計程車計費器等 等都屬於嵌入式系統。——由厚學網整理提供
嵌入式系統是硬體和軟體的綜合體,這裡來看看嵌入式系統的具體框圖,以手機為例吧。
(硬體篇)
1、基本電路知識
嵌入式硬體也是需要許多電路搭建起來的,學習嵌入式之前必須對電路基本知識有一定基礎。瞭解常用的基本器件,基本儀器使用,具有一定的電路分析能力。這樣你才能看得懂嵌入式系統的硬體電路圖,才能為後續開發奠定基礎。
具體操作:回覆CD檢視主選單,再回復109進入視訊下載選單,下載類比電路教學視訊,再回復104進入硬體技術。學習元器件基礎、常用電路等知識。
2、基本語言知識
嵌入式驅動程式編寫需要用到C語言,因此在學習嵌入式之前還必須熟練C語言基本語法,並能編寫些普通程式程式碼。這裡需要提醒,在學習C語言時養成規範的程式設計習慣,如新增備註、注意排版等,這將對以後的程式準確性有很大影響。
具體操作:回覆CD檢視主選單,再回復109進入視訊下載選單,並下載C語言教學視訊,再回復105進入軟體技術。學習驅動基礎等知識。
3、微控制器(51微控制器)
初學者首次接觸嵌入式處理器一般都是51微控制器,51微控制器入門相對簡單,並且通用度比較高,可以購買開發板動手學習。如學習編寫流水燈、按鍵掃描、數碼管、液晶顯示、AD/DA取樣等簡單程式。
具體操作:回覆CD檢視主選單,再回復109進入視訊下載選單,並下載微控制器教學視訊,跟著視訊一起動手操作。
4、基於微控制器的電子系統自設計
有了前面的學習經歷,可自己脫離開發板,自己設計並繪製電路圖,自己焊接或者生產PCB板,設計小型的電子系統。如設計一個尋線小車,溫度採集、時鐘顯示等嵌入式系統。
具體操作:回覆CD檢視主選單,再回復109下載Protel視訊教程,學習繪製電路板,再回復106進入嵌入式系統選單,學習基於微控制器的電子系統設計。
5、430、STM32、Cortex-M3(可選)
430微控制器、STM32以及Cortex-M3處理器作為學習嵌入式作業系統前的過渡階段,各位朋友可以自行選擇學習。為什麼需要用他們來過渡呢?
因為51微控制器內部暫存器很少,編寫程式時不需要對GPIO口進行配置,預設就已經是輸入或者輸出。而當處理器功能強大之後,往往一個GPIO可實現多種 功能,如USB功能、IIC功能、UART功能。在使用這種GPIO時就必須先進行配置,才能滿足需求。因此在學習後面作業系統之前,有時間的同學可以從 這些微控制器過渡,這樣不至於後續學習摸不到頭腦。
具體操作:回覆CD檢視主選單,再回復109下載430/STM32微控制器視訊。
6、ARM9/ARM11裸機學習
裸機程式編寫,即不帶作業系統的程式編寫,其作用和上面430微控制器的作用相似,目地就是為了熟悉ARM架構,對ARM暫存器有深入的瞭解,這將對以後的 驅動程式編寫帶來很大的方便。同樣,裸機程式學習可像51微控制器一樣,購買開發板,在開發板上進行一些中斷、GPIO、UART的操作。
具體操作:回覆CD檢視主選單,再回復106進入嵌入式系統選單,學習嵌入式基本架構學習等。當然,也可以直接給我們留言。
7、Linux系統移植&BOOTLOADER
嵌入式系統學習特別注意又特別難的地方就是Linux系統移植,對於系統的移植、系統的裁剪是學習的難點。搭建嵌入式作業系統的開發環境,即交叉編譯環境也比較麻煩,因此在學習過程中一定要一步一步動手實踐操作。
BOOTLOADER是作業系統啟動前,進行硬體初始化以及搭建作業系統執行環境的一段程式碼,有點類似於PC機的BIOS程式。BOOTLOADER主要與硬體關係很大,需對處理器暫存器相當的熟悉,因此在初期學習的時候可以參考U-boot等學習
相關文章
- Go 基礎教程--2-基礎知識Go
- 伺服器的基礎軟硬體知識伺服器
- Linux硬體管理的基礎知識(轉)Linux
- MySql基礎知識(2)MySql
- 資訊處理技術基礎知識(2.4多媒體基礎知識 )--第2章
- 嵌入式開發的基礎知識
- GO基礎知識分享2Go
- OBD2基礎知識
- 基礎知識
- Python知識體系-Python2基礎知識Python
- Java基礎知識題集(2)Java
- JS基礎知識總結(2)JS
- Java基礎知識_記憶體Java記憶體
- 軟體測試基礎知識
- node記憶體基礎知識記憶體
- 報表軟體基礎知識
- Web測試基礎-Html基礎知識WebHTML
- WiFi基礎(六):天線基礎知識WiFi
- AI 基礎知識AI
- Webpack 基礎知識Web
- Dart基礎知識Dart
- RabbitMQ基礎知識MQ
- webpack基礎知識Web
- javascript基礎知識JavaScript
- ThinkPHP基礎知識PHP
- Laravel基礎知識Laravel
- Redis基礎知識Redis
- Docker基礎知識Docker
- 程式基礎知識
- Envoy基礎知識
- DockerFile基礎知識Docker
- Nginx基礎知識Nginx
- CSS基礎知識CSS
- Java基礎知識Java
- PRML 基礎知識
- BGP基礎知識
- PHP基礎知識PHP
- React基礎知識React