Refine
Year of publication
- 2021 (1)
Document Type
- Master's Thesis (1) (remove)
Language
- English (1)
Has Fulltext
- yes (1) (remove)
Is part of the Bibliography
- no (1)
Debugging errors in software applications can be a major challenge. It is not enough to know that a specific error exists, but the cause of it must be found in order to be able to fix it. Finding the source of an error can be time and cost intensive. The general approach is to analyse and debug the presumably erroneous part of the software. The analysis can be accompanied by instrumentation to gather additional information during the program execution. The analysis is made more difficult by the existence of different errors categories. Each category may need to be handled individually. Especially in embedded software applications, which commonly lack features like process or memory isolation, error detection and prevention can be even more challenging. This is the kind of problem this thesis tackles. This thesis tries to support developers during debugging and troubleshooting. The main focus is on errors related to memory management and concurrency. Specific features and properties of Arm Cortex-M processors are used to try to detect errors as well as their causes. For example, the memory protection unit is used to isolate the stack memories of different tasks running in a RTOS. The thesis tries to provide as much information as possible to the developer when reporting errors of any kind. The solution developed in this thesis also contains a custom memory allocator, which can be used to track down errors related to dynamic memory management. Furthermore, a Eclipse plugin has been developed which provides assertions for array accesses to detect and prevent out-of-bound accesses. The resulting solution has been implemented in commercial embedded software applications. This ensures that the developed solution is not only suitable for newly developed applications, but also for the integration into already existing products.