Source code for ifgen.svd.model.cpu

"""
A module implementing a data model for ARM CMSIS-SVD 'cpu' data.
"""

# built-in
from dataclasses import dataclass
from typing import Iterable

# internal
from ifgen.svd.string import StringKeyVal, StringKeyValueMixin


[docs] @dataclass class Cpu(StringKeyValueMixin): """A container for cpu information."""
[docs] @classmethod def string_keys(cls) -> Iterable[StringKeyVal]: """Get string keys for this instance type.""" # https://www.keil.com/pack/doc/CMSIS/SVD/html/elem_cpu.html return [ StringKeyVal("name", True), StringKeyVal("revision", True), StringKeyVal("endian", True), StringKeyVal("mpuPresent", True), StringKeyVal("fpuPresent", True), StringKeyVal("fpuDP", False), StringKeyVal("dspPresent", False), StringKeyVal("icachePresent", False), StringKeyVal("dcachePresent", False), StringKeyVal("itcmPresent", False), StringKeyVal("dtcmPresent", False), StringKeyVal("vtorPresent", False), StringKeyVal("nvicPrioBits", True), StringKeyVal("vendorSystickConfig", True), StringKeyVal("deviceNumInterrupts", False), StringKeyVal("sauNumRegions", False), # This is an object (not currently implemented). # StringKeyVal("sauRegionsConfig", False), ]