Task Identification on Microcontrollers using Trace Data Analysis
Beschreibung
Background: In modern embedded systems, microcontrollers are increasingly equipped with operating systems to manage complex tasks and optimize system performance. However, understanding the tasks being executed on these microcontrollers is crucial for system optimization, debugging, and security purposes. Traditional methods of task identification rely on invasive techniques, such as instrumentation or logging, which can alter the system's behavior and introduce overhead.
Objective: The primary goal of this master thesis is to design and develop a non-invasive method for detecting tasks executed on a microcontroller with an operating system, solely relying on the analysis of trace data. To achieve this, the student will leverage an existing tool called NITRO, written in Java, which has the capability to identify task executions on hard real-time systems. In this research, the student will utilize an AURIX microcontroller, running either AUTOSAR or FreeRTOS operating systems, assuming a single-core setup.
Specifically, the student will focus on developing a new tool, written in C++, to analyze trace data generated by the microcontroller, with the aim of identifying the tasks being executed. Building upon the concepts and principles of the existing NITRO tool, the student will design and implement a novel approach to accommodate the AURIX microcontroller and the chosen operating systems.
In the case of AUTOSAR, the student will take advantage of the standard's specification, which requires task switches to be written to a variable, thereby facilitating the identification of task executions. For FreeRTOS, the student will need to develop alternative methods to detect task switches.
Once the tasks are successfully identified, the student will proceed to analyze the CPU usage of each task, as well as calculate the average, maximum, and minimum duration of each task. The outcome of this research is expected to provide a comprehensive understanding of task execution on microcontrollers with operating systems solely based on trace data analysis.
The new tool, written in C++, should be capable of processing trace data from the AURIX microcontroller and providing detailed insights into task execution patterns, including CPU usage and task duration metrics. The tool should be designed with flexibility and scalability in mind, allowing for potential future extensions to accommodate other microcontrollers and operating systems.
To clarify, some potential questions to consider are:
- How can the concepts and principles of the existing NITRO tool be adapted and extended to accommodate the AURIX microcontroller and AUTOSAR/FreeRTOS operating systems in a C++ implementation?
- What specific trace data analysis techniques will be employed to identify task executions on the microcontroller, and how will these be implemented in the new C++ tool?
- How will the student account for potential variations in task execution patterns between AUTOSAR and FreeRTOS operating systems, and how will these be addressed in the new tool?
- What are the implications of this research for real-time system design and optimization, and how can the new tool be used to improve system performance and efficiency?
Methodology:
- Collect and preprocess trace data from a microcontroller with an operating system
- Develop and implement algorithms for task identification using techniques such as machine learning or statistical analysis
- Evaluate the performance of the proposed approach using metrics such as accuracy, precision, and recall
- Investigate the impact of various factors, such as system load, task priority, and operative system version, on task identification
- Obtain some statistical data on the CPU usage of each task and average duration.
Expected Outcomes:
- A novel approach for task identification on microcontrollers with hard real-time operating systems based on trace data analysis
- A prototype implementation of the proposed approach using a suitable programming language and development environment
- A comprehensive evaluation of the approach, including performance metrics and limitations
- A written thesis document detailing the methodology, results, and conclusions
Voraussetzungen
Requirements:
- Bachelor in computer science, electrical engineering, or a related field
- Experience with microcontrollers, operating systems, and embedded systems
- Proficiency in one programming language such as C, C++, and Python
- Familiarity with data analysis and machine learning techniques
- Problem-solving skills and ability to work independently
Kontakt
If you are interested in the topic please contact:
Ibai Irigoyen Ceberio
Infineon Technologies AG