very simple Freertos hello world

Dependencies:   mbed freertos_test FreeRTOS

Dependents:   freertos_test

Committer:
chalikias
Date:
Tue Mar 10 17:59:17 2020 +0000
Revision:
6:95206a6eb1ab
Parent:
5:9f58d90ad87b
new pm folder and todo.txt

Who changed what in which revision?

UserRevisionLine numberNew 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 }