Massive refactor to accommodate RISC-V targets

- Refactored entire codebase (excluding the Insight component) to accommodate multiple target architectures (no longer specific to AVR)
- Deleted 'generate SVD' GDB monitor command - I will eventually move this functionality to the Bloom website
- Added unit size property to address spaces
- Many other changes which I couldn't be bothered to describe here
This commit is contained in:
Nav
2024-07-23 21:14:22 +01:00
parent 2986934485
commit 6cdbfbe950
331 changed files with 8815 additions and 8565 deletions

View File

@@ -8,16 +8,18 @@ class AddressSpace
public ?string $key = null;
public ?int $startAddress = null;
public ?int $size = null;
public ?int $unitSize = null;
public ?string $endianness = null;
/** @var MemorySegment[] */
public array $memorySegments = [];
public function __construct(?string $key, ?int $startAddress, ?int $size, ?string $endianness)
public function __construct(?string $key, ?int $startAddress, ?int $size, ?int $unitSize, ?string $endianness)
{
$this->key = $key;
$this->startAddress = $startAddress;
$this->size = $size;
$this->unitSize = $unitSize;
$this->endianness = $endianness;
}

View File

@@ -93,10 +93,7 @@ class MemorySegment
&& $endAddress !== null
&& $other->startAddress !== null
&& $otherEndAddress !== null
&& (
($other->startAddress <= $this->startAddress && $otherEndAddress >= $this->startAddress)
|| ($other->startAddress >= $this->startAddress && $other->startAddress <= $endAddress)
)
&& $this->startAddress <= $otherEndAddress && $other->startAddress <= $endAddress
;
}

View File

@@ -323,6 +323,7 @@ class AtdfService
isset($attributes['id']) ? strtolower($attributes['id']) : null,
$this->stringService->tryStringToInt($attributes['start'] ?? null),
$this->stringService->tryStringToInt($attributes['size'] ?? null),
null,
$attributes['endianness'] ?? null,
);

View File

@@ -606,7 +606,7 @@ class ValidationService
if ($register->size === null) {
$failures[] = 'Missing size';
} elseif ($register->size < 1) {
} elseif ($register->size < 1 || $register->size > 8) {
$failures[] = 'Invalid size (' . $register->size . ')';
}

View File

@@ -116,6 +116,7 @@ class FromXmlService
$attributes['key'] ?? null,
$this->stringService->tryStringToInt($attributes['start'] ?? null),
$this->stringService->tryStringToInt($attributes['size'] ?? null),
$this->stringService->tryStringToInt($attributes['unit-size'] ?? null),
$attributes['endianness'] ?? null,
);

View File

@@ -70,6 +70,10 @@ class ToXmlService
$element->setAttribute('start', $this->stringService->tryIntToHex($addressSpace->startAddress, 8));
$element->setAttribute('size', $addressSpace->size);
if (!empty($addressSpace->unitSize)) {
$element->setAttribute('unit-size', $addressSpace->unitSize);
}
if (!empty($addressSpace->endianness)) {
$element->setAttribute('endianness', strtolower($addressSpace->endianness));
}