freeRTOS è compilabile tramite cmake, per compilarlo su Linux andare nella cartella FreeRTOS/Demo ed eseguire:
cmake . -B build
cd build
make
./freeRTOS
- CMAKE
- codare versione definitiva freeRTOS
- injector
- logger
- parallelizzare
Aggiungere indirizzi di var globali e strutture varie qui
Indirizzo | Roba |
---|---|
0x402000-0x427000 | codice |
0x432000-0x460000 | heap |
0x7ffffffde000-0x7ffffffff000 | stack |
0x431000-0x432000 | variabili globali |
0x433ba0 - | fR (file pointer a Vero_Dante) |
0x433ba8 | fW (file pointer a Falso_Dante) |
0x4316e8 | xQueue |
0x4316f0 | xTimer |
-
Nessun errore (o Masked) per cui l’output del sistema non subisce alcuna alterazione
-
un Silence Data Corruption (SDC), per cui il sistema continua a funzionare ma l’output generato è diverso da quello atteso. Per questa opzione si cerchi di permettere all’utente di impostare quale sia l’output atteso
-
un Delay, per cui il sistema produce l’output atteso ma con un ritardo rispetto al tempo previsto. Per questa opzione, essendo il ritardo variabile, si studi come il FreeRTOS defi- nisce le deadline e si associ questa evenienza alla missing deadline.
-
un evento di Hang, simile al delay ma nell’eventualità in cui il RTOS non vede concludere mai i task, per essere entrato in un qualche loop infinito (o deadlock, o spinlock e similari).
-
un Crash: ovvero il sistema operativo smette di funzionare in modo repentino.
annotazioni su cosa far fare a main_blinky
al momento:
Numero task attuale --> 2
I task inseriscono e leggono dati da una Queue.
Idee:
-
task che killa freeRTOS allo scadere di un timer : per evitare che il sistema vada in hang. Utile per monitorare errori 3 e 4.
-
i task che producono outupt devono farlo su un file anzichè su stdout
-
usare pià strutture di sistema possibile (mutex, timer, code, semafori ecc.)
come monitorare i ritardi (errore 3)?
- timers:
- semafori:
- Queue:
- MessageBuffer:
- StreamBuffer:
- Task:
- https://www.freertos.org/a00015.html
- https://www.freertos.org/a00019.html (API - task create/delete)
- https://www.freertos.org/a00112.html (API - task control)
- https://www.freertos.org/a00021.html (API - task utilities)