Corrected architecture string in AVR8 TDFs

This commit is contained in:
Nav
2024-11-27 20:02:43 +00:00
parent d613c9909b
commit a63dd1b4ef
263 changed files with 293 additions and 261 deletions

View File

@@ -13,6 +13,7 @@ use Targets\TargetRegisterGroup;
require_once __DIR__ . "/../TargetDescriptionFile.php";
require_once __DIR__ . "/../Services/StringService.php";
require_once __DIR__ . "/AvrFamily.php";
require_once __DIR__ . "/AvrIsa.php";
require_once __DIR__ . "/Signature.php";
require_once __DIR__ . "/DebugWireParameters.php";
require_once __DIR__ . "/IspParameters.php";
@@ -60,6 +61,11 @@ class Avr8TargetDescriptionFile extends TargetDescriptionFile
return AvrFamily::tryFrom($this->deviceAttributesByName['avr-family']);
}
public function getAvrIsa(): ?AvrIsa
{
return AvrIsa::tryFrom($this->deviceAttributesByName['architecture']);
}
public function getDebugWireParameters(): DebugWireParameters
{
$output = new DebugWireParameters();

View File

@@ -0,0 +1,12 @@
<?php
namespace Targets\TargetDescriptionFiles\Avr8;
enum AvrIsa: string
{
case AVR = 'AVR';
case AVR_E = 'AVRe';
case AVR_E_PLUS = 'AVRe+';
case AVR_XM = 'AVRxm';
case AVR_XT = 'AVRxt';
case AVR_RC = 'AVRrc';
}

View File

@@ -3,6 +3,7 @@ namespace Targets\TargetDescriptionFiles\AVR8\Services;
use Targets\TargetDescriptionFiles\Avr8\Avr8TargetDescriptionFile;
use Targets\TargetDescriptionFiles\Avr8\AvrFamily;
use Targets\TargetDescriptionFiles\Avr8\AvrIsa;
use Targets\TargetDescriptionFiles\Avr8\DebugWireParameters;
use Targets\TargetDescriptionFiles\Avr8\IspParameters;
use Targets\TargetDescriptionFiles\Avr8\JtagParameters;
@@ -96,7 +97,20 @@ class ValidationService extends \Targets\TargetDescriptionFiles\Services\Validat
$family = $tdf->getAvrFamily();
if ($family === null) {
$failures[] = 'Unknown AVR8 family';
$failures[] = 'Missing/unknown AVR8 family';
}
$isa = $tdf->getAvrIsa();
if ($isa === null) {
$failures[] = 'Missing/unknown AVR ISA';
}
if ($isa === AvrIsa::AVR_RC) {
/*
* The "reduced core" only implements 16 GPRs. Bloom assumes all AVRs have 32 GPRs.
* Not sure if any AVRrc targets even have debug support...
*/
$failures[] = 'Bloom does not support AVRrc targets';
}
// The target must have at least one SP register, and it must reside in the CPU peripheral.