什麼是嵌入式系統?
嵌入式系統就是嵌入到各種專用設備中的可以運行程序的專用系統。
比如說手機,火箭,機牀,家電都可以擁有嵌入式系統,手機用她操控通訊器件播放媒體文件,火箭用她計算導航路線,家電用她監控溫度,掌握時間。。。
學習嵌入式需要掌握什麼?
多多益善!從系統設計方面可以分硬件和軟及兩個方面。
硬件方面需要了解:
1 基本軟件的使用 :原理圖設計,pcb layoout ,電路仿真 。需要熟悉的基本工具比如 orcad ,pads ,protell 。其中畫原理圖推薦orcad。
2 電路設計的理論 :濾波器原理,電源設計原理,電磁輻射原理 ,各種常用的基本單元電路,比如復位電路,震盪電路,放大電路。。。
3 可編程器件使用: 熟悉cpld ,fpga期間。會使用常用的硬件描述語言進行硬件編程。
4 動手能力: 會焊接常用芯片,熟練使用示波器抓波形,有條件的話掌握使用邏輯分析儀器。
軟件方面需要了解:
1。 熟悉掌握c語言的語法和運行環境,瞭解代碼中的堆和棧,熟悉理解物理內存和虛擬內存
2 。編譯器使用(編譯器,連接器,彙編器) 包括各種參數的選擇, 會使用makefile 進行工程編譯
3。掌握常用精簡指令集處理器比如arm或mips的指令系統,緩存系統,時鐘系統,以及電源系統
4。 熟悉至少一種操作系統。清楚的明白什麼是中斷,線程,定時器 ,信號量和鎖。。。
5。熟悉各種接口的原理,知道如何用c語言進行寄存器配置
學嵌入式就要學arm嗎?
每一個完整的嵌入式系統都離不開處理器,存儲器和各種執行單元。
處理器可以是51單片機,可以是arm,可以是mips,powerpc 甚至可以是x86處理器。雖然arm處理器應用廣泛,但並不是說學了arm,纔算學了嵌入式。
學習arm,mips ,powerpc 都可以,只是arm 的資料相對更多。而學習的重點則應該是處理器的原理,各種接口的使用,比如cache是什麼,怎麼用?
DMA 是什麼,有什麼用處?怎樣可以讓系統用最小的功耗達到最大的效率?
學嵌入式就要學linux嗎?
要根據情況。系統的複雜程度不一樣運用場合不一樣,選用的os會不一樣,簡單的應用搞個rtos就好了,複雜一些的才需要考慮linux 或者wince
但基本的一些概念是相通的必須深入理解:比如虛擬內存,緩存,信號量,線程。。。。