very simple Freertos hello world
Dependencies: mbed freertos_test FreeRTOS
main.cpp@5:9f58d90ad87b, 2020-03-10 (annotated)
- Committer:
- chalikias
- Date:
- Tue Mar 10 17:20:04 2020 +0000
- Revision:
- 5:9f58d90ad87b
- Parent:
- 4:92f2a8e0020c
minor
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
chalikias | 2:7a112956091c | 1 | // N.C. Freertos mbed minimal example based on below: |
chalikias | 2:7a112956091c | 2 | // https://developer.mbed.org/users/rgrover1/code/FreeRTOS/ |
chalikias | 0:7f7fa5e631ec | 3 | // http://www.radekdostal.com/content/freertos-610-minimal-example |
chalikias | 4:92f2a8e0020c | 4 | // 20/04/2017 update: Compiled for and NUCLEO-F104RB, without errors |
chalikias | 4:92f2a8e0020c | 5 | // Complile without errors: LPC1768,NUCLEO-F104RB,F401RE,L152RE |
chalikias | 4:92f2a8e0020c | 6 | // Compilation Errors for: EA LPC11U35, TG-LPC11U35-501 nRF51822, FRDM-K25Z, |
chalikias | 4:92f2a8e0020c | 7 | // nRF52-DK,BBC micro:bit,LPC1114FN28, NUCLEO-F030R8 |
chalikias | 4:92f2a8e0020c | 8 | // NUCLEO-F746ZG, LPC800-MAX |
chalikias | 0:7f7fa5e631ec | 9 | |
chalikias | 5:9f58d90ad87b | 10 | |
chalikias | 5:9f58d90ad87b | 11 | |
chalikias | 5:9f58d90ad87b | 12 | // Nikos 07/09/2019: Is using Cortex M3 version FreeRTOS, confirmed to to be compiled with cotexM3 CPUs |
chalikias | 5:9f58d90ad87b | 13 | // LPC1768, L152, F401, F103, Teensy3.1 |
chalikias | 5:9f58d90ad87b | 14 | |
chalikias | 0:7f7fa5e631ec | 15 | #include "mbed.h" |
chalikias | 0:7f7fa5e631ec | 16 | #include "FreeRTOS.h" |
chalikias | 0:7f7fa5e631ec | 17 | #include "task.h" |
chalikias | 0:7f7fa5e631ec | 18 | |
chalikias | 0:7f7fa5e631ec | 19 | DigitalOut led1(LED1); |
chalikias | 0:7f7fa5e631ec | 20 | DigitalOut led2(LED2); |
chalikias | 0:7f7fa5e631ec | 21 | |
chalikias | 0:7f7fa5e631ec | 22 | void Task1 (void* pvParameters) |
chalikias | 0:7f7fa5e631ec | 23 | { |
chalikias | 0:7f7fa5e631ec | 24 | (void) pvParameters; // Just to stop compiler warnings. |
chalikias | 0:7f7fa5e631ec | 25 | for (;;) { |
chalikias | 0:7f7fa5e631ec | 26 | led1 = !led1; |
chalikias | 2:7a112956091c | 27 | printf("Task1\n"); |
chalikias | 0:7f7fa5e631ec | 28 | vTaskDelay(500); |
chalikias | 0:7f7fa5e631ec | 29 | } |
chalikias | 0:7f7fa5e631ec | 30 | } |
chalikias | 0:7f7fa5e631ec | 31 | |
chalikias | 0:7f7fa5e631ec | 32 | void Task2 (void* pvParameters) |
chalikias | 0:7f7fa5e631ec | 33 | { |
chalikias | 0:7f7fa5e631ec | 34 | (void) pvParameters; // Just to stop compiler warnings. |
chalikias | 0:7f7fa5e631ec | 35 | for (;;) { |
chalikias | 0:7f7fa5e631ec | 36 | led2= !led2; |
chalikias | 2:7a112956091c | 37 | printf("Task2\n"); |
chalikias | 0:7f7fa5e631ec | 38 | vTaskDelay(5000); |
chalikias | 0:7f7fa5e631ec | 39 | } |
chalikias | 0:7f7fa5e631ec | 40 | } |
chalikias | 0:7f7fa5e631ec | 41 | |
chalikias | 0:7f7fa5e631ec | 42 | int main (void) |
chalikias | 0:7f7fa5e631ec | 43 | { |
chalikias | 3:d577dbef65a2 | 44 | xTaskCreate( Task1, ( signed char * ) "Task1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, ( xTaskHandle * ) NULL ); |
chalikias | 3:d577dbef65a2 | 45 | xTaskCreate( Task2, ( signed char * ) "Task2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, ( xTaskHandle * ) NULL ); |
chalikias | 0:7f7fa5e631ec | 46 | vTaskStartScheduler(); |
chalikias | 0:7f7fa5e631ec | 47 | //should never get here |
chalikias | 0:7f7fa5e631ec | 48 | printf("ERORR: vTaskStartScheduler returned!"); |
chalikias | 0:7f7fa5e631ec | 49 | for (;;); |
chalikias | 0:7f7fa5e631ec | 50 | } |