先楫提供的一些源码:
先楫提供的开源资料还是挺全面的,这里我罗列一下,方便各位找到其位置:
SDK: https://github.com/hpmicro/hpm_sdk
OpenOCD: https://github.com/hpmicro/riscv-openocd/tree/riscv-hpmicro
编译工具链: https://github.com/hpmicro/riscv-gnu-toolchain
环境准备:
SDK下载:
$ git clone https://github.com/hpmicro/hpm_sdk
OpenOCD:
这里我推荐使用先楫资料中提供的已经编译好的版本,不太推荐自己再编译一遍。
文件位置: 先楫HPM6000系列资料/SDK/linux_toolchain/openocd_linux_x86-64.tar.gz
直接解压即可,若您不放心其制品的安全性,也可以从源码进行编译
$ sudo apt install make libtool pkg-config autoconf automake texinfo
$ git clone -b riscv-hpmicro https://github.com/hpmicro/riscv-openocd.git && cd riscv-openocd
$ ./bootstrap
$ ./configure
若要指定openocd的安装位置,请使用:
$ ./configure --prefix <install path>
编译与安装:
$ make -j4
$ make install
工具链:
这里我推荐使用先楫资料中提供的已经编译好的版本,不太推荐自己再编译一遍。
文件位置: 先楫HPM6000系列资料/SDK/linux_toolchain/riscv-gnu-toolchain_linux_x86-64.tar.gz, 直接解压即可,我尝试过从源码编译,其制品却是64位,整个编译过程也比较漫长,有兴趣的小伙伴自己动手源码编译吧。
环境:
设置工具链的环境变量,具体以解压路径为准
$ export GNURISCV_TOOLCHAIN_PATH=~/work/riscv-gnu-toolchain_linux_x86-64/riscv-gnu-toolchain/
设置SDK的环境
$ cd hpm_sdk
$ source env.sh
编译
以hello_world为例
$ cd samples/hello_world
$ mkdir build && cd build
$ cmake -GNinja -DBOARD=hpm6750evk ..
$ ninja
即可在output中生成demo.elf
在线调试
这里我使用的是开源的mcueclipse作为调试平台,其下载地址为:https://www.eclipse.org/downloads/
要生成eclipse的工程则需要如下操作:
$ cmake -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DBOARD=hpm6750evk ..
$ make -j4
打开eclipse,点击Import projects 导入工程,或者点击File 选择Import projects导入工程
选择从外部工程导入,然后点击next
找到你的build目录,并点击Finish。
配置Debug选项
双击 GDB OpenOCD Debugging
找到Openocd以及工具链中的gdb,并设置Openocd的配置文件
-f "/home/weig/work/hpm_sdk/boards/openocd/probes/ft2232.cfg" -f "/home/weig/work/hpm_sdk/boards/openocd/soc/hpm6750-single-core.cfg" -f "/home/weig/work/hpm_sdk/boards/openocd/boards/hpm6750evkmini.cfg"
然后点击Debug