diff --git a/Kernel/kernel_M.c b/Kernel/kernel_M.c index 484766e8501e7694a9fb9df849fac08d45a2e008..ec78f8de6af92da523fa0a67b35361a31f003339 100644 --- a/Kernel/kernel_M.c +++ b/Kernel/kernel_M.c @@ -1,3 +1,15 @@ +/* +@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/module.h> diff --git a/Processes/cpu_freq.c b/Processes/cpu_freq.c index c81b4a090a8767ec9c35656e52a6890ceebc1c01..87fd7ae726594d7aa42facfb4e55bd7d904512f2 100644 --- a/Processes/cpu_freq.c +++ b/Processes/cpu_freq.c @@ -1,3 +1,13 @@ +/* +@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 <stdlib.h> #include <unistd.h> diff --git a/Processes/cpu_temp.c b/Processes/cpu_temp.c index 5ec6e84e3a0030918ea0af3b6b162a1a1b460fc8..cf051e1f4a076a2e5722f3afe1f90dfa7ad681b2 100644 --- a/Processes/cpu_temp.c +++ b/Processes/cpu_temp.c @@ -1,3 +1,14 @@ +/* +@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 <stdlib.h> #include <unistd.h> diff --git a/Processes/process_monitoring.sh b/Processes/process_monitoring.sh index 47848e8fb16942342cd25e829702b178cf5f7b5d..db57d035d17fc03b36a45b44a8cf0fd3812b2023 100644 --- a/Processes/process_monitoring.sh +++ b/Processes/process_monitoring.sh @@ -1,3 +1,8 @@ +#file process_monitoring.sh +#brief liste aller Prozesse die in ihre pipe writen +#author Felix Moser, Alan Muhemad +#date 2025-02-01 + #!/bin/bash #Prozesse starten diff --git a/README.md b/README.md index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..6fb1dd8cedef74818ad77a48d40310013c34cc68 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,14 @@ +# 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 diff --git a/main.c b/main.c index d7837d1c9265ca195709cac695a4a0953e398a93..ccb84f02c755ef351ff81132873cb62c4bfe66f6 100644 --- a/main.c +++ b/main.c @@ -1,3 +1,15 @@ +/* +@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 <stdlib.h> #include <unistd.h>