rp2040js 0.17.4 → 0.17.5

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.
@@ -1,6 +1,9 @@
1
1
  import { RP2040 } from '../rp2040';
2
2
  import { BasePeripheral, Peripheral } from './peripheral';
3
3
  export declare class RPClocks extends BasePeripheral implements Peripheral {
4
+ refCtrl: number;
5
+ sysCtrl: number;
4
6
  constructor(rp2040: RP2040, name: string);
5
7
  readUint32(offset: number): number;
8
+ writeUint32(offset: number, value: number): void;
6
9
  }
@@ -2,20 +2,41 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RPClocks = void 0;
4
4
  const peripheral_1 = require("./peripheral");
5
+ const CLK_REF_CTRL = 0x30;
5
6
  const CLK_REF_SELECTED = 0x38;
7
+ const CLK_SYS_CTRL = 0x3c;
6
8
  const CLK_SYS_SELECTED = 0x44;
7
9
  class RPClocks extends peripheral_1.BasePeripheral {
8
10
  constructor(rp2040, name) {
9
11
  super(rp2040, name);
12
+ this.refCtrl = 0;
13
+ this.sysCtrl = 0;
10
14
  }
11
15
  readUint32(offset) {
12
16
  switch (offset) {
17
+ case CLK_REF_CTRL:
18
+ return this.refCtrl;
13
19
  case CLK_REF_SELECTED:
14
- return 1;
20
+ return 1 << (this.refCtrl & 0x03);
21
+ case CLK_SYS_CTRL:
22
+ return this.sysCtrl;
15
23
  case CLK_SYS_SELECTED:
16
- return 1;
24
+ return 1 << (this.sysCtrl & 0x01);
17
25
  }
18
26
  return super.readUint32(offset);
19
27
  }
28
+ writeUint32(offset, value) {
29
+ switch (offset) {
30
+ case CLK_REF_CTRL:
31
+ this.refCtrl = value;
32
+ break;
33
+ case CLK_SYS_CTRL:
34
+ this.sysCtrl = value;
35
+ break;
36
+ default:
37
+ super.writeUint32(offset, value);
38
+ break;
39
+ }
40
+ }
20
41
  }
21
42
  exports.RPClocks = RPClocks;
