由於最近ARM公司要求員工「停止所有與華為及其子公司正在生效的合約、支持及未決約定」,即暫停與華為的相關合作,大家紛紛把注意力投向了另一個的處理器架構RISC-V,它是基於精簡指令集(RISC)的一個開源指令集架構。相比於其他指令集,"RISC-V 指令集可以自由地用於任何目的,允許任何人設計、製造和銷售 RISC-V 晶元和軟體",正是由於這種開放性,於2015年成立的RISC-V基金會,吸引了很多科技巨頭加入RISC-V基金會,現在的RISC-V基金會成員已經超過了235個,包括國外的Google、三星、英偉達、微芯、高通、惠普、意法半導體、西數、NXP等,國內的阿里巴巴、華為、高雲等公司。可能是由於智能推薦的演算法,我在知乎上的一篇關於RISC-V文章:國產處理器的逆襲機會——RISC-V,最近收到了很多網友的關注和評論。正好前一段時間申請到一塊NXP恩智浦的一款真正的RISC-V開發板——織女星開發板,所以拿來玩玩,學習一下RISC-V架構處理器的開發。
RISC-V(發音同「risk-five」)是一種免費開源指令集架構(ISA),通過開放標準協作開創處理器創新的嶄新紀元。RISC-V基金會創立 於2015年,由超過235家成員組織組成,建立了首個開放、協作的軟硬體創新者社區,開創了處理器創新的新時代。RISC-V ISA發端於深厚的學術研究,將免費且可擴展的軟硬體架構自由度提升至新的水平,為未來50年的計算設計與創新鋪平了道路。——來自RISC-V_百度百科
現在的處理器指令集主要分為RISC和CISC,即精簡指令集和複雜指令集,RISC的代表就是著名的ARM架構,專註於高性能,低功耗,小體積,主要應用於移動設備;而CISC的代表是x86架構,像常用的PC、伺服器的CPU等等,專註於桌面,高性能和民用市場。
而RISC-V是屬於RISC陣營的,RISC-V,即第五代精簡指令集。相比於ARM,RISC-V的歷史很短,2010年誕生於加州大學伯克利分校,當時的Krste Asanovic教授希望尋找一個合適的CPU指令架構,但x86架構複雜臃腫、ARM架構需要授權費、開源的OpenRISC架構又太老舊了,所以他最終決定自己做個開源CPU架構,並在2015年成立了RISC-V基金會(RISC-V Foundation ),專門推動RISC-V發展,現在的RISC-V基金會成員也超過了235個,包括國外的Google、三星、英偉達、微芯、高通、惠普、意法半導體、西數、NXP,國內的阿里巴巴、華為、高雲等公司。最新的RISC-V基金會成員:RISC-V基金會成員列表
本著大道至簡的原則,《RISC-V架構文檔(The RISC-V Instruction Set Manual)》僅有236頁,熟悉體系結構的工程師僅需一至兩天便可將其通讀,雖然RISC-V的架構文檔還在不斷地豐富,但是相比x86的架構文檔與ARM的架構文檔,RISC-V的篇幅可以說是極其短小精悍。
ARM處理器按位數可分為32位和64位,按架構又可分為Cortex-A/Cortex-R/Cortex-M三大系列,分別針對不同的應用領域。而RISC-V也有很多內核,截止目前(2019-06-22),RISC-V社區顯示的Core共有29個,SOC PLATFORM共有13個,SOC共有7個。
織女星開發板是OPEN-ISA社區為中國大陸地區定製的一款體積小、功耗超低和功能豐富的基於RV32M1 的 RISC-V評估開發板。利用該開發板,用戶可以快速建立一個使用 RV32M1 的 RISC-V應用和演示系統。
RISC-V內核支持使用SEGGER公司的JLink調試器來進行程序的下載、調試,沒錯,就是那個經常用來調試ARM內核的調試器,要使用帶有TMS(SWDIO)、TCLK(SWCLK)、TDI、TDO介面的調試器,不能使用那種只有SWDIO和SWCLK的調試器。當然,也可以使用板載的FreeLink調試器,不過在使用板載調試器調試RISC-V之前,需要使用LPCScrypt_installer_2.1.0_842.exe軟體,把FreeLink的CMSIS-DAP固件升級為JLink固件,這樣才可以調試RISC-V核。可以參考:織女星開發板調試器升級為Jlink固件
之所以說這是一塊真正的RISC-V開發板,是因為它的主控晶元RV32M1是真正的RISC-V內核晶元,眾所周知,市面上很多RISC-V開發板基本都是基於FPGA實現的RISC-V軟核處理器。
VEGA織女星開發板分為兩種,一種是國際版,一種是國內版
硬體上稍微有所不同,軟體上完全兼容國際版VEGABoad 開發板,充分利用已有的 OPEN-ISA的生態環境,希望進一步帶動中國大陸地區 RISC-V的軟體生態鏈。
這塊開發板從申請到收到,大概用了兩周的時間,包裝盒、開發板、跳線帽、MicroUSB數據線,一應俱全,全國包郵,不得不說大廠就是大氣。
VEGA織女星開發板採用6層PCB設計,以滿足 RM32M1 設備所需的射頻電路。沉金PCB工藝,藍色油墨,白色絲印,符合歐盟RoHS標準,無鉛環保。晶元周圍留有屏蔽罩的焊接位置,不過並沒焊接。好了,我們來看一下板載的資源吧。
要重點介紹一下織女星開發板的主控晶元RV32M1,RV32M1是一顆真正的 RISC-V晶元,其目的是為了擴大和推動 RISC-V生態系統的發展,讓廣大的MCU 嵌入式開發工程師有真正的 RISC-V 晶元可用。目前該晶元只供應給OPEN-ISA 社區生產評估開發板使用,不單獨銷售。如果需要樣片,可以到社區申請。下面來看一下RV32M1的片上資源。
uint32_t SysClk;
SystemCoreClockUpdate();
SysClk = SystemCoreClock;
PRINTF("系統時鐘: %d ", SysClk);
和其他的ARM內核開發一樣,織女星開發板的ARM內核開發,可以使用以下環境
注意:Keil環境要安裝要安裝openisa的器件支持包
關於織女星開發板開發環境的搭建及相關配置可以參考:
參考上述文章,搭建完成開發環境後,就可以導入Demo工程,點亮一個LED燈,如下效果。
歡迎關注我的個人博客:www.wangchaochao.top
www.wangchaochao.top
或微信掃碼關注我的公眾號
推薦閱讀: