John Taylor
John Taylor has been an embedded developer for over 30 years. He is currently a Sr Software Architect with PAR Technology. He has worked as a firmware engineer, technical lead, system engineer, software architect, and software development manager for companies such as Ingersoll Rand, Carrier, Allen-Bradley, Hitachi Telecom, Emerson, and several start-up companies. He has developed firmware for products that include HVAC control systems, telecommunications SONET nodes, IoT devices, microcode for communication chips, and medical devices. He is the co-author of five US patents and has a bachelor degree in mathematics and computer science. He is also a published author of the book “Patterns in the Machine: A Software Engineering Guide to Embedded Development”.
Decoupling Drivers from the Hardware Platform
Status: Coming up in April 2025!This talk is about how to design drivers that are decoupled from a specific hardware platform so they can be reused on different microcontrollers. Decoupled drivers also enable the creation of a functional simulator for your embedded application. Writing decoupled drivers does not require more effort or time to implement than a traditional platform-specific driver.
A decoupled driver requires a public interface that is defined without direct hardware dependencies and a mechanism (e.g., a Hardware Abstraction Layer) that decouples the driver implementation from a specific hardware platform.
There are numerous ways to create interfaces for a Hardware Abstraction Layer (HAL). The following list covers three ways to create abstract interfaces that decouple a driver from platform-specific dependencies. In this context, an “abstract interface” is an interface that defines a behavior with late binding.
- Façade. Using link-time bindings.
- Separation of concerns. Using compile-time bindings.
- Polymorphic. Using run-time bindings.
Introduction to the Data Model Architecture for Embedded Systems
Status: Available NowThe Data Model architecture is used to design highly decoupled code. It allows for the exchange of data between modules with neither modules having dependencies on each other.
Outline of topics:
- Introduction
- Why do I care about dependencies?
- The Basics
- Simplified Testing
- Example
- Change Notifications
- Additional Features
- Does and Don'ts
- Data Model vs. Global Variables
Live Q&A - Introduction to the Data Model Architecture for Embedded Systems
Status: Available NowLive Q&A with John Taylor for the talk titled Introduction to the Data Model Architecture for Embedded Systems