總網頁瀏覽量

2019年1月14日 星期一

適合學習Embedded Linux及RTOS的開發板


【目前正尋求技術輔導教學工作, 若有需嵌入式或物聯網相關專業技術輔導者可洽談】


有朋友來詢問學習Embedded Linux及RTOS應該要從哪個開發板開始學習會比較好

我認為這是蠻多初學者可能會有的疑惑

下面列出一些小弟我的個人經驗及看法 


未必敢說是最正確, 或適合任何人

關於Embedded Linux的學習部分, 我想可以分為兩個層面

一是環境建置的學習, 就是例如了解什麼是bootloader、filesystem、kernel、device driver、applications 並有能力去建置這些東西

讓這些部分能被執行於板子上, 除了熟悉這些部分單元, 也熟悉Linux開發環境的使用

我認為這些的重點不在於哪款板子, 只要能提供這些單元可學習空間的板子都可以(因為這邊是討論板子, 所以用qemu進行模擬的狀況就暫時先不提)

例如早期的PXA270(現在已經買不太到, 而且價格較高)、devkit8000、Pandaboard、Beaglebone Black等等(可能有些是我不知道的)

我個人較推薦的是Beaglebone Black板子, 因為它的價格相較於上述其他板子來說不算太高(大約兩千元左右)

而且上面是搭載TI的SoC chip, 而TI這類chip有一個特性是, 它的硬體規格資料公開的很詳盡(可參考他們官網: http://www.ti.com/product/AM3358/technicaldocuments), 所以很適合做為嵌入式系統軟體研究上所使用的硬體平台

也因為如此, 所以很多國外的Embedded linux書籍很愛將 Beaglebone Black做為實驗目標的板子

例如下面這兩本(剛好是近年來看到):

(1) 精通嵌入式Linux程式設計 Mastering Embedded Linux Programming(作者: Chris Simmonds, 譯者: 錢亞宏, 出版社:博碩)

(2) Embedded Linux 嵌入式系統開發實務 第二版(作者:Christopher Hallinan, 譯者: 江良志, 出版社:旗標)


而我沒有推薦樹莓派的原因是我認為樹莓派相對較適合做應用.

舉例來說, 用樹莓派可能比較沒辦法自己編譯或trace bootloader , 也似乎比較沒辦法看到上面bcm283x Soc的詳細資料 (如果我認知沒錯的話, 因為我自己也在SoC產業待過, 大概可以想像到是什麼狀況)

從他們給出的資料可以看出: https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2835/BCM2835-ARM-Peripherals.pdf  其內容大多是一些較通用的周邊操作資料

如果是做應用專案為主要目的, 我會直接推薦樹莓派(很方便又快速, 應用案例又多)

但如果是從頭到尾的Embedded Linux的學習, 我比較建議能從bootloader就開始建置的板子,
可以搭配網路上各路高手網友的資料學習

第二個層面就是關於較深入的各單元內容的學習, 例如trace各單元原始碼(bootloader、device driver等單元的設計開發學習), 這部分就比較屬於需要較長期學習累積經驗的方向了


而RTOS的部分, 其實RTOS的種類繁多, 我覺得對初學來說可以先選用直接有支援open source RTOS專案的MCU開發板, 例如STM32系列相關的開發板(有支援FreeRTOS)

或者其他符合這些條件的MCU開發板也都OK 


我認為學習這些的重點其實不在於哪一款板子, 只要是符合條件的就可以了

希望我的見解能幫助到大家


【若需要嵌入式系統技術輔導課程 可來信洽談合作方式: iws6645@gmail.com,亦可先點擊參考這篇介紹文章

沒有留言:

張貼留言