Skip to content
Snippets Groups Projects
Commit 242d7900 authored by Chris's avatar Chris
Browse files

Documentation

parent d51cd327
No related branches found
No related tags found
No related merge requests found
/*
@file kernel_M.c
@brief Kernel modul
@author Alan Muhemad
@date 2025-02-08
@details
creates character device for user space communication
validates the package (CRC Checksum)
timeslot management
writes data to the GPIO
*/
#include <linux/init.h> #include <linux/init.h>
#include <linux/module.h> #include <linux/module.h>
......
/*
@file cpu_freq.c
@brief cpu frequenz lesen und an pipe senden
@author Felix Moser, Christoph Schwierz
@date 2025-02-01
@details
dieses programm liest die CPU Frequenz aus cpu0 aus
und sendet den wert an seine zugehörige pipe
*/
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
......
/*
@file cpu_temp.c
@brief cpu temperatur lesen und an pipe senden
@author Felix Moser, Christoph Schwierz
@date 2025-02-01
@details
dieses programm liest die temperatur aus thermal_zone0 der CPu aus
und sendet den wert an seine zugehörige pipe
*/
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
......
#file process_monitoring.sh
#brief liste aller Prozesse die in ihre pipe writen
#author Felix Moser, Alan Muhemad
#date 2025-02-01
#!/bin/bash #!/bin/bash
#Prozesse starten #Prozesse starten
......
# Embedded Linux Projekt
# Dieses Program kann beliebig viele Prozesse haben, welche dessen Daten über die GPIO sendet
## Architektur
- Als Beispielprozesse werden die CPU Frequenz und Temperatur gemessen
- Die gemessenen daten werden über eine FIFO Pipe an einen Monitoring System (main.c im User-Space) gesendet.
- FIFO wird benutzt, weil man das Write- und Read End frei wählen kann und man mit mkfifo Pipes in einem Verzeichnis erstellen kann. Das erleichtert die Skalierbarkeit.
- Die Empfangene Daten werden vom Monitoring System in ein Package geschrieben.
- Mit der Vorgegebenen Struktur: SenderID, ValueID 1, Value 1, ValueID 2, ...
- Das Paket wird über einer CRC Checksum abgesichert und anschließend mit einem Character device interface an das Kernel gesendet.
- Das Kernel ist für das Erstellen des Character Devices zuständig
- Der Kernel Validiert das Paket mit der CRC.
- Der Kernel handlet das Timeslot management und Schreibt die daten an die GPIO
\ No newline at end of file
/*
@file main.c
@brief empfage daten von prozesse und senden an kernel
@author Felix Mose, Christoph Schwierz
@date 2025-02-14
@details
dieses Programm sucht nach prozessen und öffnet dessen zugehörige pipes
er liest die Daten aus den Pipes, erstellt packages mit den daten und checksum
und sendet diese an den kernel mit einem character device interface
*/
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment