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

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

3天内不再提示

“极客福音!HPM SDK Linux编译环境搭建”

先楫半导体HPMicro 2022-06-01 11:19 次阅读

简介

HPM6700/6400 系列 MCU 是来自上海先楫半导体科技有限公司的高性能实时 RISC-V 微控制器,采用RISC-V内核,主频高达816MHz,为工业自动化及边缘计算应用提供了极大的算力、高效的控制能力及丰富的多媒体功能。

HPM SDK支持用Cmake为Segger和GCC提供示例项目,并同时集成进RT Thread、Zephyr等开源项目中。对于钟爱于命令行界面的极客来说,Linux环境编译是必不可少的,本文介绍了先楫半导体高性能MCU配套的HPM SDK(以下可简称SDK)在Linux系统上开发环境搭建指导说明,更多信息,请参考官网应用手册。

Linux环境准备

·Linux建议使用 Ubuntu 18 以上的 LTS 版本。


·Linux环境交叉编译工具链:riscv32-gnu-toolchain-linux.zip


· Linux环境openocd工具:openocd_linux_x86-64.tar.gz


·HPM SDK

环境搭建

A.编译工具安装

sudo apt install build-essential cmake ninja-build libc6-i386 libc6-i386-cross libstdc++6-i386-cross

B.用于debugconsole串口工具cutecom安装

sudo apt install cutecom

C. Python安装

sudo apt install python3 python3-pip

D. 环境变量配置

l 下载riscv32-gnu-toolchain-linux.zip工具链压缩包,并解压到任意目录;

l 下载openocd_linux_x86-64.tar.gz工具压缩包,并解压到任意目录;

l 下载HPM SDK,并解压到任意目录;

l申明系统环境变量“GNURISCV_TOOLCHAIN_PATH”指向工具链路径;

l申明系统环境变量“HPM_SDK_BASE”指向SDK根目录;

l申明系统环境变量“OPENOCD_SCRIPTS”指向SDK目录borads/openocd;

l 添加openocd工具路径到bash变量;

为了安全起见,修改.bashrc文件添加环境变量:

vi ~/.bashrc

注意:修改.bashrc文件后必须重启终端才能生效。

在文件末尾添加:

export GNURISCV_TOOLCHAIN_PATH=/home/zhangeg/work/toolchain/riscv32-gnu-toolchain-linux

export HPM_SDK_TOOLCHAIN_VARIANT=

export HPM_SDK_BASE=/home/zhangeg/work/hpm_sdk

export OPENOCD_SCRIPTS=$HPM_SDK_BASE/boards/openocd

export PATH=$PATH:/home/zhangeg/work/toolchain/openocd_linux_x86-64/bin/

注意:路径替换为自己的实际路径

2d0eb876-e107-11ec-b80f-dac502259ad0.png2d558652-e107-11ec-b80f-dac502259ad0.png

编辑保存.bashrc文件后,重启终端。

E. 安装python依赖包

pip3 install --user -r $HPM_SDK_BASE/scripts/requirements.txt

2d8e2642-e107-11ec-b80f-dac502259ad0.png

构建编译

A. 切换到示例hello_world目录

cd samples/hello_world

2dc22870-e107-11ec-b80f-dac502259ad0.png


B. 创建build目录并进入

mkdir build

cd build

2dfdc6c8-e107-11ec-b80f-dac502259ad0.png

C. Ninja-build产生构建文件

cmake -GNinja -DBOARD=hpm6750evkmini..

2e48fdd2-e107-11ec-b80f-dac502259ad0.png

D. ninja编译

ninja

2e82d034-e107-11ec-b80f-dac502259ad0.png

当编译完成后,生成的elf以及对应其他文件可以在output目录中找到。

2ec1921a-e107-11ec-b80f-dac502259ad0.png

调试运行

A. 切换目录到openocd:

PC电脑连接HPM6750 EVK mini开发板。

切换到sdk boards/openocd目录:

2f3ba032-e107-11ec-b80f-dac502259ad0.png


B. 运行openocd:

需要按顺序指定配置文件: 调试器配置, 内核配置, 目标板配置。例如,通过ft2232在hpm6750evkmini上进行单核调试,可以运行如下命令:

openocd -f probes/ft2232.cfg -f soc/hpm6750-single-core.cfg -f boards/hpm6750evkmini.cfg

2f861b1c-e107-11ec-b80f-dac502259ad0.png

注意:

如遇到:

1.Error: libusb_open() failed with LIBUSB_ERROR_NOT_FOUND,检查FTDI usb驱动。如果驱动未正确安装,请重新安装。

2.Error: libusb_open() failed with LIBUSB_ERROR_ACCESS,权限问题:sudo chmod -R 777 /dev/bus/

2fadbe42-e107-11ec-b80f-dac502259ad0.png

C. 打开串口cutecom工具

打开串口cutecom工具,设置波特率115200,并打开串口。

2fec23bc-e107-11ec-b80f-dac502259ad0.png


D. GDB调试运行:

打开另一个终端,切换到hello_world目录

cd samples/hello_world

启动GDB client调试:

$GNURISCV_TOOLCHAIN_PATH/bin/riscv32-unknown-elf-gdb

302723cc-e107-11ec-b80f-dac502259ad0.png


依次运行gdb指令:

gdb> file build/output/demo.elf

gdb> target remote localhost:3333

gdb> load

gdb> b main

gdb> c

30606d30-e107-11ec-b80f-dac502259ad0.png

运行后,可在串口工具打印“hello_world”:

308feb0a-e107-11ec-b80f-dac502259ad0.png

Segger Embedded Studio安装激活

A.SES下载

Segger Embedded Studio for RISC-V 可以从 https://www.segger.com/downloads/embedded-studio/ 下载。

30b36332-e107-11ec-b80f-dac502259ad0.png

下载linux版本,并解压。

B.SES 安装

sudo ./install_segger_embedded_studio

30e2e3d2-e107-11ec-b80f-dac502259ad0.png

依次next 直到finsh。

311be16e-e107-11ec-b80f-dac502259ad0.png3142e188-e107-11ec-b80f-dac502259ad0.png3171200c-e107-11ec-b80f-dac502259ad0.png

C.SES激活

激活流程:

http://www.hpmicro.com/support/detail.html?id=e9b65dc7-4cb4-4749-bf41-dbb9e725c32b

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

    关注

    87

    文章

    11302

    浏览量

    209427
收藏 人收藏

    评论

    相关推荐

    RK3588 SDK入门之编译使用篇

    前言:在上一篇文章中,我们已经配置好了Ubuntu虚拟机。本期将重点介绍如何Ubuntu虚拟机中使用RK3588的SDK。具体内容包括SDK的下载与安装、环境变量的配置、以及编译调试的
    的头像 发表于 11-22 01:07 597次阅读
    RK3588 <b class='flag-5'>SDK</b>入门之<b class='flag-5'>编译</b>使用篇

    【MM32F5270】Keil开发环境搭建

    本文是对MM32F5270相关的灵动官网资料和社区现有几篇环境搭建帖的整理和总结。详细且完整的记录了——如何从零搭建MM32F5270 Keil开发环境以及如何
    的头像 发表于 11-06 16:14 2759次阅读
    【MM32F5270】Keil开发<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    用户手册 | 全志T113-S3开发板——SDK编译指南

    ,不像发行版那样需要编译整个linux系统,只需要指定特定开发的功能包进行交叉编译即可。本文为大家介绍全志T113-S3开发板在眺望电子提供的SDK
    的头像 发表于 11-01 08:08 1390次阅读
    用户手册 | 全志T113-S3开发板——<b class='flag-5'>SDK</b><b class='flag-5'>编译</b>指南

    飞凌嵌入式ElfBoard ELF 1板卡-开发环境搭建之交叉编译

    不同的cpu的对应的可执行的二进制文件。交叉编译链安装建立交叉编译环境又可分为安装SDK(其中包含了交叉编译工具链)和设置交叉
    发表于 09-29 09:51

    腾讯云SDK如何使用,如何连接腾讯物联网开发平台。

    一 概述 SDK C SDK 采用模块化设计,分离核心协议服务与硬件抽象层,并提供灵活的配置选项和多种编译方式,适用于不同设备的开发平台和使用环境。 具备网络通讯能力并使用
    的头像 发表于 09-25 14:34 339次阅读
    腾讯云<b class='flag-5'>SDK</b>如何使用,如何连接腾讯物联网开发平台。

    SemiDrive X9 AI 开发环境搭建

    SemiDrivex9AI开发环境搭建分开发机端,开发板端。主要的工具是SDNN,它是一个基于开源编译器框架TVM的端到端的AI编译器框架,Semidrive对TVM
    的头像 发表于 08-03 08:27 393次阅读
    SemiDrive X9 AI 开发<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    RISC-V编译环境搭建

    以上按位数分可以编译为32位和64位两种,另外就是都可以编译为elf版本和linux版本。
    的头像 发表于 07-17 11:31 1361次阅读
    RISC-V<b class='flag-5'>编译</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    Purple Pi OH 更改SDK编译选项

    党,,工程师,极大降低了开源鸿蒙开发者的入门门槛,具有以下几点优势:支持开源鸿蒙/Linux/Andriod11/麒麟,兼容树莓派;四核A55,最高1.8G主
    的头像 发表于 07-06 08:33 297次阅读
    Purple Pi OH 更改<b class='flag-5'>SDK</b>的<b class='flag-5'>编译</b>选项

    HPM SDK 1.6.0 FreeRTOS LTS更改及适配指南

    √√RISCV中断向量模式支持×√Ticklessmode支持×√DSP扩展支持×√二、FreeRTOS新特性适配2.1支持tickless模式HPM_SDK1.6.0中使
    的头像 发表于 07-06 08:17 3505次阅读
    <b class='flag-5'>HPM</b> <b class='flag-5'>SDK</b> 1.6.0 FreeRTOS LTS更改及适配指南

    Purple Pi OH又开外挂!带你搭建编译环境编译Android 11固件

    01介绍今天的文章主题是分享与探讨关于PurplePiOH开发板Android开发之搭建编译环境编译Android固件。如果你是刚开始接触嵌入式L
    的头像 发表于 05-22 08:32 1177次阅读
    Purple Pi OH又开外挂!带你<b class='flag-5'>搭建</b><b class='flag-5'>编译</b><b class='flag-5'>环境</b>及<b class='flag-5'>编译</b>Android 11固件

    先楫半导体 hpm_sdk v1.5.0 正式发布

    先楫半导体 hpm_sdk v1.5.0 正式发布
    的头像 发表于 04-12 08:17 585次阅读
    先楫半导体 <b class='flag-5'>hpm_sdk</b> v1.5.0 正式发布

    先楫半导体 hpm_sdk v1.5.0 正式发布

    Workbench for RISC-V(EWRISCV)工程 生成工程 习惯直接使用 cmake生成工程的用户可直接基于 hpm_sdk 的命令行环境生成工程 对于习惯图形化工具生成工程的用户,先楫提供
    发表于 04-08 11:14

    先楫半导体hpm_sdk v1.5.0正式发布!

    可以将当前app所使用到hpm_sdk的文件复制到app本地, 同时更新app的CMakeLists.txt使之使用本地化之后的hpm_sdk
    的头像 发表于 04-08 10:02 926次阅读
    先楫半导体<b class='flag-5'>hpm_sdk</b> v1.5.0正式发布!

    【全志T113-i】OK113i-S开发板开发环境准备和搭建

    ,至少能顺利搭建也成了一大关键。而我也算是作为初入门的Linux开发者,本次也难免要经历这个过程。 Linux的开发环境一般使用Linux
    发表于 01-19 09:45

    如何构建linux开发环境编译软件工程、应用程序

    前文介绍了如何使用官方提供的镜像文件启动开发板,本文将说明如何构建linux开发环境编译软件工程、应用程序。
    的头像 发表于 01-03 12:31 2052次阅读
    如何构建<b class='flag-5'>linux</b>开发<b class='flag-5'>环境</b>和<b class='flag-5'>编译</b>软件工程、应用程序