VID_20221123_234352_10fps
【瑞萨RA4系列开发板体验】硬件调试器烧录和调试指南
一、背景简介
本次试用的RA-Eco-RA4M2-100PIN开发板有两个USB口,其中一个用于通过USB转串口芯片CH340G连接到主控芯片,可以用于接收串口日志;另一个直接连接到主控芯片USB口,当启动模式跳线设置为“SCI/USB BOOT”时,可通过RFP(Renesas Flash Programmer)用于固件烧录。
另外板子上还有4pin的SWD调试接口,也可以使用硬件调试器进行烧录。在使用硬件调试器的时候,一开始也因为参数配置问题,没有烧录成功,试用群里面也有群友遇到类似的问题。经过一番排查后,我找到烧录失败的原因,并成功烧录;因此,我想到可以把具体流程记录下来,方便后来的朋友参考。
二、连接调试器
使用硬件调试器(例如我这里使用的PWLINK2),需要将调试器的一端和开发板的4pin SWD接口相连,如下图所示:
三、设置Keil项目
按照如下步骤在Keil项目中设置调试器:
-
在Project视图中,右击Target1,将会弹出菜单,如下图所示;
-
选择Options for Target 'Target 1'... ,将会弹出“Options for Target 1”窗口,如下图所示;
-
在“Options for Target 1”窗口中,点击Debug 标签页,Use下拉菜单选择CMSIS-DAP调试器(根据实际的硬件调试器选择,我这里使用的PWLINK2是基于CMSIS-DAP的),如下图所示;
-
之后,点击右边的Settings按钮,将会弹出CMSIS-DAP Target Driver Setup界面,如下图所示;
如果此时调试器已正确连接到PC和开发板,则可以在SW Device栏中识别到CoreSight调试端口;
这里可以修改Max Clock,默认是1MHz,修改为10MHz可以提高烧录速度。
-
在CMSIS-DAP Target Driver Setup界面中,点击Flash Download 标签页,修改RAM for Algorithm 的Start 为0x20000000 ,Size 为0x1000 (4KB),如下图所示;
这里截图是已经修改之后的,默认为0x00000000 和0x800 ;
-
点击下方的Add按钮,将会弹出Add Flash Programming Algorithm 界面,如下图所示;
-
选择RA4M2的512K Flash,点击下方的Add添加,之后继续添加Config Area和8K DataFlash,添加完成后,如下图所示;
-
最后,点击OK确认,保存修改。
四、烧录和调试
本节介绍如何在Keil中进行烧录和调试,下面分别介绍具体操作步骤。如果你对这一部分比较熟悉,可以直接跳过本节(相信玩过单片机的,都比较熟悉了吧)。
4.1 Keil中烧录
以上步骤完成后,可以使用工具栏的Downlod按钮进行烧录,按钮位于:
或者使用F8快捷键。
烧录过程中,底部状态栏可以看到进度条;烧录完成后,Build Output可以看到类似如下的输出:
4.2 Keil中调试
类似的,可以使用Keil的调试按钮进行调试,调试按钮位于:
和很多IDE类似,编辑器行号的左边,单击可以打断点。
类似的,调试开始后,可以看到,寄存器、内存、汇编等视图:
界面中具体各个功能,这里不再详细介绍。
五、总结
5.1 烧录方式对比
通过开发板自带的USB口烧录的方式,优点是——不依赖额外的硬件,仅用开发板和USB线即可;缺点是——需要来回切换跳线,比较麻烦。
本篇介绍的另外一种烧录方式——使用硬件调试器,例如我这里使用的PWLINK2(基于CMSIS-DAP的调试器),当然你也可以使用JLINK、ST-Link、DAP-Link等硬件调试器。这种方式的优点是——不用来回切换跳线,而且IDE本身支持这些硬件调试器,不需要单独使用RFP烧录;除此之外,使用硬件调试器还可以进行断点调试,这是USB烧录不具备的。
5.2 问题排查要点
试用群里有部分小伙伴使用硬件调试器进行烧录时遇到了无法烧录的问题,我刚尝试使用硬件调试器时也遇到了一些问题。这类问题的排查,主要从两个方面进行:
- 硬件连接,即SWD、JTAG口的几根信号线的物理连接,如果连接正确的话Keil中可以识别CoreSight设备,其他类似的IDE也可以识别。出现无法识别调试口,则首先需要核对线序是否全部连接正确;这种情况的排查只需要仔细核对即可。另外,如果所有线序正确,则需要检查线上的信号是否正常,这通常需要借助逻辑分析仪或者示波器这类设备进行排查。
- 烧录参数,即Keil中的
RAM for Flash Algorithm 和Programming Algorithm 。这里的RAM for Algorithm 是指下载算法使用的内存,通常填写被调试芯片上的SRAM的一端区域,需要查阅芯片手册。而Programming Algorithm 名称则具有迷惑性,实际上它配置的是下载算法操作的目标存储器区域,通常是被调试芯片的闪存区域,这些区域在安装了Keil Pack包之后,点击Add按钮只需要选择接口,不需要手动填写数值,相对来说不太容易出错。
六、参考链接
- CMSIS-DAP Debugger User's Guide (arm.com)
- Target Driver Settings
- (S-LINK) DAPLINK CMSIS-DAP烧录器的使用方法-电子工坊 (elelab.net)
|