docs(MP): init report
This commit is contained in:
@@ -44,13 +44,51 @@
|
||||
|
||||
//-------------------------------------
|
||||
// Content
|
||||
//
|
||||
//
|
||||
#let general-architecture = [
|
||||
#figure(
|
||||
image("mini-project/deployement.png", width: 100%),
|
||||
caption: "General architecture"
|
||||
) <fig:general-architecture>
|
||||
]
|
||||
|
||||
= Mini-Project
|
||||
|
||||
#lorem(150)
|
||||
= Introduction
|
||||
|
||||
The purpose of this mini-project is to train different concept we saw during the semester.
|
||||
We simulate a fan controlled by the temperatur of the @cpu. To simulate this fan, we blink the status led.
|
||||
The @fig:general-architecture shows the general architecture of the project.
|
||||
|
||||
This led and the measure of the temperature is managed by a kernel module. This module support an automatic and manual mode. In the automatic mode, the blinking frequency is automatically adjusted according to the temperature. We can switch this mode by a sysfs entry. In the manual mode, we can set the blinking frequency by writing in another sysfs entry. The sysfs also provide an entry to read the current temperature and blinking frequency.
|
||||
|
||||
Another part in this mini-project is to create a deamon in user-space to control manually the fan. The button are read by the deamon to increase and decrease the blinking frequency in manual mode. The deamon also display the current temperature and blinking frequency on an oled screen. The daemon can also be controller by a @ipc interface.
|
||||
|
||||
Finally, a tiny CLI is implemented to control the daemon trought the @ipc interface.
|
||||
|
||||
= Architecture
|
||||
|
||||
#general-architecture
|
||||
|
||||
== Kernel
|
||||
- everything is linked on regulator and main
|
||||
=== blink
|
||||
=== temperature
|
||||
=== sysfs
|
||||
|
||||
== Daemon
|
||||
=== gpio
|
||||
- issue devicetree and solution
|
||||
=== ipc
|
||||
=== oled
|
||||
=== application
|
||||
|
||||
== CLI
|
||||
|
||||
= Future work
|
||||
|
||||
= Conclusion
|
||||
Fun, but not enough time for more over-engineering.
|
||||
|
||||
#lorem(50)
|
||||
|
||||
|
||||
//-------------------------------------
|
||||
@@ -58,4 +96,3 @@
|
||||
//
|
||||
#heading(numbering:none, outlined: false)[] <sec:end>
|
||||
#make_glossary(gloss:gloss, title:i18n("gloss-title"))
|
||||
|
||||
|
||||
BIN
doc/mini-project/deployement.png
Normal file
BIN
doc/mini-project/deployement.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 138 KiB |
3
doc/mini-project/deployment.uxf
Normal file
3
doc/mini-project/deployment.uxf
Normal file
@@ -0,0 +1,3 @@
|
||||
<diagram program="umletino" version="15.1"><zoom_level>9</zoom_level><element><id>UMLDeployment</id><coordinates><x>63</x><y>324</y><w>342</w><h>234</h></coordinates><panel_attributes>Kernel module</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLDeployment</id><coordinates><x>441</x><y>324</y><w>342</w><h>234</h></coordinates><panel_attributes>Daemon</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLDeployment</id><coordinates><x>675</x><y>261</y><w>81</w><h>45</h></coordinates><panel_attributes>CLI</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>81</x><y>495</y><w>126</w><h>36</h></coordinates><panel_attributes>blink</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>243</x><y>495</y><w>126</w><h>36</h></coordinates><panel_attributes>temperature</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>243</x><y>369</y><w>126</w><h>36</h></coordinates><panel_attributes>sysfs</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>162</x><y>432</y><w>126</w><h>36</h></coordinates><panel_attributes>symbol=component
|
||||
regulator</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>216</x><y>378</y><w>45</w><h>72</h></coordinates><panel_attributes>lt=<-</panel_attributes><additional_attributes>30;10;10;10;10;60</additional_attributes></element><element><id>Relation</id><coordinates><x>117</x><y>441</y><w>63</w><h>72</h></coordinates><panel_attributes>lt=-></panel_attributes><additional_attributes>50;10;10;10;10;60</additional_attributes></element><element><id>Relation</id><coordinates><x>279</x><y>441</y><w>63</w><h>72</h></coordinates><panel_attributes>lt=-></panel_attributes><additional_attributes>10;10;50;10;50;60</additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>459</x><y>495</y><w>126</w><h>36</h></coordinates><panel_attributes>gpio</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>621</x><y>369</y><w>126</w><h>36</h></coordinates><panel_attributes>ipc</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>621</x><y>495</y><w>126</w><h>36</h></coordinates><panel_attributes>oled</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLGeneric</id><coordinates><x>549</x><y>432</y><w>126</w><h>36</h></coordinates><panel_attributes>symbol=component
|
||||
application</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>360</x><y>378</y><w>225</w><h>72</h></coordinates><panel_attributes>lt=<-</panel_attributes><additional_attributes>10;10;230;10;230;60</additional_attributes></element><element><id>Relation</id><coordinates><x>504</x><y>441</y><w>63</w><h>72</h></coordinates><panel_attributes>lt=-></panel_attributes><additional_attributes>50;10;10;10;10;60</additional_attributes></element><element><id>Relation</id><coordinates><x>666</x><y>441</y><w>63</w><h>72</h></coordinates><panel_attributes>lt=-></panel_attributes><additional_attributes>10;10;50;10;50;60</additional_attributes></element><element><id>Relation</id><coordinates><x>594</x><y>378</y><w>45</w><h>72</h></coordinates><panel_attributes>lt=<-</panel_attributes><additional_attributes>30;10;10;10;10;60</additional_attributes></element><element><id>Relation</id><coordinates><x>702</x><y>297</y><w>27</w><h>90</h></coordinates><panel_attributes>lt=<-</panel_attributes><additional_attributes>10;80;10;10</additional_attributes></element></diagram>
|
||||
@@ -187,6 +187,13 @@
|
||||
description: "A unit of digital information equal to 1,048,576 bytes (2^20 bytes).",
|
||||
group: "Computer Science"
|
||||
),
|
||||
(
|
||||
key: "ipc",
|
||||
short: "IPC",
|
||||
long: "Inter-Process Communication",
|
||||
description: "A set of programming interfaces that allow processes to communicate with each other and synchronize their actions.",
|
||||
group: "Operating System"
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user