在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

另辟蹊徑,看大牛如何在CLion中開發HPM6750

先楫半導體HPMicro ? 2022-09-22 10:20 ? 次閱讀

本期工具分享來自一名不愿留名的熱心先楫粉絲,咱就稱大神為 @L君吧!內容著重介紹了 如何在CLion中開發HPM6750,感興趣的趕緊上車

HPM6750 是先楫半導體 HPM6000 系列的旗艦產品,采用雙RISC-V內核(AndesCore D45)設計。目前先輯半導體主要推薦使用SEGGER Embedded Studio進行開發,可以免費進行商業應用。在未來,先輯還可能推出一款基于 VS code 的集成化開發平臺。這篇文章主要介紹如何在 CLion 上進行配置開發。
在進入正題之前,首先需要明確的是無論 SEGGER Embedded Studio 還是 VS Code,都只是一個開發環境,并不綁定編譯器。如 SEGGER 有一些自己的工具鏈,但也可以用 Andes 的甚至是 Clang。目前 HPM6000 系列可用的編譯器包括但不一定限于以下列表:

名稱編譯器前綴說明獲取方式
riscv32-unknow-elf主線riscv32-unknow-elfrv官方工具鏈,需修改HPM_SDK方可使用GitHub - riscv-collab/riscv-gnu-toolchain: GNU toolchain for RISC-V, including GCC
riscv32-unknow-elf魔改版riscv32-unknow-elf針對HPM的修改版先輯sdk包
nds32le-elf-newlib-v5riscv32-elfAndes 工具鏈,性能最優GitHub - andestech/nds-gnu-toolchain: GNU toolchain for AndesCore

如果不追求使用主線工具鏈,選擇第二、第三種工具鏈均可。第二種工具鏈的優勢是可以直接下載到工具鏈包,而 Andes 的工具鏈優勢是性能最佳,兩者的 coremark 跑分大約有 20% 的差距(2022.09.15),但是目前尚未提供可直接下載的二進制包。
那么有沒有簡單不麻煩的配置方式?SEGGER Embedded StudioWindows Linux MacOS 通吃。

軟件安裝


使用 CLion 開發 HPM6000 系列單片機需要以下軟件:

  • CLion
  • 適用于 HPM6000 系列的編譯器
  • 適用于 HPM6000 系列的 openocd
  • Python3.8 及以上版本

1 nds-gnu-toolchain 的編譯(可選)


RISC-V 是一個開放的指令集架構,各個 IP 廠商都可以根據自己的需求定制,因此 RISC-V 雖然有 riscv-gnu-toolchain 這樣的公版編譯器,但并非所有 RISC-V 核心都適合使用,廠商往往會根據自己的核心特點自行定制一套編譯器。對于 Andes 而言,nds-gnu-toolchain 就是他們自行定制的一套編譯工具鏈,只有使用這一套工具鏈才能獲得最佳的性能(例如 coremark 4600+ 的分數)
Andes 和 hpmicro 目前均沒有提供這套工具鏈的二進制文件下載,因此需要自行編譯。項目 README 給出了編譯方法,主要命令如下所示。目前(2022.09.15)在 Ubuntu22.04 系統下會出現undefined reference to _initialize_string_view_selftests()錯誤,請選擇 20.04 等版本進行編譯(Ubuntu20.04 WSL2 測試通過)。若初始化子模塊時無法下載,可以參考這里的方法通過鏡像站解決。

git clone https://github.com/andestech/nds-gnu-toolchain.gitcd nds-gnu-toolchaingit submodule update --init --recursive./build_elf_toolchain.sh如果編譯腳本沒有報錯,最后你將會獲得一個名為nds32le-elf-newlib-v5的文件夾,它就是下一步我們需要使用的工具鏈文件夾。如果你需要支持浮點數的工具鏈,可以根據 README 的介紹修改編譯腳本,構建nds32le-elf-newlib-v5d/nds32le-elf-newlib-v5f這兩個工具鏈。

2 軟件安裝與配置

首先,請安裝以下軟件,并準備好可運行的 CLion

sudo apt install build-essential cmake ninja-build libc6-i386 libc6-i386-cross libstdc++6-i386-crosssudo apt install python3 python3-pip隨后,請從pan.baidu.com/s/1qvyXhh中下載 SDK/linux_toolchain 下的 openocd,以及 SDK/linux_toolchain 下的 riscv-gnu-toolchain 或者準備自行編譯 nds32le-elf-newlib-v5,并通過 git 獲取 hpm_sdkgit clone https://github.com/hpmicro/hpm_sdk請將以上文件解壓并放置在恰當的位置,以便你能夠輕易找出它們的路徑,一種參考布局如下圖所示af1f9502-39e4-11ed-b180-dac502259ad0.png下面,我們需要設置一些環境變量。這些環境變量會由 HPM_SDK 中的 CMake 腳本調用,因此如果你后面遇到 CMake 找不到某些內容的報錯,不妨首先考慮環境變量問題。使用你喜歡的編輯器打開 ~/.bashrc,在末尾添加上下面的內容,假定TOOLCHAIN_PATH作為工具鏈的解壓目錄(需要滿足在TOOLCHAIN_PATH\bin下可以找到riscv32-elf-gcc),HPM_SDK_PATH 作為 hpm_sdk 的解壓目錄。

# for nds32le-elf-newlib-v5export HPM_SDK_BASE=HPM_SDK_PATHexport GNURISCV_TOOLCHAIN_PATH=TOOLCHAIN_PATHexport HPM_SDK_TOOLCHAIN_VARIANT=nds-gcc
# for riscv-unknow-elfexport HPM_SDK_BASE=HPM_SDK_PATHexport GNURISCV_TOOLCHAIN_PATH=TOOLCHAIN_PATHaf308e8e-39e4-11ed-b180-dac502259ad0.png最后,我們更新環境變量并安裝一些 Python 庫。如果你在 pip 安裝這個過程失敗了,請考慮環境變量設置是否正確

source ~/.bashrcpip3 install --user -r "$HPM_SDK_BASE/scripts/requirements.txt

OpenOCD設置


OpenOCD 使用一系列配置文件描述電路板的調試器和芯片,這些內容均存放在 `hpm_sdk/boards/openocd/` 路徑之下。為了方便起見,我們需要創建一個板級 OpenOCD 描述文件,放置在該目錄下。以 hpm6750evkmini 為例,內容如下,請將 HPM_SDK_BASE 替換為你的 sdk 路徑。其他開發板請自行對照內容配置文件內容修改

# /hpm_sdk/boards/openocd/hpm6750evkmini.cfg
source $HPM_SDK_BASE/boards/openocd/probes/ft2232.cfgsource $HPM_SDK_BASE/boards/openocd/soc/hpm6750-single-core.cfgsource $HPM_SDK_BASE/boards/openocd/boards/hpm6750evkmini.cfg

CLion配置

啟動 CLion,打開 hpm_sdk/sample/coremark 項目,打開 Setting

1 Toolchain

新建一個 System 類型的工具鏈并命名為 nds-v5,修改 C/C++ 編譯器和 GDB 的路徑為 nds-gcc 的可執行文件路徑,如下圖所示。如果使用 riscv-unknow-elf,則選擇對應的路徑。af39fa6e-39e4-11ed-b180-dac502259ad0.png

2 CMake

打開 CMake 欄,在 CMake Option 中加入下面的語句,并根據你的喜好修改名稱,如下所示

-DBOARD=hpm6750evkmini -DCMAKE_BUILD_TYPE=flash_sdram_xipaf4b98fa-39e4-11ed-b180-dac502259ad0.pngHPM_SDK 需要根據開發板類型配置各種編譯選項,因此首先需要通過 CMake 給出板子名稱。后一項則是選擇了 flash_sdram_xip 這一預設內存布局,關于這方面內容,可以參考 hpm6750 手冊和相關測評文章。在明白其意義的前提下,你可以根據個人需求對這兩項選項進行修改。完成這兩步以后,你應該可以編譯 coremark 工程了。

3 配置 OpenOCD 路徑

打開選項中的嵌入式部署,將 OpenOCD 路徑設置為剛剛你所設置的 OpenOCD,注意,只能選用 HPMicro 提供的 OpenOCD,如果你已有在使用的 OpenOCD,又不想更換,可能只能選擇其他方式(如命令行)進行下載和調試。af5d4640-39e4-11ed-b180-dac502259ad0.png

4 配置 OpenOCD 目標

點擊 Run/Debug Target 窗口,點擊 Edit Configureations ..af6908c2-39e4-11ed-b180-dac502259ad0.png點擊右上角“+”添加一個 OpenOCD Download & Run,按圖示配置 Target、Excutable binary、Debugger 和 Board config file,保存后退出。af804000-39e4-11ed-b180-dac502259ad0.png

5 編譯下載和 coremark 跑分

將 hpm6750evkmin 連接到電腦,點擊 Run 綠色箭頭,程序自行編譯下載。af8fdeac-39e4-11ed-b180-dac502259ad0.png打開串口終端,獲得 coremark 跑分結果

hpm6750evkmini clock summary==============================cpu0: 816000000Hzcpu1: 816000000Hzaxi0: 200000000Hzaxi1: 200000000Hzaxi2: 200000000Hzahb: 200000000Hzmchtmr0: 24000000Hzmchtmr1: 1000000Hzxpi0: 133333333Hzxpi1: 400000000Hzdram: 166666666Hzdisplay: 74250000Hzcam0: 59400000Hzcam1: 59400000Hzjpeg: 200000000Hzpdma: 200000000Hz==============================
----------------------------------------------------------------------$$\ $$\ $$$$$$$\ $$\ $$\ $$\$$ | $$ |$$ __$$\ $$$\ $$$ |\__|$$ | $$ |$$ | $$ |$$$$\ $$$$ |$$\ $$$$$$$\ $$$$$$\ $$$$$$\$$$$$$$$ |$$$$$$$ |$$\$$\$$ $$ |$$ |$$ _____|$$ __$$\ $$ __$$\$$ __$$ |$$ ____/ $$ \$$$ $$ |$$ |$$ / $$ | \__|$$ / $$ |$$ | $$ |$$ | $$ |\$ /$$ |$$ |$$ | $$ | $$ | $$ |$$ | $$ |$$ | $$ | \_/ $$ |$$ |\$$$$$$$\ $$ | \$$$$$$ |\__| \__|\__| \__| \__|\__| \_______|\__| \______/----------------------------------------------------------------------2K performance run parameters for coremark.CoreMark Size : 666Total ticks : 315580897Total time (secs): 13.149204Iterations/Sec : 4563.013838Iterations : 60000Compiler version : GCC10.3.0Compiler flags : -Wall -Wno-format -fomit-frame-pointer -fno-builtin -ffunction-sections -fdata-sections -g -O3 -funroll-all-loops -finline-limit=600 -ftree-dominator-opts -fno-if-conversion2 -fselective-scheduling -fno-code-hoisting -mstrict-alignMemory location : STACKseedcrc : 0xe9f5[0]crclist : 0xe714[0]crcmatrix : 0x1fd7[0]crcstate : 0x8e3a[0]crcfinal : 0xbd59Correct operation validated. See README.md for run and reporting rules.CoreMark 1.0 : 4563.013838 / GCC10.3.0 -Wall -Wno-format -fomit-frame-pointer -fno-builtin -ffunction-sections -fdata-sections -g -O3 -funroll-all-loops -finline-limit=600 -ftree-dominator-opts -fno-if-conversion2 -fselective-scheduling -fno-code-hoisting -mstrict-align / STACK

由于我們構建的是 debug 版本,4563 的分數距離標稱值稍弱。如果 CMake Options 選擇 release 版本,則可以得到和標稱結果基本一致的跑分

-DCMAKE_BUILD_TYPE=flash_sdram_xip_release

知乎作者原文鏈接 (https://zhuanlan.zhihu.com/p/564229673

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6044

    文章

    44628

    瀏覽量

    638987
  • 嵌入式
    +關注

    關注

    5095

    文章

    19189

    瀏覽量

    307992
收藏 人收藏

    評論

    相關推薦

    高速鏈路設計難?利用HPM6750雙千兆以太網透傳實現LED大屏實時控制

    HPM6750雙千兆以太網透傳方案演示LED大屏顯示系統利用發光二極管構成的點陣模塊或像素單元組成大面積顯示屏顯示字符、圖像等信息,具有低功耗、低成本、高亮度、長壽命、寬視角等優點,近年來隨著
    的頭像 發表于 02-08 13:45 ?59次閱讀
    高速鏈路設計難?利用<b class='flag-5'>HPM6750</b>雙千兆以太網透傳實現LED大屏實時控制

    基于HPM_SDK_ENV開發應用程序的升級處理

    基于HPM_SDK_ENV開發應用程序的方式HPM_SDK_ENV是先楫半導體MCU的Windows集成開發環境,其包含HPM_SDK,工具
    的頭像 發表于 02-08 13:38 ?493次閱讀
    基于<b class='flag-5'>HPM</b>_SDK_ENV<b class='flag-5'>開發</b>應用程序的升級處理

    怎么用Clion開發APM32

    Clion 開發 APM32,涉及 CMake、Makefile、OpenOCD 和PyOCD 的知識,供大家參考。
    的頭像 發表于 12-17 09:19 ?1073次閱讀
    怎么用<b class='flag-5'>Clion</b><b class='flag-5'>開發</b>APM32

    如何做一個hpm6750evk2的bootloader?

    我正在做一個hpm6750evk2的bootloader。設計很簡單,boot工程代碼只做跳轉到1M后的APP工程代碼處,APP工程就是做的一個點燈的程序而已,boot、APP工程都是跑
    發表于 10-23 19:01

    HPM6750 Bootloader設計

    我正在做一個hpm6750evk2的bootloader。設計很簡單,boot工程代碼只做跳轉到1M后的APP工程代碼處,APP工程就是做的一個點燈的程序而已,boot、APP工程都是跑
    發表于 10-23 18:59

    hpm_manufacturing_tool linux 版本 選擇 hidraw 連接等待超時

    _manufacturing_tool_gui linux 版本 選擇 hidraw 連接 HPM6750 芯片,能識別到 hidraw 設備,單擊連接是提示重啟芯片這個時候會等待超時然后軟件報錯,此時查看 lsusb 設備是檢測不到 hpm6750
    發表于 08-07 16:43

    clion2020.3.3版本+idf4.4.5,在clion設置工具鏈時,找不到idf_cmd_init.bat文件,為什么?

    clion2020.3.3版本+idf4.4.5,在clion設置工具鏈時,找不到idf_cmd_init.bat文件,
    發表于 06-11 06:44

    idf-clion-plugin安裝失敗的原因?

    Clion版本:2023.1.1; 安裝方式:從GitHub倉庫“Download Zip”后,在Clion中選擇“從本地磁盤安裝”; 報錯:無法從文件 idf-clion-plug
    發表于 06-11 06:22

    開發者分享 | 基于先楫RT-Thread BSP,使用CLion開發應用

    本期開發者:朱彥祖RT-Thread資深工程師,HPM6700/6400元老級開發者及骨灰級用戶,先輯生態社區常駐優秀開發者,江湖人稱杭州吳彥祖。背景最近在使用先輯
    的頭像 發表于 06-07 08:17 ?3055次閱讀
    <b class='flag-5'>開發</b>者分享 | 基于先楫RT-Thread BSP,使用<b class='flag-5'>CLion</b><b class='flag-5'>開發</b>應用

    先楫半導體所有開發板已上RT-Thread主線啦

    型號:HPM6750EVKMINIHPM6750EVKHPM6750EVK2HPM6300EVKHPM6200EVKHPM5300EVKHPM5301EVKLITEHPM6800EVK生態共贏基于RT-Thread強大的社區生態和豐富的軟件包,各位小伙伴可以實現各類圖形圖像、網絡互聯、工業自動化
    的頭像 發表于 06-05 08:17 ?638次閱讀
    先楫半導體所有<b class='flag-5'>開發</b>板已上RT-Thread主線啦

    先楫半導體 hpm_sdk v1.5.0 正式發布

    的Andes toolchain,coremark分數低于使用Segger Embedded Studio集成的Andes Toolchain的結果。 快速了解 hpm_sdk 支持的開發
    發表于 04-08 11:14

    基于先楫HPM5300 RISC-V內核MCU的HPM5361EVK開發板測評效果(二)

    HPM5361EVK是基于先楫HPM5300系列高性能RISC-V內核MCU的一款開發板。
    的頭像 發表于 03-12 10:30 ?3137次閱讀
    基于先楫<b class='flag-5'>HPM</b>5300 RISC-V內核MCU的<b class='flag-5'>HPM</b>5361EVK<b class='flag-5'>開發</b>板測評效果(二)

    HPM6750體驗ADC

    1、新建RTT工程,工程添加對ADC的驅動: 2、保存工程后,添加測試代碼。 3、我們根據原理圖上的J10接個,只有PE29是ADC3的輸出通道 4、先定義通道、任務 #define
    發表于 02-17 16:00

    解決HPM6750EVK2jlink下載

    拿到HPM6750EVK2,使用jlink下載時,我原來用買jlink配的20轉10轉接板進行連接,下載程序里一直報不能連接到開發板。經過查找用手冊后,找到了問題。 我的jlink的引腳圖與之不對
    發表于 02-16 10:30

    先輯HPM6570用Jlink下載程序出錯

    as current target interface. J-Link>jtagconf -1 -1 J-Link>exec device=HPM6750xVMx Device
    發表于 02-16 09:32
    主站蜘蛛池模板: 97人洗澡人人澡人人爽 | 美女扒开尿口给男人桶 | 天天干天天操天天做 | 欧美色图首页 | 美女福利在线观看 | 1024手机在线看永久免费 | 黄色片网站大全 | 日本xxxxxxxxx68| 日本三级电影在线观看 | 久久噜国产精品拍拍拍拍 | 性叉叉| 久久国产成人精品国产成人亚洲 | 538porm在线看国产亚洲 | 免费黄色在线视频 | 在线高清视频大全 | 国模网站 | 黄色三级视频 | 秋霞一级特黄真人毛片 | 九九热在线精品视频 | 色噜噜噜噜噜在线观看网站 | 一区二区三区高清不卡 | 国产综合精品久久久久成人影 | 天天综合在线视频 | 五月婷婷六月丁香激情 | 快播久久 | 好紧好爽水真多18 | 鲁一鲁色一色 | 亚洲资源在线视频 | 午夜看一级特黄a大片 | 久久精品男人影院 | 久操视频免费观看 | 成人a区 | 天天舔天天色 | 天堂网www最新版在线资源 | 全部免费特黄特色大片农村 | 国产五月 | 国内一级特黄女人精品片 | 888米奇色狠狠俺去啦 | 免费观看在线永久免费xx视频 | 亚洲91| 天天做天天爱天天综合网 |