初識樹莓派 - 產品定位以及辨析與ARM開發板的區別

目錄

一、樹莓派的幾點認識

二、樹莓派的定位,與ARM開發板有不同的目標用戶

三、樹莓派與嵌入式開發的區別

1、樹莓派能不能做爲嵌入式的ARM開發板?

2、樹莓派能不能進行嵌入式開發與學習?

四、樹莓派上的實踐

五、網盤資料分享


一、樹莓派的幾點認識

1、樹莓派是一款基於Linux系統的單板機電腦。它由英國的樹莓派基金會所開發,目的是以低價硬件及自由軟件刺激在學校的基本的計算機科學教育。樹莓派被賦予的希望是,能夠幫助全世界的孩子學習編程,並能夠了解計算機是如何工作的。
 
2、樹莓派只要加上USB鍵盤、鼠標、HDMI屏幕就立馬變成一個小型電腦,用於學習編程(Linux系統),系統中預裝多種編程軟件和環境,方便使用;並且利用樹莓派,可以搭建多種應用:路由器、智能小車、智能家居、服務器等,這些都有成熟的開源代碼;
 
3、樹莓派跟windows虛擬機跑linux操作系統有什麼區別?
    a、對於系統使用,本質上沒啥區別,都是Linux操作系統罷了,主要有以下三點區別;
    b、軟件上,樹莓派預裝很多開發軟件,方便使用者直接用,不用經過繁瑣的軟件安裝;
    c、硬件系統不同,樹莓派擁有豐富的硬件外接接口,用來對接其它硬件做試驗;
        1)比如樹莓派(作爲主機)與Aduino(AVR內核的卡片機,作爲從機)配合工作;
    d、基於樹莓派設備基礎的社區生態比較完善,有很多開發者在樹莓派軟硬件基礎上設計很多有用的工具和項目;
 
4、Raspberry的幾種操作系統:a、NOOBS  b、Raspbian c、Ubuntu Mate  d、Snappy Ubuntu Core;注意:採用不同的操作系統,本身的軟硬件資源是不同的,視乎應用而選定;
 
5、常見的Linux系統:a、商業版:red hat 、CentOs、suse; b、開源版:debian  ubuntu ;系統的選擇取決於你擁有的硬件,和商業應用。
 
6、樹莓派上常用的腳本語言:Shell(Linux系統管理,運行軟件:Bash/Dash/Tsch/LXTerminal)、Python(跨平臺管理:服務器、網站管理);
 
7、樹莓派自2012年推出以來全球銷量已達1250萬塊,世界第三大計算平臺。
 
 

二、樹莓派的定位,與ARM開發板有不同的目標用戶

1、樹莓派的定位並不是一塊用來做嵌入式開發的開發板,而是一個廉價並且高性價比的可以在一定程度取代 PC 並且硬件接口更豐富的軟件開發和使用平臺。有人可能會問,樹莓派有 GPIO 接口,可以接很多硬件,怎麼會是一個軟件開發平臺呢?那麼我要問你 PC 有 USB 接口,可以接很多硬件,它是一個硬件開發平臺嗎?樹莓派的 GPIO 接口,和 PC 的 USB 接口,沒有本質的區別,都是用來連接硬件的,只是接口更底層一些。
 
2、我們可以把目標用戶簡單分爲三類:硬件開發者、軟件開發者和使用者。硬件開發者主要是設計、改良硬件和爲新老硬件編寫驅動程序等等,軟件開發者主要是在現有的硬件下開發軟件(通常不包括驅動程序),使用者使用現有硬件和軟件而不進行開發。
arm 開發板,主要的目標用戶是硬件開發者和軟件開發者(可以不嚴謹地統稱爲嵌入式開發者),幾乎沒有使用者,因爲對於沒有開發經驗的人,用戶體驗是很差的。而樹莓派的主要目標用戶是軟件開發者(和嵌入式開發者有重疊但並不多)和使用者,用戶體驗很好,但幾乎沒有硬件開發者,因爲樹莓派的硬件相對比較封閉,不銷售單獨的 SoC 和其他芯片,硬件資料也並不是很完善,在硬件層面很難 DIY(對很底層的軟件開發者也存在類似的問題)。
那麼目標用戶的不同,就導致樹莓派雖然看起來很像其他的 arm 開發板,基本也能用和其他的 arm 開發板一樣的方式使用,性質卻有很大的不同。
 
