All the different memory units inside a microcontroller can be divided into
two main types: RAM and ROM. RAM (from Random-Access Memory) in
microcontroller-based systems is a volatile memory used to store temporary
data such as the system's firmware variables. ROM (from Read-Only Memory) in
microcontroller-based systems is non-volatile memory used to store permanent
data such as the system's firmware.