@microbit/microbit-connection 0.9.0-apps.alpha.16 → 0.9.0-apps.alpha.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/build/{esm/bluetooth.d.ts → cjs/bluetooth/connection.d.ts} +30 -26
  2. package/build/cjs/{bluetooth.js → bluetooth/connection.js} +147 -104
  3. package/build/cjs/bluetooth/connection.js.map +1 -0
  4. package/build/cjs/{bluetooth.test.js → bluetooth/connection.test.js} +9 -9
  5. package/build/cjs/bluetooth/connection.test.js.map +1 -0
  6. package/build/cjs/bluetooth/device-bond-state.js.map +1 -0
  7. package/build/cjs/{bluetooth-device-wrapper.d.ts → bluetooth/device-wrapper.d.ts} +11 -11
  8. package/build/cjs/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +35 -35
  9. package/build/cjs/bluetooth/device-wrapper.js.map +1 -0
  10. package/build/cjs/{flashing → bluetooth/flashing}/flashing-full.d.ts +2 -2
  11. package/build/cjs/{flashing → bluetooth/flashing}/flashing-full.js +4 -4
  12. package/build/cjs/bluetooth/flashing/flashing-full.js.map +1 -0
  13. package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.d.ts +1 -1
  14. package/build/cjs/bluetooth/flashing/flashing-makecode.js.map +1 -0
  15. package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.test.js +3 -3
  16. package/build/cjs/bluetooth/flashing/flashing-makecode.test.js.map +1 -0
  17. package/build/cjs/{flashing → bluetooth/flashing}/flashing-partial.d.ts +2 -2
  18. package/build/cjs/{flashing → bluetooth/flashing}/flashing-partial.js +5 -5
  19. package/build/cjs/bluetooth/flashing/flashing-partial.js.map +1 -0
  20. package/build/cjs/bluetooth/flashing/flashing-v1.js.map +1 -0
  21. package/build/cjs/{flashing → bluetooth/flashing}/nordic-dfu.d.ts +2 -2
  22. package/build/cjs/{flashing → bluetooth/flashing}/nordic-dfu.js +11 -8
  23. package/build/cjs/bluetooth/flashing/nordic-dfu.js.map +1 -0
  24. package/build/cjs/bluetooth/flashing/zip.js.map +1 -0
  25. package/build/cjs/bluetooth/flashing/zip.test.js.map +1 -0
  26. package/build/cjs/bluetooth/index.d.ts +5 -0
  27. package/build/cjs/bluetooth/index.js +9 -0
  28. package/build/cjs/bluetooth/index.js.map +1 -0
  29. package/build/cjs/{bluetooth-profile.js → bluetooth/profile.js} +1 -1
  30. package/build/cjs/bluetooth/profile.js.map +1 -0
  31. package/build/cjs/{accelerometer-service.d.ts → bluetooth/services/accelerometer-service.d.ts} +2 -3
  32. package/build/cjs/{accelerometer-service.js → bluetooth/services/accelerometer-service.js} +16 -12
  33. package/build/cjs/bluetooth/services/accelerometer-service.js.map +1 -0
  34. package/build/{esm → cjs/bluetooth/services}/button-service.d.ts +2 -3
  35. package/build/cjs/{button-service.js → bluetooth/services/button-service.js} +15 -14
  36. package/build/cjs/bluetooth/services/button-service.js.map +1 -0
  37. package/build/{esm → cjs/bluetooth/services}/device-information-service.d.ts +1 -1
  38. package/build/cjs/{device-information-service.js → bluetooth/services/device-information-service.js} +2 -2
  39. package/build/cjs/bluetooth/services/device-information-service.js.map +1 -0
  40. package/build/cjs/{dfu-service.js → bluetooth/services/dfu-service.js} +2 -2
  41. package/build/cjs/bluetooth/services/dfu-service.js.map +1 -0
  42. package/build/{esm → cjs/bluetooth/services}/led-service.d.ts +2 -3
  43. package/build/cjs/{led-service.js → bluetooth/services/led-service.js} +7 -7
  44. package/build/cjs/bluetooth/services/led-service.js.map +1 -0
  45. package/build/cjs/{magnetometer-service.d.ts → bluetooth/services/magnetometer-service.d.ts} +2 -3
  46. package/build/cjs/{magnetometer-service.js → bluetooth/services/magnetometer-service.js} +18 -14
  47. package/build/cjs/bluetooth/services/magnetometer-service.js.map +1 -0
  48. package/build/{esm → cjs/bluetooth/services}/partial-flashing-service.d.ts +1 -1
  49. package/build/cjs/{partial-flashing-service.js → bluetooth/services/partial-flashing-service.js} +8 -8
  50. package/build/cjs/bluetooth/services/partial-flashing-service.js.map +1 -0
  51. package/build/cjs/{uart-service.d.ts → bluetooth/services/uart-service.d.ts} +2 -2
  52. package/build/cjs/{uart-service.js → bluetooth/services/uart-service.js} +12 -9
  53. package/build/cjs/bluetooth/services/uart-service.js.map +1 -0
  54. package/build/cjs/board-id.d.ts +1 -1
  55. package/build/cjs/board-id.js.map +1 -1
  56. package/build/cjs/device.d.ts +82 -75
  57. package/build/cjs/device.js +40 -126
  58. package/build/cjs/device.js.map +1 -1
  59. package/build/cjs/events.d.ts +9 -108
  60. package/build/cjs/events.js +27 -88
  61. package/build/cjs/events.js.map +1 -1
  62. package/build/cjs/events.test.js +54 -48
  63. package/build/cjs/events.test.js.map +1 -1
  64. package/build/cjs/hex-util.d.ts +1 -0
  65. package/build/cjs/hex-util.js +15 -0
  66. package/build/cjs/hex-util.js.map +1 -0
  67. package/build/cjs/index.d.ts +7 -16
  68. package/build/cjs/index.js +6 -26
  69. package/build/cjs/index.js.map +1 -1
  70. package/build/cjs/radio-bridge/connection.d.ts +39 -0
  71. package/build/cjs/{usb-radio-bridge.js → radio-bridge/connection.js} +39 -25
  72. package/build/cjs/radio-bridge/connection.js.map +1 -0
  73. package/build/cjs/radio-bridge/index.d.ts +4 -0
  74. package/build/cjs/radio-bridge/index.js +9 -0
  75. package/build/cjs/radio-bridge/index.js.map +1 -0
  76. package/build/cjs/{usb-serial-protocol.js → radio-bridge/serial-protocol.js} +1 -1
  77. package/build/cjs/radio-bridge/serial-protocol.js.map +1 -0
  78. package/build/cjs/service-events.d.ts +42 -14
  79. package/build/cjs/service-events.js +6 -36
  80. package/build/cjs/service-events.js.map +1 -1
  81. package/build/{esm/hex-flash-data-source.d.ts → cjs/universal-hex/flash-data-source.d.ts} +1 -2
  82. package/build/cjs/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +7 -15
  83. package/build/cjs/universal-hex/flash-data-source.js.map +1 -0
  84. package/build/cjs/universal-hex/index.d.ts +4 -0
  85. package/build/cjs/universal-hex/index.js +9 -0
  86. package/build/cjs/universal-hex/index.js.map +1 -0
  87. package/build/cjs/usb/arm-debug.d.ts +137 -0
  88. package/build/cjs/usb/arm-debug.js +414 -0
  89. package/build/cjs/usb/arm-debug.js.map +1 -0
  90. package/build/cjs/usb/arm-debug.test.js +333 -0
  91. package/build/cjs/usb/arm-debug.test.js.map +1 -0
  92. package/build/{esm → cjs/usb}/board-serial-info.d.ts +2 -1
  93. package/build/cjs/{board-serial-info.js → usb/board-serial-info.js} +10 -7
  94. package/build/cjs/usb/board-serial-info.js.map +1 -0
  95. package/build/cjs/{board-serial-info.test.js → usb/board-serial-info.test.js} +2 -4
  96. package/build/cjs/usb/board-serial-info.test.js.map +1 -0
  97. package/build/cjs/usb/cdc-saturation.d.ts +36 -0
  98. package/build/cjs/usb/cdc-saturation.js +151 -0
  99. package/build/cjs/usb/cdc-saturation.js.map +1 -0
  100. package/build/cjs/usb/cmsis-dap.d.ts +113 -0
  101. package/build/cjs/usb/cmsis-dap.js +349 -0
  102. package/build/cjs/usb/cmsis-dap.js.map +1 -0
  103. package/build/cjs/usb/cmsis-dap.test.js +350 -0
  104. package/build/cjs/usb/cmsis-dap.test.js.map +1 -0
  105. package/build/cjs/usb/connection.d.ts +81 -0
  106. package/build/cjs/{usb.js → usb/connection.js} +243 -166
  107. package/build/cjs/usb/connection.js.map +1 -0
  108. package/build/cjs/{usb.test.js → usb/connection.test.js} +52 -42
  109. package/build/cjs/usb/connection.test.js.map +1 -0
  110. package/build/cjs/usb/cortex-m.d.ts +72 -0
  111. package/build/cjs/usb/cortex-m.js +165 -0
  112. package/build/cjs/usb/cortex-m.js.map +1 -0
  113. package/build/cjs/usb/cortex-m.test.js +217 -0
  114. package/build/cjs/usb/cortex-m.test.js.map +1 -0
  115. package/build/cjs/usb/daplink.d.ts +69 -0
  116. package/build/cjs/usb/daplink.js +238 -0
  117. package/build/cjs/usb/daplink.js.map +1 -0
  118. package/build/cjs/usb/daplink.test.js +290 -0
  119. package/build/cjs/usb/daplink.test.js.map +1 -0
  120. package/build/cjs/usb/device-wrapper.d.ts +34 -0
  121. package/build/cjs/usb/device-wrapper.js +102 -0
  122. package/build/cjs/usb/device-wrapper.js.map +1 -0
  123. package/build/cjs/usb/index.d.ts +5 -0
  124. package/build/cjs/usb/index.js +10 -0
  125. package/build/cjs/usb/index.js.map +1 -0
  126. package/build/{esm/usb-partial-flashing-utils.d.ts → cjs/usb/partial-flashing-utils.d.ts} +6 -9
  127. package/build/cjs/{usb-partial-flashing-utils.js → usb/partial-flashing-utils.js} +6 -49
  128. package/build/cjs/usb/partial-flashing-utils.js.map +1 -0
  129. package/build/{esm/usb-partial-flashing.d.ts → cjs/usb/partial-flashing.d.ts} +15 -7
  130. package/build/cjs/{usb-partial-flashing.js → usb/partial-flashing.js} +64 -119
  131. package/build/cjs/usb/partial-flashing.js.map +1 -0
  132. package/build/cjs/usb/promise-queue.js.map +1 -0
  133. package/build/cjs/usb/promise-queue.test.js.map +1 -0
  134. package/build/cjs/usb/serial-events.d.ts +21 -0
  135. package/build/cjs/{led.js → usb/serial-events.js} +1 -1
  136. package/build/cjs/usb/serial-events.js.map +1 -0
  137. package/build/cjs/usb/transport.d.ts +42 -0
  138. package/build/cjs/usb/transport.js +155 -0
  139. package/build/cjs/usb/transport.js.map +1 -0
  140. package/build/{cjs/bluetooth.d.ts → esm/bluetooth/connection.d.ts} +30 -26
  141. package/build/esm/{bluetooth.js → bluetooth/connection.js} +141 -98
  142. package/build/esm/bluetooth/connection.js.map +1 -0
  143. package/build/esm/{bluetooth.test.js → bluetooth/connection.test.js} +9 -9
  144. package/build/esm/bluetooth/connection.test.js.map +1 -0
  145. package/build/esm/bluetooth/device-bond-state.js.map +1 -0
  146. package/build/esm/{bluetooth-device-wrapper.d.ts → bluetooth/device-wrapper.d.ts} +11 -11
  147. package/build/esm/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +32 -32
  148. package/build/esm/bluetooth/device-wrapper.js.map +1 -0
  149. package/build/esm/{flashing → bluetooth/flashing}/flashing-full.d.ts +2 -2
  150. package/build/esm/{flashing → bluetooth/flashing}/flashing-full.js +4 -4
  151. package/build/esm/bluetooth/flashing/flashing-full.js.map +1 -0
  152. package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.d.ts +1 -1
  153. package/build/esm/bluetooth/flashing/flashing-makecode.js.map +1 -0
  154. package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.test.js +2 -2
  155. package/build/esm/bluetooth/flashing/flashing-makecode.test.js.map +1 -0
  156. package/build/esm/{flashing → bluetooth/flashing}/flashing-partial.d.ts +2 -2
  157. package/build/esm/{flashing → bluetooth/flashing}/flashing-partial.js +4 -4
  158. package/build/esm/bluetooth/flashing/flashing-partial.js.map +1 -0
  159. package/build/esm/bluetooth/flashing/flashing-v1.js.map +1 -0
  160. package/build/esm/{flashing → bluetooth/flashing}/nordic-dfu.d.ts +2 -2
  161. package/build/esm/{flashing → bluetooth/flashing}/nordic-dfu.js +11 -8
  162. package/build/esm/bluetooth/flashing/nordic-dfu.js.map +1 -0
  163. package/build/esm/bluetooth/flashing/zip.js.map +1 -0
  164. package/build/esm/bluetooth/flashing/zip.test.d.ts +1 -0
  165. package/build/esm/bluetooth/flashing/zip.test.js.map +1 -0
  166. package/build/esm/bluetooth/index.d.ts +5 -0
  167. package/build/esm/bluetooth/index.js +5 -0
  168. package/build/esm/bluetooth/index.js.map +1 -0
  169. package/build/esm/{bluetooth-profile.js → bluetooth/profile.js} +1 -1
  170. package/build/{cjs/bluetooth-profile.js.map → esm/bluetooth/profile.js.map} +1 -1
  171. package/build/esm/{accelerometer-service.d.ts → bluetooth/services/accelerometer-service.d.ts} +2 -3
  172. package/build/esm/{accelerometer-service.js → bluetooth/services/accelerometer-service.js} +10 -6
  173. package/build/esm/bluetooth/services/accelerometer-service.js.map +1 -0
  174. package/build/{cjs → esm/bluetooth/services}/button-service.d.ts +2 -3
  175. package/build/esm/{button-service.js → bluetooth/services/button-service.js} +10 -9
  176. package/build/esm/bluetooth/services/button-service.js.map +1 -0
  177. package/build/{cjs → esm/bluetooth/services}/device-information-service.d.ts +1 -1
  178. package/build/esm/{device-information-service.js → bluetooth/services/device-information-service.js} +1 -1
  179. package/build/esm/bluetooth/services/device-information-service.js.map +1 -0
  180. package/build/esm/{dfu-service.js → bluetooth/services/dfu-service.js} +1 -1
  181. package/build/esm/bluetooth/services/dfu-service.js.map +1 -0
  182. package/build/{cjs → esm/bluetooth/services}/led-service.d.ts +2 -3
  183. package/build/esm/{led-service.js → bluetooth/services/led-service.js} +1 -1
  184. package/build/esm/bluetooth/services/led-service.js.map +1 -0
  185. package/build/esm/{magnetometer-service.d.ts → bluetooth/services/magnetometer-service.d.ts} +2 -3
  186. package/build/esm/{magnetometer-service.js → bluetooth/services/magnetometer-service.js} +10 -6
  187. package/build/esm/bluetooth/services/magnetometer-service.js.map +1 -0
  188. package/build/{cjs → esm/bluetooth/services}/partial-flashing-service.d.ts +1 -1
  189. package/build/esm/{partial-flashing-service.js → bluetooth/services/partial-flashing-service.js} +4 -4
  190. package/build/esm/bluetooth/services/partial-flashing-service.js.map +1 -0
  191. package/build/esm/{uart-service.d.ts → bluetooth/services/uart-service.d.ts} +2 -2
  192. package/build/esm/{uart-service.js → bluetooth/services/uart-service.js} +8 -5
  193. package/build/esm/bluetooth/services/uart-service.js.map +1 -0
  194. package/build/esm/board-id.d.ts +1 -1
  195. package/build/esm/board-id.js.map +1 -1
  196. package/build/esm/device.d.ts +82 -75
  197. package/build/esm/device.js +38 -120
  198. package/build/esm/device.js.map +1 -1
  199. package/build/esm/events.d.ts +9 -108
  200. package/build/esm/events.js +26 -86
  201. package/build/esm/events.js.map +1 -1
  202. package/build/esm/events.test.js +55 -49
  203. package/build/esm/events.test.js.map +1 -1
  204. package/build/esm/hex-util.d.ts +1 -0
  205. package/build/esm/hex-util.js +11 -0
  206. package/build/esm/hex-util.js.map +1 -0
  207. package/build/esm/index.d.ts +7 -16
  208. package/build/esm/index.js +6 -10
  209. package/build/esm/index.js.map +1 -1
  210. package/build/esm/radio-bridge/connection.d.ts +39 -0
  211. package/build/esm/{usb-radio-bridge.js → radio-bridge/connection.js} +39 -25
  212. package/build/esm/radio-bridge/connection.js.map +1 -0
  213. package/build/esm/radio-bridge/index.d.ts +4 -0
  214. package/build/esm/radio-bridge/index.js +5 -0
  215. package/build/esm/radio-bridge/index.js.map +1 -0
  216. package/build/esm/{usb-serial-protocol.js → radio-bridge/serial-protocol.js} +1 -1
  217. package/build/esm/radio-bridge/serial-protocol.js.map +1 -0
  218. package/build/esm/service-events.d.ts +42 -14
  219. package/build/esm/service-events.js +5 -34
  220. package/build/esm/service-events.js.map +1 -1
  221. package/build/{cjs/hex-flash-data-source.d.ts → esm/universal-hex/flash-data-source.d.ts} +1 -2
  222. package/build/esm/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +6 -13
  223. package/build/esm/universal-hex/flash-data-source.js.map +1 -0
  224. package/build/esm/universal-hex/index.d.ts +4 -0
  225. package/build/esm/universal-hex/index.js +5 -0
  226. package/build/esm/universal-hex/index.js.map +1 -0
  227. package/build/esm/usb/arm-debug.d.ts +137 -0
  228. package/build/esm/usb/arm-debug.js +409 -0
  229. package/build/esm/usb/arm-debug.js.map +1 -0
  230. package/build/esm/usb/arm-debug.test.d.ts +1 -0
  231. package/build/esm/usb/arm-debug.test.js +331 -0
  232. package/build/esm/usb/arm-debug.test.js.map +1 -0
  233. package/build/{cjs → esm/usb}/board-serial-info.d.ts +2 -1
  234. package/build/esm/{board-serial-info.js → usb/board-serial-info.js} +10 -7
  235. package/build/esm/usb/board-serial-info.js.map +1 -0
  236. package/build/esm/usb/board-serial-info.test.d.ts +1 -0
  237. package/build/esm/{board-serial-info.test.js → usb/board-serial-info.test.js} +2 -4
  238. package/build/esm/usb/board-serial-info.test.js.map +1 -0
  239. package/build/esm/usb/cdc-saturation.d.ts +36 -0
  240. package/build/esm/usb/cdc-saturation.js +148 -0
  241. package/build/esm/usb/cdc-saturation.js.map +1 -0
  242. package/build/esm/usb/cmsis-dap.d.ts +113 -0
  243. package/build/esm/usb/cmsis-dap.js +342 -0
  244. package/build/esm/usb/cmsis-dap.js.map +1 -0
  245. package/build/esm/usb/cmsis-dap.test.d.ts +1 -0
  246. package/build/esm/usb/cmsis-dap.test.js +348 -0
  247. package/build/esm/usb/cmsis-dap.test.js.map +1 -0
  248. package/build/esm/usb/connection.d.ts +81 -0
  249. package/build/esm/{usb.js → usb/connection.js} +239 -161
  250. package/build/esm/usb/connection.js.map +1 -0
  251. package/build/esm/usb/connection.test.d.ts +1 -0
  252. package/build/esm/{usb.test.js → usb/connection.test.js} +47 -37
  253. package/build/esm/usb/connection.test.js.map +1 -0
  254. package/build/esm/usb/cortex-m.d.ts +72 -0
  255. package/build/esm/usb/cortex-m.js +161 -0
  256. package/build/esm/usb/cortex-m.js.map +1 -0
  257. package/build/esm/usb/cortex-m.test.d.ts +1 -0
  258. package/build/esm/usb/cortex-m.test.js +215 -0
  259. package/build/esm/usb/cortex-m.test.js.map +1 -0
  260. package/build/esm/usb/daplink.d.ts +69 -0
  261. package/build/esm/usb/daplink.js +231 -0
  262. package/build/esm/usb/daplink.js.map +1 -0
  263. package/build/esm/usb/daplink.test.d.ts +1 -0
  264. package/build/esm/usb/daplink.test.js +288 -0
  265. package/build/esm/usb/daplink.test.js.map +1 -0
  266. package/build/esm/usb/device-wrapper.d.ts +34 -0
  267. package/build/esm/usb/device-wrapper.js +98 -0
  268. package/build/esm/usb/device-wrapper.js.map +1 -0
  269. package/build/esm/usb/index.d.ts +5 -0
  270. package/build/esm/usb/index.js +5 -0
  271. package/build/esm/usb/index.js.map +1 -0
  272. package/build/{cjs/usb-partial-flashing-utils.d.ts → esm/usb/partial-flashing-utils.d.ts} +6 -9
  273. package/build/esm/{usb-partial-flashing-utils.js → usb/partial-flashing-utils.js} +4 -44
  274. package/build/esm/usb/partial-flashing-utils.js.map +1 -0
  275. package/build/{cjs/usb-partial-flashing.d.ts → esm/usb/partial-flashing.d.ts} +15 -7
  276. package/build/esm/{usb-partial-flashing.js → usb/partial-flashing.js} +62 -94
  277. package/build/esm/usb/partial-flashing.js.map +1 -0
  278. package/build/esm/usb/promise-queue.js.map +1 -0
  279. package/build/esm/usb/promise-queue.test.d.ts +1 -0
  280. package/build/esm/usb/promise-queue.test.js.map +1 -0
  281. package/build/esm/usb/serial-events.d.ts +21 -0
  282. package/build/esm/usb/serial-events.js +2 -0
  283. package/build/esm/usb/serial-events.js.map +1 -0
  284. package/build/esm/usb/transport.d.ts +42 -0
  285. package/build/esm/usb/transport.js +151 -0
  286. package/build/esm/usb/transport.js.map +1 -0
  287. package/package.json +43 -2
  288. package/build/cjs/accelerometer-service.js.map +0 -1
  289. package/build/cjs/accelerometer.d.ts +0 -9
  290. package/build/cjs/accelerometer.js +0 -16
  291. package/build/cjs/accelerometer.js.map +0 -1
  292. package/build/cjs/bluetooth-device-wrapper.js.map +0 -1
  293. package/build/cjs/bluetooth.js.map +0 -1
  294. package/build/cjs/bluetooth.test.js.map +0 -1
  295. package/build/cjs/board-serial-info.js.map +0 -1
  296. package/build/cjs/board-serial-info.test.js.map +0 -1
  297. package/build/cjs/button-service.js.map +0 -1
  298. package/build/cjs/buttons.d.ts +0 -10
  299. package/build/cjs/buttons.js +0 -22
  300. package/build/cjs/buttons.js.map +0 -1
  301. package/build/cjs/constants.d.ts +0 -48
  302. package/build/cjs/constants.js +0 -73
  303. package/build/cjs/constants.js.map +0 -1
  304. package/build/cjs/device-bond-state.js.map +0 -1
  305. package/build/cjs/device-information-service.js.map +0 -1
  306. package/build/cjs/dfu-service.js.map +0 -1
  307. package/build/cjs/flashing/flashing-full.js.map +0 -1
  308. package/build/cjs/flashing/flashing-makecode.js.map +0 -1
  309. package/build/cjs/flashing/flashing-makecode.test.js.map +0 -1
  310. package/build/cjs/flashing/flashing-partial.js.map +0 -1
  311. package/build/cjs/flashing/flashing-v1.js.map +0 -1
  312. package/build/cjs/flashing/nordic-dfu.js.map +0 -1
  313. package/build/cjs/flashing/zip.js.map +0 -1
  314. package/build/cjs/flashing/zip.test.js.map +0 -1
  315. package/build/cjs/hex-flash-data-source.js.map +0 -1
  316. package/build/cjs/led-service.js.map +0 -1
  317. package/build/cjs/led.d.ts +0 -6
  318. package/build/cjs/led.js.map +0 -1
  319. package/build/cjs/magnetometer-service.js.map +0 -1
  320. package/build/cjs/magnetometer.d.ts +0 -9
  321. package/build/cjs/magnetometer.js +0 -16
  322. package/build/cjs/magnetometer.js.map +0 -1
  323. package/build/cjs/partial-flashing-service.js.map +0 -1
  324. package/build/cjs/promise-queue.js.map +0 -1
  325. package/build/cjs/promise-queue.test.js.map +0 -1
  326. package/build/cjs/serial-events.d.ts +0 -20
  327. package/build/cjs/serial-events.js +0 -69
  328. package/build/cjs/serial-events.js.map +0 -1
  329. package/build/cjs/uart-service.js.map +0 -1
  330. package/build/cjs/uart.d.ts +0 -4
  331. package/build/cjs/uart.js +0 -16
  332. package/build/cjs/uart.js.map +0 -1
  333. package/build/cjs/usb-device-wrapper.d.ts +0 -47
  334. package/build/cjs/usb-device-wrapper.js +0 -437
  335. package/build/cjs/usb-device-wrapper.js.map +0 -1
  336. package/build/cjs/usb-partial-flashing-utils.js.map +0 -1
  337. package/build/cjs/usb-partial-flashing.js.map +0 -1
  338. package/build/cjs/usb-radio-bridge.d.ts +0 -24
  339. package/build/cjs/usb-radio-bridge.js.map +0 -1
  340. package/build/cjs/usb-serial-protocol.js.map +0 -1
  341. package/build/cjs/usb.d.ts +0 -66
  342. package/build/cjs/usb.js.map +0 -1
  343. package/build/cjs/usb.test.js.map +0 -1
  344. package/build/esm/accelerometer-service.js.map +0 -1
  345. package/build/esm/accelerometer.d.ts +0 -9
  346. package/build/esm/accelerometer.js +0 -12
  347. package/build/esm/accelerometer.js.map +0 -1
  348. package/build/esm/bluetooth-device-wrapper.js.map +0 -1
  349. package/build/esm/bluetooth-profile.js.map +0 -1
  350. package/build/esm/bluetooth.js.map +0 -1
  351. package/build/esm/bluetooth.test.js.map +0 -1
  352. package/build/esm/board-serial-info.js.map +0 -1
  353. package/build/esm/board-serial-info.test.js.map +0 -1
  354. package/build/esm/button-service.js.map +0 -1
  355. package/build/esm/buttons.d.ts +0 -10
  356. package/build/esm/buttons.js +0 -18
  357. package/build/esm/buttons.js.map +0 -1
  358. package/build/esm/constants.d.ts +0 -48
  359. package/build/esm/constants.js +0 -70
  360. package/build/esm/constants.js.map +0 -1
  361. package/build/esm/device-bond-state.js.map +0 -1
  362. package/build/esm/device-information-service.js.map +0 -1
  363. package/build/esm/dfu-service.js.map +0 -1
  364. package/build/esm/flashing/flashing-full.js.map +0 -1
  365. package/build/esm/flashing/flashing-makecode.js.map +0 -1
  366. package/build/esm/flashing/flashing-makecode.test.js.map +0 -1
  367. package/build/esm/flashing/flashing-partial.js.map +0 -1
  368. package/build/esm/flashing/flashing-v1.js.map +0 -1
  369. package/build/esm/flashing/nordic-dfu.js.map +0 -1
  370. package/build/esm/flashing/zip.js.map +0 -1
  371. package/build/esm/flashing/zip.test.js.map +0 -1
  372. package/build/esm/hex-flash-data-source.js.map +0 -1
  373. package/build/esm/led-service.js.map +0 -1
  374. package/build/esm/led.d.ts +0 -6
  375. package/build/esm/led.js +0 -2
  376. package/build/esm/led.js.map +0 -1
  377. package/build/esm/magnetometer-service.js.map +0 -1
  378. package/build/esm/magnetometer.d.ts +0 -9
  379. package/build/esm/magnetometer.js +0 -12
  380. package/build/esm/magnetometer.js.map +0 -1
  381. package/build/esm/partial-flashing-service.js.map +0 -1
  382. package/build/esm/promise-queue.js.map +0 -1
  383. package/build/esm/promise-queue.test.js.map +0 -1
  384. package/build/esm/serial-events.d.ts +0 -20
  385. package/build/esm/serial-events.js +0 -61
  386. package/build/esm/serial-events.js.map +0 -1
  387. package/build/esm/uart-service.js.map +0 -1
  388. package/build/esm/uart.d.ts +0 -4
  389. package/build/esm/uart.js +0 -12
  390. package/build/esm/uart.js.map +0 -1
  391. package/build/esm/usb-device-wrapper.d.ts +0 -47
  392. package/build/esm/usb-device-wrapper.js +0 -410
  393. package/build/esm/usb-device-wrapper.js.map +0 -1
  394. package/build/esm/usb-partial-flashing-utils.js.map +0 -1
  395. package/build/esm/usb-partial-flashing.js.map +0 -1
  396. package/build/esm/usb-radio-bridge.d.ts +0 -24
  397. package/build/esm/usb-radio-bridge.js.map +0 -1
  398. package/build/esm/usb-serial-protocol.js.map +0 -1
  399. package/build/esm/usb.d.ts +0 -66
  400. package/build/esm/usb.js.map +0 -1
  401. package/build/esm/usb.test.js.map +0 -1
  402. /package/build/cjs/{bluetooth.test.d.ts → bluetooth/connection.test.d.ts} +0 -0
  403. /package/build/cjs/{device-bond-state.d.ts → bluetooth/device-bond-state.d.ts} +0 -0
  404. /package/build/cjs/{device-bond-state.js → bluetooth/device-bond-state.js} +0 -0
  405. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.js +0 -0
  406. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.test.d.ts +0 -0
  407. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-v1.d.ts +0 -0
  408. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-v1.js +0 -0
  409. /package/build/cjs/{flashing → bluetooth/flashing}/zip.d.ts +0 -0
  410. /package/build/cjs/{flashing → bluetooth/flashing}/zip.js +0 -0
  411. /package/build/cjs/{flashing → bluetooth/flashing}/zip.test.d.ts +0 -0
  412. /package/build/cjs/{flashing → bluetooth/flashing}/zip.test.js +0 -0
  413. /package/build/cjs/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +0 -0
  414. /package/build/cjs/{dfu-service.d.ts → bluetooth/services/dfu-service.d.ts} +0 -0
  415. /package/build/cjs/{usb-serial-protocol.d.ts → radio-bridge/serial-protocol.d.ts} +0 -0
  416. /package/build/cjs/{board-serial-info.test.d.ts → usb/arm-debug.test.d.ts} +0 -0
  417. /package/build/{esm → cjs/usb}/board-serial-info.test.d.ts +0 -0
  418. /package/build/cjs/{promise-queue.test.d.ts → usb/cmsis-dap.test.d.ts} +0 -0
  419. /package/build/cjs/{usb.test.d.ts → usb/connection.test.d.ts} +0 -0
  420. /package/build/{esm/bluetooth.test.d.ts → cjs/usb/cortex-m.test.d.ts} +0 -0
  421. /package/build/{esm/flashing/flashing-makecode.test.d.ts → cjs/usb/daplink.test.d.ts} +0 -0
  422. /package/build/cjs/{promise-queue.d.ts → usb/promise-queue.d.ts} +0 -0
  423. /package/build/cjs/{promise-queue.js → usb/promise-queue.js} +0 -0
  424. /package/build/{esm → cjs/usb}/promise-queue.test.d.ts +0 -0
  425. /package/build/cjs/{promise-queue.test.js → usb/promise-queue.test.js} +0 -0
  426. /package/build/esm/{flashing/zip.test.d.ts → bluetooth/connection.test.d.ts} +0 -0
  427. /package/build/esm/{device-bond-state.d.ts → bluetooth/device-bond-state.d.ts} +0 -0
  428. /package/build/esm/{device-bond-state.js → bluetooth/device-bond-state.js} +0 -0
  429. /package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.js +0 -0
  430. /package/build/esm/{usb.test.d.ts → bluetooth/flashing/flashing-makecode.test.d.ts} +0 -0
  431. /package/build/esm/{flashing → bluetooth/flashing}/flashing-v1.d.ts +0 -0
  432. /package/build/esm/{flashing → bluetooth/flashing}/flashing-v1.js +0 -0
  433. /package/build/esm/{flashing → bluetooth/flashing}/zip.d.ts +0 -0
  434. /package/build/esm/{flashing → bluetooth/flashing}/zip.js +0 -0
  435. /package/build/esm/{flashing → bluetooth/flashing}/zip.test.js +0 -0
  436. /package/build/esm/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +0 -0
  437. /package/build/esm/{dfu-service.d.ts → bluetooth/services/dfu-service.d.ts} +0 -0
  438. /package/build/esm/{usb-serial-protocol.d.ts → radio-bridge/serial-protocol.d.ts} +0 -0
  439. /package/build/esm/{promise-queue.d.ts → usb/promise-queue.d.ts} +0 -0
  440. /package/build/esm/{promise-queue.js → usb/promise-queue.js} +0 -0
  441. /package/build/esm/{promise-queue.test.js → usb/promise-queue.test.js} +0 -0
