ABSTRACT
A microcontroller integrates different subsystems in a single package. Typically, a mi-
crocontroller connects a microprocessor with memory and input/output interfaces to
perform data exchanges and execute different tasks. In addition, each microcontroller
provides one or more special interfaces for programming and debugging purposes. Sys-
tem architecture is responsible for defining the rules to perform this integration of
different subsystems.