0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开发者分享|先楫半导体hpm_sdk使用vscode进行开发

先楫半导体HPMicro 2023-06-30 10:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、概述

先楫半导体的hpm_sdk,对于习惯用keil开发者可能不太习惯,但是从开发角度上看,是比较灵活的,可以给开发者一定的发挥空间。该sdk支持cmake构建,可以在多个支持cmake的平台构建,比如vscode,clion等平台,构建的同时也会生成segger的IDESEGGER Embedded Studio for RISC-V。对于习惯IDE开发的,也可以直接上手segger这个SEGGER Embedded Studio,先楫官方也给予免费授权,完全不用担心商业授权问题。

如果不习惯segger这个IDE,那么如果有点cmake基础(当然也可以没有),习惯用了vscode编辑代码,那么我想,这篇文章,可以一步到位,使用vscode进行一套开发,包括构建,编译,烧录,调试。本文也是基于此步骤进行说明。


二、开发流程

(一)构建

hpm_sdk是基于cmake构建开发的,每个sample都带一个CMakelist.txt,可以理解为:每个sample都是一个工程。也可以在hpm_sdk外面的路径进行新建一个 cmake工程进行开发。


安装python,起码python3.7,最好python3.9以上。在构建的时候可能会遇到一些module没有安装,请自行根据报错进行安装。

例如:需要安装jinja2,yaml。

0e4e8758-16ea-11ee-a579-dac502259ad0.png

0e5ffaec-16ea-11ee-a579-dac502259ad0.png


安装CMAKE:

