開發板的重要性
嵌入式專業是一門實踐性非常強的學科,只有多動手,多實踐,多編程,多調試,多看書,多思考才能真正掌握好嵌入式開發技術。
學習的過程就是不斷地看代碼,編譯代碼,運行代碼。都說實踐是檢驗真理的唯一標准,所以最后的驗證是非常重要的。只有在我們看代碼,修改代碼,最后把我們所思所想的到驗證,這時候我們才學到了一些東西。所以一定要有一個平台能夠驗證你所學的內容。要有一個真機去運行你的代碼。
如何選擇一個開發板
Arm + linux 方向的學些和單片機裸機開發那種方式還是有很大的不同的,主要就是有了操作系統的概念,操作系統是對硬件資源的抽象和管理。所以硬件資源的大小和種類在開發板選擇中是很重要的。在選擇開發板時要看這塊板子能不能滿足你要學習中所需要的各種接口資源,比如UART串口,I2C,SPI,SDIO,GPIO,ADC等常用的接口。下面時一些主要的硬件模塊選擇
處理器的選擇
選擇開發板,目前來說不要選擇有些年代的CPU架構,比如 arm9,arm11,雖然目前還有些產品在用,但是我們作為學習還是沒必要了。我們學習要選擇將來是一個主流的被用到產品上的平台,比如cortex-a系列,目前A8,A7,A9是用的比較多的CPU架構,而且現存的資料是比較多的,因為已經有很多的成熟的產品;經過了很多前人的驗證。但是像A8,A7這種的一般產品都是單核32位的,這在以前是非常流行的;還有一本分產品不太追求性能,產品的主要特性要求是低功耗的話可以選擇這類的CPU,而且單核的產品購買成本也是可以的。
隨着現在人工智能熱度越來越高,人工智能的產品也是層出不窮,像人工智能這類的產品是需要大量計算的,就是對CPU性能要求比較高,所以選擇的時候就要考慮高性能的架構,像A53,A57,更高的話還有A72,A73的;硬件的成本是隨着性能越高,價格也越高,所以我們在選擇學習用的開發板時不必要去追求最高性能,在成本可接受范圍內選擇一些性能就可以了;當然如果有產品要求的話可以去專門的有針對性的去買來學一下。另外如果時追求性能的話,一般都是最新的CPU時性能最高的,這樣會出現一種問題,就是最新的硬件一般市面上用的很少,學習資料也就很少,出現問題之后可能不太容易去找對應的解決方法,這對個人的學習和處理問題的能力要求很高。所以選擇的時候要選擇市面上學習資料容易找到的。
內存的選擇
內存時用來承載程序運行時程序的指令和程序產生的數據,內存的大小要根據實際的實際應用場景來,一般521M或者1G就夠了,如果后面有學習Android的計划的話可以選擇大一些的2G,不過對剛一開始學習嵌入式linux的同學來說Android還是有點遠的,能夠熟練的運用好嵌入式Arm linux,這個學習周期還是有一段時間的。所以不必要考慮的太長遠而增加了很大的學習成本。對於運行Linux 和一些linux C的程序的話 512M 和 1G是完全能夠滿足的。
存儲的選擇
存儲時用來承載系統運行所需的程序和產生的數據文件的,存儲的大小目前多采用8G,因為這個大小的flash足夠我們去存放系統跟文件系統,並且能夠分出來一個用戶數據分區,來存放用戶程序產生的數據。如果預算有限制,選擇4G大小的存儲也是可以的。目前嵌入式板上的存儲有 Nand,Nor flash,emmc等多種存儲技術的芯片,Nand 比 Nor的存儲價格便宜一些。
接口外設的選擇
目前智能家居比較火爆,這也是一個嵌入式領域比較好的應用方向。智能的概念很高端,短時具體怎么實現能?就是通過很多的傳感器去獲取數據,然后通過很多的控制器去執行某些行為。怎么等到傳感器的數據,怎么控制執行器呢?
需要將這些外設連接到主控制器上,這就需要一些外設接口,前面提到的uart,I2C,SPI等通信接口與傳感器和控制器交互。
開發板推薦
推薦一款目前學習價值很高並且資源豐富的開發板;
FS6818 華清遠見教學實驗用的開發板
處理器采用 ARM Cortex-A53 8Core s5p6818,主頻高達1.4+GHz
內存采用 2G DDR3
存儲采用 16G EMMC
外設有 按鍵,I2C,SPI,1-wire,ADC,PWM,USB,HDMI,LCD,Camera,CAN,485等常用的接口,另有紅外接收器
電源管理采用主流的PMU電源管理芯片