|
Embedded Artistry Framework
Embedded Systems C++ Framework
|
Embedded framework core interfaces, classes, and definitions. More...
Namespaces | |
| clk | |
| Definitions, functions, and classes related to clock devices. | |
| comm | |
| Definitions, functions, and classes related to communication busses. | |
| cv | |
| Condition Variable types and definitions. | |
| eventflag | |
| Event flag types and definitions. | |
| gpio | |
| Definitions, functions, and classes related to GPIO devices. | |
| i2c | |
| Definitions, functions, and classes related to I2C communication bus devices. | |
| led | |
| Definitions, functions, and classes related to LED devices. | |
| logger | |
| Log definitions. | |
| msgqueue | |
| Message queue types and definitions. | |
| mutex | |
| Mutex types and definitions. | |
| once | |
| semaphore | |
| Semaphore types and definitions. | |
| spi | |
| Definitions, functions, and classes related to SPI communication bus devices. | |
| this_thread | |
| Functions that operate on the currently active thread. | |
| thread | |
| Thread types and definitions. | |
| timer | |
| Definitions, functions, and classes related to Timer devices. | |
| tls | |
| Thread Local Storage types. | |
| tof | |
| Definitions, functions, and classes related to Time-of-Flight sensors. | |
Classes | |
| class | basicDisplay |
| This class provides an interface for a basic 2-color display device. More... | |
| class | BootSequencer |
| Boot sequencer with customizable boot strategy. More... | |
| class | CircularLogBufferLogger |
| Circular log buffer. More... | |
| class | commBus |
| Base class interface for communication bus driver types (SPI, I2C, etc.). More... | |
| class | DriverBase |
| Virtual base class for framework drivers. More... | |
| class | DriverRegistry |
| DriverRegistry base class. More... | |
| class | EventBase |
| Base class for events. More... | |
| class | EventCenter |
| Global Event Manager class. More... | |
| class | EventQueue |
| Keep a queue of events. More... | |
| class | HALDriverBase |
| class | LoggerBase |
| Base class for logger implementations. More... | |
| class | PlatformDispatcher |
| Add a dispatch queue to the VirtualPlatform through inheritance. More... | |
| class | PlatformEventManagement |
| Add an event manager to the VirtualPlatform through inheritance. More... | |
| class | PlatformLogger_t |
| Declare a static platform logger instance. More... | |
| class | TimerManager |
| Timer Manager Class. More... | |
| class | VirtualConditionVariable |
| Defines the VirtualConditionVariable interface. More... | |
| class | VirtualEventFlag |
| Defines the VirtualEventFlag interface. More... | |
| class | VirtualHeap |
| class | VirtualHwPlatformBase |
| Virtual Hardware Platform Base. More... | |
| class | VirtualMutex |
| Defines the VirtualMutex interface. More... | |
| class | VirtualOSFactory |
| Factory interface for creating RTOS-related objects. More... | |
| class | VirtualPlatformBase |
| Base class for Platform definitions. More... | |
| class | VirtualProcessorArchBase |
| Virtual Interface for Common Architecture-Specific Functionality. More... | |
| class | VirtualProcessorBase |
| Virtual Processor Base. More... | |
| class | VirtualSemaphore |
| Defines the VirtualSemaphore interface. More... | |
| class | VirtualThread |
| Defines the VirtualThread interface. More... | |
Typedefs | |
| template<typename TLockType = embutil::nop_lock> | |
| using | DynamicDriverRegistry = DriverRegistry< 0, 0, TLockType > |
| Declare a DriverRegistry that uses dynamic memory allocation. More... | |
| template<const size_t TMaxSize = 32, const size_t TReturnSize = 4, typename TLockType = embutil::nop_lock> | |
| using | StaticDriverRegistry = DriverRegistry< TMaxSize, TReturnSize, TLockType > |
| Declare a DriverRegistry that uses static memory allocation. More... | |
| using | DriverType_t = uint32_t |
| Driver type used by framework interfaces. More... | |
| using | Signal_t = uint32_t |
| Signal type which is used for function inputs. More... | |
| template<const size_t TSize, const size_t TThreadCnt = 1, typename TFunc = stdext::inplace_function<void(), EVENT_CENTER_REQD_STATIC_FUNCTION_SIZE>> | |
| using | StaticEventQueue = embutil::StaticDispatchQueue< TSize, TThreadCnt, TFunc > |
| This alias represents a static dispatch queue which can be used with the event manager Primarily this alias is used to prevent users from needing to declare a long type declaration just because of the need to increase inplace_function<>'s size. More... | |
| using | DynamicEventCenter = EventCenter< 0, 0 > |
| Declare an EventCenter that uses dynamic memory allocation. More... | |
| template<const size_t TMaxEvents = 16, const size_t TMaxSubscribersPerEvent = 4> | |
| using | StaticEventCenter = EventCenter< TMaxEvents, TMaxSubscribersPerEvent > |
| Declare a DriverRegistry that uses static memory allocation. More... | |
| using | os_timeout_t = std::chrono::duration< uint64_t, std::nano > |
| Timeout type used for OS-related functions. More... | |
Enumerations | |
| enum | DriverType { Undefined = 0, GPIO, HARDWARE_TIMER, I2C, LED, SPI, SYSTEM_CLOCK, TIME_OF_FLIGHT, SOFTWARE_TIMER, TIMER, BASIC_DISPLAY, DRIVER_EXTENSION_START } |
| Default framework driver type definitions. More... | |
| enum | Signal { Event_Invalid = 0, Event_ProcessorInitd, Event_HwPlatformInitd, Event_PlatformInitd, Event_EXTENSION_START } |
| Default framework event signal definitions. More... | |
Variables | |
| static constexpr size_t | EVENT_CENTER_REQD_STATIC_FUNCTION_SIZE = (sizeof(void*) * 8) |
| Maximum size of the Event center callback functor object. More... | |
| constexpr os_timeout_t | OS_WAIT_FOREVER = os_timeout_t{UINT64_C(-1)} |
| Create a WAIT_FOREVER alias which can be used. More... | |
Embedded framework core interfaces, classes, and definitions.
TODO: consider additional fields The format of your status messages can make a big difference in later analysis.
Break the messages into fields, so that certain information always appears in a particular column. One column should be a system time stamp that’s accurate enough to deal with timing problems. There are many other candidates for standard columns: the module or source file that outputs the message; a general code for message type, such as “info,” “error,” or “really nasty error”; the initials of the engineer who wrote the output message, to help track down who worked on what and why they can’t spell; and run-time data such as commands, status codes, and expected versus actual values to give you the real details you’ll need later. Finally, by using consistent formats and keywords, you can filter the debug logs afterward to help you focus on the stuff you need to see.
1.8.15