]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/PIC32MZ_MPLAB/main_full.c
Update version number to 9.0.0rc2.
[freertos] / FreeRTOS / Demo / PIC32MZ_MPLAB / main_full.c
index 384807eda870340a5b47bd0de3862e2803ec552c..588c0a948d0e9f6cc08b48f527679cb9362301f1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V8.2.2 - Copyright (C) 2015 Real Time Engineers Ltd.\r
+    FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
     All rights reserved\r
 \r
     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
@@ -8,7 +8,7 @@
 \r
     FreeRTOS is free software; you can redistribute it and/or modify it under\r
     the terms of the GNU General Public License (version 2) as published by the\r
-    Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
+    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
 \r
     ***************************************************************************\r
     >>!   NOTE: The modification to the GPL is included to allow you to     !<<\r
 #include "QueueSet.h"\r
 #include "recmutex.h"\r
 #include "EventGroupsDemo.h"\r
+#include "flop_mz.h"\r
 \r
 /*-----------------------------------------------------------*/\r
 \r
@@ -160,9 +161,10 @@ in ticks using the portTICK_PERIOD_MS constant. */
 #define mainSEM_TEST_PRIORITY                          ( tskIDLE_PRIORITY + 1 )\r
 #define mainBLOCK_Q_PRIORITY                           ( tskIDLE_PRIORITY + 2 )\r
 #define mainCOM_TEST_PRIORITY                          ( tskIDLE_PRIORITY + 2 )\r
-#define mainINTEGER_TASK_PRIORITY           ( tskIDLE_PRIORITY )\r
+#define mainINTEGER_TASK_PRIORITY                      ( tskIDLE_PRIORITY )\r
 #define mainGEN_QUEUE_TASK_PRIORITY                    ( tskIDLE_PRIORITY )\r
 #define mainQUEUE_OVERWRITE_TASK_PRIORITY      ( tskIDLE_PRIORITY )\r
+#define mainFLOP_TASK_PRIORITY                         ( tskIDLE_PRIORITY )\r
 \r
 /* The LED controlled by the 'check' software timer. */\r
 #define mainCHECK_LED                                          ( 2 )\r
@@ -242,6 +244,7 @@ TimerHandle_t xTimer = NULL;
        vStartQueueSetTasks();\r
        vStartRecursiveMutexTasks();\r
        vStartEventGroupTasks();\r
+       vStartMathTasks( mainFLOP_TASK_PRIORITY );\r
 \r
        /* Create the tasks defined within this file. */\r
        xTaskCreate( prvRegTestTask1,                   /* The function that implements the task. */\r
@@ -294,6 +297,11 @@ extern void vRegTest1( volatile unsigned long * );
        /* Avoid compiler warnings. */\r
        ( void ) pvParameters;\r
 \r
+       /* Must be called before any hardware floating point operations are\r
+       performed to let the RTOS portable layer know that this task requires\r
+       a floating point context. */\r
+       portTASK_USES_FLOATING_POINT();\r
+\r
        /* Pass the address of the RegTest1 loop counter into the test function,\r
        which is necessarily implemented in assembler. */\r
        vRegTest1( &ulRegTest1Cycles );\r
@@ -310,6 +318,11 @@ extern void vRegTest2( volatile unsigned long * );
        /* Avoid compiler warnings. */\r
        ( void ) pvParameters;\r
 \r
+       /* Must be called before any hardware floating point operations are\r
+       performed to let the RTOS portable layer know that this task requires\r
+       a floating point context. */\r
+       portTASK_USES_FLOATING_POINT();\r
+\r
        /* Pass the address of the RegTest2 loop counter into the test function,\r
        which is necessarily implemented in assembler. */\r
        vRegTest2( &ulRegTest2Cycles );\r
@@ -393,6 +406,10 @@ extern unsigned long ulHighFrequencyTimerInterrupts;
        {\r
                ulErrorOccurred |= ( 0x01UL << 13UL );\r
        }\r
+       else if( xAreMathsTaskStillRunning() != pdTRUE )\r
+       {\r
+               ulErrorOccurred |= ( 0x01UL << 15UL );\r
+       }\r
 \r
        /* Ensure the expected number of high frequency interrupts have occurred. */\r
        if( ulLastHighFrequencyTimerInterrupts != 0 )\r