NSVD Reader  0.0.1
nodamushi::svd::normalized::Peripheral< STRREF > Struct Template Reference

normalized peripheral element More...

#include <node_container.hpp>

Public Types

using this_t = Peripheral< STRREF >
 
using p_ptr = parent_ptr< Device< STRREF > >
 
using Register = ::nodamushi::svd::normalized::Register< STRREF >
 
using Cluster = ::nodamushi::svd::normalized::Cluster< STRREF >
 
using Interrupt = ::nodamushi::svd::normalized::Interrupt< STRREF >
 
using Field = ::nodamushi::svd::normalized::Field< STRREF >
 

Public Member Functions

template<typename STR >
node_ptr< void > find (::nodamushi::svd::path< STR > &p, size_t pindex=0)
 find path element More...
 
template<typename STR >
node_ptr< Clusterfind_cluster (::nodamushi::svd::path< STR > &p, size_t pindex=0)
 find cluster element More...
 
template<typename STR >
node_ptr< Registerfind_register (::nodamushi::svd::path< STR > &p, size_t pindex=0)
 find register element More...
 
template<typename STR >
node_ptr< Fieldfind_field (::nodamushi::svd::path< STR > &p, size_t pindex=0)
 find field element More...
 
bool has_register_name_appendix () const noexcept
 prependToName or appendToName is not empty More...
 
auto get_parent () const noexcept
 get parent Device pointer More...
 
auto get_parent () noexcept
 get parent Device pointer More...
 
uint64_t get_address () const
 get baseAddress More...
 
uint32_t get_size () const
 resolve the value of size and return it. More...
 
uint64_t get_resetValue () const
 resolve the value of resetValue and return it. More...
 
uint64_t get_resetMask () const
 resolve the value of resetMask and return it. More...
 
Access get_access () const
 resolve the value of access and return it. More...
 
Protection get_protection () const
 resolve the value of protection and return it. More...
 
::nodamushi::svd::path get_path () const
 get path More...
 
template<typename T >
 Peripheral (const T &n)
 
constexpr void * get_parent2 () const noexcept
 always return nullptr More...
 
void update_parent (p_ptr &new_parent, node_ptr< this_t > &me)
 

Public Attributes

path< STRREF > derivedFrom
 derivedFrom attribute More...
 
std::string name
 <name> More...
 
dim_info dim
 dimemsion information object. More...
 
STRREF version
 <version> More...
 
STRREF description
 <description> More...
 
STRREF alternatePeripheral
 <alternatePeripheral> More...
 
STRREF groupName
 <groupName> More...
 
STRREF prependToName
 <prependToName> More...
 
STRREF appendToName
 <appendToName> More...
 
STRREF headerStructName
 <headerStructName> More...
 
STRREF disableCondition
 <disableCondition> More...
 
uint64_t baseAddress
 base address More...
 
nullable< uint32_t > size
 <size> More...
 
nullable< Accessaccess
 <access> More...
 
nullable< Protectionprotection
 <protection> More...
 
nullable< uint64_t > resetValue
 <resetValue> More...
 
nullable< uint64_t > resetMask
 <resetMask> More...
 
std::vector< AddressBlockaddressBlock
 <addressBlock> emenents More...
 
std::vector< Interruptinterrupt
 <interrupt> elements. More...
 
list< Clusterclusters
 <cluster> elements list.This list is sorted by the addressOffset. More...
 
list< Registerregisters
 <register> elements list.This list is sorted by the addressOffset. More...
 

Detailed Description

template<typename STRREF>
struct nodamushi::svd::normalized::Peripheral< STRREF >

normalized peripheral element

See also
http://www.keil.com/pack/doc/CMSIS/SVD/html/elem_peripherals.html#elem_peripheral
nodamushi::svd::Peripheral

Definition at line 49 of file node_container.hpp.

Member Typedef Documentation

◆ Cluster

template<typename STRREF>
using nodamushi::svd::normalized::Peripheral< STRREF >::Cluster = ::nodamushi::svd::normalized::Cluster<STRREF>

Definition at line 40 of file Peripheral.hpp.

◆ Field

template<typename STRREF>
using nodamushi::svd::normalized::Peripheral< STRREF >::Field = ::nodamushi::svd::normalized::Field<STRREF>

Definition at line 42 of file Peripheral.hpp.

◆ Interrupt

template<typename STRREF>
using nodamushi::svd::normalized::Peripheral< STRREF >::Interrupt = ::nodamushi::svd::normalized::Interrupt<STRREF>

Definition at line 41 of file Peripheral.hpp.

◆ p_ptr

template<typename STRREF>
using nodamushi::svd::normalized::Peripheral< STRREF >::p_ptr = parent_ptr<Device<STRREF> >

Definition at line 38 of file Peripheral.hpp.

◆ Register

template<typename STRREF>
using nodamushi::svd::normalized::Peripheral< STRREF >::Register = ::nodamushi::svd::normalized::Register<STRREF>

Definition at line 39 of file Peripheral.hpp.

◆ this_t

template<typename STRREF>
using nodamushi::svd::normalized::Peripheral< STRREF >::this_t = Peripheral<STRREF>