@@ -0,0 +1,4 @@
1
+ import { BasePeripheral, Peripheral } from './peripheral';
2
+ export declare class RPTBMAN extends BasePeripheral implements Peripheral {
3
+ readUint32(offset: number): number;
4
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RPTBMAN = void 0;
4
+ const peripheral_1 = require("./peripheral");
5
+ const PLATFORM = 0;
6
+ const ASIC = 1;
7
+ class RPTBMAN extends peripheral_1.BasePeripheral {
8
+ readUint32(offset) {
9
+ switch (offset) {
10
+ case PLATFORM:
11
+ return ASIC;
12
+ default:
13
+ return super.readUint32(offset);
14
+ }
15
+ }
16
+ }
17
+ exports.RPTBMAN = RPTBMAN;
@@ -26,6 +26,7 @@ const uart_1 = require("./peripherals/uart");
26
26
  const usb_1 = require("./peripherals/usb");
27
27
  const sio_1 = require("./sio");
28
28
  const logging_1 = require("./utils/logging");
29
+ const tbman_1 = require("./peripherals/tbman");
29
30
  exports.FLASH_START_ADDRESS = 0x10000000;
30
31
  exports.FLASH_END_ADDRESS = 0x14000000;
31
32
  exports.RAM_START_ADDRESS = 0x20000000;
@@ -134,7 +135,7 @@ class RP2040 {
134
135
  0x4005c: new rtc_1.RP2040RTC(this, 'RTC_BASE'),
135
136
  0x40060: new peripheral_1.UnimplementedPeripheral(this, 'ROSC_BASE'),
136
137
  0x40064: new peripheral_1.UnimplementedPeripheral(this, 'VREG_AND_CHIP_RESET_BASE'),
137
- 0x4006c: new peripheral_1.UnimplementedPeripheral(this, 'TBMAN_BASE'),
138
+ 0x4006c: new tbman_1.RPTBMAN(this, 'TBMAN_BASE'),
138
139
  0x50000: this.dma,
139
140
  0x50110: this.usbCtrl,
140
141
  0x50200: this.pio[0],
@@ -1,6 +1,9 @@
1
1
  import { RP2040 } from '../rp2040';
2
2
  import { BasePeripheral, Peripheral } from './peripheral';
3
3
  export declare class RPClocks extends BasePeripheral implements Peripheral {
4
+ refCtrl: number;
5
+ sysCtrl: number;
4
6
  constructor(rp2040: RP2040, name: string);
5
7
  readUint32(offset: number): number;
8
+ writeUint32(offset: number, value: number): void;
6
9
  }
@@ -1,17 +1,38 @@
1
1
  import { BasePeripheral } from './peripheral';
2
+ const CLK_REF_CTRL = 0x30;
2
3
  const CLK_REF_SELECTED = 0x38;
4
+ const CLK_SYS_CTRL = 0x3c;
3
5
  const CLK_SYS_SELECTED = 0x44;
4
6
  export class RPClocks extends BasePeripheral {
5
7
  constructor(rp2040, name) {
6
8
  super(rp2040, name);
9
+ this.refCtrl = 0;
10
+ this.sysCtrl = 0;
7
11
  }
8
12
  readUint32(offset) {
9
13
  switch (offset) {
14
+ case CLK_REF_CTRL:
15
+ return this.refCtrl;
10
16
  case CLK_REF_SELECTED:
11
- return 1;
17
+ return 1 << (this.refCtrl & 0x03);
18
+ case CLK_SYS_CTRL:
19
+ return this.sysCtrl;
12
20
  case CLK_SYS_SELECTED:
13
- return 1;
21
+ return 1 << (this.sysCtrl & 0x01);
14
22
  }
15
23
  return super.readUint32(offset);
16
24
  }
25
+ writeUint32(offset, value) {
26
+ switch (offset) {
27
+ case CLK_REF_CTRL:
28
+ this.refCtrl = value;
29
+ break;
30
+ case CLK_SYS_CTRL:
31
+ this.sysCtrl = value;
32
+ break;
33
+ default:
34
+ super.writeUint32(offset, value);
35
+ break;
36
+ }
37
+ }
17
38
  }
@@ -0,0 +1,4 @@
1
+ import { BasePeripheral, Peripheral } from './peripheral';
2
+ export declare class RPTBMAN extends BasePeripheral implements Peripheral {
3
+ readUint32(offset: number): number;
4
+ }
@@ -0,0 +1,13 @@
1
+ import { BasePeripheral } from './peripheral';
2
+ const PLATFORM = 0;
3
+ const ASIC = 1;
4
+ export class RPTBMAN extends BasePeripheral {
5
+ readUint32(offset) {
6
+ switch (offset) {
7
+ case PLATFORM:
8
+ return ASIC;
9
+ default:
10
+ return super.readUint32(offset);
11
+ }
12
+ }
13
+ }
@@ -23,6 +23,7 @@ import { RPUART } from './peripherals/uart';
23
23
  import { RPUSBController } from './peripherals/usb';
24
24
  import { RPSIO } from './sio';
25
25
  import { ConsoleLogger, LogLevel } from './utils/logging';
26
+ import { RPTBMAN } from './peripherals/tbman';
26
27
  export const FLASH_START_ADDRESS = 0x10000000;
27
28
  export const FLASH_END_ADDRESS = 0x14000000;
28
29
  export const RAM_START_ADDRESS = 0x20000000;
@@ -131,7 +132,7 @@ export class RP2040 {
131
132
  0x4005c: new RP2040RTC(this, 'RTC_BASE'),
132
133
  0x40060: new UnimplementedPeripheral(this, 'ROSC_BASE'),
133
134
  0x40064: new UnimplementedPeripheral(this, 'VREG_AND_CHIP_RESET_BASE'),
134
- 0x4006c: new UnimplementedPeripheral(this, 'TBMAN_BASE'),
135
+ 0x4006c: new RPTBMAN(this, 'TBMAN_BASE'),
135
136
  0x50000: this.dma,
136
137
  0x50110: this.usbCtrl,
137
138
  0x50200: this.pio[0],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rp2040js",
3
- "version": "0.17.4",
3
+ "version": "0.17.5",
4
4
  "description": "Raspberry Pi Pico (RP2040) Emulator",
5
5
  "repository": "https://github.com/wokwi/rp2040js",
6
6
  "keywords": [