The project aims to allow you to get hands-on experience with architecture and operating systems.
The assignment involves acquiring proficiency in utilizing an embedded operat- ing system on an ISA simulator, specifically QEMU, and customizing it to implement a new, straightforward feature, followed by an evaluation on significant workloads.
Operating system for the project include FreeRTOS.
The primary objectives of this project are as follows:
- Gain proficiency in using QEMU for running an embedded operating system and create a tutorial detailing the installation and usage procedures.
- Develop practical examples/exercises demonstrating the functionality of the simulator/operating system in alignment with the topics studied in class.
- Customize the operating system to implement a new solution (e.g., schedul- ing, memory management, etc.).
- Evaluate and benchmark the performance improvement achieved by the newly implemented solution.
-
Install Visual Studio Code
- Download the VSCode version for Windows (x64);
- Manually run the installation file (.exe) if it does not start automatically;
- Accept terms of use;
- Choose the installation folder. The default selected folder is recommended;
- Remember to check the “Add to Path” box to add the path to VSCode in the environment variables.
-
Download: QEMU
- Enter the folder called "2023/";
- Click on “qemu-w64-setup-20231224.exe.” The download will start automatically;
- After the installation is complete, add the path to QEMU in the system variables;
-
Download and install the GNU Arm Embedded Toolchain
-
Install the FreeRTOS version 202212.01
-
Download and install Make for Windows
-
Install MinGW version 11.0.0:
- MinGW is created to support the GCC compiler on Windows systems and it is useful to avoid errors during the compilation.
-
Add these paths to "Path" User Variable if they don't exist:
- For make:
C:\Program Files (x86)\GnuWin32\bin - For qemu:
C:\Program Files\qemu - For the debugger used in the demo:
C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\13.2 Rel1\bin- Note: the paths are related to the installation on Windows. Check that they are the same on your PC, or if they are different, change them appropriately.
- For make:
-
Open the folder
C:\yourPath\FreeRTOSv202212.01\FreeRTOSv202212.01\FreeRTOS\Demo\CORTEX_MPS2_QEMU_IAR_GCCas a VSCode Project. -
Navigate to the .vscode folder.
-
Open the file "launch.json" and change the “miDebuggerPath” to the path to the new debugger in the GNU Arm Embedded Toolchain downloaded earlier. The new debugger will be
GNU Arm Embedded Toolchain/10 2021.10/bin/arm-none-eabi-gdb.exe. -
Navigate within the build\gcc subfolder and open an Integrated Terminal here (right click and then "Open in Integrated Terminal"). Execute the "make" command.
-
Open a shell and execute the code:
qemu-system-arm -machine mps2-an385 -cpu cortex-m3 -kernel "C:\*yourPath*\FreeRTOSv202212.01\FreeRTOS\Demo\CORTEX_MPS2_QEMU_IAR_GCC\build\gcc\output\RTOSDemo.out" -monitor none -nographic -serial stdio -
A simple demo will start automatically.