Definition at line 37 of file Peripheral.hpp.

Constructor & Destructor Documentation

◆ Peripheral()

template<typename STRREF>
template<typename T >
nodamushi::svd::normalized::Peripheral< STRREF >::Peripheral ( const T &  n)
inline

Definition at line 269 of file Peripheral.hpp.

Member Function Documentation

◆ find()

template<typename STRREF>
template<typename STR >
node_ptr<void> nodamushi::svd::normalized::Peripheral< STRREF >::find ( ::nodamushi::svd::path< STR > &  p,
size_t  pindex = 0 
)
inline

find path element

Parameters
ppath
pindexthe first index of serach path. default is 0.
Returns
element pointer

Definition at line 146 of file Peripheral.hpp.

◆ find_cluster()

template<typename STRREF>
template<typename STR >
node_ptr<Cluster> nodamushi::svd::normalized::Peripheral< STRREF >::find_cluster ( ::nodamushi::svd::path< STR > &  p,
size_t  pindex = 0 
)
inline

find cluster element

Parameters
ppath
pindexthe first index of serach path. default is 0.
Returns
element pointer

Definition at line 169 of file Peripheral.hpp.

◆ find_field()

template<typename STRREF>
template<typename STR >
node_ptr<Field> nodamushi::svd::normalized::Peripheral< STRREF >::find_field ( ::nodamushi::svd::path< STR > &  p,
size_t  pindex = 0 
)
inline

find field element

Parameters
ppath
pindexthe first index of serach path. default is 0.
Returns
element pointer

Definition at line 209 of file Peripheral.hpp.

◆ find_register()

template<typename STRREF>
template<typename STR >
node_ptr<Register> nodamushi::svd::normalized::Peripheral< STRREF >::find_register ( ::nodamushi::svd::path< STR > &  p,
size_t  pindex = 0 
)
inline

find register element

Parameters
ppath
pindexthe first index of serach path. default is 0.
Returns
element pointer

Definition at line 188 of file Peripheral.hpp.

◆ get_access()

template<typename STRREF>
Access nodamushi::svd::normalized::Peripheral< STRREF >::get_access ( ) const
inline

resolve the value of access and return it.

Definition at line 253 of file Peripheral.hpp.

◆ get_address()

template<typename STRREF>
uint64_t nodamushi::svd::normalized::Peripheral< STRREF >::get_address ( ) const
inline

get baseAddress

Definition at line 239 of file Peripheral.hpp.

◆ get_parent() [1/2]

template<typename STRREF>
auto nodamushi::svd::normalized::Peripheral< STRREF >::get_parent ( ) const
inlinenoexcept

get parent Device pointer

Definition at line 235 of file Peripheral.hpp.

◆ get_parent() [2/2]

template<typename STRREF>
auto nodamushi::svd::normalized::Peripheral< STRREF >::get_parent ( )
inlinenoexcept

get parent Device pointer

Definition at line 237 of file Peripheral.hpp.

◆ get_parent2()

template<typename STRREF>
constexpr void* nodamushi::svd::normalized::Peripheral< STRREF >::get_parent2 ( ) const
inlinenoexcept

always return nullptr

Definition at line 366 of file Peripheral.hpp.

◆ get_path()

template<typename STRREF>
::nodamushi::svd::path nodamushi::svd::normalized::Peripheral< STRREF >::get_path ( ) const
inline

get path

Definition at line 260 of file Peripheral.hpp.

◆ get_protection()

template<typename STRREF>
Protection nodamushi::svd::normalized::Peripheral< STRREF >::get_protection ( ) const
inline

resolve the value of protection and return it.

Definition at line 257 of file Peripheral.hpp.

◆ get_resetMask()

template<typename STRREF>
uint64_t nodamushi::svd::normalized::Peripheral< STRREF >::get_resetMask ( ) const
inline

resolve the value of resetMask and return it.

Definition at line 249 of file Peripheral.hpp.

◆ get_resetValue()

template<typename STRREF>
uint64_t nodamushi::svd::normalized::Peripheral< STRREF >::get_resetValue ( ) const
inline

resolve the value of resetValue and return it.

Definition at line 245 of file Peripheral.hpp.

◆ get_size()

template<typename STRREF>
uint32_t nodamushi::svd::normalized::Peripheral< STRREF >::get_size ( ) const
inline

resolve the value of size and return it.

Definition at line 241 of file Peripheral.hpp.

◆ has_register_name_appendix()

template<typename STRREF>
bool nodamushi::svd::normalized::Peripheral< STRREF >::has_register_name_appendix ( ) const
inlinenoexcept

prependToName or appendToName is not empty

Definition at line 230 of file Peripheral.hpp.

◆ update_parent()

template<typename STRREF>
void nodamushi::svd::normalized::Peripheral< STRREF >::update_parent ( p_ptr new_parent,
node_ptr< this_t > &  me 
)
inline

Definition at line 368 of file Peripheral.hpp.

Member Data Documentation

◆ access

template<typename STRREF>
nullable<Access> nodamushi::svd::normalized::Peripheral< STRREF >::access

