Figure 3—The module hierarchy in the software design is fairly simple. There are different layers of complexity. Each microcontroller peripheral has its own driver in a separate source file.