91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

另辟蹊徑,看大牛如何在CLion中開(kāi)發(fā)HPM6750

先楫半導(dǎo)體HPMicro ? 2022-09-22 10:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

如果不追求使用主線(xiàn)工具鏈,選擇第二、第三種工具鏈均可。第二種工具鏈的優(yōu)勢(shì)是可以直接下載到工具鏈包,而 Andes 的工具鏈優(yōu)勢(shì)是性能最佳,兩者的 coremark 跑分大約有 20% 的差距(2022.09.15),但是目前尚未提供可直接下載的二進(jìn)制包。
那么有沒(méi)有簡(jiǎn)單不麻煩的配置方式?SEGGER Embedded Studio請(qǐng),Windows Linux MacOS 通吃。

軟件安裝


使用 CLion 開(kāi)發(fā) HPM6000 系列單片機(jī)需要以下軟件:

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

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


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

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

2 軟件安裝與配置

首先,請(qǐng)安裝以下軟件,并準(zhǔn)備好可運(yùn)行的 CLion

sudo apt install build-essential cmake ninja-build libc6-i386 libc6-i386-cross libstdc++6-i386-crosssudo apt install python3 python3-pip隨后,請(qǐng)從pan.baidu.com/s/1qvyXhh中下載 SDK/linux_toolchain 下的 openocd,以及 SDK/linux_toolchain 下的 riscv-gnu-toolchain 或者準(zhǔn)備自行編譯 nds32le-elf-newlib-v5,并通過(guò) git 獲取 hpm_sdkgit clone https://github.com/hpmicro/hpm_sdk請(qǐng)將以上文件解壓并放置在恰當(dāng)?shù)奈恢?,以便你能夠輕易找出它們的路徑,一種參考布局如下圖所示af1f9502-39e4-11ed-b180-dac502259ad0.png下面,我們需要設(shè)置一些環(huán)境變量。這些環(huán)境變量會(huì)由 HPM_SDK 中的 CMake 腳本調(diào)用,因此如果你后面遇到 CMake 找不到某些內(nèi)容的報(bào)錯(cuò),不妨首先考慮環(huán)境變量問(wèn)題。使用你喜歡的編輯器打開(kāi) ~/.bashrc,在末尾添加上下面的內(nèi)容,假定TOOLCHAIN_PATH作為工具鏈的解壓目錄(需要滿(mǎn)足在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最后,我們更新環(huán)境變量并安裝一些 Python 庫(kù)。如果你在 pip 安裝這個(gè)過(guò)程失敗了,請(qǐng)考慮環(huán)境變量設(shè)置是否正確

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

OpenOCD設(shè)置


OpenOCD 使用一系列配置文件描述電路板的調(diào)試器和芯片,這些內(nèi)容均存放在 `hpm_sdk/boards/openocd/` 路徑之下。為了方便起見(jiàn),我們需要?jiǎng)?chuàng)建一個(gè)板級(jí) OpenOCD 描述文件,放置在該目錄下。以 hpm6750evkmini 為例,內(nèi)容如下,請(qǐng)將 HPM_SDK_BASE 替換為你的 sdk 路徑。其他開(kāi)發(fā)板請(qǐng)自行對(duì)照內(nèi)容配置文件內(nèi)容修改

# /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配置

啟動(dòng) CLion,打開(kāi) hpm_sdk/sample/coremark 項(xiàng)目,打開(kāi) Setting

1 Toolchain

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

2 CMake

打開(kāi) CMake 欄,在 CMake Option 中加入下面的語(yǔ)句,并根據(jù)你的喜好修改名稱(chēng),如下所示

-DBOARD=hpm6750evkmini -DCMAKE_BUILD_TYPE=flash_sdram_xipaf4b98fa-39e4-11ed-b180-dac502259ad0.pngHPM_SDK 需要根據(jù)開(kāi)發(fā)板類(lèi)型配置各種編譯選項(xiàng),因此首先需要通過(guò) CMake 給出板子名稱(chēng)。后一項(xiàng)則是選擇了 flash_sdram_xip 這一預(yù)設(shè)內(nèi)存布局,關(guān)于這方面內(nèi)容,可以參考 hpm6750 手冊(cè)和相關(guān)測(cè)評(píng)文章。在明白其意義的前提下,你可以根據(jù)個(gè)人需求對(duì)這兩項(xiàng)選項(xiàng)進(jìn)行修改。完成這兩步以后,你應(yīng)該可以編譯 coremark 工程了。

