HPM6750系列--第三篇 搭建MACOS编译和调试环境

一、目的

        在上一篇《HPM6750系列--第二篇 搭建Ubuntu开发环境》我们介绍了Ubuntu上开发HPM6750,本篇主要介绍MAC系统上的开发环境的搭建过程,整个过程和Ubuntu上基本类似。

  

        

二、准备       

        首先我们在Mac电脑上打开一个terminal,然后创建一个目录,专门存放跟hpm有关的内容,如下

        1、创建工作目录

$ cd
$ mkdir -p ~/workspace/third/hpm
$ cd ~/workspace/third/hpm

        2、下载HPM-SDK代码仓库

git clone https://github.com/hpmicro/hpm_Sdk.git

        3、安装brew

$ /bin/bash -c "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

        4、安装cmake 

brew install cmake
cmake --version

         如果cmake版本低于3.12.0则需要更新,直接从官网下载安装包即可

Download | CMakeicon-default.png?t=N7T8https://cmake.org/download/

        

        5、下载工具链 

 Release riscv32-unknown-elf newlib multilib · hpmicro/riscv-gnu-toolchain · GitHubGNU toolchain for RISC-V, including GCC. Contribute to hpmicro/riscv-gnu-toolchain development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/hpmicro/riscv-gnu-toolchain/releases/tag/2022.05.15

        

         下载完成后,解压到~/workspace/third/hpm/toolchain目录下

cd  ~/workspace/third/hpm
mkdir toolchain
cp ~/Dowload/riscv32-unknown-elf-newlib-multilib_2022.05.15_macos_intel.tar toolchain/
cd toolchain/
tar -xvf riscv32-unknown-elf-newlib-multilib_2022.05.15_macos_intel.tar

        验证一下工具链可用,我们可以执行一下命令

cd ~/workspace/third/hpm/toolchain/riscv32-unknown-elf-newlib-multilib/bin
./riscv32-unknown-elf-gcc -v

         

        6、设置环境变量并保存到~/.bash_profile

export GNURISCV_TOOLCHAIN_PATH="/Users/coder/workspace/third/hpm/toolchain/riscv32-unknown-elf-newlib-multilib"
export HPM_SDK_TOOLCHAIN_VARIANT=
export HPM_SDK_BASE="/Users/coder/workspace/third/hpm/hpm_Sdk"
export OPENOCD_SCRIPTS="/Users/coder/workspace/third/hpm/hpm_Sdk/boards/openocd"

        GNURISCV_TOOLCHAIN_PATH指交叉编译工具链的路径;

        HPM_SDK_TOOLCHAIN_VARIANT指编译器的变种,我们使用的是gnu-gcc,故设置为空即可;

        HPM_SDK_BASE指HPM-SDK的路径;

        OPENOCD_SCRIPTS指使用openocd进行调试时需要的配置文件目录

 

        7、确认环境变量生效

        新开一个Terminal然后输入

        8、安装python依赖

cd ~/workspace/third/hpm/hpm_Sdk/
pip3 install --user -r "$HPM_SDK_BASE/scripts/requirements.txt"

        9、编译openocd

                1、下载openocd源码
cd ~/workspace/third/hpm/
git clone https://github.com/hpmicro/riscv-openocd.git
                2、准备编译环境
brew install libtool automake libusb wget pkg-config gcc texinfo
                3、编译
                
cd riscv-openocd
./bootstrap
./configure --disable-werror
make

               

                如果编译没有任何问题在src目录下有openocd程序,确认一下是否可运行

三、实战

        1、编译hello_world

mkdir -p ~/workspace/work/hpm
cp -r ~/workspace/third/hpm/hpm_Sdk/samples/hello_world ~/workspace/work/hpm/
cd ~/workspace/work/hpm/hello_world/
mkdir build
cd build
cmake -DBOARD=hpm6750evkmini -DCMAKE_BUILD_TYPE=Debug ..

         

        

make

        至此我们就已经编译完成

        2、下载调试

        新开一个Terminal执行openocd

cd ~/workspace/third/hpm/riscv-openocd
./src/openocd -f probes/ft2232.cfg -f soc/hpm6750-single-core.cfg -f boards/hpm6750evkmini.cfg

         

         

         3、GDB调试

        在GDB调试时我们发现工具链的里面的gdb不能使用(本地依赖未满足),故通过brew安装了一个通用版本的GDB

         关于这个问题正在跟进后面会贴出解决办法!!! 

        

        上图的问题是缺少guile模块

brew install guile

        上图的问题是缺少python2.7,针对这个问题必须从官网下载这个版本进行安装,使用brew无法安装        https://www.python.org/downloads/macos/icon-default.png?t=N7T8https://www.python.org/downloads/macos/ 

        再次检查工具链中的gdb是否可用

cd ~/workspace/third/hpm/toolchain/riscv32-unknown-elf-newlib-multilib/bin
./riscv32-unknown-elf-gdb

         

        问题解决。

        安装通用版本的GDB

brew install gdb

        新开一个Terminal定位到工程目录

cd ~/workspace/work/hpm/hello_world
gdb output/demo.elf

        

         连接GDB和OpenOCD

target remote localhost:3333

        加载代码

load

         

        复位、设置断点、单步执行 

        至此我们已经完成了HPM-SDK的MACOS开发环境搭建,我们会介绍如何配合visual studio code进行开发调试 。

        

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值