3、arm開發板在軟件方面的配套環境不完善。最重要的是 Linux 內核版本支持。官方只提供低版本的 Linux 內核(2.6 系列),如果用這個內核來配合最新的發行版使用,幾乎是不可能的,會遇到許多問題,一方面是這個內核缺少很多最新發行版使用的特性,另一方面是很多硬件方面的支持不只是替換內核文件和內核模塊的事情(比如有些工具也需要移植),替換起來也麻煩。如果想使用更新版本的內核,需要打各種補丁以及自行修改代碼,雖然硬件的資料比較齊全,理論上可以實現,但即使是經驗豐富的嵌入式開發者也很難搞定,也沒有人做好了提供給別人使用。這就導致幾乎只能使用官方提高的老舊 Linux 鏡像(或者其他古老版本的發行版)。而這個 Linux 環境幾乎毫無用戶體驗可言,最新版本的軟件很難安裝上(幾乎都需要自己編譯,而且容易出現編譯錯誤),常見的 USB 外設(比如攝像頭、無線網卡、藍牙)也很難驅動起來(運氣好的話,可以從其他地方找來驅動代碼,修復很可能出現的編譯錯誤)。
 
4、相對arm開發板,樹莓派的軟件環境是很好的,基本可以使用最新的 Linux 內核和發行版(比如 Archlinux),並且有很多人爲這個平臺開發軟件,用戶體驗有質的提升。即使是對嵌入式開發一竅不通的開發者或者使用者,也可以用樹莓派做他們想做的事情。
另外我發現一個有趣的事情,折騰樹莓派的人羣(至少在國內),和(曾經的) Linux 桌面用戶羣體很相似(我曾經混跡於 Linux 桌面用戶社區,很多人折騰桌面美化、系統配置、工具優化、寫小腳本等等,玩 Linux 而不是用 Linux),他們主要是使用者,可能稍微會一些腳本或者其他編程語言,但並沒有獨立開發完整應用程序的能力和意向。這和嵌入式開發者人羣是很不同的。
 
綜上,樹莓派和其他 arm 開發板的本質區別在於目標用戶不同。樹莓派的目標用戶主要是軟件開發者和使用者,而其他 arm 開發板的主要用戶是硬件開發者和軟件開發者。
 

三、樹莓派與嵌入式開發的區別

 

1、樹莓派能不能做爲嵌入式的ARM開發板?

樹莓派的特點是:具有強大的運算性能,全面的軟件支持,以及開源硬件的易用性。
 
雖然樹莓派是開源硬件,但是實際上它的底層Bootloader和核心數據手冊是閉源的。這對於應用開發沒有影響,但如果是想要藉助此學習ARM Linux底層開發這些的話,就不適合了。
 
硬件資源對比
下面就以一塊常見的友善電子的ARM開發板NanoPi S2同樹莓派3B進行比較。
 
核心硬件資源差不多,因爲NanoPi S2板載8GB eMMC價格上要貴幾十塊,體積大小上樹莓派要大3/1。
 
NanoPi S2

Raspberry Pi 3B

 
 

2、樹莓派能不能進行嵌入式開發與學習?

下面從91創客學堂的嵌入式職業培訓課程進行分析比較。

 
那麼從上面比較看樹莓派不適合最底層的裸機程序、bootloader內核移植的開發,驅動程序開發樹莓派可以使用標準的Linux驅動程序架構也可以使用第三庫快速開發,三個階段的項目都可以在樹莓派上進行開發。
 
結論:
1.樹莓派是屬於嵌入式開發板的比較特殊的一種,底層Bootloader和核心數據手冊是閉源。拿其做原型,修改硬件進行開發不可行。
2.樹莓派非常適合嵌入式開發學習入門,軟件資源豐富,開發快速。現在裸機開發,Bootloader移植的機會很少,如果只做嵌入式應用開發,樹莓派就足夠。
 
 

四、樹莓派上的實踐

1、文件系統組成:
 
 
 
2、系統配置文件:config.txt
 
 
3、對外部GPIO的控制操作: 在樹莓派上GPIO當做一種設備,通過調用文件驅動來控制;
 
 
 
4、利用python庫控制GPIO:
 
 
 

五、網盤資料分享

百度網盤鏈接:https://pan.baidu.com/s/1ZkAFyPBkDPqcoeaKTcKnGQ  提取碼:ktdo
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章