超低功耗微控制器模块为工程师带来新的机遇—第2部分:配置Eclipse
阅读本系列中的其他文章。
本文继续介绍超低功耗、功能丰富的微控制器模块,并解释如何使用主流的免费工具对其进行编程和调试。与许多其他高端微控制器模块不同,该模块采用DIP封装,因此专业工程师和业余爱好者都能使用它轻松设计原型。第1部分说明了如何在Eclipse中创建项目,第2部分将说明如何配置Eclipse以配合PICO使用。
重新配置Eclipse以配合PICO硬件使用
第1部分 中创建的项目是围绕MAX32625EVKIT 硬件而设计的,该硬件与 PICO 的硬件不同,因此需要更改评估套件的硬件描述文件以适配PICO的硬件。原始的boards.c文件存储在以下目录中:
C:\Maxim\Firmware\MAX32625\Libraries\Boards\EvKit_V1\ Source
PICO的新 boards.c文件以zip文件的格式存储,读者可以点击本文末尾的链接下载,需要将zip文件中的整个Boards目录复制到保存主程序的目录中,如图1所示。该目录描述了PICO PCB所包含的组件。
PICO包含一个引导加载程序,以使程序能够正常运行。引导加 载程序还允许使用拖放的方式加载二进制文件。如果使用默认设置将程序加载到MAX32625中,则 Eclipse会覆盖此引导加载程序。链接器文件max32625.ld会将所有程序整合成一个二进制文件,以便加载到主机微控制器中。它还会确定将程序加载到内存的哪个位置,因为此位置需要修改,以免覆盖引导加载程序。修改后的链接器文件包含在下载的zip文件中。
将链接器文件复制到 project 目录,如图1所示。
存储在project 目录中的Makefile会向编译器发出指示,以便其找到链接器文件和Boards目录。因此需对Makefile进行编辑,以确保指向修改后的链接器文件和Boards目录的最新位置。将zip文件中的新Makefile复制到project目录中(如图1所示)以覆盖原始文件。
在新的 Boards目录中,可以找到修改后的board.c文件(位于目录EvKit_V1\Source),它描述了PICO上的微控制器与LED和按钮的连接关系。通过比较图2中的代码与图3中的PICO原理图,可以很容易看出其结构。
boards.c文件也经过了大量修改,以使PICO能够将数据打印到终端程序(如Tera Term),这对于调试过程非常有用。如果使用打印功能,请配置终端程序以115200的波特率进行通信,如图4所示。
引导加载程序可以使一些外设处于部分配置状态,board.c中的其他代码可在初始化期间将其重置,如图5所示。
最后,PICO使用与评估套件不同的电源管理IC。但是,PICO的电源管理IC不需要编程,它以默认设置运行,因此新的board.c文件中已删除了相关配置的代码行。
构建最终项目
zip文件包含一个示例程序,即Template文件夹中的main.c,它能检测PICO上的按钮何时被按下,然后让RGB LED闪烁,并通过SPI端口发送2字节的数据,再通过UART发送1字节的数据,最后在终端程序上打印Hello from the PICO。将此程序复制到project目录中以覆盖原程序。如代码注释所示,main.c代码从MAX32625项目目录中的许多示例程序中复制而来。这将为用户创建最终应用程序代码奠定了基础。
单击 锤子 符号构建项目,如图6所示。如果Eclipse中打开了多个项目,将鼠标悬停在 锤子 符号上,用户就能知道即将构建哪个项目。
项目的 build目录中现在应该出现了如图7所示的二进制文件。
此时,最好将build 目录添加到Windows资源管理器的快速访问栏中,使得PICO的编程过程更加非常方便。右键单击build 目录,选择“固定到快速访问”(Pin to Quick access ),目录将出现在Windows资源管理器左侧的“快速访问”(Quick access)栏中。
加载二进制文件
需要注意的是,编程线缆仅用于调试目标PICO,以及在引导加载程序被覆盖时对该器件重新编程。加载二进制文件不需要使用 编程线缆,只需拖放即可。
按住PICO上的按钮,将其插入USB端口。PICO应该作为新驱动器出现,名称为MAINTENANCE,如图8所示。
将二进制文件拖放到MAINTENANCE 驱动器上,从而加载文件。文件加载到PICO后,MAINTENANCE驱动器就会消失,PICO将重新启动,并且程序将开始运行。
在代码开发的早期阶段,程序不太可能按预期运行,甚至根本无法运行。如果需要调试目标PICO上的软件(包括单步调试或在运行至断点),则需要使用接口软件对第二个编程器PICO进行编程,以使其能够在PC与目标PICO之间建立连接。该编程器PICO向目标PICO发出指令以启动和停止目标PICO的执行,从而让Eclipse能够对寄存器进行检查。
要配置第二个编程器PICO,请在zip文件中找到DAPLink Interface Binary目录,并定位其中的二进制文件。断开第二个编程器PICO与 USB端口的连接,然后按住编程器PICO上的按钮,同时将其重新插入USB端口。如前所述,此时应该出现一个名为 MAINTENANCE 的驱动器。将 DAPLink Interface Binary 目录下的二进制文件(max32625_max32625pico_if_crc.bin)拖到 MAINTENANCE驱动器。这将使用接口软件配置编程器PICO,并允许使用Eclipse单步执行目标代码。完成上述操作后, MAINTENANCE驱动器应该消失,编程器PICO将重新启动,并会出现一个DAPLINK驱动器。在此阶段,建议将编程线缆连接到编程器PICO,以将其与目标PICO区分开来。
如何调试目标代码
将编程线缆连接到编程器PICO上的10路接插件,将另一端的pogo连接器按到PICO背面的焊盘上,确保将对准销插入PICO上的孔中,如图9所示。
将鼠标悬停在Eclipse中的 debug图标上(如图10所示),确认当前调试的项目是否正确。界面上会显示当前项目的名称。
单击 debug图标,同时保持pogo连接器连接到PICO。程序将进行编译,然后在代码开始处暂停。按下键盘上的F8将启动调试过程。
用户只需双击Eclipse中代码的行号,就能插入断点。
现在,用户可以调试代码。要检查寄存器,请在Eclipse菜单中选择
Window > Show View > Other…
然后展开Debug 文件夹,选择所需的视图。
一旦确定代码能够正常运行,就可以保存该项目,将其作为未来项目的模板。
如何恢复损坏的PICO
PICO带有预安装的引导加载程序,支持拖放编程。插入PICO时,如果MAINTENANCE和DAPLINK驱动器都没有出现,那么很可能是引导加载程序已被覆盖。通过以下步骤可以恢复引导加载程序。
- 插入编程器PICO,查看DAPLINK驱动器是否出现。
- 插入损坏的PICO。
- 将编程线缆的弹簧连接器抵住损坏的PICO背面的焊盘,确保将对准销插入PICO上的孔中。
- 导航到Bootloader Binary目录,将引导加载程序文件(max32625pico_bl.bin)拖到DAPLINK驱动器。需要注意的是,该二进制文件被复制到了编程器PICO创建的驱动器,而不是目标PICO创建的驱动器。编程器PICO用作管道,通过编程线缆将二进制文件传送到目标PICO。
- 用户按住已修复PICO上的按钮并插入该PICO时,用户应该能够看到MAINTENANCE驱动器。
- 拔下编程器PICO。
如何删除PICO中的文件
如果需要彻底删除PICO的内容,请按照以下步骤操作:
- 将编程器PICO插入USB端口。这将创建一个DAPLINK驱动器。
- 将需要擦除内容的PICO插入另一个USB端口。
- 将编程电缆的弹簧连接器抵住要擦除内容的PICO背面的焊盘。
- 导航到zip文件中Erase File目录中的erase.act文件。
- 将此文件拖到DAPLINK驱动器。编程器PICO用作管道,通过编程线缆将擦除文件传送到目标PICO。
- 这样就会擦除目标PICO。
结论
这或许是与PICO建立良好关系的开始。它提供了一个出色的低成本平台,让用户能够使用功能强大且功耗超低的Arm®微控制器进行开发。本文提供了有关如何使用免费开发工具对PICO进行编程和调试的完整指南。用户成功完成一个项目后,就可以将该项目作为模板,在未来的开发中轻松复用,大幅降低开发工作量。最后,用户可以告别8位DIP时代,进入32位微控制器世界,同时仍然能够使用易操作的封装进行原型设计。
点击此链接下载软件文件:https://www.analog.com/media/en/software/software-configuration/eclipse-configuration.zip
致谢
非常感谢ADI微控制器支持团队,他们对配置文件进行了大量修 改,对这篇文章做出了很多贡献。
关于作者
关联至此文章
资源
{{modalTitle}}
{{modalDescription}}
{{dropdownTitle}}
- {{defaultSelectedText}} {{#each projectNames}}
- {{name}} {{/each}} {{#if newProjectText}}
-
{{newProjectText}}
{{/if}}
{{newProjectTitle}}
{{projectNameErrorText}}