3 配置 OpenOCD 路徑

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

4 配置 OpenOCD 目標(biāo)

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

5 編譯下載和 coremark 跑分

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

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

由于我們構(gòu)建的是 debug 版本,4563 的分?jǐn)?shù)距離標(biāo)稱(chēng)值稍弱。如果 CMake Options 選擇 release 版本,則可以得到和標(biāo)稱(chēng)結(jié)果基本一致的跑分

-DCMAKE_BUILD_TYPE=flash_sdram_xip_release

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6077

    文章

    45506

    瀏覽量

    670995
  • 嵌入式
    +關(guān)注

    關(guān)注

    5200

    文章

    20481

    瀏覽量

    334556
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    固件燒錄速度實(shí)測(cè):JTAG比UART快6.8倍

    推出的工業(yè)級(jí)LGA封裝核心板,搭載先楫半導(dǎo)體HPM6450/HPM6750芯片,集成4路CANFD、雙千兆以太網(wǎng)及15路串口等工業(yè)通信接口,適用于PLC、運(yùn)動(dòng)控制、
    的頭像 發(fā)表于 01-27 11:34 ?303次閱讀
    固件燒錄速度實(shí)測(cè):JTAG比UART快6.8倍

    hpm6750 兩個(gè)板載網(wǎng)卡+usbcdc_ecm網(wǎng)卡,多次調(diào)用ftp,切換網(wǎng)卡后,報(bào)錯(cuò)

    hpm6750 兩個(gè)板載網(wǎng)卡+usbcdc_ecm網(wǎng)卡,多次調(diào)用ftp,多次切換網(wǎng)線(xiàn)后,出現(xiàn)報(bào)錯(cuò)pbuf_free:p->ref>0;有時(shí)候出現(xiàn)[E
    發(fā)表于 01-19 16:05

    何在VS code配置Zephyr集成開(kāi)發(fā)環(huán)境

    上一篇文章介紹了如何在VS code中使用瑞薩官方插件為RA芯片創(chuàng)建項(xiàng)目與項(xiàng)目調(diào)試,相信大家對(duì)RA在VS code開(kāi)發(fā)有了基礎(chǔ)的了解。
    的頭像 發(fā)表于 11-05 14:46 ?1536次閱讀
    如<b class='flag-5'>何在</b>VS code<b class='flag-5'>中</b>配置Zephyr集成<b class='flag-5'>開(kāi)發(fā)</b>環(huán)境

    開(kāi)發(fā)者分享 | HPM5E-EC-DEV:基于HPM5E00的EtherCAT開(kāi)發(fā)板分享

    Azure一名業(yè)余單片機(jī)愛(ài)好者,平時(shí)喜歡折騰各種開(kāi)發(fā)板和新出的MCU。本職工作是一名軟件工程師,日常主要從事軟件應(yīng)用開(kāi)發(fā),更多是和系統(tǒng)、應(yīng)用打交道。相比工作里的軟件世界,更喜歡在業(yè)余時(shí)間動(dòng)手做一些
    的頭像 發(fā)表于 10-29 10:15 ?1541次閱讀
    <b class='flag-5'>開(kāi)發(fā)</b>者分享 | <b class='flag-5'>HPM</b>5E-EC-DEV:基于<b class='flag-5'>HPM</b>5E00的EtherCAT<b class='flag-5'>開(kāi)發(fā)</b>板分享

    【教程】手把手教你用CLion進(jìn)行CW32開(kāi)發(fā)

    /CW32-GCC-Clion-Template 最近 CLion 對(duì)非商業(yè)用途免費(fèi)了,我立馬下載了最新的CLion2025,現(xiàn)在針國(guó)產(chǎn)武漢芯源半導(dǎo)體的 CW32單片機(jī) 搭建CLion
    的頭像 發(fā)表于 09-29 18:00 ?6974次閱讀
    【教程】手把手教你用<b class='flag-5'>CLion</b>進(jìn)行CW32<b class='flag-5'>開(kāi)發(fā)</b>

    HPM5E00EVK,ecat_io例程,卡在DisableSyncManChannel函數(shù)

    向大家請(qǐng)教一個(gè)問(wèn)題。如題, 硬件:HPM5E00EVK 開(kāi)發(fā)環(huán)境:win10, embedded studio 軟件:sdk_env_v1.10.0,ethercat/ecat_io 硬件連接
    發(fā)表于 09-25 15:06

    cubemx+clion+gcc無(wú)法使用msh怎么解決?

    通過(guò)STM32CUMX配置RTTHREAD NANO ,用keil編譯并且移植shell之后,輸入鍵盤(pán)上下鍵無(wú)反應(yīng),而用clion+gcc編譯后(修改過(guò)啟動(dòng)文件),只能打印version信息,無(wú)法顯示msh和輸入,兩者除了啟動(dòng)文件以外,其余的配置基本相同,請(qǐng)問(wèn)為啥gcc編譯后無(wú)法使用MSH?
    發(fā)表于 09-23 07:36

    hpm的vscode開(kāi)發(fā)環(huán)境搭建openocd燒錄問(wèn)題求解

    最近嘗試搭建基于vscode的hpm芯片開(kāi)發(fā)環(huán)境,遇到一些問(wèn)題,求大佬們幫忙看看。 使用hpm6e00evk開(kāi)發(fā)板sdk_env_1.10.0,cmake、ninja、openocd和
    發(fā)表于 09-09 09:55

    HPM monitor studio 只能在 hpm芯片+hpm_sdk 的組合下才能用嗎?

    使用 hpm6200evk開(kāi)發(fā)板,但未使用hpm_sdk。 然后編譯的固件elf無(wú)法在hpm monitor studio解析成功。所以說(shuō)必須要使用
    發(fā)表于 08-28 09:36

    何在 Keil rvmdk 開(kāi)發(fā)環(huán)境啟用可配置的數(shù)據(jù)閃存并設(shè)置大???

    何在 Keil rvmdk 開(kāi)發(fā)環(huán)境啟用可配置的數(shù)據(jù)閃存并設(shè)置大???
    發(fā)表于 08-26 08:18

    請(qǐng)問(wèn)如何在Keil開(kāi)發(fā)環(huán)境查看代碼大小和SRAM使用情況?

    何在Keil開(kāi)發(fā)環(huán)境查看代碼大小和SRAM使用情況?
    發(fā)表于 08-20 06:38

    戴爾科技助力企業(yè)應(yīng)對(duì)復(fù)雜多變的網(wǎng)絡(luò)威脅

    在網(wǎng)絡(luò)世界的陰暗角落,總有些黑客的行為“另辟蹊徑”,鬧出了各種奇葩事件,讓嚴(yán)肅的網(wǎng)絡(luò)安全世界也充滿(mǎn)了“魔幻現(xiàn)實(shí)主義”的色彩。
    的頭像 發(fā)表于 07-21 14:23 ?1050次閱讀

    cubemx+clion+gcc無(wú)法使用msh怎么解決?

    通過(guò)STM32CUMX配置RTTHREAD NANO ,用keil編譯并且移植shell之后,輸入鍵盤(pán)上下鍵無(wú)反應(yīng),而用clion+gcc編譯后(修改過(guò)啟動(dòng)文件),只能打印version信息,無(wú)法顯示msh和輸入,兩者除了啟動(dòng)文件以外,其余的配置基本相同,請(qǐng)問(wèn)為啥gcc編譯后無(wú)法使用MSH?
    發(fā)表于 06-13 08:17

    支持HPM6P00/HPM5E00系列!HPMicro Manufacturing Tool v0.6.0發(fā)布

    HPM6P00、HPM5E00系列SoC的燒寫(xiě)及其它操作,新增HPM6E00、HPM5E00固件;新增verify-checksum及query-rtecomman
    的頭像 發(fā)表于 06-04 08:28 ?2186次閱讀
    支持<b class='flag-5'>HPM</b>6P00/<b class='flag-5'>HPM</b>5E00系列!HPMicro Manufacturing Tool v0.6.0發(fā)布

    重磅更新 | 先楫半導(dǎo)體HPM_SDK v1.9.0 發(fā)布

    版本更新概況[New]增加HPM6P00系列MCU以及hpm6p00evk支持[New]增加了開(kāi)發(fā)板已知問(wèn)題說(shuō)明[Update]將全系列開(kāi)發(fā)板VCore電壓調(diào)節(jié)至1.275V,
    的頭像 發(fā)表于 04-02 08:31 ?1121次閱讀
    重磅更新 | 先楫半導(dǎo)體<b class='flag-5'>HPM</b>_SDK v1.9.0 發(fā)布