技術引領創新,用“芯”構建生態,第三期龍芯生態論壇踏春而來,本次活動恰逢第26屆世界讀書日,我們將邀請《嵌入式Linux系統設計及應用-基于國產龍芯SoC》圖書作者孫冬梅教授,分享龍芯架構嵌入式系統軟硬體平臺應用開發技術,
以下內容為活動速記
分享主題:龍芯智龍平臺和RT-Thread系統
龍芯中科耕耘自主核心CPU技術領域20年,一路走來,成果豐碩,龍芯一直重視成果積累與技術普及,將產品研發程序中的思考與識訓編纂成冊,陸續出版了近20本內容涵蓋計算機體系機構、計算機應用開發、服務器運維管理等領域的龍芯系列圖書,
作為龍芯系列圖書成果分享,本次活動了邀請南京工業大學孫冬梅博士圍繞《嵌入式Linux系統設計及應用-基于國產龍芯SoC》,結合國產作業系統的核心原理與開發技術,介紹嵌入式系統國產軟硬體平臺應用及開發實踐,來作為世界讀書日最具儀式感的慶祝,
分享嘉賓:南京工業大學副教授 孫冬梅
嘉賓介紹:南京工業大學“動力工程及工程熱物理”博士后,江蘇省儀器儀表學會理事、江蘇省射頻識別技術標準化技術委員會委員,長期從事嵌入式系統及虛擬儀器的軟硬體開發研究,參與完成多項科研專案,有豐富的理論及實踐經驗,主要研究方向:嵌入式系統(微處理器、可編程邏輯器、CPLD和FPGA)的軟硬體設計開發,虛擬儀器系統開發研究、測控系統設計研究、基于熱導式微流量傳感器的設計及應用研究,
1、主題介紹
本次分享的主題的是龍芯平臺智龍開發板RT-Thread嵌入式系統,接下來將從四個方面進行介紹:龍芯智龍開發板及背景知識、RT-Thread和Linux交叉編譯平臺、智龍開發板教程及網路資源、智龍開發板應用實體,
2、龍芯智龍開發板介紹
智龍開發板是具有豐富外設的嵌入式開發平臺,采用龍芯1系列中1C300B為主芯片,該芯片具有豐富的外設控制功能,具備多應用連接能力,能夠滿足工業控制應用中較高的算力要求,龍芯1C300B主頻可達300MHz,并具有豐富的外設控制功能,包括Camera控制器、USB OTG及USB HOST介面、AC97/I2S控制器、LCD控制器、SPI介面及UART介面,
目前智龍開發板已適配成功且可進行相應擴展開發的作業系統共三種,首先是在嵌入式系統領域應用廣泛的Linux作業系統;其次為國產嵌入式作業系統RT-Thread;第三種是翼輝作業系統SylixOS,其中RT-Thread作為物聯網專用作業系統,因其小而美的特點,在智能家居、工業控制等領域均有廣泛應用,
對于嵌入式系統開發學習者而言,可以遵循從通用作業系統Linux入手、逐步了解專用作業系統RT-Thread的學習路徑,方便大家在具備基本的系統配置、使用、開發技能之后,能快速開展嵌入式系統開發作業,
除了前面介紹的豐富外設及所支持的系統之外,下面簡單介紹幾種智龍開發板目前支持的擴展模塊,下圖最上方1號圖示為龍芯俱樂部設計的嵌入式智龍綜合實驗箱底板,底板上包含LCD點陣屏、數碼管、按鍵及相應的AD、ESB8266 WiFi擴展模塊;左下角2號圖示為智能車實驗箱、右下角為LCD的擴展屏,

配置了相應功能的擴展模塊后,智龍開發板具備了包括網路連接在內的工業控制能力,適應不同場景下工業控制要求,
下圖展示的是智龍開發板在2020年嵌入式系統芯片設計大賽中科博智龍北斗應用云中的使用效果,此外,智龍開發板還可以連接阿里云、中國移動OneNet等公有云,實作智能控制網路應用,

