Final assignment for the course "Real Time and Embedded Systems" of THMMY in AUTH university.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

3.5 KiB

Real Time and Embedded Systems Final Assignment, 2019, AUTH

Distributed messaging using embedded, real time systems

This is an experimental application developed as part of the course "Real Time and Embedded Systems" assignment, that took place in the Department of Electrical & Computer Engineering at Aristotle University of Thessaloniki in 2018-2019.

The goal is to develop and test a distributed messaging application based on an embedded, real time system. To this end, Raspberry PIs were used as the embedded, RT system and a C application was developed and cross-compiled to be executed on the raspberries. More information and test results are presented in the report pdf.


Prerequisites

This project was developed for execution on Raspberry Pi Zero W. The rabian image used during development and testing can be found in the repository ./rasbian_image/ directory. Installation directions can be found in Raspberry's website here.

There are two ways of connecting to the system. By connecting to the port denoted "USB", a new network interface will appear, Raspberry's IP is 192.168.0.1/24 in that network, so you need to configure a static IP for your PC in the range 192.168.0.[2-254].

The device also creates an ad-hoc WiFi network with SSID piZero-ESPX where it's IP is 10.0.0.1/8. If you want to connect through this WiFi network you need to configure a static IP for your PC in the range 10.[0-255].[0-255].[0-254].

The only user in the system is root with password espx-2019. You can connect using the command:

ssh 192.168.0.1 -lroot

and typing the password when connecting through wire, or the command:

ssh 10.0.0.1 -lroot

when connecting using the WiFi.

If you plan to test using multiple Raspberries, each one must have a different IP. To change the IP used by a node modify the /etc/network/interfaces file appropriately.

In order to compile the project's code you need to install and properly configure the gcc cross-compiler found here, instructions are available on their wiki.


Execution

To execute the code, you first need to compile it using:

make

Then you need to copy the code over to the Raspberry using the command:

scp zaqar root@<Raspberry IP>:~/

You can either execute the program manually using the commands:

ssh <Raspberry IP> -lroot
./zaqar

or follow the instructions here to make the program run at startup.


Status

As of the completion of the project, it will NOT be maintained. The aim is to ensure its originality to the day it was delivered. By no means should it ever be considered stable or safe to use, as it may contain incomplete parts, critical bugs and security vulnerabilities.


Support

Reach out to me:


License

Beerware License


In Mesopotamian mythology, Zaqar is the messenger of the god Sin. He relays these messages to mortals through his power over their dreams and nightmares.