真正的RISC-V開發板——VEGA織女星開發板開箱評測


前言

由於最近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架構

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個

  • 部分RISC-V Core
RISC-V Core Supplier Github Bit License
RI5CY ETH Zurich, Università di Bologna Github 32 Solderpad Hardware License v. 0.51
Zero-riscy ETH Zurich, Università di Bologna Github 32 Solderpad Hardware License v. 0.51
Hummingbird E200 Bob Hu(胡振波) Github 32 Apache 2.0
Riscy Processors MIT CSAIL CSG Github / MIT
SweRV EH1 Western Digital Github 32 Apache 2.0
K210 Kendryte(嘉楠耘智) Github 64 BSD
freedom SiFive Github / BSD
  • RISC-V SoC
RISC-V SoC Supplier Core OS Bit Link
RV32M1 NXP RI5CY,Zero RI5CY,ARM Cortex-M4F,ARM Cortex-M0+ RTOS 32 Datasheet
FE310-G000 SiFive E31 RTOS 32 Datasheet
FE310-G002 SiFive E31 RTOS 32 Product Page
Freedom U540 SiFive U54, E51 Linux 64 Product Page
GAP8 GreenWaves Technologies PULP / 1 + 8 RI5CY RTOS 32 Product Page
K210 Kendryte(嘉楠耘智) K210 RTOS 32 Datasheet
RavenRV32 efabless PicoRV32 RTOS 32 Datasheet

關於VEGA織女星開發板

織女星開發板是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軟核處理器。

基於FPGA實現的RISC-V開發板

  • Perf-V:國內澎峰科技出品,基於Xilinx Artix-7系列FPGA-XC7A50T實現
  • 蜂鳥E203:國內芯來科技出品,基於Xilinx Artix-7系列FPGA-XC7A75T,可以配置為RV32IC或RV32EC架構。
  • 小腳丫STEP開發板:國內思得普科技出品,基於Intel公司Cyclone 10系列FPGA芯片10CL016YU256C8G
  • 小腳丫STEP-MXO2 二代FPGA開發板:基於Lattice公司MXO2系列的FPGA芯片LCMO2-4000HC-4MG132

基於RISC-V芯片實現的開發板

  • NXP VEGA織女星開發板:NXP恩智浦出品,基於NXP四核異構處理器,片上集成兩個ARM內核和兩個RISC-V內核,板載資源豐富。目前還買不到這塊開發板和RV32M1芯片,想體驗這塊RISC-V板子的朋友,可以免費申請:NXP恩智浦VEGA織女星開發板免費申請!官方社區:OPEN-ISA社區
  • Sipeed M1(荔枝丹)開發板:基於K210 RISC-V芯片,K210是國內嘉楠耘智的團隊在2018年研發出一款7nmAI芯片,采用了基於rocket-chip的雙核RV64GCC RISC-V CPU。
  • Lichee Tang(荔枝糖)開發板:基於國產FPGA芯片EG4S20,EG4S20是國內安路科技開發設計的FPGA芯片,20K邏輯單元,130KB SRAM。

VEGA織女星開發板分為兩種,一種是國際版,一種是國內版

  • 國際版本VEGA開發板

國際版本VEGA開發板

  • 國內版織女星開發板RV32-VEGA-Lite

國內版織女星開發板

硬件上稍微有所不同,軟件上完全兼容國際版VEGABoad 開發板,充分利用已有的 OPEN-ISA的生態環境,希望進一步帶動中國大陸地區 RISC-V的軟件生態鏈。

開箱爆照

這塊開發板從申請到收到,大概用了兩周的時間,包裝盒、開發板、跳線帽、MicroUSB數據線,一應俱全,全國包郵,不得不說大廠就是大氣。

  • 開發板正面

開發板正面

  • 芯片特寫

板載資源簡介

VEGA織女星開發板采用6層PCB設計,以滿足 RM32M1 設備所需的射頻電路。沉金PCB工藝,藍色油墨,白色絲印,符合歐盟RoHS標准,無鉛環保。芯片周圍留有屏蔽罩的焊接位置,不過並沒焊接。好了,我們來看一下板載的資源吧。

  • 主控芯片:恩智浦的RV32M1, 四核異構:兩個ARM核,兩個RISC-V核,自帶無線功能。
  • 板載調試器:基於LPC4322的FreeLink調試器,默認為CMSIS固件,升級為Jlink固件后可調試ARM核和RISC-V內核。
  • 調試接口:兩個ARM核共用一個JTAG調試口,兩個RISC-V核共用一個JTAG調試口,可能是由於PCB空間大小的限制,這兩個2*5P的接口並不是通用的2.54mm間距的排針,而是比較少用的1.25的排針,對於手頭沒有這種接口排線的朋友,可能不是很方便的使用,不過我們有萬能的淘寶。
  • RF射頻電路:板載有射頻電路,當然也留有了J16天線端子的位置。
  • 串行Flash:美信的MX25R3235FZNIL0,4MB串行閃存,可以存儲一些非易失性數據。
  • 加速度和磁力傳感器:恩智浦的FXOS8700CQ,六軸傳感器,IIC接口
  • SDHC卡槽:PCB背面留有位置,但是並沒有焊接。
  • 光敏傳感器:PCB留有位置,沒有焊接。
  • 按鍵:4個用戶按鍵,板載的兩側各2個,可以實現人機交互操作。
  • LED指示:1個RGB和1個狀態指示LED 。
  • Arduino接口:內部的兩排插座,是兼容Arduino的,如果之前玩過Arduino,那么它的一些擴展模塊,可以直接使用,而無需連線。
  • 調試跳線:板子中部留有兩排跳線,一邊是FreeLink調試器的輸出,一邊是RV32M1芯片的ARM調試接口,如果想使用板載調試器調試ARM內核,那么只需要使用幾個跳線帽直接短接排針即可,但是如果想使用板載調試調試RISC-V內核,需要將跳線斷開,並使用導線將FreeLink的調試輸出和RISV-V調試接口J17相連接。