window系统下的相关构建和编译烧录相关的,都可以在官方百度网盘(https://pan.baidu.com/s/1RaYHOD7xk7fnotmgLpoAlA?pwd=xk2n#list/path=%2F,提取码为xk2n)下载,本文截至发布日期,目前的sdk版本为sdk_v1.1.0。


hpm_sdk要求的cmake版本不低于3.13,当然官方也提供了安装包,可以自己指向路径到环境变量当中

下载sdk_env_v1.1.0.zip,解压后,进入tools文件夹,cmake工具下的版本为3.24.0

0e6df494-16ea-11ee-a579-dac502259ad0.png

如果想升级更高的cmake版本,网络搜索cmake,进入cmake官网(https://cmake.org),点击download,可以下载最新的,也可以下载开发者自己喜欢的不低于3.13版本。

0e963ee0-16ea-11ee-a579-dac502259ad0.png

安装cmake之后会提示是否加入环境变量,请选择加入环境变量。

0ec2d6bc-16ea-11ee-a579-dac502259ad0.png

另外构建需要Ninja,官方网盘也同样提供了ninja可执行文件,拷贝此文件,可以存放在本地任意路径,前提是需要将该可执行文件路径加入到环境变量中。本文为了方便,直接把ninja拷贝到cmake安装目录上。

0ed93fa6-16ea-11ee-a579-dac502259ad0.png

1. 设置全局环境变量

在构建之前,需要添加几个环境变量到系统当中:GNURISCV_TOOLCHAIN_PATH 和HPM_SDK_BASE


① GNURISCV_TOOLCHAIN_PATH:表示是hpm_sdk所依赖的编译器的绝对路径,也就是开发者本地路径。另外也需要将此路径加入系统环境变量中。


② HPM_SDK_BASE:表示是hpm_sdk的绝对路径,也就是开发者的本地Hpm_sdk开发路径。

另外,也需要将编译链路径放入到环境变量当中。方便vscode搜索到编译器。

0ef47744-16ea-11ee-a579-dac502259ad0.png

③ Cmake安装

0f04fe52-16ea-11ee-a579-dac502259ad0.png

0f1ab9a4-16ea-11ee-a579-dac502259ad0.png

从sdk_env_v1.1.0.文件夹进入到toolchains文件夹中,找到rv32imac-ilp32-multilib-win就是编译链工具

0f3a2848-16ea-11ee-a579-dac502259ad0.png

2. vscode下cmake插件

在扩展商店搜索cmake,安装cmake和cmake Tools

0f4df74c-16ea-11ee-a579-dac502259ad0.png

① 在开发者本地上,根据自己喜欢新建一个文件夹(用来开发所需),然后打开vscode,打开应为干净的工作区,即是没有任何文件夹。点击“文件”选择“将工作区另存为”,将工作区保存到新建的文件夹中。

0f6e627a-16ea-11ee-a579-dac502259ad0.png

② 点击"打开文件夹",为了让vscode能方便全局搜索hpm_sdk相关源文件(当然也可以用json文件包含),把hpm_sdk文件夹包含进来。

0fa16bc0-16ea-11ee-a579-dac502259ad0.png

③ 在新建的开发文件夹中,我们可以新建一个cmake工程,这里为了方便,我们直接拷贝hpm_sdk的sample的文件工程,比如drivers/gpio 文件。

0fd10146-16ea-11ee-a579-dac502259ad0.png

④ 再把拷贝的gpio工程,点击vscode右键添加到工作区当中

0ff5f690-16ea-11ee-a579-dac502259ad0.png


⑤ 添加完毕后,cmake工具栏下,会出现两个文件夹目录,我们切换到gpio这个文件夹

10165e4e-16ea-11ee-a579-dac502259ad0.png

⑥如上图所示,kit工具链提示需要选择,这里我们选择上述所说的工具链(前提已经设置为全局环境变量)

1032b184-16ea-11ee-a579-dac502259ad0.png

⑦ cmake构建的是用常规的构建type,比如Debug, release等构建,这些在hpm_sdk认为都是在RAM执行。所以有必要自定义个type.

1059d2fa-16ea-11ee-a579-dac502259ad0.png

在gpio文件夹中,我们可以新建一个.vscode文件,并在里面新建一个settings.json,这个主要用来配置vscode以及相关插件的配置文件。

1075bc72-16ea-11ee-a579-dac502259ad0.png

构建时候需要需要选择cmake build type,还需要选择board type,因为hpm_sdk包含了先楫目前发布的官方评估板,需要开发者自己去指定,所以我们可以通过加入cmake的构建参数指定Board.本文所选的是hpm6200evk。

10863962-16ea-11ee-a579-dac502259ad0.png

本文需要生成编译在flash执行的固件,根据hpm_sdk的构建类型,我们可以选择flash_xip这个类型来进行构建。当然也可以按照以下照葫芦画瓢构建其他hpm支持的构建类型

10aefc8a-16ea-11ee-a579-dac502259ad0.png

如此再次点击cmake 构建的时候,就出现以上我们添加的构建类型。

10db6f9a-16ea-11ee-a579-dac502259ad0.png

settings.json文件如下:

{ "cmake.configureArgs": [ "-DBOARD=hpm6200evk" //传递给cmake的配置参数,表明选择的board ], "cmake.defaultVariants": { "buildType": { "choices": { "flash_xip": { //buildType加入flash_xip,表示支持该类型构建 "short":"flash_xip", "long":"先楫构建 - flash构建", "buildType": "flash_xip" } } } }}

其他cmake插件参数具体可以看插件说明以及系统的settings.json文件。

1104acca-16ea-11ee-a579-dac502259ad0.png

如此,我们新建的cmake gpio工程就此构建完成

111c07b2-16ea-11ee-a579-dac502259ad0.png


(二 )编译

有了上面构建的基础,我们直接在cmake工具栏上点击build,直接就可以编译了。

114c0aac-16ea-11ee-a579-dac502259ad0.png

另外:如果不想用cmake插件工具,我们可以在任意终端窗口进行构建编译,比如powershell。

1177b0f8-16ea-11ee-a579-dac502259ad0.png

(三) 烧录调试

vscode下的烧录调试,使用的是cortex_debug插件,这个跟是不是arm没什么关系,只要设置好相关gdb相关路径即可。


1、安装Cortex_Debug插件,打开扩展设置,点击在"settings.json 中编辑"。

11a0d19a-16ea-11ee-a579-dac502259ad0.png

2、编辑以下三个参数,也就是gdb的路径,jlinkGdb路径(用于jlink调试),openocd路径(用于openocd调试)

11c6bdc4-16ea-11ee-a579-dac502259ad0.png

参数如下:

"cortex-debug.gdbPath.windows":"yourpath\\sdk_env_v1.1.0\\toolchains\\rv32imac-ilp32-multilib-win\\bin\\riscv32-unknown-elf-gdb.exe","cortex-debug.JLinkGDBServerPath.windows":"yourpath\segger\\JLink\\JLinkGDBServerCL.exe","cortex-debug.openocdPath.windows":"yourpath\sdk_env_v1.1.0\\tools\\openocd\\openocd.exe",

3、完成之后,点击vscode左边工具栏的"运行与调试" ,点击创建launch,json文件。选择gpio这个工程文件夹,后选择cortex_debug,就会在对应的文件夹中生成launch,json文件

11e5dc72-16ea-11ee-a579-dac502259ad0.png

120a7de8-16ea-11ee-a579-dac502259ad0.png

122a8f20-16ea-11ee-a579-dac502259ad0.png

4、对于jlink配置。需要指定elf文件路径,以及选择的芯片型号,接口

124a6462-16ea-11ee-a579-dac502259ad0.png

配置:

{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "cwd": "${workspaceFolder}", "executable": "${workspaceFolder}/build/output/demo.elf", "name": "hpmicro_jlink_debug", "request": "launch", "type": "cortex-debug", "device": "HPM6280xPAx", "runToEntryPoint": "main", "showDevDebugOutput": "none", "interface": "jtag", "servertype": "jlink", } ]}

5、对于openocd配置如下:需要指定openocd的配置文件路径,比如probes、soc、boards的cfg文件

1279810c-16ea-11ee-a579-dac502259ad0.png

配置:

{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "cwd": "${workspaceRoot}", "executable": "${workspaceFolder}/build/output/demo.elf", "showDevDebugTimestamps": "raw", "name": "HPM_dapDebug", "request": "launch", "type": "cortex-debug", "servertype": "openocd", "configFiles": [ "your path\\sdk_env_v1.1.0\\hpm_sdk\\boards\\openocd\\probes\\ft2232.cfg", "your path\\sdk_env_v1.1.0\\hpm_sdk\\boards\\openocd\\soc\\hpm6280-single-core.cfg", "your path\\sdk_env_v1.1.0\\hpm_sdk\\boards\\openocd\\boards\\hpm6200evk.cfg" ], // "searchDir": [], // "runToEntryPoint": "__start()", // "showDevDebugOutput": "none" } ]}

6、配置完毕之后,点击调试按钮,即可下载调试。

12aa5be2-16ea-11ee-a579-dac502259ad0.png

12c0f640-16ea-11ee-a579-dac502259ad0.png

以上内容来自先楫开发者的原创分享。

我们始终相信开发者共创的力量。先楫社区坚持开源共享、互惠互利,贴近每一个开发者,一步一个脚印,一点一滴积累,为成为更好的我们而不断努力。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18628

    浏览量

    387566
  • 半导体
    +关注

    关注

    336

    文章

    30014

    浏览量

    258552
  • vscode
    +关注

    关注

    1

    文章

    171

    浏览量

    9008
  • 先楫半导体
    +关注

    关注

    12

    文章

    270

    浏览量

    3149
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    国产芯片赋能机器人创新 | 半导体亮相ROSCon China 2025

    机器人技术前沿趋势与实践突破。上海半导体科技有限公司(半导体,HPMicro)作为机器人
    的头像 发表于 11-03 12:07 645次阅读
    国产芯片赋能机器人创新 | <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半导体</b>亮相ROSCon China 2025

    开发者分享 | HPM5E-EC-DEV:基于HPM5E00的EtherCAT开发板分享

    硬件相关的小项目,既能学习新东西,也能保持对技术的好奇心。前言今年五月,半导体发布了新一代高性能EtherCAT运动控制MCU——HPM5E00。
    的头像 发表于 10-29 10:15 833次阅读
    <b class='flag-5'>开发者</b>分享 | <b class='flag-5'>HPM</b>5E-EC-DEV:基于<b class='flag-5'>HPM</b>5E00的EtherCAT<b class='flag-5'>开发</b>板分享

    半导体生态日成功举办,高性能RISC-V MCU开发者共筑新生态

    2025年10月18日,深圳|“半导体生态日——高性能RISC-VMCU开发平台体验”活动在深圳南山区益田威斯汀酒店成功举办。本次活动汇聚众多专家、
    的头像 发表于 10-21 11:34 781次阅读
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半导体</b>生态日成功举办,高性能RISC-V MCU<b class='flag-5'>开发者</b>共筑新生态

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

    使用 hpm6200evk开发板,但未使用hpm_sdk。 然后编译的固件elf无法在hpm monitor studio解析成功。所以说必须要使用
    发表于 08-28 09:36

    半导体高性能MCU入驻立创商城,国产芯势力再添新动能

    半导体(HPMicro)宣布其全系列高性能MCU芯片正式上架立创商城(LCSC),标志着国产高端MCU在供应链渠道与生态服务方面迈上新台阶,国产芯势力再添新动能。
    的头像 发表于 07-31 08:32 911次阅读
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半导体</b>高性能MCU入驻立创商城,国产芯势力再添新动能

    这次你说了算!半导体开发者生态技术日

    HPM开发者量身打造的生态活动正在规划中! 赶紧动动发财的小手填个小问卷,告诉我们你关心的话题和期待的场景,我们会认真阅读每一份问卷,听取大家的宝贵建议,期待您的反馈哈!
    发表于 07-10 11:21

    半导体HPM6E8Y:实时控制芯片驱动的机器人关节“芯”时代

    及产品总监费振东带来了一款实时控制芯片驱动——HPM6E8Y。     据费振东介绍,半导体HPM6E8Y系列高性能MCU芯片为机器人关
    发表于 05-13 11:50 1603次阅读
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半导体</b><b class='flag-5'>HPM</b>6E8Y:<b class='flag-5'>先</b><b class='flag-5'>楫</b>实时控制芯片驱动的机器人关节“芯”时代

    重磅更新 | 半导体HPM_APPS v1.9.0发布

    重磅更新 | 半导体HPM_APPS v1.9.0发布
    的头像 发表于 05-13 11:29 1363次阅读
    重磅更新 | <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半导体</b><b class='flag-5'>HPM</b>_APPS v1.9.0发布

    【强势上新】HPM5E00:EtherCAT运动控制MCU,半导体再拓工业总线产品新版图

    2025年5月6日上海|高性能微控制器及嵌入式解决方案提供商“上海半导体科技有限公司”(半导体
    的头像 发表于 05-06 11:09 982次阅读
    【强势上新】<b class='flag-5'>HPM</b>5E00:EtherCAT运动控制MCU,<b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半导体</b>再拓工业总线产品新版图

    重磅更新 | 半导体HPM_SDK v1.9.0 发布

    版本更新概况[New]增加HPM6P00系列MCU以及hpm6p00evk支持[New]增加了开发板已知问题说明[Update]将全系列开发板VCore电压调节至1.275V,
    的头像 发表于 04-02 08:31 836次阅读
    重磅更新 | <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半导体</b><b class='flag-5'>HPM_SDK</b> v1.9.0 发布

    半导体HPM_SDK v1.7.0发布!这些更新你值得关注!

    半导体HPM_SDK v1.7.0发布!这些更新你值得关注!
    的头像 发表于 02-08 13:42 1062次阅读
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半导体</b><b class='flag-5'>HPM_SDK</b> v1.7.0发布!这些更新你值得关注!

    半导体hpm_apps v1.7.0上线

    半导体hpm_apps v1.7.0上线
    的头像 发表于 02-08 13:41 1310次阅读
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半导体</b><b class='flag-5'>hpm</b>_apps v1.7.0上线

    半导体HPM_SDK v1.8.0 发布

    半导体HPM_SDK v1.8.0 发布
    的头像 发表于 02-08 13:39 1022次阅读
    <b class='flag-5'>先</b><b class='flag-5'>楫</b><b class='flag-5'>半导体</b><b class='flag-5'>HPM_SDK</b> v1.8.0 发布

    基于HPM_SDK_ENV开发应用程序的升级处理

    基于HPM_SDK_ENV开发应用程序的方式HPM_SDK_ENV是半导体MCU的Windo
    的头像 发表于 02-08 13:38 1453次阅读
    基于<b class='flag-5'>HPM_SDK</b>_ENV<b class='flag-5'>开发</b>应用程序的升级处理

    半导体发布高性能HPM6E8Y系列MCU

    近日,上海半导体科技有限公司,国内领先的高性能微控制器及嵌入式解决方案提供商,推出了专为机器人运动与控制设计的高性能MCU产品——HPM6E8Y系列。这一创新产品为当前蓬勃发展的机
    的头像 发表于 01-23 15:40 1172次阅读