rp2040js 0.17.16 → 0.18.0

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 (183) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/clock/clock.d.ts +11 -11
  3. package/dist/cjs/clock/clock.js +2 -2
  4. package/dist/cjs/clock/mock-clock.d.ts +17 -17
  5. package/dist/cjs/clock/mock-clock.js +52 -52
  6. package/dist/cjs/clock/realtime-clock.d.ts +23 -23
  7. package/dist/cjs/clock/realtime-clock.js +73 -73
  8. package/dist/cjs/cortex-m0-core.d.ts +87 -87
  9. package/dist/cjs/cortex-m0-core.js +1251 -1251
  10. package/dist/cjs/gdb/gdb-connection.d.ts +11 -11
  11. package/dist/cjs/gdb/gdb-connection.js +57 -57
  12. package/dist/cjs/gdb/gdb-server.d.ts +23 -23
  13. package/dist/cjs/gdb/gdb-server.js +232 -232
  14. package/dist/cjs/gdb/gdb-tcp-server.d.ts +10 -10
  15. package/dist/cjs/gdb/gdb-tcp-server.js +34 -34
  16. package/dist/cjs/gdb/gdb-utils.d.ts +9 -9
  17. package/dist/cjs/gdb/gdb-utils.js +48 -48
  18. package/dist/cjs/gpio-pin.d.ts +56 -56
  19. package/dist/cjs/gpio-pin.js +216 -216
  20. package/dist/cjs/index.d.ts +11 -11
  21. package/dist/cjs/index.js +36 -36
  22. package/dist/cjs/interpolator.d.ts +36 -36
  23. package/dist/cjs/interpolator.js +150 -150
  24. package/dist/cjs/irq.d.ts +29 -29
  25. package/dist/cjs/irq.js +33 -33
  26. package/dist/cjs/peripherals/adc.d.ts +52 -52
  27. package/dist/cjs/peripherals/adc.js +261 -261
  28. package/dist/cjs/peripherals/busctrl.d.ts +10 -10
  29. package/dist/cjs/peripherals/busctrl.js +84 -84
  30. package/dist/cjs/peripherals/clocks.d.ts +9 -9
  31. package/dist/cjs/peripherals/clocks.js +42 -42
  32. package/dist/cjs/peripherals/dma.d.ts +109 -109
  33. package/dist/cjs/peripherals/dma.js +520 -520
  34. package/dist/cjs/peripherals/i2c.d.ts +54 -54
  35. package/dist/cjs/peripherals/i2c.js +458 -458
  36. package/dist/cjs/peripherals/io.d.ts +11 -11
  37. package/dist/cjs/peripherals/io.js +100 -100
  38. package/dist/cjs/peripherals/pads.d.ts +13 -13
  39. package/dist/cjs/peripherals/pads.js +58 -58
  40. package/dist/cjs/peripherals/peripheral.d.ts +22 -22
  41. package/dist/cjs/peripherals/peripheral.js +61 -61
  42. package/dist/cjs/peripherals/pio.d.ts +120 -120
  43. package/dist/cjs/peripherals/pio.js +1086 -1086
  44. package/dist/cjs/peripherals/ppb.d.ts +25 -25
  45. package/dist/cjs/peripherals/ppb.js +229 -229
  46. package/dist/cjs/peripherals/pwm.d.ts +65 -65
  47. package/dist/cjs/peripherals/pwm.js +372 -372
  48. package/dist/cjs/peripherals/reset.d.ts +8 -8
  49. package/dist/cjs/peripherals/reset.js +40 -40
  50. package/dist/cjs/peripherals/rtc.d.ts +10 -10
  51. package/dist/cjs/peripherals/rtc.js +74 -74
  52. package/dist/cjs/peripherals/spi.d.ts +38 -30
  53. package/dist/cjs/peripherals/spi.js +240 -218
  54. package/dist/cjs/peripherals/ssi.d.ts +6 -6
  55. package/dist/cjs/peripherals/ssi.js +43 -43
  56. package/dist/cjs/peripherals/syscfg.d.ts +5 -5
  57. package/dist/cjs/peripherals/syscfg.js +26 -26
  58. package/dist/cjs/peripherals/sysinfo.d.ts +4 -4
  59. package/dist/cjs/peripherals/sysinfo.js +22 -22
  60. package/dist/cjs/peripherals/tbman.d.ts +4 -4
  61. package/dist/cjs/peripherals/tbman.js +17 -17
  62. package/dist/cjs/peripherals/timer.d.ts +18 -18
  63. package/dist/cjs/peripherals/timer.js +156 -156
  64. package/dist/cjs/peripherals/uart.d.ts +31 -28
  65. package/dist/cjs/peripherals/uart.js +132 -135
  66. package/dist/cjs/peripherals/usb.d.ts +29 -29
  67. package/dist/cjs/peripherals/usb.js +309 -309
  68. package/dist/cjs/rp2040.d.ts +71 -71
  69. package/dist/cjs/rp2040.js +361 -346
  70. package/dist/cjs/sio.d.ts +21 -21
  71. package/dist/cjs/sio.js +425 -425
  72. package/dist/cjs/usb/cdc.d.ts +20 -20
  73. package/dist/cjs/usb/cdc.js +126 -126
  74. package/dist/cjs/usb/interfaces.d.ts +47 -47
  75. package/dist/cjs/usb/interfaces.js +46 -46
  76. package/dist/cjs/usb/setup.d.ts +5 -5
  77. package/dist/cjs/usb/setup.js +53 -53
  78. package/dist/cjs/utils/assembler.d.ts +79 -79
  79. package/dist/cjs/utils/assembler.js +328 -328
  80. package/dist/cjs/utils/bit.d.ts +3 -3
  81. package/dist/cjs/utils/bit.js +15 -15
  82. package/dist/cjs/utils/fifo.d.ts +15 -15
  83. package/dist/cjs/utils/fifo.js +56 -56
  84. package/dist/cjs/utils/logging.d.ts +23 -23
  85. package/dist/cjs/utils/logging.js +48 -48
  86. package/dist/cjs/utils/pio-assembler.d.ts +45 -45
  87. package/dist/cjs/utils/pio-assembler.js +87 -87
  88. package/dist/cjs/utils/time.d.ts +2 -2
  89. package/dist/cjs/utils/time.js +32 -32
  90. package/dist/cjs/utils/timer32.d.ts +57 -57
  91. package/dist/cjs/utils/timer32.js +208 -208
  92. package/dist/esm/clock/clock.d.ts +11 -11
  93. package/dist/esm/clock/clock.js +1 -1
  94. package/dist/esm/clock/mock-clock.d.ts +17 -17
  95. package/dist/esm/clock/mock-clock.js +47 -47
  96. package/dist/esm/clock/realtime-clock.d.ts +23 -23
  97. package/dist/esm/clock/realtime-clock.js +68 -68
  98. package/dist/esm/cortex-m0-core.d.ts +87 -87
  99. package/dist/esm/cortex-m0-core.js +1247 -1247
  100. package/dist/esm/gdb/gdb-connection.d.ts +11 -11
  101. package/dist/esm/gdb/gdb-connection.js +53 -53
  102. package/dist/esm/gdb/gdb-server.d.ts +23 -23
  103. package/dist/esm/gdb/gdb-server.js +228 -228
  104. package/dist/esm/gdb/gdb-tcp-server.d.ts +10 -10
  105. package/dist/esm/gdb/gdb-tcp-server.js +30 -30
  106. package/dist/esm/gdb/gdb-utils.d.ts +9 -9
  107. package/dist/esm/gdb/gdb-utils.js +36 -36
  108. package/dist/esm/gpio-pin.d.ts +56 -56
  109. package/dist/esm/gpio-pin.js +212 -212
  110. package/dist/esm/index.d.ts +11 -11
  111. package/dist/esm/index.js +11 -11
  112. package/dist/esm/interpolator.d.ts +36 -36
  113. package/dist/esm/interpolator.js +145 -145
  114. package/dist/esm/irq.d.ts +29 -29
  115. package/dist/esm/irq.js +30 -30
  116. package/dist/esm/peripherals/adc.d.ts +52 -52
  117. package/dist/esm/peripherals/adc.js +257 -257
  118. package/dist/esm/peripherals/busctrl.d.ts +10 -10
  119. package/dist/esm/peripherals/busctrl.js +80 -80
  120. package/dist/esm/peripherals/clocks.d.ts +9 -9
  121. package/dist/esm/peripherals/clocks.js +38 -38
  122. package/dist/esm/peripherals/dma.d.ts +109 -109
  123. package/dist/esm/peripherals/dma.js +515 -515
  124. package/dist/esm/peripherals/i2c.d.ts +54 -54
  125. package/dist/esm/peripherals/i2c.js +454 -454
  126. package/dist/esm/peripherals/io.d.ts +11 -11
  127. package/dist/esm/peripherals/io.js +96 -96
  128. package/dist/esm/peripherals/pads.d.ts +13 -13
  129. package/dist/esm/peripherals/pads.js +54 -54
  130. package/dist/esm/peripherals/peripheral.d.ts +22 -22
  131. package/dist/esm/peripherals/peripheral.js +55 -55
  132. package/dist/esm/peripherals/pio.d.ts +120 -120
  133. package/dist/esm/peripherals/pio.js +1081 -1081
  134. package/dist/esm/peripherals/ppb.d.ts +25 -25
  135. package/dist/esm/peripherals/ppb.js +225 -225
  136. package/dist/esm/peripherals/pwm.d.ts +65 -65
  137. package/dist/esm/peripherals/pwm.js +368 -368
  138. package/dist/esm/peripherals/reset.d.ts +8 -8
  139. package/dist/esm/peripherals/reset.js +36 -36
  140. package/dist/esm/peripherals/rtc.d.ts +10 -10
  141. package/dist/esm/peripherals/rtc.js +70 -70
  142. package/dist/esm/peripherals/spi.d.ts +38 -30
  143. package/dist/esm/peripherals/spi.js +236 -214
  144. package/dist/esm/peripherals/ssi.d.ts +6 -6
  145. package/dist/esm/peripherals/ssi.js +39 -39
  146. package/dist/esm/peripherals/syscfg.d.ts +5 -5
  147. package/dist/esm/peripherals/syscfg.js +22 -22
  148. package/dist/esm/peripherals/sysinfo.d.ts +4 -4
  149. package/dist/esm/peripherals/sysinfo.js +18 -18
  150. package/dist/esm/peripherals/tbman.d.ts +4 -4
  151. package/dist/esm/peripherals/tbman.js +13 -13
  152. package/dist/esm/peripherals/timer.d.ts +18 -18
  153. package/dist/esm/peripherals/timer.js +152 -152
  154. package/dist/esm/peripherals/uart.d.ts +31 -28
  155. package/dist/esm/peripherals/uart.js +128 -131
  156. package/dist/esm/peripherals/usb.d.ts +29 -29
  157. package/dist/esm/peripherals/usb.js +305 -305
  158. package/dist/esm/rp2040.d.ts +71 -71
  159. package/dist/esm/rp2040.js +357 -342
  160. package/dist/esm/sio.d.ts +21 -21
  161. package/dist/esm/sio.js +421 -421
  162. package/dist/esm/usb/cdc.d.ts +20 -20
  163. package/dist/esm/usb/cdc.js +121 -121
  164. package/dist/esm/usb/interfaces.d.ts +47 -47
  165. package/dist/esm/usb/interfaces.js +43 -43
  166. package/dist/esm/usb/setup.d.ts +5 -5
  167. package/dist/esm/usb/setup.js +46 -46
  168. package/dist/esm/utils/assembler.d.ts +79 -79
  169. package/dist/esm/utils/assembler.js +245 -245
  170. package/dist/esm/utils/bit.d.ts +3 -3
  171. package/dist/esm/utils/bit.js +9 -9
  172. package/dist/esm/utils/fifo.d.ts +15 -15
  173. package/dist/esm/utils/fifo.js +52 -52
  174. package/dist/esm/utils/logging.d.ts +23 -23
  175. package/dist/esm/utils/logging.js +44 -44
  176. package/dist/esm/utils/pio-assembler.d.ts +45 -45
  177. package/dist/esm/utils/pio-assembler.js +75 -75
  178. package/dist/esm/utils/time.d.ts +2 -2
  179. package/dist/esm/utils/time.js +27 -27
  180. package/dist/esm/utils/timer32.d.ts +57 -57
  181. package/dist/esm/utils/timer32.js +203 -203
  182. package/package.json +34 -22
  183. package/dist/esm/package.json +0 -1
