芯來科技為方便客戶進行基于鴻蒙生態的RISC-V軟件開發,在Nuclei RISC-V 32位處理器上移植并適配了鴻蒙LiteOS-M內核。
目前該內核已可支持Nuclei Demo SoC——FPGA評估軟核,和基于芯來科技的RISC-V內核的MCU——GD32VF103。
LiteOS-M內核
OpenHarmony LiteOS-M內核針對MCU類處理器,例如Arm Cortex-M、RISC-V32位的設備,面向AIoT領域構建的輕量級物聯網操作系統內核。此內核具有小體積、低功耗、高性能的特點。其代碼結構簡單,主要包括內核最小功能集、內核抽象層、可選組件以及工程目錄等,分為硬件相關層以及硬件無關層,硬件相關層提供統一的HAL(Hardware Abstraction Layer)接口,提升硬件易適配性,滿足AIoT類型豐富的硬件拓展。
OpenHarmony LiteOS-M核內核架構圖
芯來開發板
芯來科技目前有兩款開發板可以快速體驗最新鴻蒙LiteOS-M內核:
Nuclei DDR200T——集成了FPGA和通用MCU的RISC-V評估開發板,以及RV-STAR——基于GD32VF103 MCU的RISC-V評估開發板。
Nuclei DDR200T開發板采用12V外部直流電源,包含一個MCU子系統和一個FPGA子系統。
FPGA子系統采用Xilinx XC7A200T-2 FPGA芯片,并且提供板載FPGA JTAG下載器,不需額外配置FPGA下載器即可完成內核的燒寫。此外,開發板還提供豐富的板載存儲(Flash,DDR, eMMC, EEPROM)和豐富的接口資源(數字,模擬),以及蜂鳥調試器接口,方便下載調試。
Nuclei Demo SoC(FPGA評估軟核)就可以燒寫在這塊FPGA子系統上運行。
NucleiRV-STAR開發板
Nuclei RV-STAR開發板采用GD32VF103VBT6微控制器,結合芯來科技Bumblebee內核,內置128KB Flash、32KB SRAM。開發板外設資源眾多,包括:
Timer(高級16位定時器*1,通用16位定時器*4)、U(S)ART*5、I2C*2、SPI*3、CAN*2、USBFS*1、ADC*2(16路外部通道)、DAC*2、EXMC*1。開發板還提供大量接口,包括:USB Type-C接口、Micro USB接口、microSD卡插槽(默認沒焊接)、JTAG接口、PMOD接口*2(SPI、I2C)、雙排標準2.54mm排母接口:Arduino兼容接口(外側),EXMC擴展接口(內側)以及用戶按鍵*2(復位、喚醒)。
芯來內核
本次OpenHarmony LiteOS-M內核支持針對芯來科技N級別內核RV32架構,并采用N307FD內核作為使用示例。
N300系列32位超低功耗RISC-V處理器面向機制能效比且需要DSP,FPU特性的場景而設計,非常適合對標ARM Cortex-M3/M4/M4F/M33內核,應用于IoT和工業控制等場景。
芯來LiteOS-M內核使用
芯來LiteOS-M內核倉庫鏈接如下:https://gitee.com/riscv-mcu/kernel_liteos_m/tree/dev_nuclei/
倉庫內整體文件結構直觀明了,在各開發板對應的target文件夾中較為詳細的列出各文件/文件夾的作用,便于理解和使用。
芯來科技本次支持的所有工程均采用makefile編譯管理,芯來科技GCC工具鏈編譯,資源集中,所有需要的內容均可在芯來官網找到。
這里以RV-STAR開發板為例,介紹倉庫的使用方法:
下載工具鏈并配置驅動
打開芯來科技文檔與工具頁面,按照以下步驟下載工具鏈:
CentOS或Ubuntu系統請點擊圖中紅框1下載RISC-V GNU工具鏈;
點擊圖中藍框2-1下載64bit的OpenOCD;
確保make工具版本不低于3.82;
Ubuntu系統使用以下指令安裝make工具
sudo apt-getinstall make
CentOS系統使用以下指令安裝
sudo yum installmake
新建Nuclei文件夾并在此文件夾中新建gcc文件夾和openocd文件夾;
解壓縮之前下載的GNU工具鏈到任意文件夾中,復制其中bin文件件所在層級的所有內容到gcc文件夾中;
同樣解壓縮之前下載的OpenOCD到任意文件夾中,復制其中bin文件件所在層級的所有內容到openocd文件夾中。
工具鏈下載完成后,需要配置驅動,步驟如下:
連接開發板到Linux中,確保USB被Linux識別出來;
在控制臺中使用lsusb指令查看信息,參考的打印信息如下:
Bus001Device010: ID0403:6010FutureTechnologyDevicesInternational, LtdFT2232xxxx
將github
https://github.com/riscv-mcu/ses_nuclei_sdk_projects/blob/master/misc/99-openocd.rules
上misc文件夾內99-openocd.rules文件復制到當前路徑下,控制臺中輸入以下指令復制文件到指定路徑下;
sudo cp99-openocd.rules /etc/udev/rules.d/99-openocd.rules
斷開調試器再重新連接到Linux系統中;
使用ls /dev/ttyUSB*命令查看ttyUSB信息,參考輸出如下:
/dev/ttyUSB0 /dev/ttyUSB1
使用ls -l /dev/ttyUSB1命令查看分組信息,參考輸出如下。可以看到ttyUSB1已經加入plugdev組,接下來我們要將自己添加到plugdev組。使用whoami命令查看當前用戶名,我們將其記錄為< your_user_name >;
crw-rw-r--1 rootplugdev188, 1 Nov28 12:53/dev/ttyUSB1
使用sudo usermod -a -G plugdev
再次確認當前用戶名已屬于plugdev組,使用groups命令,可以看到打印信息中有plugdev即成功將當前用戶添加至plugdev組。
編譯源碼
請在當前控制臺中配置NUCLEI_TOOL_ROOT路徑,假設Nuclei文件夾所在路徑為/home/Nuclei,輸入:
exportNUCLEI_TOOL_ROOT=/home/Nuclei
或者使用時make選項增加:
NUCLEI_TOOL_ROOT=/home/Nuclei
復制倉庫代碼到本地。在命令行中輸入:
git clone https://gitee.com/riscv-mcu/kernel_liteos_m.git
復制代碼到本地;
打開至代碼根目錄下
/target/riscv_nuclei_gd32vf103_soc_gcc/GCC
輸入:makeall
開始編譯,編譯結束后部分參考輸出如下:
text data bss dec hex filename 243301121676841210a0fa build/Nuclei-rvstar-gd32vf103-soc.elf
若編譯前想清理工程,請使用:
makeclean
下載調試、運行
調試或運行前請先連接RV-STAR開發板,確保已按照環境配置中驅動配置部分配置完成。
同樣配置好NUCLEI_TOOL_ROOT路徑,并打開至代碼根目錄下的:
/target/riscv_nuclei_gd32vf103_soc_gcc/GCC
輸入:
makedebug
進入GDB調試;
等待到進入GDB調試界面時,輸入:
load
下載編譯好的elf文件,就可以開始調試;
若想直接運行,請同樣在調試時所在位置輸入:
makeupload
運行時可以查看串口打印內容,使用串口查看工具,這里以minicom為例,若未安裝此工具可自行安裝或使用其他串口查看工具。打開控制臺,輸入:
minicom-D /dev/ttyUSB1 -b 115200
打開串口查看工具。
運行時參考輸出如下:
總結
本次芯來RISC-V內核支持LiteOS-M內核完成了基于ECLIC的OpenHarmony LiteOS-M內核任務調度移植適配工作,以及芯來內核timer移植適配工作。編譯上采用make編譯管理系統,各參數區分配置,簡單易懂。完全適配芯來GCC編譯器,資源集中,便于查找。使用上簡單易懂,僅兩條指令可完成編譯運行。針對不同的開發板創建了不同的工程,可直接運行使用。在根目錄下target文件夾內,各開發板對應的工程文件夾配有較為詳細的使用說明,可參考說明搭建編譯運行環境。
編輯:jq
-
dsp
+關注
關注
554文章
8058瀏覽量
349682 -
芯片
+關注
關注
456文章
51062瀏覽量
425810 -
鴻蒙系統
+關注
關注
183文章
2637瀏覽量
66535
原文標題:芯來科技RISC-V處理器支持鴻蒙LiteOS-M內核
文章出處:【微信號:nucleisys,微信公眾號:芯來科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論