@typecad/framework-zephyr 1.0.0-alpha.13 → 1.0.0-alpha.15
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 +22 -35
- package/dist/as-built.d.ts +33 -0
- package/dist/as-built.js +188 -0
- package/dist/async/timer-polyfill.js +1 -1
- package/dist/boardgen.d.ts +128 -0
- package/dist/boardgen.js +1366 -0
- package/dist/chips/board-overrides.d.ts +7 -0
- package/dist/chips/board-overrides.js +11 -0
- package/dist/chips/controllers.d.ts +28 -8
- package/dist/chips/controllers.js +49 -12
- package/dist/chips/esp32s3.js +49 -0
- package/dist/chips/index.d.ts +6 -12
- package/dist/chips/index.js +18 -34
- package/dist/chips/resolve.d.ts +16 -2
- package/dist/chips/resolve.js +298 -15
- package/dist/chips/soc/.d.ts +2 -0
- package/dist/chips/soc/.js +129 -0
- package/dist/chips/soc/esp32.d.ts +2 -0
- package/dist/chips/soc/esp32.js +120 -0
- package/dist/chips/soc/esp32c3.d.ts +2 -0
- package/dist/chips/soc/esp32c3.js +90 -0
- package/dist/chips/soc/esp32c6.d.ts +2 -0
- package/dist/chips/soc/esp32c6.js +109 -0
- package/dist/chips/soc/esp32s3.d.ts +2 -0
- package/dist/chips/soc/esp32s3.js +189 -0
- package/dist/chips/soc/index.d.ts +2 -0
- package/dist/chips/soc/index.js +23 -0
- package/dist/chips/soc/nrf52840.d.ts +2 -0
- package/dist/chips/soc/nrf52840.js +130 -0
- package/dist/chips/soc/rp2040.d.ts +2 -0
- package/dist/chips/soc/rp2040.js +141 -0
- package/dist/chips/soc/rp2350a.d.ts +2 -0
- package/dist/chips/soc/rp2350a.js +145 -0
- package/dist/chips/soc/samd21g18a.d.ts +2 -0
- package/dist/chips/soc/samd21g18a.js +143 -0
- package/dist/chips/soc/stm32f411xe.d.ts +2 -0
- package/dist/chips/soc/stm32f411xe.js +251 -0
- package/dist/chips/types.d.ts +382 -12
- package/dist/chips/xiao-ble.js +33 -0
- package/dist/display/profiles.js +1 -1
- package/dist/doctor.js +38 -4
- package/dist/dt-config/custom-board.d.ts +23 -0
- package/dist/dt-config/custom-board.js +227 -0
- package/dist/dt-config/kconfig.d.ts +83 -1
- package/dist/dt-config/kconfig.js +116 -27
- package/dist/dt-config/overlay.js +623 -18
- package/dist/framework.manifest.d.ts +20 -30
- package/dist/framework.manifest.js +124 -178
- package/dist/index.d.ts +4 -1
- package/dist/index.js +8 -2
- package/dist/lowering/adc.d.ts +26 -5
- package/dist/lowering/adc.js +137 -31
- package/dist/lowering/ble.js +31 -28
- package/dist/lowering/dac.js +9 -9
- package/dist/lowering/fs.js +18 -10
- package/dist/lowering/gpio.d.ts +2 -0
- package/dist/lowering/gpio.js +90 -10
- package/dist/lowering/http.js +39 -14
- package/dist/lowering/hwtimer.d.ts +4 -0
- package/dist/lowering/hwtimer.js +35 -10
- package/dist/lowering/i2c.js +46 -54
- package/dist/lowering/index.d.ts +5 -5
- package/dist/lowering/index.js +15 -16
- package/dist/lowering/interrupts.d.ts +22 -5
- package/dist/lowering/interrupts.js +104 -22
- package/dist/lowering/mqtt.js +12 -6
- package/dist/lowering/power.js +0 -4
- package/dist/lowering/preferences.js +49 -77
- package/dist/lowering/pulse.js +5 -36
- package/dist/lowering/pwm.d.ts +32 -3
- package/dist/lowering/pwm.js +105 -17
- package/dist/lowering/random.js +3 -3
- package/dist/lowering/sensor.d.ts +37 -0
- package/dist/lowering/sensor.js +119 -0
- package/dist/lowering/spi.d.ts +12 -0
- package/dist/lowering/spi.js +65 -40
- package/dist/lowering/thread.d.ts +14 -0
- package/dist/lowering/thread.js +55 -0
- package/dist/lowering/timing.js +20 -46
- package/dist/lowering/tone.js +18 -5
- package/dist/lowering/uart.d.ts +13 -0
- package/dist/lowering/uart.js +72 -51
- package/dist/lowering/usb.d.ts +34 -0
- package/dist/lowering/usb.js +206 -0
- package/dist/lowering/wdt.d.ts +1 -1
- package/dist/lowering/wdt.js +17 -7
- package/dist/lowering/wifi.d.ts +3 -2
- package/dist/lowering/wifi.js +120 -111
- package/dist/sdk/board-catalog-sync.d.ts +16 -0
- package/dist/sdk/board-catalog-sync.js +41 -0
- package/dist/sdk/board-data.generated.d.ts +2 -0
- package/dist/sdk/board-data.generated.js +4 -0
- package/dist/sdk/catalog-walker.d.ts +90 -0
- package/dist/sdk/catalog-walker.js +682 -0
- package/dist/sdk/dts-reader.d.ts +83 -0
- package/dist/sdk/dts-reader.js +596 -0
- package/dist/strategy.d.ts +136 -17
- package/dist/strategy.js +881 -212
- package/dist/toolchain/bossac-touch.d.ts +18 -0
- package/dist/toolchain/bossac-touch.js +88 -0
- package/dist/toolchain/compat.d.ts +2 -2
- package/dist/toolchain/compat.js +8 -3
- package/dist/toolchain/debug-config.d.ts +21 -26
- package/dist/toolchain/debug-config.js +212 -72
- package/dist/toolchain/env-check.d.ts +4 -4
- package/dist/toolchain/env-check.js +5 -5
- package/dist/toolchain/index.d.ts +66 -1
- package/dist/toolchain/index.js +713 -58
- package/dist/toolchain/scaffold.d.ts +9 -0
- package/dist/toolchain/scaffold.js +84 -7
- package/dist/toolchain/west-discover.d.ts +8 -1
- package/dist/toolchain/west-discover.js +19 -6
- package/dist/toolchain/west-spawn.js +17 -5
- package/installer/CHANGELOG.md +473 -0
- package/installer/README.md +328 -0
- package/installer/environment.yml +46 -0
- package/installer/etc/conda/activate.d/zephyr.bat +7 -0
- package/installer/etc/conda/activate.d/zephyr.ps1 +12 -0
- package/installer/etc/conda/activate.d/zephyr.sh +20 -0
- package/installer/etc/conda/deactivate.d/zephyr.bat +6 -0
- package/installer/etc/conda/deactivate.d/zephyr.ps1 +6 -0
- package/installer/etc/conda/deactivate.d/zephyr.sh +4 -0
- package/installer/install.mjs +580 -0
- package/installer/install.ps1 +619 -0
- package/installer/install.sh +310 -0
- package/installer/lib/detect-platform.sh +62 -0
- package/installer/lib/fetch-sdk.sh +304 -0
- package/installer/lib/init-workspace.sh +153 -0
- package/installer/lib/write-activation.sh +76 -0
- package/installer/patches/tfm-c-include-separators.patch +19 -0
- package/installer/patches/zephyr-tfm-nordic-zephyr-include.patch +24 -0
- package/installer/templates/project/.typecad/activate-zephyr.ps1 +31 -0
- package/installer/templates/project/.typecad/activate-zephyr.sh +31 -0
- package/installer/templates/project/.vscode/settings.json +30 -0
- package/installer/templates/project/README.md +58 -0
- package/installer/versions.env +110 -0
- package/package.json +16 -16
- package/src/as-built.ts +206 -0
- package/src/boardgen.ts +1428 -0
- package/src/chips/controllers.ts +61 -12
- package/src/chips/index.ts +35 -54
- package/src/chips/resolve.ts +316 -14
- package/src/chips/types.ts +388 -13
- package/src/display/profiles.ts +1 -1
- package/src/doctor.ts +110 -77
- package/src/dt-config/custom-board.ts +325 -0
- package/src/dt-config/kconfig.ts +177 -19
- package/src/dt-config/overlay.ts +1058 -450
- package/src/framework.manifest.ts +125 -178
- package/src/index.ts +57 -41
- package/src/lowering/adc.ts +222 -102
- package/src/lowering/ble.ts +32 -28
- package/src/lowering/dac.ts +82 -82
- package/src/lowering/fs.ts +18 -10
- package/src/lowering/gpio.ts +242 -152
- package/src/lowering/http.ts +512 -488
- package/src/lowering/hwtimer.ts +139 -101
- package/src/lowering/i2c.ts +116 -126
- package/src/lowering/index.ts +91 -93
- package/src/lowering/interrupts.ts +113 -21
- package/src/lowering/mqtt.ts +12 -6
- package/src/lowering/preferences.ts +327 -354
- package/src/lowering/pwm.ts +167 -74
- package/src/lowering/random.ts +3 -3
- package/src/lowering/sensor.ts +155 -0
- package/src/lowering/spi.ts +164 -124
- package/src/lowering/thread.ts +63 -0
- package/src/lowering/timing.ts +46 -72
- package/src/lowering/uart.ts +73 -51
- package/src/lowering/usb.ts +221 -0
- package/src/lowering/wdt.ts +95 -84
- package/src/lowering/wifi.ts +120 -111
- package/src/sdk/board-catalog-sync.ts +62 -0
- package/src/strategy.ts +888 -229
- package/src/toolchain/bossac-touch.ts +112 -0
- package/src/toolchain/compat.ts +8 -3
- package/src/toolchain/debug-config.ts +666 -522
- package/src/toolchain/env-check.ts +9 -9
- package/src/toolchain/index.ts +765 -44
- package/src/toolchain/scaffold.ts +81 -7
- package/src/toolchain/west-discover.ts +334 -316
- package/src/toolchain/west-spawn.ts +17 -5
- package/src/async/timer-polyfill.ts +0 -107
- package/src/chips/esp32.ts +0 -74
- package/src/chips/esp32s3.ts +0 -57
- package/src/chips/xiao-ble.ts +0 -70
- package/src/lowering/power.ts +0 -70
- package/src/lowering/pulse.ts +0 -93
- package/src/lowering/tone.ts +0 -60
- package/src/lowering/worker-backing.ts +0 -94
- package/src/lowering/worker.ts +0 -17
|
@@ -1,41 +1,31 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
|
-
hal: {
|
|
3
|
-
[x: string]: {
|
|
4
|
-
supported: boolean;
|
|
5
|
-
ops: Record<string, "stub" | "polyfill" | "supported" | "unsupported" | "probe-inconclusive">;
|
|
6
|
-
partialCoverage: boolean;
|
|
7
|
-
unsupportedReason?: string | undefined;
|
|
8
|
-
};
|
|
9
|
-
raw?: unknown;
|
|
10
|
-
} & {
|
|
11
|
-
[k: string]: {
|
|
12
|
-
supported: boolean;
|
|
13
|
-
ops: Record<string, "stub" | "polyfill" | "supported" | "unsupported" | "probe-inconclusive">;
|
|
14
|
-
partialCoverage: boolean;
|
|
15
|
-
unsupportedReason?: string | undefined;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
packageName: string;
|
|
19
2
|
schemaVersion: 1;
|
|
20
3
|
frameworkId: string;
|
|
4
|
+
packageName: string;
|
|
21
5
|
canonical: boolean;
|
|
22
6
|
displayName: string;
|
|
23
7
|
description: string;
|
|
24
8
|
implementationMode: "from-scratch" | "extends-canonical" | "extends-other";
|
|
25
9
|
entrypoint: {
|
|
26
|
-
sourceExtension: "cpp" | "ino" | "cc" | "h";
|
|
27
10
|
entrypointFunctionName: string;
|
|
28
11
|
requiresLoopFunction: boolean;
|
|
12
|
+
sourceExtension: "cpp" | "h" | "ino" | "cc";
|
|
29
13
|
generateHeaderFile: boolean;
|
|
30
14
|
overrideBaseName?: string | undefined;
|
|
31
15
|
outputSubdirectory?: string | undefined;
|
|
32
16
|
customBridgeShim?: string | undefined;
|
|
33
17
|
};
|
|
34
18
|
profile: {
|
|
19
|
+
targets: string[];
|
|
35
20
|
forcedIncludes: string[];
|
|
36
21
|
symbolAliases: Record<string, string>;
|
|
37
|
-
targets: string[];
|
|
38
22
|
};
|
|
23
|
+
hal: Record<string, {
|
|
24
|
+
supported: boolean;
|
|
25
|
+
ops: Record<string, "stub" | "polyfill" | "supported" | "unsupported" | "probe-inconclusive">;
|
|
26
|
+
partialCoverage: boolean;
|
|
27
|
+
unsupportedReason?: string | undefined;
|
|
28
|
+
}>;
|
|
39
29
|
polyfills: {
|
|
40
30
|
emitted: {
|
|
41
31
|
id: string;
|
|
@@ -59,20 +49,20 @@ declare const _default: {
|
|
|
59
49
|
reexportedFrom?: string | undefined;
|
|
60
50
|
};
|
|
61
51
|
typeEmission: {
|
|
62
|
-
|
|
52
|
+
normalizeCppType: boolean;
|
|
53
|
+
mathHeader: "<cmath>" | "none" | "<math.h>" | "<Arduino.h>";
|
|
63
54
|
needsStdString: boolean;
|
|
64
55
|
needsStdVector: boolean;
|
|
56
|
+
needsIostream: boolean;
|
|
65
57
|
needsStdFunction: boolean;
|
|
66
|
-
mathHeader: "none" | "<math.h>" | "<Arduino.h>";
|
|
67
|
-
normalizeCppType: boolean;
|
|
68
58
|
stdlibSupport: {
|
|
69
59
|
hasVector: boolean;
|
|
70
60
|
hasString: boolean;
|
|
71
61
|
hasIostream: boolean;
|
|
72
62
|
hasExceptions: boolean;
|
|
73
63
|
hasRTTI: boolean;
|
|
74
|
-
recommendedArrayImpl: "
|
|
75
|
-
recommendedStringImpl: "
|
|
64
|
+
recommendedArrayImpl: "static_array" | "std_vector";
|
|
65
|
+
recommendedStringImpl: "static_string" | "std_string";
|
|
76
66
|
};
|
|
77
67
|
};
|
|
78
68
|
ambientTypes: string[];
|
|
@@ -80,12 +70,6 @@ declare const _default: {
|
|
|
80
70
|
hardwareTestGroups: string[];
|
|
81
71
|
halResolutionTests: string[];
|
|
82
72
|
};
|
|
83
|
-
doctor?: {
|
|
84
|
-
available: boolean;
|
|
85
|
-
} | undefined;
|
|
86
|
-
licenses?: {
|
|
87
|
-
available: boolean;
|
|
88
|
-
} | undefined;
|
|
89
73
|
basedOn?: string | undefined;
|
|
90
74
|
inheritsStrategyId?: string | undefined;
|
|
91
75
|
libraryResolution?: {
|
|
@@ -95,6 +79,12 @@ declare const _default: {
|
|
|
95
79
|
tryGenerateLibDecl: boolean;
|
|
96
80
|
reexportedFrom?: string | undefined;
|
|
97
81
|
} | undefined;
|
|
82
|
+
doctor?: {
|
|
83
|
+
available: boolean;
|
|
84
|
+
} | undefined;
|
|
85
|
+
licenses?: {
|
|
86
|
+
available: boolean;
|
|
87
|
+
} | undefined;
|
|
98
88
|
compat?: {
|
|
99
89
|
zephyr?: string | undefined;
|
|
100
90
|
} | undefined;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Zephyr framework manifest
|
|
3
3
|
//
|
|
4
4
|
// Coverage reflects actual resolveHALOperation / lowerHalOp + resolveDisplayOp
|
|
5
|
-
// behavior. GPIO, PWM, ADC, I2C, SPI, UART, interrupts,
|
|
5
|
+
// behavior. GPIO, PWM, ADC, I2C, SPI, UART, interrupts, pulse,
|
|
6
6
|
// shift, WDT, BLE, timing, WiFi, HTTP/S, MQTT, board constants, and random
|
|
7
7
|
// are lowered; display is lowered via the generic <zephyr/drivers/display.h>
|
|
8
8
|
// GFX runtime. WiFi/HTTP/MQTT require an ESP32 target (nRF52840 has no radio).
|
|
@@ -34,19 +34,22 @@ export default defineFrameworkManifest({
|
|
|
34
34
|
'GPIO is lowered through devicetree specs (gpio_pin_*_dt).',
|
|
35
35
|
implementationMode: 'from-scratch',
|
|
36
36
|
entrypoint: {
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
// Zephyr is a main()-based RTOS: top-level statements lower straight into
|
|
38
|
+
// main() (no setup()/loop() pair, no bridge shim). Event-driven programs
|
|
39
|
+
// get their scheduler loop appended inside main() by the driver machinery.
|
|
40
|
+
entrypointFunctionName: 'main',
|
|
41
|
+
requiresLoopFunction: false,
|
|
39
42
|
sourceExtension: 'cpp',
|
|
40
43
|
overrideBaseName: 'main',
|
|
41
44
|
outputSubdirectory: 'src',
|
|
42
45
|
generateHeaderFile: true,
|
|
43
|
-
customBridgeShim: 'main',
|
|
44
46
|
},
|
|
45
47
|
profile: {
|
|
46
48
|
// Informational list of supported board targets. The manifest validator
|
|
47
|
-
// never iterates this
|
|
48
|
-
//
|
|
49
|
-
|
|
49
|
+
// never iterates this. Every board in the catalog resolves the same way
|
|
50
|
+
// (resolveChipFromBoard over the generated manifest) — there is no
|
|
51
|
+
// curated target list.
|
|
52
|
+
targets: [],
|
|
50
53
|
forcedIncludes: ['<zephyr/kernel.h>', '<zephyr/drivers/gpio.h>', '<cstdint>'],
|
|
51
54
|
symbolAliases: {},
|
|
52
55
|
},
|
|
@@ -59,26 +62,28 @@ export default defineFrameworkManifest({
|
|
|
59
62
|
'gpio.write': 'supported',
|
|
60
63
|
'gpio.read': 'supported',
|
|
61
64
|
'gpio.toggle': 'supported',
|
|
62
|
-
|
|
65
|
+
// Thin GPIO (hal/gpio-pin.ts): construction flags as tokens, applied
|
|
66
|
+
// once per pin ahead of first use.
|
|
67
|
+
'gpio.configure': 'supported',
|
|
68
|
+
'gpio.read_cfg': 'supported', // fused guarded configure + read
|
|
69
|
+
'gpio.shift_out': 'supported',
|
|
70
|
+
'gpio.shift_in': 'supported',
|
|
63
71
|
},
|
|
64
72
|
},
|
|
65
|
-
// ── Supported: Timing (delay/millis/delay_us/micros
|
|
73
|
+
// ── Supported: Timing (delay/millis/delay_us/micros; timers via polyfill) ─
|
|
66
74
|
timing: {
|
|
67
75
|
supported: true,
|
|
68
76
|
partialCoverage: false,
|
|
69
77
|
ops: {
|
|
70
|
-
'timing.delay': 'supported', // → k_msleep(ms)
|
|
71
|
-
'timing.delay_microseconds': 'supported', // → k_busy_wait(us)
|
|
72
|
-
'timing.millis': 'supported', // → k_uptime_get_32()
|
|
73
|
-
'timing.micros': 'supported', // → k_cycle_get_32 + cycles/sec
|
|
74
|
-
'timing.free_heap': 'supported', // → 0 (no portable query; see lowering)
|
|
75
78
|
// Timer ops are POLYFILL_BACKED_OPS → timer_methods. The validator skips
|
|
76
79
|
// the resolver probe (these legitimately return polyfill-helper calls,
|
|
77
80
|
// not direct lowering) and requires the polyfill be in polyfills.emitted.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
'timing.
|
|
81
|
-
'timing.
|
|
81
|
+
// Time.* — the TS-flavored surface (hal/time.ts), preferred over the
|
|
82
|
+
// Arduino-named forms above for new code.
|
|
83
|
+
'timing.sleep': 'supported', // → k_msleep(ms) — Time.sleep
|
|
84
|
+
'timing.now': 'supported', // → k_uptime_get() — Time.now
|
|
85
|
+
'timing.now_us': 'supported', // → k_cyc_to_us_floor64 — Time.nowUs
|
|
86
|
+
'timing.busy_wait_us': 'supported', // → k_busy_wait(us) — Time.busyWaitUs
|
|
82
87
|
},
|
|
83
88
|
},
|
|
84
89
|
// ── Supported: PWM (pwm_dt_spec via pwm-led0) ──────────────────────────
|
|
@@ -86,9 +91,11 @@ export default defineFrameworkManifest({
|
|
|
86
91
|
supported: true,
|
|
87
92
|
partialCoverage: false,
|
|
88
93
|
ops: {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
'pwm.
|
|
94
|
+
// Thin PWM (hal/pwm-pin.ts): ns-true verbs; construction period
|
|
95
|
+
// applies once, setDuty is 0.0–1.0 sugar over one set_pulse call.
|
|
96
|
+
'pwm.set_pulse': 'supported',
|
|
97
|
+
'pwm.set_duty': 'supported',
|
|
98
|
+
'pwm.set_period': 'supported',
|
|
92
99
|
},
|
|
93
100
|
},
|
|
94
101
|
// ── Supported: ADC (SAADC via adc_read + channel setup) ────────────────
|
|
@@ -96,11 +103,10 @@ export default defineFrameworkManifest({
|
|
|
96
103
|
supported: true,
|
|
97
104
|
partialCoverage: false,
|
|
98
105
|
ops: {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
'adc.
|
|
102
|
-
'adc.
|
|
103
|
-
'adc.read_voltage': 'supported',
|
|
106
|
+
// Thin ADC (hal/adc-pin.ts): construction gain/reference tokens,
|
|
107
|
+
// lazy inline channel setup.
|
|
108
|
+
'adc.read_raw': 'supported',
|
|
109
|
+
'adc.read_mv': 'supported',
|
|
104
110
|
},
|
|
105
111
|
},
|
|
106
112
|
dac: {
|
|
@@ -110,77 +116,57 @@ export default defineFrameworkManifest({
|
|
|
110
116
|
// (zephyr-dac-pin-unavailable).
|
|
111
117
|
supported: true,
|
|
112
118
|
partialCoverage: true,
|
|
113
|
-
ops: {
|
|
119
|
+
ops: {
|
|
120
|
+
// Thin DAC (hal/dac-pin.ts): raw code, construction resolution.
|
|
121
|
+
'dac.write_value': 'supported',
|
|
122
|
+
},
|
|
114
123
|
},
|
|
115
124
|
interrupts: {
|
|
116
125
|
supported: true,
|
|
117
126
|
partialCoverage: true,
|
|
118
127
|
unsupportedReason: undefined,
|
|
119
128
|
ops: {
|
|
120
|
-
'interrupt.attach': 'supported',
|
|
121
129
|
'interrupt.detach': 'supported',
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
supported: true,
|
|
126
|
-
partialCoverage: true,
|
|
127
|
-
ops: {
|
|
128
|
-
'tone.play': 'supported', // PWM-based square wave (blocking for duration)
|
|
129
|
-
'tone.stop': 'supported',
|
|
130
|
-
},
|
|
131
|
-
},
|
|
132
|
-
power: {
|
|
133
|
-
supported: true,
|
|
134
|
-
partialCoverage: true,
|
|
135
|
-
ops: {
|
|
136
|
-
'power.deep_sleep': 'supported', // k_sleep (deepest allowed state)
|
|
137
|
-
'power.light_sleep': 'supported', // pm_state_force SUSPEND_TO_IDLE
|
|
138
|
-
'power.set_cpu_frequency': 'supported', // comment (nRF clock API deferred)
|
|
139
|
-
'power.deep_sleep_pin': 'supported', // GPIO-interrupt wake + k_sleep
|
|
130
|
+
// Thin GPIO interrupts (hal/gpio-pin.ts onInterrupt): INT_* tokens,
|
|
131
|
+
// covering the level modes the legacy mode strings could not express.
|
|
132
|
+
'interrupt.attach_flags': 'supported',
|
|
140
133
|
},
|
|
141
134
|
},
|
|
142
135
|
i2c: {
|
|
143
136
|
supported: true,
|
|
144
137
|
partialCoverage: false,
|
|
145
138
|
ops: {
|
|
146
|
-
|
|
147
|
-
'i2c.
|
|
148
|
-
'i2c.
|
|
149
|
-
'i2c.
|
|
150
|
-
'i2c.
|
|
151
|
-
'i2c.recover': 'supported',
|
|
139
|
+
// Thin I2C device (hal/i2c-target.ts): Zephyr register verbs.
|
|
140
|
+
'i2c.reg_write': 'supported',
|
|
141
|
+
'i2c.reg_read': 'supported',
|
|
142
|
+
'i2c.reg_update': 'supported',
|
|
143
|
+
'i2c.dev_write': 'supported',
|
|
152
144
|
},
|
|
153
145
|
},
|
|
154
146
|
spi: {
|
|
155
147
|
supported: true,
|
|
156
148
|
partialCoverage: false,
|
|
157
149
|
ops: {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
'spi.
|
|
161
|
-
'spi.
|
|
150
|
+
// Thin SPI device (hal/spi-target.ts): spi_dt_spec against the DT
|
|
151
|
+
// child node the overlay emits per constructed target.
|
|
152
|
+
'spi.transceive': 'supported',
|
|
153
|
+
'spi.dev_write': 'supported',
|
|
154
|
+
'spi.reg_read': 'supported',
|
|
162
155
|
},
|
|
163
156
|
},
|
|
164
157
|
uart: {
|
|
165
158
|
supported: true,
|
|
166
159
|
partialCoverage: true,
|
|
167
160
|
ops: {
|
|
168
|
-
|
|
169
|
-
'uart.
|
|
170
|
-
|
|
171
|
-
'uart.
|
|
161
|
+
// Thin UART (hal/uart-port.ts): poll API with construction baud.
|
|
162
|
+
'uart.poll_write': 'supported',
|
|
163
|
+
// Interrupt-drained RX ring (hal/uart-port.ts).
|
|
164
|
+
'uart.rx_arm': 'supported',
|
|
165
|
+
'uart.rx_available': 'supported',
|
|
166
|
+
'uart.rx_peek': 'supported',
|
|
167
|
+
'uart.rx_read': 'supported',
|
|
172
168
|
},
|
|
173
169
|
},
|
|
174
|
-
pulse: {
|
|
175
|
-
supported: true,
|
|
176
|
-
partialCoverage: true,
|
|
177
|
-
ops: { 'pulse.in': 'supported', 'pulse.in_long': 'supported' },
|
|
178
|
-
},
|
|
179
|
-
shift: {
|
|
180
|
-
supported: true,
|
|
181
|
-
partialCoverage: false,
|
|
182
|
-
ops: { 'shift.out': 'supported', 'shift.in': 'supported' },
|
|
183
|
-
},
|
|
184
170
|
board: {
|
|
185
171
|
// Board constant resolution. Board.definition.<path> /
|
|
186
172
|
// Pins.definition.<path> property accesses are folded by
|
|
@@ -198,13 +184,38 @@ export default defineFrameworkManifest({
|
|
|
198
184
|
supported: true,
|
|
199
185
|
partialCoverage: false,
|
|
200
186
|
ops: {
|
|
201
|
-
'wdt.enable': 'supported',
|
|
202
|
-
'wdt.reset': 'supported',
|
|
203
187
|
'wdt.disable': 'supported',
|
|
188
|
+
// Thin Watchdog (hal/watchdog.ts): construction timeout in ms.
|
|
189
|
+
'wdt.setup': 'supported',
|
|
190
|
+
'wdt.feed': 'supported',
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
// Thin Counter (hal/counter.ts) — Zephyr's counter driver with Zephyr's
|
|
194
|
+
// verbs, over the same per-instance state as hwtimer.*. Chips without a
|
|
195
|
+
// declared free counter lower to a comment + profileDiagnostics flag.
|
|
196
|
+
counter: {
|
|
197
|
+
supported: true,
|
|
198
|
+
partialCoverage: true,
|
|
199
|
+
ops: {
|
|
200
|
+
'counter.on_alarm': 'supported',
|
|
201
|
+
'counter.start': 'supported',
|
|
202
|
+
'counter.stop': 'supported',
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
// Thin Thread (hal/thread.ts) — kernel threads. start(fn) is
|
|
206
|
+
// k_thread_create (K_NO_WAIT) over a per-slot stack sized by the
|
|
207
|
+
// construction stackKb; join is k_thread_join (K_FOREVER).
|
|
208
|
+
thread: {
|
|
209
|
+
supported: true,
|
|
210
|
+
partialCoverage: false,
|
|
211
|
+
ops: {
|
|
212
|
+
'thread.start': 'supported',
|
|
213
|
+
'thread.join': 'supported',
|
|
204
214
|
},
|
|
205
215
|
},
|
|
206
216
|
// ── Partial: WiFi (STA connect + scan + config via conn_mgr/net_mgmt) ────
|
|
207
|
-
// ESP32
|
|
217
|
+
// ESP32 family only (esp32, esp32s3, esp32c3, esp32c6) — profileDiagnostics
|
|
218
|
+
// flags wifi usage on radioless chips (nRF52840, RP2040/RP2350).
|
|
208
219
|
// AP mode, credential persistence, static IP, and event callbacks deferred.
|
|
209
220
|
wifi: {
|
|
210
221
|
supported: true,
|
|
@@ -213,50 +224,32 @@ export default defineFrameworkManifest({
|
|
|
213
224
|
// driver hook; credentials need a custom settings-subsystem layer; static IP
|
|
214
225
|
// / auto-reconnect / tx-power aren't wifi-shaped or aren't exposed by the
|
|
215
226
|
// esp32 Zephyr driver. See per-op reasons.
|
|
216
|
-
unsupportedReason: 'AP
|
|
227
|
+
unsupportedReason: 'Per-station AP enumeration and credential persistence have no Zephyr lowering (no driver/Kconfig hook).',
|
|
217
228
|
ops: {
|
|
218
|
-
//
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
'wifi.
|
|
222
|
-
'wifi.
|
|
223
|
-
|
|
224
|
-
'wifi.
|
|
229
|
+
// Station (8) — join carries the construction facts (credentials,
|
|
230
|
+
// security, band/channel, timeout, static IPv4, power-save);
|
|
231
|
+
// net_mgmt connect/disconnect + L4 connectivity state underneath.
|
|
232
|
+
'wifi.join': 'supported', 'wifi.connect_start': 'supported',
|
|
233
|
+
'wifi.disconnect': 'supported', 'wifi.is_connected': 'supported',
|
|
234
|
+
'wifi.local_ip': 'supported', 'wifi.rssi': 'supported',
|
|
235
|
+
'wifi.mac': 'supported',
|
|
225
236
|
// Scan (8) — net_mgmt NET_REQUEST_WIFI_SCAN + result pool.
|
|
226
|
-
|
|
237
|
+
// scan_start is the async split of scan (kick + poll scan_done);
|
|
238
|
+
// emitted synthetically by the async tier, no TS-facing method.
|
|
239
|
+
'wifi.scan': 'supported',
|
|
240
|
+
'wifi.scan_start': 'supported',
|
|
227
241
|
'wifi.scan_done': 'supported', 'wifi.scan_count': 'supported',
|
|
228
242
|
'wifi.scan_ssid': 'supported', 'wifi.scan_rssi': 'supported',
|
|
229
243
|
'wifi.scan_encryption': 'supported', 'wifi.scan_channel': 'supported',
|
|
230
|
-
// AP mode (2
|
|
231
|
-
// ssid/
|
|
232
|
-
// driver hook (config_params isn't wired, max_clients hardcodes 5).
|
|
244
|
+
// AP mode (2) — esp32 driver wires ap_enable/ap_disable. Only
|
|
245
|
+
// ssid/psk/channel are honored (the thin WiFiAP facts carry exactly those).
|
|
233
246
|
'wifi.ap_start': 'supported', 'wifi.ap_stop': 'supported',
|
|
234
|
-
// Config (2) — hostname (best-effort no-op) + power save (real net_mgmt).
|
|
235
|
-
'wifi.set_hostname': 'supported', 'wifi.set_power_save': 'supported',
|
|
236
247
|
// on_event: 'disconnect' (NET_EVENT_L4_DISCONNECTED) + 'connect'
|
|
237
248
|
// (NET_EVENT_IPV4_ADDR_ADD) are lowered.
|
|
238
249
|
'wifi.on_event': 'supported',
|
|
239
|
-
// ── Genuinely unsupported (no
|
|
250
|
+
// ── Genuinely unsupported (no driver hook) ─────────────────────────
|
|
240
251
|
// ap_client_count: no API to enumerate connected AP stations.
|
|
241
|
-
// ap_ip: set via net_if, not wifi net_mgmt.
|
|
242
|
-
// ap_set_channel: channel set at ap_start; driver doesn't wire ap_config_params.
|
|
243
|
-
// ap_set_hidden: esp32 ap_enable config has no ssid_hidden field.
|
|
244
|
-
// ap_set_max_clients: driver hardcodes max_connection to 5; config_params unwired.
|
|
245
|
-
// save_credentials/connect_saved/clear_credentials: no wifi-credentials API in
|
|
246
|
-
// Zephyr (would need a custom settings-subsystem layer).
|
|
247
|
-
// set_static_ip: a net_if operation, not a wifi net_mgmt request.
|
|
248
|
-
// set_auto_reconnect: esp32 driver doesn't expose esp_wifi_set_auto_connect.
|
|
249
|
-
// set_tx_power: driver owns the radio; the PHY ceiling isn't a Zephyr Kconfig (zephyr#45580).
|
|
250
252
|
'wifi.ap_client_count': 'unsupported',
|
|
251
|
-
'wifi.ap_ip': 'unsupported',
|
|
252
|
-
'wifi.ap_set_channel': 'unsupported',
|
|
253
|
-
'wifi.ap_set_hidden': 'unsupported',
|
|
254
|
-
'wifi.ap_set_max_clients': 'unsupported',
|
|
255
|
-
'wifi.save_credentials': 'unsupported', 'wifi.connect_saved': 'unsupported',
|
|
256
|
-
'wifi.clear_credentials': 'unsupported',
|
|
257
|
-
'wifi.set_static_ip': 'unsupported',
|
|
258
|
-
'wifi.set_auto_reconnect': 'unsupported',
|
|
259
|
-
'wifi.set_tx_power': 'unsupported',
|
|
260
253
|
},
|
|
261
254
|
},
|
|
262
255
|
http: {
|
|
@@ -268,7 +261,7 @@ export default defineFrameworkManifest({
|
|
|
268
261
|
// a networked target (ESP32 WiFi); profileDiagnostics flags usage on a
|
|
269
262
|
// radioless chip as 'zephyr-http-unavailable-on-target'.
|
|
270
263
|
ops: {
|
|
271
|
-
'http.begin': 'supported',
|
|
264
|
+
'http.begin': 'supported',
|
|
272
265
|
'http.set_header': 'supported', 'http.set_timeout': 'supported',
|
|
273
266
|
'http.set_max_body': 'supported', 'http.set_body': 'supported',
|
|
274
267
|
'http.set_insecure': 'supported', 'http.set_ca_cert': 'supported',
|
|
@@ -304,25 +297,12 @@ export default defineFrameworkManifest({
|
|
|
304
297
|
ops: Object.fromEntries(HAL_OPERATION_KINDS.filter((k) => k.startsWith('ble.')).map((k) => [k, 'supported'])),
|
|
305
298
|
},
|
|
306
299
|
// ── Supported: Worker offload (k_work system workqueue + k_sem) ──────────
|
|
307
|
-
// worker.* is lowered via lowerWorkerOp against the shared __tc_worker
|
|
308
|
-
// contract; the Zephyr backing (worker-backing.ts) supplies k_work + k_sem.
|
|
309
|
-
worker: {
|
|
310
|
-
supported: true,
|
|
311
|
-
partialCoverage: false,
|
|
312
|
-
ops: { 'worker.submit': 'supported', 'worker.done': 'supported' },
|
|
313
|
-
},
|
|
314
300
|
// ── Honestly unsupported extended categories ─────────────────────────────
|
|
315
301
|
// These have op-kinds in HAL_OPERATION_KINDS but no Zephyr lowering. Each
|
|
316
302
|
// is declared unsupported (with a reason) so the coverage matrix is uniform
|
|
317
303
|
// and the resolver's `return undefined` for these prefixes is honest. The
|
|
318
304
|
// catchall schema (HalCoverageSchema) validates any declared extended
|
|
319
305
|
// category; declaring them keeps the manifest a complete coverage record.
|
|
320
|
-
rmt: {
|
|
321
|
-
supported: false,
|
|
322
|
-
unsupportedReason: 'RMT (ESP32 infrared/transaction peripheral) has no Zephyr lowering.',
|
|
323
|
-
partialCoverage: false,
|
|
324
|
-
ops: unsupportedOps('rmt.'),
|
|
325
|
-
},
|
|
326
306
|
snprintf: {
|
|
327
307
|
supported: false,
|
|
328
308
|
unsupportedReason: 'snprintf.emit is a raw escape hatch; the Zephyr resolver returns undefined (use rawCpp()).',
|
|
@@ -343,10 +323,8 @@ export default defineFrameworkManifest({
|
|
|
343
323
|
supported: true,
|
|
344
324
|
partialCoverage: false,
|
|
345
325
|
ops: {
|
|
346
|
-
'preferences.begin': 'supported', 'preferences.end': 'supported',
|
|
347
326
|
'preferences.clear': 'supported', 'preferences.remove': 'supported',
|
|
348
327
|
'preferences.put_int': 'supported', 'preferences.get_int': 'supported',
|
|
349
|
-
'preferences.put_uint': 'supported', 'preferences.get_uint': 'supported',
|
|
350
328
|
'preferences.put_bool': 'supported', 'preferences.get_bool': 'supported',
|
|
351
329
|
'preferences.put_float': 'supported', 'preferences.get_float': 'supported',
|
|
352
330
|
'preferences.put_string': 'supported', 'preferences.get_string': 'supported',
|
|
@@ -373,16 +351,10 @@ export default defineFrameworkManifest({
|
|
|
373
351
|
supported: true,
|
|
374
352
|
partialCoverage: false,
|
|
375
353
|
ops: {
|
|
376
|
-
'fs.
|
|
354
|
+
'fs.read_text': 'supported', 'fs.write_text': 'supported',
|
|
377
355
|
'fs.exists': 'supported', 'fs.remove': 'supported',
|
|
378
356
|
},
|
|
379
357
|
},
|
|
380
|
-
mdns: {
|
|
381
|
-
supported: false,
|
|
382
|
-
unsupportedReason: 'No mDNS lowering on Zephyr (requires networking stack).',
|
|
383
|
-
partialCoverage: false,
|
|
384
|
-
ops: unsupportedOps('mdns.'),
|
|
385
|
-
},
|
|
386
358
|
mqtt: {
|
|
387
359
|
supported: true,
|
|
388
360
|
partialCoverage: false,
|
|
@@ -399,43 +371,19 @@ export default defineFrameworkManifest({
|
|
|
399
371
|
'mqtt.connected': 'supported', 'mqtt.disconnect': 'supported',
|
|
400
372
|
},
|
|
401
373
|
},
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
temp: {
|
|
409
|
-
supported: false,
|
|
410
|
-
unsupportedReason: 'No on-chip temperature lowering on Zephyr (nRF52840 TEMP peripheral; not wired).',
|
|
411
|
-
partialCoverage: false,
|
|
412
|
-
ops: { 'temp.read': 'unsupported' },
|
|
413
|
-
},
|
|
414
|
-
hwtimer: {
|
|
415
|
-
// Hardware timers via the Zephyr counter driver (<zephyr/drivers/counter.h>).
|
|
416
|
-
// set_frequency → top value (counter_freq/hz) + on_overflow callback;
|
|
417
|
-
// start arms both; stop halts. A chip declares its free counters
|
|
418
|
-
// (e.g. nRF RTC1; RTC0 is kernel-owned). This is distinct from the JS
|
|
419
|
-
// setInterval/setTimeout k_timer polyfill, which is unaffected.
|
|
374
|
+
sensor: {
|
|
375
|
+
// DT-bound sensor parts — the generic catalog (hal/sensor.ts +
|
|
376
|
+
// sensor-catalog.generated.ts). fetch → sensor_sample_fetch,
|
|
377
|
+
// get → sensor_channel_get on a per-sensor device handle; the overlay
|
|
378
|
+
// generator emits the DT child node, and the driver's own Kconfig
|
|
379
|
+
// `default y` lights it up (only CONFIG_SENSOR is set, usage-gated).
|
|
420
380
|
supported: true,
|
|
421
|
-
partialCoverage:
|
|
381
|
+
partialCoverage: false,
|
|
422
382
|
ops: {
|
|
423
|
-
'
|
|
424
|
-
'
|
|
383
|
+
'sensor.fetch': 'supported',
|
|
384
|
+
'sensor.get': 'supported',
|
|
425
385
|
},
|
|
426
386
|
},
|
|
427
|
-
capacitive: {
|
|
428
|
-
// FT6336U capacitive touch is handled via the strategy-owned touch adapter
|
|
429
|
-
// (src/display/touch-adapter.ts → touch_init/touch_isTouched/touch_readRaw),
|
|
430
|
-
// NOT via a HAL op lowering. The manifest marks it unsupported here (no
|
|
431
|
-
// resolveHALOperation path for capacitive.read); the touch adapter provides
|
|
432
|
-
// the integration. partialCoverage reflects that it works on targets with
|
|
433
|
-
// the FT6336U DT node (ESP32), not on the bare nRF52840.
|
|
434
|
-
supported: false,
|
|
435
|
-
unsupportedReason: 'Capacitive touch is handled via the strategy touch adapter (FT6336U I2C), not a HAL op. Requires the ft6336u DT node.',
|
|
436
|
-
partialCoverage: true,
|
|
437
|
-
ops: { 'capacitive.read': 'unsupported' },
|
|
438
|
-
},
|
|
439
387
|
i2s: {
|
|
440
388
|
supported: false,
|
|
441
389
|
unsupportedReason: 'No I2S / digital audio lowering on Zephyr.',
|
|
@@ -449,8 +397,12 @@ export default defineFrameworkManifest({
|
|
|
449
397
|
ops: unsupportedOps('twai.'),
|
|
450
398
|
},
|
|
451
399
|
usb: {
|
|
400
|
+
// CDC-ACM serial over the board's USB connector. BOARD-GATED: the
|
|
401
|
+
// lowering only fires when the board's manifest carries zephyr.usb.*
|
|
402
|
+
// (boardgen emits it from the board's own DTS) — the manifest probe
|
|
403
|
+
// runs with no board, so the honest declaration is unsupported here.
|
|
452
404
|
supported: false,
|
|
453
|
-
unsupportedReason: '
|
|
405
|
+
unsupportedReason: 'Board-gated: USB lowers only on boards whose DTS enables the USB device controller (boardgen emits zephyr.usb.* from the catalog).',
|
|
454
406
|
partialCoverage: false,
|
|
455
407
|
ops: unsupportedOps('usb.'),
|
|
456
408
|
},
|
|
@@ -492,7 +444,6 @@ export default defineFrameworkManifest({
|
|
|
492
444
|
{ id: 'wiring_compat', domain: 'standard', notes: 'HIGH/LOW/digitalRead/etc. macros routing Wiring tokens (referenced unconditionally by the UI runtime header) to the __tc_gpio_* helpers' },
|
|
493
445
|
{ id: 'string_methods', domain: 'embedded', notes: 'STL-free __tc_* string helpers (const char*, inline ASCII case conv, <cstring> only)' },
|
|
494
446
|
{ id: 'static_array', domain: 'embedded', notes: 'STL-free __tc_StaticArray<T,N> wrapper for no-<vector> mutated/struct array literals' },
|
|
495
|
-
{ id: 'timer_methods', domain: 'embedded', notes: 'k_timer + k_work pool (system workqueue); callbacks run in thread context' },
|
|
496
447
|
{ id: 'async_runtime', domain: 'embedded', notes: 'Heap-free static Promise/microtask runtime (generateStaticAsyncRuntime), pumped in loop()' },
|
|
497
448
|
],
|
|
498
449
|
suppressed: [],
|
|
@@ -509,7 +460,7 @@ export default defineFrameworkManifest({
|
|
|
509
460
|
},
|
|
510
461
|
typeEmission: {
|
|
511
462
|
normalizeCppType: true,
|
|
512
|
-
mathHeader: '<
|
|
463
|
+
mathHeader: '<cmath>',
|
|
513
464
|
needsStdString: false,
|
|
514
465
|
needsStdVector: false,
|
|
515
466
|
needsIostream: false,
|
|
@@ -526,17 +477,11 @@ export default defineFrameworkManifest({
|
|
|
526
477
|
},
|
|
527
478
|
ambientTypes: ['Preferences'],
|
|
528
479
|
conformance: {
|
|
529
|
-
// Hardware-test groups
|
|
530
|
-
//
|
|
531
|
-
//
|
|
532
|
-
//
|
|
533
|
-
hardwareTestGroups: [
|
|
534
|
-
'01-basics',
|
|
535
|
-
'30-timing',
|
|
536
|
-
'40-gpio',
|
|
537
|
-
'41-analog',
|
|
538
|
-
'42-timers',
|
|
539
|
-
],
|
|
480
|
+
// Hardware-test groups moved to the shared HAL suite
|
|
481
|
+
// (packages/hal/tests — common/ + board/ via board test-pins.json), which
|
|
482
|
+
// runs on Zephyr targets through the hal board configs. The
|
|
483
|
+
// hal-resolution snapshots below stay.
|
|
484
|
+
hardwareTestGroups: [],
|
|
540
485
|
// Per-op HAL-resolution suite — one tests/packages/framework-zephyr/
|
|
541
486
|
// hal-resolution/<cat>.test.ts per category, snapshotting the exact C++
|
|
542
487
|
// each op lowers to. Mirrors the framework-esp32 convention. These are
|
|
@@ -544,8 +489,9 @@ export default defineFrameworkManifest({
|
|
|
544
489
|
// catches regressions like silent pull-resistor / interrupt no-ops.
|
|
545
490
|
halResolutionTests: [
|
|
546
491
|
'adc', 'ble', 'board', 'dac', 'fs', 'gpio', 'http', 'hwtimer', 'i2c',
|
|
547
|
-
'interrupts', 'mqtt', '
|
|
548
|
-
'spi', '
|
|
492
|
+
'interrupts', 'mqtt', 'preferences', 'pwm', 'random',
|
|
493
|
+
'spi', 'thin-buses', 'thin-classes', 'thread', 'timing',
|
|
494
|
+
'uart', 'usb', 'wdt', 'wifi',
|
|
549
495
|
],
|
|
550
496
|
},
|
|
551
497
|
// Declared compatibility range for the installed Zephyr RTOS. The framework's
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export { ZephyrStrategy as FrameworkStrategy } from './strategy.js';
|
|
2
2
|
export { ZephyrStrategy } from './strategy.js';
|
|
3
3
|
export { Toolchain } from './toolchain/index.js';
|
|
4
|
+
export { bossacTouchReset } from './toolchain/bossac-touch.js';
|
|
4
5
|
export { writeProjectDebugArtifacts } from './toolchain/debug-config.js';
|
|
5
6
|
export { runDoctor as doctor } from './doctor.js';
|
|
6
7
|
export { runLicensesPresenter as licenses } from './licenses.js';
|
|
7
|
-
export {
|
|
8
|
+
export { setActiveChip, getActiveChip, NO_BOARD_CHIP, } from './chips/index.js';
|
|
8
9
|
export type { ZephyrChipDescriptor, ZephyrGpioDtSpec, } from './chips/types.js';
|
|
10
|
+
export { syncBoardCatalog, ensureFreshBoardCatalog, loadBoardCatalogOverlay, resetBoardCatalogOverlayCache, } from './sdk/board-catalog-sync.js';
|
|
11
|
+
export type { BoardCatalogSyncReport, BoardCatalogEnsureResult, BoardCatalogOverlay, } from './sdk/board-catalog-sync.js';
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
export { ZephyrStrategy as FrameworkStrategy } from './strategy.js';
|
|
9
9
|
export { ZephyrStrategy } from './strategy.js';
|
|
10
10
|
export { Toolchain } from './toolchain/index.js';
|
|
11
|
+
export { bossacTouchReset } from './toolchain/bossac-touch.js';
|
|
11
12
|
// Create-time starter debug artifacts. The `cuttlefish create` flow reads this
|
|
12
13
|
// optional named export off the loaded framework module (same loader pattern
|
|
13
14
|
// as doctor/licenses) and calls it for freshly scaffolded projects, so F5 in
|
|
@@ -23,5 +24,10 @@ export { runDoctor as doctor } from './doctor.js';
|
|
|
23
24
|
// alias `licenses` so the loader picks it up as mod.licenses (see
|
|
24
25
|
// framework-package.ts). Mirrors framework-arduino's presenter.
|
|
25
26
|
export { runLicensesPresenter as licenses } from './licenses.js';
|
|
26
|
-
// Chip descriptor
|
|
27
|
-
|
|
27
|
+
// Chip descriptor cache (the lowering's resolved-board view; no curated
|
|
28
|
+
// registry — every board reconstructs from its generated manifest).
|
|
29
|
+
export { setActiveChip, getActiveChip, NO_BOARD_CHIP, } from './chips/index.js';
|
|
30
|
+
// Board catalog sync — regenerate the local board overlay from the user's
|
|
31
|
+
// own Zephyr tree (`cuttlefish board sync`), so board add/change/remove
|
|
32
|
+
// tracks `west update` instead of cuttlefish releases.
|
|
33
|
+
export { syncBoardCatalog, ensureFreshBoardCatalog, loadBoardCatalogOverlay, resetBoardCatalogOverlayCache, } from './sdk/board-catalog-sync.js';
|