<access>

See also
get_access()

Definition at line 94 of file Peripheral.hpp.

◆ addressBlock

template<typename STRREF>
std::vector<AddressBlock> nodamushi::svd::normalized::Peripheral< STRREF >::addressBlock

<addressBlock> emenents

Definition at line 111 of file Peripheral.hpp.

◆ alternatePeripheral

template<typename STRREF>
STRREF nodamushi::svd::normalized::Peripheral< STRREF >::alternatePeripheral

<alternatePeripheral>

Definition at line 58 of file Peripheral.hpp.

◆ appendToName

template<typename STRREF>
STRREF nodamushi::svd::normalized::Peripheral< STRREF >::appendToName

<appendToName>

Note
prependToName and appendToName are ignored in Regsiter.name and path.
See also
has_register_name_appendix()
nodamushi::svd::normalized::Register.name
nodamushi::svd::normalized::Register.get_name_with_appendix()

Definition at line 78 of file Peripheral.hpp.

◆ baseAddress

template<typename STRREF>
uint64_t nodamushi::svd::normalized::Peripheral< STRREF >::baseAddress

base address

Definition at line 84 of file Peripheral.hpp.

◆ clusters

template<typename STRREF>
list<Cluster> nodamushi::svd::normalized::Peripheral< STRREF >::clusters

<cluster> elements list.This list is sorted by the addressOffset.

Cluster class does not prohibit copying, but basically it should be treated with a reference.
auto& c = parent.clusters[x];

Definition at line 127 of file Peripheral.hpp.

◆ derivedFrom

template<typename STRREF>
path<STRREF> nodamushi::svd::normalized::Peripheral< STRREF >::derivedFrom

derivedFrom attribute

Definition at line 48 of file Peripheral.hpp.

◆ description

template<typename STRREF>
STRREF nodamushi::svd::normalized::Peripheral< STRREF >::description

<description>

Definition at line 56 of file Peripheral.hpp.

◆ dim

template<typename STRREF>
dim_info nodamushi::svd::normalized::Peripheral< STRREF >::dim

dimemsion information object.

Definition at line 52 of file Peripheral.hpp.

◆ disableCondition

template<typename STRREF>
STRREF nodamushi::svd::normalized::Peripheral< STRREF >::disableCondition

<disableCondition>

Definition at line 82 of file Peripheral.hpp.

◆ groupName

template<typename STRREF>
STRREF nodamushi::svd::normalized::Peripheral< STRREF >::groupName

<groupName>

Definition at line 60 of file Peripheral.hpp.

◆ headerStructName

template<typename STRREF>
STRREF nodamushi::svd::normalized::Peripheral< STRREF >::headerStructName

<headerStructName>

Definition at line 80 of file Peripheral.hpp.

◆ interrupt

template<typename STRREF>
std::vector<Interrupt> nodamushi::svd::normalized::Peripheral< STRREF >::interrupt

<interrupt> elements.

Note
This element does not inherit information from derivedFrom.

Definition at line 116 of file Peripheral.hpp.

◆ name

template<typename STRREF>
std::string nodamushi::svd::normalized::Peripheral< STRREF >::name

<name>

Definition at line 50 of file Peripheral.hpp.

◆ prependToName

template<typename STRREF>
STRREF nodamushi::svd::normalized::Peripheral< STRREF >::prependToName

<prependToName>

Note
prependToName and appendToName are ignored in Regsiter.name and path.
See also
has_register_name_appendix()
nodamushi::svd::normalized::Register.name
nodamushi::svd::normalized::Register.get_name_with_appendix()

Definition at line 69 of file Peripheral.hpp.

◆ protection

template<typename STRREF>
nullable<Protection> nodamushi::svd::normalized::Peripheral< STRREF >::protection

<protection>

See also
get_protection()

Definition at line 99 of file Peripheral.hpp.

◆ registers

template<typename STRREF>
list<Register> nodamushi::svd::normalized::Peripheral< STRREF >::registers

<register> elements list.This list is sorted by the addressOffset.

Register class does not prohibit copying, but basically it should be treated with a reference.
auto& r = parent.registers[x];

Definition at line 137 of file Peripheral.hpp.

◆ resetMask

template<typename STRREF>
nullable<uint64_t> nodamushi::svd::normalized::Peripheral< STRREF >::resetMask

<resetMask>

See also
get_resetMask()

Definition at line 109 of file Peripheral.hpp.

◆ resetValue

template<typename STRREF>
nullable<uint64_t> nodamushi::svd::normalized::Peripheral< STRREF >::resetValue

<resetValue>

See also
get_resetValue()

Definition at line 104 of file Peripheral.hpp.

◆ size

template<typename STRREF>
nullable<uint32_t> nodamushi::svd::normalized::Peripheral< STRREF >::size

<size>

See also
get_size()

Definition at line 89 of file Peripheral.hpp.

◆ version

template<typename STRREF>
STRREF nodamushi::svd::normalized::Peripheral< STRREF >::version

<version>

Definition at line 54 of file Peripheral.hpp.


The documentation for this struct was generated from the following files: