Skip to content

These module docs are in beta and may be incomplete.

modm:architecture

Content

// Class
class modm::Adc;
class modm::AdcInterrupt;
class modm::BlockAllocator< typename T , unsigned int BLOCK_SIZE >;
class modm::BlockDevice;
class modm::Can;
class modm::Clock;
class modm::GpioExpander;
class modm::GpioExpanderPin< typename GpioExpander, GpioExpander & expander, typename GpioExpander::Pin pin >;
class modm::GpioExpanderPort< typename GpioExpander, GpioExpander & expander, typename GpioExpander::Pin StartPin, uint8_t Width, GpioPort::DataOrder DataOrder=GpioPort::DataOrder::Normal >;
class modm::GpioIO;
class modm::GpioInput;
class modm::GpioOutput;
class modm::GpioPort;
class modm::I2cDevice< class I2cMaster, uint8_t NestingLevels=10, class Transaction=I2cWriteReadTransaction >;
class modm::I2cMaster;
class modm::I2cReadTransaction;
class modm::I2cTransaction;
class modm::I2cWriteReadTransaction;
class modm::I2cWriteTransaction;
class modm::PeripheralDriver;
class modm::SpiDevice< class SpiMaster >;
class modm::SpiMaster;
class modm::Uart;
class modm::accessor::Flash< typename T >;
class modm::accessor::Ram< typename T >;
class modm::atomic::Container< typename T  >;
class modm::atomic::Flag;
class modm::atomic::Lock;
class modm::atomic::Queue< typename T, std::size_t N >;
class modm::atomic::Unlock;

// Struct
struct modm::Configuration< typename Parent , typename Enum , typename Parent::UnderlyingType Mask, typename Parent::UnderlyingType Position=0 >;
struct modm::Flags< typename Enum , typename T  >;
struct modm::FlagsGroup< T... >;
struct modm::FlagsOperators< typename Enum, typename T >;
struct modm::Gpio;
struct modm::I2c;
struct modm::I2cTransaction::Reading;
struct modm::I2cTransaction::Starting;
struct modm::I2cTransaction::Writing;
struct modm::Register< typename T >;
struct modm::Spi;
struct modm::Value< typename Parent , typename Parent::UnderlyingType Width, typename Parent::UnderlyingType Position=0 >;
struct modm::can::Message::Flags;
struct modm::can::Message;
struct modm::unaligned_t< typename T  >;

// Function
inline ::modm::accessor::Flash<T> modm::accessor::asFlash(const T *ptr);
modm::IOStream& modm::can::operator<<(modm::IOStream &s, const modm::can::Message m);
modm::IOStream& modm::operator<<(modm::IOStream &s, const modm::I2c::Operation op);
modm::IOStream& modm::operator<<(modm::IOStream &s, const modm::I2c::OperationAfterRead op);
modm::IOStream& modm::operator<<(modm::IOStream &s, const modm::I2c::OperationAfterStart op);
modm::IOStream& modm::operator<<(modm::IOStream &s, const modm::I2c::OperationAfterWrite op);
modm::IOStream& modm::operator<<(modm::IOStream &stream, const Can::BusState state);
modm::IOStream& operator<<(modm::IOStream &os, modm::accessor::Flash< T > ptr);
modm_extern_c bool modm_assert(bool condition, const char *module, const char *location, const char *failure);
modm_extern_c bool modm_assert(bool condition, const char *module, const char *location, const char *failure, uintptr_t context);
modm_extern_c bool modm_assert_debug(bool condition, const char *module, const char *location, const char *failure);
modm_extern_c bool modm_assert_debug(bool condition, const char *module, const char *location, const char *failure, uintptr_t context);
modm_extern_c void modm_abandon(const char *module, const char *location, const char *failure, uintptr_t context) modm_weak;
static constexpr int modm::clock::MHz(int f);
static constexpr int modm::clock::kHz(int f);
static modm::IOStream& operator<<(modm::IOStream &os, modm::accessor::Flash< char > ptr);
static modm_unused constexpr int modm::clock::Hz(int f);
static modm_unused constexpr uint32_t modm::clock::u32MHz(int f);
static modm_unused constexpr uint32_t modm::clock::u32kHz(int f);
unaligned_t<T>* modm::asUnaligned(U *value);
void modm::delayMicroseconds(uint16_t us);
void modm::delayMilliseconds(uint16_t ms);
void modm::delayNanoseconds(uint16_t ns);
void* operator new(size_t size, modm::MemoryTraits traits) noexcept;
void* operator new[](size_t size, modm::MemoryTraits traits) noexcept;
volatile T& modm::accessor::asVolatile(T &value);

// Enum
enum Frequency;
enum RomCommand;
enum class Abandonment;
enum class MemoryTrait;

// Variable
constexpr MemoryTraits modm::MemoryBackup = (MemoryTrait::AccessSBus | MemoryTrait::TypeNonVolatile);
constexpr MemoryTraits modm::MemoryDMA = (MemoryTrait::AccessSBus | MemoryTrait::AccessDMA);
constexpr MemoryTraits modm::MemoryDMA2D = (MemoryTrait::AccessSBus | MemoryTrait::AccessDMA2D);
constexpr MemoryTraits modm::MemoryDefault = MemoryDMA;
constexpr MemoryTraits modm::MemoryExternal = (MemoryTrait::AccessSBus | MemoryTrait::TypeExternal);
constexpr MemoryTraits modm::MemoryFastCode = (MemoryTrait::AccessIBus | MemoryTrait::TypeCoreCoupled);
constexpr MemoryTraits modm::MemoryFastData = (MemoryTrait::AccessDBus | MemoryTrait::TypeCoreCoupled);

