一、下载安装
参考https://1nfinite.ai/t/nuclei-sdk/70链接的步骤一:下载安装兆松科技工具链和芯来sdk和openocd
二、打开ZStudio 导入Makefile项目
-
下载解压ZStudio产品,在ZStudio产品根目录点击zstudio-desktop图标或者是在该目录下命令行中./zstudio-desktop启动zstudio
-
打开ZStudio后点击左上角的File后点击Import Makefile Project
-
点击此处选择下载好的芯来sdk根目录
-
选择要导入的sdk中的单个demo的Makefile项目,这里我以sdk目录下的application/baremetal/helloworld为例子进行
-
并在Make Arguments中填入参数“CORE=n300 TOOLCHAIN=terapines”,表示我们导入项目后是要指定编译n300内核的程序
注意,如果你要导入的项目中已经被make编译过且存在编译的中间文件没有执行“make clean” 命令,那么你就需要在Make Clean Arguments一栏中填入“clean”参数,否则会导致项目导入失败 -
如图所示PROJECT NAVIGATOR中存在helloworld项目,则说明项目导入成功
三、配置与编译
-
点击左下角的Configuration for Active Project,在Language Standard中选择GNU17
-
键盘输入Ctrl+Shft+p,在弹出的输入框中输入“fix”,点击Fix Makefile Project
-
在Override中点击“+”号,在Old Content中填入“clang_rt.builtins_size”,在New Content中填入“clang_rt.builtins”随后点击右下角的Apply(如果是自己在命令行使用命令git checkout remotes/origin/develop手动切换到开发分支则可以省略这个2、3小步骤)
-
点击Build,而后等待项目构建完成即可,如下图所示,在Output/zcc/riscv-v/debug/build-output目录下存在一个构建好的helloworld可执行文件
四、运行
运行需要我们在ZStudio中添加芯来openocd可执行文件和openocd启动配置文件,启动openocd。
- 点击View ->OpenOCD Explorer
- 添加openocd可执行文件的绝对路径和启动配置文件的绝对路径
- OpenOCD Name和Board Name自己自行命名,在OpenOCD Executable处添加openocd可执行文件的绝对路径,在OpenOCD Configuration File 添加openocd启动配置文件的绝对路径,根据自己实际使用的开发板选择,由于我使用的是DDR200T FPGA开发板,所以我使用的是sdk目录下的SoC/evalsoc/Board/nuclei_fpga_eval/openocd_evalsoc.cfg配置文件,而后点击save保存配置
-
鼠标右击前面自己创建的openocd配置,点击Start运行openocd
如下图,openocd成功运行(检查证明了openocd可以成功配置运行后我们需要即将鼠标右键openocd将其关闭,因为当我们点击Run按键的时候ZStudio会自己启动openocd,如果我们此时正在打开openocd就会导致程序无法下载到开发板和进行调试,所以我们在验证openocd可以成功启动后要将openocd关闭)
-
点击Run配置
在Connection Target中选择Board,在OpenOCD Configuration中选择自己在ZStudio中配置好的芯来openocd。点击Save即可。
此时我们已经可以直接点击Run按键来在开发板中运行自己的程序了,但是我们需要借助串口工具来查看程序的运行结果,所以我们还需要配置ZStudio串口工具 -
点击View 点击Serial Port Monitor
点击串口控制台的“+”号,选中自己电脑中的串口驱动,和配置波特率,点击OK,如果串口驱动显示为绿色则表示串口驱动打开成功
此时我们直接Run即可执行程序
五、调试
- 和运行一样,我们需要配置在开发板上运行程序和选中配置好的openocd文件
打开main.c源码文件,在104行处设置断点
点击Debug,调试器停留在104行断点处,在此您可以进行单步调试与查看寄存器和变量的值等操作