From 9f95ff5b6ba01db09552b84a0ab79607060a2666 Mon Sep 17 00:00:00 2001 From: Ali Labbene Date: Wed, 11 Dec 2019 08:59:21 +0100 Subject: Official ARM version: v5.4.0 Add CMSIS V5.4.0, please refer to index.html available under \docs folder. Note: content of \CMSIS\Core\Include has been copied under \Include to keep the same structure used in existing projects, and thus avoid projects mass update Note: the following components have been removed from ARM original delivery (as not used in ST packages) - CMSIS_EW2018.pdf - .gitattributes - .gitignore - \Device - \CMSIS - \CoreValidation - \DAP - \Documentation - \DoxyGen - \Driver - \Pack - \RTOS\CMSIS_RTOS_Tutorial.pdf - \RTOS\RTX - \RTOS\Template - \RTOS2\RTX - \Utilities - All ARM/GCC projects files are deleted from \DSP, \RTOS and \RTOS2 Change-Id: Ia026c3f0f0d016627a4fb5a9032852c33d24b4d3 --- docs/DAP/html/CMSIS_DAP_DEBUG_UNIT.png | Bin 0 -> 16970 bytes docs/DAP/html/CMSIS_DAP_DEBUG_UNIT_ISO.png | Bin 0 -> 23973 bytes docs/DAP/html/CMSIS_DAP_INTERFACE.png | Bin 0 -> 21225 bytes docs/DAP/html/CMSIS_DAP_SWStack.png | Bin 0 -> 121452 bytes docs/DAP/html/CMSIS_Logo_Final.png | Bin 0 -> 12402 bytes docs/DAP/html/MDK_DAP_FW_V1.png | Bin 0 -> 5789 bytes docs/DAP/html/MDK_Device.png | Bin 0 -> 46112 bytes docs/DAP/html/MDK_Flash.png | Bin 0 -> 38618 bytes docs/DAP/html/MDK_USB.png | Bin 0 -> 20473 bytes docs/DAP/html/MDK_USB_Custom.png | Bin 0 -> 33683 bytes docs/DAP/html/MDK_USB_HID.png | Bin 0 -> 33326 bytes docs/DAP/html/MDK_Validation.png | Bin 0 -> 15056 bytes docs/DAP/html/RTE.png | Bin 0 -> 79487 bytes docs/DAP/html/SWD_Sequence.png | Bin 0 -> 23638 bytes docs/DAP/html/TraceManagement.png | Bin 0 -> 36540 bytes docs/DAP/html/bc_s.png | Bin 0 -> 671 bytes docs/DAP/html/bdwn.png | Bin 0 -> 147 bytes docs/DAP/html/closed.png | Bin 0 -> 132 bytes docs/DAP/html/cmsis.css | 1282 ++++++++++++++++++++ docs/DAP/html/dap_revisionHistory.html | 148 +++ .../html/dir_337e536fb1c5b958880fe7603a37f369.html | 135 +++ .../html/dir_7a3f7b856c1d77e4a9a9049e84d3db8d.html | 135 +++ .../html/dir_8a9a80ba65bbb7b5dbf4c356bd5d76dc.html | 135 +++ .../html/dir_b5d04f2cbc78ef25a6a15ed077f1cac3.html | 135 +++ .../html/dir_cb0527c7e727b108bfc7cd695b443c90.html | 135 +++ .../html/dir_d89085dc47c43856a701cdaf126c493f.html | 135 +++ docs/DAP/html/doxygen.png | Bin 0 -> 3835 bytes docs/DAP/html/dynsections.js | 97 ++ docs/DAP/html/ftv2blank.png | Bin 0 -> 86 bytes docs/DAP/html/ftv2cl.png | Bin 0 -> 449 bytes docs/DAP/html/ftv2doc.png | Bin 0 -> 761 bytes docs/DAP/html/ftv2folderclosed.png | Bin 0 -> 579 bytes docs/DAP/html/ftv2folderopen.png | Bin 0 -> 602 bytes docs/DAP/html/ftv2lastnode.png | Bin 0 -> 86 bytes docs/DAP/html/ftv2link.png | Bin 0 -> 761 bytes docs/DAP/html/ftv2mlastnode.png | Bin 0 -> 242 bytes docs/DAP/html/ftv2mnode.png | Bin 0 -> 242 bytes docs/DAP/html/ftv2mo.png | Bin 0 -> 403 bytes docs/DAP/html/ftv2node.png | Bin 0 -> 86 bytes docs/DAP/html/ftv2ns.png | Bin 0 -> 385 bytes docs/DAP/html/ftv2plastnode.png | Bin 0 -> 228 bytes docs/DAP/html/ftv2pnode.png | Bin 0 -> 228 bytes docs/DAP/html/ftv2splitbar.png | Bin 0 -> 315 bytes docs/DAP/html/ftv2vertline.png | Bin 0 -> 86 bytes docs/DAP/html/group__DAP__Commands__gr.html | 211 ++++ docs/DAP/html/group__DAP__Commands__gr.js | 11 + docs/DAP/html/group__DAP__ConfigFlash__gr.html | 138 +++ docs/DAP/html/group__DAP__ConfigIO__gr.html | 155 +++ docs/DAP/html/group__DAP__ConfigIO__gr.js | 8 + docs/DAP/html/group__DAP__ConfigMCU__gr.html | 149 +++ docs/DAP/html/group__DAP__ConfigUSB__gr.html | 254 ++++ docs/DAP/html/group__DAP__ConfigUSB__gr.js | 5 + docs/DAP/html/group__DAP__Config__Debug__gr.html | 525 ++++++++ docs/DAP/html/group__DAP__Config__Debug__gr.js | 22 + .../group__DAP__Config__Initialization__gr.html | 192 +++ .../html/group__DAP__Config__Initialization__gr.js | 5 + docs/DAP/html/group__DAP__Config__LEDs__gr.html | 207 ++++ docs/DAP/html/group__DAP__Config__LEDs__gr.js | 5 + docs/DAP/html/group__DAP__Config__PortIO__gr.html | 645 ++++++++++ docs/DAP/html/group__DAP__Config__PortIO__gr.js | 23 + .../html/group__DAP__Config__Timestamp__gr.html | 163 +++ docs/DAP/html/group__DAP__Config__Timestamp__gr.js | 4 + docs/DAP/html/group__DAP__Config__gr.html | 194 +++ docs/DAP/html/group__DAP__Config__gr.js | 7 + docs/DAP/html/group__DAP__Connect.html | 157 +++ docs/DAP/html/group__DAP__Delay.html | 147 +++ docs/DAP/html/group__DAP__Disconnect.html | 144 +++ docs/DAP/html/group__DAP__ExecuteCommands__gr.html | 161 +++ docs/DAP/html/group__DAP__HostStatus.html | 157 +++ docs/DAP/html/group__DAP__Info.html | 210 ++++ docs/DAP/html/group__DAP__JTAG__Configure.html | 148 +++ docs/DAP/html/group__DAP__JTAG__Sequence.html | 163 +++ docs/DAP/html/group__DAP__QueueCommands__gr.html | 210 ++++ docs/DAP/html/group__DAP__ResetTarget.html | 149 +++ docs/DAP/html/group__DAP__Response__Status.html | 137 +++ docs/DAP/html/group__DAP__SWD__Configure.html | 152 +++ docs/DAP/html/group__DAP__SWD__Sequence.html | 172 +++ docs/DAP/html/group__DAP__SWJ__Clock.html | 147 +++ docs/DAP/html/group__DAP__SWJ__Pins.html | 163 +++ docs/DAP/html/group__DAP__SWJ__Sequence.html | 148 +++ docs/DAP/html/group__DAP__SWO__Baudrate.html | 149 +++ docs/DAP/html/group__DAP__SWO__Control.html | 153 +++ docs/DAP/html/group__DAP__SWO__Data.html | 155 +++ docs/DAP/html/group__DAP__SWO__ExtendedStatus.html | 161 +++ docs/DAP/html/group__DAP__SWO__Mode.html | 153 +++ docs/DAP/html/group__DAP__SWO__Status.html | 151 +++ docs/DAP/html/group__DAP__SWO__Transport.html | 155 +++ docs/DAP/html/group__DAP__TI__Capture.html | 158 +++ docs/DAP/html/group__DAP__TI__Info.html | 232 ++++ docs/DAP/html/group__DAP__TI__TransferBlock.html | 187 +++ docs/DAP/html/group__DAP__TI__Value.html | 154 +++ docs/DAP/html/group__DAP__TestInput__gr.html | 165 +++ docs/DAP/html/group__DAP__TestInput__gr.js | 7 + docs/DAP/html/group__DAP__Transfer.html | 190 +++ docs/DAP/html/group__DAP__TransferAbort.html | 137 +++ docs/DAP/html/group__DAP__TransferBlock.html | 183 +++ docs/DAP/html/group__DAP__TransferConfigure.html | 154 +++ docs/DAP/html/group__DAP__USART__gr.html | 134 ++ docs/DAP/html/group__DAP__Validate__gr.html | 137 +++ docs/DAP/html/group__DAP__Vendor__gr.html | 133 ++ docs/DAP/html/group__DAP__WriteABORT.html | 148 +++ docs/DAP/html/group__DAP__atomic__gr.html | 152 +++ docs/DAP/html/group__DAP__atomic__gr.js | 5 + docs/DAP/html/group__DAP__genCommands__gr.html | 168 +++ docs/DAP/html/group__DAP__genCommands__gr.js | 10 + docs/DAP/html/group__DAP__jtag__gr.html | 154 +++ docs/DAP/html/group__DAP__jtag__gr.js | 6 + docs/DAP/html/group__DAP__jtag__idcode.html | 148 +++ docs/DAP/html/group__DAP__swd__gr.html | 146 +++ docs/DAP/html/group__DAP__swd__gr.js | 5 + docs/DAP/html/group__DAP__swj__gr.html | 154 +++ docs/DAP/html/group__DAP__swj__gr.js | 6 + docs/DAP/html/group__DAP__swo__gr.html | 180 +++ docs/DAP/html/group__DAP__swo__gr.js | 10 + docs/DAP/html/group__DAP__transfer__gr.html | 157 +++ docs/DAP/html/group__DAP__transfer__gr.js | 7 + docs/DAP/html/index.html | 188 +++ docs/DAP/html/jquery.js | 72 ++ docs/DAP/html/modules.html | 182 +++ docs/DAP/html/modules.js | 8 + docs/DAP/html/nav_f.png | Bin 0 -> 154 bytes docs/DAP/html/nav_g.png | Bin 0 -> 95 bytes docs/DAP/html/nav_h.png | Bin 0 -> 98 bytes docs/DAP/html/navtree.css | 143 +++ docs/DAP/html/navtree.js | 531 ++++++++ docs/DAP/html/navtreeindex0.js | 104 ++ docs/DAP/html/open.png | Bin 0 -> 122 bytes docs/DAP/html/pages.html | 133 ++ docs/DAP/html/printComponentTabs.js | 39 + docs/DAP/html/resize.js | 97 ++ docs/DAP/html/search/all_0.html | 26 + docs/DAP/html/search/all_0.js | 4 + docs/DAP/html/search/all_1.html | 26 + docs/DAP/html/search/all_1.js | 17 + docs/DAP/html/search/all_2.html | 26 + docs/DAP/html/search/all_2.js | 43 + docs/DAP/html/search/all_3.html | 26 + docs/DAP/html/search/all_3.js | 6 + docs/DAP/html/search/all_4.html | 26 + docs/DAP/html/search/all_4.js | 4 + docs/DAP/html/search/all_5.html | 26 + docs/DAP/html/search/all_5.js | 4 + docs/DAP/html/search/all_6.html | 26 + docs/DAP/html/search/all_6.js | 4 + docs/DAP/html/search/all_7.html | 26 + docs/DAP/html/search/all_7.js | 5 + docs/DAP/html/search/all_8.html | 26 + docs/DAP/html/search/all_8.js | 23 + docs/DAP/html/search/all_9.html | 26 + docs/DAP/html/search/all_9.js | 6 + docs/DAP/html/search/all_a.html | 26 + docs/DAP/html/search/all_a.js | 10 + docs/DAP/html/search/all_b.html | 26 + docs/DAP/html/search/all_b.js | 7 + docs/DAP/html/search/all_c.html | 26 + docs/DAP/html/search/all_c.js | 4 + docs/DAP/html/search/close.png | Bin 0 -> 273 bytes docs/DAP/html/search/functions_0.html | 26 + docs/DAP/html/search/functions_0.js | 7 + docs/DAP/html/search/functions_1.html | 26 + docs/DAP/html/search/functions_1.js | 5 + docs/DAP/html/search/functions_2.html | 26 + docs/DAP/html/search/functions_2.js | 23 + docs/DAP/html/search/functions_3.html | 26 + docs/DAP/html/search/functions_3.js | 4 + docs/DAP/html/search/functions_4.html | 26 + docs/DAP/html/search/functions_4.js | 4 + docs/DAP/html/search/groups_0.html | 26 + docs/DAP/html/search/groups_0.js | 4 + docs/DAP/html/search/groups_1.html | 26 + docs/DAP/html/search/groups_1.js | 14 + docs/DAP/html/search/groups_2.html | 26 + docs/DAP/html/search/groups_2.js | 32 + docs/DAP/html/search/groups_3.html | 26 + docs/DAP/html/search/groups_3.js | 5 + docs/DAP/html/search/groups_4.html | 26 + docs/DAP/html/search/groups_4.js | 4 + docs/DAP/html/search/groups_5.html | 26 + docs/DAP/html/search/groups_5.js | 4 + docs/DAP/html/search/groups_6.html | 26 + docs/DAP/html/search/groups_6.js | 4 + docs/DAP/html/search/groups_7.html | 26 + docs/DAP/html/search/groups_7.js | 5 + docs/DAP/html/search/groups_8.html | 26 + docs/DAP/html/search/groups_8.js | 4 + docs/DAP/html/search/groups_9.html | 26 + docs/DAP/html/search/groups_9.js | 4 + docs/DAP/html/search/mag_sel.png | Bin 0 -> 563 bytes docs/DAP/html/search/nomatches.html | 12 + docs/DAP/html/search/pages_0.html | 26 + docs/DAP/html/search/pages_0.js | 5 + docs/DAP/html/search/pages_1.html | 26 + docs/DAP/html/search/pages_1.js | 4 + docs/DAP/html/search/pages_2.html | 26 + docs/DAP/html/search/pages_2.js | 4 + docs/DAP/html/search/search.css | 240 ++++ docs/DAP/html/search/search.js | 799 ++++++++++++ docs/DAP/html/search/search_l.png | Bin 0 -> 604 bytes docs/DAP/html/search/search_m.png | Bin 0 -> 158 bytes docs/DAP/html/search/search_r.png | Bin 0 -> 612 bytes docs/DAP/html/sync_off.png | Bin 0 -> 856 bytes docs/DAP/html/sync_on.png | Bin 0 -> 845 bytes docs/DAP/html/tab_a.png | Bin 0 -> 146 bytes docs/DAP/html/tab_b.png | Bin 0 -> 166 bytes docs/DAP/html/tab_h.png | Bin 0 -> 179 bytes docs/DAP/html/tab_s.png | Bin 0 -> 186 bytes docs/DAP/html/tab_topnav.png | Bin 0 -> 232 bytes docs/DAP/html/tabs.css | 71 ++ 208 files changed, 16027 insertions(+) create mode 100644 docs/DAP/html/CMSIS_DAP_DEBUG_UNIT.png create mode 100644 docs/DAP/html/CMSIS_DAP_DEBUG_UNIT_ISO.png create mode 100644 docs/DAP/html/CMSIS_DAP_INTERFACE.png create mode 100644 docs/DAP/html/CMSIS_DAP_SWStack.png create mode 100644 docs/DAP/html/CMSIS_Logo_Final.png create mode 100644 docs/DAP/html/MDK_DAP_FW_V1.png create mode 100644 docs/DAP/html/MDK_Device.png create mode 100644 docs/DAP/html/MDK_Flash.png create mode 100644 docs/DAP/html/MDK_USB.png create mode 100644 docs/DAP/html/MDK_USB_Custom.png create mode 100644 docs/DAP/html/MDK_USB_HID.png create mode 100644 docs/DAP/html/MDK_Validation.png create mode 100644 docs/DAP/html/RTE.png create mode 100644 docs/DAP/html/SWD_Sequence.png create mode 100644 docs/DAP/html/TraceManagement.png create mode 100644 docs/DAP/html/bc_s.png create mode 100644 docs/DAP/html/bdwn.png create mode 100644 docs/DAP/html/closed.png create mode 100644 docs/DAP/html/cmsis.css create mode 100644 docs/DAP/html/dap_revisionHistory.html create mode 100644 docs/DAP/html/dir_337e536fb1c5b958880fe7603a37f369.html create mode 100644 docs/DAP/html/dir_7a3f7b856c1d77e4a9a9049e84d3db8d.html create mode 100644 docs/DAP/html/dir_8a9a80ba65bbb7b5dbf4c356bd5d76dc.html create mode 100644 docs/DAP/html/dir_b5d04f2cbc78ef25a6a15ed077f1cac3.html create mode 100644 docs/DAP/html/dir_cb0527c7e727b108bfc7cd695b443c90.html create mode 100644 docs/DAP/html/dir_d89085dc47c43856a701cdaf126c493f.html create mode 100644 docs/DAP/html/doxygen.png create mode 100644 docs/DAP/html/dynsections.js create mode 100644 docs/DAP/html/ftv2blank.png create mode 100644 docs/DAP/html/ftv2cl.png create mode 100644 docs/DAP/html/ftv2doc.png create mode 100644 docs/DAP/html/ftv2folderclosed.png create mode 100644 docs/DAP/html/ftv2folderopen.png create mode 100644 docs/DAP/html/ftv2lastnode.png create mode 100644 docs/DAP/html/ftv2link.png create mode 100644 docs/DAP/html/ftv2mlastnode.png create mode 100644 docs/DAP/html/ftv2mnode.png create mode 100644 docs/DAP/html/ftv2mo.png create mode 100644 docs/DAP/html/ftv2node.png create mode 100644 docs/DAP/html/ftv2ns.png create mode 100644 docs/DAP/html/ftv2plastnode.png create mode 100644 docs/DAP/html/ftv2pnode.png create mode 100644 docs/DAP/html/ftv2splitbar.png create mode 100644 docs/DAP/html/ftv2vertline.png create mode 100644 docs/DAP/html/group__DAP__Commands__gr.html create mode 100644 docs/DAP/html/group__DAP__Commands__gr.js create mode 100644 docs/DAP/html/group__DAP__ConfigFlash__gr.html create mode 100644 docs/DAP/html/group__DAP__ConfigIO__gr.html create mode 100644 docs/DAP/html/group__DAP__ConfigIO__gr.js create mode 100644 docs/DAP/html/group__DAP__ConfigMCU__gr.html create mode 100644 docs/DAP/html/group__DAP__ConfigUSB__gr.html create mode 100644 docs/DAP/html/group__DAP__ConfigUSB__gr.js create mode 100644 docs/DAP/html/group__DAP__Config__Debug__gr.html create mode 100644 docs/DAP/html/group__DAP__Config__Debug__gr.js create mode 100644 docs/DAP/html/group__DAP__Config__Initialization__gr.html create mode 100644 docs/DAP/html/group__DAP__Config__Initialization__gr.js create mode 100644 docs/DAP/html/group__DAP__Config__LEDs__gr.html create mode 100644 docs/DAP/html/group__DAP__Config__LEDs__gr.js create mode 100644 docs/DAP/html/group__DAP__Config__PortIO__gr.html create mode 100644 docs/DAP/html/group__DAP__Config__PortIO__gr.js create mode 100644 docs/DAP/html/group__DAP__Config__Timestamp__gr.html create mode 100644 docs/DAP/html/group__DAP__Config__Timestamp__gr.js create mode 100644 docs/DAP/html/group__DAP__Config__gr.html create mode 100644 docs/DAP/html/group__DAP__Config__gr.js create mode 100644 docs/DAP/html/group__DAP__Connect.html create mode 100644 docs/DAP/html/group__DAP__Delay.html create mode 100644 docs/DAP/html/group__DAP__Disconnect.html create mode 100644 docs/DAP/html/group__DAP__ExecuteCommands__gr.html create mode 100644 docs/DAP/html/group__DAP__HostStatus.html create mode 100644 docs/DAP/html/group__DAP__Info.html create mode 100644 docs/DAP/html/group__DAP__JTAG__Configure.html create mode 100644 docs/DAP/html/group__DAP__JTAG__Sequence.html create mode 100644 docs/DAP/html/group__DAP__QueueCommands__gr.html create mode 100644 docs/DAP/html/group__DAP__ResetTarget.html create mode 100644 docs/DAP/html/group__DAP__Response__Status.html create mode 100644 docs/DAP/html/group__DAP__SWD__Configure.html create mode 100644 docs/DAP/html/group__DAP__SWD__Sequence.html create mode 100644 docs/DAP/html/group__DAP__SWJ__Clock.html create mode 100644 docs/DAP/html/group__DAP__SWJ__Pins.html create mode 100644 docs/DAP/html/group__DAP__SWJ__Sequence.html create mode 100644 docs/DAP/html/group__DAP__SWO__Baudrate.html create mode 100644 docs/DAP/html/group__DAP__SWO__Control.html create mode 100644 docs/DAP/html/group__DAP__SWO__Data.html create mode 100644 docs/DAP/html/group__DAP__SWO__ExtendedStatus.html create mode 100644 docs/DAP/html/group__DAP__SWO__Mode.html create mode 100644 docs/DAP/html/group__DAP__SWO__Status.html create mode 100644 docs/DAP/html/group__DAP__SWO__Transport.html create mode 100644 docs/DAP/html/group__DAP__TI__Capture.html create mode 100644 docs/DAP/html/group__DAP__TI__Info.html create mode 100644 docs/DAP/html/group__DAP__TI__TransferBlock.html create mode 100644 docs/DAP/html/group__DAP__TI__Value.html create mode 100644 docs/DAP/html/group__DAP__TestInput__gr.html create mode 100644 docs/DAP/html/group__DAP__TestInput__gr.js create mode 100644 docs/DAP/html/group__DAP__Transfer.html create mode 100644 docs/DAP/html/group__DAP__TransferAbort.html create mode 100644 docs/DAP/html/group__DAP__TransferBlock.html create mode 100644 docs/DAP/html/group__DAP__TransferConfigure.html create mode 100644 docs/DAP/html/group__DAP__USART__gr.html create mode 100644 docs/DAP/html/group__DAP__Validate__gr.html create mode 100644 docs/DAP/html/group__DAP__Vendor__gr.html create mode 100644 docs/DAP/html/group__DAP__WriteABORT.html create mode 100644 docs/DAP/html/group__DAP__atomic__gr.html create mode 100644 docs/DAP/html/group__DAP__atomic__gr.js create mode 100644 docs/DAP/html/group__DAP__genCommands__gr.html create mode 100644 docs/DAP/html/group__DAP__genCommands__gr.js create mode 100644 docs/DAP/html/group__DAP__jtag__gr.html create mode 100644 docs/DAP/html/group__DAP__jtag__gr.js create mode 100644 docs/DAP/html/group__DAP__jtag__idcode.html create mode 100644 docs/DAP/html/group__DAP__swd__gr.html create mode 100644 docs/DAP/html/group__DAP__swd__gr.js create mode 100644 docs/DAP/html/group__DAP__swj__gr.html create mode 100644 docs/DAP/html/group__DAP__swj__gr.js create mode 100644 docs/DAP/html/group__DAP__swo__gr.html create mode 100644 docs/DAP/html/group__DAP__swo__gr.js create mode 100644 docs/DAP/html/group__DAP__transfer__gr.html create mode 100644 docs/DAP/html/group__DAP__transfer__gr.js create mode 100644 docs/DAP/html/index.html create mode 100644 docs/DAP/html/jquery.js create mode 100644 docs/DAP/html/modules.html create mode 100644 docs/DAP/html/modules.js create mode 100644 docs/DAP/html/nav_f.png create mode 100644 docs/DAP/html/nav_g.png create mode 100644 docs/DAP/html/nav_h.png create mode 100644 docs/DAP/html/navtree.css create mode 100644 docs/DAP/html/navtree.js create mode 100644 docs/DAP/html/navtreeindex0.js create mode 100644 docs/DAP/html/open.png create mode 100644 docs/DAP/html/pages.html create mode 100644 docs/DAP/html/printComponentTabs.js create mode 100644 docs/DAP/html/resize.js create mode 100644 docs/DAP/html/search/all_0.html create mode 100644 docs/DAP/html/search/all_0.js create mode 100644 docs/DAP/html/search/all_1.html create mode 100644 docs/DAP/html/search/all_1.js create mode 100644 docs/DAP/html/search/all_2.html create mode 100644 docs/DAP/html/search/all_2.js create mode 100644 docs/DAP/html/search/all_3.html create mode 100644 docs/DAP/html/search/all_3.js create mode 100644 docs/DAP/html/search/all_4.html create mode 100644 docs/DAP/html/search/all_4.js create mode 100644 docs/DAP/html/search/all_5.html create mode 100644 docs/DAP/html/search/all_5.js create mode 100644 docs/DAP/html/search/all_6.html create mode 100644 docs/DAP/html/search/all_6.js create mode 100644 docs/DAP/html/search/all_7.html create mode 100644 docs/DAP/html/search/all_7.js create mode 100644 docs/DAP/html/search/all_8.html create mode 100644 docs/DAP/html/search/all_8.js create mode 100644 docs/DAP/html/search/all_9.html create mode 100644 docs/DAP/html/search/all_9.js create mode 100644 docs/DAP/html/search/all_a.html create mode 100644 docs/DAP/html/search/all_a.js create mode 100644 docs/DAP/html/search/all_b.html create mode 100644 docs/DAP/html/search/all_b.js create mode 100644 docs/DAP/html/search/all_c.html create mode 100644 docs/DAP/html/search/all_c.js create mode 100644 docs/DAP/html/search/close.png create mode 100644 docs/DAP/html/search/functions_0.html create mode 100644 docs/DAP/html/search/functions_0.js create mode 100644 docs/DAP/html/search/functions_1.html create mode 100644 docs/DAP/html/search/functions_1.js create mode 100644 docs/DAP/html/search/functions_2.html create mode 100644 docs/DAP/html/search/functions_2.js create mode 100644 docs/DAP/html/search/functions_3.html create mode 100644 docs/DAP/html/search/functions_3.js create mode 100644 docs/DAP/html/search/functions_4.html create mode 100644 docs/DAP/html/search/functions_4.js create mode 100644 docs/DAP/html/search/groups_0.html create mode 100644 docs/DAP/html/search/groups_0.js create mode 100644 docs/DAP/html/search/groups_1.html create mode 100644 docs/DAP/html/search/groups_1.js create mode 100644 docs/DAP/html/search/groups_2.html create mode 100644 docs/DAP/html/search/groups_2.js create mode 100644 docs/DAP/html/search/groups_3.html create mode 100644 docs/DAP/html/search/groups_3.js create mode 100644 docs/DAP/html/search/groups_4.html create mode 100644 docs/DAP/html/search/groups_4.js create mode 100644 docs/DAP/html/search/groups_5.html create mode 100644 docs/DAP/html/search/groups_5.js create mode 100644 docs/DAP/html/search/groups_6.html create mode 100644 docs/DAP/html/search/groups_6.js create mode 100644 docs/DAP/html/search/groups_7.html create mode 100644 docs/DAP/html/search/groups_7.js create mode 100644 docs/DAP/html/search/groups_8.html create mode 100644 docs/DAP/html/search/groups_8.js create mode 100644 docs/DAP/html/search/groups_9.html create mode 100644 docs/DAP/html/search/groups_9.js create mode 100644 docs/DAP/html/search/mag_sel.png create mode 100644 docs/DAP/html/search/nomatches.html create mode 100644 docs/DAP/html/search/pages_0.html create mode 100644 docs/DAP/html/search/pages_0.js create mode 100644 docs/DAP/html/search/pages_1.html create mode 100644 docs/DAP/html/search/pages_1.js create mode 100644 docs/DAP/html/search/pages_2.html create mode 100644 docs/DAP/html/search/pages_2.js create mode 100644 docs/DAP/html/search/search.css create mode 100644 docs/DAP/html/search/search.js create mode 100644 docs/DAP/html/search/search_l.png create mode 100644 docs/DAP/html/search/search_m.png create mode 100644 docs/DAP/html/search/search_r.png create mode 100644 docs/DAP/html/sync_off.png create mode 100644 docs/DAP/html/sync_on.png create mode 100644 docs/DAP/html/tab_a.png create mode 100644 docs/DAP/html/tab_b.png create mode 100644 docs/DAP/html/tab_h.png create mode 100644 docs/DAP/html/tab_s.png create mode 100644 docs/DAP/html/tab_topnav.png create mode 100644 docs/DAP/html/tabs.css (limited to 'docs/DAP') diff --git a/docs/DAP/html/CMSIS_DAP_DEBUG_UNIT.png b/docs/DAP/html/CMSIS_DAP_DEBUG_UNIT.png new file mode 100644 index 0000000..9dc949a Binary files /dev/null and b/docs/DAP/html/CMSIS_DAP_DEBUG_UNIT.png differ diff --git a/docs/DAP/html/CMSIS_DAP_DEBUG_UNIT_ISO.png b/docs/DAP/html/CMSIS_DAP_DEBUG_UNIT_ISO.png new file mode 100644 index 0000000..8080e1d Binary files /dev/null and b/docs/DAP/html/CMSIS_DAP_DEBUG_UNIT_ISO.png differ diff --git a/docs/DAP/html/CMSIS_DAP_INTERFACE.png b/docs/DAP/html/CMSIS_DAP_INTERFACE.png new file mode 100644 index 0000000..33045aa Binary files /dev/null and b/docs/DAP/html/CMSIS_DAP_INTERFACE.png differ diff --git a/docs/DAP/html/CMSIS_DAP_SWStack.png b/docs/DAP/html/CMSIS_DAP_SWStack.png new file mode 100644 index 0000000..201214c Binary files /dev/null and b/docs/DAP/html/CMSIS_DAP_SWStack.png differ diff --git a/docs/DAP/html/CMSIS_Logo_Final.png b/docs/DAP/html/CMSIS_Logo_Final.png new file mode 100644 index 0000000..2056b7e Binary files /dev/null and b/docs/DAP/html/CMSIS_Logo_Final.png differ diff --git a/docs/DAP/html/MDK_DAP_FW_V1.png b/docs/DAP/html/MDK_DAP_FW_V1.png new file mode 100644 index 0000000..771f960 Binary files /dev/null and b/docs/DAP/html/MDK_DAP_FW_V1.png differ diff --git a/docs/DAP/html/MDK_Device.png b/docs/DAP/html/MDK_Device.png new file mode 100644 index 0000000..202ea3c Binary files /dev/null and b/docs/DAP/html/MDK_Device.png differ diff --git a/docs/DAP/html/MDK_Flash.png b/docs/DAP/html/MDK_Flash.png new file mode 100644 index 0000000..cd0c1d5 Binary files /dev/null and b/docs/DAP/html/MDK_Flash.png differ diff --git a/docs/DAP/html/MDK_USB.png b/docs/DAP/html/MDK_USB.png new file mode 100644 index 0000000..710b681 Binary files /dev/null and b/docs/DAP/html/MDK_USB.png differ diff --git a/docs/DAP/html/MDK_USB_Custom.png b/docs/DAP/html/MDK_USB_Custom.png new file mode 100644 index 0000000..3016a7e Binary files /dev/null and b/docs/DAP/html/MDK_USB_Custom.png differ diff --git a/docs/DAP/html/MDK_USB_HID.png b/docs/DAP/html/MDK_USB_HID.png new file mode 100644 index 0000000..0633413 Binary files /dev/null and b/docs/DAP/html/MDK_USB_HID.png differ diff --git a/docs/DAP/html/MDK_Validation.png b/docs/DAP/html/MDK_Validation.png new file mode 100644 index 0000000..01244d7 Binary files /dev/null and b/docs/DAP/html/MDK_Validation.png differ diff --git a/docs/DAP/html/RTE.png b/docs/DAP/html/RTE.png new file mode 100644 index 0000000..9949b64 Binary files /dev/null and b/docs/DAP/html/RTE.png differ diff --git a/docs/DAP/html/SWD_Sequence.png b/docs/DAP/html/SWD_Sequence.png new file mode 100644 index 0000000..0fe7f50 Binary files /dev/null and b/docs/DAP/html/SWD_Sequence.png differ diff --git a/docs/DAP/html/TraceManagement.png b/docs/DAP/html/TraceManagement.png new file mode 100644 index 0000000..1a1207f Binary files /dev/null and b/docs/DAP/html/TraceManagement.png differ diff --git a/docs/DAP/html/bc_s.png b/docs/DAP/html/bc_s.png new file mode 100644 index 0000000..66f8e9a Binary files /dev/null and b/docs/DAP/html/bc_s.png differ diff --git a/docs/DAP/html/bdwn.png b/docs/DAP/html/bdwn.png new file mode 100644 index 0000000..d400769 Binary files /dev/null and b/docs/DAP/html/bdwn.png differ diff --git a/docs/DAP/html/closed.png b/docs/DAP/html/closed.png new file mode 100644 index 0000000..ccbcf62 Binary files /dev/null and b/docs/DAP/html/closed.png differ diff --git a/docs/DAP/html/cmsis.css b/docs/DAP/html/cmsis.css new file mode 100644 index 0000000..bba1010 --- /dev/null +++ b/docs/DAP/html/cmsis.css @@ -0,0 +1,1282 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 13px; + line-height: 1.3; +} + +/* CMSIS styles */ + +.style1 { + text-align: center; +} +.style2 { + color: #0000FF; + font-weight: normal; +} +.style3 { + text-align: left; +} +.style4 { + color: #008000; +} +.style5 { + color: #0000FF; +} +.style6 { + color: #000000; + font-style:italic; +} +.mand { + color: #0000FF; +} +.opt { + color: #008000; +} +.cond { + color: #990000; +} + +.choice +{ + background-color:#F7F9D0; +} +.seq +{ + background-color:#C9DECB; +} +.group1 +{ + background-color:#F8F1F1; +} +.group2 +{ + background-color:#DCEDEA; +} + + +ul ul { + list-style-type: disc; +} + +ul ul ul { + list-style-type: disc; +} + +ul.hierarchy { + color: green; +} + +em { + color: #000000; + font-style:italic; +} + + + +/* CMSIS Tables */ +table.cmtab1 { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; + text-align: justify; + width:70%; +} + +th.cmtab1 { + background: #EBEFF6; + font-weight: bold; + height: 28px; +} + +td.cmtab1 { + padding:1px; + text-align: left; +} + +table.cmtable { + border-collapse:collapse; + text-align: justify; +} + +table.cmtable td, table.cmtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.cmtable th { + background-color: #EBEFF6; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; +} + +td.MonoTxt { + font-family:"Arial monospaced for SAP"; +} + +td.XML-Token +{ + azimuth: 180; + font-style:italic; + color:Maroon; + z-index:20; + +} + +span.XML-Token +{ + azimuth: 180; + font-style:italic; + color:Maroon; + z-index:20; + +} + +span.h2 +{ + font-size: 120%; + font-weight: bold; +} + +div.new +{ + background-color:#ccffcc; /* light green */ +} + +div.mod +{ + background-color:#ffe6cc; /* light amber */ +} + +div.del +{ + background-color:#ffcccc; /* light red */ +} + +/* @group Heading Levels */ + +h1 { + font-size: 150%; +} + +.title { + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A2B4D8; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3A568E; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4464A5; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9AAED5; + color: #ffffff; + border: 1px double #849CCC; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px; + margin: 4px; + background-color: #FBFCFD; + border: 1px solid #C3CFE6; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; +} + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C3CFE6; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C3CFE6; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EDF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9AAED5; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A2B4D8; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4769AD; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #C3CFE6; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4464A5; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4464A5; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A2B4D8; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A7B8DA; + border-left: 1px solid #A7B8DA; + border-right: 1px solid #A7B8DA; + padding: 6px 0px 6px 0px; + color: #233456; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E7F3; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A7B8DA; + border-left: 1px solid #A7B8DA; + border-right: 1px solid #A7B8DA; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #708CC4; + border-top:1px solid #5072B7; + border-left:1px solid #5072B7; + border-right:1px solid #C3CFE6; + border-bottom:1px solid #C3CFE6; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; +} + + + +/* @end */ + +/* these are for tree view when not used as main index */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3A568E; +} + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #293C63; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2B4069; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #EBEFF6; + color: #000000; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + width: 100%; + margin-bottom: 10px; + border: 1px solid #A7B8DA; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A7B8DA; + border-bottom: 1px solid #A7B8DA; + vertical-align: top; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A7B8DA; + width: 100%; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E7F3; + font-size: 90%; + color: #233456; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A7B8DA; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#889FCE; + border:solid 1px #C1CDE5; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#344D7E; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#6583BF; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#344D7E; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + margin-left: 5px; + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C3CFE6; +} + +div.headertitle +{ + padding: 5px 5px 5px 7px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5072B7; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #8EA4D0; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#314877; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D7DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4464A5; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/docs/DAP/html/dap_revisionHistory.html b/docs/DAP/html/dap_revisionHistory.html new file mode 100644 index 0000000..fbd54f5 --- /dev/null +++ b/docs/DAP/html/dap_revisionHistory.html @@ -0,0 +1,148 @@ + + + + + +Revision History of CMSIS-DAP +CMSIS-DAP: Revision History of CMSIS-DAP + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Revision History of CMSIS-DAP
+
+
+
+ + + + + + + + + + + + + + +
Version Description
V2.0.0 Changed: Communication via WinUSB to achieve high-speed transfer rates
+ Added: Streaming SWO via separate WinUSB endpoint
+ Added: DAP_SWO_Transport extended with transport mode 2 - Send trace data via separate WinUSB endpoint
V1.2.0 Added: DAP_SWD_Sequence to enable SWD multi-drop target selection
+ Added: Test Domain Timer values in the commands DAP_Info, DAP_Transfer
V1.1.0 Added: SWO Commands to support Serial Wire Output (SWO) in UART mode
+ Added: Atomic Commands support for executing time critical DAP commands
V1.0.0 Version 1.0.0 was never released; version number skipped.
V0.02 Renamed DAP_LED to DAP_HostStatus.
V0.01 Beta Release.
+
+
+ + + + diff --git a/docs/DAP/html/dir_337e536fb1c5b958880fe7603a37f369.html b/docs/DAP/html/dir_337e536fb1c5b958880fe7603a37f369.html new file mode 100644 index 0000000..f93b7e5 --- /dev/null +++ b/docs/DAP/html/dir_337e536fb1c5b958880fe7603a37f369.html @@ -0,0 +1,135 @@ + + + + + +Config Directory Reference +CMSIS-DAP: Config Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 1.1.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Config Directory Reference
+
+
+ + + + +

+Files

file  DAP_config.h
 
+
+
+ + + + diff --git a/docs/DAP/html/dir_7a3f7b856c1d77e4a9a9049e84d3db8d.html b/docs/DAP/html/dir_7a3f7b856c1d77e4a9a9049e84d3db8d.html new file mode 100644 index 0000000..ec5e9c1 --- /dev/null +++ b/docs/DAP/html/dir_7a3f7b856c1d77e4a9a9049e84d3db8d.html @@ -0,0 +1,135 @@ + + + + + +Firmware Directory Reference +CMSIS-DAP: Firmware Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Firmware Directory Reference
+
+
+ + + + +

+Directories

directory  Config
 
+
+
+ + + + diff --git a/docs/DAP/html/dir_8a9a80ba65bbb7b5dbf4c356bd5d76dc.html b/docs/DAP/html/dir_8a9a80ba65bbb7b5dbf4c356bd5d76dc.html new file mode 100644 index 0000000..94e8088 --- /dev/null +++ b/docs/DAP/html/dir_8a9a80ba65bbb7b5dbf4c356bd5d76dc.html @@ -0,0 +1,135 @@ + + + + + +DAP Directory Reference +CMSIS-DAP: DAP Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP Directory Reference
+
+
+ + + + +

+Directories

directory  Firmware
 
+
+
+ + + + diff --git a/docs/DAP/html/dir_b5d04f2cbc78ef25a6a15ed077f1cac3.html b/docs/DAP/html/dir_b5d04f2cbc78ef25a6a15ed077f1cac3.html new file mode 100644 index 0000000..296c8e8 --- /dev/null +++ b/docs/DAP/html/dir_b5d04f2cbc78ef25a6a15ed077f1cac3.html @@ -0,0 +1,135 @@ + + + + + +DAP Directory Reference +CMSIS-DAP: DAP Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 1.1.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP Directory Reference
+
+
+ + + + +

+Directories

directory  Firmware
 
+
+
+ + + + diff --git a/docs/DAP/html/dir_cb0527c7e727b108bfc7cd695b443c90.html b/docs/DAP/html/dir_cb0527c7e727b108bfc7cd695b443c90.html new file mode 100644 index 0000000..0779b40 --- /dev/null +++ b/docs/DAP/html/dir_cb0527c7e727b108bfc7cd695b443c90.html @@ -0,0 +1,135 @@ + + + + + +Firmware Directory Reference +CMSIS-DAP: Firmware Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 1.1.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Firmware Directory Reference
+
+
+ + + + +

+Directories

directory  Config
 
+
+
+ + + + diff --git a/docs/DAP/html/dir_d89085dc47c43856a701cdaf126c493f.html b/docs/DAP/html/dir_d89085dc47c43856a701cdaf126c493f.html new file mode 100644 index 0000000..a8dfb2e --- /dev/null +++ b/docs/DAP/html/dir_d89085dc47c43856a701cdaf126c493f.html @@ -0,0 +1,135 @@ + + + + + +Config Directory Reference +CMSIS-DAP: Config Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Config Directory Reference
+
+
+ + + + +

+Files

file  DAP_config.h
 
+
+
+ + + + diff --git a/docs/DAP/html/doxygen.png b/docs/DAP/html/doxygen.png new file mode 100644 index 0000000..7765a33 Binary files /dev/null and b/docs/DAP/html/doxygen.png differ diff --git a/docs/DAP/html/dynsections.js b/docs/DAP/html/dynsections.js new file mode 100644 index 0000000..ed092c7 --- /dev/null +++ b/docs/DAP/html/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} +function toggleLevel(level) +{ + $('table.directory tr').each(function(){ + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + +CMSIS-DAP Commands +CMSIS-DAP: CMSIS-DAP Commands + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
CMSIS-DAP Commands
+
+
+ +

Commands between Debug Unit and host computer. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Content

 General Commands
 Information and Control commands for the CMSIS-DAP Debug Unit.
 
 Common SWD/JTAG Commands
 Set SWD/JTAG clock and control/monitor SWD/JTAG I/O pins.
 
 SWD Commands
 Configure the parameters for SWD mode.
 
 SWO Commands
 Configure the parameters for SWO mode.
 
 JTAG Commands
 Detect and configure the JTAG device chain.
 
 Transfer Commands
 Read and Writes to CoreSight registers.
 
 Atomic Commands
 Execute atomic commands.
 
 Response Status
 Status Information in Response Data.
 
+

Description

+

Commands between Debug Unit and host computer.

+

This section explains each command that is exchanged between the Debug Unit and the host computer. Every Command starts with a Command-ID and optional data. Depending on the Command, the CMSIS-DAP firmware replies with a Response that repeats the Command-ID and delivers additional data.

+

Command and Response data have a package size limitation that is defined with DAP_PACKET_SIZE. This configuration setting can be obtained with the command DAP_Info and is used to optimize the performance for Full-Speed or High-Speed USB. The debugger must ensure that each data package fits within the limitations of the configured DAP_PACKET_SIZE.

+
Note
Commands that are not implemented reply with 0xFF instead of repeating the command byte.
+

Conventions and Command Structure

+

The following conventions describe the command semantic used in the following documentation:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Symbol Description
> Prefix indicating the direction: Command from host to Debug Unit.
< Prefix indicating the direction: Response from Debug Unit to host.
BYTE 8-bit value.
SHORT 16-bit value (low byte first).
WORD 32-bit value (low byte first).
LWORD 64-bit value (low byte first).
FLOAT 32-bit single precision floating point value (LSB first).
0x01 Fixed HEX value in C notation. Used for example to identify a command.
Reserved The field above is reserved for future extension.
**** The field above has exactly one occurrence.
++++ The field above has a variable length.
////// The field above is repeated and may appear 0..n times.
+

The commands are described in a structure consisting of three lines.

+
    +
  • The first line indicates the field type.
  • +
  • The second line indicates the communication direction and the command structure.
  • +
  • The third line indicates the occurrence of the field.
  • +
+

Examples:

+
| BYTE | SHORT *| WORD ***|
+
> 0x99 | RecLen | Data |
+
|******|********|+++++++++|
+

The Command with the Command-ID 0x99 is sent from the host computer to the Debug Unit. The value of RecLen indicates the number of WORDS that follow with Data. Data is repeated several times depending on the value of RecLen.

+

Depending on the Command the Debug Unit may send a Response.

+
| BYTE ***| WORD***********|
+
< 0 | Register Value |
+
|*Reserved|****************|
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__Commands__gr.js b/docs/DAP/html/group__DAP__Commands__gr.js new file mode 100644 index 0000000..f7a9236 --- /dev/null +++ b/docs/DAP/html/group__DAP__Commands__gr.js @@ -0,0 +1,11 @@ +var group__DAP__Commands__gr = +[ + [ "General Commands", "group__DAP__genCommands__gr.html", "group__DAP__genCommands__gr" ], + [ "Common SWD/JTAG Commands", "group__DAP__swj__gr.html", "group__DAP__swj__gr" ], + [ "SWD Commands", "group__DAP__swd__gr.html", "group__DAP__swd__gr" ], + [ "SWO Commands", "group__DAP__swo__gr.html", "group__DAP__swo__gr" ], + [ "JTAG Commands", "group__DAP__jtag__gr.html", "group__DAP__jtag__gr" ], + [ "Transfer Commands", "group__DAP__transfer__gr.html", "group__DAP__transfer__gr" ], + [ "Atomic Commands", "group__DAP__atomic__gr.html", "group__DAP__atomic__gr" ], + [ "Response Status", "group__DAP__Response__Status.html", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__ConfigFlash__gr.html b/docs/DAP/html/group__DAP__ConfigFlash__gr.html new file mode 100644 index 0000000..8c12410 --- /dev/null +++ b/docs/DAP/html/group__DAP__ConfigFlash__gr.html @@ -0,0 +1,138 @@ + + + + + +Flash Program Firmware +CMSIS-DAP: Flash Program Firmware + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Flash Program Firmware
+
+
+ +

The CMSIS-DAP Firmware is programmed into Flash ROM of a Debug Unit. +More...

+

The CMSIS-DAP Firmware is programmed into Flash ROM of a Debug Unit.

+

Once the CMSIS-DAP Firmware is configured it needs to be programmed into the Flash ROM of the new Debug Unit. MDK provides already Flash algorithms for many Cortex-M based microcontrollers and therefore you may use the Flash programming facilities that are provide in uVision.

+

Once Flash programming is configured you may use the uVision menu item Flash - Download.

+
+MDK_Flash.png +
+Download CMSIS-DAP Firmware to new Debug Unit using MDK
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__ConfigIO__gr.html b/docs/DAP/html/group__DAP__ConfigIO__gr.html new file mode 100644 index 0000000..9799314 --- /dev/null +++ b/docs/DAP/html/group__DAP__ConfigIO__gr.html @@ -0,0 +1,155 @@ + + + + + +Configure I/O Ports and Debug Unit +CMSIS-DAP: Configure I/O Ports and Debug Unit + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
Configure I/O Ports and Debug Unit
+
+
+ +

DAP_config.h configures I/O ports and Debug Unit hardware parameters. +More...

+ + + + + + + + + + + + + + + + + +

+Content

 CMSIS-DAP Debug Unit Information
 Provides definitions about the hardware and configuration of the Debug Unit.
 
 CMSIS-DAP Hardware I/O Pin Access
 Standard I/O Pins of the CMSIS-DAP Hardware Debug Port support standard JTAG mode and Serial Wire Debug (SWD) mode.
 
 CMSIS-DAP Hardware Status LEDs
 CMSIS-DAP Hardware may provide LEDs that indicate the status of the CMSIS-DAP Debug Unit.
 
 CMSIS-DAP Timestamp
 Access function for Test Domain Timer.
 
 CMSIS-DAP Initialization
 CMSIS-DAP Hardware I/O and LED Pins are initialized with the function DAP_SETUP.
 
+

Description

+

DAP_config.h configures I/O ports and Debug Unit hardware parameters.

+

The CMSIS-DAP Firmware configuration file DAP_config.h provides the interface functions and configuration parameters for the hardware of the CMSIS-DAP Debug Unit.

+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__ConfigIO__gr.js b/docs/DAP/html/group__DAP__ConfigIO__gr.js new file mode 100644 index 0000000..34f21f2 --- /dev/null +++ b/docs/DAP/html/group__DAP__ConfigIO__gr.js @@ -0,0 +1,8 @@ +var group__DAP__ConfigIO__gr = +[ + [ "CMSIS-DAP Debug Unit Information", "group__DAP__Config__Debug__gr.html", "group__DAP__Config__Debug__gr" ], + [ "CMSIS-DAP Hardware I/O Pin Access", "group__DAP__Config__PortIO__gr.html", "group__DAP__Config__PortIO__gr" ], + [ "CMSIS-DAP Hardware Status LEDs", "group__DAP__Config__LEDs__gr.html", "group__DAP__Config__LEDs__gr" ], + [ "CMSIS-DAP Timestamp", "group__DAP__Config__Timestamp__gr.html", "group__DAP__Config__Timestamp__gr" ], + [ "CMSIS-DAP Initialization", "group__DAP__Config__Initialization__gr.html", "group__DAP__Config__Initialization__gr" ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__ConfigMCU__gr.html b/docs/DAP/html/group__DAP__ConfigMCU__gr.html new file mode 100644 index 0000000..49cf4e5 --- /dev/null +++ b/docs/DAP/html/group__DAP__ConfigMCU__gr.html @@ -0,0 +1,149 @@ + + + + + +Debug Unit Processor +CMSIS-DAP: Debug Unit Processor + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Debug Unit Processor
+
+
+ +

CMSIS-DAP Firmware runs on Debug Units with a Cortex-M microcontroller. +More...

+

CMSIS-DAP Firmware runs on Debug Units with a Cortex-M microcontroller.

+

The CMSIS-DAP Firmware is designed to execute on a Debug Unit that is using a Cortex-M0, Cortex-M0+, Cortex-M3, or Cortex-M4 processor-based microcontroller.

+

The following steps describe how to change the microcontroller in the CMSIS-DAP Firmware project:

+
    +
  1. Open in the uVision IDE the project file .\Firmware\MyDebugUnit\CMSIS_DAP.uvproj.
  2. +
  3. Open the Project - Options - Device dialog and select the microcontroller of the new Debug Unit.
  4. +
  5. In the Project Window replace the files that belong to the group Startup Code with the relevant files for the new device.
  6. +
  7. Optionally you may modify the project file Target name and the file Abstract.txt to reflect the new Debug Unit.
  8. +
+
+MDK_Device.png +
+Select the microcontroller
+

In MDK Version 5 changing the microcontroller should bring in already the relevant software components for the new target. However, depending on the availability you may need to replace some components with custom implementations.

+
+RTE.png +
+Replace missing software components
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__ConfigUSB__gr.html b/docs/DAP/html/group__DAP__ConfigUSB__gr.html new file mode 100644 index 0000000..7b986e4 --- /dev/null +++ b/docs/DAP/html/group__DAP__ConfigUSB__gr.html @@ -0,0 +1,254 @@ + + + + + +Configure USB Peripheral +CMSIS-DAP: Configure USB Peripheral + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Configure USB Peripheral
+
+
+ +

CMSIS-DAP Firmware communicates via an USB interface to host computer. +More...

+

CMSIS-DAP Firmware communicates via an USB interface to host computer.

+

The USB communication is implemented via MDK middleware components that access the USB peripheral of the microcontroller.

+

The CMSIS-DAP Firmware is able to communicate with the host computer using one of the following USB classes:

+ +

For the USB interface it is important to provide correct configuration information for the USB Peripheral as described in this section.

+

The following steps describe how to change and configure the USB peripheral in the CMSIS-DAP Firmware project:

+
    +
  1. In the Project Window, the group USB contains USB interface with the relevant configuration files.
  2. +
  3. Open the file usb_config_0.c in the editor and select Configuration Wizard as edit mode; then change the following settings:
      +
    • USB Device 0 - High-speed: enable this option only for a high-speed USB peripheral; disable for full-speed USB.
    • +
    • Update Device Settings - Vendor ID which is provided by the USB Implementers Forum.
    • +
    • Update Device Settings - Product ID to provide a unique identification for the Debug Unit.
    • +
    • Update Device Settings - Device Release Number to indicate the revision of the adaptation.
    • +
    • Update String Settings - Manufacturer String to reflect the vendor of the Debug Unit. This setting should match the Vendor ID.
    • +
    • Update String Settings - Product String to indicate the Debug Unit. Note that "CMSIS-DAP" must be part of that string to allow identification by debuggers (or part of interface string for USB composite device).
    • +
    • Optionally each Debug Unit may provide a unique Serial Number String. If the String Settings - Serial Number String is not provided, only one Debug Unit can be connected at the same time to a host computer since it is impossible to identify multiple Debug Units.
    • +
    +
  4. +
+
Note
    +
  • The USB Device setting high-speed / full-speed USB must be reflected in the DAP_config.h file as described under Firmware Configuration.
  • +
  • The String Settings - Product String must contain "CMSIS-DAP" somewhere in the string. This is used by the debuggers to identify a CMSIS-DAP compliant Debug Unit that is connected to a host computer.
  • +
+
+


+

+
+MDK_USB.png +
+Adapt the USB Peripheral to the microcontroller
+ + +

Communication via USB HID

CMSIS-DAP with V1 configuration uses USB HID and is therefore compatible with previous versions of CMSIS-DAP.There is no modification at the debugger required as all the additions are fully upward compatible. To configure CMSIS-DAP for V1 interface, add to the compiler options the #define DAP_FW_V1 as shown below:
+

+
+MDK_DAP_FW_V1.png +
+Compiler CMSIS-DAP Firmware for USB HID interface
+

The CMSIS-DAP Firmware can be also part of a USB composite device. If this case, the HID Interface String must contain the sub-string CMSIS-DAP. The HID Interface String is configured in the file USBD_Config_HID_0.h under the category Human Interface Device Class Settings.
+

+
+MDK_USB_HID.png +
+Adapt CMSIS-DAP to the USB HID class
+
+ +

Communication via WinUSB

CMSIS-DAP with default V2 configuration uses WinUSB and is therefore faster.Optionally support for streaming SWO trace is provided via an additional USB endpoint.The WinUSB configuration requires custom class support with the interface setting – Class Code: 0xFF (Vendor specific), Subclass: 0x00, Protocol code: 0x00. Depending on the configuration it uses the following USB endpoints which should be configured in the interface descriptor in this order:

+
    +
  • Endpoint 1: Bulk Out – used for commands received from host PC.
  • +
  • Endpoint 2: Bulk In – used for responses send to host PC.
  • +
  • Endpoint 3: Bulk In (optional) – used for streaming SWO trace (if enabled with SWO_STREAM).
  • +
+To identify a CMSIS-DAP V2 configuration by debuggers the following WinUSB GUID must be used:

+
{CDB3B5AD-293B-4663-AA36-1AAE46463776}
+

The picture below shows the configuration of the USB custom class.

+MDK_USB_Custom.png +
+Adapt CMSIS-DAP to the WinUSB class
+

USB Driver and *.inf file
+
+ Windows 8 and Windows 10 does not require a WinUSB driver provided that the USB firmware stack supports Microsoft descriptors. CMSIS-DAP v2 device should be configured as WCID (Windows Compatible ID) device which provides extra information to a Windows system to facilitate automated driver installation.
+
+ For Windows 7, the CMSIS-DAP v2 device will install automatically if PC is connected to the Internet and Device Installation Settings of PC are set to automatically download and install drivers for devices. Automatically installed device will be seen in Device Manager under Universal Serial Bus devices as WinUsb Device
+
+ If no Internet connection is available or you want device to show with different name under Device Manager you should provide an .inf file and sign it to generate .cat files. More information is available from Microsoft under the topic Steps for Signing a Device Driver Package.
+
+The following CMSIS_DAP_v2.inf file should be provided for an Windows 7 host PC.

[Version]
+Signature = "$Windows NT$"
+Class     = USBDevice
+ClassGUID = {88BAE032-5A81-49f0-BC3D-A4FF138216D6}
+Provider  = %ManufacturerName%
+DriverVer = 04/13/2016, 1.0.0.0
+CatalogFile.nt      = CMSIS_DAP_v2_x86.cat
+CatalogFile.ntx86   = CMSIS_DAP_v2_x86.cat
+CatalogFile.ntamd64 = CMSIS_DAP_v2_amd64.cat
+
+; ========== Manufacturer/Models sections ===========
+
+[Manufacturer]
+%ManufacturerName% = Devices, NTx86, NTamd64
+
+[Devices.NTx86]
+%DeviceName% = USB_Install, USB\VID_c251&PID_f000
+
+[Devices.NTamd64]
+%DeviceName% = USB_Install, USB\VID_c251&PID_f000
+
+; ========== Class definition ===========
+
+[ClassInstall32]
+AddReg = ClassInstall_AddReg
+
+[ClassInstall_AddReg]
+HKR,,,,%ClassName%
+HKR,,NoInstallClass,,1
+HKR,,IconPath,0x10000,"%%SystemRoot%%\System32\setupapi.dll,-20"
+HKR,,LowerLogoVersion,,5.2
+
+; =================== Installation ===================
+
+[USB_Install]
+Include = winusb.inf
+Needs   = WINUSB.NT
+
+[USB_Install.Services]
+Include = winusb.inf
+Needs   = WINUSB.NT.Services
+
+[USB_Install.HW]
+AddReg  = Dev_AddReg
+
+[Dev_AddReg]
+HKR,,DeviceInterfaceGUIDs,0x10000,"{CDB3B5AD-293B-4663-AA36-1AAE46463776}"
+
+; =================== Strings ===================
+
+[Strings]
+ClassName        = "Universal Serial Bus devices"
+ManufacturerName = "KEIL - Tools By ARM"
+DeviceName       = "CMSIS-DAP v2" 
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__ConfigUSB__gr.js b/docs/DAP/html/group__DAP__ConfigUSB__gr.js new file mode 100644 index 0000000..a3b057a --- /dev/null +++ b/docs/DAP/html/group__DAP__ConfigUSB__gr.js @@ -0,0 +1,5 @@ +var group__DAP__ConfigUSB__gr = +[ + [ "Communication via USB HID", "group__DAP__ConfigUSB__gr.html#USBHID", null ], + [ "Communication via WinUSB", "group__DAP__ConfigUSB__gr.html#WinUSB", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__Config__Debug__gr.html b/docs/DAP/html/group__DAP__Config__Debug__gr.html new file mode 100644 index 0000000..b99b33a --- /dev/null +++ b/docs/DAP/html/group__DAP__Config__Debug__gr.html @@ -0,0 +1,525 @@ + + + + + +CMSIS-DAP Debug Unit Information +CMSIS-DAP: CMSIS-DAP Debug Unit Information + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
CMSIS-DAP Debug Unit Information
+
+
+ +

Provides definitions about the hardware and configuration of the Debug Unit. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define CPU_CLOCK   100000000U
 Processor Clock of the Cortex-M MCU used in the Debug Unit. This value is used to calculate the SWD/JTAG clock speed. More...
 
#define IO_PORT_WRITE_CYCLES   2U
 Number of processor cycles for I/O Port write operations. This value is used to calculate the SWD/JTAG clock speed that is generated with I/O Port write operations in the Debug Unit by a Cortex-M MCU. Most Cortex-M processors require 2 processor cycles for a I/O Port Write operation. If the Debug Unit uses a Cortex-M0+ processor with high-speed peripheral I/O only 1 processor cycle might be required. More...
 
#define DAP_SWD   1
 Indicate that Serial Wire Debug (SWD) communication mode is available at the Debug Access Port. This information is returned by the command DAP_Info as part of Capabilities. More...
 
#define DAP_JTAG   1
 Indicate that JTAG communication mode is available at the Debug Port. This information is returned by the command DAP_Info as part of Capabilities. More...
 
#define DAP_JTAG_DEV_CNT   8U
 Configure maximum number of JTAG devices on the scan chain connected to the Debug Access Port. This setting impacts the RAM requirements of the Debug Unit. Valid range is 1 .. 255. More...
 
#define DAP_DEFAULT_PORT   1U
 Default communication mode on the Debug Access Port. Used for the command DAP_Connect when Port Default mode is selected. More...
 
#define DAP_DEFAULT_SWJ_CLOCK   1000000U
 Default communication speed on the Debug Access Port for SWD and JTAG mode. Used to initialize the default SWD/JTAG clock frequency. The command DAP_SWJ_Clock can be used to overwrite this default setting. More...
 
#define DAP_PACKET_SIZE   512U
 Maximum Package Size for Command and Response data. This configuration settings is used to optimize the communication performance with the debugger and depends on the USB peripheral. Typical vales are 64 for Full-speed USB HID or WinUSB, 1024 for High-speed USB HID and 512 for High-speed USB WinUSB. More...
 
#define DAP_PACKET_COUNT   8U
 Maximum Package Buffers for Command and Response data. This configuration settings is used to optimize the communication performance with the debugger and depends on the USB peripheral. For devices with limited RAM or USB buffer the setting can be reduced (valid range is 1 .. 255). More...
 
#define SWO_UART   1
 Indicate that UART Serial Wire Output (SWO) trace is available. This information is returned by the command DAP_Info as part of Capabilities. More...
 
#define SWO_UART_MAX_BAUDRATE   10000000U
 Maximum SWO UART Baudrate. More...
 
#define SWO_MANCHESTER   0
 Indicate that Manchester Serial Wire Output (SWO) trace is available. This information is returned by the command DAP_Info as part of Capabilities. More...
 
#define SWO_BUFFER_SIZE   4096U
 SWO Trace Buffer Size. More...
 
#define SWO_STREAM   0
 SWO Streaming Trace. More...
 
#define TIMESTAMP_CLOCK   100000000U
 Clock frequency of the Test Domain Timer. Timer value is returned with TIMESTAMP_GET. More...
 
#define TARGET_DEVICE_FIXED   0
 Debug Unit is connected to fixed Target Device. The Debug Unit may be part of an evaluation board and always connected to a fixed known device. In this case a Device Vendor and Device Name string is stored which may be used by the debugger or IDE to configure device parameters. More...
 
+ + + + + + + + + + +

+Functions

__STATIC_INLINE uint8_t DAP_GetVendorString (char *str)
 Get Vendor ID string. More...
 
__STATIC_INLINE uint8_t DAP_GetProductString (char *str)
 Get Product ID string. More...
 
__STATIC_INLINE uint8_t DAP_GetSerNumString (char *str)
 Get Serial Number string. More...
 
+

Description

+

Provides definitions about the hardware and configuration of the Debug Unit.

+

This information includes:

+
    +
  • Definition of Cortex-M processor parameters used in CMSIS-DAP Debug Unit.
  • +
  • Debug Unit Identification strings (Vendor, Product, Serial Number).
  • +
  • Debug Unit communication packet size.
  • +
  • Debug Access Port supported modes and settings (JTAG/SWD and SWO).
  • +
  • Optional information about a connected Target Device (for Evaluation Boards).
  • +
+

Macro Definition Documentation

+ +
+
+ + + + +
#define CPU_CLOCK   100000000U
+
+ +

Processor Clock of the Cortex-M MCU used in the Debug Unit. This value is used to calculate the SWD/JTAG clock speed.

+

Specifies the CPU Clock in Hz.

+ +
+
+ +
+
+ + + + +
#define DAP_DEFAULT_PORT   1U
+
+ +

Default communication mode on the Debug Access Port. Used for the command DAP_Connect when Port Default mode is selected.

+

Default JTAG/SWJ Port Mode: 1 = SWD, 2 = JTAG.

+ +
+
+ +
+
+ + + + +
#define DAP_DEFAULT_SWJ_CLOCK   1000000U
+
+ +

Default communication speed on the Debug Access Port for SWD and JTAG mode. Used to initialize the default SWD/JTAG clock frequency. The command DAP_SWJ_Clock can be used to overwrite this default setting.

+

Default SWD/JTAG clock frequency in Hz.

+ +
+
+ +
+
+ + + + +
#define DAP_JTAG   1
+
+ +

Indicate that JTAG communication mode is available at the Debug Port. This information is returned by the command DAP_Info as part of Capabilities.

+

JTAG Mode: 1 = available, 0 = not available.

+ +
+
+ +
+
+ + + + +
#define DAP_JTAG_DEV_CNT   8U
+
+ +

Configure maximum number of JTAG devices on the scan chain connected to the Debug Access Port. This setting impacts the RAM requirements of the Debug Unit. Valid range is 1 .. 255.

+

Maximum number of JTAG devices on scan chain.

+ +
+
+ +
+
+ + + + +
#define DAP_PACKET_COUNT   8U
+
+ +

Maximum Package Buffers for Command and Response data. This configuration settings is used to optimize the communication performance with the debugger and depends on the USB peripheral. For devices with limited RAM or USB buffer the setting can be reduced (valid range is 1 .. 255).

+

Specifies number of packets buffered.

+ +
+
+ +
+
+ + + + +
#define DAP_PACKET_SIZE   512U
+
+ +

Maximum Package Size for Command and Response data. This configuration settings is used to optimize the communication performance with the debugger and depends on the USB peripheral. Typical vales are 64 for Full-speed USB HID or WinUSB, 1024 for High-speed USB HID and 512 for High-speed USB WinUSB.

+

Specifies Packet Size in bytes.

+ +
+
+ +
+
+ + + + +
#define DAP_SWD   1
+
+ +

Indicate that Serial Wire Debug (SWD) communication mode is available at the Debug Access Port. This information is returned by the command DAP_Info as part of Capabilities.

+

SWD Mode: 1 = available, 0 = not available.

+ +
+
+ +
+
+ + + + +
#define IO_PORT_WRITE_CYCLES   2U
+
+ +

Number of processor cycles for I/O Port write operations. This value is used to calculate the SWD/JTAG clock speed that is generated with I/O Port write operations in the Debug Unit by a Cortex-M MCU. Most Cortex-M processors require 2 processor cycles for a I/O Port Write operation. If the Debug Unit uses a Cortex-M0+ processor with high-speed peripheral I/O only 1 processor cycle might be required.

+

I/O Cycles: 2=default, 1=Cortex-M0+ fast I/0.

+ +
+
+ +
+
+ + + + +
#define SWO_BUFFER_SIZE   4096U
+
+ +

SWO Trace Buffer Size.

+

SWO Trace Buffer Size in bytes (must be 2^n).

+ +
+
+ +
+
+ + + + +
#define SWO_MANCHESTER   0
+
+ +

Indicate that Manchester Serial Wire Output (SWO) trace is available. This information is returned by the command DAP_Info as part of Capabilities.

+

SWO Manchester: 1 = available, 0 = not available.

+ +
+
+ +
+
+ + + + +
#define SWO_STREAM   0
+
+ +

SWO Streaming Trace.

+

SWO Streaming Trace: 1 = available, 0 = not available.

+ +
+
+ +
+
+ + + + +
#define SWO_UART   1
+
+ +

Indicate that UART Serial Wire Output (SWO) trace is available. This information is returned by the command DAP_Info as part of Capabilities.

+

SWO UART: 1 = available, 0 = not available.

+ +
+
+ +
+
+ + + + +
#define SWO_UART_MAX_BAUDRATE   10000000U
+
+ +

Maximum SWO UART Baudrate.

+

SWO UART Maximum Baudrate in Hz.

+ +
+
+ +
+
+ + + + +
#define TARGET_DEVICE_FIXED   0
+
+ +

Debug Unit is connected to fixed Target Device. The Debug Unit may be part of an evaluation board and always connected to a fixed known device. In this case a Device Vendor and Device Name string is stored which may be used by the debugger or IDE to configure device parameters.

+

Target Device: 1 = known, 0 = unknown;

+ +
+
+ +
+
+ + + + +
#define TIMESTAMP_CLOCK   100000000U
+
+ +

Clock frequency of the Test Domain Timer. Timer value is returned with TIMESTAMP_GET.

+

Timestamp clock in Hz (0 = timestamps not supported).

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + +
__STATIC_INLINE uint8_t DAP_GetProductString (char * str)
+
+ +

Get Product ID string.

+
Parameters
+ + +
strPointer to buffer to store the string.
+
+
+
Returns
String length.
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_INLINE uint8_t DAP_GetSerNumString (char * str)
+
+ +

Get Serial Number string.

+
Parameters
+ + +
strPointer to buffer to store the string.
+
+
+
Returns
String length.
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_INLINE uint8_t DAP_GetVendorString (char * str)
+
+ +

Get Vendor ID string.

+
Parameters
+ + +
strPointer to buffer to store the string.
+
+
+
Returns
String length.
+ +
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__Config__Debug__gr.js b/docs/DAP/html/group__DAP__Config__Debug__gr.js new file mode 100644 index 0000000..6e11ad8 --- /dev/null +++ b/docs/DAP/html/group__DAP__Config__Debug__gr.js @@ -0,0 +1,22 @@ +var group__DAP__Config__Debug__gr = +[ + [ "CPU_CLOCK", "group__DAP__Config__Debug__gr.html#ga512016e5f1966a8fd45b3f1a81ba5b8f", null ], + [ "DAP_DEFAULT_PORT", "group__DAP__Config__Debug__gr.html#ga89462514881c12c1508395050ce160eb", null ], + [ "DAP_DEFAULT_SWJ_CLOCK", "group__DAP__Config__Debug__gr.html#gab52710df89c3e3c19de577c638f954ea", null ], + [ "DAP_JTAG", "group__DAP__Config__Debug__gr.html#ga3bbd310146b348db48a842ee804a0adf", null ], + [ "DAP_JTAG_DEV_CNT", "group__DAP__Config__Debug__gr.html#gab29200a0988c7d1454f63661a8450dbf", null ], + [ "DAP_PACKET_COUNT", "group__DAP__Config__Debug__gr.html#ga03ed6a5aae34f4379ea97435122f83dd", null ], + [ "DAP_PACKET_SIZE", "group__DAP__Config__Debug__gr.html#gaa28bb1da2661291634c4a8fb3e227404", null ], + [ "DAP_SWD", "group__DAP__Config__Debug__gr.html#gaf886ab35e52d1ff2935351817786c8af", null ], + [ "IO_PORT_WRITE_CYCLES", "group__DAP__Config__Debug__gr.html#ga119c70409a24e3a8bb35df07dffeb8c8", null ], + [ "SWO_BUFFER_SIZE", "group__DAP__Config__Debug__gr.html#ga5d89633a43ee3296e1754c7392ad856e", null ], + [ "SWO_MANCHESTER", "group__DAP__Config__Debug__gr.html#ga213ee3d1501adeca4c9c660072922c7e", null ], + [ "SWO_STREAM", "group__DAP__Config__Debug__gr.html#gafd6f450a10f4e03757388e00ea56906f", null ], + [ "SWO_UART", "group__DAP__Config__Debug__gr.html#gaf0d60b30fb0eef2d249bc89a6e454ab6", null ], + [ "SWO_UART_MAX_BAUDRATE", "group__DAP__Config__Debug__gr.html#gad19240f209f055db7d70cb5eb2431d31", null ], + [ "TARGET_DEVICE_FIXED", "group__DAP__Config__Debug__gr.html#ga792651aa4035a7ad712c6bb201db8a6a", null ], + [ "TIMESTAMP_CLOCK", "group__DAP__Config__Debug__gr.html#ga698a5a4ebd84335134a35e74848d2734", null ], + [ "DAP_GetProductString", "group__DAP__Config__Debug__gr.html#ga947f60d7e5382cefe3087ad1fb46b13b", null ], + [ "DAP_GetSerNumString", "group__DAP__Config__Debug__gr.html#ga7b875652fd4e380af4d419bc2878ab33", null ], + [ "DAP_GetVendorString", "group__DAP__Config__Debug__gr.html#gad52ec88278b7b3ccbdcc10359dd8d0a8", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__Config__Initialization__gr.html b/docs/DAP/html/group__DAP__Config__Initialization__gr.html new file mode 100644 index 0000000..e1eb631 --- /dev/null +++ b/docs/DAP/html/group__DAP__Config__Initialization__gr.html @@ -0,0 +1,192 @@ + + + + + +CMSIS-DAP Initialization +CMSIS-DAP: CMSIS-DAP Initialization + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
CMSIS-DAP Initialization
+
+
+ +

CMSIS-DAP Hardware I/O and LED Pins are initialized with the function DAP_SETUP. +More...

+ + + + + + + + +

+Functions

__STATIC_INLINE void DAP_SETUP (void)
 Setup of the Debug Unit I/O pins and LEDs (called when Debug Unit is initialized). More...
 
__STATIC_INLINE uint8_t RESET_TARGET (void)
 Reset Target Device with custom specific I/O pin or command sequence. More...
 
+

Description

+

CMSIS-DAP Hardware I/O and LED Pins are initialized with the function DAP_SETUP.

+

Function Documentation

+ +
+
+ + + + + + + + +
__STATIC_INLINE void DAP_SETUP (void )
+
+ +

Setup of the Debug Unit I/O pins and LEDs (called when Debug Unit is initialized).

+

This function performs the initialization of the CMSIS-DAP Hardware I/O Pins and the Status LEDs. In detail the operation of Hardware I/O and LED pins are enabled and set:

+
    +
  • I/O clock system enabled.
  • +
  • all I/O pins: input buffer enabled, output pins are set to HighZ mode.
  • +
  • for nTRST, nRESET a weak pull-up (if available) is enabled.
  • +
  • LED output pins are enabled and LEDs are turned off.
  • +
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_INLINE uint8_t RESET_TARGET (void )
+
+ +

Reset Target Device with custom specific I/O pin or command sequence.

+

This function allows the optional implementation of a device specific reset sequence. It is called when the command DAP_ResetTarget and is for example required when a device needs a time-critical unlock sequence that enables the debug port.

+
Returns
0 = no device specific reset sequence is implemented.
+ 1 = a device specific reset sequence is implemented.
+ +
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__Config__Initialization__gr.js b/docs/DAP/html/group__DAP__Config__Initialization__gr.js new file mode 100644 index 0000000..4b6ff67 --- /dev/null +++ b/docs/DAP/html/group__DAP__Config__Initialization__gr.js @@ -0,0 +1,5 @@ +var group__DAP__Config__Initialization__gr = +[ + [ "DAP_SETUP", "group__DAP__Config__Initialization__gr.html#ga6d4656af10c47ec0d6c0389be2dbb4bb", null ], + [ "RESET_TARGET", "group__DAP__Config__Initialization__gr.html#gaa0feceaeee69d69927d8a9beb0272dd7", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__Config__LEDs__gr.html b/docs/DAP/html/group__DAP__Config__LEDs__gr.html new file mode 100644 index 0000000..100310b --- /dev/null +++ b/docs/DAP/html/group__DAP__Config__LEDs__gr.html @@ -0,0 +1,207 @@ + + + + + +CMSIS-DAP Hardware Status LEDs +CMSIS-DAP: CMSIS-DAP Hardware Status LEDs + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
CMSIS-DAP Hardware Status LEDs
+
+
+ +

CMSIS-DAP Hardware may provide LEDs that indicate the status of the CMSIS-DAP Debug Unit. +More...

+ + + + + + + + +

+Functions

__STATIC_INLINE void LED_CONNECTED_OUT (uint32_t bit)
 Debug Unit: Set status of Connected LED. More...
 
__STATIC_INLINE void LED_RUNNING_OUT (uint32_t bit)
 Debug Unit: Set status Target Running LED. More...
 
+

Description

+

CMSIS-DAP Hardware may provide LEDs that indicate the status of the CMSIS-DAP Debug Unit.

+

It is recommended to provide the following LEDs for status indication:

+
    +
  • Connect LED: is active when the DAP hardware is connected to a debugger.
  • +
  • Running LED: is active when the debugger has put the target device into running state.
  • +
+

Function Documentation

+ +
+
+ + + + + + + + +
__STATIC_INLINE void LED_CONNECTED_OUT (uint32_t bit)
+
+ +

Debug Unit: Set status of Connected LED.

+
Parameters
+ + +
bitstatus of the Connect LED.
    +
  • 1: Connect LED ON: debugger is connected to CMSIS-DAP Debug Unit.
  • +
  • 0: Connect LED OFF: debugger is not connected to CMSIS-DAP Debug Unit.
  • +
+
+
+
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_INLINE void LED_RUNNING_OUT (uint32_t bit)
+
+ +

Debug Unit: Set status Target Running LED.

+
Parameters
+ + +
bitstatus of the Target Running LED.
    +
  • 1: Target Running LED ON: program execution in target started.
  • +
  • 0: Target Running LED OFF: program execution in target stopped.
  • +
+
+
+
+ +
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__Config__LEDs__gr.js b/docs/DAP/html/group__DAP__Config__LEDs__gr.js new file mode 100644 index 0000000..7d9a5d8 --- /dev/null +++ b/docs/DAP/html/group__DAP__Config__LEDs__gr.js @@ -0,0 +1,5 @@ +var group__DAP__Config__LEDs__gr = +[ + [ "LED_CONNECTED_OUT", "group__DAP__Config__LEDs__gr.html#ga27408c1c7010aa394abdcf0c85d7b798", null ], + [ "LED_RUNNING_OUT", "group__DAP__Config__LEDs__gr.html#gaa27ef99d16e3e68759adf1e6cb016e50", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__Config__PortIO__gr.html b/docs/DAP/html/group__DAP__Config__PortIO__gr.html new file mode 100644 index 0000000..7d337e2 --- /dev/null +++ b/docs/DAP/html/group__DAP__Config__PortIO__gr.html @@ -0,0 +1,645 @@ + + + + + +CMSIS-DAP Hardware I/O Pin Access +CMSIS-DAP: CMSIS-DAP Hardware I/O Pin Access + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
CMSIS-DAP Hardware I/O Pin Access
+
+
+ +

Standard I/O Pins of the CMSIS-DAP Hardware Debug Port support standard JTAG mode and Serial Wire Debug (SWD) mode. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

__STATIC_INLINE void PORT_JTAG_SETUP (void)
 Setup JTAG I/O pins: TCK, TMS, TDI, TDO, nTRST, and nRESET. More...
 
__STATIC_INLINE void PORT_SWD_SETUP (void)
 Setup SWD I/O pins: SWCLK, SWDIO, and nRESET. More...
 
__STATIC_INLINE void PORT_OFF (void)
 Disable JTAG/SWD I/O Pins. More...
 
__STATIC_FORCEINLINE uint32_t PIN_SWCLK_TCK_IN (void)
 SWCLK/TCK I/O pin: Get Input. More...
 
__STATIC_FORCEINLINE void PIN_SWCLK_TCK_SET (void)
 SWCLK/TCK I/O pin: Set Output to High. More...
 
__STATIC_FORCEINLINE void PIN_SWCLK_TCK_CLR (void)
 SWCLK/TCK I/O pin: Set Output to Low. More...
 
__STATIC_FORCEINLINE uint32_t PIN_SWDIO_TMS_IN (void)
 SWDIO/TMS I/O pin: Get Input. More...
 
__STATIC_FORCEINLINE void PIN_SWDIO_TMS_SET (void)
 SWDIO/TMS I/O pin: Set Output to High. More...
 
__STATIC_FORCEINLINE void PIN_SWDIO_TMS_CLR (void)
 SWDIO/TMS I/O pin: Set Output to Low. More...
 
__STATIC_FORCEINLINE uint32_t PIN_SWDIO_IN (void)
 SWDIO I/O pin: Get Input (used in SWD mode only). More...
 
__STATIC_FORCEINLINE void PIN_SWDIO_OUT (uint32_t bit)
 SWDIO I/O pin: Set Output (used in SWD mode only). More...
 
__STATIC_FORCEINLINE void PIN_SWDIO_OUT_ENABLE (void)
 SWDIO I/O pin: Switch to Output mode (used in SWD mode only). More...
 
__STATIC_FORCEINLINE void PIN_SWDIO_OUT_DISABLE (void)
 SWDIO I/O pin: Switch to Input mode (used in SWD mode only). More...
 
__STATIC_FORCEINLINE uint32_t PIN_TDI_IN (void)
 TDI I/O pin: Get Input. More...
 
__STATIC_FORCEINLINE void PIN_TDI_OUT (uint32_t bit)
 TDI I/O pin: Set Output. More...
 
__STATIC_FORCEINLINE uint32_t PIN_TDO_IN (void)
 TDO I/O pin: Get Input. More...
 
__STATIC_FORCEINLINE uint32_t PIN_nTRST_IN (void)
 nTRST I/O pin: Get Input. More...
 
__STATIC_FORCEINLINE void PIN_nTRST_OUT (uint32_t bit)
 nTRST I/O pin: Set Output. More...
 
__STATIC_FORCEINLINE uint32_t PIN_nRESET_IN (void)
 nRESET I/O pin: Get Input. More...
 
__STATIC_FORCEINLINE void PIN_nRESET_OUT (uint32_t bit)
 nRESET I/O pin: Set Output. More...
 
+

Description

+

Standard I/O Pins of the CMSIS-DAP Hardware Debug Port support standard JTAG mode and Serial Wire Debug (SWD) mode.

+

In SWD mode only 2 pins are required to implement the debug interface of a device. The following I/O Pins are provided:

+ + + + + + + + + + + + + + + +
JTAG I/O Pin SWD I/O Pin CMSIS-DAP Hardware pin mode
TCK: Test Clock SWCLK: Clock Output Push/Pull
TMS: Test Mode Select SWDIO: Data I/O Output Push/Pull; Input (for receiving data)
TDI: Test Data Input Output Push/Pull
TDO: Test Data Output Input
nTRST: Test Reset (optional) Output Open Drain with pull-up resistor
nRESET: Device Reset nRESET: Device Reset Output Open Drain with pull-up resistor
+

DAP Hardware I/O Pin Access Functions

+

The various I/O Pins are accessed by functions that implement the Read, Write, Set, or Clear to these I/O Pins.

+

For the SWDIO I/O Pin there are additional functions that are called in SWD I/O mode only. This functions are provided to achieve faster I/O that is possible with some advanced GPIO peripherals that can independently write/read a single I/O pin without affecting any other pins of the same I/O port. The following SWDIO I/O Pin functions are provided:

+ +

Function Documentation

+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE uint32_t PIN_nRESET_IN (void )
+
+ +

nRESET I/O pin: Get Input.

+
Returns
Current status of the nRESET DAP hardware I/O pin.
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE void PIN_nRESET_OUT (uint32_t bit)
+
+ +

nRESET I/O pin: Set Output.

+
Parameters
+ + +
bittarget device hardware reset pin status:
    +
  • 0: issue a device hardware reset.
  • +
  • 1: release device hardware reset.
  • +
+
+
+
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE uint32_t PIN_nTRST_IN (void )
+
+ +

nTRST I/O pin: Get Input.

+
Returns
Current status of the nTRST DAP hardware I/O pin.
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE void PIN_nTRST_OUT (uint32_t bit)
+
+ +

nTRST I/O pin: Set Output.

+
Parameters
+ + +
bitJTAG TRST Test Reset pin status:
    +
  • 0: issue a JTAG TRST Test Reset.
  • +
  • 1: release JTAG TRST Test Reset.
  • +
+
+
+
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE void PIN_SWCLK_TCK_CLR (void )
+
+ +

SWCLK/TCK I/O pin: Set Output to Low.

+

Set the SWCLK/TCK DAP hardware I/O pin to low level.

+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE uint32_t PIN_SWCLK_TCK_IN (void )
+
+ +

SWCLK/TCK I/O pin: Get Input.

+
Returns
Current status of the SWCLK/TCK DAP hardware I/O pin.
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE void PIN_SWCLK_TCK_SET (void )
+
+ +

SWCLK/TCK I/O pin: Set Output to High.

+

Set the SWCLK/TCK DAP hardware I/O pin to high level.

+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE uint32_t PIN_SWDIO_IN (void )
+
+ +

SWDIO I/O pin: Get Input (used in SWD mode only).

+
Returns
Current status of the SWDIO DAP hardware I/O pin.
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE void PIN_SWDIO_OUT (uint32_t bit)
+
+ +

SWDIO I/O pin: Set Output (used in SWD mode only).

+
Parameters
+ + +
bitOutput value for the SWDIO DAP hardware I/O pin.
+
+
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE void PIN_SWDIO_OUT_DISABLE (void )
+
+ +

SWDIO I/O pin: Switch to Input mode (used in SWD mode only).

+

Configure the SWDIO DAP hardware I/O pin to input mode. This function is called prior PIN_SWDIO_IN function calls.

+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE void PIN_SWDIO_OUT_ENABLE (void )
+
+ +

SWDIO I/O pin: Switch to Output mode (used in SWD mode only).

+

Configure the SWDIO DAP hardware I/O pin to output mode. This function is called prior PIN_SWDIO_OUT function calls.

+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE void PIN_SWDIO_TMS_CLR (void )
+
+ +

SWDIO/TMS I/O pin: Set Output to Low.

+

Set the SWDIO/TMS DAP hardware I/O pin to low level.

+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE uint32_t PIN_SWDIO_TMS_IN (void )
+
+ +

SWDIO/TMS I/O pin: Get Input.

+
Returns
Current status of the SWDIO/TMS DAP hardware I/O pin.
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE void PIN_SWDIO_TMS_SET (void )
+
+ +

SWDIO/TMS I/O pin: Set Output to High.

+

Set the SWDIO/TMS DAP hardware I/O pin to high level.

+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE uint32_t PIN_TDI_IN (void )
+
+ +

TDI I/O pin: Get Input.

+
Returns
Current status of the TDI DAP hardware I/O pin.
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE void PIN_TDI_OUT (uint32_t bit)
+
+ +

TDI I/O pin: Set Output.

+
Parameters
+ + +
bitOutput value for the TDI DAP hardware I/O pin.
+
+
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_FORCEINLINE uint32_t PIN_TDO_IN (void )
+
+ +

TDO I/O pin: Get Input.

+
Returns
Current status of the TDO DAP hardware I/O pin.
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_INLINE void PORT_JTAG_SETUP (void )
+
+ +

Setup JTAG I/O pins: TCK, TMS, TDI, TDO, nTRST, and nRESET.

+

Configures the DAP Hardware I/O pins for JTAG mode:

+
    +
  • TCK, TMS, TDI, nTRST, nRESET to output mode and set to high level.
  • +
  • TDO to input mode.
  • +
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_INLINE void PORT_OFF (void )
+
+ +

Disable JTAG/SWD I/O Pins.

+

Disables the DAP Hardware I/O pins which configures:

+
    +
  • TCK/SWCLK, TMS/SWDIO, TDI, TDO, nTRST, nRESET to High-Z mode.
  • +
+ +
+
+ +
+
+ + + + + + + + +
__STATIC_INLINE void PORT_SWD_SETUP (void )
+
+ +

Setup SWD I/O pins: SWCLK, SWDIO, and nRESET.

+

Configures the DAP Hardware I/O pins for Serial Wire Debug (SWD) mode:

+
    +
  • SWCLK, SWDIO, nRESET to output mode and set to default high level.
  • +
  • TDI, nTRST to HighZ mode (pins are unused in SWD mode).
  • +
+ +
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__Config__PortIO__gr.js b/docs/DAP/html/group__DAP__Config__PortIO__gr.js new file mode 100644 index 0000000..2793253 --- /dev/null +++ b/docs/DAP/html/group__DAP__Config__PortIO__gr.js @@ -0,0 +1,23 @@ +var group__DAP__Config__PortIO__gr = +[ + [ "PIN_nRESET_IN", "group__DAP__Config__PortIO__gr.html#ga401f5879824966071ba05fb1b4102626", null ], + [ "PIN_nRESET_OUT", "group__DAP__Config__PortIO__gr.html#gacfe405b75aefcdf7c06b2b426595ea0a", null ], + [ "PIN_nTRST_IN", "group__DAP__Config__PortIO__gr.html#gabdce264d0e78ce31bcb2e91f97e49b2a", null ], + [ "PIN_nTRST_OUT", "group__DAP__Config__PortIO__gr.html#ga190b2403a1bc0dc9a94b70622ed9de41", null ], + [ "PIN_SWCLK_TCK_CLR", "group__DAP__Config__PortIO__gr.html#ga9dcba97c6779b70dca02e51a36696a61", null ], + [ "PIN_SWCLK_TCK_IN", "group__DAP__Config__PortIO__gr.html#gafc133887a94442c3bc4424909dff8512", null ], + [ "PIN_SWCLK_TCK_SET", "group__DAP__Config__PortIO__gr.html#ga43481ea1fcc2e389761ccb78bf76b891", null ], + [ "PIN_SWDIO_IN", "group__DAP__Config__PortIO__gr.html#ga6873b9000f9ec322626ecc06664fb229", null ], + [ "PIN_SWDIO_OUT", "group__DAP__Config__PortIO__gr.html#ga0c100894fc532bc05fc81f4128e06e23", null ], + [ "PIN_SWDIO_OUT_DISABLE", "group__DAP__Config__PortIO__gr.html#ga4873c485ca5e49efbb218f4f80a59a17", null ], + [ "PIN_SWDIO_OUT_ENABLE", "group__DAP__Config__PortIO__gr.html#ga130df1a24eef09b9e250e7e328f06e50", null ], + [ "PIN_SWDIO_TMS_CLR", "group__DAP__Config__PortIO__gr.html#ga04aa6eb6186f50bb1ea7d991870f8670", null ], + [ "PIN_SWDIO_TMS_IN", "group__DAP__Config__PortIO__gr.html#gaf127becf6c639beff822f83fbdef7761", null ], + [ "PIN_SWDIO_TMS_SET", "group__DAP__Config__PortIO__gr.html#gaac7a2af102cc9fa9358d507c11cf9241", null ], + [ "PIN_TDI_IN", "group__DAP__Config__PortIO__gr.html#ga2cea243a2dbbece100f15a7f1fb04e5c", null ], + [ "PIN_TDI_OUT", "group__DAP__Config__PortIO__gr.html#gad40bb9c760000dfda7c533d63af3b4fa", null ], + [ "PIN_TDO_IN", "group__DAP__Config__PortIO__gr.html#gace11527334bc4453e8407e44fc58f619", null ], + [ "PORT_JTAG_SETUP", "group__DAP__Config__PortIO__gr.html#ga037d02e221d71916a83349d6572bf91d", null ], + [ "PORT_OFF", "group__DAP__Config__PortIO__gr.html#gaf31b342bc0fc5ad3669f43888466db61", null ], + [ "PORT_SWD_SETUP", "group__DAP__Config__PortIO__gr.html#ga08369d48fb874acdfb40726edaa3d147", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__Config__Timestamp__gr.html b/docs/DAP/html/group__DAP__Config__Timestamp__gr.html new file mode 100644 index 0000000..dad5788 --- /dev/null +++ b/docs/DAP/html/group__DAP__Config__Timestamp__gr.html @@ -0,0 +1,163 @@ + + + + + +CMSIS-DAP Timestamp +CMSIS-DAP: CMSIS-DAP Timestamp + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ + +
+
+ +

Access function for Test Domain Timer. +More...

+ + + + + +

+Functions

__STATIC_INLINE uint32_t TIMESTAMP_GET (void)
 Get timestamp of Test Domain Timer. More...
 
+

Description

+

Access function for Test Domain Timer.

+

The value of the Test Domain Timer in the Debug Unit is returned by the function TIMESTAMP_GET. By default, the DWT timer is used. The frequency of this timer is configured with TIMESTAMP_CLOCK.

+

Function Documentation

+ +
+
+ + + + + + + + +
__STATIC_INLINE uint32_t TIMESTAMP_GET (void )
+
+ +

Get timestamp of Test Domain Timer.

+
Returns
Current timestamp value.
+ +
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__Config__Timestamp__gr.js b/docs/DAP/html/group__DAP__Config__Timestamp__gr.js new file mode 100644 index 0000000..11bbb2e --- /dev/null +++ b/docs/DAP/html/group__DAP__Config__Timestamp__gr.js @@ -0,0 +1,4 @@ +var group__DAP__Config__Timestamp__gr = +[ + [ "TIMESTAMP_GET", "group__DAP__Config__Timestamp__gr.html#gaf9bdc40d3a256fc2cc4d26b295993d9c", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__Config__gr.html b/docs/DAP/html/group__DAP__Config__gr.html new file mode 100644 index 0000000..c8af115 --- /dev/null +++ b/docs/DAP/html/group__DAP__Config__gr.html @@ -0,0 +1,194 @@ + + + + + +Firmware Configuration +CMSIS-DAP: Firmware Configuration + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
Firmware Configuration
+
+
+ +

CMSIS-DAP is designed for Debug Units with Cortex-M microcontroller. +More...

+ + + + + + + + + + + + + + +

+Content

 Debug Unit Processor
 CMSIS-DAP Firmware runs on Debug Units with a Cortex-M microcontroller.
 
 Configure I/O Ports and Debug Unit
 DAP_config.h configures I/O ports and Debug Unit hardware parameters.
 
 Configure USB Peripheral
 CMSIS-DAP Firmware communicates via an USB interface to host computer.
 
 Flash Program Firmware
 The CMSIS-DAP Firmware is programmed into Flash ROM of a Debug Unit.
 
+

Description

+

CMSIS-DAP is designed for Debug Units with Cortex-M microcontroller.

+

The CMSIS-DAP firmware can be deployed to a Debug Unit that is based on Cortex-M processor-based microcontroller.

+
+CMSIS_DAP_DEBUG_UNIT.png +
+CMSIS-DAP Debug Unit Hardware
+

The picture below shows the setup with an isolation adapter.

+
+CMSIS_DAP_DEBUG_UNIT_ISO.png +
+CMSIS-DAP Debug Unit with Isolation adapter
+

Hardware Requirements

+

The CMSIS-DAP Firmware is designed for Debug Units that fulfil the following hardware requirements:

+
    +
  • Cortex-M0, Cortex-M0+, Cortex-M3, or Cortex-M4 processor-based microcontroller.
  • +
  • CPU Clock: 48MHz or higher; microcontroller must have a SYSTICK timer.
  • +
  • RAM: 8KB or more; Flash ROM: 16KB or more.
  • +
  • Full-speed or High-speed USB Device Peripheral.
  • +
  • 7 standard I/O pins for JTAG/SWD Device Interface.
  • +
  • optional 2 I/O pins for Status LEDs.
  • +
  • optional UART to support SWO capturing (Rx pin connected to SWO)
  • +
+

CMSIS-DAP Firmware

+

The CMSIS-DAP Firmware can be configured for a new Debug Unit using at least the Keil MDK-Plus or MDK-Professional Edition. Reference implementations are provided as source code with complete project files and may be used as starting point for the firmware deployment to a new Debug Unit.

+

The folder .\Firmware\Config contains a template of the DAP_config.h configuration file. Various adaptations for different target hardware are provided.

+ + + + + + + +
Folders and Files Description
.\Firmware\Example\V1\LPC-Link-II CMSIS-DAP Firmware using USB HID adapted to the NXP LPC-Link-II Debug Unit that is part of the LPCxpresso-II platform.
.\Firmware\Example\V2\LPC-Link-II CMSIS-DAP Firmware using WinUSB adapted to the NXP LPC-Link-II Debug Unit that is part of the LPCxpresso-II platform.
+

The CMSIS-DAP Firmware is designed to execute on a Debug Unit that is using a Cortex-M0, Cortex-M0+, Cortex-M3, or Cortex-M4 processor-based microcontroller. To deploy the firmware to a new Debug Unit copy an existing firmware adaptation to a new folder. For example, copy the folder .\Firmware\XMC4200 to a folder called .\Firmware\MyDebugUnit.

+

To following steps describe the adaptation of the CMSIS-DAP Firmware to a new Debug Unit:

+
    +
  1. Debug Unit Processor : Select the microcontroller and replace the CMSIS-Core (Cortex-M) files.
  2. +
  3. Configure I/O Ports and Debug Unit : Adapt the I/O Ports and specify other parameters for the Debug Unit.
  4. +
  5. Configure USB Peripheral : Adapt the USB Peripheral to the microcontroller.
  6. +
  7. Connect SWO Trace : Optional you may add a CMSIS-Driver USART to interface to SWO.
  8. +
  9. CMSIS-DAP Vendor Commands : Optional you may add vendor specific commands to the Debug Unit.
  10. +
  11. Flash Program Firmware : Program the adapted firmware to the Flash ROM of the new Debug Unit.
  12. +
  13. Validate Debug Unit : Validate the CMSIS-DAP firmware of the new Debug Unit.
  14. +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__Config__gr.js b/docs/DAP/html/group__DAP__Config__gr.js new file mode 100644 index 0000000..8603caf --- /dev/null +++ b/docs/DAP/html/group__DAP__Config__gr.js @@ -0,0 +1,7 @@ +var group__DAP__Config__gr = +[ + [ "Debug Unit Processor", "group__DAP__ConfigMCU__gr.html", null ], + [ "Configure I/O Ports and Debug Unit", "group__DAP__ConfigIO__gr.html", "group__DAP__ConfigIO__gr" ], + [ "Configure USB Peripheral", "group__DAP__ConfigUSB__gr.html", "group__DAP__ConfigUSB__gr" ], + [ "Flash Program Firmware", "group__DAP__ConfigFlash__gr.html", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__Connect.html b/docs/DAP/html/group__DAP__Connect.html new file mode 100644 index 0000000..c7a8548 --- /dev/null +++ b/docs/DAP/html/group__DAP__Connect.html @@ -0,0 +1,157 @@ + + + + + +DAP_Connect +CMSIS-DAP: DAP_Connect + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_Connect
+
+
+ +

Connect to Device and selected DAP mode. +More...

+

Connect to Device and selected DAP mode.

+

The DAP_Connect Command initializes the DAP I/O pins for the specified DAP mode (JTAG or SWD). This command calls the function PORT_SWD_SETUP or PORT_JTAG_SETUP which prepares the connection to the Target Device.

+

DAP_Connect Command:

+
| BYTE | BYTE |
+
> 0x02 | Port |
+
|******|******|
+
    +
  • Port: Selects the DAP port mode and configures the DAP I/O pins. The possible values are:
      +
    • 0 = Default mode: configuration of the DAP port mode is derived from DAP_DEFAULT_PORT (zero configuration).
    • +
    • 1 = SWD mode: connect with Serial Wire Debug mode.
    • +
    • 2 = JTAG mode: connect with 4/5-pin JTAG mode.
    • +
    +
  • +
+

DAP_Connect Response:

+
| BYTE | BYTE |
+
< 0x02 | Port |
+
|******|******|
+
    +
  • Port: DAP port mode initialized. The possible values are:
      +
    • 0 = initialization failed; no mode pre-configured.
    • +
    • 1 = initialization for SWD mode.
    • +
    • 2 = initialization for JTAG mode.
    • +
    +
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__Delay.html b/docs/DAP/html/group__DAP__Delay.html new file mode 100644 index 0000000..0e9195e --- /dev/null +++ b/docs/DAP/html/group__DAP__Delay.html @@ -0,0 +1,147 @@ + + + + + +DAP_Delay +CMSIS-DAP: DAP_Delay + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
+
+
+ +

Wait for specified delay. +More...

+

Wait for specified delay.

+

The DAP_Delay< Command waits for a time period specified in micro-seconds.

+

DAP_Delay Command:

+
| BYTE | SHORT |
+
> 0x09 | Delay |
+
|******|*******|
+
    +
  • Delay: wait time in µs.
  • +
+

DAP_Delay Response:

+
| BYTE | BYTE |
+
< 0x09 | Status |
+
|******|********|
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__Disconnect.html b/docs/DAP/html/group__DAP__Disconnect.html new file mode 100644 index 0000000..266fdf5 --- /dev/null +++ b/docs/DAP/html/group__DAP__Disconnect.html @@ -0,0 +1,144 @@ + + + + + +DAP_Disconnect +CMSIS-DAP: DAP_Disconnect + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_Disconnect
+
+
+ +

Disconnect from active Debug Port. +More...

+

Disconnect from active Debug Port.

+

The DAP_Disconnect Command de-initializes the DAP I/O pins by calling the function PORT_OFF.

+

DAP_Disconnect Command:

+
| BYTE |
+
> 0x03 |
+
|******|
+

DAP_Disconnect Response:

+
| BYTE | BYTE |
+
< 0x03 | Status |
+
|******|********|
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__ExecuteCommands__gr.html b/docs/DAP/html/group__DAP__ExecuteCommands__gr.html new file mode 100644 index 0000000..702571b --- /dev/null +++ b/docs/DAP/html/group__DAP__ExecuteCommands__gr.html @@ -0,0 +1,161 @@ + + + + + +DAP_ExecuteCommands +CMSIS-DAP: DAP_ExecuteCommands + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_ExecuteCommands
+
+
+ +

Execute multiple DAP commands from a single packet. +More...

+

Execute multiple DAP commands from a single packet.

+

Executes multiple DAP commands that are provided in a single packet. Packet size limitation for requests and responses needs to respected.

+

DAP_ExecuteCommands Request:

+
| BYTE | BYTE **|+++++++++++++++++++|
+
> 0x7F | NumCmd | Command Requests |
+
|******|********|+++++++++++++++++++|
+
    +
  • NumCmd: Number of commands to execute
  • +
  • Commands Requests: Concatenated command requests
  • +
+

DAP_ExecuteCommands Response:

+
| BYTE | BYTE **|+++++++++++++++++++|
+
< 0x7F | NumCmd | Command Responses |
+
|******|********|+++++++++++++++++++|
+
    +
  • NumCmd: Number of commands executed
  • +
  • Commands Responses: Concatenated command responses
  • +
+

Example:

+

Execute two DAP_SWJ_Pins commands with DAP_Delay in between.

+

Request:

+
| BYTE | BYTE | BYTE | BYTE ******| BYTE ******| WORD ****| BYTE | SHORT | BYTE | BYTE ******| BYTE ******| WORD ****|
+
> 0x7F | 0x03 | 0x10 | Pin Output | Pin Select | Pin Wait | 0x09 | Delay | 0x10 | Pin Output | Pin Select | Pin Wait |
+
|******|******|******|************|************|**********|******|*******|******|************|************|**********|
+
|NumCmd| DAP_SWJ_Pins | DAP_Delay | DAP_SWJ_Pins |
+

Response:

+
| BYTE | BYTE | BYTE | BYTE *****| BYTE | BYTE **| BYTE | BYTE *****|
+
< 0x7F | 0x03 | 0x10 | Pin Input | 0x09 | Status | 0x10 | Pin Input |
+
|******|******|******|***********|******|********|******|***********|
+
|NumCmd| DAP_SWJ_Pins | DAP_Delay | DAP_SWJ_Pins |
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__HostStatus.html b/docs/DAP/html/group__DAP__HostStatus.html new file mode 100644 index 0000000..799987b --- /dev/null +++ b/docs/DAP/html/group__DAP__HostStatus.html @@ -0,0 +1,157 @@ + + + + + +DAP_HostStatus +CMSIS-DAP: DAP_HostStatus + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_HostStatus
+
+
+ +

Sent status information of the debugger to Debug Unit. +More...

+

Sent status information of the debugger to Debug Unit.

+

The DAP_HostStatus Command is used to sent the status information about the debugger to the Debug Unit. This status information may be displayed on the Debug Unit. Therefore a Debug Unit may provide optional Status LEDs:

+
    +
  • Connect LED: is active when the DAP hardware is connected to a debugger.
  • +
  • Running LED: is active when the debugger has put the target device into running state.
  • +
+

DAP_HostStatus Command:

+
| BYTE | BYTE **| BYTE **|
+
> 0x01 | Type | Status |
+
|******|********|********|
+
    +
  • Type: specifies the type of the information that is sent in Status:
      +
    • 0 = Connect: Status indicates that the debugger is connected to the Debug Unit.
    • +
    • 1 = Running: Status indicates that the target hardware is executing application code.
    • +
    +
  • +
  • Status: contains the actual status information:
      +
    • 0 = False: may be used to turn off a status LED (Connect or Running) on the Debug Unit.
    • +
    • 1 = True: may be used to turn on a status LED (Connect or Running) on the Debug Unit.
    • +
    +
  • +
+

DAP_HostStatus Response:

+
| BYTE | BYTE **|
+
< 0x01 | 0x00 |
+
|******|********|
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__Info.html b/docs/DAP/html/group__DAP__Info.html new file mode 100644 index 0000000..6e47d5f --- /dev/null +++ b/docs/DAP/html/group__DAP__Info.html @@ -0,0 +1,210 @@ + + + + + +DAP_Info +CMSIS-DAP: DAP_Info + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
+
+
+ +

Get Information about CMSIS-DAP Debug Unit. +More...

+

Get Information about CMSIS-DAP Debug Unit.

+

The DAP_Info Command provides configuration information about the Debug Unit itself and the capabilities.

+

DAP_Info Command:

+
| BYTE | BYTE |
+
> 0x00 | ID |
+
|******|******|
+
    +
  • ID: Request Identifier to obtain information in the Response:
      +
    • 0x01 = Get the Vendor ID (string).
    • +
    • 0x02 = Get the Product ID (string).
    • +
    • 0x03 = Get the Serial Number (string).
    • +
    • 0x04 = Get the CMSIS-DAP Firmware Version (string).
    • +
    • 0x05 = Get the Target Device Vendor (string).
    • +
    • 0x06 = Get the Target Device Name (string).
    • +
    • 0xF0 = Get information about the Capabilities (BYTE) of the Debug Unit (see below for details).
    • +
    • 0xF1 = Get the Test Domain Timer parameter information (see below for details).
    • +
    • 0xFD = Get the SWO Trace Buffer Size (WORD).
    • +
    • 0xFE = Get the maximum Packet Count (BYTE).
    • +
    • 0xFF = Get the maximum Packet Size (SHORT).
    • +
    +
  • +
+

DAP_Info Response:

+
| BYTE | BYTE | BYTE |
+
< 0x00 | Len | Info |
+
|******|******|++++++|
+
    +
  • Len: Info length in bytes.
  • +
  • Info:
      +
    • a string encoded in US ASCII. Len is the string length including the \x00 terminator. Len = 0 indicates no information.
    • +
    • a BYTE value (indicated with Len = 1).
    • +
    • a SHORT value (indicated with Len = 2).
    • +
    • a WORD value (indicated with Len = 4).
    • +
    +
  • +
+
Note
The ID for Vendor ID, Product ID, and Serial Number may return no string (indicated by Len = 0). In this case the USB Device Information is used to obtain Vendor, Product, and Serial Number.
+
+Target Device Vendor and Target Device Name are only available on Debug Units with known Target Device. Refer to TARGET_DEVICE_FIXED for more information. If the Target Device is not known no string is returned (indicated by Len = 0).
+
+

DAP_Info Response (for ID=0xF0):

+

The ID=0xF0 Capabilities obtains information about the available interface to the Device. The reply consists of one or two Info bytes with bits that indicate the features of the Debug Unit. The features indicate the command scope of the CMSIS-DAP firmware. If certain features are not available, the debugger should not call the related commands as the may not be implemented. Commands that are not implemented reply with 0xFF instead of repeating the command byte.

+
| BYTE | BYTE | BYTE *| BYTE |
+
< 0x00 | Len | Info0 | Info1 |
+
|******|******|*******|*******|
+
    +
  • Len: 1 = Info0 present, 2 = Info0, Info1 present.
  • +
+

Available transfer protocols to target:

+
    +
  • Info0 - Bit 0: 1 = SWD Serial Wire Debug communication is implemented (0 = SWD Commands not implemented).
  • +
  • Info0 - Bit 1: 1 = JTAG communication is implemented (0 = JTAG Commands not implemented).
  • +
+

Serial Wire Trace (SWO) support:

+
    +
  • Info0 - Bit 2: 1 = SWO UART - UART Serial Wire Output is implemented (0 = not implemented).
  • +
  • Info0 - Bit 3: 1 = SWO Manchester - Manchester Serial Wire Output is implemented (0 = not implemented).
  • +
+

Command extensions for transfer protocol:

+ +

Time synchronisation via Test Domain Timer:

+
    +
  • Info0 - Bit 5: 1 = Test Domain Timer - debug unit support for Test Domain Timer is implemented (0 = not implemented).
  • +
+

SWO Streaming Trace support:

+
    +
  • Info0 - Bit 6: 1 = SWO Streaming Trace is implemented (0 = not implemented).
  • +
+
+

DAP_Info Response (for ID=0xF1):

+

The ID=0xF1 Test Domain Timer obtains the parameter information about an optional 32-bit Test Domain Timer that may be used for various time measurements.

+
| BYTE | BYTE | WORD *****|
+
< 0x00 | 0x08 | Frequency |
+
|******|******|***********|
+
    +
  • Frequency: Input frequency of the Test Domain Timer which indicates the resolution of the 32-bit TD_TimeStamp values.
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__JTAG__Configure.html b/docs/DAP/html/group__DAP__JTAG__Configure.html new file mode 100644 index 0000000..bb2084b --- /dev/null +++ b/docs/DAP/html/group__DAP__JTAG__Configure.html @@ -0,0 +1,148 @@ + + + + + +DAP_JTAG_Configure +CMSIS-DAP: DAP_JTAG_Configure + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_JTAG_Configure
+
+
+ +

Configure JTAG Chain. +More...

+

Configure JTAG Chain.

+

The DAP_JTAG_Configure Command sets the JTAG device chain information for communication with Transfer Commands. The JTAG device chain needs to be iterated with DAP_JTAG_Sequence or manually configured by the debugger on the host computer.

+

DAP_JTAG_Configure Command:

+
| BYTE | BYTE *| BYTE *****|
+
> 0x15 | Count | IR Length |
+
|******|*******|+++++++++++|
+
    +
  • Count: Number of devices in chain
  • +
  • IR Length: JTAG IR register length (in bits) for each device.
  • +
+

DAP_JTAG_Configure Response:

+
| BYTE | BYTE **|
+
< 0x15 | Status |
+
|******|********|
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__JTAG__Sequence.html b/docs/DAP/html/group__DAP__JTAG__Sequence.html new file mode 100644 index 0000000..dd799b8 --- /dev/null +++ b/docs/DAP/html/group__DAP__JTAG__Sequence.html @@ -0,0 +1,163 @@ + + + + + +DAP_JTAG_Sequence +CMSIS-DAP: DAP_JTAG_Sequence + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_JTAG_Sequence
+
+
+ +

Generate JTAG sequence TMS, TDI and capture TDO. +More...

+

Generate JTAG sequence TMS, TDI and capture TDO.

+

The DAP_JTAG_Sequence Command may be used to auto-detect devices on the JTAG chain. The result of this command can be used to calculate on the host computer the number of JTAG devices and the JTAG IR register length. This information is the input for DAP_JTAG_Configure.

+

DAP_JTAG_Sequence Command:

+
| BYTE | BYTE **********| BYTE *********| BYTE ****|
+
> 0x14 | Sequence Count | Sequence Info | TDI Data |
+
|******|****************|///////////////|//////////|
+
    +
  • Sequence Count: Number of Sequences
  • +
  • Sequence Info: Contains number of TDI bits and fixed TMS value
      +
    • Bit 5 .. 0: Number of TCK cycles: 1 .. 64 (64 encoded as 0)
    • +
    • Bit 6: TMS value
    • +
    • Bit 7: TDO Capture
    • +
    +
  • +
  • TDI Data: Data generated on TDI
      +
    • One bit for each TCK cycle
    • +
    • LSB transmitted first, padded to BYTE boundary
    • +
    +
  • +
+

DAP_JTAG_Sequence Response:

+
| BYTE | BYTE **| BYTE ****|
+
< 0x14 | Status | TDO Data |
+
|******|********|++++++++++|
+
    +
  • TDO Data: Data captured from TDO
      +
    • One bit for each TCK cycle when TDO Capture is enabled
    • +
    • LSB received first, padded to BYTE boundary
    • +
    +
  • +
  • Status: Response Status
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__QueueCommands__gr.html b/docs/DAP/html/group__DAP__QueueCommands__gr.html new file mode 100644 index 0000000..c4e31d2 --- /dev/null +++ b/docs/DAP/html/group__DAP__QueueCommands__gr.html @@ -0,0 +1,210 @@ + + + + + +DAP_QueueCommands +CMSIS-DAP: DAP_QueueCommands + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_QueueCommands
+
+
+ +

Queue multiple DAP commands provided in a multiple packets. +More...

+

Queue multiple DAP commands provided in a multiple packets.

+

Queues multiple DAP commands provided in multiple packets. Queuing starts with the first packet that includes DAP_QueueCommands command and continues with all subsequent packets that also include this command. Queued commands execute when a packet without DAP_QueueCommands command is received. Packet size and count limitation for requests and responses needs to respected.

+

The command is similar to DAP_ExecuteCommands on a packet level but queues multiple packets before processing them.

+

DAP_QueueCommands Request:

+
| BYTE | BYTE **|+++++++++++++++++++|
+
> 0x7E | NumCmd | Command Requests | First queued packet
+
|******|********|+++++++++++++++++++|
+
.
+
.
+
.
+
| BYTE | BYTE **|+++++++++++++++++++|
+
> 0x7E | NumCmd | Command Requests | Last queued packet
+
|******|********|+++++++++++++++++++|
+
    +
  • > Command Request (any command except DAP_QueueCommands)
    + Queued commands are executed before this command
  • +
  • NumCmd: Number of commands to queue (single packet)
  • +
  • Commands Requests: Concatenated command requests (single packet)
  • +
+

DAP_QueueCommands Response:

+
| BYTE | BYTE **|+++++++++++++++++++|
+
< 0x7F | NumCmd | Command Responses |
+
|******|********|+++++++++++++++++++|
+
.
+
.
+
.
+
| BYTE | BYTE **|+++++++++++++++++++|
+
< 0x7F | NumCmd | Command Responses |
+
|******|********|+++++++++++++++++++|
+
    +
  • < Command Response (first non DAP_QueueCommands command)
  • +
  • NumCmd: Number of commands executed (single packet)
  • +
  • Commands Responses: Concatenated command responses (single packet)
  • +
+

Example:

+

Queue DAP_SWJ_Pins and DAP_Delay in first packet.
+Queue DAP_SWJ_Pins in second packet.
+Queue DAP_Delay in third packet.
+Send DAP_SWJ_Pins in fourth packet which executes queued commands and command in the last packet.

+

Request:

+
| BYTE | BYTE | BYTE | BYTE ******| BYTE ******| WORD ****| BYTE | SHORT |
+
> 0x7E | 0x02 | 0x10 | Pin Output | Pin Select | Pin Wait | 0x09 | Delay |
+
|******|******|******|************|************|**********|******|*******|
+
Queue|NumCmd| DAP_SWJ_Pins | DAP_Delay |
+
+
| BYTE | BYTE | BYTE | BYTE ******| BYTE ******| WORD ****|
+
> 0x7E | 0x01 | 0x10 | Pin Output | Pin Select | Pin Wait |
+
|******|******|******|************|************|**********|
+
Queue|NumCmd| DAP_SWJ_Pins |
+
+
| BYTE | BYTE | BYTE | SHORT |
+
> 0x7E | 0x01 | 0x09 | Delay |
+
|******|******|******|*******|
+
Queue|NumCmd| DAP_Delay |
+
+
| BYTE | BYTE ******| BYTE ******| WORD ****|
+
> 0x10 | Pin Output | Pin Select | Pin Wait |
+
|******|************|************|**********|
+
DAP_SWJ_Pins |
+

Response:

+
| BYTE | BYTE | BYTE | BYTE *****| BYTE | BYTE **|
+
< 0x7F | 0x02 | 0x10 | Pin Input | 0x09 | Status |
+
|******|******|******|***********|******|********|
+
|NumCmd| DAP_SWJ_Pins | DAP_Delay |
+
+
| BYTE | BYTE | BYTE | BYTE *****|
+
< 0x7F | 0x01 | 0x10 | Pin Input |
+
|******|******|******|***********|
+
|NumCmd| DAP_SWJ_Pins |
+
+
| BYTE | BYTE | BYTE | BYTE **|
+
< 0x7F | 0x01 | 0x09 | Status |
+
|******|******|******|********|
+
|NumCmd| DAP_Delay |
+
+
| BYTE | BYTE *****|
+
< 0x10 | Pin Input |
+
|******|***********|
+
DAP_SWJ_Pins |
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__ResetTarget.html b/docs/DAP/html/group__DAP__ResetTarget.html new file mode 100644 index 0000000..4009a32 --- /dev/null +++ b/docs/DAP/html/group__DAP__ResetTarget.html @@ -0,0 +1,149 @@ + + + + + +DAP_ResetTarget +CMSIS-DAP: DAP_ResetTarget + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_ResetTarget
+
+
+ +

Reset Target with Device specific sequence. +More...

+

Reset Target with Device specific sequence.

+

The DAP_ResetTarget Command requests a target reset with a device specific command sequence. This command calls the user configurable function RESET_TARGET.

+

DAP_ResetTarget Command:

+
| BYTE |
+
> 0x0A |
+
|******|
+

DAP_ResetTarget Response:

+
| BYTE | BYTE | BYTE |
+
< 0x0A | Status | Execute |
+
|******|********|*********|
+
    +
  • Execute: indicates whether a device specific reset sequence was executed.
      +
    • no device specific reset sequence is implemented.
    • +
    • 1 = a device specific reset sequence is implemented.
    • +
    +
  • +
  • Status: Response Status
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__Response__Status.html b/docs/DAP/html/group__DAP__Response__Status.html new file mode 100644 index 0000000..a97bc15 --- /dev/null +++ b/docs/DAP/html/group__DAP__Response__Status.html @@ -0,0 +1,137 @@ + + + + + +Response Status +CMSIS-DAP: Response Status + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Response Status
+
+
+ +

Status Information in Response Data. +More...

+

Status Information in Response Data.

+

The Response data of a command frequently include a Status that indicates correct execution or command failures. Currently the following Status codes are returned:

+
    +
  • 0x00 = DAP_OK: Command has been successfully executed
  • +
  • 0xFF = DAP_ERROR: Command did not execute due to communication failure with the device.
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__SWD__Configure.html b/docs/DAP/html/group__DAP__SWD__Configure.html new file mode 100644 index 0000000..f91a439 --- /dev/null +++ b/docs/DAP/html/group__DAP__SWD__Configure.html @@ -0,0 +1,152 @@ + + + + + +DAP_SWD_Configure +CMSIS-DAP: DAP_SWD_Configure + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_SWD_Configure
+
+
+ +

Configure SWD Protocol. +More...

+

Configure SWD Protocol.

+

The DAP_SWD_Configure Command sets the SWD protocol configuration. For more information about the SWD protocol refer to the Arm Debug Interface v5 - Interface Specification.

+

DAP_SWD_Configure Command:

+
| BYTE | BYTE *********|
+
> 0x13 | Configuration |
+
|******|***************|
+
    +
  • Configuration: Contains information about SWD specific features
    +
      +
    • Bit 1 .. 0: Turnaround clock period of the SWD device (should be identical with the WCR [Write Control Register] value of the target): 0 = 1 clock cycle (default), 1 = 2 clock cycles, 2 = 3 clock cycles, 3 = 4 clock cycles.
    • +
    • Bit 2: DataPhase: 0 = Do not generate Data Phase on WAIT/FAULT (default), 1 = Always generate Data Phase (also on WAIT/FAULT; Required for Sticky Overrun behavior).
    • +
    +
  • +
+

DAP_SWD_Configure Response:

+
| BYTE | BYTE **|
+
< 0x13 | Status |
+
|******|********|
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__SWD__Sequence.html b/docs/DAP/html/group__DAP__SWD__Sequence.html new file mode 100644 index 0000000..6e2df91 --- /dev/null +++ b/docs/DAP/html/group__DAP__SWD__Sequence.html @@ -0,0 +1,172 @@ + + + + + +DAP_SWD_Sequence +CMSIS-DAP: DAP_SWD_Sequence + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_SWD_Sequence
+
+
+ +

Generate SWD sequence and output on SWDIO or capture input from SWDIO data. +More...

+

Generate SWD sequence and output on SWDIO or capture input from SWDIO data.

+
Note
The DAP_SWD_Sequence is available for CMSIS-DAP version 1.2 and higher. Refer to DAP_Info for more information on how to query the CMSIS-DAP version.
+

The DAP_SWD_Sequence Command is used to generate special sequences in SWD mode on the pins SWCLK and SWDIO. For example, for SWD multi-drop target selection (see picture) it is required to put the SWDIO pin to input mode (where it is not driven).

+
+SWD_Sequence.png +
+SWD sequence for multi-drop target selection
+
    +
  • For mode=0 (output: SWDIO is driven), the data for the SWDIO pin are part of the DAP_SWD_Sequence Command.
  • +
  • For mode=1 (input: SWDIO is not driven), the data from the SWDIO pin are captured and returned as part of the DAP_SWD_Sequence Response.
  • +
+

DAP_SWD_Sequence Command:

+
| BYTE | BYTE **********| BYTE *********| BYTE ******|
+
> 0x1D | Sequence Count | Sequence Info | SWDIO Data |
+
|******|****************|///////////////|++++++++++++|
+
    +
  • Sequence Count: Number of Sequences
  • +
  • Sequence Info: Contains number of SWCLK cycles and SWDIO mode
      +
    • Bit 5 .. 0: Number of TCK cycles: 1 .. 64 (64 encoded as 0)
    • +
    • Bit 6: reserved
    • +
    • Bit 7: mode: 0=output (SWDIO Data in command), 1=input (SWDIO Data in response)
    • +
    +
  • +
  • SWDIO Data (only for output mode): Data generated on SWDIO
      +
    • One bit for each TCK cycle
    • +
    • LSB transmitted first, padded to BYTE boundary
    • +
    +
  • +
+

DAP_SWD_Sequence Response:

+
| BYTE | BYTE **| BYTE ******|
+
< 0x1D | Status | SWDIO Data |
+
|******|********|++++++++++++|
+
    +
  • SWDIO Data (only for input mode): Data captured from SWDIO
      +
    • One bit for each SWCLK cycle for input mode
    • +
    • LSB received first, padded to BYTE boundary
    • +
    +
  • +
  • Status: Response Status
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__SWJ__Clock.html b/docs/DAP/html/group__DAP__SWJ__Clock.html new file mode 100644 index 0000000..36a6dee --- /dev/null +++ b/docs/DAP/html/group__DAP__SWJ__Clock.html @@ -0,0 +1,147 @@ + + + + + +DAP_SWJ_Clock +CMSIS-DAP: DAP_SWJ_Clock + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
+
+
+ +

Select SWD/JTAG Clock. +More...

+

Select SWD/JTAG Clock.

+

The DAP_SWJ_Clock Command sets the clock frequency for JTAG and SWD communication mode.

+

DAP_SWJ_Clock Command:

+
| BYTE | WORD *|
+
> 0x11 | Clock |
+
|******|*******|
+
    +
  • Clock: Selects maximum SWD/JTAG Clock (SWCLK/TCK) value in Hz
  • +
+

DAP_SWJ_Clock Response:

+
| BYTE | BYTE **|
+
< 0x11 | Status |
+
|******|********|
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__SWJ__Pins.html b/docs/DAP/html/group__DAP__SWJ__Pins.html new file mode 100644 index 0000000..3611a19 --- /dev/null +++ b/docs/DAP/html/group__DAP__SWJ__Pins.html @@ -0,0 +1,163 @@ + + + + + +DAP_SWJ_Pins +CMSIS-DAP: DAP_SWJ_Pins + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
+ +

Control and monitor SWD/JTAG Pins. +More...

+

Control and monitor SWD/JTAG Pins.

+

The DAP_SWJ_Pins Command is used to monitor and control the I/O Pins including the nRESET Device reset line.

+

The Pin Wait time is useful in systems where the nRESET pin is implemented as open-drain output. After nRESET is de-asserted by the debugger, external circuit may still hold the target Device under reset for a time. Using the Pin Wait time, the debugger may monitor selected I/O Pins and wait until they the expected value appears or a timeout expires.

+

I/O Pin Mapping for the fields Pin Output, Pin Select, and Pin Input:

+
    +
  • Bit 0: SWCLK/TCK
  • +
  • Bit 1: SWDIO/TMS
  • +
  • Bit 2: TDI
  • +
  • Bit 3: TDO
  • +
  • Bit 5: nTRST
  • +
  • Bit 7: nRESET
  • +
+

DAP_SWJ_Pins Command:

+
| BYTE | BYTE ******| BYTE ******| Word ****|
+
> 0x10 | Pin Output | Pin Select | Pin Wait |
+
|******|************|************|**********|
+
    +
  • Pin Output: Value for selected output pins
  • +
  • Pin Select: Selects which output pins will be modified
  • +
  • Pin Wait: Wait timeout for the selected output to stabilize
      +
    • 0 = no wait
    • +
    • 1 .. 3000000 = time in µs (max 3s)
    • +
    +
  • +
+

DAP_SWJ_Pins Response:

+
| BYTE | BYTE *****|
+
< 0x10 | Pin Input |
+
|******|***********|
+
    +
  • Pin Input: Pin state read from target Device.
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__SWJ__Sequence.html b/docs/DAP/html/group__DAP__SWJ__Sequence.html new file mode 100644 index 0000000..0c76a51 --- /dev/null +++ b/docs/DAP/html/group__DAP__SWJ__Sequence.html @@ -0,0 +1,148 @@ + + + + + +DAP_SWJ_Sequence +CMSIS-DAP: DAP_SWJ_Sequence + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_SWJ_Sequence
+
+
+ +

Generate SWJ sequence SWDIO/TMS @SWCLK/TCK. +More...

+

Generate SWJ sequence SWDIO/TMS @SWCLK/TCK.

+

The DAP_SWJ_Sequence Command can be used to generate required SWJ sequences for SWD/JTAG Reset, SWD<->JTAG switch and Dormant operation.

+

DAP_SWJ_Sequence Command

+
| BYTE | BYTE **************| BYTE *************|
+
> 0x12 | Sequence Bit Count | Sequence Bit Data |
+
|******|********************|+++++++++++++++++++|
+
    +
  • Sequence Bit Count: Number of bits in sequence: 1..256 (256 encoded as 0)
  • +
  • Sequence Bit Data: Sequence generated on SWDIO/TMS (with clock @SWCLK/TCK) LSB is transmitted first
  • +
+

DAP_SWJ_Sequence Response:

+
| BYTE | BYTE **|
+
< 0x12 | Status |
+
|******|********|
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__SWO__Baudrate.html b/docs/DAP/html/group__DAP__SWO__Baudrate.html new file mode 100644 index 0000000..0a316d1 --- /dev/null +++ b/docs/DAP/html/group__DAP__SWO__Baudrate.html @@ -0,0 +1,149 @@ + + + + + +DAP_SWO_Baudrate +CMSIS-DAP: DAP_SWO_Baudrate + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_SWO_Baudrate
+
+
+ +

Set SWO baudrate. +More...

+

Set SWO baudrate.

+

DAP_SWO_Baudrate (0x19):

+

Sets the baudrate for capturing SWO trace data. Can be called iteratively to determine supported baudrates.

+

DAP_SWO_Baudrate Request:

+
| BYTE | WORD |
+
> 0x19 | Baudrate |
+
|******|**********|
+
    +
  • Baudrate: Requested baudrate
  • +
+

DAP_SWO_Baudrate Response:

+
| BYTE | WORD |
+
< 0x19 | Baudrate |
+
|******|**********|
+
    +
  • Baudrate: Actual baudrate or 0 (baudrate not configured) When requested baudrate is not achievable the closest configured baudrate can be returned or 0 which indicates that baudrate was not configured.
  • +
+
Note
When Manchester Mode is used and if decoder is implemented with clock recovery then baudrate is not required since clock is automatically decoded. However such decoders are harder to implement (especially for high frequencies) and the clock recovery might not be implemented. Therefore the baudrate should be provided also for Manchester mode.
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__SWO__Control.html b/docs/DAP/html/group__DAP__SWO__Control.html new file mode 100644 index 0000000..8ca76f0 --- /dev/null +++ b/docs/DAP/html/group__DAP__SWO__Control.html @@ -0,0 +1,153 @@ + + + + + +DAP_SWO_Control +CMSIS-DAP: DAP_SWO_Control + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_SWO_Control
+
+
+ +

Control SWO trace data capture. +More...

+

Control SWO trace data capture.

+

DAP_SWO_Control (0x1A):

+

Controls the SWO trace data capture.

+

DAP_SWO_Control Request:

+
| BYTE | BYTE |
+
> 0x1A | Control |
+
|******|*********|
+
    +
  • Control:
      +
    • 0 - Stop
    • +
    • 1 - Start
    • +
    +
  • +
+

DAP_SWO_Control Response:

+
| BYTE | BYTE |
+
< 0x1A | Status |
+
|******|********|
+
+
Note
Starting capture automatically flushes any existing trace data in buffers which has not yet been read
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__SWO__Data.html b/docs/DAP/html/group__DAP__SWO__Data.html new file mode 100644 index 0000000..3bada2b --- /dev/null +++ b/docs/DAP/html/group__DAP__SWO__Data.html @@ -0,0 +1,155 @@ + + + + + +DAP_SWO_Data +CMSIS-DAP: DAP_SWO_Data + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_SWO_Data
+
+
+ +

Read SWO trace data. +More...

+

Read SWO trace data.

+

DAP_SWO_Data (0x1C):

+

Reads the captured SWO trace data from Trace Buffer.

+

DAP_SWO_Data Request:

+
| BYTE | SHORT |
+
> 0x1C | Trace Count |
+
|******|*************|
+
    +
  • Trace Count: Maxim number of Trace Data bytes to read
  • +
+

DAP_SWO_Data Response:

+
| BYTE | BYTE | SHORT | BYTE |
+
< 0x1C | Trace Status | Trace Count | Trace Data |
+
|******|**************|*************|////////////|
+
    +
  • Trace Status:
      +
    • Bit 0: Trace Capture (1 - active, 0 - inactive)
    • +
    • Bit 6: Trace Stream Error
    • +
    • Bit 7: Trace Buffer Overrun
    • +
    +
  • +
  • Trace Count: Number of Trace Data bytes read
  • +
  • Trace Data: Trace Data bytes read
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__SWO__ExtendedStatus.html b/docs/DAP/html/group__DAP__SWO__ExtendedStatus.html new file mode 100644 index 0000000..9857611 --- /dev/null +++ b/docs/DAP/html/group__DAP__SWO__ExtendedStatus.html @@ -0,0 +1,161 @@ + + + + + +DAP_SWO_ExtendedStatus +CMSIS-DAP: DAP_SWO_ExtendedStatus + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_SWO_ExtendedStatus
+
+
+ +

Read SWO trace extended status. +More...

+

Read SWO trace extended status.

+

DAP_SWO_ExtendedStatus (0x1E):

+

Reads extended information about the SWO trace status.

+

DAP_SWO_ExtendedStatus Request:

+
| BYTE | BYTE |
+
> 0x1E | Control |
+
|******|*********|
+
    +
  • Control:
      +
    • Bit 0: Trace Status (1 - request, 0 - inactive)
    • +
    • Bit 1: Trace Count (1 - request, 0 - inactive)
    • +
    • Bit 2: Index/Timestamp (1 - request, 0 - inactive)
    • +
    +
  • +
+

DAP_SWO_ExtendStatus Response:

+
| BYTE | BYTE | WORD | WORD | WORD |
+
< 0x1E | Trace Status | Trace Count | Index | TD_TimeStamp |
+
|******|++++++++++++++|+++++++++++++|+++++++|++++++++++++++|
+
    +
  • Trace Status:
      +
    • Bit 0: Trace Capture (1 - active, 0 - inactive)
    • +
    • Bit 6: Trace Stream Error
    • +
    • Bit 7: Trace Buffer Overrun
    • +
    +
  • +
  • Trace Count: Number of bytes in Trace Buffer (not yet read)
  • +
  • Index: Sequence number of next trace information
  • +
  • TD_TimeStamp: Test Domain Timer value for trace sequence.
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__SWO__Mode.html b/docs/DAP/html/group__DAP__SWO__Mode.html new file mode 100644 index 0000000..6472993 --- /dev/null +++ b/docs/DAP/html/group__DAP__SWO__Mode.html @@ -0,0 +1,153 @@ + + + + + +DAP_SWO_Mode +CMSIS-DAP: DAP_SWO_Mode + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_SWO_Mode
+
+
+ +

Set SWO capture mode. +More...

+

Set SWO capture mode.

+

DAP_SWO_Mode (0x18):

+

Sets the SWO trace capture mode.

+

DAP_SWO_Mode Request:

+
| BYTE | BYTE |
+
> 0x18 | Mode |
+
|******|******|
+
    +
  • Mode:
      +
    • 0 - Off (default)
    • +
    • 1 - UART
    • +
    • 2 - Manchester
    • +
    +
  • +
+

DAP_SWO_Mode Response:

+
| BYTE | BYTE |
+
< 0x18 | Status |
+
|******|********|
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__SWO__Status.html b/docs/DAP/html/group__DAP__SWO__Status.html new file mode 100644 index 0000000..48d5ea4 --- /dev/null +++ b/docs/DAP/html/group__DAP__SWO__Status.html @@ -0,0 +1,151 @@ + + + + + +DAP_SWO_Status +CMSIS-DAP: DAP_SWO_Status + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_SWO_Status
+
+
+ +

Read SWO trace status. +More...

+

Read SWO trace status.

+

DAP_SWO_Status (0x1B):

+

Reads the SWO trace status.

+

DAP_SWO_Status Request:

+
| BYTE |
+
> 0x1B |
+
|******|
+

DAP_SWO_Status Response:

+
| BYTE | BYTE | WORD |
+
< 0x1B | Trace Status | Trace Count |
+
|******|**************|*************|
+
    +
  • Trace Status:
      +
    • Bit 0: Trace Capture (1 - active, 0 - inactive)
    • +
    • Bit 6: Trace Stream Error
    • +
    • Bit 7: Trace Buffer Overrun
    • +
    +
  • +
  • Trace Count: Number of bytes in Trace Buffer (not yet read)
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__SWO__Transport.html b/docs/DAP/html/group__DAP__SWO__Transport.html new file mode 100644 index 0000000..b6e9381 --- /dev/null +++ b/docs/DAP/html/group__DAP__SWO__Transport.html @@ -0,0 +1,155 @@ + + + + + +DAP_SWO_Transport +CMSIS-DAP: DAP_SWO_Transport + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_SWO_Transport
+
+
+ +

Set SWO transport mode. +More...

+

Set SWO transport mode.

+

DAP_SWO_Transport (0x17):

+

Sets the SWO transport mode for reading trace data.

+

DAP_SWO_Transport Request:

+
| BYTE | BYTE |
+
> 0x17 | Transport |
+
|******|***********|
+
    +
  • Transport:
      +
    • 0 - None (default)
    • +
    • 1 - Read trace data via DAP_SWO_Data command
    • +
    • 2 - Send trace data via separate WinUSB endpoint (requires CMSIS-DAP v2 configuration)
    • +
    • ... - reserved
    • +
    +
  • +
+

DAP_SWO_Transport Response:

+
| BYTE | BYTE |
+
< 0x17 | Status |
+
|******|********|
+
+
Note
Currently the trace data can only be read via the existing DAP command request/response channel by using DAP_SWO_Data. Future extension might provide separate channels for reading trace data.
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__TI__Capture.html b/docs/DAP/html/group__DAP__TI__Capture.html new file mode 100644 index 0000000..8fcf18b --- /dev/null +++ b/docs/DAP/html/group__DAP__TI__Capture.html @@ -0,0 +1,158 @@ + + + + + +DAP_TI_Capture +CMSIS-DAP: DAP_TI_Capture + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 1.2.0 (Proposal) +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_TI_Capture
+
+
+ +

Control continuous data recording of Test Input channels. +More...

+

Control continuous data recording of Test Input channels.

+

The DAP_TI_Capture Command controls the data recording of the various Test Input channels.

+

DAP_TI_Capture Request:

+
| BYTE | SHORT ******| SHORT ******| BYTE **| BYTE *****|
+
> 0x1F | ChannelMask | ChannelDiff | Action | CapSelect |
+
|******|*************|*************|********|***********|
+
    +
  • ChannelMask: Bit mask that encodes the channels that should be recorded.
  • +
  • ChannelDiff: Bit mask that enables the channel to communicate data differences.
      +
    • 0x1 = Debug Unit may decide to send data differences.
    • +
    • 0x0 = Debug Unit will always send data values.
    • +
    +
  • +
  • Action: start or stop recording.
      +
    • 0x1 = start recording.
    • +
    • 0x0 = stop recording.
    • +
    +
  • +
  • CapSelect: select recording frequency for the data capturing (frequency is obtained via DAP_TI_Info ID=0x02)
  • +
+

DAP_TI_Capture Response:

+
| BYTE | SHORT ******|
+
< 0x1F | ChannelMask |
+
|******|*************|
+
    +
  • ChannelMask: Bit mask of channels that are currently recorded. Depending on the capabilities of the Debug Unit, this might be less than the request channels.
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__TI__Info.html b/docs/DAP/html/group__DAP__TI__Info.html new file mode 100644 index 0000000..249466c --- /dev/null +++ b/docs/DAP/html/group__DAP__TI__Info.html @@ -0,0 +1,232 @@ + + + + + +DAP_TI_Info +CMSIS-DAP: DAP_TI_Info + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 1.2.0 (Proposal) +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
+
+
+ +

Get information about Test Input channel parameters of the CMSIS-DAP Debug Unit. +More...

+

Get information about Test Input channel parameters of the CMSIS-DAP Debug Unit.

+

The DAP_TI_Info Command provides information about additional Test Inputs that are possible to capture with the CMSIS-DAP Debug Unit.

+

DAP_TI_Info Request:

+
| BYTE | BYTE | BYTE ***|
+
> 0x1D | ID | Channel |
+
|******|******|*********|
+
    +
  • ID: Request Identifier to obtain information in the Response:
      +
    • 0x00 = Get general Test Input channel parameters (Channel value not used).
    • +
    • 0x01 = Get parameters of a specific Test Input Channel.
    • +
    • 0x02 = Get possible data capturing frequencies.
    • +
    +
  • +
  • Channel: channel number.
  • +
+

DAP_TI_Info Response for ID=0x00: Get general Test Input channel parameters

+
| BYTE | BYTE ****|
+
< 0x1D | Channels |
+
|******|**********|
+
    +
  • Channels: number of channels available in the Debug Unit.
  • +
+

DAP_TI_Info Response for ID=0x01: Get parameters of a specific Channel

+
| BYTE | BYTE ***| BYTE ******| BYTE ***| LWORD ***| LWORD *****| BYTE ****| FLOAT *| FLOAT *|
+
< 0x1D | Channel | Attributes | NumBits | IdString | UnitString | Compress | MinVal | MaxVal |
+
|******|*********|************|*********|**********|************|**********|++++++++|++++++++|
+
    +
  • Channel: channel number that information belongs to.
  • +
  • Attributes: attributes of the data channel
      +
    • Bit 0..1: DataSize: number of bytes recorded (0=BYTE, 1=SHORT, 2=WORD)
    • +
    • Bit 2..3: NumRanges: channel data provides additional range bits (see below)
    • +
    • Bit 4: DT_TimeStamp: 1= channel provides time stamp based on Test Domain Timer
    • +
    +
  • +
  • NumBits: resolution of the channel in bits
  • +
  • IdString: is a up to 8 character 8-bit US ASCII string that identifies the channel
  • +
  • UnitString: is a up to 8 character 8-bit US ASCII string that identifies the measurement unit of the channel (V, mA, kHz)
  • +
  • Compress: describes the difference communication that is optionally available (see below)
  • +
  • MinVal: minimum data value (= 0) represents the MinVal. Repeated for each range.
  • +
  • MaxVal: maximum data value result represents the MaxVal. Repeated for each range.
  • +
+
Note
NoRanges: specifies if the channel data has data ranges; possible values are:
    +
  • 0 = 1 range (1 MinVal/MaxVal value pair in the response).
  • +
  • 1 = 2 ranges (2 MinVal/MaxVal value pairs are provided in the response)
  • +
  • 2 = 4 ranges (4 MinVal/MaxVal value pairs are provided in the response)
  • +
+
+
+Compress specifies a method for data differences by this channel.
    +
  • 0 = no data differences can be communicated. Only Contiguous Value Format is transmitted in DAP_TI_TransferBlock Response.
  • +
  • 1 = data differences are transmitted when a single bit is different.
  • +
  • 2 = new data are transmitted when a value has a significant difference. The least significant 3-bits are ignored. This is useful for A/D values.
  • +
  • 3 = new data are transmitted when a value has a significant dynamic difference. Only the uppermost 8-bits are considered. This is useful for dynamic A/D values such as the currency consumption of a device.
  • +
+
+
+Data Value Scaling: the information NoBits, MinVal, MaxVal is used to convert the binary data value into a floating data value for displaying purposes. If both MinVal and MinMax are 0 no scaling formula is provided and raw data may be displayed instead. Scaling considers the NoBits value, for example at 12-bit resolution the maximum data value is 0x3FF.
+
+Data Ranges: the information NoRanges, NoBits allows scaled data value based on range information. The range information is provided in the upper data bits. For example a data channel with NoBits=12 and NRanges=2 provides in bit 0..11 the data value and in bit 12..13 the range value.
+

Example 1: parameters for a channel that supports voltage measurement

+
IdString = 'U0' // Voltage symbol for U0 input
+
UnitString = 'V'; // ASCII character to denote voltage
+
NoBits = 10; // 10 bit A/D resolution
+
NoRanges = 0; // no ranges are supported
+
Compress = 2; // data differences may be communicated
+
MinVal = 2.5; // A/D result = 0x000 represents 2.5V
+
MaxVal = 6.0; // A/D result = 0x3FF represents 6.0V
+

Example 2: parameters for a channel that supports current measurement with two ranges

+
IdString = 'I'; // Current symbol for I input
+
UnitString = 'mA'; // ASCII character to denote milli Ampere
+
NoBits = 12; // 12 bit A/D resolution (bit 0 .. 11 of data values contain A/D result)
+
NoRanges = 1; // 2 ranges are supported (bit 12 of data values contains range)
+
Compress = 3; // dynamic data differences may be communicated
+
MinVal[0] = 0; // A/D result = 0x000 in range 0 represents 0.0mA
+
MaxVal[0] = 1.0; // A/D result = 0xFFF in range 0 represents 1.0mA
+
MinVal[1] = 4.0; // A/D result = 0x000 in range 0 represents 4.0mA
+
MaxVal[1] = 20.0; // A/D result = 0xFFF in range 0 represents 20.0mA
+

For a channel that reports MinVal = MaxVal = 0 the formula needs to be provided by the debugger as the debug unit is using perhaps an external shunt resistor.

+

DAP_TI_Info Response for ID=0x02: Get possible data capturing frequencies for recording of a specific channel

+
| BYTE | BYTE ***| BYTE ********|DWORD ++++|
+
< 0x1D | Channel | NoSelections |Frequency |
+
|******|*********|**************|++++++++++|
+
    +
  • Channel: channel number that information belongs to.
      +
    • Channel = 0..0xF: information of the selected channel
    • +
    • Channel = 0xFF: information for common channel data capturing
    • +
    +
  • +
  • NoSelections: number of possible capture frequencies
      +
    • NoSelections = 0: channel does not support data recording
    • +
    • NoSelections = 1..15: channel allows selection of individual data capture frequencies.
    • +
    • NoSelections = 0xFF: channel allows selection of a common data capture frequency.
    • +
    +
  • +
  • Frequency: capture frequencies (repeated as indicated by NoSelection = 1..15)
      +
    • Frequency[0] capture frequency for CapSelect=0 (see DAP_TI_Capture)
    • +
    • Frequency[1] capture frequency for CapSelect=1 (see DAP_TI_Capture)
    • +
    • Frequency[n] capture frequency for CapSelect=n (see DAP_TI_Capture)
    • +
    +
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__TI__TransferBlock.html b/docs/DAP/html/group__DAP__TI__TransferBlock.html new file mode 100644 index 0000000..424a22b --- /dev/null +++ b/docs/DAP/html/group__DAP__TI__TransferBlock.html @@ -0,0 +1,187 @@ + + + + + +DAP_TI_TransferBlock +CMSIS-DAP: DAP_TI_TransferBlock + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 1.2.0 (Proposal) +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_TI_TransferBlock
+
+
+ +

Transfer the data that are recorded for various Test Input channels. +More...

+

Transfer the data that are recorded for various Test Input channels.

+

The DAP_TI_TransferBlock Command initiates the data transfer of a single trace data block of the recorded trace data. The command delivers the content of one trace data block in the Trace Data Management system.

+

DAP_TI_TransferBlock Request:

+
| BYTE | BYTE *******|
+
> 0x20 | DataRequest |
+
|******|*************|
+
    +
  • DataRequest: specifies the requested data from the Trace Data Management system.
      +
    • bit 0: 1 = deliver one trace data block from any full trace data block (this includes SWO).
    • +
    • bit 1: 1 = deliver one trace data block from SWO channel (even when partially filled).
    • +
    • bit 2: 1 = deliver one trace data block from any partially filled trace data block (this includes SWO).
    • +
    +
  • +
+

DAP_TI_TransferBlock Response:

+
| BYTE | BYTE ***| SHORT ****| WORD ********|+++++++++++++|
+
< 0x20 | Channel | DataParms | TD_TimeStamp | ChannelData |
+
|******|*********|///////////|//////////////|+++++++++++++|
+
    +
  • Channel:
      +
    • bit 0..3: number of the channel that the data belong to.
    • +
    • bit 4: SWO record indicator: 1 = data belong to SWO data recording.
    • +
    • bit 6: First record indicator: 1 = DataParms and TimeStamp is transferred. 0 = Only ChannelData.
    • +
    • bit 7: No data indicator: 1 = No ChannelData available for this request. 0 = ChannelData are available.
    • +
    +
  • +
  • DataParms: parameters for ChannelData.
      +
    • bit 0..12: number of data values in ChannelData. DAP_TI_TransferBlock Response is repeated until all values are transmitted.
    • +
    • bit 14: 1 = difference value format. 0 = contiguous value format.
    • +
    • bit 15: 1 = Trace Data Management overflow since last DAP_TI_TransferBlock Request. 0 = no overflow.
    • +
    +
  • +
  • TD_TimeStamp: Test Domain Timer value at the read time of data values for ChannelData.
  • +
  • ChannelData: data values from the recorded Test Input channel.
  • +
+

The ChannelData reply has depending on DataParms bit 14 two different formats. If ChannelDiff in DAP_TI_Capture Request is set for the specific channel, the Debug Unit may decide the data format depending on the trace data values.

+

Contiguous Value Format transmits sequentially all data values stored in the trace data buffer. When DataParms bit 14 = 0 the ChannelData has the following format:

+
|************|************|************|......
+
| TraceValue | TraceValue | TraceValue |
+
|************|************|************|......
+

The size of TraceValue depends on the data size for the channel (see DAP_TI_Info Response, Attributes bit 0..2). DAP_TI_TransferBlock Response is repeated until the number of TraceValues specified by DataParms bit 0 .. 12 is transmitted.

+

Difference Value Format transmits data values only when there is a significant difference. When DataParms bit 14 = 1 the ChannelData has the following format:

+
|*************| SHORT *****|*************|......
+
| TraceValue0 | ValueIndex | TraceValueI |
+
|*************|////////////|/////////////|......
+
    +
  • TraceValue0: is the first data value on the trace data buffer
  • +
  • ValueIndex: information about the next data value in TraceValueI.
      +
    • bit 0..12: index in trace data buffer of next data value with significant difference.
    • +
    • bit 15: 1 = last trace value of trace data buffer send by DAP_TI_TransferBlock Response.
    • +
    +
  • +
  • TraceValueI: is the trace data value in in trace data buffer referenced by index.
  • +
+

The size of TraceValue0 and TraceValueI depends on the data size for the channel (see DAP_TI_Info Response, Attributes bit 0..2). DAP_TI_TransferBlock Response is repeated until ValueIndex with bit 15 = 1 is transmitted.

+
Note
When all data values in the trace buffer are identical, ValueIndex is set to number of data values with bit 15 set to 1.
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__TI__Value.html b/docs/DAP/html/group__DAP__TI__Value.html new file mode 100644 index 0000000..d3d71f2 --- /dev/null +++ b/docs/DAP/html/group__DAP__TI__Value.html @@ -0,0 +1,154 @@ + + + + + +DAP_TI_Value +CMSIS-DAP: DAP_TI_Value + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 1.2.0 (Proposal) +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
+
+
+ +

Get live data values from Test Input channels. +More...

+

Get live data values from Test Input channels.

+

The DAP_TI_Value Command returns the live (current) values of the Test Inputs in the CMSIS-DAP Debug Unit. Returned are live data that are currently available in the Test Inputs channels.

+

DAP_TI_Value Request:

+
| BYTE | SHORT ******| BYTE ***********|
+
> 0x1E | ChannelMask | DT_Time_Request |
+
|******|*************|*****************|
+
    +
  • ChannelMask: Bit mask that encodes the channels that should be scanned.
  • +
  • Time_Request:
      +
    • 0: No Time Stamp in response.
    • +
    • 1: Include Time Stamp in response.
    • +
    +
  • +
+

DAP_TI_Value Response:

+
| BYTE | SHORT ******| WORD ++++++++|++++++++++++|
+
< 0x1E | ChannelMask | TD_TimeStamp | DataValues |
+
|******|*************|++++++++++++++|++++++++++++|
+
    +
  • ChannelMask: Bit mask of channels that are actually scanned. Depending on the capabilities of the Debug Unit, this might be less than the request channels.
  • +
  • TD_TimeStamp: Test Domain Timer value at the beginning the the request (only present if DT_Time_Request is set to 1).
  • +
  • DataValues: data values of the various Test Inputs (starting with channel=0). The size of DataValues depends on the data size (see DAP_TI_Info Response, Attributes bit 0..2) In case of SHORT or WORD data format, the LSB is send first.
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__TestInput__gr.html b/docs/DAP/html/group__DAP__TestInput__gr.html new file mode 100644 index 0000000..e6f1939 --- /dev/null +++ b/docs/DAP/html/group__DAP__TestInput__gr.html @@ -0,0 +1,165 @@ + + + + + +Test Input Commands +CMSIS-DAP: Test Input Commands + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 1.2.0 (Proposal) +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
Test Input Commands
+
+
+ +

Management commands for optional Test Inputs. +More...

+ + + + + + + + + + + + + + +

+Content

 DAP_TI_Info
 Get information about Test Input channel parameters of the CMSIS-DAP Debug Unit.
 
 DAP_TI_Value
 Get live data values from Test Input channels.
 
 DAP_TI_Capture
 Control continuous data recording of Test Input channels.
 
 DAP_TI_TransferBlock
 Transfer the data that are recorded for various Test Input channels.
 
+

Description

+

Management commands for optional Test Inputs.

+

CMSIS-DAP provides a command set that allows to implement an optional Test Input (TI) management in the Debug Unit. Recording of up to 16 different Test Inputs is possible. Test Input values can be recorded as BYTE, SHORT, or WORD. The Debug Unit may include scaling parameters and dynamic ranges for a channel (for example a 14-bit value with a 2-bit range selection).

+

Test Inputs could be used for various scenarios, for example:

+
    +
  • capture power measurement from A/D converters.
  • +
  • capture wait states or cache misses from a memory system.
  • +
  • capture data transfer parameters of an RF interface.
  • +
  • test input pins of a Debug Unit.
  • +
+

These Test Inputs can be recorded continuously with a specified trace recording frequency. The recording allows you to correlate the Test Input information with program execution. For recording of the CMSIS-DAP Firmware includes an optional Trace Data Management based on configurable memory blocks. This Trace Data Management also captures SWO trace information.

+
Note
The Test Input Commands are only available when DAP_Info with ID=0xF0 (Capabilities) returns in Info - Bit 6: 1 = Trace Data Management.
+
+TraceManagement.png +
+Trace Data Management
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__TestInput__gr.js b/docs/DAP/html/group__DAP__TestInput__gr.js new file mode 100644 index 0000000..67f9082 --- /dev/null +++ b/docs/DAP/html/group__DAP__TestInput__gr.js @@ -0,0 +1,7 @@ +var group__DAP__TestInput__gr = +[ + [ "DAP_TI_Info", "group__DAP__TI__Info.html", null ], + [ "DAP_TI_Value", "group__DAP__TI__Value.html", null ], + [ "DAP_TI_Capture", "group__DAP__TI__Capture.html", null ], + [ "DAP_TI_TransferBlock", "group__DAP__TI__TransferBlock.html", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__Transfer.html b/docs/DAP/html/group__DAP__Transfer.html new file mode 100644 index 0000000..a991c45 --- /dev/null +++ b/docs/DAP/html/group__DAP__Transfer.html @@ -0,0 +1,190 @@ + + + + + +DAP_Transfer +CMSIS-DAP: DAP_Transfer + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_Transfer
+
+
+ +

Read/write single and multiple registers. +More...

+

Read/write single and multiple registers.

+

The DAP_Transfer Command reads or writes data to CoreSight registers. Each CoreSight register is accessed with a single 32-bit read or write. The CoreSight registers are addressed with DPBANKSEL/APBANKSEL and address lines A2, A3 (A0 = 0 and A1 = 0). This command executes several read/write operations on the selected DP/AP registers. The Transfer Data in the Response are in the order of the Transfer Request in the Command but might be shorter in case of communication failures. The data transfer is aborted on a communication error:

+
    +
  • Protocol Error
  • +
  • Target FAULT response
  • +
  • Target WAIT responses exceed configured value
  • +
  • Value Mismatch (Read Register with Value Match)
  • +
+

DAP_Transfer Command:

+
| BYTE | BYTE *****| BYTE **********| BYTE *************| WORD *********|
+
> 0x05 | DAP Index | Transfer Count | Transfer Request | Transfer Data |
+
|******|***********|****************|+++++++++++++++++++++++++++++++++++|
+
    +
  • DAP Index: Zero based device index of the selected JTAG device. For SWD mode the value is ignored.
  • +
  • Transfer Count: Number of transfers: 1 .. 255. For each transfer a Transfer Request BYTE is sent. Depending on the request an additional Transfer Data WORD is sent.
  • +
  • Transfer Request: Contains information about requested access from host debugger.
      +
    • Bit 0: APnDP: 0 = Debug Port (DP), 1 = Access Port (AP).
    • +
    • Bit 1: RnW: 0 = Write Register, 1 = Read Register.
    • +
    • Bit 2: A2 Register Address bit 2.
    • +
    • Bit 3: A3 Register Address bit 3.
    • +
    • Bit 4: Value Match (only valid for Read Register): 0 = Normal Read Register, 1 = Read Register with Value Match.
    • +
    • Bit 5: Match Mask (only valid for Write Register): 0 = Normal Write Register, 1 = Write Match Mask (instead of Register).
    • +
    • Bit 7: TD_TimeStamp request: 0 = No time stamp, 1 = Include time stamp value from Test Domain Timer before every Transfer Data word (restrictions see note).
    • +
    +
  • +
  • Transfer Data: register value or match value
      +
    • for Write Register transfer request: the register value for the CoreSight register.
    • +
    • for Match Mask transfer request: the match mask for the CoreSight register.
    • +
    • for Value Match transfer request: the match value of the CoreSight register.
    • +
    • no data is sent for other operations.
    • +
    +
  • +
+
Note
Transfer Request - Bit 7 (Time Stamp) cannot be combined with Bit 4 (Value Match) or Bit 5 (Match Mask).
+

DAP_Transfer Response:

+
| BYTE | BYTE **********| BYTE *************| WORD ********| WORD *********|
+
< 0x05 | Transfer Count | Transfer Response | TD_TimeStamp | Transfer Data |
+
|******|****************|*******************|//////////////|+++++++++++++++|
+
    +
  • Transfer Count: Number of transfers: 1 .. 255 that are executed.
  • +
  • Transfer Response: Contains information about last response from target Device.
      +
    • Bit 2..0: ACK (Acknowledge) value:
        +
      • 1 = OK (for SWD protocol), OK or FAULT (for JTAG protocol),
      • +
      • 2 = WAIT
      • +
      • 4 = FAULT
      • +
      • 7 = NO_ACK (no response from target)
      • +
      +
    • +
    • Bit 3: 1 = Protocol Error (SWD)
    • +
    • Bit 4: 1 = Value Mismatch (Read Register with Value Match)
    • +
    +
  • +
  • TD_TimeStamp: current Test Domain Timer value is added before each Transfer Data word when Transfer Request - bit 7: TD_TimeStamp request is set.
  • +
  • Transfer Data: register value or match value in the order of the Transfer Request.
      +
    • for Read Register transfer request: the register value of the CoreSight register.
    • +
    • no data is sent for other operations.
    • +
    +
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__TransferAbort.html b/docs/DAP/html/group__DAP__TransferAbort.html new file mode 100644 index 0000000..c4663aa --- /dev/null +++ b/docs/DAP/html/group__DAP__TransferAbort.html @@ -0,0 +1,137 @@ + + + + + +DAP_TransferAbort +CMSIS-DAP: DAP_TransferAbort + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_TransferAbort
+
+
+ +

Abort current Transfer. +More...

+

Abort current Transfer.

+

The DAP_TransferAbort Command aborts the current transfer. The command can be executed while DAP_Transfer or DAP_TransferBlock command is still in progress. The command is ignored if there is no transfer in progress. The command itself has no response, however the aborted DAP_Transfer or DAP_TransferBlock command will respond with information about the actually transferred data.

+

DAP_TransferAbort Command:

+
| BYTE |
+
> 0x07 |
+
|******|
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__TransferBlock.html b/docs/DAP/html/group__DAP__TransferBlock.html new file mode 100644 index 0000000..4c00898 --- /dev/null +++ b/docs/DAP/html/group__DAP__TransferBlock.html @@ -0,0 +1,183 @@ + + + + + +DAP_TransferBlock +CMSIS-DAP: DAP_TransferBlock + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_TransferBlock
+
+
+ +

Read/Write a block of data from/to a single register. +More...

+

Read/Write a block of data from/to a single register.

+

The DAP_TransferBlock Command read or write a data block to the same CoreSight register. A data block are multiple 32-bit values which are read or written from/to the same CoreSight register. The CoreSight register is addressed with DPBANKSEL/APBANKSEL and address lines A2, A3 (A0 = 0 and A1 = 0). The command can execute several read/write operations to a single DP/AP register.

+

The data transfer is aborted on a communication error:

+
    +
  • Protocol Error
  • +
  • Target FAULT response
  • +
  • Target WAIT responses exceed configured value
  • +
+

DAP_TransferBlock Command:

+
| BYTE | BYTE *****| SHORT**********| BYTE *************| WORD *********|
+
> 0x06 | DAP Index | Transfer Count | Transfer Request | Transfer Data |
+
|******|***********|****************|*******************|+++++++++++++++|
+
    +
  • DAP Index: Zero based device index of the selected JTAG device. For SWD mode the value is ignored.
  • +
  • Transfer Count: Number of transfers: 1 .. 65535.
  • +
  • Transfer Request: Contains information about requested access from host
      +
    • Bit 0: APnDP: 0 = DP (Debug Port), 1 = AP (Access Port)
    • +
    • Bit 1: RnW: 0 = Write Register, 1 = Read Register
    • +
    • Bit 2: A2 := Register Address bit 2
    • +
    • Bit 3: A3 := Register Address bit 3
    • +
    +
  • +
  • Transfer Data: register values
      +
    • for Write Register transfer request: the register values written to the CoreSight register.
    • +
    • no data is sent for Read Register operations.
    • +
    +
  • +
+

DAP_TransferBlock Response:

+
| BYTE | SHORT *********| BYTE *************| WORD *********|
+
< 0x06 | Transfer Count | Transfer Response | Transfer Data |
+
|******|****************|*******************|+++++++++++++++|
+
    +
  • DAP Index: Zero based device index of the selected JTAG device. For SWD mode the value is ignored.
  • +
  • Transfer Count: Number of transfers (1 .. 65535) that are executed.
  • +
  • Transfer Response: Contains information about last response from target
      +
    • Bit 2..0: ACK (Acknowledge) value:
        +
      • 1 = OK (for SWD protocol), OK or FAULT (for JTAG protocol),
      • +
      • 2 = WAIT
      • +
      • 4 = FAULT
      • +
      • 7 = NO_ACK (no response from target)
      • +
      +
    • +
    • Bit 3: Protocol Error (SWD)
    • +
    +
  • +
  • Transfer Data: register values
      +
    • no data is receive for Write Register operations.
    • +
    • for Read Register transfer request: the register values read from CoreSight register.
    • +
    +
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__TransferConfigure.html b/docs/DAP/html/group__DAP__TransferConfigure.html new file mode 100644 index 0000000..64d98c4 --- /dev/null +++ b/docs/DAP/html/group__DAP__TransferConfigure.html @@ -0,0 +1,154 @@ + + + + + +DAP_TransferConfigure +CMSIS-DAP: DAP_TransferConfigure + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_TransferConfigure
+
+
+ +

Configure Transfers. +More...

+

Configure Transfers.

+

The DAP_TransferConfigure Command sets parameters for DAP_Transfer and DAP_TransferBlock.

+

DAP_TransferConfigure Command:

+
| BYTE | BYTE ******** SHORT *****| SHORT ******|
+
> 0x04 | Idle Cycles | WAIT Retry | Match Retry |
+
|******|*************|************|*************|
+
    +
  • Idle Cycles: Number of extra idle cycles after each transfer.
  • +
  • WAIT Retry: Number of transfer retries after WAIT response.
  • +
  • Match Retry: Number of retries on reads with Value Match in DAP_Transfer. On value mismatch the Register is read again until its value matches or the Match Retry count exceeds.
    +
    retry = Match_Retry;
    +
    do {
    +
    if ((Register_Value & Match_Mask) == Match_Value) break;
    +
    } while (retry--);
    +
  • +
+

DAP_TransferConfigure Response:

+
| BYTE | BYTE **|
+
< 0x04 | Status |
+
|******|********|
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__USART__gr.html b/docs/DAP/html/group__DAP__USART__gr.html new file mode 100644 index 0000000..031da7f --- /dev/null +++ b/docs/DAP/html/group__DAP__USART__gr.html @@ -0,0 +1,134 @@ + + + + + +Connect SWO Trace +CMSIS-DAP: Connect SWO Trace + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Connect SWO Trace
+
+
+ +

Optional you may add a CMSIS-Driver USART to interface to SWO. +More...

+

Optional you may add a CMSIS-Driver USART to interface to SWO.

+

A CMSIS-Driver USART can be used to capture the trace output on the SWO pin using a UART RX input on the microcontroller. To use a UART for SWO capturing, it is required to set the #define SWO_UART to 1. Refer to CMSIS-DAP Debug Unit Information for more information.

+

The actual USART Driver instance is defined in the source file SWO.c using the #define USART_PORT. You may change this define with a compiler option.

+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__Validate__gr.html b/docs/DAP/html/group__DAP__Validate__gr.html new file mode 100644 index 0000000..11912ce --- /dev/null +++ b/docs/DAP/html/group__DAP__Validate__gr.html @@ -0,0 +1,137 @@ + + + + + +Validate Debug Unit +CMSIS-DAP: Validate Debug Unit + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Validate Debug Unit
+
+
+ +

A CMSIS-DAP conforming Debug Unit must be validated. +More...

+

A CMSIS-DAP conforming Debug Unit must be validated.

+

A CMSIS-DAP Debug Unit must be validate using the Keil MDK Debugger. A validation project for MDK is provided in the folder .\Validation\MDK. The project Blinky.uvproj is a "Blinky" application and needs to be adapted for the target hardware that is connected to the Debug Unit. Once the adaptation is complete, you may open a Command Prompt and call the batch file TestAll.bat optionally with the path to UV4.EXE. This should generate the following output.

+
+MDK_Validation.png +
+Validate Debug Unit using a target hardware and MDK
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__Vendor__gr.html b/docs/DAP/html/group__DAP__Vendor__gr.html new file mode 100644 index 0000000..47a9b05 --- /dev/null +++ b/docs/DAP/html/group__DAP__Vendor__gr.html @@ -0,0 +1,133 @@ + + + + + +CMSIS-DAP Vendor Commands +CMSIS-DAP: CMSIS-DAP Vendor Commands + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
CMSIS-DAP Vendor Commands
+
+
+ +

Extend CMSIS-DAP Firmware with commands. +More...

+

Extend CMSIS-DAP Firmware with commands.

+

The CMSIS-DAP Firmware may be extended with commands that are specific to a Debug Unit. Vendor Commands may implement additional functionality such as interfaces to serial printf-style communication. The RDDI-DAP interface offers the function CMSIS_DAP_Commands to exchange information with vendor-specific commands.

+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__WriteABORT.html b/docs/DAP/html/group__DAP__WriteABORT.html new file mode 100644 index 0000000..97d796c --- /dev/null +++ b/docs/DAP/html/group__DAP__WriteABORT.html @@ -0,0 +1,148 @@ + + + + + +DAP_WriteABORT +CMSIS-DAP: DAP_WriteABORT + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_WriteABORT
+
+
+ +

Write ABORT Register. +More...

+

Write ABORT Register.

+

The DAP_WriteABORT Command writes an abort request to the CoreSight ABORT register of the Target Device.

+

DAP_WriteABORT Command:

+
| BYTE | BYTE *****| WORD *|
+
> 0x08 | DAP Index | Abort |
+
|******|***********|*******|
+
    +
  • DAP Index: Zero based device index of the selected JTAG device. For SWD mode the value is ignored.
  • +
  • Abort: 32-bit value to write into the CoreSight ABORT register.
  • +
+

DAP_WriteABORT Response:

+
| BYTE | BYTE **|
+
< 0x08 | Status |
+
|******|********|
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__atomic__gr.html b/docs/DAP/html/group__DAP__atomic__gr.html new file mode 100644 index 0000000..34548c1 --- /dev/null +++ b/docs/DAP/html/group__DAP__atomic__gr.html @@ -0,0 +1,152 @@ + + + + + +Atomic Commands +CMSIS-DAP: Atomic Commands + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
Atomic Commands
+
+
+ +

Execute atomic commands. +More...

+ + + + + + + + +

+Content

 DAP_ExecuteCommands
 Execute multiple DAP commands from a single packet.
 
 DAP_QueueCommands
 Queue multiple DAP commands provided in a multiple packets.
 
+

Description

+

Execute atomic commands.

+

CMSIS-DAP command set is extended with two top level commands that allow the execution of multiple DAP commands further USB communication. Executing multiple CMSIS-DAP commands is typically a requirement at the reset time of some devices. The sequence after reset can be time critical and any USB communication would violate the available time window.

+ +

These two DAP commands are used to collect several other DAP commands before execution. Packet Size and Packet Count limitation (as reported via DAP_Info) must be respected by the debugger.

+
Note
The Atomic Commands are only available when DAP_Info with ID=0xF0 (Capabilities) returns in Info - Bit 4: 1 = Atomic Commands.
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__atomic__gr.js b/docs/DAP/html/group__DAP__atomic__gr.js new file mode 100644 index 0000000..a74fecc --- /dev/null +++ b/docs/DAP/html/group__DAP__atomic__gr.js @@ -0,0 +1,5 @@ +var group__DAP__atomic__gr = +[ + [ "DAP_ExecuteCommands", "group__DAP__ExecuteCommands__gr.html", null ], + [ "DAP_QueueCommands", "group__DAP__QueueCommands__gr.html", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__genCommands__gr.html b/docs/DAP/html/group__DAP__genCommands__gr.html new file mode 100644 index 0000000..2905f94 --- /dev/null +++ b/docs/DAP/html/group__DAP__genCommands__gr.html @@ -0,0 +1,168 @@ + + + + + +General Commands +CMSIS-DAP: General Commands + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
General Commands
+
+
+ +

Information and Control commands for the CMSIS-DAP Debug Unit. +More...

+ + + + + + + + + + + + + + + + + + + + + + + +

+Content

 DAP_Info
 Get Information about CMSIS-DAP Debug Unit.
 
 DAP_HostStatus
 Sent status information of the debugger to Debug Unit.
 
 DAP_Connect
 Connect to Device and selected DAP mode.
 
 DAP_Disconnect
 Disconnect from active Debug Port.
 
 DAP_WriteABORT
 Write ABORT Register.
 
 DAP_Delay
 Wait for specified delay.
 
 DAP_ResetTarget
 Reset Target with Device specific sequence.
 
+

Description

+

Information and Control commands for the CMSIS-DAP Debug Unit.

+

The General Commands allow to:

+
    +
  • Connect, disconnect, and identify the Debug Unit.
  • +
  • Control the Status LEDs of the Debug Unit.
  • +
  • Issue and hardware reset to the connected Device.
  • +
  • Terminate previous CMSIS-DAP Commands.
  • +
  • Wait for a specified time.
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__genCommands__gr.js b/docs/DAP/html/group__DAP__genCommands__gr.js new file mode 100644 index 0000000..877f585 --- /dev/null +++ b/docs/DAP/html/group__DAP__genCommands__gr.js @@ -0,0 +1,10 @@ +var group__DAP__genCommands__gr = +[ + [ "DAP_Info", "group__DAP__Info.html", null ], + [ "DAP_HostStatus", "group__DAP__HostStatus.html", null ], + [ "DAP_Connect", "group__DAP__Connect.html", null ], + [ "DAP_Disconnect", "group__DAP__Disconnect.html", null ], + [ "DAP_WriteABORT", "group__DAP__WriteABORT.html", null ], + [ "DAP_Delay", "group__DAP__Delay.html", null ], + [ "DAP_ResetTarget", "group__DAP__ResetTarget.html", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__jtag__gr.html b/docs/DAP/html/group__DAP__jtag__gr.html new file mode 100644 index 0000000..12416d1 --- /dev/null +++ b/docs/DAP/html/group__DAP__jtag__gr.html @@ -0,0 +1,154 @@ + + + + + +JTAG Commands +CMSIS-DAP: JTAG Commands + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
JTAG Commands
+
+
+ +

Detect and configure the JTAG device chain. +More...

+ + + + + + + + + + + +

+Content

 DAP_JTAG_Sequence
 Generate JTAG sequence TMS, TDI and capture TDO.
 
 DAP_JTAG_Configure
 Configure JTAG Chain.
 
 DAP_JTAG_IDCODE
 Read JTAG IDCODE.
 
+

Description

+

Detect and configure the JTAG device chain.

+

The JTAG Commands allow to:

+
    +
  • Detect the devices connect to the JTAG chain.
  • +
  • Configure the IR register length of each device on the JTAG chain.
  • +
  • Read the JTAG IDCODE value of each device on the JTAG chain.
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__jtag__gr.js b/docs/DAP/html/group__DAP__jtag__gr.js new file mode 100644 index 0000000..d578a9e --- /dev/null +++ b/docs/DAP/html/group__DAP__jtag__gr.js @@ -0,0 +1,6 @@ +var group__DAP__jtag__gr = +[ + [ "DAP_JTAG_Sequence", "group__DAP__JTAG__Sequence.html", null ], + [ "DAP_JTAG_Configure", "group__DAP__JTAG__Configure.html", null ], + [ "DAP_JTAG_IDCODE", "group__DAP__jtag__idcode.html", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__jtag__idcode.html b/docs/DAP/html/group__DAP__jtag__idcode.html new file mode 100644 index 0000000..99d0513 --- /dev/null +++ b/docs/DAP/html/group__DAP__jtag__idcode.html @@ -0,0 +1,148 @@ + + + + + +DAP_JTAG_IDCODE +CMSIS-DAP: DAP_JTAG_IDCODE + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
DAP_JTAG_IDCODE
+
+
+ +

Read JTAG IDCODE. +More...

+

Read JTAG IDCODE.

+

The DAP_JTAG_IDCODE Command request the JTAG IDCODE for the selected device on the JTAG chain.

+

DAP_JTAG_IDCODE Command:

+
| BYTE | BYTE ******|
+
> 0x16 | JTAG Index |
+
|******|************|
+
    +
  • JTAG Index: Zero based JTAG index of selected device.
  • +
+

DAP_JTAG_IDCODE Response:

+
| BYTE | BYTE **| WORD ***|
+
< 0x16 | Status | ID Code |
+
|******|********|*********|
+
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__swd__gr.html b/docs/DAP/html/group__DAP__swd__gr.html new file mode 100644 index 0000000..37b362a --- /dev/null +++ b/docs/DAP/html/group__DAP__swd__gr.html @@ -0,0 +1,146 @@ + + + + + +SWD Commands +CMSIS-DAP: SWD Commands + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
SWD Commands
+
+
+ +

Configure the parameters for SWD mode. +More...

+ + + + + + + + +

+Content

 DAP_SWD_Configure
 Configure SWD Protocol.
 
 DAP_SWD_Sequence
 Generate SWD sequence and output on SWDIO or capture input from SWDIO data.
 
+

Description

+

Configure the parameters for SWD mode.

+

The SWD Commands allow you to configure the parameters for the Serial Wire Debug (SWD) communication mode.

+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__swd__gr.js b/docs/DAP/html/group__DAP__swd__gr.js new file mode 100644 index 0000000..f4d9907 --- /dev/null +++ b/docs/DAP/html/group__DAP__swd__gr.js @@ -0,0 +1,5 @@ +var group__DAP__swd__gr = +[ + [ "DAP_SWD_Configure", "group__DAP__SWD__Configure.html", null ], + [ "DAP_SWD_Sequence", "group__DAP__SWD__Sequence.html", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__swj__gr.html b/docs/DAP/html/group__DAP__swj__gr.html new file mode 100644 index 0000000..b6c17cd --- /dev/null +++ b/docs/DAP/html/group__DAP__swj__gr.html @@ -0,0 +1,154 @@ + + + + + +Common SWD/JTAG Commands +CMSIS-DAP: Common SWD/JTAG Commands + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
Common SWD/JTAG Commands
+
+
+ +

Set SWD/JTAG clock and control/monitor SWD/JTAG I/O pins. +More...

+ + + + + + + + + + + +

+Content

 DAP_SWJ_Pins
 Control and monitor SWD/JTAG Pins.
 
 DAP_SWJ_Clock
 Select SWD/JTAG Clock.
 
 DAP_SWJ_Sequence
 Generate SWJ sequence SWDIO/TMS @SWCLK/TCK.
 
+

Description

+

Set SWD/JTAG clock and control/monitor SWD/JTAG I/O pins.

+

The Common SWD/JTAG Commands allow to:

+
    +
  • Read and Write the SWD/JTAG I/O pins including nRESET.
  • +
  • Configure the SWD/JTAG clock speed.
  • +
  • Generate a sequence on the SWD/JTAG I/O pins for SWD<->JTAG mode switch.
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__swj__gr.js b/docs/DAP/html/group__DAP__swj__gr.js new file mode 100644 index 0000000..2e30faf --- /dev/null +++ b/docs/DAP/html/group__DAP__swj__gr.js @@ -0,0 +1,6 @@ +var group__DAP__swj__gr = +[ + [ "DAP_SWJ_Pins", "group__DAP__SWJ__Pins.html", null ], + [ "DAP_SWJ_Clock", "group__DAP__SWJ__Clock.html", null ], + [ "DAP_SWJ_Sequence", "group__DAP__SWJ__Sequence.html", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__swo__gr.html b/docs/DAP/html/group__DAP__swo__gr.html new file mode 100644 index 0000000..8107391 --- /dev/null +++ b/docs/DAP/html/group__DAP__swo__gr.html @@ -0,0 +1,180 @@ + + + + + +SWO Commands +CMSIS-DAP: SWO Commands + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
SWO Commands
+
+
+ +

Configure the parameters for SWO mode. +More...

+ + + + + + + + + + + + + + + + + + + + + + + +

+Content

 DAP_SWO_Transport
 Set SWO transport mode.
 
 DAP_SWO_Mode
 Set SWO capture mode.
 
 DAP_SWO_Baudrate
 Set SWO baudrate.
 
 DAP_SWO_Control
 Control SWO trace data capture.
 
 DAP_SWO_Status
 Read SWO trace status.
 
 DAP_SWO_ExtendedStatus
 Read SWO trace extended status.
 
 DAP_SWO_Data
 Read SWO trace data.
 
+

Description

+

Configure the parameters for SWO mode.

+

CMSIS-DAP SWO (Serial Wire Output)

+

CMSIS-DAP (CoreSight Debug Access Port) specifies debug protocol and interface for devices with CoreSight Debug and Trace.

+
Note
The SWO Commands are only available when DAP_Info with ID=0xF0 (Capabilities) returns in Info - Bit 2: 1 = SWO UART or Bit 3: 1 = SWO Manchester.
+

The following extension adds support for trace over SWO (Serial Wire Output).

+

SWO add-on is a compatible extension of the existing CMSIS-DAP specification. Existing debugger implementations on PC do not require any modifications for debugging. They only need to be extended in order to support trace.

+

The following new commands are added:

+ +

Format of the new commands is specified below using CMSIS-DAP documentation style. Note: 16-bit values (SHORT) and 32-bit values (WORD) are encoded as little-endian.

+

The following existing commands are extended:

+ +
+
+ + + + diff --git a/docs/DAP/html/group__DAP__swo__gr.js b/docs/DAP/html/group__DAP__swo__gr.js new file mode 100644 index 0000000..2f53e26 --- /dev/null +++ b/docs/DAP/html/group__DAP__swo__gr.js @@ -0,0 +1,10 @@ +var group__DAP__swo__gr = +[ + [ "DAP_SWO_Transport", "group__DAP__SWO__Transport.html", null ], + [ "DAP_SWO_Mode", "group__DAP__SWO__Mode.html", null ], + [ "DAP_SWO_Baudrate", "group__DAP__SWO__Baudrate.html", null ], + [ "DAP_SWO_Control", "group__DAP__SWO__Control.html", null ], + [ "DAP_SWO_Status", "group__DAP__SWO__Status.html", null ], + [ "DAP_SWO_ExtendedStatus", "group__DAP__SWO__ExtendedStatus.html", null ], + [ "DAP_SWO_Data", "group__DAP__SWO__Data.html", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/group__DAP__transfer__gr.html b/docs/DAP/html/group__DAP__transfer__gr.html new file mode 100644 index 0000000..52b9ab9 --- /dev/null +++ b/docs/DAP/html/group__DAP__transfer__gr.html @@ -0,0 +1,157 @@ + + + + + +Transfer Commands +CMSIS-DAP: Transfer Commands + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+ +
+
Transfer Commands
+
+
+ +

Read and Writes to CoreSight registers. +More...

+ + + + + + + + + + + + + + +

+Content

 DAP_TransferConfigure
 Configure Transfers.
 
 DAP_Transfer
 Read/write single and multiple registers.
 
 DAP_TransferBlock
 Read/Write a block of data from/to a single register.
 
 DAP_TransferAbort
 Abort current Transfer.
 
+

Description

+

Read and Writes to CoreSight registers.

+

The Transfer Commands allow to:

+
    +
  • Configure the parameters for information exchange with CoreSight registers.
  • +
  • Transfer (read or write) a single data word or a data block with CoreSight registers.
  • +
  • Terminate an active data transfer.
  • +
+
+
+ + + + diff --git a/docs/DAP/html/group__DAP__transfer__gr.js b/docs/DAP/html/group__DAP__transfer__gr.js new file mode 100644 index 0000000..0dcf9cc --- /dev/null +++ b/docs/DAP/html/group__DAP__transfer__gr.js @@ -0,0 +1,7 @@ +var group__DAP__transfer__gr = +[ + [ "DAP_TransferConfigure", "group__DAP__TransferConfigure.html", null ], + [ "DAP_Transfer", "group__DAP__Transfer.html", null ], + [ "DAP_TransferBlock", "group__DAP__TransferBlock.html", null ], + [ "DAP_TransferAbort", "group__DAP__TransferAbort.html", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/index.html b/docs/DAP/html/index.html new file mode 100644 index 0000000..c032565 --- /dev/null +++ b/docs/DAP/html/index.html @@ -0,0 +1,188 @@ + + + + + +Firmware for CoreSight Debug Access Port +CMSIS-DAP: Firmware for CoreSight Debug Access Port + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Firmware for CoreSight Debug Access Port
+
+
+

CMSIS-DAP is a specification and a implementation of a Firmware that supports access to the CoreSight Debug Access Port (DAP).
+
+ The various Arm Cortex processors provide CoreSight Debug and Trace. CMSIS-DAP supports target Devices that contain one or more Cortex processors. A Device provides a Debug Access Port (DAP) typically either with a 5-pin JTAG or with a 2-pin Serial Wired Debug (SWD) interface that connects to a Debug Unit. CMSIS-DAP is the interface firmware for a Debug Unit that connects the Debug Port to USB. Debuggers that execute on a host computer connect via USB and the Debug Unit to the Device which runs the application software.

+
+CMSIS_DAP_INTERFACE.png +
+CMSIS-DAP Overview
+

Configuration of CMSIS-DAP Firmware

+

The CMSIS-DAP Firmware version 2 can be configured in two different USB interface modes:

+
    +
  • Version 1 configuration uses USB HID as interface to the host PC.
  • +
  • Version 2 configuration uses WinUSB as interface to the host PC and provides high-speed SWO trace streaming.
  • +
+

Benefits of CMSIS-DAP

+
    +
  • Provides a standardized interface for debuggers. Interfaces to many standard debuggers is available.
  • +
  • Access to CoreSight registers of all Cortex processor architectures (Cortex-A/R/M).
  • +
  • Connects via 5-pin JTAG or 2-pin Serial Wire Debug (SWD).
  • +
  • Supports multi-core debugging.
  • +
  • Supports Serial Wire Output of Cortex-M devices (new in CMSIS-DAP Version 1.1.0).
  • +
  • Easy to deploy to Debug Units based on Cortex-M microcontrollers.
  • +
  • Debug Unit may be integrated on an evaluation board.
  • +
  • USB using HID (Human Interface Device) driver class that avoids driver installation on host PC.
  • +
  • Supports time-critical JTAG or SWD command execution (new in CMSIS-DAP Version 1.10).
  • +
  • Supports Test Domain Timer for time measurement using the debug unit (new in CMSIS-DAP Version 1.2.0)
  • +
+

CMSIS-DAP Firmware

+

The CMSIS-DAP Firmware is provided as source code and is fully configurable to a new Debug Unit. A source code template and several reference implementations for popular Debug Units are provided. Refer to Firmware Configuration for more information.

+

The CMSIS-DAP Software Stack is composed of the following components:

+
    +
  • CMSIS-DAP Firmware that interfaces to JTAG or SWD Debug pins using standard I/O pins of the Cortex-M device.
  • +
  • CMSIS-Driver USART that connects the UART of the Cortex-M device to the SWO output from the target.
  • +
  • USB Communication Stack that interfaces to the USB Port of the Host Computer using the HID or custom class.
  • +
  • The USB Device middleware may require CMSIS-RTOS and a CMSIS-Driver USB.
  • +
+
+CMSIS_DAP_SWStack.png +
+CMSIS-DAP Software Stack
+

In the examples provided the MDK Version 5 USB Communication Stack has been used. However it is possible to use alternative USB stacks instead.

+

The CMSIS-DAP Firmware is provided in the following directory structure.

+ + + + + + + + + + + + + +
Directory Description
.\CMSIS\DAP\Firmware\Config CMSIS-DAP Firmware configuration
.\CMSIS\DAP\Firmware\Examples CMSIS-DAP Firmware adapted to various Debug Units
.\CMSIS\DAP\Firmware\Include CMSIS-DAP Firmware header file
.\CMSIS\DAP\Firmware\Source CMSIS-DAP Firmware source code
.\CMSIS\DAP\Firmware\Template Interface Templates for MDK Version 5 middleware
+

Debug Access

+
Note
Arm plans to provide the RDDI-DAP Access DLL that connects a debugger to the CMSIS-DAP Firmware. However as the DAP registers are standard in all Cortex devices, the debug access is well understood by the industry.
+

Validation

+

CMSIS-DAP compliant Debug Units must be validated using the scripts provided in Validate Debug Unit.

+
+
+
+ + + + diff --git a/docs/DAP/html/jquery.js b/docs/DAP/html/jquery.js new file mode 100644 index 0000000..3db33e6 --- /dev/null +++ b/docs/DAP/html/jquery.js @@ -0,0 +1,72 @@ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType; +if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1 +},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av); +ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length; +if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b +})}})(window); +/*! + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null; +p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + +
+
+
Reference
+
+
+
Here is a list of all modules:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
oFirmware ConfigurationCMSIS-DAP is designed for Debug Units with Cortex-M microcontroller
|oDebug Unit ProcessorCMSIS-DAP Firmware runs on Debug Units with a Cortex-M microcontroller
|oConfigure I/O Ports and Debug UnitDAP_config.h configures I/O ports and Debug Unit hardware parameters
||oCMSIS-DAP Debug Unit InformationProvides definitions about the hardware and configuration of the Debug Unit
||oCMSIS-DAP Hardware I/O Pin AccessStandard I/O Pins of the CMSIS-DAP Hardware Debug Port support standard JTAG mode and Serial Wire Debug (SWD) mode
||oCMSIS-DAP Hardware Status LEDsCMSIS-DAP Hardware may provide LEDs that indicate the status of the CMSIS-DAP Debug Unit
||oCMSIS-DAP TimestampAccess function for Test Domain Timer
||\CMSIS-DAP InitializationCMSIS-DAP Hardware I/O and LED Pins are initialized with the function DAP_SETUP
|oConfigure USB PeripheralCMSIS-DAP Firmware communicates via an USB interface to host computer
|\Flash Program FirmwareThe CMSIS-DAP Firmware is programmed into Flash ROM of a Debug Unit
oConnect SWO TraceOptional you may add a CMSIS-Driver USART to interface to SWO
oValidate Debug UnitA CMSIS-DAP conforming Debug Unit must be validated
oCMSIS-DAP CommandsCommands between Debug Unit and host computer
|oGeneral CommandsInformation and Control commands for the CMSIS-DAP Debug Unit
||oDAP_InfoGet Information about CMSIS-DAP Debug Unit
||oDAP_HostStatusSent status information of the debugger to Debug Unit
||oDAP_ConnectConnect to Device and selected DAP mode
||oDAP_DisconnectDisconnect from active Debug Port
||oDAP_WriteABORTWrite ABORT Register
||oDAP_DelayWait for specified delay
||\DAP_ResetTargetReset Target with Device specific sequence
|oCommon SWD/JTAG CommandsSet SWD/JTAG clock and control/monitor SWD/JTAG I/O pins
||oDAP_SWJ_PinsControl and monitor SWD/JTAG Pins
||oDAP_SWJ_ClockSelect SWD/JTAG Clock
||\DAP_SWJ_SequenceGenerate SWJ sequence SWDIO/TMS @SWCLK/TCK
|oSWD CommandsConfigure the parameters for SWD mode
||oDAP_SWD_ConfigureConfigure SWD Protocol
||\DAP_SWD_SequenceGenerate SWD sequence and output on SWDIO or capture input from SWDIO data
|oSWO CommandsConfigure the parameters for SWO mode
||oDAP_SWO_TransportSet SWO transport mode
||oDAP_SWO_ModeSet SWO capture mode
||oDAP_SWO_BaudrateSet SWO baudrate
||oDAP_SWO_ControlControl SWO trace data capture
||oDAP_SWO_StatusRead SWO trace status
||oDAP_SWO_ExtendedStatusRead SWO trace extended status
||\DAP_SWO_DataRead SWO trace data
|oJTAG CommandsDetect and configure the JTAG device chain
||oDAP_JTAG_SequenceGenerate JTAG sequence TMS, TDI and capture TDO
||oDAP_JTAG_ConfigureConfigure JTAG Chain
||\DAP_JTAG_IDCODERead JTAG IDCODE
|oTransfer CommandsRead and Writes to CoreSight registers
||oDAP_TransferConfigureConfigure Transfers
||oDAP_TransferRead/write single and multiple registers
||oDAP_TransferBlockRead/Write a block of data from/to a single register
||\DAP_TransferAbortAbort current Transfer
|oAtomic CommandsExecute atomic commands
||oDAP_ExecuteCommandsExecute multiple DAP commands from a single packet
||\DAP_QueueCommandsQueue multiple DAP commands provided in a multiple packets
|\Response StatusStatus Information in Response Data
\CMSIS-DAP Vendor CommandsExtend CMSIS-DAP Firmware with commands
+ + + + + + + diff --git a/docs/DAP/html/modules.js b/docs/DAP/html/modules.js new file mode 100644 index 0000000..4def91c --- /dev/null +++ b/docs/DAP/html/modules.js @@ -0,0 +1,8 @@ +var modules = +[ + [ "Firmware Configuration", "group__DAP__Config__gr.html", "group__DAP__Config__gr" ], + [ "Connect SWO Trace", "group__DAP__USART__gr.html", null ], + [ "Validate Debug Unit", "group__DAP__Validate__gr.html", null ], + [ "CMSIS-DAP Commands", "group__DAP__Commands__gr.html", "group__DAP__Commands__gr" ], + [ "CMSIS-DAP Vendor Commands", "group__DAP__Vendor__gr.html", null ] +]; \ No newline at end of file diff --git a/docs/DAP/html/nav_f.png b/docs/DAP/html/nav_f.png new file mode 100644 index 0000000..a8f400a Binary files /dev/null and b/docs/DAP/html/nav_f.png differ diff --git a/docs/DAP/html/nav_g.png b/docs/DAP/html/nav_g.png new file mode 100644 index 0000000..2093a23 Binary files /dev/null and b/docs/DAP/html/nav_g.png differ diff --git a/docs/DAP/html/nav_h.png b/docs/DAP/html/nav_h.png new file mode 100644 index 0000000..b6c7f01 Binary files /dev/null and b/docs/DAP/html/nav_h.png differ diff --git a/docs/DAP/html/navtree.css b/docs/DAP/html/navtree.css new file mode 100644 index 0000000..41a9cb9 --- /dev/null +++ b/docs/DAP/html/navtree.css @@ -0,0 +1,143 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:#fff; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + background-color: #FAFAFF; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: 250px; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background:url("ftv2splitbar.png") repeat scroll right center transparent; + cursor:e-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/docs/DAP/html/navtree.js b/docs/DAP/html/navtree.js new file mode 100644 index 0000000..05fcda2 --- /dev/null +++ b/docs/DAP/html/navtree.js @@ -0,0 +1,531 @@ +var NAVTREE = +[ + [ "CMSIS-DAP", "index.html", [ + [ "Firmware for CoreSight Debug Access Port", "index.html", null ], + [ "Revision History of CMSIS-DAP", "dap_revisionHistory.html", null ], + [ "Reference", "modules.html", "modules" ] + ] ] +]; + +var NAVTREEINDEX = +[ +"dap_revisionHistory.html" +]; + +var SYNCONMSG = 'click to disable panel synchronisation'; +var SYNCOFFMSG = 'click to enable panel synchronisation'; +var SYNCONMSG = 'click to disable panel synchronisation'; +var SYNCOFFMSG = 'click to enable panel synchronisation'; +var navTreeSubIndices = new Array(); + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + if ($.browser.msie && $.browser.version<=8) { + // script.onload does not work with older versions of IE + script.onreadystatechange = function() { + if (script.readyState=='complete' || script.readyState=='loaded') { + func(); if (show) showRoot(); + } + } + } + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("img"); + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.width = 16; + imgNode.height = 22; + imgNode.border = 0; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.src = node.relpath+"ftv2pnode.png"; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + imgNode.src = node.relpath+"ftv2pnode.png"; + } else { + var span = document.createElement("span"); + span.style.display = 'inline-block'; + span.style.width = 16*(level+1)+'px'; + span.style.height = '22px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + if (anchor.parent().attr('class')=='memItemLeft' || + anchor.parent().attr('class')=='fieldtype' || + anchor.parent().is(':header')) + { + pos = anchor.parent().position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath($(location).attr('pathname')); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } if (imm || ($.browser.msie && $.browser.version>8)) { + // somehow slideDown jumps to the start of tree for IE9 :-( + $(node.getChildrenUL()).show(); + } else { + $(node.getChildrenUL()).slideDown("fast"); + } + if (node.isLast) { + node.plus_img.src = node.relpath+"ftv2mlastnode.png"; + } else { + node.plus_img.src = node.relpath+"ftv2mnode.png"; + } + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = $(location).attr('hash'); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+ + window.location.hash.substring(1)+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parents().slice(2).prop('tagName')=='TR') { + glowEffect(anchor.parents('div.memitem'),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + gotoAnchor(anchor,aname,false); +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath($(location).attr('pathname'))+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + if (node.isLast) { + node.plus_img.src = node.relpath+"ftv2mlastnode.png"; + } else { + node.plus_img.src = node.relpath+"ftv2mnode.png"; + } + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1]; + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + //root=root.replace(/_source\./,'.'); // source link to doc link + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2($(location).attr('pathname'))+$(location).attr('hash')); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("img"); + o.node.plus_img.src = relpath+"ftv2pnode.png"; + o.node.plus_img.width = 16; + o.node.plus_img.height = 22; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + $(window).load(function(){ + navTo(o,toroot,window.location.hash,relpath); + showRoot(); + }); + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath($(location).attr('pathname'))+':'+ + $(location).attr('hash').substring(1); + a=$('.item a[class$="'+clslink+'"]'); + } + if (a==null || !$(a).parent().parent().hasClass('selected')){ + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + } + var link=stripPath2($(location).attr('pathname')); + navTo(o,link,$(location).attr('hash'),relpath); + } else if (!animationInProgress) { + $('#doc-content').scrollTop(0); + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + navTo(o,toroot,window.location.hash,relpath); + } + }) +} + diff --git a/docs/DAP/html/navtreeindex0.js b/docs/DAP/html/navtreeindex0.js new file mode 100644 index 0000000..1b6e24e --- /dev/null +++ b/docs/DAP/html/navtreeindex0.js @@ -0,0 +1,104 @@ +var NAVTREEINDEX0 = +{ +"dap_revisionHistory.html":[1], +"group__DAP__Commands__gr.html":[2,3], +"group__DAP__ConfigFlash__gr.html":[2,0,3], +"group__DAP__ConfigIO__gr.html":[2,0,1], +"group__DAP__ConfigMCU__gr.html":[2,0,0], +"group__DAP__ConfigUSB__gr.html":[2,0,2], +"group__DAP__ConfigUSB__gr.html#USBHID":[2,0,2,0], +"group__DAP__ConfigUSB__gr.html#WinUSB":[2,0,2,1], +"group__DAP__Config__Debug__gr.html":[2,0,1,0], +"group__DAP__Config__Debug__gr.html#ga03ed6a5aae34f4379ea97435122f83dd":[2,0,1,0,5], +"group__DAP__Config__Debug__gr.html#ga119c70409a24e3a8bb35df07dffeb8c8":[2,0,1,0,8], +"group__DAP__Config__Debug__gr.html#ga213ee3d1501adeca4c9c660072922c7e":[2,0,1,0,10], +"group__DAP__Config__Debug__gr.html#ga3bbd310146b348db48a842ee804a0adf":[2,0,1,0,3], +"group__DAP__Config__Debug__gr.html#ga512016e5f1966a8fd45b3f1a81ba5b8f":[2,0,1,0,0], +"group__DAP__Config__Debug__gr.html#ga5d89633a43ee3296e1754c7392ad856e":[2,0,1,0,9], +"group__DAP__Config__Debug__gr.html#ga698a5a4ebd84335134a35e74848d2734":[2,0,1,0,15], +"group__DAP__Config__Debug__gr.html#ga792651aa4035a7ad712c6bb201db8a6a":[2,0,1,0,14], +"group__DAP__Config__Debug__gr.html#ga7b875652fd4e380af4d419bc2878ab33":[2,0,1,0,17], +"group__DAP__Config__Debug__gr.html#ga89462514881c12c1508395050ce160eb":[2,0,1,0,1], +"group__DAP__Config__Debug__gr.html#ga947f60d7e5382cefe3087ad1fb46b13b":[2,0,1,0,16], +"group__DAP__Config__Debug__gr.html#gaa28bb1da2661291634c4a8fb3e227404":[2,0,1,0,6], +"group__DAP__Config__Debug__gr.html#gab29200a0988c7d1454f63661a8450dbf":[2,0,1,0,4], +"group__DAP__Config__Debug__gr.html#gab52710df89c3e3c19de577c638f954ea":[2,0,1,0,2], +"group__DAP__Config__Debug__gr.html#gad19240f209f055db7d70cb5eb2431d31":[2,0,1,0,13], +"group__DAP__Config__Debug__gr.html#gad52ec88278b7b3ccbdcc10359dd8d0a8":[2,0,1,0,18], +"group__DAP__Config__Debug__gr.html#gaf0d60b30fb0eef2d249bc89a6e454ab6":[2,0,1,0,12], +"group__DAP__Config__Debug__gr.html#gaf886ab35e52d1ff2935351817786c8af":[2,0,1,0,7], +"group__DAP__Config__Debug__gr.html#gafd6f450a10f4e03757388e00ea56906f":[2,0,1,0,11], +"group__DAP__Config__Initialization__gr.html":[2,0,1,4], +"group__DAP__Config__Initialization__gr.html#ga6d4656af10c47ec0d6c0389be2dbb4bb":[2,0,1,4,0], +"group__DAP__Config__Initialization__gr.html#gaa0feceaeee69d69927d8a9beb0272dd7":[2,0,1,4,1], +"group__DAP__Config__LEDs__gr.html":[2,0,1,2], +"group__DAP__Config__LEDs__gr.html#ga27408c1c7010aa394abdcf0c85d7b798":[2,0,1,2,0], +"group__DAP__Config__LEDs__gr.html#gaa27ef99d16e3e68759adf1e6cb016e50":[2,0,1,2,1], +"group__DAP__Config__PortIO__gr.html":[2,0,1,1], +"group__DAP__Config__PortIO__gr.html#ga037d02e221d71916a83349d6572bf91d":[2,0,1,1,17], +"group__DAP__Config__PortIO__gr.html#ga04aa6eb6186f50bb1ea7d991870f8670":[2,0,1,1,11], +"group__DAP__Config__PortIO__gr.html#ga08369d48fb874acdfb40726edaa3d147":[2,0,1,1,19], +"group__DAP__Config__PortIO__gr.html#ga0c100894fc532bc05fc81f4128e06e23":[2,0,1,1,8], +"group__DAP__Config__PortIO__gr.html#ga130df1a24eef09b9e250e7e328f06e50":[2,0,1,1,10], +"group__DAP__Config__PortIO__gr.html#ga190b2403a1bc0dc9a94b70622ed9de41":[2,0,1,1,3], +"group__DAP__Config__PortIO__gr.html#ga2cea243a2dbbece100f15a7f1fb04e5c":[2,0,1,1,14], +"group__DAP__Config__PortIO__gr.html#ga401f5879824966071ba05fb1b4102626":[2,0,1,1,0], +"group__DAP__Config__PortIO__gr.html#ga43481ea1fcc2e389761ccb78bf76b891":[2,0,1,1,6], +"group__DAP__Config__PortIO__gr.html#ga4873c485ca5e49efbb218f4f80a59a17":[2,0,1,1,9], +"group__DAP__Config__PortIO__gr.html#ga6873b9000f9ec322626ecc06664fb229":[2,0,1,1,7], +"group__DAP__Config__PortIO__gr.html#ga9dcba97c6779b70dca02e51a36696a61":[2,0,1,1,4], +"group__DAP__Config__PortIO__gr.html#gaac7a2af102cc9fa9358d507c11cf9241":[2,0,1,1,13], +"group__DAP__Config__PortIO__gr.html#gabdce264d0e78ce31bcb2e91f97e49b2a":[2,0,1,1,2], +"group__DAP__Config__PortIO__gr.html#gace11527334bc4453e8407e44fc58f619":[2,0,1,1,16], +"group__DAP__Config__PortIO__gr.html#gacfe405b75aefcdf7c06b2b426595ea0a":[2,0,1,1,1], +"group__DAP__Config__PortIO__gr.html#gad40bb9c760000dfda7c533d63af3b4fa":[2,0,1,1,15], +"group__DAP__Config__PortIO__gr.html#gaf127becf6c639beff822f83fbdef7761":[2,0,1,1,12], +"group__DAP__Config__PortIO__gr.html#gaf31b342bc0fc5ad3669f43888466db61":[2,0,1,1,18], +"group__DAP__Config__PortIO__gr.html#gafc133887a94442c3bc4424909dff8512":[2,0,1,1,5], +"group__DAP__Config__Timestamp__gr.html":[2,0,1,3], +"group__DAP__Config__Timestamp__gr.html#gaf9bdc40d3a256fc2cc4d26b295993d9c":[2,0,1,3,0], +"group__DAP__Config__gr.html":[2,0], +"group__DAP__Connect.html":[2,3,0,2], +"group__DAP__Delay.html":[2,3,0,5], +"group__DAP__Disconnect.html":[2,3,0,3], +"group__DAP__ExecuteCommands__gr.html":[2,3,6,0], +"group__DAP__HostStatus.html":[2,3,0,1], +"group__DAP__Info.html":[2,3,0,0], +"group__DAP__JTAG__Configure.html":[2,3,4,1], +"group__DAP__JTAG__Sequence.html":[2,3,4,0], +"group__DAP__QueueCommands__gr.html":[2,3,6,1], +"group__DAP__ResetTarget.html":[2,3,0,6], +"group__DAP__Response__Status.html":[2,3,7], +"group__DAP__SWD__Configure.html":[2,3,2,0], +"group__DAP__SWD__Sequence.html":[2,3,2,1], +"group__DAP__SWJ__Clock.html":[2,3,1,1], +"group__DAP__SWJ__Pins.html":[2,3,1,0], +"group__DAP__SWJ__Sequence.html":[2,3,1,2], +"group__DAP__SWO__Baudrate.html":[2,3,3,2], +"group__DAP__SWO__Control.html":[2,3,3,3], +"group__DAP__SWO__Data.html":[2,3,3,6], +"group__DAP__SWO__ExtendedStatus.html":[2,3,3,5], +"group__DAP__SWO__Mode.html":[2,3,3,1], +"group__DAP__SWO__Status.html":[2,3,3,4], +"group__DAP__SWO__Transport.html":[2,3,3,0], +"group__DAP__Transfer.html":[2,3,5,1], +"group__DAP__TransferAbort.html":[2,3,5,3], +"group__DAP__TransferBlock.html":[2,3,5,2], +"group__DAP__TransferConfigure.html":[2,3,5,0], +"group__DAP__USART__gr.html":[2,1], +"group__DAP__Validate__gr.html":[2,2], +"group__DAP__Vendor__gr.html":[2,4], +"group__DAP__WriteABORT.html":[2,3,0,4], +"group__DAP__atomic__gr.html":[2,3,6], +"group__DAP__genCommands__gr.html":[2,3,0], +"group__DAP__jtag__gr.html":[2,3,4], +"group__DAP__jtag__idcode.html":[2,3,4,2], +"group__DAP__swd__gr.html":[2,3,2], +"group__DAP__swj__gr.html":[2,3,1], +"group__DAP__swo__gr.html":[2,3,3], +"group__DAP__transfer__gr.html":[2,3,5], +"index.html":[0], +"index.html":[], +"modules.html":[2], +"pages.html":[] +}; diff --git a/docs/DAP/html/open.png b/docs/DAP/html/open.png new file mode 100644 index 0000000..3c4e2e0 Binary files /dev/null and b/docs/DAP/html/open.png differ diff --git a/docs/DAP/html/pages.html b/docs/DAP/html/pages.html new file mode 100644 index 0000000..71b4a27 --- /dev/null +++ b/docs/DAP/html/pages.html @@ -0,0 +1,133 @@ + + + + + +Usage and Description +CMSIS-DAP: Usage and Description + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
CMSIS-DAP +  Version 2.0.0 +
+
Interface Firmware for CoreSight Debug Access Port
+
+
+ +
+
    + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + +
+ +
+ +
+
+
Usage and Description
+
+
+
Here is a list of all related documentation pages:
+
+
+ + + + diff --git a/docs/DAP/html/printComponentTabs.js b/docs/DAP/html/printComponentTabs.js new file mode 100644 index 0000000..8afdb6b --- /dev/null +++ b/docs/DAP/html/printComponentTabs.js @@ -0,0 +1,39 @@ +var strgURL = location.pathname; // path of current component + +// constuctor for the array of objects +function tabElement(id, folderName, tabTxt ) { + this.id = id; // elementID as needed in html; + this.folderName = folderName; // folder name of the component + this.tabTxt = tabTxt; // Text displayed as menu on the web + this.currentListItem = '
  • ' + this.tabTxt + '
  • '; + this.listItem = '
  • ' + this.tabTxt + '
  • '; +}; + +// array of objects +var arr = []; + +// fill array + arr.push( new tabElement( "GEN", "/General/html/", "General") ); + arr.push( new tabElement( "CORE_A", "/Core_A/html/", "CMSIS-Core(A)") ); + arr.push( new tabElement( "CORE_M", "/Core/html/", "CMSIS-Core(M)") ); + arr.push( new tabElement( "DRV", "/Driver/html/", "Driver") ); + arr.push( new tabElement( "DSP", "/DSP/html/", "DSP") ); + arr.push( new tabElement( "NN", "/NN/html/", "NN") ); + arr.push( new tabElement( "RTOSv1", "/RTOS/html/", "RTOS v1") ); + arr.push( new tabElement( "RTOSv2", "/RTOS2/html/", "RTOS v2") ); + arr.push( new tabElement( "PACK", "/Pack/html/", "Pack") ); + arr.push( new tabElement( "SVD", "/SVD/html/", "SVD") ); + arr.push( new tabElement( "DAP", "/DAP/html/", "DAP") ); + arr.push( new tabElement( "ZONE", "/Zone/html/", "Zone") ); + +// write tabs +// called from the header file. +function writeComponentTabs() { + for ( var i=0; i < arr.length; i++ ) { + if (strgURL.search(arr[i].folderName) > 0) { // if this is the current folder + document.write(arr[i].currentListItem); // then print and hightlight the tab + } else { + document.write(arr[i].listItem); // else, print the tab + } + } +}; diff --git a/docs/DAP/html/resize.js b/docs/DAP/html/resize.js new file mode 100644 index 0000000..304fcb6 --- /dev/null +++ b/docs/DAP/html/resize.js @@ -0,0 +1,97 @@ +var cookie_namespace = 'doxygen'; +var sidenav,navtree,content,header; + +function readCookie(cookie) +{ + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) + { + var index = document.cookie.indexOf(myCookie); + if (index != -1) + { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) + { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; +} + +function writeCookie(cookie, val, expiration) +{ + if (val==undefined) return; + if (expiration == null) + { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; +} + +function resizeWidth() +{ + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth, null); +} + +function restoreWidth(navWidth) +{ + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+6+"px"}); + sidenav.css({width:navWidth + "px"}); +} + +function resizeHeight() +{ + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px",top: headerHeight+"px"}); +} + +function initResizable() +{ + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(window).resize(function() { resizeHeight(); }); + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(document).bind('touchmove',function(e){ + var device = navigator.userAgent.toLowerCase(); + var ios = device.match(/(iphone|ipod|ipad)/); + if (ios) { + try { + var target = e.target; + while (target) { + if ($(target).css('-webkit-overflow-scrolling')=='touch') return; + target = target.parentNode; + } + e.preventDefault(); + } catch(err) { + e.preventDefault(); + } + } + }); +} + + diff --git a/docs/DAP/html/search/all_0.html b/docs/DAP/html/search/all_0.html new file mode 100644 index 0000000..17b6da8 --- /dev/null +++ b/docs/DAP/html/search/all_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/all_0.js b/docs/DAP/html/search/all_0.js new file mode 100644 index 0000000..249099b --- /dev/null +++ b/docs/DAP/html/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['atomic_20commands',['Atomic Commands',['../group__DAP__atomic__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/all_1.html b/docs/DAP/html/search/all_1.html new file mode 100644 index 0000000..e290644 --- /dev/null +++ b/docs/DAP/html/search/all_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/all_1.js b/docs/DAP/html/search/all_1.js new file mode 100644 index 0000000..d7ec575 --- /dev/null +++ b/docs/DAP/html/search/all_1.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['cpu_5fclock',['CPU_CLOCK',['../group__DAP__Config__Debug__gr.html#ga512016e5f1966a8fd45b3f1a81ba5b8f',1,'DAP_config.h']]], + ['cmsis_2ddap_20commands',['CMSIS-DAP Commands',['../group__DAP__Commands__gr.html',1,'']]], + ['cmsis_2ddap_20debug_20unit_20information',['CMSIS-DAP Debug Unit Information',['../group__DAP__Config__Debug__gr.html',1,'']]], + ['cmsis_2ddap_20initialization',['CMSIS-DAP Initialization',['../group__DAP__Config__Initialization__gr.html',1,'']]], + ['cmsis_2ddap_20hardware_20status_20leds',['CMSIS-DAP Hardware Status LEDs',['../group__DAP__Config__LEDs__gr.html',1,'']]], + ['cmsis_2ddap_20hardware_20i_2fo_20pin_20access',['CMSIS-DAP Hardware I/O Pin Access',['../group__DAP__Config__PortIO__gr.html',1,'']]], + ['cmsis_2ddap_20timestamp',['CMSIS-DAP Timestamp',['../group__DAP__Config__Timestamp__gr.html',1,'']]], + ['configure_20i_2fo_20ports_20and_20debug_20unit',['Configure I/O Ports and Debug Unit',['../group__DAP__ConfigIO__gr.html',1,'']]], + ['configure_20usb_20peripheral',['Configure USB Peripheral',['../group__DAP__ConfigUSB__gr.html',1,'']]], + ['common_20swd_2fjtag_20commands',['Common SWD/JTAG Commands',['../group__DAP__swj__gr.html',1,'']]], + ['connect_20swo_20trace',['Connect SWO Trace',['../group__DAP__USART__gr.html',1,'']]], + ['cmsis_2ddap_20vendor_20commands',['CMSIS-DAP Vendor Commands',['../group__DAP__Vendor__gr.html',1,'']]], + ['communication_20via_20usb_20hid',['Communication via USB HID',['../group__DAP__ConfigUSB__gr.html',1,'']]], + ['communication_20via_20winusb',['Communication via WinUSB',['../group__DAP__ConfigUSB__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/all_2.html b/docs/DAP/html/search/all_2.html new file mode 100644 index 0000000..95ded12 --- /dev/null +++ b/docs/DAP/html/search/all_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/all_2.js b/docs/DAP/html/search/all_2.js new file mode 100644 index 0000000..c767009 --- /dev/null +++ b/docs/DAP/html/search/all_2.js @@ -0,0 +1,43 @@ +var searchData= +[ + ['debug_20unit_20processor',['Debug Unit Processor',['../group__DAP__ConfigMCU__gr.html',1,'']]], + ['dap_5fconnect',['DAP_Connect',['../group__DAP__Connect.html',1,'']]], + ['dap_5fdefault_5fport',['DAP_DEFAULT_PORT',['../group__DAP__Config__Debug__gr.html#ga89462514881c12c1508395050ce160eb',1,'DAP_config.h']]], + ['dap_5fdefault_5fswj_5fclock',['DAP_DEFAULT_SWJ_CLOCK',['../group__DAP__Config__Debug__gr.html#gab52710df89c3e3c19de577c638f954ea',1,'DAP_config.h']]], + ['dap_5fdelay',['DAP_Delay',['../group__DAP__Delay.html',1,'']]], + ['dap_5fdisconnect',['DAP_Disconnect',['../group__DAP__Disconnect.html',1,'']]], + ['dap_5fexecutecommands',['DAP_ExecuteCommands',['../group__DAP__ExecuteCommands__gr.html',1,'']]], + ['dap_5fgetproductstring',['DAP_GetProductString',['../group__DAP__Config__Debug__gr.html#ga947f60d7e5382cefe3087ad1fb46b13b',1,'DAP_config.h']]], + ['dap_5fgetsernumstring',['DAP_GetSerNumString',['../group__DAP__Config__Debug__gr.html#ga7b875652fd4e380af4d419bc2878ab33',1,'DAP_config.h']]], + ['dap_5fgetvendorstring',['DAP_GetVendorString',['../group__DAP__Config__Debug__gr.html#gad52ec88278b7b3ccbdcc10359dd8d0a8',1,'DAP_config.h']]], + ['dap_5fhoststatus',['DAP_HostStatus',['../group__DAP__HostStatus.html',1,'']]], + ['dap_5finfo',['DAP_Info',['../group__DAP__Info.html',1,'']]], + ['dap_5fjtag',['DAP_JTAG',['../group__DAP__Config__Debug__gr.html#ga3bbd310146b348db48a842ee804a0adf',1,'DAP_config.h']]], + ['dap_5fjtag_5fconfigure',['DAP_JTAG_Configure',['../group__DAP__JTAG__Configure.html',1,'']]], + ['dap_5fjtag_5fdev_5fcnt',['DAP_JTAG_DEV_CNT',['../group__DAP__Config__Debug__gr.html#gab29200a0988c7d1454f63661a8450dbf',1,'DAP_config.h']]], + ['dap_5fjtag_5fidcode',['DAP_JTAG_IDCODE',['../group__DAP__jtag__idcode.html',1,'']]], + ['dap_5fjtag_5fsequence',['DAP_JTAG_Sequence',['../group__DAP__JTAG__Sequence.html',1,'']]], + ['dap_5fpacket_5fcount',['DAP_PACKET_COUNT',['../group__DAP__Config__Debug__gr.html#ga03ed6a5aae34f4379ea97435122f83dd',1,'DAP_config.h']]], + ['dap_5fpacket_5fsize',['DAP_PACKET_SIZE',['../group__DAP__Config__Debug__gr.html#gaa28bb1da2661291634c4a8fb3e227404',1,'DAP_config.h']]], + ['dap_5fqueuecommands',['DAP_QueueCommands',['../group__DAP__QueueCommands__gr.html',1,'']]], + ['dap_5fresettarget',['DAP_ResetTarget',['../group__DAP__ResetTarget.html',1,'']]], + ['dap_5fsetup',['DAP_SETUP',['../group__DAP__Config__Initialization__gr.html#ga6d4656af10c47ec0d6c0389be2dbb4bb',1,'DAP_config.h']]], + ['dap_5fswd',['DAP_SWD',['../group__DAP__Config__Debug__gr.html#gaf886ab35e52d1ff2935351817786c8af',1,'DAP_config.h']]], + ['dap_5fswd_5fconfigure',['DAP_SWD_Configure',['../group__DAP__SWD__Configure.html',1,'']]], + ['dap_5fswd_5fsequence',['DAP_SWD_Sequence',['../group__DAP__SWD__Sequence.html',1,'']]], + ['dap_5fswj_5fclock',['DAP_SWJ_Clock',['../group__DAP__SWJ__Clock.html',1,'']]], + ['dap_5fswj_5fpins',['DAP_SWJ_Pins',['../group__DAP__SWJ__Pins.html',1,'']]], + ['dap_5fswj_5fsequence',['DAP_SWJ_Sequence',['../group__DAP__SWJ__Sequence.html',1,'']]], + ['dap_5fswo_5fbaudrate',['DAP_SWO_Baudrate',['../group__DAP__SWO__Baudrate.html',1,'']]], + ['dap_5fswo_5fcontrol',['DAP_SWO_Control',['../group__DAP__SWO__Control.html',1,'']]], + ['dap_5fswo_5fdata',['DAP_SWO_Data',['../group__DAP__SWO__Data.html',1,'']]], + ['dap_5fswo_5fextendedstatus',['DAP_SWO_ExtendedStatus',['../group__DAP__SWO__ExtendedStatus.html',1,'']]], + ['dap_5fswo_5fmode',['DAP_SWO_Mode',['../group__DAP__SWO__Mode.html',1,'']]], + ['dap_5fswo_5fstatus',['DAP_SWO_Status',['../group__DAP__SWO__Status.html',1,'']]], + ['dap_5fswo_5ftransport',['DAP_SWO_Transport',['../group__DAP__SWO__Transport.html',1,'']]], + ['dap_5ftransfer',['DAP_Transfer',['../group__DAP__Transfer.html',1,'']]], + ['dap_5ftransferabort',['DAP_TransferAbort',['../group__DAP__TransferAbort.html',1,'']]], + ['dap_5ftransferblock',['DAP_TransferBlock',['../group__DAP__TransferBlock.html',1,'']]], + ['dap_5ftransferconfigure',['DAP_TransferConfigure',['../group__DAP__TransferConfigure.html',1,'']]], + ['dap_5fwriteabort',['DAP_WriteABORT',['../group__DAP__WriteABORT.html',1,'']]] +]; diff --git a/docs/DAP/html/search/all_3.html b/docs/DAP/html/search/all_3.html new file mode 100644 index 0000000..4d312d0 --- /dev/null +++ b/docs/DAP/html/search/all_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/all_3.js b/docs/DAP/html/search/all_3.js new file mode 100644 index 0000000..aa895b7 --- /dev/null +++ b/docs/DAP/html/search/all_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['firmware_20configuration',['Firmware Configuration',['../group__DAP__Config__gr.html',1,'']]], + ['flash_20program_20firmware',['Flash Program Firmware',['../group__DAP__ConfigFlash__gr.html',1,'']]], + ['firmware_20for_20coresight_20debug_20access_20port',['Firmware for CoreSight Debug Access Port',['../index.html',1,'']]] +]; diff --git a/docs/DAP/html/search/all_4.html b/docs/DAP/html/search/all_4.html new file mode 100644 index 0000000..d72a910 --- /dev/null +++ b/docs/DAP/html/search/all_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/all_4.js b/docs/DAP/html/search/all_4.js new file mode 100644 index 0000000..ce6b958 --- /dev/null +++ b/docs/DAP/html/search/all_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['general_20commands',['General Commands',['../group__DAP__genCommands__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/all_5.html b/docs/DAP/html/search/all_5.html new file mode 100644 index 0000000..99ef726 --- /dev/null +++ b/docs/DAP/html/search/all_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/all_5.js b/docs/DAP/html/search/all_5.js new file mode 100644 index 0000000..89a0213 --- /dev/null +++ b/docs/DAP/html/search/all_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['io_5fport_5fwrite_5fcycles',['IO_PORT_WRITE_CYCLES',['../group__DAP__Config__Debug__gr.html#ga119c70409a24e3a8bb35df07dffeb8c8',1,'DAP_config.h']]] +]; diff --git a/docs/DAP/html/search/all_6.html b/docs/DAP/html/search/all_6.html new file mode 100644 index 0000000..6133ab3 --- /dev/null +++ b/docs/DAP/html/search/all_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/all_6.js b/docs/DAP/html/search/all_6.js new file mode 100644 index 0000000..31d9fa4 --- /dev/null +++ b/docs/DAP/html/search/all_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['jtag_20commands',['JTAG Commands',['../group__DAP__jtag__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/all_7.html b/docs/DAP/html/search/all_7.html new file mode 100644 index 0000000..5748125 --- /dev/null +++ b/docs/DAP/html/search/all_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/all_7.js b/docs/DAP/html/search/all_7.js new file mode 100644 index 0000000..f31f88a --- /dev/null +++ b/docs/DAP/html/search/all_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['led_5fconnected_5fout',['LED_CONNECTED_OUT',['../group__DAP__Config__LEDs__gr.html#ga27408c1c7010aa394abdcf0c85d7b798',1,'DAP_config.h']]], + ['led_5frunning_5fout',['LED_RUNNING_OUT',['../group__DAP__Config__LEDs__gr.html#gaa27ef99d16e3e68759adf1e6cb016e50',1,'DAP_config.h']]] +]; diff --git a/docs/DAP/html/search/all_8.html b/docs/DAP/html/search/all_8.html new file mode 100644 index 0000000..0179bdd --- /dev/null +++ b/docs/DAP/html/search/all_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/all_8.js b/docs/DAP/html/search/all_8.js new file mode 100644 index 0000000..a6b5462 --- /dev/null +++ b/docs/DAP/html/search/all_8.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['pin_5fnreset_5fin',['PIN_nRESET_IN',['../group__DAP__Config__PortIO__gr.html#ga401f5879824966071ba05fb1b4102626',1,'DAP_config.h']]], + ['pin_5fnreset_5fout',['PIN_nRESET_OUT',['../group__DAP__Config__PortIO__gr.html#gacfe405b75aefcdf7c06b2b426595ea0a',1,'DAP_config.h']]], + ['pin_5fntrst_5fin',['PIN_nTRST_IN',['../group__DAP__Config__PortIO__gr.html#gabdce264d0e78ce31bcb2e91f97e49b2a',1,'DAP_config.h']]], + ['pin_5fntrst_5fout',['PIN_nTRST_OUT',['../group__DAP__Config__PortIO__gr.html#ga190b2403a1bc0dc9a94b70622ed9de41',1,'DAP_config.h']]], + ['pin_5fswclk_5ftck_5fclr',['PIN_SWCLK_TCK_CLR',['../group__DAP__Config__PortIO__gr.html#ga9dcba97c6779b70dca02e51a36696a61',1,'DAP_config.h']]], + ['pin_5fswclk_5ftck_5fin',['PIN_SWCLK_TCK_IN',['../group__DAP__Config__PortIO__gr.html#gafc133887a94442c3bc4424909dff8512',1,'DAP_config.h']]], + ['pin_5fswclk_5ftck_5fset',['PIN_SWCLK_TCK_SET',['../group__DAP__Config__PortIO__gr.html#ga43481ea1fcc2e389761ccb78bf76b891',1,'DAP_config.h']]], + ['pin_5fswdio_5fin',['PIN_SWDIO_IN',['../group__DAP__Config__PortIO__gr.html#ga6873b9000f9ec322626ecc06664fb229',1,'DAP_config.h']]], + ['pin_5fswdio_5fout',['PIN_SWDIO_OUT',['../group__DAP__Config__PortIO__gr.html#ga0c100894fc532bc05fc81f4128e06e23',1,'DAP_config.h']]], + ['pin_5fswdio_5fout_5fdisable',['PIN_SWDIO_OUT_DISABLE',['../group__DAP__Config__PortIO__gr.html#ga4873c485ca5e49efbb218f4f80a59a17',1,'DAP_config.h']]], + ['pin_5fswdio_5fout_5fenable',['PIN_SWDIO_OUT_ENABLE',['../group__DAP__Config__PortIO__gr.html#ga130df1a24eef09b9e250e7e328f06e50',1,'DAP_config.h']]], + ['pin_5fswdio_5ftms_5fclr',['PIN_SWDIO_TMS_CLR',['../group__DAP__Config__PortIO__gr.html#ga04aa6eb6186f50bb1ea7d991870f8670',1,'DAP_config.h']]], + ['pin_5fswdio_5ftms_5fin',['PIN_SWDIO_TMS_IN',['../group__DAP__Config__PortIO__gr.html#gaf127becf6c639beff822f83fbdef7761',1,'DAP_config.h']]], + ['pin_5fswdio_5ftms_5fset',['PIN_SWDIO_TMS_SET',['../group__DAP__Config__PortIO__gr.html#gaac7a2af102cc9fa9358d507c11cf9241',1,'DAP_config.h']]], + ['pin_5ftdi_5fin',['PIN_TDI_IN',['../group__DAP__Config__PortIO__gr.html#ga2cea243a2dbbece100f15a7f1fb04e5c',1,'DAP_config.h']]], + ['pin_5ftdi_5fout',['PIN_TDI_OUT',['../group__DAP__Config__PortIO__gr.html#gad40bb9c760000dfda7c533d63af3b4fa',1,'DAP_config.h']]], + ['pin_5ftdo_5fin',['PIN_TDO_IN',['../group__DAP__Config__PortIO__gr.html#gace11527334bc4453e8407e44fc58f619',1,'DAP_config.h']]], + ['port_5fjtag_5fsetup',['PORT_JTAG_SETUP',['../group__DAP__Config__PortIO__gr.html#ga037d02e221d71916a83349d6572bf91d',1,'DAP_config.h']]], + ['port_5foff',['PORT_OFF',['../group__DAP__Config__PortIO__gr.html#gaf31b342bc0fc5ad3669f43888466db61',1,'DAP_config.h']]], + ['port_5fswd_5fsetup',['PORT_SWD_SETUP',['../group__DAP__Config__PortIO__gr.html#ga08369d48fb874acdfb40726edaa3d147',1,'DAP_config.h']]] +]; diff --git a/docs/DAP/html/search/all_9.html b/docs/DAP/html/search/all_9.html new file mode 100644 index 0000000..cd46d44 --- /dev/null +++ b/docs/DAP/html/search/all_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/all_9.js b/docs/DAP/html/search/all_9.js new file mode 100644 index 0000000..9ce13b1 --- /dev/null +++ b/docs/DAP/html/search/all_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['response_20status',['Response Status',['../group__DAP__Response__Status.html',1,'']]], + ['revision_20history_20of_20cmsis_2ddap',['Revision History of CMSIS-DAP',['../dap_revisionHistory.html',1,'']]], + ['reset_5ftarget',['RESET_TARGET',['../group__DAP__Config__Initialization__gr.html#gaa0feceaeee69d69927d8a9beb0272dd7',1,'DAP_config.h']]] +]; diff --git a/docs/DAP/html/search/all_a.html b/docs/DAP/html/search/all_a.html new file mode 100644 index 0000000..eab6553 --- /dev/null +++ b/docs/DAP/html/search/all_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/all_a.js b/docs/DAP/html/search/all_a.js new file mode 100644 index 0000000..9a2742c --- /dev/null +++ b/docs/DAP/html/search/all_a.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['swd_20commands',['SWD Commands',['../group__DAP__swd__gr.html',1,'']]], + ['swo_20commands',['SWO Commands',['../group__DAP__swo__gr.html',1,'']]], + ['swo_5fbuffer_5fsize',['SWO_BUFFER_SIZE',['../group__DAP__Config__Debug__gr.html#ga5d89633a43ee3296e1754c7392ad856e',1,'DAP_config.h']]], + ['swo_5fmanchester',['SWO_MANCHESTER',['../group__DAP__Config__Debug__gr.html#ga213ee3d1501adeca4c9c660072922c7e',1,'DAP_config.h']]], + ['swo_5fstream',['SWO_STREAM',['../group__DAP__Config__Debug__gr.html#gafd6f450a10f4e03757388e00ea56906f',1,'DAP_config.h']]], + ['swo_5fuart',['SWO_UART',['../group__DAP__Config__Debug__gr.html#gaf0d60b30fb0eef2d249bc89a6e454ab6',1,'DAP_config.h']]], + ['swo_5fuart_5fmax_5fbaudrate',['SWO_UART_MAX_BAUDRATE',['../group__DAP__Config__Debug__gr.html#gad19240f209f055db7d70cb5eb2431d31',1,'DAP_config.h']]] +]; diff --git a/docs/DAP/html/search/all_b.html b/docs/DAP/html/search/all_b.html new file mode 100644 index 0000000..a2c161e --- /dev/null +++ b/docs/DAP/html/search/all_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/all_b.js b/docs/DAP/html/search/all_b.js new file mode 100644 index 0000000..a4476b8 --- /dev/null +++ b/docs/DAP/html/search/all_b.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['transfer_20commands',['Transfer Commands',['../group__DAP__transfer__gr.html',1,'']]], + ['target_5fdevice_5ffixed',['TARGET_DEVICE_FIXED',['../group__DAP__Config__Debug__gr.html#ga792651aa4035a7ad712c6bb201db8a6a',1,'DAP_config.h']]], + ['timestamp_5fclock',['TIMESTAMP_CLOCK',['../group__DAP__Config__Debug__gr.html#ga698a5a4ebd84335134a35e74848d2734',1,'DAP_config.h']]], + ['timestamp_5fget',['TIMESTAMP_GET',['../group__DAP__Config__Timestamp__gr.html#gaf9bdc40d3a256fc2cc4d26b295993d9c',1,'DAP_config.h']]] +]; diff --git a/docs/DAP/html/search/all_c.html b/docs/DAP/html/search/all_c.html new file mode 100644 index 0000000..bdd3ee2 --- /dev/null +++ b/docs/DAP/html/search/all_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/all_c.js b/docs/DAP/html/search/all_c.js new file mode 100644 index 0000000..a109d9a --- /dev/null +++ b/docs/DAP/html/search/all_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['validate_20debug_20unit',['Validate Debug Unit',['../group__DAP__Validate__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/close.png b/docs/DAP/html/search/close.png new file mode 100644 index 0000000..9342d3d Binary files /dev/null and b/docs/DAP/html/search/close.png differ diff --git a/docs/DAP/html/search/functions_0.html b/docs/DAP/html/search/functions_0.html new file mode 100644 index 0000000..16a5a52 --- /dev/null +++ b/docs/DAP/html/search/functions_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/functions_0.js b/docs/DAP/html/search/functions_0.js new file mode 100644 index 0000000..1e2a8ac --- /dev/null +++ b/docs/DAP/html/search/functions_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['dap_5fgetproductstring',['DAP_GetProductString',['../group__DAP__Config__Debug__gr.html#ga947f60d7e5382cefe3087ad1fb46b13b',1,'DAP_config.h']]], + ['dap_5fgetsernumstring',['DAP_GetSerNumString',['../group__DAP__Config__Debug__gr.html#ga7b875652fd4e380af4d419bc2878ab33',1,'DAP_config.h']]], + ['dap_5fgetvendorstring',['DAP_GetVendorString',['../group__DAP__Config__Debug__gr.html#gad52ec88278b7b3ccbdcc10359dd8d0a8',1,'DAP_config.h']]], + ['dap_5fsetup',['DAP_SETUP',['../group__DAP__Config__Initialization__gr.html#ga6d4656af10c47ec0d6c0389be2dbb4bb',1,'DAP_config.h']]] +]; diff --git a/docs/DAP/html/search/functions_1.html b/docs/DAP/html/search/functions_1.html new file mode 100644 index 0000000..3b4eacf --- /dev/null +++ b/docs/DAP/html/search/functions_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/functions_1.js b/docs/DAP/html/search/functions_1.js new file mode 100644 index 0000000..f31f88a --- /dev/null +++ b/docs/DAP/html/search/functions_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['led_5fconnected_5fout',['LED_CONNECTED_OUT',['../group__DAP__Config__LEDs__gr.html#ga27408c1c7010aa394abdcf0c85d7b798',1,'DAP_config.h']]], + ['led_5frunning_5fout',['LED_RUNNING_OUT',['../group__DAP__Config__LEDs__gr.html#gaa27ef99d16e3e68759adf1e6cb016e50',1,'DAP_config.h']]] +]; diff --git a/docs/DAP/html/search/functions_2.html b/docs/DAP/html/search/functions_2.html new file mode 100644 index 0000000..78be8b4 --- /dev/null +++ b/docs/DAP/html/search/functions_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/functions_2.js b/docs/DAP/html/search/functions_2.js new file mode 100644 index 0000000..a6b5462 --- /dev/null +++ b/docs/DAP/html/search/functions_2.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['pin_5fnreset_5fin',['PIN_nRESET_IN',['../group__DAP__Config__PortIO__gr.html#ga401f5879824966071ba05fb1b4102626',1,'DAP_config.h']]], + ['pin_5fnreset_5fout',['PIN_nRESET_OUT',['../group__DAP__Config__PortIO__gr.html#gacfe405b75aefcdf7c06b2b426595ea0a',1,'DAP_config.h']]], + ['pin_5fntrst_5fin',['PIN_nTRST_IN',['../group__DAP__Config__PortIO__gr.html#gabdce264d0e78ce31bcb2e91f97e49b2a',1,'DAP_config.h']]], + ['pin_5fntrst_5fout',['PIN_nTRST_OUT',['../group__DAP__Config__PortIO__gr.html#ga190b2403a1bc0dc9a94b70622ed9de41',1,'DAP_config.h']]], + ['pin_5fswclk_5ftck_5fclr',['PIN_SWCLK_TCK_CLR',['../group__DAP__Config__PortIO__gr.html#ga9dcba97c6779b70dca02e51a36696a61',1,'DAP_config.h']]], + ['pin_5fswclk_5ftck_5fin',['PIN_SWCLK_TCK_IN',['../group__DAP__Config__PortIO__gr.html#gafc133887a94442c3bc4424909dff8512',1,'DAP_config.h']]], + ['pin_5fswclk_5ftck_5fset',['PIN_SWCLK_TCK_SET',['../group__DAP__Config__PortIO__gr.html#ga43481ea1fcc2e389761ccb78bf76b891',1,'DAP_config.h']]], + ['pin_5fswdio_5fin',['PIN_SWDIO_IN',['../group__DAP__Config__PortIO__gr.html#ga6873b9000f9ec322626ecc06664fb229',1,'DAP_config.h']]], + ['pin_5fswdio_5fout',['PIN_SWDIO_OUT',['../group__DAP__Config__PortIO__gr.html#ga0c100894fc532bc05fc81f4128e06e23',1,'DAP_config.h']]], + ['pin_5fswdio_5fout_5fdisable',['PIN_SWDIO_OUT_DISABLE',['../group__DAP__Config__PortIO__gr.html#ga4873c485ca5e49efbb218f4f80a59a17',1,'DAP_config.h']]], + ['pin_5fswdio_5fout_5fenable',['PIN_SWDIO_OUT_ENABLE',['../group__DAP__Config__PortIO__gr.html#ga130df1a24eef09b9e250e7e328f06e50',1,'DAP_config.h']]], + ['pin_5fswdio_5ftms_5fclr',['PIN_SWDIO_TMS_CLR',['../group__DAP__Config__PortIO__gr.html#ga04aa6eb6186f50bb1ea7d991870f8670',1,'DAP_config.h']]], + ['pin_5fswdio_5ftms_5fin',['PIN_SWDIO_TMS_IN',['../group__DAP__Config__PortIO__gr.html#gaf127becf6c639beff822f83fbdef7761',1,'DAP_config.h']]], + ['pin_5fswdio_5ftms_5fset',['PIN_SWDIO_TMS_SET',['../group__DAP__Config__PortIO__gr.html#gaac7a2af102cc9fa9358d507c11cf9241',1,'DAP_config.h']]], + ['pin_5ftdi_5fin',['PIN_TDI_IN',['../group__DAP__Config__PortIO__gr.html#ga2cea243a2dbbece100f15a7f1fb04e5c',1,'DAP_config.h']]], + ['pin_5ftdi_5fout',['PIN_TDI_OUT',['../group__DAP__Config__PortIO__gr.html#gad40bb9c760000dfda7c533d63af3b4fa',1,'DAP_config.h']]], + ['pin_5ftdo_5fin',['PIN_TDO_IN',['../group__DAP__Config__PortIO__gr.html#gace11527334bc4453e8407e44fc58f619',1,'DAP_config.h']]], + ['port_5fjtag_5fsetup',['PORT_JTAG_SETUP',['../group__DAP__Config__PortIO__gr.html#ga037d02e221d71916a83349d6572bf91d',1,'DAP_config.h']]], + ['port_5foff',['PORT_OFF',['../group__DAP__Config__PortIO__gr.html#gaf31b342bc0fc5ad3669f43888466db61',1,'DAP_config.h']]], + ['port_5fswd_5fsetup',['PORT_SWD_SETUP',['../group__DAP__Config__PortIO__gr.html#ga08369d48fb874acdfb40726edaa3d147',1,'DAP_config.h']]] +]; diff --git a/docs/DAP/html/search/functions_3.html b/docs/DAP/html/search/functions_3.html new file mode 100644 index 0000000..ebf2eeb --- /dev/null +++ b/docs/DAP/html/search/functions_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/functions_3.js b/docs/DAP/html/search/functions_3.js new file mode 100644 index 0000000..52d877c --- /dev/null +++ b/docs/DAP/html/search/functions_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['reset_5ftarget',['RESET_TARGET',['../group__DAP__Config__Initialization__gr.html#gaa0feceaeee69d69927d8a9beb0272dd7',1,'DAP_config.h']]] +]; diff --git a/docs/DAP/html/search/functions_4.html b/docs/DAP/html/search/functions_4.html new file mode 100644 index 0000000..7317ea9 --- /dev/null +++ b/docs/DAP/html/search/functions_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/functions_4.js b/docs/DAP/html/search/functions_4.js new file mode 100644 index 0000000..ba27261 --- /dev/null +++ b/docs/DAP/html/search/functions_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['timestamp_5fget',['TIMESTAMP_GET',['../group__DAP__Config__Timestamp__gr.html#gaf9bdc40d3a256fc2cc4d26b295993d9c',1,'DAP_config.h']]] +]; diff --git a/docs/DAP/html/search/groups_0.html b/docs/DAP/html/search/groups_0.html new file mode 100644 index 0000000..2090afa --- /dev/null +++ b/docs/DAP/html/search/groups_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/groups_0.js b/docs/DAP/html/search/groups_0.js new file mode 100644 index 0000000..249099b --- /dev/null +++ b/docs/DAP/html/search/groups_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['atomic_20commands',['Atomic Commands',['../group__DAP__atomic__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/groups_1.html b/docs/DAP/html/search/groups_1.html new file mode 100644 index 0000000..3ad8a3b --- /dev/null +++ b/docs/DAP/html/search/groups_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/groups_1.js b/docs/DAP/html/search/groups_1.js new file mode 100644 index 0000000..ab3916b --- /dev/null +++ b/docs/DAP/html/search/groups_1.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['cmsis_2ddap_20commands',['CMSIS-DAP Commands',['../group__DAP__Commands__gr.html',1,'']]], + ['cmsis_2ddap_20debug_20unit_20information',['CMSIS-DAP Debug Unit Information',['../group__DAP__Config__Debug__gr.html',1,'']]], + ['cmsis_2ddap_20initialization',['CMSIS-DAP Initialization',['../group__DAP__Config__Initialization__gr.html',1,'']]], + ['cmsis_2ddap_20hardware_20status_20leds',['CMSIS-DAP Hardware Status LEDs',['../group__DAP__Config__LEDs__gr.html',1,'']]], + ['cmsis_2ddap_20hardware_20i_2fo_20pin_20access',['CMSIS-DAP Hardware I/O Pin Access',['../group__DAP__Config__PortIO__gr.html',1,'']]], + ['cmsis_2ddap_20timestamp',['CMSIS-DAP Timestamp',['../group__DAP__Config__Timestamp__gr.html',1,'']]], + ['configure_20i_2fo_20ports_20and_20debug_20unit',['Configure I/O Ports and Debug Unit',['../group__DAP__ConfigIO__gr.html',1,'']]], + ['configure_20usb_20peripheral',['Configure USB Peripheral',['../group__DAP__ConfigUSB__gr.html',1,'']]], + ['common_20swd_2fjtag_20commands',['Common SWD/JTAG Commands',['../group__DAP__swj__gr.html',1,'']]], + ['connect_20swo_20trace',['Connect SWO Trace',['../group__DAP__USART__gr.html',1,'']]], + ['cmsis_2ddap_20vendor_20commands',['CMSIS-DAP Vendor Commands',['../group__DAP__Vendor__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/groups_2.html b/docs/DAP/html/search/groups_2.html new file mode 100644 index 0000000..361832c --- /dev/null +++ b/docs/DAP/html/search/groups_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/groups_2.js b/docs/DAP/html/search/groups_2.js new file mode 100644 index 0000000..8cb329f --- /dev/null +++ b/docs/DAP/html/search/groups_2.js @@ -0,0 +1,32 @@ +var searchData= +[ + ['debug_20unit_20processor',['Debug Unit Processor',['../group__DAP__ConfigMCU__gr.html',1,'']]], + ['dap_5fconnect',['DAP_Connect',['../group__DAP__Connect.html',1,'']]], + ['dap_5fdelay',['DAP_Delay',['../group__DAP__Delay.html',1,'']]], + ['dap_5fdisconnect',['DAP_Disconnect',['../group__DAP__Disconnect.html',1,'']]], + ['dap_5fexecutecommands',['DAP_ExecuteCommands',['../group__DAP__ExecuteCommands__gr.html',1,'']]], + ['dap_5fhoststatus',['DAP_HostStatus',['../group__DAP__HostStatus.html',1,'']]], + ['dap_5finfo',['DAP_Info',['../group__DAP__Info.html',1,'']]], + ['dap_5fjtag_5fconfigure',['DAP_JTAG_Configure',['../group__DAP__JTAG__Configure.html',1,'']]], + ['dap_5fjtag_5fidcode',['DAP_JTAG_IDCODE',['../group__DAP__jtag__idcode.html',1,'']]], + ['dap_5fjtag_5fsequence',['DAP_JTAG_Sequence',['../group__DAP__JTAG__Sequence.html',1,'']]], + ['dap_5fqueuecommands',['DAP_QueueCommands',['../group__DAP__QueueCommands__gr.html',1,'']]], + ['dap_5fresettarget',['DAP_ResetTarget',['../group__DAP__ResetTarget.html',1,'']]], + ['dap_5fswd_5fconfigure',['DAP_SWD_Configure',['../group__DAP__SWD__Configure.html',1,'']]], + ['dap_5fswd_5fsequence',['DAP_SWD_Sequence',['../group__DAP__SWD__Sequence.html',1,'']]], + ['dap_5fswj_5fclock',['DAP_SWJ_Clock',['../group__DAP__SWJ__Clock.html',1,'']]], + ['dap_5fswj_5fpins',['DAP_SWJ_Pins',['../group__DAP__SWJ__Pins.html',1,'']]], + ['dap_5fswj_5fsequence',['DAP_SWJ_Sequence',['../group__DAP__SWJ__Sequence.html',1,'']]], + ['dap_5fswo_5fbaudrate',['DAP_SWO_Baudrate',['../group__DAP__SWO__Baudrate.html',1,'']]], + ['dap_5fswo_5fcontrol',['DAP_SWO_Control',['../group__DAP__SWO__Control.html',1,'']]], + ['dap_5fswo_5fdata',['DAP_SWO_Data',['../group__DAP__SWO__Data.html',1,'']]], + ['dap_5fswo_5fextendedstatus',['DAP_SWO_ExtendedStatus',['../group__DAP__SWO__ExtendedStatus.html',1,'']]], + ['dap_5fswo_5fmode',['DAP_SWO_Mode',['../group__DAP__SWO__Mode.html',1,'']]], + ['dap_5fswo_5fstatus',['DAP_SWO_Status',['../group__DAP__SWO__Status.html',1,'']]], + ['dap_5fswo_5ftransport',['DAP_SWO_Transport',['../group__DAP__SWO__Transport.html',1,'']]], + ['dap_5ftransfer',['DAP_Transfer',['../group__DAP__Transfer.html',1,'']]], + ['dap_5ftransferabort',['DAP_TransferAbort',['../group__DAP__TransferAbort.html',1,'']]], + ['dap_5ftransferblock',['DAP_TransferBlock',['../group__DAP__TransferBlock.html',1,'']]], + ['dap_5ftransferconfigure',['DAP_TransferConfigure',['../group__DAP__TransferConfigure.html',1,'']]], + ['dap_5fwriteabort',['DAP_WriteABORT',['../group__DAP__WriteABORT.html',1,'']]] +]; diff --git a/docs/DAP/html/search/groups_3.html b/docs/DAP/html/search/groups_3.html new file mode 100644 index 0000000..f42200a --- /dev/null +++ b/docs/DAP/html/search/groups_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/groups_3.js b/docs/DAP/html/search/groups_3.js new file mode 100644 index 0000000..44b1b95 --- /dev/null +++ b/docs/DAP/html/search/groups_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['firmware_20configuration',['Firmware Configuration',['../group__DAP__Config__gr.html',1,'']]], + ['flash_20program_20firmware',['Flash Program Firmware',['../group__DAP__ConfigFlash__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/groups_4.html b/docs/DAP/html/search/groups_4.html new file mode 100644 index 0000000..b07fdf9 --- /dev/null +++ b/docs/DAP/html/search/groups_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/groups_4.js b/docs/DAP/html/search/groups_4.js new file mode 100644 index 0000000..ce6b958 --- /dev/null +++ b/docs/DAP/html/search/groups_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['general_20commands',['General Commands',['../group__DAP__genCommands__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/groups_5.html b/docs/DAP/html/search/groups_5.html new file mode 100644 index 0000000..35324c0 --- /dev/null +++ b/docs/DAP/html/search/groups_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/groups_5.js b/docs/DAP/html/search/groups_5.js new file mode 100644 index 0000000..31d9fa4 --- /dev/null +++ b/docs/DAP/html/search/groups_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['jtag_20commands',['JTAG Commands',['../group__DAP__jtag__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/groups_6.html b/docs/DAP/html/search/groups_6.html new file mode 100644 index 0000000..3231402 --- /dev/null +++ b/docs/DAP/html/search/groups_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/groups_6.js b/docs/DAP/html/search/groups_6.js new file mode 100644 index 0000000..c4eb69a --- /dev/null +++ b/docs/DAP/html/search/groups_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['response_20status',['Response Status',['../group__DAP__Response__Status.html',1,'']]] +]; diff --git a/docs/DAP/html/search/groups_7.html b/docs/DAP/html/search/groups_7.html new file mode 100644 index 0000000..27334b6 --- /dev/null +++ b/docs/DAP/html/search/groups_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/groups_7.js b/docs/DAP/html/search/groups_7.js new file mode 100644 index 0000000..c8d51ee --- /dev/null +++ b/docs/DAP/html/search/groups_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['swd_20commands',['SWD Commands',['../group__DAP__swd__gr.html',1,'']]], + ['swo_20commands',['SWO Commands',['../group__DAP__swo__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/groups_8.html b/docs/DAP/html/search/groups_8.html new file mode 100644 index 0000000..863d136 --- /dev/null +++ b/docs/DAP/html/search/groups_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/groups_8.js b/docs/DAP/html/search/groups_8.js new file mode 100644 index 0000000..f117f87 --- /dev/null +++ b/docs/DAP/html/search/groups_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['transfer_20commands',['Transfer Commands',['../group__DAP__transfer__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/groups_9.html b/docs/DAP/html/search/groups_9.html new file mode 100644 index 0000000..e42b280 --- /dev/null +++ b/docs/DAP/html/search/groups_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/groups_9.js b/docs/DAP/html/search/groups_9.js new file mode 100644 index 0000000..a109d9a --- /dev/null +++ b/docs/DAP/html/search/groups_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['validate_20debug_20unit',['Validate Debug Unit',['../group__DAP__Validate__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/mag_sel.png b/docs/DAP/html/search/mag_sel.png new file mode 100644 index 0000000..81f6040 Binary files /dev/null and b/docs/DAP/html/search/mag_sel.png differ diff --git a/docs/DAP/html/search/nomatches.html b/docs/DAP/html/search/nomatches.html new file mode 100644 index 0000000..b1ded27 --- /dev/null +++ b/docs/DAP/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/docs/DAP/html/search/pages_0.html b/docs/DAP/html/search/pages_0.html new file mode 100644 index 0000000..c51c834 --- /dev/null +++ b/docs/DAP/html/search/pages_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/pages_0.js b/docs/DAP/html/search/pages_0.js new file mode 100644 index 0000000..c9c28ed --- /dev/null +++ b/docs/DAP/html/search/pages_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['communication_20via_20usb_20hid',['Communication via USB HID',['../group__DAP__ConfigUSB__gr.html',1,'']]], + ['communication_20via_20winusb',['Communication via WinUSB',['../group__DAP__ConfigUSB__gr.html',1,'']]] +]; diff --git a/docs/DAP/html/search/pages_1.html b/docs/DAP/html/search/pages_1.html new file mode 100644 index 0000000..2a98fce --- /dev/null +++ b/docs/DAP/html/search/pages_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/pages_1.js b/docs/DAP/html/search/pages_1.js new file mode 100644 index 0000000..84f63e3 --- /dev/null +++ b/docs/DAP/html/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['firmware_20for_20coresight_20debug_20access_20port',['Firmware for CoreSight Debug Access Port',['../index.html',1,'']]] +]; diff --git a/docs/DAP/html/search/pages_2.html b/docs/DAP/html/search/pages_2.html new file mode 100644 index 0000000..0711a0b --- /dev/null +++ b/docs/DAP/html/search/pages_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/DAP/html/search/pages_2.js b/docs/DAP/html/search/pages_2.js new file mode 100644 index 0000000..1e5a3f9 --- /dev/null +++ b/docs/DAP/html/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['revision_20history_20of_20cmsis_2ddap',['Revision History of CMSIS-DAP',['../dap_revisionHistory.html',1,'']]] +]; diff --git a/docs/DAP/html/search/search.css b/docs/DAP/html/search/search.css new file mode 100644 index 0000000..1746d13 --- /dev/null +++ b/docs/DAP/html/search/search.css @@ -0,0 +1,240 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#searchli { + float: right; + display: block; + width: 170px; + height: 24px; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 3px; + right: 0px; + width: 170px; + z-index: 102; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:116px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} diff --git a/docs/DAP/html/search/search.js b/docs/DAP/html/search/search.js new file mode 100644 index 0000000..c03031d --- /dev/null +++ b/docs/DAP/html/search/search.js @@ -0,0 +1,799 @@ +// Search script generated by doxygen +// Copyright (C) 2009 by Dimitri van Heesch. + +// The code in this file is loosly based on main.js, part of Natural Docs, +// which is Copyright (C) 2003-2008 Greg Valure +// Natural Docs is licensed under the GPL. + +var indexSectionsWithContent = +{ + 0: "acdfgijlprstv", + 1: "dlprt", + 2: "acdfgjrstv", + 3: "cfr" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "functions", + 2: "groups", + 3: "pages" +}; + +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e