主控芯片RV32M1簡介

要重點介紹一下織女星開發板的主控芯片RV32M1,RV32M1是一顆真正的 RISC-V芯片,其目的是為了擴大和推動 RISC-V生態系統的發展,讓廣大的MCU 嵌入式開發工程師有真正的 RISC-V 芯片可用。目前該芯片只供應給OPEN-ISA 社區生產評估開發板使用,不單獨銷售。如果需要樣片,可以到社區申請。下面來看一下RV32M1的片上資源。

  • 兩個RISC-V內核,一個 RI5CY 核、一個 ZERO_RISCY 核。關於這兩款RISC-V Core,是由博洛尼亞大學蘇和黎世聯邦理工學院(ETH Zurich, Università di Bologna)開發的32位內核,遵循Solderpad Hardware License v. 0.51許可。

  • 兩個ARM內核,一個 Cortex-M4F 核、一個 Cortex-M0+ 內核。

  • 1.25 MB Flash 、384 KB SRAM

  • 集成了可工作在 2.36 GHz 到 2.48 GHz 頻率范圍,支持 FSK/GFSK 和 O-QPSK調制的無線收發器。

  • 支持低功耗藍牙(BLE)、通用 FSK(支持250、500、1000、2000 kbps)或者 IEEE 802.15.4 標准,可以運行 BLE Mesh、Thread和 Zigbee協議棧。

  • 兩個ARM核共用一個JTAG調試口,兩個RISC-V核共用一個JTAG調試口,每個核都可以運行在48MHz頻率,但在高速模式(HSRUN)時,可達72MHz,如果要查看系統當前的運行頻率,可以在主程序中使用如下函數來獲取系統時鍾頻率:

        uint32_t SysClk;
        SystemCoreClockUpdate();  
        SysClk = SystemCoreClock; 
        PRINTF("系統時鍾: %d \r\n", SysClk);
    
  • 4個核被分為兩個子系統,大核CM4F/RI5CY和小核CM0+/ZERO-RISCY,片上集成1.25 MB Flash 、384 KB SRAM,其中1 MB的Flash被大核所使用,起始地址0x0000_0000,另外的256 KB Flash被小核所使用,起始地址0x0100_0000。

  • Flash地址示意

  • 為了支持多核運行模式,RV32M1片上集成了多核管理系統(Multi_Core Unit),包括消息傳遞單元(Messaging Unit)、信號量2(SEMA42)、系統控制模塊 (MSCM)、 擴展資源控制器 (XRDC)等模塊,用於多核間的通信和控制。

  • 內部整體框圖

  • 通過配置RV32M1片上的FOPT寄存器(Flash Option Register),可以支持上電時從不同的核來啟動,默認從RISC-V RI5CY內核啟動,如果要進行ARM核開發,如M4開發,則必須切換為從ARM核啟動,否則當使用調試器進行程序下載時,根本不能識別到ARM芯片,這一點要特別注意。關於FOPT寄存器各位的描述,可以查看RV32M1參考手冊P450,為了便於切換啟動模式,官方已經為我們寫好了配置文件,直接通過openocdtelnet軟件就可以完成對FOPT寄存器的配置。

支持的開發工具

RISC-V核開發工具

  • Eclipse開發框架 + GNU MCU Build Tools編譯工具 + openocd調試軟件 + riscv32-unknown-elf-gcc編譯器
  • GCC命令行編譯

ARM核開發工具

和其他的ARM內核開發一樣,織女星開發板的ARM內核開發,可以使用以下環境

  • Keil-MDK
  • IAR
  • GCC命令行編譯

注意:Keil環境要安裝要安裝openisa的器件支持包

關於織女星開發板開發環境的搭建及相關配置可以參考:

點亮一個LED

參考上述文章,搭建完成開發環境后,就可以導入Demo工程,點亮一個LED燈,如下效果。

參考資料

歷史精選


歡迎關注我的個人博客www.wangchaochao.top

或微信掃碼關注我的公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM