The origins of the C programming language date back to 1969. However, 50 years on there are still many misconceptions about certain aspects of the language, most notably the memory system.
In the video we look to take a deep-dive into understanding how a running C program uses the available memory, and how as programmers we can affect that model.
The video discusses both compile-time and run-time memory, showing how the compiler and linker come into play. It covers both how and when memory is allocated, initialised, used and released.
Importantly it distinguishes between hosted programs (typically running on Linux) and freestanding (better known as deeply-embedded or bare-metal) programs, both with and without threading.
It also differentiates the use of memory based on processor architectures.
Finally it looks at where memory issues arise and why most embedded C coding standards, such as MISRA-C, ban certain memory usage models.