可以发现DAP.c中的函数都是静态函数,只有DAP_ProcessCommand可以外部使用,具体的使用流程就是通过这个函数来调用其他函数
- DAP_Info:用于获取DAP信息。这个函数会返回关于DAP的一些基本信息,比如版本号、支持的功能等。
- DAP_Delay: 用于处理延迟命令。这个函数会在执行下一个命令之前等待一段时间,用于控制通信速率或执行一些时间相关的操作。
- DAP_HostStatus: 用于处理主机状态命令。在这个函数中,它会返回主机的连接状态、目标设备状态和错误状态等信息。
- DAP_Connect: 用于处理连接命令。这个函数会初始化DAP并连接到目标设备,它会检查目标设备是否支持CMSIS-DAP,并进行一些初始化设置。
- DAP_Disconnect: 用于处理断开命令。这个函数会断开与目标设备的连接,并进行一些清理工作。
- DAP_ResetTarget: 用于处理复位目标设备命令。这个函数会向目标设备发送复位信号,使其重新启动。
- DAP_SWJ_Pins: 用于处理SWJ引脚命令。SWJ引脚(Serial Wire JTAG)通常用于与目标设备进行调试和通信。这个函数会设置SWJ引脚的状态,比如设置引脚为输入输出模式、设置引脚的电平等。
- DAP_SWJ_Clock:这个函数用于设置SWJ引脚的时钟。它会根据指定的时钟频率计算出合适的分频比,并将分频比设置到DAP的寄存器中。
- DAP_SWJ_Sequence: 这个函数用于执行一系列SWJ引脚命令。它会根据指定的命令序列来依次执行不同的SWJ引脚命令。
- DAP_SWD_Configure: 这个函数用于设置SWD传输的时钟和数据线。它会根据指定的时钟频率计算出合适的分频比,并将分频比设置到DAP的寄存器中。
- DAP_SWD_Sequence
- DAP_SWD_Transfer: 这个函数用于处理SWD传输命令。SWD(Serial Wire Debug)是一种调试接口协议,它可以用于与目标设备进行调试和通信。这个函数会执行SWD传输操作,包括发送和接收数据。
- DAP_JTAG_IDCode
- DAP_TransferConfigure: DAP_TransferConfigure 函数用于配置数据传输操作的参数,包括传输延迟、重试次数和数据包大小等。
- DAP_SWD_Transfer: 处理 SWD 接口的传输命令。根据请求数据中的指令类型,执行相应的 SWD 操作,如读写寄存器数据等,并将结果存储在响应数据中。
- DAP_JTAG_Transfer: 处理 JTAG 接口的传输命令。根据请求数据中的指令类型,执行相应的 JTAG 操作,如选择 JTAG 链、读取 IDCODE 寄存器等,并将结果存储在响应数据中。
- DAP_Transfer: 进行DAP数据传输,发送请求并接收相应的响应。
- DAP_SWD_TransferBlock
- DAP_JTAG_TransferBlock
- DAP_TransferBlock: 进行块数据传输,发送请求并接收一定数量的数据响应。
- DAP_SWD_WriteAbort
- DAP_JTAG_WriteAbort
- DAP_WriteAbort: 根据调试端口类型选择调用SWD或JTAG的DAP_SWD_WriteAbort()或DAP_JTAG_WriteAbort()函数,用于向目标设备发送中断终止命令。
- DAP_ProcessVendorCommand: 处理DAP供应商自定义命令请求,默认函数返回无效的供应商ID。
- DAP_ProcessCommand : 根据传入的DAP命令请求,调用不同的处理函数,如连接/断开连接目标设备、设置SWD/JTAG接口配置、读写寄存器和内存等。
- DAP_ExecuteCommand :执行DAP命令,并返回响应结果。执行DAP命令,支持单个命令和多个命令打包执行。
- DAP_Setup: 初始化DAP系统参数,包括设置调试端口类型、设置传输相关参数等,可以根据具体需求进行修改。