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.
- package/README.md +1 -1
- package/dist/cjs/clock/clock.d.ts +11 -11
- package/dist/cjs/clock/clock.js +2 -2
- package/dist/cjs/clock/mock-clock.d.ts +17 -17
- package/dist/cjs/clock/mock-clock.js +52 -52
- package/dist/cjs/clock/realtime-clock.d.ts +23 -23
- package/dist/cjs/clock/realtime-clock.js +73 -73
- package/dist/cjs/cortex-m0-core.d.ts +87 -87
- package/dist/cjs/cortex-m0-core.js +1251 -1251
- package/dist/cjs/gdb/gdb-connection.d.ts +11 -11
- package/dist/cjs/gdb/gdb-connection.js +57 -57
- package/dist/cjs/gdb/gdb-server.d.ts +23 -23
- package/dist/cjs/gdb/gdb-server.js +232 -232
- package/dist/cjs/gdb/gdb-tcp-server.d.ts +10 -10
- package/dist/cjs/gdb/gdb-tcp-server.js +34 -34
- package/dist/cjs/gdb/gdb-utils.d.ts +9 -9
- package/dist/cjs/gdb/gdb-utils.js +48 -48
- package/dist/cjs/gpio-pin.d.ts +56 -56
- package/dist/cjs/gpio-pin.js +216 -216
- package/dist/cjs/index.d.ts +11 -11
- package/dist/cjs/index.js +36 -36
- package/dist/cjs/interpolator.d.ts +36 -36
- package/dist/cjs/interpolator.js +150 -150
- package/dist/cjs/irq.d.ts +29 -29
- package/dist/cjs/irq.js +33 -33
- package/dist/cjs/peripherals/adc.d.ts +52 -52
- package/dist/cjs/peripherals/adc.js +261 -261
- package/dist/cjs/peripherals/busctrl.d.ts +10 -10
- package/dist/cjs/peripherals/busctrl.js +84 -84
- package/dist/cjs/peripherals/clocks.d.ts +9 -9
- package/dist/cjs/peripherals/clocks.js +42 -42
- package/dist/cjs/peripherals/dma.d.ts +109 -109
- package/dist/cjs/peripherals/dma.js +520 -520
- package/dist/cjs/peripherals/i2c.d.ts +54 -54
- package/dist/cjs/peripherals/i2c.js +458 -458
- package/dist/cjs/peripherals/io.d.ts +11 -11
- package/dist/cjs/peripherals/io.js +100 -100
- package/dist/cjs/peripherals/pads.d.ts +13 -13
- package/dist/cjs/peripherals/pads.js +58 -58
- package/dist/cjs/peripherals/peripheral.d.ts +22 -22
- package/dist/cjs/peripherals/peripheral.js +61 -61
- package/dist/cjs/peripherals/pio.d.ts +120 -120
- package/dist/cjs/peripherals/pio.js +1086 -1086
- package/dist/cjs/peripherals/ppb.d.ts +25 -25
- package/dist/cjs/peripherals/ppb.js +229 -229
- package/dist/cjs/peripherals/pwm.d.ts +65 -65
- package/dist/cjs/peripherals/pwm.js +372 -372
- package/dist/cjs/peripherals/reset.d.ts +8 -8
- package/dist/cjs/peripherals/reset.js +40 -40
- package/dist/cjs/peripherals/rtc.d.ts +10 -10
- package/dist/cjs/peripherals/rtc.js +74 -74
- package/dist/cjs/peripherals/spi.d.ts +38 -30
- package/dist/cjs/peripherals/spi.js +240 -218
- package/dist/cjs/peripherals/ssi.d.ts +6 -6
- package/dist/cjs/peripherals/ssi.js +43 -43
- package/dist/cjs/peripherals/syscfg.d.ts +5 -5
- package/dist/cjs/peripherals/syscfg.js +26 -26
- package/dist/cjs/peripherals/sysinfo.d.ts +4 -4
- package/dist/cjs/peripherals/sysinfo.js +22 -22
- package/dist/cjs/peripherals/tbman.d.ts +4 -4
- package/dist/cjs/peripherals/tbman.js +17 -17
- package/dist/cjs/peripherals/timer.d.ts +18 -18
- package/dist/cjs/peripherals/timer.js +156 -156
- package/dist/cjs/peripherals/uart.d.ts +31 -28
- package/dist/cjs/peripherals/uart.js +132 -135
- package/dist/cjs/peripherals/usb.d.ts +29 -29
- package/dist/cjs/peripherals/usb.js +309 -309
- package/dist/cjs/rp2040.d.ts +71 -71
- package/dist/cjs/rp2040.js +361 -346
- package/dist/cjs/sio.d.ts +21 -21
- package/dist/cjs/sio.js +425 -425
- package/dist/cjs/usb/cdc.d.ts +20 -20
- package/dist/cjs/usb/cdc.js +126 -126
- package/dist/cjs/usb/interfaces.d.ts +47 -47
- package/dist/cjs/usb/interfaces.js +46 -46
- package/dist/cjs/usb/setup.d.ts +5 -5
- package/dist/cjs/usb/setup.js +53 -53
- package/dist/cjs/utils/assembler.d.ts +79 -79
- package/dist/cjs/utils/assembler.js +328 -328
- package/dist/cjs/utils/bit.d.ts +3 -3
- package/dist/cjs/utils/bit.js +15 -15
- package/dist/cjs/utils/fifo.d.ts +15 -15
- package/dist/cjs/utils/fifo.js +56 -56
- package/dist/cjs/utils/logging.d.ts +23 -23
- package/dist/cjs/utils/logging.js +48 -48
- package/dist/cjs/utils/pio-assembler.d.ts +45 -45
- package/dist/cjs/utils/pio-assembler.js +87 -87
- package/dist/cjs/utils/time.d.ts +2 -2
- package/dist/cjs/utils/time.js +32 -32
- package/dist/cjs/utils/timer32.d.ts +57 -57
- package/dist/cjs/utils/timer32.js +208 -208
- package/dist/esm/clock/clock.d.ts +11 -11
- package/dist/esm/clock/clock.js +1 -1
- package/dist/esm/clock/mock-clock.d.ts +17 -17
- package/dist/esm/clock/mock-clock.js +47 -47
- package/dist/esm/clock/realtime-clock.d.ts +23 -23
- package/dist/esm/clock/realtime-clock.js +68 -68
- package/dist/esm/cortex-m0-core.d.ts +87 -87
- package/dist/esm/cortex-m0-core.js +1247 -1247
- package/dist/esm/gdb/gdb-connection.d.ts +11 -11
- package/dist/esm/gdb/gdb-connection.js +53 -53
- package/dist/esm/gdb/gdb-server.d.ts +23 -23
- package/dist/esm/gdb/gdb-server.js +228 -228
- package/dist/esm/gdb/gdb-tcp-server.d.ts +10 -10
- package/dist/esm/gdb/gdb-tcp-server.js +30 -30
- package/dist/esm/gdb/gdb-utils.d.ts +9 -9
- package/dist/esm/gdb/gdb-utils.js +36 -36
- package/dist/esm/gpio-pin.d.ts +56 -56
- package/dist/esm/gpio-pin.js +212 -212
- package/dist/esm/index.d.ts +11 -11
- package/dist/esm/index.js +11 -11
- package/dist/esm/interpolator.d.ts +36 -36
- package/dist/esm/interpolator.js +145 -145
- package/dist/esm/irq.d.ts +29 -29
- package/dist/esm/irq.js +30 -30
- package/dist/esm/peripherals/adc.d.ts +52 -52
- package/dist/esm/peripherals/adc.js +257 -257
- package/dist/esm/peripherals/busctrl.d.ts +10 -10
- package/dist/esm/peripherals/busctrl.js +80 -80
- package/dist/esm/peripherals/clocks.d.ts +9 -9
- package/dist/esm/peripherals/clocks.js +38 -38
- package/dist/esm/peripherals/dma.d.ts +109 -109
- package/dist/esm/peripherals/dma.js +515 -515
- package/dist/esm/peripherals/i2c.d.ts +54 -54
- package/dist/esm/peripherals/i2c.js +454 -454
- package/dist/esm/peripherals/io.d.ts +11 -11
- package/dist/esm/peripherals/io.js +96 -96
- package/dist/esm/peripherals/pads.d.ts +13 -13
- package/dist/esm/peripherals/pads.js +54 -54
- package/dist/esm/peripherals/peripheral.d.ts +22 -22
- package/dist/esm/peripherals/peripheral.js +55 -55
- package/dist/esm/peripherals/pio.d.ts +120 -120
- package/dist/esm/peripherals/pio.js +1081 -1081
- package/dist/esm/peripherals/ppb.d.ts +25 -25
- package/dist/esm/peripherals/ppb.js +225 -225
- package/dist/esm/peripherals/pwm.d.ts +65 -65
- package/dist/esm/peripherals/pwm.js +368 -368
- package/dist/esm/peripherals/reset.d.ts +8 -8
- package/dist/esm/peripherals/reset.js +36 -36
- package/dist/esm/peripherals/rtc.d.ts +10 -10
- package/dist/esm/peripherals/rtc.js +70 -70
- package/dist/esm/peripherals/spi.d.ts +38 -30
- package/dist/esm/peripherals/spi.js +236 -214
- package/dist/esm/peripherals/ssi.d.ts +6 -6
- package/dist/esm/peripherals/ssi.js +39 -39
- package/dist/esm/peripherals/syscfg.d.ts +5 -5
- package/dist/esm/peripherals/syscfg.js +22 -22
- package/dist/esm/peripherals/sysinfo.d.ts +4 -4
- package/dist/esm/peripherals/sysinfo.js +18 -18
- package/dist/esm/peripherals/tbman.d.ts +4 -4
- package/dist/esm/peripherals/tbman.js +13 -13
- package/dist/esm/peripherals/timer.d.ts +18 -18
- package/dist/esm/peripherals/timer.js +152 -152
- package/dist/esm/peripherals/uart.d.ts +31 -28
- package/dist/esm/peripherals/uart.js +128 -131
- package/dist/esm/peripherals/usb.d.ts +29 -29
- package/dist/esm/peripherals/usb.js +305 -305
- package/dist/esm/rp2040.d.ts +71 -71
- package/dist/esm/rp2040.js +357 -342
- package/dist/esm/sio.d.ts +21 -21
- package/dist/esm/sio.js +421 -421
- package/dist/esm/usb/cdc.d.ts +20 -20
- package/dist/esm/usb/cdc.js +121 -121
- package/dist/esm/usb/interfaces.d.ts +47 -47
- package/dist/esm/usb/interfaces.js +43 -43
- package/dist/esm/usb/setup.d.ts +5 -5
- package/dist/esm/usb/setup.js +46 -46
- package/dist/esm/utils/assembler.d.ts +79 -79
- package/dist/esm/utils/assembler.js +245 -245
- package/dist/esm/utils/bit.d.ts +3 -3
- package/dist/esm/utils/bit.js +9 -9
- package/dist/esm/utils/fifo.d.ts +15 -15
- package/dist/esm/utils/fifo.js +52 -52
- package/dist/esm/utils/logging.d.ts +23 -23
- package/dist/esm/utils/logging.js +44 -44
- package/dist/esm/utils/pio-assembler.d.ts +45 -45
- package/dist/esm/utils/pio-assembler.js +75 -75
- package/dist/esm/utils/time.d.ts +2 -2
- package/dist/esm/utils/time.js +27 -27
- package/dist/esm/utils/timer32.d.ts +57 -57
- package/dist/esm/utils/timer32.js +203 -203
- package/package.json +34 -22
- package/dist/esm/package.json +0 -1
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
export class MockClockTimer {
|
|
2
|
-
constructor(micros, callback) {
|
|
3
|
-
this.micros = micros;
|
|
4
|
-
this.callback = callback;
|
|
5
|
-
}
|
|
6
|
-
pause() {
|
|
7
|
-
/* intentionally empty */
|
|
8
|
-
}
|
|
9
|
-
resume() {
|
|
10
|
-
/* intentionally empty */
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export class MockClock {
|
|
14
|
-
constructor() {
|
|
15
|
-
this.micros = 0;
|
|
16
|
-
this.timers = [];
|
|
17
|
-
}
|
|
18
|
-
pause() {
|
|
19
|
-
/* intentionally empty */
|
|
20
|
-
}
|
|
21
|
-
resume() {
|
|
22
|
-
/* intentionally empty */
|
|
23
|
-
}
|
|
24
|
-
advance(deltaMicros) {
|
|
25
|
-
const { timers } = this;
|
|
26
|
-
const targetTime = this.micros + Math.max(deltaMicros, 0.01);
|
|
27
|
-
while (timers[0] && timers[0].micros <= targetTime) {
|
|
28
|
-
const timer = timers.shift();
|
|
29
|
-
if (timer) {
|
|
30
|
-
this.micros = timer.micros;
|
|
31
|
-
timer.callback();
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
createTimer(deltaMicros, callback) {
|
|
36
|
-
const timer = new MockClockTimer(this.micros + deltaMicros, callback);
|
|
37
|
-
this.timers.push(timer);
|
|
38
|
-
this.timers.sort((a, b) => a.micros - b.micros);
|
|
39
|
-
return timer;
|
|
40
|
-
}
|
|
41
|
-
deleteTimer(timer) {
|
|
42
|
-
const timerIndex = this.timers.indexOf(timer);
|
|
43
|
-
if (timerIndex >= 0) {
|
|
44
|
-
this.timers.splice(timerIndex, 1);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
1
|
+
export class MockClockTimer {
|
|
2
|
+
constructor(micros, callback) {
|
|
3
|
+
this.micros = micros;
|
|
4
|
+
this.callback = callback;
|
|
5
|
+
}
|
|
6
|
+
pause() {
|
|
7
|
+
/* intentionally empty */
|
|
8
|
+
}
|
|
9
|
+
resume() {
|
|
10
|
+
/* intentionally empty */
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class MockClock {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.micros = 0;
|
|
16
|
+
this.timers = [];
|
|
17
|
+
}
|
|
18
|
+
pause() {
|
|
19
|
+
/* intentionally empty */
|
|
20
|
+
}
|
|
21
|
+
resume() {
|
|
22
|
+
/* intentionally empty */
|
|
23
|
+
}
|
|
24
|
+
advance(deltaMicros) {
|
|
25
|
+
const { timers } = this;
|
|
26
|
+
const targetTime = this.micros + Math.max(deltaMicros, 0.01);
|
|
27
|
+
while (timers[0] && timers[0].micros <= targetTime) {
|
|
28
|
+
const timer = timers.shift();
|
|
29
|
+
if (timer) {
|
|
30
|
+
this.micros = timer.micros;
|
|
31
|
+
timer.callback();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
createTimer(deltaMicros, callback) {
|
|
36
|
+
const timer = new MockClockTimer(this.micros + deltaMicros, callback);
|
|
37
|
+
this.timers.push(timer);
|
|
38
|
+
this.timers.sort((a, b) => a.micros - b.micros);
|
|
39
|
+
return timer;
|
|
40
|
+
}
|
|
41
|
+
deleteTimer(timer) {
|
|
42
|
+
const timerIndex = this.timers.indexOf(timer);
|
|
43
|
+
if (timerIndex >= 0) {
|
|
44
|
+
this.timers.splice(timerIndex, 1);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -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,68 +1,68 @@
|
|
|
1
|
-
import { getCurrentMicroseconds } from '../utils/time';
|
|
2
|
-
export class ClockTimer {
|
|
3
|
-
constructor(micros, callback) {
|
|
4
|
-
this.micros = micros;
|
|
5
|
-
this.callback = callback;
|
|
6
|
-
this.jsTimer = null;
|
|
7
|
-
this.timeLeft = this.micros;
|
|
8
|
-
}
|
|
9
|
-
schedule(currentMicros) {
|
|
10
|
-
this.jsTimer = setTimeout(this.callback, (this.micros - currentMicros) / 1000);
|
|
11
|
-
}
|
|
12
|
-
unschedule() {
|
|
13
|
-
if (this.jsTimer) {
|
|
14
|
-
clearTimeout(this.jsTimer);
|
|
15
|
-
this.jsTimer = null;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
pause(currentMicros) {
|
|
19
|
-
this.timeLeft = this.micros - currentMicros;
|
|
20
|
-
this.unschedule();
|
|
21
|
-
}
|
|
22
|
-
resume(currentMicros) {
|
|
23
|
-
this.micros = currentMicros + this.timeLeft;
|
|
24
|
-
this.schedule(currentMicros);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
export class RealtimeClock {
|
|
28
|
-
constructor() {
|
|
29
|
-
this.baseTime = 0;
|
|
30
|
-
this.pauseTime = 0;
|
|
31
|
-
this.paused = true;
|
|
32
|
-
this.timers = new Set();
|
|
33
|
-
}
|
|
34
|
-
pause() {
|
|
35
|
-
if (!this.paused) {
|
|
36
|
-
for (const timer of this.timers) {
|
|
37
|
-
timer.pause(this.micros);
|
|
38
|
-
}
|
|
39
|
-
this.pauseTime = this.micros;
|
|
40
|
-
this.paused = true;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
resume() {
|
|
44
|
-
if (this.paused) {
|
|
45
|
-
this.baseTime = getCurrentMicroseconds() - this.pauseTime;
|
|
46
|
-
this.paused = false;
|
|
47
|
-
for (const timer of this.timers) {
|
|
48
|
-
timer.resume(this.micros);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
createTimer(deltaMicros, callback) {
|
|
53
|
-
const timer = new ClockTimer(this.micros + deltaMicros, () => {
|
|
54
|
-
this.timers.delete(timer);
|
|
55
|
-
callback();
|
|
56
|
-
});
|
|
57
|
-
timer.schedule(this.micros);
|
|
58
|
-
this.timers.add(timer);
|
|
59
|
-
return timer;
|
|
60
|
-
}
|
|
61
|
-
deleteTimer(timer) {
|
|
62
|
-
timer.unschedule();
|
|
63
|
-
this.timers.delete(timer);
|
|
64
|
-
}
|
|
65
|
-
get micros() {
|
|
66
|
-
return getCurrentMicroseconds() - this.baseTime;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
1
|
+
import { getCurrentMicroseconds } from '../utils/time.js';
|
|
2
|
+
export class ClockTimer {
|
|
3
|
+
constructor(micros, callback) {
|
|
4
|
+
this.micros = micros;
|
|
5
|
+
this.callback = callback;
|
|
6
|
+
this.jsTimer = null;
|
|
7
|
+
this.timeLeft = this.micros;
|
|
8
|
+
}
|
|
9
|
+
schedule(currentMicros) {
|
|
10
|
+
this.jsTimer = setTimeout(this.callback, (this.micros - currentMicros) / 1000);
|
|
11
|
+
}
|
|
12
|
+
unschedule() {
|
|
13
|
+
if (this.jsTimer) {
|
|
14
|
+
clearTimeout(this.jsTimer);
|
|
15
|
+
this.jsTimer = null;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
pause(currentMicros) {
|
|
19
|
+
this.timeLeft = this.micros - currentMicros;
|
|
20
|
+
this.unschedule();
|
|
21
|
+
}
|
|
22
|
+
resume(currentMicros) {
|
|
23
|
+
this.micros = currentMicros + this.timeLeft;
|
|
24
|
+
this.schedule(currentMicros);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class RealtimeClock {
|
|
28
|
+
constructor() {
|
|
29
|
+
this.baseTime = 0;
|
|
30
|
+
this.pauseTime = 0;
|
|
31
|
+
this.paused = true;
|
|
32
|
+
this.timers = new Set();
|
|
33
|
+
}
|
|
34
|
+
pause() {
|
|
35
|
+
if (!this.paused) {
|
|
36
|
+
for (const timer of this.timers) {
|
|
37
|
+
timer.pause(this.micros);
|
|
38
|
+
}
|
|
39
|
+
this.pauseTime = this.micros;
|
|
40
|
+
this.paused = true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
resume() {
|
|
44
|
+
if (this.paused) {
|
|
45
|
+
this.baseTime = getCurrentMicroseconds() - this.pauseTime;
|
|
46
|
+
this.paused = false;
|
|
47
|
+
for (const timer of this.timers) {
|
|
48
|
+
timer.resume(this.micros);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
createTimer(deltaMicros, callback) {
|
|
53
|
+
const timer = new ClockTimer(this.micros + deltaMicros, () => {
|
|
54
|
+
this.timers.delete(timer);
|
|
55
|
+
callback();
|
|
56
|
+
});
|
|
57
|
+
timer.schedule(this.micros);
|
|
58
|
+
this.timers.add(timer);
|
|
59
|
+
return timer;
|
|
60
|
+
}
|
|
61
|
+
deleteTimer(timer) {
|
|
62
|
+
timer.unschedule();
|
|
63
|
+
this.timers.delete(timer);
|
|
64
|
+
}
|
|
65
|
+
get micros() {
|
|
66
|
+
return getCurrentMicroseconds() - this.baseTime;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -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("./index").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):
|
|
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 {};
|