// Typedef
using modm::AssertionHandler = typedef Abandonment (*)(const char * module, const char * location, const char * failure, uintptr_t context);
using modm::Flags16 = typedef Flags<Enum, uint16_t>;
using modm::Flags32 = typedef Flags<Enum, uint32_t>;
using modm::Flags8 = typedef Flags<Enum, uint8_t>;
using modm::MemoryTraits = typedef Flags16<MemoryTrait>;
using modm::Register16 = typedef Register<uint16_t>;
using modm::Register32 = typedef Register<uint32_t>;
using modm::Register8 = typedef Register<uint8_t>;

// Define
#define EXTERN_FLASH_STORAGE(var)
#define EXTERN_FLASH_STORAGE_STRING(s)
#define FLASH_STORAGE(var)
#define FLASH_STORAGE_STRING(s)
#define MODM_ALIGNMENT
#define MODM_ARRAY_SIZE(x)
#define MODM_ASSERTION_HANDLER(handler)
#define MODM_BYTE_ORDER
#define MODM_COMPILER_GCC
#define MODM_COMPILER_MSVC
#define MODM_COMPILER_STRING
#define MODM_CONCAT(a, b)
#define MODM_CONCAT3(a, b, c)
#define MODM_CONCAT4(a, b, c, d)
#define MODM_CONCAT5(a, b, c, d, e)
#define MODM_CPU_ARM
#define MODM_CPU_ARM7TDMI
#define MODM_CPU_ATMEGA
#define MODM_CPU_ATTINY
#define MODM_CPU_ATXMEGA
#define MODM_CPU_AVR
#define MODM_CPU_CORTEX_M0
#define MODM_CPU_CORTEX_M4
#define MODM_CPU_CORTEX_M4
#define MODM_CPU_STRING
#define MODM_FLAGS16(Enum)
#define MODM_FLAGS32(Enum)
#define MODM_FLAGS8(Enum)
#define MODM_ISR(vector, ...)
#define MODM_ISR_CALL(vector)
#define MODM_ISR_DECL(vector)
#define MODM_ISR_NAME(vector)
#define MODM_IS_BIG_ENDIAN
#define MODM_IS_LITTLE_ENDIAN
#define MODM_ORDER_BIG_ENDIAN
#define MODM_ORDER_LITTLE_ENDIAN
#define MODM_ORDER_PDP_ENDIAN
#define MODM_OS_HOSTED
#define MODM_OS_HOSTED_64
#define MODM_OS_LINUX
#define MODM_OS_OSX
#define MODM_OS_STRING
#define MODM_OS_UNIX
#define MODM_OS_WIN32
#define MODM_OS_WIN64
#define MODM_SIZEOF_POINTER
#define MODM_STRINGIFY(s)
#define MODM_TYPE_FLAGS(Parent)
#define PSTR(s)
#define modm_aligned(n)
#define modm_always_inline
#define modm_fastcode
#define modm_fastdata
#define modm_likely(x)
#define modm_packed
#define modm_section(s)
#define modm_unlikely(x)
#define modm_unused
#define modm_weak

Dependencies

modm:architecture modm_architecture modm: architecture modm_math modm: math modm_architecture->modm_math modm_architecture_1-wire modm: architecture: 1-wire modm_architecture_1-wire->modm_architecture modm_architecture_accessor modm: architecture: accessor modm_architecture_accessor->modm_architecture modm_architecture_adc modm: architecture: adc modm_architecture_adc->modm_architecture modm_architecture_assert modm: architecture: assert modm_architecture_assert->modm_architecture modm_architecture_atomic modm: architecture: atomic modm_architecture_atomic->modm_architecture modm_architecture_block_device modm: architecture: block.device modm_architecture_block_device->modm_architecture modm_architecture_can modm: architecture: can modm_architecture_can->modm_architecture modm_architecture_clock modm: architecture: clock modm_architecture_clock->modm_architecture modm_architecture_delay modm: architecture: delay modm_architecture_delay->modm_architecture modm_architecture_gpio modm: architecture: gpio modm_architecture_gpio->modm_architecture modm_architecture_gpio_expander modm: architecture: gpio.expander modm_architecture_gpio_expander->modm_architecture modm_architecture_heap modm: architecture: heap modm_architecture_heap->modm_architecture modm_architecture_i2c modm: architecture: i2c modm_architecture_i2c->modm_architecture modm_architecture_i2c_device modm: architecture: i2c.device modm_architecture_i2c_device->modm_architecture modm_architecture_interrupt modm: architecture: interrupt modm_architecture_interrupt->modm_architecture modm_architecture_memory modm: architecture: memory modm_architecture_memory->modm_architecture modm_architecture_register modm: architecture: register modm_architecture_register->modm_architecture modm_architecture_spi modm: architecture: spi modm_architecture_spi->modm_architecture modm_architecture_spi_device modm: architecture: spi.device modm_architecture_spi_device->modm_architecture modm_architecture_uart modm: architecture: uart modm_architecture_uart->modm_architecture modm_architecture_unaligned modm: architecture: unaligned modm_architecture_unaligned->modm_architecture modm_container modm: container modm_container->modm_architecture modm_debug modm: debug modm_debug->modm_architecture modm_math_filter modm: math: filter modm_math_filter->modm_architecture modm_math_geometry modm: math: geometry modm_math_geometry->modm_architecture modm_math_utils modm: math: utils modm_math_utils->modm_architecture modm_processing_protothread modm: processing: protothread modm_processing_protothread->modm_architecture modm_test_processing modm: test: processing modm_test_processing->modm_architecture modm_utils modm: utils modm_utils->modm_architecture