Introduction —
Memory Errors —
Heap Corruption —
Memory Leaks —
Memory Analysis —
Memory Profiling —
RTOS Architectures
Conclusion
[+]
Introduction
Have you ever had a customer say, "It was working fine for days, then suddenly it just crashed"? If you are a developer, it is unlikely that you haven't heard this ...
Memory Errors
Memory errors are many and varied; they range from buffer under- and overruns, to multiple frees of the same memory block, to slow leaks ...
Heap Corruption
To dynamically request memory buffers or blocks in a POSIX-based runtime environment, developers typically use the malloc(), ealloc(), or calloc() function calls ...
Memory Leaks
Memory leaks occur when a program allocates memory, then forgets to free it later. In its mildest form, a memory leak allows the program to consume more memory than it actually needs. While wasteful ...
Memory Analysis
Memory analysis consists of capturing memory-related events on the embedded target, importing that information into the development environment, then using ...
Memory Profiling
After eliminating obvious memory errors with the help of a memory analysis tool, developers should have a stable system which they can begin optimizing through memory profiling ...
RTOS Architectures
A discussion of RTOS architecture may seem out of place in a discussion of memory analysis tools. But as it turns out, a well-designed RTOS can make many memory problems much easier to isolate and resolve. To illustrate, let’s look at ...
Conclusion
The software in embedded systems is becoming very complex, making it harder than ever to pinpoint and stamp out memory errors. Memory analysis allows developers to visually pinpoint ...