当前位置:   article > 正文

HPM6750系列--第二篇 搭建Ubuntu开发环境_hpm6750 linux

hpm6750 linux

一、目的

        作为命令行的深度用户,本篇就给大家介绍一下HPM6750 Ubuntu开发环境搭建

        

二、准备

        1、查看系统环境

        Ubuntu 18.04

uname -a

​​​​​​​

        2、安装并查看cmake版本
  1. sudo apt-get install cmake
  2. cmake --version

         

        如果版本低于3.12.0则需要更新cmake(通过cmake源码编译升级)

        具体方法如下:

        编译cmake的过程中依赖一些package,通过以下命令安装一下 

  1. sudo apt-get install libncurses-dev
  2. sudo apt-get install libssl-dev

          下载cmake源码、解压、配置、编译、安装

  1. wget https://cmake.org/files/v3.22/cmake-3.22.0.tar.gz
  2. tar -zxvf cmake-3.22.0.tar.gz
  3. cd cmake-3.22.0/
  4. ./configure
  5. make
  6. sudo make install
  7. sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force
  8. cmake --version

         3、下载工具链

Releases · 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

       ​​​​​​​

        4、下载openocd源码
  1. cd ~/workspace/third/hpm/
  2. git clone https://github.com/hpmicro/riscv-openocd.git

三、实战

        1、创建工作目录,专门存放跟hpm有关的内容
  1. mkdir -p ~/workspace/third/hpm
  2. cd ~/workspace/third/hpm
        2、准备工具链
  1. mkdir -p ~/workspace/third/hpm/toolchain
  2. cd ~/workspace/third/hpm/toolchain/

        将先前下载的工具链压缩包拷贝到toolchain目录下解压

  1. tar -zxvf riscv32-unknown-elf-newlib-multilib_2022.05.15_linux.tar.gz
  2. cd riscv32-unknown-elf-newlib-multilib

        进入解压工具链后目录查看一下工具链如下

         ​​​​​​​

        验证工具链可用性

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

         

        3、编译openocd工具
  1. cd ~/workspace/third/hpm/
  2. git clone https://github.com/hpmicro/riscv-openocd.git
                3-1、准备编译环境
sudo apt-get install libtool automake wget pkg-config gcc texinfo libusb-dev vim openocd libusb-1.0-0-dev
                3-2、配置并编译
  1. cd riscv-openocd
  2. ./bootstrap
  3. ./configure --disable-werror --enable-ftdi
  4. make

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

                3-3、验证openocd可运行

        4、下载hpm_sdk仓库代码

GitHub - hpmicro/hpm_sdk: No PR will be accepted for now, but feel free to submit issue, very appreciated.No PR will be accepted for now, but feel free to submit issue, very appreciated. - GitHub - hpmicro/hpm_sdk: No PR will be accepted for now, but feel free to submit issue, very appreciated.icon-default.png?t=N7T8https://github.com/hpmicro/hpm_sdk

git clone https://github.com/hpmicro/hpm_sdk.git
        5、准备必要编译环境        
  sudo apt install build-essential cmake ninja-build libc6-i386 libc6-i386-cross libstdc++6-i386-cross openocd
        6、准备环境变量
  1. export GNURISCV_TOOLCHAIN_PATH="/home/fire/workspace/third/hpm/toolchain/riscv32-unknown-elf-newlib-multilib"
  2. export HPM_SDK_TOOLCHAIN_VARIANT=

        注意要替换成自己工具链路径

        为了避免每次都要导出环境变量,我们将这些环境变量放到~/.bashrc文件中

  1. export GNURISCV_TOOLCHAIN_PATH="/home/fire/workspace/third/hpm/toolchain/riscv32-unknown-elf-newlib-multilib"
  2. export HPM_SDK_TOOLCHAIN_VARIANT=
  3. export HPM_SDK_BASE="/home/fire/workspace/third/hpm/hpm_sdk"
  4. export OPENOCD_SCRIPTS="/home/fire/workspace/third/hpm/hpm_sdk/boards/openocd"

        保存后重新打开一个新的terminal

        7、获取python依赖
  1. cd ~/workspace/third/hpm/hpm_sdk
  2. source env.sh
  3. pip3 install --user -r "$HPM_SDK_BASE/scripts/requirements.txt"

        如果出现如下情况请先安装pip3,然后重试上面的pip3 install命令

        8、编译
  1. mkdir -p ~/workspace/work/hpm6750evkmini/
  2. cp -r samples/hello_world ~/workspace/work/hpm6750evkmini/
  3. cd ~/workspace/work/hpm6750evkmini/hello_world/
  4. mkdir build
  5. cd build
  6. cmake -DBOARD=hpm6750evkmini ..

                 

