mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-20 05:21:59 -04:00
Added optional inclusion of floating point tasks.
This commit is contained in:
parent
45fceb4bdd
commit
dc897a35dd
|
@ -74,6 +74,8 @@
|
||||||
#define configUSE_TRACE_FACILITY 0
|
#define configUSE_TRACE_FACILITY 0
|
||||||
#define configCHECK_FOR_STACK_OVERFLOW 2
|
#define configCHECK_FOR_STACK_OVERFLOW 2
|
||||||
#define configUSE_COUNTING_SEMAPHORES 1
|
#define configUSE_COUNTING_SEMAPHORES 1
|
||||||
|
#define configUSE_APPLICATION_TASK_TAG 0
|
||||||
|
#define configUSE_FPU 0
|
||||||
|
|
||||||
|
|
||||||
/* Co-routine definitions. */
|
/* Co-routine definitions. */
|
||||||
|
@ -96,4 +98,13 @@ to exclude the API function. */
|
||||||
#define configUSE_RECURSIVE_MUTEXES 1
|
#define configUSE_RECURSIVE_MUTEXES 1
|
||||||
|
|
||||||
|
|
||||||
|
#if configUSE_FPU == 1
|
||||||
|
/* Include the header that define the traceTASK_SWITCHED_IN() and
|
||||||
|
traceTASK_SWITCHED_OUT() macros to save and restore the floating
|
||||||
|
point registers for tasks that have requested this behaviour. */
|
||||||
|
#include "FPU_Macros.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* FREERTOS_CONFIG_H */
|
#endif /* FREERTOS_CONFIG_H */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -95,6 +95,8 @@
|
||||||
#include "partest.h"
|
#include "partest.h"
|
||||||
#include "countsem.h"
|
#include "countsem.h"
|
||||||
#include "recmutex.h"
|
#include "recmutex.h"
|
||||||
|
#include "flop.h"
|
||||||
|
#include "flop-reg-test.h"
|
||||||
|
|
||||||
/* Priorities assigned to the demo tasks. */
|
/* Priorities assigned to the demo tasks. */
|
||||||
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 4 )
|
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 4 )
|
||||||
|
@ -176,6 +178,24 @@ int main( void )
|
||||||
vStartCountingSemaphoreTasks();
|
vStartCountingSemaphoreTasks();
|
||||||
vStartRecursiveMutexTasks();
|
vStartRecursiveMutexTasks();
|
||||||
|
|
||||||
|
#if ( configUSE_FPU == 1 )
|
||||||
|
{
|
||||||
|
/* To use floating point:
|
||||||
|
|
||||||
|
0) Add the files contained in the RTOSDemo/flop directory to the
|
||||||
|
build.
|
||||||
|
1) Your FPGA hardware design needs to add the APU FPU. This should
|
||||||
|
then also make the compiler options change to include the option
|
||||||
|
-mfpu=sp_full, but best to check.
|
||||||
|
2) Set configUSE_FPU to 1 in FreeRTOSConfig.h.
|
||||||
|
3) Set configUSE_APPLICATION_TASK_TAG to 1 in FreeRTOSConfig.h.
|
||||||
|
4) Ensure #include "FPU_Macros.h" is contained within
|
||||||
|
FreeRTOSConfig.h (as per this example). */
|
||||||
|
vStartMathTasks( mainFLOP_PRIORITY );
|
||||||
|
vStartFlopRegTests();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Create the tasks defined within this file. */
|
/* Create the tasks defined within this file. */
|
||||||
xTaskCreate( prvRegTestTask1, "Regtest1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
|
xTaskCreate( prvRegTestTask1, "Regtest1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
|
||||||
xTaskCreate( prvRegTestTask2, "Regtest2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
|
xTaskCreate( prvRegTestTask2, "Regtest2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
|
||||||
|
@ -264,6 +284,18 @@ static unsigned portLONG ulLastRegTest1Counter= 0UL, ulLastRegTest2Counter = 0UL
|
||||||
lReturn = pdFAIL;
|
lReturn = pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ( configUSE_FPU == 1 )
|
||||||
|
if( xAreMathsTaskStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreFlopRegisterTestsStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Have the register test tasks found any errors? */
|
/* Have the register test tasks found any errors? */
|
||||||
if( xRegTestStatus != pdPASS )
|
if( xRegTestStatus != pdPASS )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue