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


    一、目的

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

            

    二、准备

            1、系统环境

            Ubuntu 18.04        

            2、查看cmake版本

    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、下载工具链

    riscv-gnu-toolchain_linux_x86-64.tar.gz

            链接: https://pan.baidu.com/s/1MQcL6DYauRbBmrRV8sC4Rg 提取码: nkt4

     

            4、下载openocd工具

    openocd_linux_x86-64.tar.gz

            链接: https://pan.baidu.com/s/1tnKPzwOxIsRo4HABHYbBnw 提取码: x4up

            以上两个压缩包也可以从先楫官网获取

    三、实战

            1、创建工作目录,专门存放跟hpm有关的内容

    1. mkdir -p ~/workspace/third/hpm
    2. cd ~/workspace/third/hpm

            2、准备工具链

    1. cd ~/workspace/third/hpm
    2. mdkir toolchain

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

    tar -zxvf riscv-gnu-toolchain_linux_x86-64.tar.gz

            解压后目录如下

    ls -al

             

            3、准备openocd工具

    1. cd ~/workspace/third/hpm
    2. mdkir openocd

            将刚才下载openocd压缩包拷贝到~/workspace/third/hpm/openocd目录下然后解压

    tar -zxvf openocd_linux_x86-64.tar.gz

            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.https://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

            6、准备环境变量

    1. export GNURISCV_TOOLCHAIN_PATH="/home/fire/workspace/third/hpm/toolchain/riscv-gnu-toolchain"
    2. export HPM_SDK_TOOLCHAIN_VARIANT=

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

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

            保存后重新打开一个新的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"

            8、编译

    1. cd samples/hello_world/
    2. mkdir build
    3. cd build
    4. cmake -DBOARD=hpm6750evkmini ..

                     

    make
    

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

            7、调试下载

            查看一下gdb工具是否可用

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

    1. cd ~/Desktop/
    2. wget https://ftp.gnu.org/pub/gnu/glibc/glibc-2.30.tar.gz
    3. tar -zxvf glibc-2.30.tar.gz
    4. cd glibc-2.30
    5. mkdir build
    6. cd build
    7. ../configure --prefix=/usr/local/glibc
    8. make
    9. sudo make install
    10. cd /lib/x86_64-linux-gnu/
    11. 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

    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)

    sudo apt-get install -y libhidapi-hidraw0

            再次执行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开发环境搭建完成 

            

  • 相关阅读:
    Overload和Override的区别说明
    Educational Codeforces Round 124 (Rated for Div. 2) CD题解
    华为-算法---测试开发工程师----摘要牛客网
    java计算机毕业设计个人图集管理系统源码+mysql数据库+系统+lw文档+部署
    使用soapUI获取webservice接口的调用格式
    记一次 .NET某施工建模软件 卡死分析
    吃透分享的这份 Java 面试神技,3 个月斩获 8 家 offer
    你真的懂TSP吗
    数仓工具—Hive源码之SQL解析AntlrWorks的使用(10)
    FreeRTOS中断与任务之间同步(Error:..\..\FreeRTOS\portable\RVDS\ARM_CM4F\port.c,422 )
  • 原文地址:https://blog.csdn.net/tianizimark/article/details/126474097