make

        如果没有问题的话,输出如下

​​​​​​​

        7、调试下载

        查看一下gdb工具是否可用

        这边指出我的机器上C库版本太低,故需要升级(这边强烈建议先备份系统)

  1. sudo apt install bison gawk
  2. cd ~/Desktop/
  3. wget https://ftp.gnu.org/pub/gnu/glibc/glibc-2.30.tar.gz
  4. tar -zxvf glibc-2.30.tar.gz
  5. cd glibc-2.30
  6. mkdir build
  7. cd build
  8. m
  9. make
  10. sudo make install
  11. cd /lib/x86_64-linux-gnu/
  12. sudo ln -sf /usr/local/glibc/lib/libm-2.30.so libm.so.6

        以上步骤请仔细操作,尤其最后一行链接操作,请先确认新安装的c库存在

ll /usr/local/glibc/lib/libm-2.30.so

        重新打开一个terminal再次确认gdb可用

  1. cd ~/workspace/third/hpm/hpm_sdk/
  2. source env.sh
  3. cd ../toolchain/riscv-gnu-toolchain/bin/
  4. ./riscv32-unknown-elf-gdb

         8、开始调试

        新开一个terminal调用openocd(开发板这个时候要连接在PC上)

  1. cd ~/workspace/third/hpm/hpm_sdk/
  2. source env.sh
  3. cd boards/openocd
  4. /home/fire/workspace/third/hpm/openocd/bin/openocd -f probes/ft2232.cfg -f soc/hpm6750-single-core.cfg -f boards/hpm6750evkmini.cfg

        如果有以下错误则按提供的方法解决(缺少libhidapi-hidraw.so.0)

        再次执行openocd命令

        上图报告libusb访问权限问题,可以按下面的方法解决(执行命令时添加sudo)

        此时说明openocd已经正常工作,注意GDB Server在端口3333上监听

starting gdb server for hpm6750.cpu0 on 3333

        9、GDB调试

        新开一个terminal,执行调试命令

  1. cd ~/workspace/third/hpm/hpm_sdk/
  2. source env.sh
  3. cd samples/hello_world

                 

        分别执行命令

  1. file build/output/demo.elf
  2. target remote localhost:3333
  3. load

        当执行target remote localhost:3333时,openocd窗口有如下输出

        添加断点        

b main

        

        更多关于GDB调试的内容请自行查找

        如果整个过程没有任何问题的话,通过minicom串口工具能有如下输出

        

至此,HPM6750的Ubuntu开发环境搭建完成,总体上调试过程还比较繁琐,后续介绍基于vscode的编译调试环境。

        本篇重点一个是要准备好各种环境,另外一个重点是要添加配置到~/.bashrc文件中。

  1. export GNURISCV_TOOLCHAIN_PATH="/home/fire/workspace/third/hpm/toolchain/riscv32-unknown-elf-newlib-multilib"
  2. export HPM_SDK_TOOLCHAIN_VARIANT=
  3. export HPM_SDK_BASE="/home/fire/workspace/third/hpm/hpm_sdk"
  4. export OPENOCD_SCRIPTS="/home/fire/workspace/third/hpm/hpm_sdk/boards/openocd"

        

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号