diff --git a/src/svd-parser.ts b/src/svd-parser.ts index 7840db0..9501229 100644 --- a/src/svd-parser.ts +++ b/src/svd-parser.ts @@ -95,6 +95,9 @@ export class SVDParser { defaultOptions.accessType = accessTypeFromString(svdData.device.access[0]); } + if (!svdData.device.peripherals) { + throw new Error('Unable to parse SVD file: no peripherals defined'); + } svdData.device.peripherals[0].peripheral.forEach((element) => { const name = element.name[0]; peripheralMap[name] = element; @@ -346,6 +349,8 @@ export class SVDParser { registers.push(register); } } else { + if (!r.addressOffset) + throw new Error(`Unable to parse SVD file: register ${r.name[0]} has no addressOffset`); const description = this.cleanupDescription(r.description ? r.description[0] : ''); const register = new PeripheralRegisterNode(parent, { ...baseOptions,