The process of building an IoT or EC is a very involved and complex process. Many different specialities are involved in creating the hardware as well as the software that powers it. While many of these costs are unavoidable, they have been mitigated in other disciplines of software development: mobile, web, and server. In all three, several frameworks exist to abstract away the underlying hardware and even running constraints. In the presentation:
- Explore some of the pain points of bringing up new devices with a strong focus on my personal experience on sensors in Chromium's EC.
- Provide some insight of Android's Context Hub Runtime Environment CHRE.
- Separate feature development into highly testable nanoapps which handle events from the main CHRE event loop in a pub-sub like fashion.
- Providing a common event-bus like system which routes events generated by Platform Abstraction Layer (PAL) frameworks to the various nanoapps.
- Providing a modular system for peripheral frameworks such as sensors, WiFi, GNSS, WiFi, etc. This system is not without its faults, it has to be implemented for each platform as a PAL.
- Discuss Zephyr's use of devicetree and hardware abstraction APIs (specifically in the context of sensors along with an example).
- Provide an example of using Zephyr along with CHRE, the synergetic effects of the two, and how can the two be used to mitigate a lot of the above costs/pitfalls, improve time to market, and ease the overhead of testing.
- Issue: Adding CHRE as a Zephyr module
- Issue: Creating the CHRE compatible sensor framework
|I agree to abide by the anti-harassment policy