硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4470|回复: 2
收起左侧

[玩转DAPLINK] 第3篇:DAPLINK(CMSIS-DAP)调试单元配置DAP_config.h

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2020-8-28 10:47:06 | 显示全部楼层 |阅读模式
配置信息:
(1)CMSIS-DAP调试单元中使用的Cortex-M处理器参数的定义。
(2)调试单元标识字符串(供应商,产品,序列号)。
(3)调试单元通信包大小。
(4)调试访问端口支持的模式和设置(JTAG / SWD和SWO)。
(5)有关已连接目标设备(用于评估板)的可选信息。

#define         CPU_CLOCK    100000000U
数值:CPU主频时钟
描述:调试单元中使用的Cortex-M MCU的处理器时钟。该值用于计算SWD / JTAG时钟速度。

#define         IO_PORT_WRITE_CYCLES    2U
数值:I/O时钟周期, 2=default,  1=Cortex-M0+ fast I/O
描述:I / O端口写操作时钟周期(主频)。此值用于计算Cortex-M MCU在调试单元中通过I / O端口写操作生成的SWD / JTAG时钟速度。大多数Cortex-M处理器需要2个处理器周期来进行I / O端口写操作。如果调试单元使用具有高速外围设备I / O的Cortex-M0 +处理器,则可能只需要1个处理器周期。

#define         DAP_SWD    1
数值:1 = available, 0 = not available
描述:表示在调试访问端口上使用SWD调试接口。此信息由命令DAP_Info作为Capabilities的一部分返回。

#define         DAP_JTAG    1
数值:1 = available, 0 = not available
描述:表示在调试端口上使用JTAG接口。此信息由命令DAP_Info作为Capabilities的一部分返回。

#define         DAP_JTAG_DEV_CNT    8U
数值:调试访问接口上外接的设备数
描述:在连接到调试访问端口的扫描链上配置JTAG设备的最大数量。此设置会影响调试单元的RAM要求。有效范围是1 ..255。

#define         DAP_DEFAULT_PORT    1U
数值:Default JTAG/SWJ Port Mode: 1 = SWD, 2 = JTAG
描述:调试访问端口上的默认通信模式,选择端口默认模式时,用于命令DAP_Connect。

#define         DAP_DEFAULT_SWJ_CLOCK    1000000U
数值:SWJ/JTAG时钟速度。
描述:SWD和JTAG模式的调试访问端口上的默认通信速度。用于初始化默认的SWD / JTAG时钟频率。可以使用命令DAP_SWJ_Clock覆盖此默认设置。

#define         DAP_PACKET_SIZE    512U
数值:数据包大小
描述:命令和响应数据的最大包大小。此配置设置用于优化与调试器的通信性能,并且取决于USB外设。对于全速USB HID或WinUSB,典型值是64,对于高速USB HID是1024,对于高速USB WinUSB是512。

#define         DAP_PACKET_COUNT    8U
数值:支持的数据包缓冲个数,即DAP_PACKET_SIZE的个数
描述:命令和响应数据的最大包缓冲区,此配置设置用于优化与调试器的通信性能,并且取决于USB外设。对于RAM或USB缓冲区有限的设备,可以减小设置(有效范围是1 .. 255)。

#define         SWO_UART    1
数值: 1 = available, 0 = not available
貌似:指示UART串行线输出(SWO)是否可用。此信息由命令DAP_Info作为Capabilities的一部分返回。

#define         SWO_UART_MAX_BAUDRATE    10000000U
数值:SWO波特率
描述:最大SWO UART波特率。

#define         SWO_MANCHESTER    0
数值:WO Manchester:  1 = available, 0 = not available
描述:指示曼彻斯特串行线输出(SWO)跟踪可用。此信息由命令DAP_Info作为Capabilities的一部分返回。

#define         SWO_BUFFER_SIZE    4096U
数值:SWO缓冲大小
描述:两个跟踪缓冲区大小。

#define         SWO_STREAM    0
数值:SWO Streaming Trace: 1 = available, 0 = not available
描述:SWO流跟踪。

#define         TIMESTAMP_CLOCK    100000000U
数值:时间戳
描述:测试域计时器的时钟频率。计时器值通过TIMESTAMP_GET返回。

#define         TARGET_DEVICE_FIXED    0
数值:Target Device: 1 = known, 0 = unknown
调试单元连接到固定的目标设备。调试单元可以是评估板的一部分,并且始终连接到固定的已知设备。在这种情况下,将存储设备供应商和设备名称字符串,调试器或IDE可以使用该字符串来配置设备参数。

  1. #if TARGET_DEVICE_FIXED
  2. #define TARGET_DEVICE_VENDOR    ""              ///< String indicating the Silicon Vendor
  3. #define TARGET_DEVICE_NAME      ""              ///< String indicating the Target Device
  4. #endif
复制代码



厂商,产品ID和串行字符串获取:

  1. /** Get Vendor ID string.
  2. \param str Pointer to buffer to store the string.
  3. \return String length.
  4. */
  5. __STATIC_INLINE uint8_t DAP_GetVendorString (char *str) {
  6.   (void)str;
  7.   return (0U);
  8. }

  9. /** Get Product ID string.
  10. \param str Pointer to buffer to store the string.
  11. \return String length.
  12. */
  13. __STATIC_INLINE uint8_t DAP_GetProductString (char *str) {
  14.   (void)str;
  15.   return (0U);
  16. }

  17. /** Get Serial Number string.
  18. \param str Pointer to buffer to store the string.
  19. \return String length.
  20. */
  21. __STATIC_INLINE uint8_t DAP_GetSerNumString (char *str) {
  22.   (void)str;
  23.   return (0U);
  24. }
复制代码



回复

使用道具 举报

2

主题

24

回帖

30

积分

新手上路

积分
30
发表于 2020-8-28 18:08:15 | 显示全部楼层
tool
的IO_PORT_WRITE_CYCLES 应该设置成多少是1吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
 楼主| 发表于 2020-8-29 09:04:36 | 显示全部楼层
wx_BwfeP1fz 发表于 2020-8-28 18:08
tool
的IO_PORT_WRITE_CYCLES 应该设置成多少是1吗

先设置成2测试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 01:08 , Processed in 0.240432 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表