zoukankan      html  css  js  c++  java
  • What is CMSIS-DAP

    The mbed HDK and mbed-enabled hardware support the CMSIS-DAP debug interface, which consists of an abstraction of the Cortex Debug Access Port (DAP) command set over a driver-less USB HID connection. This provides a USB connection to the DAP that major tool vendors have started to support. It even provides the flexibility for users to write their own debugger, or debug script using the USB bindings in languages like Python.

    What is CMSIS-DAP?

    CMSIS-DAP provides a standardized way to access the Coresight Debug Access Port (DAP) of an ARM Cortex microcontroller via USB. CMSIS-DAP is generally implemented as an on-board interface chip, providing direct USB connection from a development board to a debugger running on a host computer on one side, and over JTAG (Joint Test Action Group) or SWD (Serial Wire Debug) to the target device to access the Coresight DAP on the other.

    You can access the documentation on the ARM website. You will need to register for an ARM silver account to access the documentation.

    Why the need for CMSIS-DAP ?

    There are several reasons concerning the introduction of CMSIS-DAP:

    • Before the CMSIS-DAP standard, a lot of USB wigglers implemented their own protocols. With this configuration, the host debugger has to be aware of these different protocols and has to implement all of them, which produces a lot of fragmentation and re-inventing the wheel. At the same time, the protocols were usually defined at the JTAG level, meaning they are slow. CMSIS-DAP provides a standardised interface for debuggers that is defined at the Coresight DAP level, allowing for a standard interface and fast driverless implementations.
    • With the new CMSIS-DAP layer, the host debugger can debug targets over SWD or JTAG without the need to implement these two protocols
    • The USB connection uses the HID driver class. As HID drivers are built-in in every Operating Systems, there is no need for a specific driver to be installed on the host computer

    How CMSIS-DAP can be integrated ?

    As mentioned earlier, CMSIS-DAP has to be implemented on an Interface Chip. This chip provides the link between the host computer (over USB for instance) and the target that has to be debugged (over SWD or JTAG).

    On the mbed hardware, the CMSIS-DAP firmware has been implemented on the mbed interface as part of the mbed HDK. In addition to the Mass Storage and the Virtual Serial port interfaces, a HID endpoint is used to establish a CMSIS-DAP communication link with a debugger.

    Overview of the CMSIS-DAP standard

    Packets are exchanged between the host debugger and the Interface Chip. Basically, the host sends a command and the debug unit sends the response of the command. 

    Different types of commands can be issued by the host:

    • General Commands: request information and control the debug unit. Also used to connect/disconnect the debug unit.
    • Common SWD/JTAG commands: used for instance to set the clock speed
    • SWD specific commands: configure the parameters for SWD mode
    • JTAG specific commands: configure the JTAG device chain
    • Transfer Commands: read/write CoreSight registers. These commands are independent of the transport (SWD or JTAG)

    Example: read memory over CMSIS-DAP

    Let's say that a debugger needs to read the value at a specific location in memory. The following commands have to be sent by the host:

    • Transfer Command: write the CSW register (Control/Status Word Register). This will configure the transfer (32bits/16bits/8bits transfer)
    • Transfer Command: write the TAR register (Transfer Address Register) with the address of the memory location
    • Transfer Command: read the DRW register (Data Read/Write register) to read the value at the location specified earlier

    Conclusion

    CMSIS-DAP provides a standardized interface for debuggers. It will probably become the de-facto standard which debuggers and debug units will implement. This is why mbed chose to take advantage of this new standard to provide debug capabilities. For instance Keil uVision which combines an IDE, debugger and simulation environment already supports CMSIS-DAP. To try the new mbed interface with CMSIS-DAP, visit this page for more details :

  • 相关阅读:
    static,const,extern,以及全局常量
    ios开发之级联菜单(两个tableView实现)
    ios开发零散知识点总结
    ios开发static关键字的理解
    ios开发清除SDWebImage图片缓存
    python
    Scapy 伪造网络数据包
    LeetCode-73. Set Matrix Zeroes
    排序算法系列:Shell 排序算法
    Android中级第十一讲之MotionEvent的分发、拦截机制分析
  • 原文地址:https://www.cnblogs.com/shangdawei/p/4750827.html
Copyright © 2011-2022 走看看