二 沁恒CH32V003: Ubuntu20.04 MRS和Makefile開發環境配置

目錄

  • 沁恒CH32V003(一): CH32V003F4P6開發板上手報告和Win10環境配置
  • 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile開發環境配置
硬件準備
  • 沁恒CH32V003F4P6開發板
  • WCH-LinkE
MounRiver Studio Community 環境使用 MounRiver Studio Community IDE 進行開發是比較簡單的一種方式, 前往 http://mounriver.com/download 下載 MounRiver_Studio_Community_Linux_V130, 解壓后
  • 參照 beforeinstall/start.sh 的內容, 添加動態鏈接庫文件以及udev規則文件
  • 運行可執行文件 MounRiver Studio_Community 即可啟動MRS
創建項目File -> New -> MounRiver Project
  • Project Name: 項目名稱,隨便輸入
  • Use Default Location: 使用默認的工作空間或另外指定
  • 勾選 RISC-V Core, 因為要查找的是 CH32V003, 在下面的選擇框中選中 CH32V003, 然后選擇 CH32V003F4P6
  • 其它默認
【二 沁恒CH32V003: Ubuntu20.04 MRS和Makefile開發環境配置】點擊Finish后, IDE會創建一個帶內容的項目模板
編譯項目可以直接按 Ctrl + B 或從菜單 Project -> Build All 編譯. 如果提示編譯錯誤, 可能是工具鏈未設置, 需要設置一下工具鏈路徑
全局默認工具鏈路徑設置菜單 Window -> Preferences -> MCU, 只需要設置和CH32V003相關的工具鏈
  • Global OpenOCD Path, 設置為自帶的openocd路徑, 例如 /opt/wch/MRS_Community/toolchain/OpenOCD/bin
  • Global RISC-V Toolchains Paths, 設置為自帶的gcc路徑, 例如 /opt/wch/MRS_Community/toolchain/RISC-V Embedded GCC/bin
項目工具鏈路徑設置Project -> Properties 下可以設置當前項目相關的工具鏈路徑, 條目和全局的一樣.
燒錄Flash -> Config, 配置燒錄選項
  • 點擊第一個圖標查詢編程器狀態
  • 如果開啟了讀寫保護(底下狀態為綠), 要點擊解鎖圖標解鎖
  • 檢查Target中的MCU類型, Target File是否正確
  • Options默認全部勾選
應用后, 按F8就會開始燒錄
問題處理啟動后無創建MounRiver Project的選項如果將解壓得到的 MRS_Community 目錄修改為其它用戶, 例如將其移動到 /opt 下并 chown -R root:root, 那么在啟動后, 在 New 菜單中會看不到創建 MounRiver Project 的選項, 是因為有幾個 plugins 的權限不正確導致, 文件權限為600, 應該修改為644.
plugins目錄下 com.mounriver 開頭的文件
-rw-r--r-- 1 root root115170 Sep 20 00:35 com.mounriver.editor.ld_1.8.2.jar-rw------- 1 root root581702 Oct 10 19:19 com.mounriver.flash_1.8.2.jar-rw------- 1 root root2088946 Oct 10 19:19 com.mounriver.project_1.8.2.jar-rw-r--r-- 1 root root141287 Sep 222020 com.sun.el_2.2.0.v201303151357.jar# 執行命令sudo chmod 644 com.mounriver.*以及 plugins/org.eclipse.epp.package.embedcdt_4.17.0.20200921-0821 目錄下的幾個png文件
-rw-r--r-- 1 root root1036 Sep 222020 about.properties-rw------- 1 root root777 Sep72021 eclipse16.png-rw------- 1 root root18913 Sep72021 eclipse256.png-rw------- 1 root root1739 Sep72021 eclipse32.png-rw------- 1 root root2826 Sep72021 eclipse48.png-rwxrw-r-- 1 root root95552 Apr32020 eclipse_lg.png*-rw-r--r-- 1 root root10655 Sep 222020 intro-eclipse.svgdrwxr-xr-x 3 root root4096 Sep 222020 META-INF/-rw------- 1 root root 137750 Sep12021 MounRiver.pngdrwxr-xr-x 2 root root4096 Sep 222020 org.eclipse.ui.intro.universal.solstice/# 執行命令sudo chmod 644 *.pngMakefile, VSCode 環境如果傾向于使用其它的IDE, 例如VSCode, 則需要使用 Makefile 方式進行配置
  • 硬件 依然使用 CH32V003F4P6開發板以及WCH-LinkE,
  • 軟件 從http://mounriver.com/download下載 MRS_Toolchain_Linux_x64_V1.60.tar.xz, 注意需要使用V1.60, 舊版本不支持CH32V003.
注意: 當前CH32V系列的開發都不能使用公版RISC-V GCC和公版OpenOCD, 因為包含沁恒定制部分, 未在開源項目主干中支持.
配置步驟解壓工具鏈后
  • 參照 beforeinstall/start.sh 的內容, 添加動態鏈接庫文件以及udev規則文件
  • 將工具鏈移動到合適的位置, 并修改owner為root避免誤修改
導出項目模板
git clone https://gitee.com/iosetting/ch32v003-template.git根據自己本地環境, 修改Makefile中的配置
TOOL_CHAIN_PATH ?= /opt/gcc-riscv/riscv-wch-embedded-gcc-v1.60/binOPENOCD_PATH?= /opt/openocd/wch-openocd-v1.60/bin編譯和燒錄
# 清空make clean# 編譯make# 燒錄 = 擦除 + 燒錄 + 重啟運行make flash# 擦除make erase# 重啟運行make reset編譯參數CH32V003編譯的基本參數如下, 注意 march 和 mabi, 和 CH32V103 是不一樣的, 使用CH32V103參數編譯寫入后不運行, 這些參數是從MRS中實際執行的編譯命令中提取的
CCFLAGS := -march=rv32ec \-mabi=ilp32e \-msmall-data-limit=0 \-msave-restore \-Os \-fmessage-length=0 \-fsigned-char \-ffunction-sections \-fdata-sections \-fno-common \-Wunused -Wuninitialized -g

推薦閱讀