package/README.md CHANGED
@@ -30,7 +30,7 @@ npm start
30
30
 
31
31
  ### MicroPython code
32
32
 
33
- To run the MicroPython demo, first download [rp2-pico-20210902-v1.17.uf2](https://micropython.org/resources/firmware/rp2-pico-20210902-v1.17.uf2), place it in the rp2040js root directory, then run:
33
+ To run the MicroPython demo, first download [RPI_PICO-20230426-v1.20.0.uf2](https://micropython.org/resources/firmware/RPI_PICO-20230426-v1.20.0.uf2), place it in the rp2040js root directory, then run:
34
34
 
35
35
  ```
36
36
  npm install
@@ -1,11 +1,11 @@
1
- export interface IClockTimer {
2
- pause(currentMicros: number): void;
3
- resume(currentMicros: number): void;
4
- }
5
- export interface IClock {
6
- readonly micros: number;
7
- pause(): void;
8
- resume(): void;
9
- createTimer(deltaMicros: number, callback: () => void): IClockTimer;
10
- deleteTimer(timer: IClockTimer): void;
11
- }
1
+ export interface IClockTimer {
2
+ pause(currentMicros: number): void;
3
+ resume(currentMicros: number): void;
4
+ }
5
+ export interface IClock {
6
+ readonly micros: number;
7
+ pause(): void;
8
+ resume(): void;
9
+ createTimer(deltaMicros: number, callback: () => void): IClockTimer;
10
+ deleteTimer(timer: IClockTimer): void;
11
+ }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,17 +1,17 @@
1
- import { IClock, IClockTimer } from './clock';
2
- export declare class MockClockTimer implements IClockTimer {
3
- readonly micros: number;
4
- readonly callback: () => void;
5
- constructor(micros: number, callback: () => void);
6
- pause(): void;
7
- resume(): void;
8
- }
9
- export declare class MockClock implements IClock {
10
- micros: number;
11
- readonly timers: MockClockTimer[];
12
- pause(): void;
13
- resume(): void;
14
- advance(deltaMicros: number): void;
15
- createTimer(deltaMicros: number, callback: () => void): MockClockTimer;
16
- deleteTimer(timer: IClockTimer): void;
17
- }
1
+ import { IClock, IClockTimer } from './clock.js';
2
+ export declare class MockClockTimer implements IClockTimer {
3
+ readonly micros: number;
4
+ readonly callback: () => void;
5
+ constructor(micros: number, callback: () => void);
6
+ pause(): void;
7
+ resume(): void;
8
+ }
9
+ export declare class MockClock implements IClock {
10
+ micros: number;
11
+ readonly timers: MockClockTimer[];
12
+ pause(): void;
13
+ resume(): void;
14
+ advance(deltaMicros: number): void;
15
+ createTimer(deltaMicros: number, callback: () => void): MockClockTimer;
16
+ deleteTimer(timer: IClockTimer): void;
17
+ }
@@ -1,52 +1,52 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MockClock = exports.MockClockTimer = void 0;
4
- class MockClockTimer {
5
- constructor(micros, callback) {
6
- this.micros = micros;
7
- this.callback = callback;
8
- }
9
- pause() {
10
- /* intentionally empty */
11
- }
12
- resume() {
13
- /* intentionally empty */
14
- }
15
- }
16
- exports.MockClockTimer = MockClockTimer;
17
- class MockClock {
18
- constructor() {
19
- this.micros = 0;
20
- this.timers = [];
21
- }
22
- pause() {
23
- /* intentionally empty */
24
- }
25
- resume() {
26
- /* intentionally empty */
27
- }
28
- advance(deltaMicros) {
29
- const { timers } = this;
30
- const targetTime = this.micros + Math.max(deltaMicros, 0.01);
31
- while (timers[0] && timers[0].micros <= targetTime) {
32
- const timer = timers.shift();
33
- if (timer) {
34
- this.micros = timer.micros;
35
- timer.callback();
36
- }
37
- }
38
- }
39
- createTimer(deltaMicros, callback) {
40
- const timer = new MockClockTimer(this.micros + deltaMicros, callback);
41
- this.timers.push(timer);
42
- this.timers.sort((a, b) => a.micros - b.micros);
43
- return timer;
44
- }
45
- deleteTimer(timer) {
46
- const timerIndex = this.timers.indexOf(timer);
47
- if (timerIndex >= 0) {
48
- this.timers.splice(timerIndex, 1);
49
- }
50
- }
51
- }
52
- exports.MockClock = MockClock;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockClock = exports.MockClockTimer = void 0;
4
+ class MockClockTimer {
5
+ constructor(micros, callback) {
6
+ this.micros = micros;
7
+ this.callback = callback;
8
+ }
9
+ pause() {
10
+ /* intentionally empty */
11
+ }
12
+ resume() {
13
+ /* intentionally empty */
14
+ }
15
+ }
16
+ exports.MockClockTimer = MockClockTimer;
17
+ class MockClock {
18
+ constructor() {
19
+ this.micros = 0;
20
+ this.timers = [];
21
+ }
22
+ pause() {
23
+ /* intentionally empty */
24
+ }
25
+ resume() {
26
+ /* intentionally empty */
27
+ }
28
+ advance(deltaMicros) {
29
+ const { timers } = this;
30
+ const targetTime = this.micros + Math.max(deltaMicros, 0.01);
31
+ while (timers[0] && timers[0].micros <= targetTime) {
32
+ const timer = timers.shift();
33
+ if (timer) {
34
+ this.micros = timer.micros;
35
+ timer.callback();
36
+ }
37
+ }
38
+ }
39
+ createTimer(deltaMicros, callback) {
40
+ const timer = new MockClockTimer(this.micros + deltaMicros, callback);
41
+ this.timers.push(timer);
42
+ this.timers.sort((a, b) => a.micros - b.micros);
43
+ return timer;
44
+ }
45
+ deleteTimer(timer) {
46
+ const timerIndex = this.timers.indexOf(timer);
47
+ if (timerIndex >= 0) {
48
+ this.timers.splice(timerIndex, 1);
49
+ }
50
+ }
51
+ }
52
+ exports.MockClock = MockClock;
@@ -1,23 +1,23 @@
1
- import { IClock, IClockTimer } from './clock';
2
- export declare class ClockTimer implements IClockTimer {
3
- private micros;
4
- private callback;
5
- private jsTimer;
6
- private timeLeft;
7
- constructor(micros: number, callback: () => void);
8
- schedule(currentMicros: number): void;
9
- unschedule(): void;
10
- pause(currentMicros: number): void;
11
- resume(currentMicros: number): void;
12
- }
13
- export declare class RealtimeClock implements IClock {
14
- baseTime: number;
15
- pauseTime: number;
16
- paused: boolean;
17
- timers: Set<ClockTimer>;
18
- pause(): void;
19
- resume(): void;
20
- createTimer(deltaMicros: number, callback: () => void): ClockTimer;
21
- deleteTimer(timer: ClockTimer): void;
22
- get micros(): number;
23
- }
1
+ import { IClock, IClockTimer } from './clock.js';
2
+ export declare class ClockTimer implements IClockTimer {
3
+ private micros;
4
+ private callback;
5
+ private jsTimer;
6
+ private timeLeft;
7
+ constructor(micros: number, callback: () => void);
8
+ schedule(currentMicros: number): void;
9
+ unschedule(): void;
10
+ pause(currentMicros: number): void;
11
+ resume(currentMicros: number): void;
12
+ }
13
+ export declare class RealtimeClock implements IClock {
14
+ baseTime: number;
15
+ pauseTime: number;
16
+ paused: boolean;
17
+ timers: Set<ClockTimer>;
18
+ pause(): void;
19
+ resume(): void;
20
+ createTimer(deltaMicros: number, callback: () => void): ClockTimer;
21
+ deleteTimer(timer: ClockTimer): void;
22
+ get micros(): number;
23
+ }
@@ -1,73 +1,73 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RealtimeClock = exports.ClockTimer = void 0;
4
- const time_1 = require("../utils/time");
5
- class ClockTimer {
6
- constructor(micros, callback) {
7
- this.micros = micros;
8
- this.callback = callback;
9
- this.jsTimer = null;
10
- this.timeLeft = this.micros;
11
- }
12
- schedule(currentMicros) {
13
- this.jsTimer = setTimeout(this.callback, (this.micros - currentMicros) / 1000);
14
- }
15
- unschedule() {
16
- if (this.jsTimer) {
17
- clearTimeout(this.jsTimer);
18
- this.jsTimer = null;
19
- }
20
- }
21
- pause(currentMicros) {
22
- this.timeLeft = this.micros - currentMicros;
23
- this.unschedule();
24
- }
25
- resume(currentMicros) {
26
- this.micros = currentMicros + this.timeLeft;
27
- this.schedule(currentMicros);
28
- }
29
- }
30
- exports.ClockTimer = ClockTimer;
31
- class RealtimeClock {
32
- constructor() {
33
- this.baseTime = 0;
34
- this.pauseTime = 0;
35
- this.paused = true;
36
- this.timers = new Set();
37
- }
38
- pause() {
39
- if (!this.paused) {
40
- for (const timer of this.timers) {
41
- timer.pause(this.micros);
42
- }
43
- this.pauseTime = this.micros;
44
- this.paused = true;
45
- }
46
- }
47
- resume() {
48
- if (this.paused) {
49
- this.baseTime = time_1.getCurrentMicroseconds() - this.pauseTime;
50
- this.paused = false;
51
- for (const timer of this.timers) {
52
- timer.resume(this.micros);
53
- }
54
- }
55
- }
56
- createTimer(deltaMicros, callback) {
57
- const timer = new ClockTimer(this.micros + deltaMicros, () => {
58
- this.timers.delete(timer);
59
- callback();
60
- });
61
- timer.schedule(this.micros);
62
- this.timers.add(timer);
63
- return timer;
64
- }
65
- deleteTimer(timer) {
66
- timer.unschedule();
67
- this.timers.delete(timer);
68
- }
69
- get micros() {
70
- return time_1.getCurrentMicroseconds() - this.baseTime;
71
- }
72
- }
73
- exports.RealtimeClock = RealtimeClock;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RealtimeClock = exports.ClockTimer = void 0;
4
+ const time_js_1 = require("../utils/time.js");
5
+ class ClockTimer {
6
+ constructor(micros, callback) {
7
+ this.micros = micros;
8
+ this.callback = callback;
9
+ this.jsTimer = null;
10
+ this.timeLeft = this.micros;
11
+ }
12
+ schedule(currentMicros) {
13
+ this.jsTimer = setTimeout(this.callback, (this.micros - currentMicros) / 1000);
14
+ }
15
+ unschedule() {
16
+ if (this.jsTimer) {
17
+ clearTimeout(this.jsTimer);
18
+ this.jsTimer = null;
19
+ }
20
+ }
21
+ pause(currentMicros) {
22
+ this.timeLeft = this.micros - currentMicros;
23
+ this.unschedule();
24
+ }
25
+ resume(currentMicros) {
26
+ this.micros = currentMicros + this.timeLeft;
27
+ this.schedule(currentMicros);
28
+ }
29
+ }
30
+ exports.ClockTimer = ClockTimer;
31
+ class RealtimeClock {
32
+ constructor() {
33
+ this.baseTime = 0;
34
+ this.pauseTime = 0;
35
+ this.paused = true;
36
+ this.timers = new Set();
37
+ }
38
+ pause() {
39
+ if (!this.paused) {
40
+ for (const timer of this.timers) {
41
+ timer.pause(this.micros);
42
+ }
43
+ this.pauseTime = this.micros;
44
+ this.paused = true;
45
+ }
46
+ }
47
+ resume() {
48
+ if (this.paused) {
49
+ this.baseTime = (0, time_js_1.getCurrentMicroseconds)() - this.pauseTime;
50
+ this.paused = false;
51
+ for (const timer of this.timers) {
52
+ timer.resume(this.micros);
53
+ }
54
+ }
55
+ }
56
+ createTimer(deltaMicros, callback) {
57
+ const timer = new ClockTimer(this.micros + deltaMicros, () => {
58
+ this.timers.delete(timer);
59
+ callback();
60
+ });
61
+ timer.schedule(this.micros);
62
+ this.timers.add(timer);
63
+ return timer;
64
+ }
65
+ deleteTimer(timer) {
66
+ timer.unschedule();
67
+ this.timers.delete(timer);
68
+ }
69
+ get micros() {
70
+ return (0, time_js_1.getCurrentMicroseconds)() - this.baseTime;
71
+ }
72
+ }
73
+ exports.RealtimeClock = RealtimeClock;
@@ -1,87 +1,87 @@
1
- import { RP2040 } from './rp2040';
2
- export declare const SYSM_MSP = 8;
3
- export declare const SYSM_PSP = 9;
4
- export declare const SYSM_PRIMASK = 16;
5
- export declare const SYSM_CONTROL = 20;
6
- declare enum ExecutionMode {
7
- Mode_Thread = 0,
8
- Mode_Handler = 1
9
- }
10
- declare enum StackPointerBank {
11
- SPmain = 0,
12
- SPprocess = 1
13
- }
14
- export declare class CortexM0Core {
15
- readonly rp2040: RP2040;
16
- readonly registers: Uint32Array;
17
- bankedSP: number;
18
- cycles: number;
19
- eventRegistered: boolean;
20
- waiting: boolean;
21
- N: boolean;
22
- C: boolean;
23
- Z: boolean;
24
- V: boolean;
25
- breakRewind: number;
26
- PM: boolean;
27
- SPSEL: StackPointerBank;
28
- nPRIV: boolean;
29
- currentMode: ExecutionMode;
30
- IPSR: number;
31
- interruptNMIMask: number;
32
- pendingInterrupts: number;
33
- enabledInterrupts: number;
34
- interruptPriorities: number[];
35
- pendingNMI: boolean;
36
- pendingPendSV: boolean;
37
- pendingSVCall: boolean;
38
- pendingSystick: boolean;
39
- interruptsUpdated: boolean;
40
- VTOR: number;
41
- SHPR2: number;
42
- SHPR3: number;
43
- /** Hook to listen for function calls - branch-link (BL/BLX) instructions */
44
- blTaken: (core: CortexM0Core, blx: boolean) => void;
45
- constructor(rp2040: RP2040);
46
- get logger(): import(".").Logger;
47
- reset(): void;
48
- get SP(): number;
49
- set SP(value: number);
50
- get LR(): number;
51
- set LR(value: number);
52
- get PC(): number;
53
- set PC(value: number);
54
- get APSR(): number;
55
- set APSR(value: number);
56
- get xPSR(): number;
57
- set xPSR(value: number);
58
- checkCondition(cond: number): boolean;
59
- readUint32(address: number): number;
60
- readUint16(address: number): number;
61
- readUint8(address: number): number;
62
- writeUint32(address: number, value: number): void;
63
- writeUint16(address: number, value: number): void;
64
- writeUint8(address: number, value: number): void;
65
- switchStack(stack: StackPointerBank): void;
66
- get SPprocess(): number;
67
- set SPprocess(value: number);
68
- get SPmain(): number;
69
- set SPmain(value: number);
70
- exceptionEntry(exceptionNumber: number): void;
71
- exceptionReturn(excReturn: number): void;
72
- get pendSVPriority(): number;
73
- get svCallPriority(): number;
74
- get systickPriority(): number;
75
- exceptionPriority(n: number): number;
76
- get vectPending(): number;
77
- setInterrupt(irq: number, value: boolean): void;
78
- checkForInterrupts(): boolean;
79
- readSpecialRegister(sysm: number): number;
80
- writeSpecialRegister(sysm: number, value: number): 0 | undefined;
81
- BXWritePC(address: number): void;
82
- private substractUpdateFlags;
83
- private addUpdateFlags;
84
- cyclesIO(addr: number, write?: boolean): 3 | 0 | 1 | 4;
85
- executeInstruction(): void;
86
- }
87
- export {};
1
+ import { RP2040 } from './rp2040.js';
2
+ export declare const SYSM_MSP = 8;
3
+ export declare const SYSM_PSP = 9;
4
+ export declare const SYSM_PRIMASK = 16;
5
+ export declare const SYSM_CONTROL = 20;
6
+ declare enum ExecutionMode {
7
+ Mode_Thread = 0,
8
+ Mode_Handler = 1
9
+ }
10
+ declare enum StackPointerBank {
11
+ SPmain = 0,
12
+ SPprocess = 1
13
+ }
14
+ export declare class CortexM0Core {
15
+ readonly rp2040: RP2040;
16
+ readonly registers: Uint32Array;
17
+ bankedSP: number;
18
+ cycles: number;
19
+ eventRegistered: boolean;
20
+ waiting: boolean;
21
+ N: boolean;
22
+ C: boolean;
23
+ Z: boolean;
24
+ V: boolean;
25
+ breakRewind: number;
26
+ PM: boolean;
27
+ SPSEL: StackPointerBank;
28
+ nPRIV: boolean;
29
+ currentMode: ExecutionMode;
30
+ IPSR: number;
31
+ interruptNMIMask: number;
32
+ pendingInterrupts: number;
33
+ enabledInterrupts: number;
34
+ interruptPriorities: number[];
35
+ pendingNMI: boolean;
36
+ pendingPendSV: boolean;
37
+ pendingSVCall: boolean;
38
+ pendingSystick: boolean;
39
+ interruptsUpdated: boolean;
40
+ VTOR: number;
41
+ SHPR2: number;
42
+ SHPR3: number;
43
+ /** Hook to listen for function calls - branch-link (BL/BLX) instructions */
44
+ blTaken: (core: CortexM0Core, blx: boolean) => void;
45
+ constructor(rp2040: RP2040);
46
+ get logger(): import("./index.js").Logger;
47
+ reset(): void;
48
+ get SP(): number;
49
+ set SP(value: number);
50
+ get LR(): number;
51
+ set LR(value: number);
52
+ get PC(): number;
53
+ set PC(value: number);
54
+ get APSR(): number;
55
+ set APSR(value: number);
56
+ get xPSR(): number;
57
+ set xPSR(value: number);
58
+ checkCondition(cond: number): boolean;
59
+ readUint32(address: number): number;
60
+ readUint16(address: number): number;
61
+ readUint8(address: number): number;
62
+ writeUint32(address: number, value: number): void;
63
+ writeUint16(address: number, value: number): void;
64
+ writeUint8(address: number, value: number): void;
65
+ switchStack(stack: StackPointerBank): void;
66
+ get SPprocess(): number;
67
+ set SPprocess(value: number);
68
+ get SPmain(): number;
69
+ set SPmain(value: number);
70
+ exceptionEntry(exceptionNumber: number): void;
71
+ exceptionReturn(excReturn: number): void;
72
+ get pendSVPriority(): number;
73
+ get svCallPriority(): number;
74
+ get systickPriority(): number;
75
+ exceptionPriority(n: number): number;
76
+ get vectPending(): number;
77
+ setInterrupt(irq: number, value: boolean): void;
78
+ checkForInterrupts(): boolean;
79
+ readSpecialRegister(sysm: number): number;
80
+ writeSpecialRegister(sysm: number, value: number): 0 | undefined;
81
+ BXWritePC(address: number): void;
82
+ private substractUpdateFlags;
83
+ private addUpdateFlags;
84
+ cyclesIO(addr: number, write?: boolean): 0 | 1 | 3 | 4;
85
+ executeInstruction(): void;
86
+ }
87
+ export {};