-
Notifications
You must be signed in to change notification settings - Fork 0
Firmware Architecture
There are several components:
Services, which contain only Business Logic. Anything that can be siloed into its own thread without requiring too much intra-thread communication can be a service.
Modules, which bridge the gap between drivers and BL. Must be able to serve multiple services if necessary. They control their own inner behavior without being directed by the service. For example, if no devices are requesting location, then the location module should shut down to save power. This can be KConfiged. // e.g: Cloud Module, GPS Module,
Modules should not communicate with each other, should use "third-party" to negotiate hardware use.
Modules try to find all available drivers to fulfill their purpose, then select one and provide a good interface to fulfill their functionality (without business logic).
Modules can also interface with external library. E.g. Crypto Module.