很多人在問我們學這些東西能干什么,這些東西有什么關系,我該學那個?
想知道這些首先得知道這些東西都試試很么。
單片機(Microcontrollers,亦稱MCU)包括了CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能集成到一塊硅片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。
ARM是一家公司,ARM是一種架構,ARM是一系列使用ARM核心芯片的合稱。ARM處理器是低功耗、高性能的RISC指令集處理器。ARM處理器目前包含Cortex-M、Cortex-R和Cortex-A系列滿足不同的應用需求。
嵌入式系統定義為:以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統。簡單理解就是除通用PC、服務器之外滿足特定需求的計算機系統。
單片機包含很多,如51單片機、MSP430單片機、PIC單片機、AVR單片機、Fresscale單片機、各種Cortex-M芯片,8bit、16bit、32bit都有。主要完成一些功能相對簡單的嵌入式系統開發。
ARM架構的芯片,Cortex-M系列芯片屬于單片機,Cortex-A系列芯片屬于SOC。一般Cortex-A系列芯片用來開發一些功能相對復雜,性能要求較高的產品。
當然不敢是基于單片機的開發還是基于ARM的開發都屬于嵌入式開發,嵌入式開發主要包括軟硬件兩部分,硬件開發主要是電路設計,也就是平時我們看到的各種各樣的電路板,軟件開發設計比較廣,有裸機開發,有操作系統開發,有驅動開發,有應用開發,涉及不同語言,設計不同層次。
嵌入式開發設計操作系統有很多從比較簡單的uCOS、freertos、到復雜的windows CE、linux、在到現在比較火的IOS、android。當然嚴格的說IOS是Unix、android是Linux。
這里說的android底層開發主要是android系統里對于不同硬件適配的部分。這部分本質上是linux 應用開發,只是被龐大的android體系復雜化了。幾乎所以android產品都是ARM架構的
所以他們幾個的關系是