除了網路應用,智龍開發板在工業控制方面也有突出優勢,為適應目前需求廣泛的智能圖形控制要求,智龍開發板支持LCD屏擴展板操作,可滿足定制化GUI編程需求,
智龍開發板還支持應用于智能車、智能燈等智能控制的擴展模塊,為用戶設計、搭建符合個性化應用要求的嵌入式系統提供了良好的基礎,圍繞智能車/燈的控制應用系統已作為科研課題完成了開發并在大賽中獲獎,
2、基于Windows的RT-Thread和Linux交叉編譯平臺
下面來了解智龍開發板的軟體系統即基于Windows的RT-Thread及基于Linux的交叉編譯平臺,首先來看一下Windows平臺下的RT-Thread系統,為方便進行基于RT-Thread的嵌入式系統開發,RT-Thread團隊推出了env開發輔助工具,針對基于RT-Thread作業系統的專案工程,提供編譯構建環境、圖形化系統配置及軟體包管理功能,其內置的menuconfig提供了簡單易用的配置裁剪工具,可對內核、組件和軟體包進行自由裁剪,使系統以搭積木的方式進行構建,
下圖為evn環境中執行menuconfig命令后的操作界面,通過menuconfig可以配置RT-Thread系統組件及模塊,裁剪出符合要求的系統,

