Repository for the group project: HaclOSsim - Computer Architectures and Operating Systems
This project aims to explore the usage of a real-time operating system, with hand-practice. The used operating system was FreeRTOS, in which we implemented some demos and added a new feature.
- Documentation
- HaclOSsim - Group09.pptx
- HaclOSsim - Group09.pdf
- Report.pdf
- Report.tex
- Examples
- demoTimer.c
- demoSemaphores.c
- demoStats.c
- demoHospital.c
- demoHospital2.c
- demoMatrix.c
- DemoScheduler
- demoScheduler.c
- FreeRTOS
-
-
Go to https://www.qemu.org/download/ and search for the appropriate installer based on your operating system. Once you choose the appropriate section, choose the appropriate processor architecture (32/64-bit) and you will be able to find the last version of the executable file (
qemu-w64-setup-x.exe
, where “x” is the last release date).
After installing the .exe file, execute it and follow the passages to install Qemu.
Pay attention to the path of the folder where you are installing the emulator, to start it easily. -
QEMU can be installed from Homebrew:
brew install qemu
QEMU can be installed from MacPorts:
sudo port install qemu
QEMU requires the most recent macOS version that is currently available. Support for the last previous version will be dropped two years after the current version has been released or when Apple drops support for it, whatever comes first. -
QEMU is packaged by most Linux distributions:
- Arch:
pacman -S qemu
- Debian/Ubuntu:
- For full system emulation:
apt-get install qemu-system
- For emulating Linux binaries:
apt-get install qemu-user-static
- For full system emulation:
- Fedora:
dnf install @virtualization
- Gentoo:
emerge --ask app-emulation/qemu
- RHEL/CentOS:
yum install qemu-kvm
- SUSE:
zypper install qemu
- Arch:
-
Go to https://www.qemu.org/download/ and search for the appropriate installer based on your operating system. Once you choose the appropriate section, choose the appropriate processor architecture (32/64-bit) and you will be able to find the last version of the executable file (
-
Go to https://www.freertos.org/a00104.html. Download from the "Download" button and extract the content.
Package contains the FreeRTOS Kernel, FreeRTOS-Plus libraries and AWS IoT libraries, along with example projects. -
Go to https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads.
- Find the release called “AArch32 bare-metal target (arm-none-eabi)” and download the .exe file provided by the web site.
- Find the release called “AArch32 bare-metal target (arm-none-eabi)” and download the .pkg file provided by the web site.
-
Install ARM GNU Toolchain using the following terminal commands:
sudo apt install gcc-arm-none-eabi
sudo apt install gdb-arm-none-eabi
sudo apt install binutils-arm-none-eabi
-
To make your work easier, we recommend downloading and install Visual Studio Code.
-
Make sure that ARM GNU Toolchain and GNU Make are in environmental variables path, otherwise, you can add it manually copying the path of the tool and pasting it in this location
Start > Edit System Variable > Path
. Subsequently, you will be able to run, with Visual Studio Code, the file main.c which is reachable in this pathFreeRTOSv202212.01\FreeRTOS\ \<Folder Name\> \CORTEX_MPS2_QEMU_IAR_GCC\
and, if you followed carefully all the steps, you will find a .out file calledRTOSDemo.out
with this pathFreeRTOSv202212.01\FreeRTOS\ \<Folder Name\> \CORTEX_MPS2_QEMU_IAR_GCC\build\gcc\output\
.
Note that\<Folder Name\>
in the filesystem is one of the three foldersExamples
,Examples\DemoScheduler
, orFreeRTOS
. -
Go to
FreeRTOSv202212.01/FreeRTOS/\<Folder Name\>/CORTEX_MPS2_QEMU_IAR_GCC/build/gcc
and from the terminal digit the commandmake
. When the running will finish and the system will return the terminal, you will be able to run the demo. Note that\<Folder Name\>
in the filesystem is one of the three foldersExamples
,Examples/DemoScheduler
, orFreeRTOS
. - The actions to perform are the same as in the MacOS Users section.
-
Make sure that ARM GNU Toolchain and GNU Make are in environmental variables path, otherwise, you can add it manually copying the path of the tool and pasting it in this location