@@ -0,0 +1,137 @@
1
+ /**
2
+ * (c) 2026, Micro:bit Educational Foundation and contributors
3
+ *
4
+ * Derived from dapjs (https://github.com/ARMmbed/dapjs) which is
5
+ * Copyright (c) Arm Limited 2018
6
+ * Copyright (c) Microsoft Corporation
7
+ *
8
+ * SPDX-License-Identifier: MIT
9
+ *
10
+ * ARM Debug Interface (ADI) layer for SWD access to a Cortex-M target,
11
+ * derived from dapjs (https://github.com/ARMmbed/dapjs). This file and
12
+ * its siblings (transport.ts, cmsis-dap.ts, cortex-m.ts, daplink.ts)
13
+ * are a minimal reimplementation covering only the features needed for
14
+ * micro:bit.
15
+ *
16
+ * ArmDebugSwd manages the SWD connection lifecycle and provides
17
+ * register-level access to the Debug Port (DP) and Access Port (AP).
18
+ * It sits between CmsisDapUsb (command framing) and higher-level consumers
19
+ * like CortexM (processor control) and DAPLink (flash/serial).
20
+ *
21
+ * Key responsibilities:
22
+ * - SWD initialisation sequence (JTAG-to-SWD switch, power-up, ID read)
23
+ * - Automatic drain-and-retry on stale USB responses after page reload
24
+ * - DP_SELECT and AP_CSW register caching to reduce redundant writes
25
+ * - Memory read/write via AP_TAR + AP_DRW, handling page boundaries
26
+ * and block-transfer size limits
27
+ *
28
+ * Protocol references:
29
+ * - ARM ADI: https://developer.arm.com/documentation/ihi0031/a/
30
+ * - DAPLink: https://github.com/ARMmbed/DAPLink
31
+ *
32
+ * The dapjs license is included below:
33
+ *
34
+ * DAPjs
35
+ * Copyright (c) Arm Limited 2018
36
+ * Copyright (c) Microsoft Corporation
37
+ *
38
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
39
+ * of this software and associated documentation files (the "Software"), to deal
40
+ * in the Software without restriction, including without limitation the rights
41
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
42
+ * copies of the Software, and to permit persons to whom the Software is
43
+ * furnished to do so, subject to the following conditions:
44
+ *
45
+ * The above copyright notice and this permission notice shall be included in
46
+ * all copies or substantial portions of the Software.
47
+ *
48
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
49
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
50
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
51
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
52
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
53
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
54
+ * IN THE SOFTWARE.
55
+ */
56
+ import { Logging } from "../logging.js";
57
+ import { type CmsisDap, DapOperation } from "./cmsis-dap.js";
58
+ export declare function waitFor(fn: () => Promise<boolean>, timeout?: number): Promise<void>;
59
+ export interface ArmDebug {
60
+ readonly dap: CmsisDap;
61
+ readonly isOpen: boolean;
62
+ /** Read a 32-bit word from a memory-mapped address. */
63
+ readMem32(address: number): Promise<number>;
64
+ /** Write a 32-bit word to a memory-mapped address. */
65
+ writeMem32(address: number, value: number): Promise<void>;
66
+ /** Build DAP operations for reading a 32-bit word (for use with transferSequence). */
67
+ readMem32Ops(address: number): DapOperation[];
68
+ /** Build DAP operations for writing a 32-bit word (for use with transferSequence). */
69
+ writeMem32Ops(address: number, value: number): DapOperation[];
70
+ /**
71
+ * Read a block of 32-bit words from memory.
72
+ * Handles TAR auto-increment page boundaries and block size limits.
73
+ */
74
+ readBlock(address: number, count: number): Promise<Uint32Array>;
75
+ /**
76
+ * Write a block of 32-bit words to memory.
77
+ * Handles TAR auto-increment page boundaries and block size limits.
78
+ */
79
+ writeBlock(address: number, values: Uint32Array): Promise<void>;
80
+ /**
81
+ * Execute a sequence of operation groups as individual transfers.
82
+ * Each group is sent as a separate DAP_TRANSFER to guarantee that
83
+ * all operations within a group execute atomically on the wire.
84
+ */
85
+ transferSequence(groups: DapOperation[][]): Promise<Uint32Array>;
86
+ /**
87
+ * Reset cached protocol state without closing the transport.
88
+ * Call after operations that reset the target (e.g. DAPLink flash reset).
89
+ */
90
+ resetState(): void;
91
+ /**
92
+ * Connect to the target with automatic drain-and-retry on stale responses.
93
+ */
94
+ connect(maxRetries?: number): Promise<void>;
95
+ disconnect(): Promise<void>;
96
+ /**
97
+ * Reset cached state and reconnect without closing the transport.
98
+ * Use after operations like DAPLink flash that leave the protocol state
99
+ * stale but don't require full re-enumeration.
100
+ */
101
+ reinit(): Promise<void>;
102
+ }
103
+ export declare class ArmDebugSwd implements ArmDebug {
104
+ readonly dap: CmsisDap;
105
+ private logging;
106
+ private swdConnected;
107
+ private selectedAddress?;
108
+ private cswValue?;
109
+ constructor(dap: CmsisDap, logging: Logging);
110
+ get isOpen(): boolean;
111
+ /**
112
+ * Initialize SWD: connect to the target, set up the debug port,
113
+ * and power up the debug and system domains.
114
+ */
115
+ private connectOnce;
116
+ connect(maxRetries?: number): Promise<void>;
117
+ resetState(): void;
118
+ disconnect(): Promise<void>;
119
+ reinit(): Promise<void>;
120
+ private readDPOps;
121
+ private writeDPOps;
122
+ private readAPOps;
123
+ private writeAPOps;
124
+ readMem32Ops(address: number): DapOperation[];
125
+ writeMem32Ops(address: number, value: number): DapOperation[];
126
+ /**
127
+ * Execute a batch of DAP transfer operations, deduplicating writes
128
+ * to DP_SELECT and AP_CSW that match cached state.
129
+ */
130
+ private transfer;
131
+ transferSequence(groups: DapOperation[][]): Promise<Uint32Array>;
132
+ private readDP;
133
+ readMem32(address: number): Promise<number>;
134
+ writeMem32(address: number, value: number): Promise<void>;
135
+ readBlock(address: number, count: number): Promise<Uint32Array>;
136
+ writeBlock(address: number, values: Uint32Array): Promise<void>;
137
+ }
@@ -0,0 +1,409 @@
1
+ /**
2
+ * (c) 2026, Micro:bit Educational Foundation and contributors
3
+ *
4
+ * Derived from dapjs (https://github.com/ARMmbed/dapjs) which is
5
+ * Copyright (c) Arm Limited 2018
6
+ * Copyright (c) Microsoft Corporation
7
+ *
8
+ * SPDX-License-Identifier: MIT
9
+ *
10
+ * ARM Debug Interface (ADI) layer for SWD access to a Cortex-M target,
11
+ * derived from dapjs (https://github.com/ARMmbed/dapjs). This file and
12
+ * its siblings (transport.ts, cmsis-dap.ts, cortex-m.ts, daplink.ts)
13
+ * are a minimal reimplementation covering only the features needed for
14
+ * micro:bit.
15
+ *
16
+ * ArmDebugSwd manages the SWD connection lifecycle and provides
17
+ * register-level access to the Debug Port (DP) and Access Port (AP).
18
+ * It sits between CmsisDapUsb (command framing) and higher-level consumers
19
+ * like CortexM (processor control) and DAPLink (flash/serial).
20
+ *
21
+ * Key responsibilities:
22
+ * - SWD initialisation sequence (JTAG-to-SWD switch, power-up, ID read)
23
+ * - Automatic drain-and-retry on stale USB responses after page reload
24
+ * - DP_SELECT and AP_CSW register caching to reduce redundant writes
25
+ * - Memory read/write via AP_TAR + AP_DRW, handling page boundaries
26
+ * and block-transfer size limits
27
+ *
28
+ * Protocol references:
29
+ * - ARM ADI: https://developer.arm.com/documentation/ihi0031/a/
30
+ * - DAPLink: https://github.com/ARMmbed/DAPLink
31
+ *
32
+ * The dapjs license is included below:
33
+ *
34
+ * DAPjs
35
+ * Copyright (c) Arm Limited 2018
36
+ * Copyright (c) Microsoft Corporation
37
+ *
38
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
39
+ * of this software and associated documentation files (the "Software"), to deal
40
+ * in the Software without restriction, including without limitation the rights
41
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
42
+ * copies of the Software, and to permit persons to whom the Software is
43
+ * furnished to do so, subject to the following conditions:
44
+ *
45
+ * The above copyright notice and this permission notice shall be included in
46
+ * all copies or substantial portions of the Software.
47
+ *
48
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
49
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
50
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
51
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
52
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
53
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
54
+ * IN THE SOFTWARE.
55
+ */
56
+ import { DeviceError } from "../device.js";
57
+ import { ABORT_ALL, AP, DapResponseMismatchError, DP, READ, WRITE, } from "./cmsis-dap.js";
58
+ // ---------------------------------------------------------------------------
59
+ // Constants
60
+ // ---------------------------------------------------------------------------
61
+ // DP registers
62
+ const DP_ABORT = 0x0;
63
+ const DP_DPIDR = 0x0;
64
+ const DP_CTRL_STAT = 0x4;
65
+ const DP_SELECT = 0x8;
66
+ // AP registers (values are byte addresses, pre-shifted to match the DAP
67
+ // transfer operation encoding where bits [3:2] carry A[3:2])
68
+ const AP_CSW = 0x00;
69
+ const AP_TAR = 0x04;
70
+ const AP_DRW = 0x0c;
71
+ // CSW mask values
72
+ const CSW_SIZE32 = 1 << 1;
73
+ const CSW_ADDRINC_SINGLE = 1 << 4;
74
+ const CSW_DBGSTATUS = 1 << 6;
75
+ const CSW_RESERVED = 1 << 24;
76
+ const CSW_HPROT1 = 1 << 25;
77
+ const CSW_MASTERTYPE = 1 << 29;
78
+ const CSW_VALUE = CSW_ADDRINC_SINGLE |
79
+ CSW_DBGSTATUS |
80
+ CSW_RESERVED |
81
+ CSW_HPROT1 |
82
+ CSW_MASTERTYPE;
83
+ // Bank select masks
84
+ const APSEL = 0xff000000;
85
+ const APBANKSEL = 0x000000f0;
86
+ // CTRL/STAT register bits
87
+ const CSYSPWRUPREQ = 1 << 30;
88
+ const CDBGPWRUPREQ = 1 << 28;
89
+ const CSYSPWRUPACK = 1 << 31;
90
+ const CDBGPWRUPACK = 1 << 29;
91
+ // TAR auto-increment page size (1KB, implementation-defined minimum)
92
+ const AUTOINC_PAGESIZE = 1 << 10;
93
+ // Clock frequency (10 MHz)
94
+ const CLOCK_FREQUENCY = 10_000_000;
95
+ // Wait delay for polling loops
96
+ const WAIT_DELAY = 100;
97
+ // ---------------------------------------------------------------------------
98
+ // Utilities
99
+ // ---------------------------------------------------------------------------
100
+ export async function waitFor(fn, timeout = 10_000) {
101
+ const deadline = timeout > 0 ? Date.now() + timeout : 0;
102
+ while (true) {
103
+ if (await fn())
104
+ return;
105
+ if (deadline && Date.now() > deadline) {
106
+ throw new DeviceError({
107
+ code: "timeout-error",
108
+ message: "Wait timed out",
109
+ });
110
+ }
111
+ await new Promise((resolve) => setTimeout(resolve, WAIT_DELAY));
112
+ }
113
+ }
114
+ function concatUint32Arrays(arrays) {
115
+ if (arrays.length === 1)
116
+ return arrays[0];
117
+ let length = 0;
118
+ for (const a of arrays)
119
+ length += a.length;
120
+ const result = new Uint32Array(length);
121
+ let offset = 0;
122
+ for (const a of arrays) {
123
+ result.set(a, offset);
124
+ offset += a.length;
125
+ }
126
+ return result;
127
+ }
128
+ export class ArmDebugSwd {
129
+ constructor(dap, logging) {
130
+ Object.defineProperty(this, "dap", {
131
+ enumerable: true,
132
+ configurable: true,
133
+ writable: true,
134
+ value: dap
135
+ });
136
+ Object.defineProperty(this, "logging", {
137
+ enumerable: true,
138
+ configurable: true,
139
+ writable: true,
140
+ value: logging
141
+ });
142
+ Object.defineProperty(this, "swdConnected", {
143
+ enumerable: true,
144
+ configurable: true,
145
+ writable: true,
146
+ value: false
147
+ });
148
+ // ADI state (register caching)
149
+ Object.defineProperty(this, "selectedAddress", {
150
+ enumerable: true,
151
+ configurable: true,
152
+ writable: true,
153
+ value: void 0
154
+ });
155
+ Object.defineProperty(this, "cswValue", {
156
+ enumerable: true,
157
+ configurable: true,
158
+ writable: true,
159
+ value: void 0
160
+ });
161
+ }
162
+ get isOpen() {
163
+ return this.dap.isOpen;
164
+ }
165
+ // ---- SWD lifecycle ----
166
+ /**
167
+ * Initialize SWD: connect to the target, set up the debug port,
168
+ * and power up the debug and system domains.
169
+ */
170
+ async connectOnce() {
171
+ if (this.swdConnected)
172
+ return;
173
+ await this.dap.open();
174
+ // SWD protocol setup. On failure the transport is left open so the
175
+ // caller can drain stale responses and retry without re-opening.
176
+ try {
177
+ await this.dap.swjClock(CLOCK_FREQUENCY);
178
+ await this.dap.connect();
179
+ }
180
+ catch (error) {
181
+ try {
182
+ await this.dap.clearAbort();
183
+ }
184
+ catch {
185
+ /* ignore */
186
+ }
187
+ throw error;
188
+ }
189
+ await this.dap.configureTransfer(0, 100, 0);
190
+ // Select SWD protocol
191
+ await this.dap.swjSequence(new Uint8Array([0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]));
192
+ await this.dap.swjSequence(new Uint8Array([0x9e, 0xe7]));
193
+ await this.dap.swjSequence(new Uint8Array([0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]));
194
+ await this.dap.swjSequence(new Uint8Array([0x00]));
195
+ this.swdConnected = true;
196
+ // Initialize debug port and power up
197
+ try {
198
+ await this.readDP(DP_DPIDR);
199
+ await this.transferSequence([
200
+ this.writeDPOps(DP_ABORT, ABORT_ALL),
201
+ this.writeDPOps(DP_SELECT, AP_CSW),
202
+ this.writeDPOps(DP_CTRL_STAT, CSYSPWRUPREQ | CDBGPWRUPREQ),
203
+ ]);
204
+ const mask = CDBGPWRUPACK | CSYSPWRUPACK;
205
+ await waitFor(async () => {
206
+ const status = await this.readDP(DP_CTRL_STAT);
207
+ return (status & mask) === mask;
208
+ }, 5000);
209
+ }
210
+ catch (error) {
211
+ await this.disconnect();
212
+ throw error;
213
+ }
214
+ this.logging.log("SWD connected");
215
+ }
216
+ async connect(maxRetries = 3) {
217
+ let lastError;
218
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
219
+ try {
220
+ if (attempt > 0) {
221
+ this.logging.log(`Connection retry attempt ${attempt + 1}/${maxRetries}`);
222
+ await this.dap.drainStaleResponses();
223
+ }
224
+ await this.connectOnce();
225
+ return;
226
+ }
227
+ catch (e) {
228
+ if (e instanceof DapResponseMismatchError) {
229
+ lastError = e;
230
+ this.logging.log(`Stale response during connect: ${e.message}`);
231
+ continue;
232
+ }
233
+ throw e;
234
+ }
235
+ }
236
+ throw lastError || new Error("Connection failed after retries");
237
+ }
238
+ resetState() {
239
+ this.swdConnected = false;
240
+ this.selectedAddress = undefined;
241
+ this.cswValue = undefined;
242
+ }
243
+ async disconnect() {
244
+ if (!this.swdConnected)
245
+ return;
246
+ try {
247
+ await this.dap.disconnect();
248
+ }
249
+ catch {
250
+ this.logging.log("Disconnect failed, clearing abort");
251
+ try {
252
+ await this.dap.clearAbort();
253
+ }
254
+ catch {
255
+ /* ignore */
256
+ }
257
+ }
258
+ await this.dap.close();
259
+ this.resetState();
260
+ this.logging.log("SWD disconnected");
261
+ }
262
+ async reinit() {
263
+ this.logging.log("Reinitialising SWD");
264
+ this.resetState();
265
+ await this.connectOnce();
266
+ }
267
+ // ---- DP/AP register helpers ----
268
+ readDPOps(register) {
269
+ return [{ mode: READ, port: DP, register }];
270
+ }
271
+ writeDPOps(register, value) {
272
+ return [{ mode: WRITE, port: DP, register, value }];
273
+ }
274
+ readAPOps(register) {
275
+ const address = (register & APSEL) | (register & APBANKSEL);
276
+ return [
277
+ ...this.writeDPOps(DP_SELECT, address),
278
+ { mode: READ, port: AP, register },
279
+ ];
280
+ }
281
+ writeAPOps(register, value) {
282
+ const address = (register & APSEL) | (register & APBANKSEL);
283
+ return [
284
+ ...this.writeDPOps(DP_SELECT, address),
285
+ { mode: WRITE, port: AP, register, value },
286
+ ];
287
+ }
288
+ readMem32Ops(address) {
289
+ return [
290
+ ...this.writeAPOps(AP_CSW, CSW_VALUE | CSW_SIZE32),
291
+ ...this.writeAPOps(AP_TAR, address),
292
+ ...this.readAPOps(AP_DRW),
293
+ ];
294
+ }
295
+ writeMem32Ops(address, value) {
296
+ return [
297
+ ...this.writeAPOps(AP_CSW, CSW_VALUE | CSW_SIZE32),
298
+ ...this.writeAPOps(AP_TAR, address),
299
+ ...this.writeAPOps(AP_DRW, value),
300
+ ];
301
+ }
302
+ // ---- Transfer with register caching ----
303
+ /**
304
+ * Execute a batch of DAP transfer operations, deduplicating writes
305
+ * to DP_SELECT and AP_CSW that match cached state.
306
+ */
307
+ async transfer(operations) {
308
+ const filtered = operations.filter((op) => {
309
+ if (op.mode !== WRITE)
310
+ return true;
311
+ if (op.port === DP && op.register === DP_SELECT) {
312
+ return op.value !== this.selectedAddress;
313
+ }
314
+ if (op.port === AP && op.register === AP_CSW) {
315
+ return op.value !== this.cswValue;
316
+ }
317
+ return true;
318
+ });
319
+ if (filtered.length === 0) {
320
+ return new Uint32Array(0);
321
+ }
322
+ try {
323
+ const result = await this.dap.transfer(filtered);
324
+ // Update cache on success
325
+ for (const op of filtered) {
326
+ if (op.mode !== WRITE)
327
+ continue;
328
+ if (op.port === DP && op.register === DP_SELECT) {
329
+ this.selectedAddress = op.value;
330
+ }
331
+ else if (op.port === AP && op.register === AP_CSW) {
332
+ this.cswValue = op.value;
333
+ }
334
+ }
335
+ return result;
336
+ }
337
+ catch (error) {
338
+ // Transfer failed — invalidate the cache
339
+ this.selectedAddress = undefined;
340
+ this.cswValue = undefined;
341
+ throw error;
342
+ }
343
+ }
344
+ async transferSequence(groups) {
345
+ const results = [];
346
+ for (const group of groups) {
347
+ const result = await this.transfer(group);
348
+ results.push(result);
349
+ }
350
+ return concatUint32Arrays(results);
351
+ }
352
+ // ---- Memory operations ----
353
+ async readDP(register) {
354
+ const result = await this.transfer(this.readDPOps(register));
355
+ return result[0];
356
+ }
357
+ async readMem32(address) {
358
+ const result = await this.transfer(this.readMem32Ops(address));
359
+ return result[0];
360
+ }
361
+ async writeMem32(address, value) {
362
+ await this.transfer(this.writeMem32Ops(address, value));
363
+ }
364
+ async readBlock(address, count) {
365
+ const results = [];
366
+ let remaining = count;
367
+ let addr = address;
368
+ while (remaining > 0) {
369
+ const nextPageOffset = AUTOINC_PAGESIZE - (addr % AUTOINC_PAGESIZE);
370
+ const chunkWords = Math.min(remaining, nextPageOffset / 4);
371
+ await this.transferSequence([
372
+ this.writeAPOps(AP_CSW, CSW_VALUE | CSW_SIZE32),
373
+ this.writeAPOps(AP_TAR, addr),
374
+ ]);
375
+ let subRemaining = chunkWords;
376
+ while (subRemaining > 0) {
377
+ const subChunk = Math.min(subRemaining, Math.floor(this.dap.blockSize / 4));
378
+ const result = await this.dap.transferBlockRead(AP, AP_DRW, subChunk);
379
+ results.push(result);
380
+ subRemaining -= subChunk;
381
+ }
382
+ addr += chunkWords * 4;
383
+ remaining -= chunkWords;
384
+ }
385
+ return concatUint32Arrays(results);
386
+ }
387
+ async writeBlock(address, values) {
388
+ let index = 0;
389
+ let addr = address;
390
+ while (index < values.length) {
391
+ const nextPageOffset = AUTOINC_PAGESIZE - (addr % AUTOINC_PAGESIZE);
392
+ const chunkWords = Math.min(values.length - index, nextPageOffset / 4);
393
+ const chunk = values.slice(index, index + chunkWords);
394
+ await this.transferSequence([
395
+ this.writeAPOps(AP_CSW, CSW_VALUE | CSW_SIZE32),
396
+ this.writeAPOps(AP_TAR, addr),
397
+ ]);
398
+ let subIndex = 0;
399
+ while (subIndex < chunk.length) {
400
+ const subChunk = chunk.slice(subIndex, subIndex + Math.floor(this.dap.blockSize / 4));
401
+ await this.dap.transferBlockWrite(AP, AP_DRW, subChunk);
402
+ subIndex += Math.floor(this.dap.blockSize / 4);
403
+ }
404
+ addr += chunkWords * 4;
405
+ index += chunkWords;
406
+ }
407
+ }
408
+ }
409
+ //# sourceMappingURL=arm-debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arm-debug.js","sourceRoot":"","sources":["../../../src/usb/arm-debug.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};