文章目录
目的软件与资料IDE - Embedded Studio(SES)SDK和APPS驱动程序HPM Pinmux Tool
项目创建与调试例程创建与调试新建项目与本地化
总结
目的
最近工作上有使用先楫单片机的需求(主要看中国产化、性价比和自带EtherCAT,另外文档中文化做的很好),这里对这家单片机入门相关内容做个记录。
先辑官网:https://www.hpmicro.com/
我这里测试用的官方的 HPM6E00EVKREVB 开发板,主控是 HPM6E80IVM 。
软件与资料
本文以Windows下开发进行介绍。
IDE - Embedded Studio(SES)
IDE官方推荐用 SEGGER 的 Embedded Studio ,可以从下面下载: https://www.segger.com/downloads/embedded-studio/ 这个软件非商业使用是免费的,商用的话先楫平台可以申请免费的 License :https://license.segger.com/hpmicro.cgi 软件现在还有个BUG,安装License后软件启动时还是会提升没有商用许可,不过在软件里面可以查到相关许可信息。编译一次先楫的项目后提示因该就不会出现了。 另外License有效期是一年,到期后再申请即可。
SDK和APPS
除了IDE外还需要从 先楫官网 下载 SDK , SDK 的在线文档链接如下: https://hpm-sdk.readthedocs.io/zh-cn/latest/
SDK可以解压至一个非中文路径下,SDK中各个目录下的 README 都是相关的文档。可以先运行 start_cmd.cmd 来配置工具链环境变量。
SDK包中有很多的例程,另外先楫还有个APPS包,其中也有一些额外的例程。(需要注意的是APPS包要和SDK包的版本一致)
驱动程序
板载调试器 开发板板载了 FT2232HL 用于调试,驱动在SDK包 tools/FTDI_InstallDriver.exe 下,安装完成后开发板 DEBUG-USB 连接电脑可以看到两个设备:
如果没有的话可以从FTDI官网下载最新驱动安装试试: https://ftdichip.com/drivers/d2xx-drivers/ 如果还是不行可以参考 SDK 文档中说明使用 Zadig 工具来安装驱动。
J-Link 如果使用 JLink 调试的话需要使用 V10 或以上版本,并且安装 JLink 驱动: https://www.segger.com/downloads/jlink/ 注意如果使用盗版 JLink ,驱动需要安装V7一下版本
HPM Pinmux Tool
先楫有个外设初始化配置工具,可以在线使用: https://tools.hpmicro.com/ 这个工具在VS Code中也有同名的扩展。
项目创建与调试
例程创建与调试
下面只是过一遍基本流程,不建议下面过程中直接更改创建的项目中的代码,原因后面说。
运行SDK中的 start_gui.exe 可以创建项目或例程,下面演示例程创建:
生成项目后可以通过 IDE 打开: 默认情况下SES是只有菜单栏没有工具栏的,很多操作都要从菜单栏中进行,可以在View中打开常用的工具栏,比如上图中打开了Build和Debug工具栏。
编译之后就可以调试了,SES中带有串口终端,可以方便的进行交互:
新建项目与本地化
按照前面方式生成项目, Build Path 指定的目录下生成的只是IDE的工程文件,并不包含任何源码,所有的源码都还是在SDK包中。实际应用场景下我们需要建立自己的项目,在SDK中提供了用户项目模板:
新建项目主要需要关注的就 app / board / linker 三个部分:board 中是一些具体板子的配置、IO分配代码等, app 中是具体应用代码, linker 是具体IDE下的链接脚本。 board 和 app 中因为有代码所以都有 CMakeLists.txt 文件,其中重点的是 app 下的 CMakeLists.txt 文件,项目生成的根目录是该文件所在目录。 linker 可以在 CMakeLists.txt 中指定也可以在GUI工具上进行配置。
新建项目可以参考模板中文档说明来修改编写,或者也可以直接拷贝SDK中的开发板包和例程改改用。这里直接拷贝SDK包中内容进行演示,拷贝下述文件或文件夹到 naisu_proj :
hpm_sdk\boards\ 中 hpm6e00evkhpm_sdk\boards\openocd\boards 中 hpm6e00evk.cfg 到 hpm6e00evk 下(仅在使用板载调试器时需要)hpm_sdk\samples\ 中 hello_worldhpm_sdk\soc\HPM6E00\HPM6E80\toolchains\segger 中 flash_xip.icf
然后运行 start_gui.exe 来创建项目: 需要注意的是这样生成的项目中也只有 board 和 app 中的代码是在当前项目目录下的,其他的像是芯片库和第三方库等代码都还是在SDK中的,可以通过GUI的本地化操作来将这部分代码也生成到项目目录下:
本地化的好处是当该项目移动位置了或是换了电脑,项目还可以正确编译调试。不过如果使用开发板上板载的这个调试器,移动位置后还需要手动配置下路径:
实际项目中通常是用J-Link来调试的,没有上面的问题。可以在SES中Debugger直接改为J-Link或者在 app 下的 CMakeLists.txt 文件中添加命令 sdk_ses_opt_debug_connection(J-Link) ,创建项目时默认指定J-Link:
基于SES开发时理论上项目中添加源码可以直接在IDE中添加,但是这里先楫官方推荐使用CMake命令进行添加(同前面 app 下的 CMakeLists.txt 文件中指定调试器)。一些常用的命令有添加子目录、添加源码、添加头文件等,具体内容可以参考如下: https://hpm-sdk.readthedocs.io/zh-cn/latest/docs/cmake_intro.html
总结
先楫的单片机入门来说感觉非常不错,本地化做的非常好,各种资料教程都比较丰富,在官网可以找到非常多的 视频 、 图文 以及 其他 教程。
另外在B站上也有HPM-FAE提供的相关视频课程: https://www.bilibili.com/video/BV1Lx4y1Q7WE/ https://www.bilibili.com/video/BV12z421o7WT/ https://www.bilibili.com/video/BV1zM4m1R7uJ/ https://www.bilibili.com/video/BV1nf421z75A/