STM8的 SWIM 通信协议(communication protocol 和调试 模块 介绍
本手册为需要建立 STM8微控制器系列的编程, 测试或调试工具的开发者而写。 它解释 了 STM8内核的调试结构。
STM8的调试系统包括以下两个模块: ●DM :调试模块;
●SWIM :单总线接口模块。 相关文档(Related documentation :
●How to program STM8S and STM8A Flash program memory and data EEPROM (PM0051 (STM8A
version is not published yet
●How to program STM8L Flash program memory and data EEPROM (PM0054 专业术语: DM :Debug Mode
SWIM :Serial Wire Interface Module WFI :Wait For Interrupt WFE :Wait For Event
目 录 1. 调试系统概
述 ...........................................................................................................1
2. 通信
层 .......................................................................................................................2
3. 单总线接口模块(SWIM ....................................................................................3 3.1 操作模式 ...................................................................................................................3 3.2 SWIM 入口序列 .......................................................................................................3 3.3 位格式 .......................................................................................................................5 3.4 SWIM 通信协议 .......................................................................................................6 3.5 SWIM 命令 ...............................................................................................................7 3.6 SWIM 通信复位 .......................................................................................................8 3.7 CPU 寄存器访问 ......................................................................................................8 3.8 在停止模式下的 SWIM 通信 ..................................................................................9 3.9 物理层 .......................................................................................................................9
3.10 STM8的 SWIM 寄存
器 ...........................................................................................9
4. 调试模块(DM ..................................................................................................12 4.1 介绍 .........................................................................................................................12 4.2 主要特点 .................................................................................................................12 4.3 调试 .........................................................................................................................12 4.4 断点解码表 .............................................................................................................14 4.5 软断点模式 .............................................................................................................14 4.6 时序描述 .................................................................................................................14 4.7 中止 (abort..............................................................................................................15 4.8 数据断点 .................................................................................................................15
4.9 指令断点(Instruction breakpoint ......................................................................15 4.10 单步模式 .................................................................................................................16 4.11 应用笔记 .................................................................................................................16
4.12 DM 寄存
器 .............................................................................................................16
5. 常见问题解
答 .........................................................................................................17 5.1 时序相关 .................................................................................................................17
1. 调试系统概述
STM8的调试系统接口允许一个调试或编程工具, 通过一根基于开漏接口的单总线双向 (bidirectional 通信线连接到 MCU 。
它提供了非抢占式 (non-intrusive 读写方式去访问 RAM 和外设, 在程序执行期间 (during program execution。
方框图(The block diagram如所示。
调 试 模 块 使 用 设 备 中 的 两 个 内 部 时 钟 源 , LSI 低 速 内 部 时 钟 (通 常 范 围 为 20KHz-200KHz ,视产品而定和 HSI 高速内部时钟(通常范围为 10MHz-25MHz ,视产品 而定 。必要时,时钟会自动启动。
2. 通信层
SWIM 是一个基于异步(asynchronous ,强灌电流(high sink (8mA ,开漏,双向通 信(bidirectional communication的单总线接口。
当 CPU 正在运行,出于调试目的, SWIM 允许非抢占式(non-intrusive 读写访问,去 执行 on-the-flay 到 RAM 和外设寄存器。
此外(In addition ,当 CPU 停止(stalled , SWIM 允许读写访问,去执行 MCU 存储 空间的其它部分(数据 EEPROM 和程序存储器 。
CPU 寄存器(A , X , Y , CC , SP 也可以被访问。这些寄存器被映射在存储器中,而 且可以以相同的方式去访问。
●仅仅当 SWIM_DM位置一时,寄存器,外设和存储器才被访问。 ●当系统处于停止 (HALT , WFI 或者读保护模式, SWIM_CSR寄存器的 NO_ACCESS标志将置一。在这种情况下,禁止(it is forbidden to 执行任何的访问,这
时因为 部分设备可能没有时钟驱动,读访问返回无用的数据(garbage ,或者写访问不成 功。
SWIM 可以执行 MCU 软件复位操作
SWIM 引脚可以作为标准 IO 口用于 MCU 的目标应用,如果你也想将他用于调试, IO 口功能将会有一些限制(some restrictions 。最安全的方式是在 PCB 设计时提供选择项(a strap option 。
3. 单总线接口模块(SWIM 3.1 操作模式
上电复位后, SWIM 复位,并且进入它的 OFF 模式。
1. OFF :在此模式下, SWIM 引脚一定不能在应用中用作 I/O口。等待 SWIM 入口 序列(entry sequence或者应用软件打开 I/O模式。
2. I/O:软件应用程序设置内核配置寄存器(CFG_GCR的 SWIM 禁能位(SWD (SWIM disable, 可以进入此状态。 在此状态下, 用户应用程序可以使用 SWIM 引脚作为标 准 I/O引脚,仅有的缺陷是无法使用该引脚的内置(bulit-in 调试功能。一旦复位(In case of a reset , SWIM 重新返回 OFF 模式。