From fb313af62ceacdb235ed2028ae7296d3ce961f7d Mon Sep 17 00:00:00 2001 From: rtel Date: Fri, 16 Oct 2015 11:29:36 +0000 Subject: [PATCH] Preparing for maintenance release: Kernel source changes: - Added xTaskNotifyStateClear() API function. - Added the GCC Cortex-R port (existed for a while) into the main download. - Improved the IAR RL78 port's handling of different memory model combinations. - Removed some compiler warnings in heap_5.c. Demo app changes: - Added example use of xTaskNotifyStateClear() to the TaskNotify standard demo tasks. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2389 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- FreeRTOS/Demo/Common/Minimal/TaskNotify.c | 28 +- .../nbproject/Makefile-genesis.properties | 2 +- .../nbproject/Makefile-PIC32MZ2048_SK.mk | 2 +- .../nbproject/Makefile-genesis.properties | 4 +- .../RTOSDemo.X/nbproject/Makefile-impl.mk | 2 +- .../RTOSDemo.X/nbproject/configurations.xml | 3 +- .../nbproject/private/configurations.xml | 4 +- .../RTOSDemo.X/nbproject/private/private.xml | 1 + FreeRTOS/Demo/PIC32MZ_MPLAB/main.c | 13 - .../Demo/RL78_multiple_IAR/FreeRTOSConfig.h | 2 +- FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.ewd | 4 +- FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.ewp | 152 +++-- .../RL78_multiple_IAR/settings/rtosdemo.dbgdt | 14 +- .../RL78_multiple_IAR/settings/rtosdemo.dni | 68 ++- .../RL78_multiple_IAR/settings/rtosdemo.wsdt | 10 +- FreeRTOS/Source/include/task.h | 12 +- FreeRTOS/Source/portable/GCC/ARM_CR5/port.c | 567 ++++++++++++++++++ .../Source/portable/GCC/ARM_CR5/portASM.S | 325 ++++++++++ .../Source/portable/GCC/ARM_CR5/portmacro.h | 235 ++++++++ .../Source/portable/IAR/78K0R/ISR_Support.h | 10 - .../Source/portable/IAR/RL78/ISR_Support.h | 10 - FreeRTOS/Source/portable/MemMang/heap_5.c | 10 +- FreeRTOS/Source/tasks.c | 42 +- 23 files changed, 1364 insertions(+), 156 deletions(-) create mode 100644 FreeRTOS/Source/portable/GCC/ARM_CR5/port.c create mode 100644 FreeRTOS/Source/portable/GCC/ARM_CR5/portASM.S create mode 100644 FreeRTOS/Source/portable/GCC/ARM_CR5/portmacro.h diff --git a/FreeRTOS/Demo/Common/Minimal/TaskNotify.c b/FreeRTOS/Demo/Common/Minimal/TaskNotify.c index 2f4878330..326531200 100644 --- a/FreeRTOS/Demo/Common/Minimal/TaskNotify.c +++ b/FreeRTOS/Demo/Common/Minimal/TaskNotify.c @@ -356,7 +356,7 @@ const uint32_t ulBit0 = 0x01UL, ulBit1 = 0x02UL; /*-------------------------------------------------------------------------- - Now try querying the previus value while notifying a task. */ + Now try querying the previous value while notifying a task. */ xTaskNotifyAndQuery( xTaskToNotify, 0x00, eSetBits, &ulPreviousValue ); configASSERT( ulNotifiedValue == ( ULONG_MAX & ~( ulBit0 | ulBit1 ) ) ); @@ -376,6 +376,28 @@ const uint32_t ulBit0 = 0x01UL, ulBit1 = 0x02UL; ulExpectedValue |= ulLoop; } + + + /* ------------------------------------------------------------------------- + /* Clear the previous notifications. */ + xTaskNotifyWait( ULONG_MAX, 0, &ulNotifiedValue, 0 ); + + /* The task should not have any notifications pending, so an attempt to clear + the notification state should fail. */ + configASSERT( xTaskNotifyStateClear( NULL ) == pdFALSE ); + + /* Get the task to notify itself. This is not a normal thing to do, and is + only done here for test purposes. */ + xTaskNotifyAndQuery( xTaskToNotify, ulFirstNotifiedConst, eSetValueWithoutOverwrite, &ulPreviousValue ); + + /* Now the notification state should be eNotified, so it should now be + possible to clear the notification state. */ + configASSERT( xTaskNotifyStateClear( NULL ) == pdTRUE ); + configASSERT( xTaskNotifyStateClear( NULL ) == pdFALSE ); + + + + /* Incremented to show the task is still running. */ ulNotifyCycleCount++; @@ -509,9 +531,9 @@ const uint32_t ulUnexpectedValue = 0xff; break; default:/* Should never get here!. */ - break; + break; } - + ulTimerNotificationsSent++; } } diff --git a/FreeRTOS/Demo/PIC24_MPLAB/nbproject/Makefile-genesis.properties b/FreeRTOS/Demo/PIC24_MPLAB/nbproject/Makefile-genesis.properties index e2c828458..ebf635696 100644 --- a/FreeRTOS/Demo/PIC24_MPLAB/nbproject/Makefile-genesis.properties +++ b/FreeRTOS/Demo/PIC24_MPLAB/nbproject/Makefile-genesis.properties @@ -1,5 +1,5 @@ # -#Thu Oct 15 21:03:35 BST 2015 +#Fri Oct 16 11:40:45 BST 2015 default.com-microchip-mplab-nbide-toolchainXC16-XC16LanguageToolchain.md5=7b5555b9f3fac10bdeeaa71fff22c072 default.languagetoolchain.dir=C\:\\DevTools\\Microchip\\xc16\\v1.25\\bin configurations-xml=e1668378027c43cfe57bea932c980e61 diff --git a/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/Makefile-PIC32MZ2048_SK.mk b/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/Makefile-PIC32MZ2048_SK.mk index 6f00e67f0..23d9fdbc1 100644 --- a/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/Makefile-PIC32MZ2048_SK.mk +++ b/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/Makefile-PIC32MZ2048_SK.mk @@ -77,7 +77,7 @@ ifneq ($(INFORMATION_MESSAGE), ) endif ${MAKE} -f nbproject/Makefile-PIC32MZ2048_SK.mk dist/${CND_CONF}/${IMAGE_TYPE}/RTOSDemo.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} -MP_PROCESSOR_OPTION=32MZ2048ECM144 +MP_PROCESSOR_OPTION=32MZ2048ECH144 MP_LINKER_FILE_OPTION= # ------------------------------------------------------------------------------------ # Rules for buildStep: assemble diff --git a/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/Makefile-genesis.properties b/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/Makefile-genesis.properties index f03ec51fb..be1055f3f 100644 --- a/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/Makefile-genesis.properties +++ b/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/Makefile-genesis.properties @@ -1,9 +1,9 @@ # -#Thu Oct 15 18:30:50 BST 2015 +#Fri Oct 16 11:52:06 BST 2015 PIC32MZ2048_SK.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=dcb36c7e6928d5535e26dd359786192b PIC32MZ2048EF_SK_SOFT_FLOAT.languagetoolchain.dir=C\:\\DevTools\\Microchip\\xc32\\v1.40\\bin conf.ids=PIC32MZ2048_SK,PIC32MZ2048EF_SK_SOFT_FLOAT,PIC32MZ2048EF_SK_HARD_FLOAT -configurations-xml=b89c82494ccd01c641a679d02e4a20c2 +configurations-xml=5494ca7739a1fe76ccf1dd947214ff1b PIC32MZ2048EF_SK_HARD_FLOAT.languagetoolchain.dir=C\:\\DevTools\\Microchip\\xc32\\v1.40\\bin PIC32MZ2048EF_SK_SOFT_FLOAT.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=dcb36c7e6928d5535e26dd359786192b PIC32MZ2048EF_SK_HARD_FLOAT.languagetoolchain.version=1.40 diff --git a/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/Makefile-impl.mk b/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/Makefile-impl.mk index 37740d55d..8fb0b30ef 100644 --- a/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/Makefile-impl.mk +++ b/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/Makefile-impl.mk @@ -27,7 +27,7 @@ CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}} PROJECTNAME=RTOSDemo.X # Active Configuration -DEFAULTCONF=PIC32MZ2048EF_SK_HARD_FLOAT +DEFAULTCONF=PIC32MZ2048_SK CONF=${DEFAULTCONF} # All Configurations diff --git a/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/configurations.xml b/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/configurations.xml index 43fc1c160..c9b574da2 100644 --- a/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/configurations.xml +++ b/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/configurations.xml @@ -84,7 +84,7 @@ localhost - PIC32MZ2048ECM144 + PIC32MZ2048ECH144 PKOBSKDEPlatformTool @@ -621,7 +621,6 @@ - diff --git a/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/private/configurations.xml b/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/private/configurations.xml index a084b2b6d..02300aba7 100644 --- a/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/private/configurations.xml +++ b/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/private/configurations.xml @@ -1,10 +1,10 @@ Makefile - 2 + 0 - :=MPLABComm-USB-Microchip:=<vid>04D8:=<pid>8107:=<rev>0002:=<man>Microchip Technology Incorporated:=<prod>PIC32MZ EF Family:=<sn>BUR153124004:=<drv>x:=<xpt>h:=end + :=MPLABComm-USB-Microchip:=<vid>04D8:=<pid>8107:=<rev>0002:=<man>Microchip Technology Incorporated:=<prod>PIC32MZ EC Family:=<sn>MTI132990155:=<drv>x:=<xpt>h:=end C:\DevTools\Microchip\xc32\v1.40\bin place holder 1 diff --git a/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/private/private.xml b/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/private/private.xml index d1d5490d9..ce03ea54b 100644 --- a/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/private/private.xml +++ b/FreeRTOS/Demo/PIC32MZ_MPLAB/RTOSDemo.X/nbproject/private/private.xml @@ -16,6 +16,7 @@ file:/C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/PIC32MZ_MPLAB/main.c + file:/C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/PIC32MZ_MPLAB/flop_mz.c diff --git a/FreeRTOS/Demo/PIC32MZ_MPLAB/main.c b/FreeRTOS/Demo/PIC32MZ_MPLAB/main.c index 4d0fb8b19..29fb6da94 100644 --- a/FreeRTOS/Demo/PIC32MZ_MPLAB/main.c +++ b/FreeRTOS/Demo/PIC32MZ_MPLAB/main.c @@ -104,8 +104,6 @@ #pragma config EJTAGBEN = NORMAL, DBGPER = PG_ALL, FSLEEP = OFF, FECCCON = OFF_UNLOCKED #pragma config BOOTISA = MIPS32, TRCEN = ON, ICESEL = ICS_PGx2, JTAGEN = OFF, DEBUG = ON #pragma config CP = OFF - #pragma config_alt FWDTEN=OFF - #pragma config_alt USERID = 0x1234u #elif defined(__32MZ2048EFM144) || defined(__32MZ2048EFH144) #pragma config FMIIEN = OFF, FETHIO = OFF, PGL1WAY = OFF, PMDL1WAY = OFF, IOL1WAY = OFF, FUSBIDIO = OFF #pragma config FNOSC = SPLL, FSOSCEN = OFF, IESO = OFF, POSCMOD = EC @@ -317,14 +315,3 @@ static unsigned long _excep_addr; } /*-----------------------------------------------------------*/ -void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName ) -{ - ( void ) pcTaskName; - ( void ) pxTask; - - /* Run time stack overflow checking is performed if - configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook - function is called if a stack overflow is detected. */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/RL78_multiple_IAR/FreeRTOSConfig.h index eb9a22461..78fd279c1 100644 --- a/FreeRTOS/Demo/RL78_multiple_IAR/FreeRTOSConfig.h +++ b/FreeRTOS/Demo/RL78_multiple_IAR/FreeRTOSConfig.h @@ -98,7 +98,7 @@ multiple evaluation boards. */ #define configUSE_PREEMPTION 1 #define configTICK_RATE_HZ ( ( unsigned short ) 1000 ) #define configMAX_PRIORITIES ( 4 ) -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 80 ) +#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 75 ) #define configMAX_TASK_NAME_LEN ( 10 ) #define configUSE_TRACE_FACILITY 0 #define configUSE_16_BIT_TICKS 1 diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.ewd index 6b7ccaac4..cb8cd713b 100644 --- a/FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.ewd +++ b/FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.ewd @@ -49,7 +49,7 @@