Vous êtes sur la page 1sur 9

Matière Système d’exploitation temps réel embarqué

Classe 4 EA CD
Nom et
Prénom

TP3
Système d’exploitation Temps Réel 
FreeRTOS sur ESP32

Application 1 : utilisation d’un codage classique


Clignotement de LED 2 chaque 0.5s
Clignotement de LED 4 chaque 1s

1- Exécuter le code suivant sur ESP32

2/ Est-ce que les deux LED fonctionnent correctement, expliquer leurs


fonctionnements
……………….

LED2 s’allume pendant …….. et s’éteint pendant …………

LED2 s’allume pendant …….. et s’éteint pendant …………

3/ combien de tâche contient ce code

4/ sur combien de core fonctionne ce code

5/ de combien de parties est constitué ce code et donner leurs noms


Application 2 : codage en temps réel avec FreeRTOS
Clignotement de LED 2 chaque 0.5s
Clignotement de LED 4 chaque 1s

1/ réaliser le code suivant

// Use only core 1 for demo purposes


#if CONFIG_FREERTOS_UNICORE
static const BaseType_t app_cpu = 0;
#else
static const BaseType_t app_cpu = 1;
#endif

// LED rates
static const int rate_2 = 500; // ms
static const int rate_4 = 1000; // ms

// Pins
static const int led_pin2 = 2;
static const int led_pin4 = 2;

void LED_2(void *parameter) {


while(1) {
digitalWrite(led_pin2, HIGH);
vTaskDelay(rate_2 / portTICK_PERIOD_MS);
digitalWrite(led_pin2, LOW);
vTaskDelay(rate_2 / portTICK_PERIOD_MS);
}
}

void LED_4(void *parameter) {


while(1) {
digitalWrite(led_pin4, HIGH);
vTaskDelay(rate_4 / portTICK_PERIOD_MS);
digitalWrite(led_pin4, LOW);
vTaskDelay(rate_4 / portTICK_PERIOD_MS);
}
}
void setup() {

// Configure pin
pinMode(led_pin, OUTPUT);

// Task to run forever


xTaskCreatePinnedToCore(
LED_1,
"Toggle 1",
1024,
NULL,
1,
NULL,
app_cpu);

// Task for LED_4


xTaskCreatePinnedToCore(
LED_4,
"Led4",
1024,
NULL,
1,
NULL,
app_cpu);

void loop()

{ }
2/ Est-ce que les deux LED fonctionnent correctement, expliquer leurs
fonctionnements
……………….

LED2 s’allume pendant …….. et s’éteint pendant …………

LED2 s’allume pendant …….. et s’éteint pendant …………

3/ combien de tâche contient ce code


4/ sur combien de core fonctionne ce code

5/ donner la partie de code dont laquelle on fait appel au Système


d’exploitation temps

6/ Quel OS Temps réel nous utilisons

7/ donner la partie des fonctions

8/ donner la partie de configuration des pins

9/ combien de tâches contient ce code


10/ donner la partie de création de tâche et d’appel de fonction et
expliquer chaque champs de création des tâche

Application 3 : Exécution sur deux cores avec FreeRTOS

1. Exécuter le code suivant sur ESP32

// Use only core 1 for demo purposes


#if CONFIG_FREERTOS_UNICORE
static const BaseType_t app_cpu = 0;
#else
static const BaseType_t app_cpu = 1;
#endif

// Pins *************************************
static const int led_pin2 = 2;
static const int led_pin4 = 4;

//********************************************
// Fonction LED_2
//*******************************************
void LED_2(void *parameter) {
while(1) {
digitalWrite(led_pin2, HIGH);
vTaskDelay(500 / portTICK_PERIOD_MS);
digitalWrite(led_pin2, LOW);
vTaskDelay(500 / portTICK_PERIOD_MS);
}
}

//
***********************************************************
void setup() {

// Configure pin
pinMode(led_pin2, OUTPUT);
pinMode(led_pin4, OUTPUT);

// Task to run forever


xTaskCreatePinnedToCore(
LED_2,
"Toggle 1",
1024,
NULL,
1,
NULL,
app_cpu); }

//********************************
void loop() {
digitalWrite(led_pin4, HIGH);
delay(1000);
digitalWrite(led_pin4, LOW);
delay(1000);
}

2/ Est-ce que les deux LED fonctionnent correctement, expliquer leurs


fonctionnements
……………….

LED2 s’allume pendant …….. et s’éteint pendant …………

LED2 s’allume pendant …….. et s’éteint pendant …………


3/ combien de tâche contient ce code

4/ sur combien de core fonctionne ce code

5/ donner la partie de code dont laquelle on fait appel au Système


d’exploitation temps

6/ Quel OS Temps réel nous utilisons

7/ donner la partie des fonctions

8/ donner la partie de configuration des pins

9/ combien de tâches contient ce code


10/ donner la partie de création de tâche et d’appel de fonction et
expliquer chaque champ de création des tâche

Vous aimerez peut-être aussi