编辑: kr9梯 | 2019-07-01 |
3 之基础篇(04) -- 如何使用调试信息系统服务 Microchip Technology Inc.
MCU32 产品部
一、 简介 嵌入式工程师经常会通过 UART 打印一些调试信息,Harmony
3 提供了标准的调 试系统服务功能,支持调试信息的打印.这样,用户不需要再创建自己的打印接 口等,节省开发时间. 调试系统服务(Debug System Service)的消息是发给控制台系统服务(Console System Service)的, Console 系统服务可以中转给 UART. 本文利用 MPLAB Harmony
3 Configurator(MHC)一步步的轻松配置并生成一个带 有调试信息打印的工程,例程中采用大家熟悉的 UART 作为调试信息打印的物理
2 接口.
二、 硬件工具和软件平台 硬件:SAM D21 Xplained Pro
3 软件: MPLAB? X IDE: v5.10 或者更新 XC32: v2.15 或者更新 Harmony 3: v3.10 或者更新
三、 详细步骤 接下来我们就可以用 MHC 一步步的进行配置和创建调试信息打印项目. 注:以下 MHC 配置里没有特别标注出来的地方,说明使用的是默认选项.
(一) 在MPLAB X IDE 里新建一个 Harmony
3 项目 在MPLAB X IDE 里点击 File > New Project: 选择"32-bit MPLAB Harmony Porject" ,然后点击"Next"按钮.
4 选择"Harmony Framework"路径,然后点击"Next"按钮.
5 填写项目名称,本示例使用"samd21_debug_uart" ,然后点击"Next"按钮. 选择芯片类型"ATSAMD21J18A" ,最后点击"Finish"按钮启动 MHC 配置界面.
(二) 启动 MHC 第一次创建项目时, MHC 配置界面会自动启动.或者手动在 MPLAB X IDE 里点击 Tools > Embeded > MPLAB Harmony
3 Configurator 启动:
6 点击"Launch"按钮启动 MHC.
(三) 使用 MHC, 配置时钟 启动时钟配置界面:
7 使用默认配置即可:
(四) 使用 MHC, 配置 UART 外设和引脚 在SAM D21 Xplained Pro 开发板上,有一个 EDBG 接口,它可以用于调试程序, 并且包含一个 USB 虚拟串口.这个虚拟串口接到了 SERCOM3 的UART 上:
8 1.在Available Component 列表里选择 SERCOM3 外设,双击加入工程 2.配置 SERCOM3 参数 3.配置 SERCOM3 的引脚 启动引脚配置界面:
9 配置 PA22, PA23 作为 SERCOM3 的PADx 引脚:
(五) 使用 MHC, 配置调试系统服务 1. 鼠标右键点击 SERCOM3 右下方黄色的菱形,然后选择 CONSOLE 组件
10 注:选择 CONSOLE 后,如提示添加关联组件"Harmony Core Service",添加即可. 如提示添加组件"FreeRTOS",选择不添加,因为本例程中不使用 RTOS. 2. 配置 CONSOLE 组件,使能 Debug 功能
11 12
(六) 使用 MHC, 生成代码 保存并生成代码:
(七) 在app.c 里增加如下测试代码 1. 包含相关头文件
13 #include "app.h" #include "definitions.h" // SYS function prototypes 2. 添加打印代码 void APP_Initialize ( void ) { /* Place the App state machine in its initial state. */ appData.state = APP_STATE_INIT;
SYS_MESSAGE("My first Test Message\r\n");
SYS_PRINT("Test print: appData.state = %x\r\n", appData.state);
}
(八) 编译下载测试 1. 用Micro USB 线将 SAM D21 Xplained Pro 开发板连接到电脑 2. 在项目属性里选择 XC32 编译器和 SAM D21 Xplained Pro EDBG 调试接口 3. 编译下载 编译并下载程序:
14 在串口终端程序里,你将看到这样的打印信息:
15
四、 总结 本文通过 MHC 一步步配置和生成代码完成了一个调试信息打印的简单工程应用. 如需详细了解调试系统服务的更多特点,请参考 Harmony
3 core 的帮助文档(章节:Debug System Service Library) .