上篇帖子中,我们介绍了如何下载HPM6750开发所需的资料,包括开发板资料和SEGGER Embedded Studio安装包,以及如何申请Embedded Studio激活码。本篇将会介绍如何安装SEGGER Embedded Studio,如何使用HPM SDK脚本创建SEGGER Embedded Studio项目,以及如何在SEGGER Embedded Studio中对项目进行编译和调试。
首先是SEGGER Embedded Studio的安装。双击打开Setup_EmbeddedStudio_RISCV_v622a_win_x64.exe文件,这个没什么难度,也基本上不会有问题,一路Next就好了。
上篇中我们介绍了,通过在hpmicro专属的激活网页填入个人信息之后,将会收到激活码邮件。本节将会介绍,如何使用邮件中的激活码,激活Embedded Studio。
打开Embedded Studio,通过菜单Tools→License Manager打开授权管理器界面:
点击“Activate SEGGER Embedded Studio”,在弹出的激活界面中粘贴邮件中的激活码:
点“Install License”即可,关闭Embedded Studio,下次打开时即为已激活状态。
上一篇帖子中,我们通过百度网盘下载的开发板资料中包含有sdk_env_0.9.0.zip文件:
这里,我们首先将这个文件解压开,放到一个路径没有空格和中文的目录,例如我这里解压到了D:\BaiduNetdiskDownload
目录,解压后可以看到里面有如下目录和文件:
在开始使用SEGGER Embedded Studio或者RT-Thread Studio对开发板进行设备调试之前,都需要确保本地PC上安装FTDI驱动。本节介绍,如何安装FTDI驱动。
sdk_env_v0.9.0.zip压缩包中,包含了FTDI驱动文件,具体路径为:
双击打开FTDI_InstallDriver.exe后,直接点击“下一步”,安装完成将会出现如下界面:
双击start_cmd.cmd脚本文件,将会打开一个命令行窗口,并显示如下内容:
这个脚本打开的命令行会设置一些环境变量,包括将generate_project.cmd所在目录加到PATH环境变量中。因此,我们可以在这个命令行窗口中使用generate_project命令。
接下来,查看通过generate_project的-h选项,我们查看generate_project命令支持哪些参数:
跳转到hpm_sdk\samples\hello_world目录后,执行generate_project -b hpm6750evkmini -t flash_xip命令创建hello_world项目:
打开hello_world目录后,可以看到新生成的目录hpm6750evkmini_build:
该目录中包含一个segger_embedded_studio目录,segger_embedded_studio目录中包含hello_world.emProject文件。该文件即为SEGGER Embedded Studio项目文件,双击即可使用SEGGER Embedded Studio打开hello_world项目:
使用Embedded Studio的Build→Build hello_world菜单,或者F7快捷键,即可编译项目:
编译成功后,将会看看到如下界面:
其中的,XPI0即为开发板上的8M闪存芯片的使用情况。
PS:
调试前行的准备工作:
准备工作完成后,开始使用Embedded Studio进行调试:
可以看到Embedded Studio的调试界面的功能还是非常齐全的,左边一列是反汇编窗口,中间是源码窗口、输出窗口、调用栈窗口,右边是局部变量窗口和寄存器窗口。
没错,可以单步调试(Step Into、Step Over、Step Out)、断点调试。Embedded Studio整体界面风格和Code Blocks比较相似,相比于基于Eclipse开发的IDE,整体体验上非常流畅、丝滑。
首选需要在Segger Embedded Studio 中配置串口参数。
通过Tools→Terminal Emulator→Properties菜单,打开串口配置界面:
先修改Baud Rate为115200,然后修改Port为你实际的串口号(和设备管理器中看到的对应),再点“OK”确认。
设置完成后,通过Tools→Terminal Emulator→Terminal Emulator菜单打开中断模拟器子窗口,点击“Connect”按钮,连接串口设备。继续调试程序,将会看到hello world输出:
本篇的大部分内容,参考了开发板用户手册。经实操验证发现,手册上的大体操作流程时没什么问题的,但仍热存在容易出现问题的地方。总体来说,比较容易掉坑是——BOOT拨码设置和generate_project的-t选项。
实际上,我们在创建项目前最好需要了解如下信息:
拨码状态 | 启动模式 | 说明 |
---|---|---|
00 | XPI NOR启动 | 从连接在XPI0/1 上的串行NOR |
FLASH 启动 | ||
01 | 串行启动UART0/USB-HID | 从UART0/USB0 上启动 |
10 | 在系统编程(ISP) | 从UART0/USB0 上烧写固件,OTP |
11 | 保留模式 | 保留模式 |
generate_project的-t选项选择不同的值,编译后,内存使用统计图的显示也会不同(-t本身就是用于指定不同的存储设备配置的),经本人实验,发现-t选项的不同值的作用如下:
调试版 | 发布版(更小) | 下载目标位置 | 程序运行内存 |
---|---|---|---|
debug | release | 片内SRAM | 片内SRAM |
flash_xip | flash_xip_release | FLASH芯片 | 片内SRAM |
flash_sdram_xip | flash_sdram_xip_release | FLASH芯片 | DRAM芯片 |
generate_project -t选项和BOOT拨码的对应关系
generate_project -t选项 | BOOT拨码建议 | 说明 |
---|---|---|
debug/release | 10/01 | 下载到片内SRAM,速度较快 |
flash_xip/flash_xip_release | 00 | 下载到FLASH芯片,速度较慢 |
flash_sdram_xip/flash_sdram_xip_release | 00 | 下载到FLASH芯片,速度较慢;运行时使用DRAM,内存较大 |