evn環境下使用scons命令完成專案編譯,編譯生成的可執行程式可通過網路下載到智龍開發板中運行,此外,RT-Thread還提供了finsh命令列工具,供用戶通過命令列完成除錯、系統資訊查看等作業,
除以上介紹的Windows平臺RT-Thread開發環境,RT-Thread也可在Linux平臺進行開發,開發者可以自行安裝Linux發行版系統或通過使用Windows環境下Linux系統虛擬機的方式來構建嵌入式開發上位機系統,并在其中安裝交叉編譯工具gcc-4.3-ls232,與Windows環境的開發程序類似,經過交叉編譯生成的可執行程式,通過網路服務下載到開發板下位機中,即可正常運行,需要注意的是,在執行前需保證程式應具有執行權限,
為提高龍芯平臺RT-Thread系統開發的靈活性及便捷性,龍芯技術愛好者勤為本將智龍開發板各類外設封裝為龍芯1C庫,在Windows環境命令列中對外設相關代碼進行編譯,再下載到開發板即可使用,同時,因龍芯1C庫進行了封裝,為用戶提供了簡便的操作介面及方法,也適合需要進行裸機開發的愛好者使用,下圖為龍芯愛好者勤為本維護的龍芯1C庫gitee主頁,(https://gitee.com/caogos/OpenLoongsonLib1c)

3、智龍開發板教程及網路資源
目前嵌入式系統更多基于開源作業系統進行設計與開發,Linux作為主流開源系統,為開發愛好者了解、學習嵌入式系統提供了有利條件,源于此種開發背景,孫老師結合自身多年嵌入式系統研發、教學經驗撰寫了《嵌入式Linux系統設計與應用-基于國產龍芯SoC》,本書包含三部分:

- 基礎篇:介紹龍芯智龍開發板實驗平臺及開發環境的搭建方法,
- 中級篇:介紹Linux基礎編程知識,包括執行緒、信號、網路等內容,
- 高級篇:介紹開發板硬體編程、驅動編程等高級操作,
高級篇中,孫老師基于開發實踐,結合開發板硬體特點,詳細介紹了PWM驅動、I2C總線及設備驅動、SPI總線及設備驅動知識,并實作了相關設備驅動代碼,為大家進行外設開發提供了有價值的參考,
書中的所有硬體驅動、實驗案例代碼均已經過驗證,方便教學及學習使用,
此外,基于對RT-Thread的深厚理解,孫老師還專門撰寫了《基于RT-Thread的教程》一書,其內容參考了RT-Thread官網內核設計相關資料,案例代碼已全部除錯并在智龍開發板V3.0上運行通過,其中,部分應用程式與其他ARM架構系統可通用,全書共分為三個部分:
- 基礎入門篇:介紹從初學者成長為系統程式員應具備的基本技能,
- 作業系統篇:介紹作業系統基本操作,包括檔案、行程、執行緒、訊息、記憶體、鎖、信號、網路等,
- 外設篇:介紹智龍開板相關外設驅動及應用程式撰寫方法,包括I2C總線設備、SPI總線設備、CAN總線設備、LCD設備、RTC設備、PWM設備,
下面介紹智龍開發板網路資源,作為技術圖書《嵌入式Linux系統設計與應用-基于國產龍芯SoC》的配套學習資料,孫老師特別提供了虛擬機鏡像及網路課程資源,大家可以根據需要從網盤下載鏡像檔案,并在vmware虛擬機管理工具中匯入后,即可了解書中各章節介紹的驅動及實體代碼,方便大家操作演練,同時,與書籍配套的30講視頻課程也已經在超星慕課發布(https://mooc1.chaoxing.com/course/214738662.html),該課程自發布以來已經指導了三輪課程教學作業,并榮獲2020年“江蘇省高校微課教學比賽”微課程類三等獎,課程包括2講SylixOS,10講Linux,18講RT-Thread,歡迎有興趣的開發者學習參考并提出寶貴意見,
4、智龍開發板應用實體
下面來介紹智龍開發板的應用實體,
-
基于RT-Thread的百度語音專案
2018年基于RT-Thread作業系統實作的百度語音識別專案,可在開發板上輸入文字,將文字通過WiFi控制器發送到百度語音api,完成語音合成后,再發送回開發板, -
基于 RTT 的智能燈
智能照明系統安裝在臥室或書房內,當有人進入房間時,紅外檢測模塊檢測到人員進入,可自動打開LED燈,實作智能控制,

-
基于RTT 的柿餅的案例
柿餅即PersimmonUI是以C++撰寫的,是RT-Thread上一款現代化圖形UI庫,通過在開發板上擴展的LCD觸摸屏,可以實作炫目的圖形化操作, -
基于RTT 的智能車
智能車前端配置了遙感控制器來控制智能車運行,開發板通過輸出PWM信號控制智能車的運行方向,設計基于Loongson 1C芯片及國產RT-Thread作業系統內核,使用智龍開發板撰寫應用程式,與PS2手柄通信,輸出PWM信號控制電機驅動,實作遠程控制小車,

最后是RT-Thread的開發實體,
-
在finsh shell中運行第一個Hello 程式,
-
在finsh shell中查看常用基本內置命令,
-
在 finsh shell 中運行GPIO 的 KEY操作,
-
在 finsh shell 中 運行 MicroPython實作pin的操作,
5、龍芯嵌入式Linux開發的原創集成開發環境-智龍IDE
隨著國產智能硬體與系統的普及,更多基于相關平臺的開發資源不斷涌現,其中龍芯俱樂部開發的智龍IDE因其適用廣泛、功能完善而得到了大家的關注,

龍芯俱樂部開發的基于龍芯嵌入式Linux原創集成開發環境–智龍IDE具有以下特色:
- 開發平臺適用面廣:智龍IDE提供龍芯 Linux/X86 Linux/X86 Windows 三種版本,
- 專注龍芯及國產作業系統:智龍IDE將支持更多龍芯芯片和板卡,如2K龍芯派/1B開發板/3A龍芯開發電腦等,實作對龍芯多芯片/多應用模式/多作業系統的支持,
目前智龍IDE已完成基于龍芯3A4000與統信UOS系統及X86電腦WIN10系統的內測,并逐步在高校、企業中推廣,

問答環節:
Q1:RT-Thread的Nano Smart和RT Studio對于龍芯平臺的適配情況 ?
A1:RT-Thread配套的IDE為RT Studio,在STM32系列中應用廣泛,RTT Nano是RT-Thread的精簡版,包含了RT-Thread的內核部分,如執行緒通信、執行緒同步、記憶體管理等主要內容,相關的外設組件,如網路系統組件,未包含在RTT Nano中,RTT Nano主要面向RAM、ROM資源有限的開發環境,開發板主芯片主頻達到100MHz以上就可使用RT-Thread,且RT-Thread的組件非常豐富,可以幫助用戶快速構建開發環境,
Q2: 嵌入式系統的設備驅動是否必須使用匯編語言撰寫?
A2:驅動一般使用C語言撰寫,僅在有限的必要的設備控制功能中使用匯編,
Q3: 《嵌入式Linux系統設計與應用-基于國產龍芯SoC》中有關于云的介紹嗎?
A3:《嵌入式Linux系統設計與應用-基于國產龍芯SoC》這本書關于云的介紹比較少,在《基于RT-Thread的教程》中介紹了RT-Thread中連接云的package包,并介紹了百度云及MQTT的連接實體,ESB8266組件可以便捷地完成云平臺連接,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/281250.html
標籤:其他
下一篇:C語言基礎
