diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewd b/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewd
index c135816da..422f40600 100644
--- a/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewd
+++ b/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewd
@@ -256,290 +256,7 @@
0
- $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin
- 1
-
-
- $EW_DIR$\common\plugins\FreeRTOS\FreeRTOSPlugin.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\OpenRTOS\OpenRTOSPlugin.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin
- 1
-
-
- $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin
- 1
-
-
-
-
- Release
-
- RL78
-
- 0
-
- C-SPY
- 1
-
- 0
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- E1RL78
- 1
-
- 0
- 1
- 0
-
-
-
-
-
-
-
-
- E20RL78
- 1
-
- 0
- 1
- 0
-
-
-
-
-
-
-
-
- IECRL78
- 1
-
- 0
- 1
- 0
-
-
-
-
-
-
-
-
-
- SIMRL78
- 1
-
- 0
- 1
- 0
-
-
-
-
- TKRL78
- 1
-
- 0
- 1
- 0
-
-
-
-
-
-
-
-
-
- $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\FreeRTOS\OpenRTOSPlugin.ewplugin
0
@@ -554,14 +271,6 @@
$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin
1
-
- $EW_DIR$\common\plugins\FreeRTOS\FreeRTOSPlugin.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\OpenRTOS\OpenRTOSPlugin.ewplugin
- 0
-
$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
0
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp b/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp
index a00303a83..8a4d4d518 100644
--- a/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp
+++ b/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp
@@ -74,7 +74,7 @@
-
- Release
-
- RL78
-
- 0
-
- General
- 2
-
- 0
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ICCRL78
- 2
-
- 5
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ARL78
- 2
-
- 1
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- CUSTOM
- 3
-
-
-
-
-
-
- BICOMP
- 0
-
-
-
- BUILDACTION
- 1
-
-
-
-
-
-
- XLINK
- 2
-
- 13
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- XAR
- 2
-
- 0
- 1
- 0
-
-
-
-
-
-
- INTERNAL_HWSUPPORT
- 2
-
-
-
- BILINK
- 0
-
-
-
Demo Source
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/main.c b/Demo/RL78_RL78G13_Promo_Board_IAR/main.c
index 55555dcc7..ace3eda49 100644
--- a/Demo/RL78_RL78G13_Promo_Board_IAR/main.c
+++ b/Demo/RL78_RL78G13_Promo_Board_IAR/main.c
@@ -182,7 +182,7 @@ static xTimerHandle xCheckTimer = NULL;
static xTimerHandle xDemoTimer = NULL;
/* This variable is incremented each time the demo timer expires. */
-static volatile unsigned long ulDemoTimerCounter = 0UL;
+static volatile unsigned long ulDemoSoftwareTimerCounter = 0UL;
/* RL78/G13 Option Byte Definition. Watchdog disabled, LVI enabled, OCD interface
enabled. */
@@ -252,14 +252,13 @@ static void prvDemoTimerCallback( xTimerHandle xTimer )
period of the demo timer is relative to that of the check timer, so the
check timer knows how many times this variable should have been incremented
between each execution of the check timer's own callback. */
- ulDemoTimerCounter++;
+ ulDemoSoftwareTimerCounter++;
}
/*-----------------------------------------------------------*/
static void prvCheckTimerCallback( xTimerHandle xTimer )
{
static portBASE_TYPE xChangedTimerPeriodAlready = pdFALSE, xErrorStatus = pdPASS;
-static unsigned long ulLastDemoTimerCounter = 0UL;
/* Inspect the status of the standard demo tasks. */
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
@@ -283,16 +282,23 @@ static unsigned long ulLastDemoTimerCounter = 0UL;
xErrorStatus = pdFAIL;
}
- /* Ensure that the demo timer has expired at
+ /* Ensure that the demo software timer has expired
mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT times in between
- each call of this function. */
- if( ( ulDemoTimerCounter - ulLastDemoTimerCounter ) < ( mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT - 1 ) )
+ each call of this function. A critical section is not required to access
+ ulDemoSoftwareTimerCounter as the variable is only accessed from another
+ software timer callback, and only one software timer callback can be
+ executing at any time. */
+ if( ( ulDemoSoftwareTimerCounter < ( mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT - 1 ) ) ||
+ ( ulDemoSoftwareTimerCounter > ( mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT + 1 ) )
+ )
{
xErrorStatus = pdFAIL;
}
+ else
+ {
+ ulDemoSoftwareTimerCounter = 0UL;
+ }
- ulLastDemoTimerCounter = ulDemoTimerCounter;
-
if( ( xErrorStatus == pdFAIL ) && ( xChangedTimerPeriodAlready == pdFALSE ) )
{
/* An error has occurred, but the timer's period has not yet been changed,
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt b/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt
index 022efa073..fa45df86c 100644
--- a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt
+++ b/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt
@@ -65,14 +65,14 @@
- TextEditor$WS_DIR$\main.c018288998899TextEditor$WS_DIR$\..\..\Source\tasks.c04201927619276TextEditor$WS_DIR$\FreeRTOSConfig.h012861186130TextEditor$WS_DIR$\..\..\Source\queue.c0236129071290730100000010000001
+ TextEditor$WS_DIR$\main.c0182908290820TextEditor$WS_DIR$\..\..\Source\portable\IAR\RL78\portasm.s8708445264526TextEditor$WS_DIR$\..\..\Source\portable\IAR\RL78\ISR_Support.h0000TextEditor$WS_DIR$\RegTest.s8703941934193TextEditor$WS_DIR$\DemoTimerInterruptWrapper.s8704530633089TextEditor$WS_DIR$\..\..\Source\portable\IAR\RL78\portmacro.h076396739670100000010000001
- iaridepm.enu1debuggergui.enu1rl78ocd.enu1-2-2662344-2-2346254205952258656205952676171-2-22521682-2-216842541002381258656205952258656
+ iaridepm.enu1debuggergui.enu1rl78ocd.enu1-2-2662344-2-2346254205952258656205952676171-2-22521682-2-216842541002381258656205952258656
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni b/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni
index 4b5616c74..bacd3c976 100644
--- a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni
+++ b/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni
@@ -15,7 +15,7 @@ TypeViolation=1
UnspecRange=1
ActionState=1
[DebugChecksum]
-Checksum=1319205784
+Checksum=1452732143
[DisAssemblyWindow]
NumStates=_ 1
State 1=_ 1
diff --git a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt b/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt
index 8d805fea0..cd90b0139 100644
--- a/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt
+++ b/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt
@@ -25,7 +25,7 @@
Workspace
- RTOSDemo
+ RTOSDemoRTOSDemo/Demo Source
@@ -35,14 +35,14 @@
- TextEditor$WS_DIR$\main.c0573555355500100000010000001
+ TextEditor$WS_DIR$\main.c0579082908200100000010000001
- iaridepm.enu1-2-2629318-2-2263200156548203666190476642566-2-23091682-2-216843111002381316701205357258656
+ iaridepm.enu1-2-2629318-2-2263200156548203666190476642566-2-23091682-2-216843111002381316701205357258656