summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichardBarry <RichardBarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>2009-02-04 13:07:16 +0000
committerRichardBarry <RichardBarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>2009-02-04 13:07:16 +0000
commitaf73f5af6f133cb9bdc4ccdea91400df98893968 (patch)
tree24bb4c4d960ab14da9a2767578e6ad41624c1fb4
parenta44710051365450f30369e07b3dcfc3cfab0af67 (diff)
downloadfreertos-af73f5af6f133cb9bdc4ccdea91400df98893968.tar.gz
freertos-af73f5af6f133cb9bdc4ccdea91400df98893968.tar.bz2
freertos-af73f5af6f133cb9bdc4ccdea91400df98893968.tar.xz
Continue 78K0R development.
git-svn-id: https://freertos.svn.sourceforge.net/svnroot/freertos/trunk@672 1d2547de-c912-0410-9cb9-b8ca96c0e9e2
-rw-r--r--Demo/NEC_78K0R_IAR/ButtonISR.s2655
-rw-r--r--Demo/NEC_78K0R_IAR/ButtonTask.c (renamed from Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.h)43
-rw-r--r--Demo/NEC_78K0R_IAR/FreeRTOSConfig.h11
-rw-r--r--Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.c353
-rw-r--r--Demo/NEC_78K0R_IAR/LEDtoggle/LED.c234
-rw-r--r--Demo/NEC_78K0R_IAR/LEDtoggle/LED.h61
-rw-r--r--Demo/NEC_78K0R_IAR/main.c63
-rw-r--r--Demo/NEC_78K0R_IAR/rtosdemo.dep719
-rw-r--r--Demo/NEC_78K0R_IAR/rtosdemo.ewp36
-rw-r--r--Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt32
-rw-r--r--Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt8
11 files changed, 182 insertions, 1433 deletions
diff --git a/Demo/NEC_78K0R_IAR/ButtonISR.s26 b/Demo/NEC_78K0R_IAR/ButtonISR.s26
new file mode 100644
index 00000000..9ddf2577
--- /dev/null
+++ b/Demo/NEC_78K0R_IAR/ButtonISR.s26
@@ -0,0 +1,55 @@
+; FreeRTOS.org V5.1.1 - Copyright (C) 2003-2008 Richard Barry.
+;
+; This file is part of the FreeRTOS.org distribution.
+;
+; FreeRTOS.org is free software; you can redistribute it and/or modify
+; it under the terms of the GNU General Public License as published by
+; the Free Software Foundation; either version 2 of the License, or
+; (at your option) any later version.
+;
+; FreeRTOS.org is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+; GNU General Public License for more details.
+;
+; You should have received a copy of the GNU General Public License
+; along with FreeRTOS.org; if not, write to the Free Software
+; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+;
+; A special exception to the GPL can be applied should you wish to distribute
+; a combined work that includes FreeRTOS.org, without being obliged to provide
+; the source code for any proprietary components. See the licensing section
+; of http://www.FreeRTOS.org for full details of how and when the exception
+; can be applied.
+;
+; ***************************************************************************
+; See http://www.FreeRTOS.org for documentation, latest information, license
+; and contact details. Please ensure to read the configuration and relevant
+; port sections of the online documentation.
+; ***************************************************************************
+;
+;------------------------------------------------------------------------------
+
+#include "ISR_Support.h"
+
+ PUBLIC vButtonISRWrapper
+ EXTERN vButtonISRHandler
+
+ RSEG CODE:CODE
+
+vButtonISRWrapper:
+ portSAVE_CONTEXT
+ call vButtonISRHandler
+ portRESTORE_CONTEXT
+ RETI
+
+
+
+ ; Set ISR location to the Interrupt vector table.
+ COMMON INTVEC:CODE:ROOT(1)
+ ORG 8
+`??vButtonISRWrapper??INTVEC 8`:
+ DW vButtonISRWrapper
+
+
+ END
diff --git a/Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.h b/Demo/NEC_78K0R_IAR/ButtonTask.c
index 2bd33182..a15202cd 100644
--- a/Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.h
+++ b/Demo/NEC_78K0R_IAR/ButtonTask.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.
+ FreeRTOS.org V5.1.1 - Copyright (C) 2003-2009 Richard Barry.
This file is part of the FreeRTOS.org distribution.
@@ -19,7 +19,7 @@
A special exception to the GPL can be applied should you wish to distribute
a combined work that includes FreeRTOS.org, without being obliged to provide
- the source code for any proprietary components. See the licensing section
+ the source code for any proprietary components. See the licensing section
of http://www.FreeRTOS.org for full details of how and when the exception
can be applied.
@@ -37,22 +37,45 @@
Please ensure to read the configuration and relevant port sections of the
online documentation.
- http://www.FreeRTOS.org - Documentation, latest information, license and
+ http://www.FreeRTOS.org - Documentation, latest information, license and
contact details.
- http://www.SafeRTOS.com - A version that is certified for use in safety
+ http://www.SafeRTOS.com - A version that is certified for use in safety
critical systems.
- http://www.OpenRTOS.com - Commercial support, development, porting,
+ http://www.OpenRTOS.com - Commercial support, development, porting,
licensing and training services.
*/
-#ifndef INTEGER_TASKS_H
-#define INTEGER_TASKS_H
+#include "FreeRTOS.h"
+#include "task.h"
+#include "semphr.h"
-void vStartIntegerMathTasks( unsigned portBASE_TYPE uxPriority );
-portBASE_TYPE xAreIntegerMathsTaskStillRunning( void );
+static xSemaphoreHandle xButtonSemaphore;
-#endif
+#define LED01 P7_bit.no7
+void vButtonTask( void *pvParameters )
+{
+ vSemaphoreCreateBinary( xButtonSemaphore );
+ for( ;; )
+ {
+ xSemaphoreTake( xButtonSemaphore, portMAX_DELAY );
+ LED01 = !LED01;
+
+ vTaskDelay( 200 / portTICK_RATE_MS );
+ xSemaphoreTake( xButtonSemaphore, 0 );
+ }
+}
+/*-----------------------------------------------------------*/
+
+void vButtonISRHandler( void )
+{
+short sHigherPriorityTaskWoken = pdFALSE;
+
+ xSemaphoreGiveFromISR( xButtonSemaphore, &sHigherPriorityTaskWoken );
+
+ portYIELD_FROM_ISR( sHigherPriorityTaskWoken );
+}
+/*-----------------------------------------------------------*/
diff --git a/Demo/NEC_78K0R_IAR/FreeRTOSConfig.h b/Demo/NEC_78K0R_IAR/FreeRTOSConfig.h
index ef764302..7c4f72f7 100644
--- a/Demo/NEC_78K0R_IAR/FreeRTOSConfig.h
+++ b/Demo/NEC_78K0R_IAR/FreeRTOSConfig.h
@@ -62,14 +62,14 @@
#endif /* __IAR_SYSTEMS_ICC__ */
-/*
+/*
* 78K0R/Kx3 Clock Source Configuration
* 1 = use internal High Speed Clock Source (typically 8Mhz on the 78K0R/Kx3)
* 0 = use external Clock Source
*/
#define configCLOCK_SOURCE 0
-/*
+/*
* 78K0R/Kx3 Memory Model
* 1 = use far memory mode
* 0 = use near memory mode
@@ -104,6 +104,7 @@
#define configUSE_16_BIT_TICKS 1
#define configIDLE_SHOULD_YIELD 1
#define configCHECK_FOR_STACK_OVERFLOW 0
+ #define configUSE_MUTEXES 1
/* Co-routine definitions. */
#define configUSE_CO_ROUTINES 0
@@ -111,11 +112,11 @@
/* Set the following definitions to 1 to include the API function, or zero
to exclude the API function. */
- #define INCLUDE_vTaskPrioritySet 0
- #define INCLUDE_uxTaskPriorityGet 0
+ #define INCLUDE_vTaskPrioritySet 1
+ #define INCLUDE_uxTaskPriorityGet 1
#define INCLUDE_vTaskDelete 1
#define INCLUDE_vTaskCleanUpResources 0
- #define INCLUDE_vTaskSuspend 0
+ #define INCLUDE_vTaskSuspend 1
#define INCLUDE_vTaskDelayUntil 1
#define INCLUDE_vTaskDelay 1
diff --git a/Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.c b/Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.c
deleted file mode 100644
index 68ffabd6..00000000
--- a/Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.c
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.
-
- This file is part of the FreeRTOS.org distribution.
-
- FreeRTOS.org is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- FreeRTOS.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with FreeRTOS.org; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- A special exception to the GPL can be applied should you wish to distribute
- a combined work that includes FreeRTOS.org, without being obliged to provide
- the source code for any proprietary components. See the licensing section
- of http://www.FreeRTOS.org for full details of how and when the exception
- can be applied.
-
- ***************************************************************************
- ***************************************************************************
- * *
- * SAVE TIME AND MONEY! We can port FreeRTOS.org to your own hardware, *
- * and even write all or part of your application on your behalf. *
- * See http://www.OpenRTOS.com for details of the services we provide to *
- * expedite your project. *
- * *
- ***************************************************************************
- ***************************************************************************
-
- Please ensure to read the configuration and relevant port sections of the
- online documentation.
-
- http://www.FreeRTOS.org - Documentation, latest information, license and
- contact details.
-
- http://www.SafeRTOS.com - A version that is certified for use in safety
- critical systems.
-
- http://www.OpenRTOS.com - Commercial support, development, porting,
- licensing and training services.
-*/
-
-/*
-Changes from V1.2.3
-
- + The created tasks now include calls to tskYIELD(), allowing them to be used
- with the cooperative scheduler.
-*/
-
-/**
- * From the functionality point of view this module has the same behavior like
- * the integer.c standard demo task but the used stack size is optimized so that
- * not so much memory space is used which is not needed.
- *
- * This does the same as flop. c, but uses variables of type long instead of
- * type double.
- *
- * As with flop. c, the tasks created in this file are a good test of the
- * scheduler context switch mechanism. The processor has to access 32bit
- * variables in two or four chunks (depending on the processor). The low
- * priority of these tasks means there is a high probability that a context
- * switch will occur mid calculation. See the flop. c documentation for
- * more information.
- *
- * \page IntegerC integer.c
- * \ingroup DemoFiles
- * <HR>
- */
-
-/*
-Changes from V1.2.1
-
- + The constants used in the calculations are larger to ensure the
- optimiser does not truncate them to 16 bits.
-*/
-
-#include <stdlib.h>
-
-/* Scheduler include files. */
-#include "FreeRTOS.h"
-#include "task.h"
-#include "print.h"
-
-/* Demo program include files. */
-#include "integer.h"
-
-#define intgSTACK_SIZE ( ( unsigned portSHORT ) 96 )
-#define intgNUMBER_OF_TASKS ( 8 )
-
-/* Four tasks, each of which performs a different calculation on four byte
-variables. Each of the four is created twice. */
-static void vCompeteingIntMathTask1( void *pvParameters );
-static void vCompeteingIntMathTask2( void *pvParameters );
-static void vCompeteingIntMathTask3( void *pvParameters );
-static void vCompeteingIntMathTask4( void *pvParameters );
-
-/* These variables are used to check that all the tasks are still running. If a
-task gets a calculation wrong it will stop incrementing its check variable. */
-static volatile unsigned portSHORT usTaskCheck[ intgNUMBER_OF_TASKS ] = { ( unsigned portSHORT ) 0 };
-/*-----------------------------------------------------------*/
-
-void vStartIntegerMathTasks( unsigned portBASE_TYPE uxPriority )
-{
- xTaskCreate( vCompeteingIntMathTask1, "IntMath1", intgSTACK_SIZE, ( void * ) &( usTaskCheck[ 0 ] ), uxPriority, NULL );
- xTaskCreate( vCompeteingIntMathTask2, "IntMath2", intgSTACK_SIZE, ( void * ) &( usTaskCheck[ 1 ] ), uxPriority, NULL );
- xTaskCreate( vCompeteingIntMathTask3, "IntMath3", intgSTACK_SIZE, ( void * ) &( usTaskCheck[ 2 ] ), uxPriority, NULL );
- xTaskCreate( vCompeteingIntMathTask4, "IntMath4", intgSTACK_SIZE, ( void * ) &( usTaskCheck[ 3 ] ), uxPriority, NULL );
- xTaskCreate( vCompeteingIntMathTask1, "IntMath5", intgSTACK_SIZE, ( void * ) &( usTaskCheck[ 4 ] ), uxPriority, NULL );
- xTaskCreate( vCompeteingIntMathTask2, "IntMath6", intgSTACK_SIZE, ( void * ) &( usTaskCheck[ 5 ] ), uxPriority, NULL );
- xTaskCreate( vCompeteingIntMathTask3, "IntMath7", intgSTACK_SIZE, ( void * ) &( usTaskCheck[ 6 ] ), uxPriority, NULL );
- xTaskCreate( vCompeteingIntMathTask4, "IntMath8", intgSTACK_SIZE, ( void * ) &( usTaskCheck[ 7 ] ), uxPriority, NULL );
-}
-/*-----------------------------------------------------------*/
-
-static void vCompeteingIntMathTask1( void *pvParameters )
-{
-portLONG l1, l2, l3, l4;
-portSHORT sError = pdFALSE;
-volatile unsigned portSHORT *pusTaskCheckVariable;
-const portLONG lAnswer = ( ( portLONG ) 74565L + ( portLONG ) 1234567L ) * ( portLONG ) -918L;
-const portCHAR * const pcTaskStartMsg = "Integer math task 1 started.\r\n";
-const portCHAR * const pcTaskFailMsg = "Integer math task 1 failed.\r\n";
-
- /* Queue a message for printing to say the task has started. */
- vPrintDisplayMessage( &pcTaskStartMsg );
-
- /* The variable this task increments to show it is still running is passed in
- as the parameter. */
- pusTaskCheckVariable = ( unsigned portSHORT * ) pvParameters;
-
- /* Keep performing a calculation and checking the result against a constant. */
- for(;;)
- {
- l1 = ( portLONG ) 74565L;
- l2 = ( portLONG ) 1234567L;
- l3 = ( portLONG ) -918L;
-
- l4 = ( l1 + l2 ) * l3;
-
- taskYIELD();
-
- /* If the calculation does not match the expected constant, stop the
- increment of the check variable. */
- if( l4 != lAnswer )
- {
- vPrintDisplayMessage( &pcTaskFailMsg );
- sError = pdTRUE;
- }
-
- if( sError == pdFALSE )
- {
- /* If the calculation has always been correct, increment the check
- variable so we know this task is still running okay. */
- ( *pusTaskCheckVariable )++;
- }
- }
-}
-/*-----------------------------------------------------------*/
-
-static void vCompeteingIntMathTask2( void *pvParameters )
-{
-portLONG l1, l2, l3, l4;
-portSHORT sError = pdFALSE;
-volatile unsigned portSHORT *pusTaskCheckVariable;
-const portLONG lAnswer = ( ( portLONG ) -389000L / ( portLONG ) 329999L ) * ( portLONG ) -89L;
-const portCHAR * const pcTaskStartMsg = "Integer math task 2 started.\r\n";
-const portCHAR * const pcTaskFailMsg = "Integer math task 2 failed.\r\n";
-
- /* Queue a message for printing to say the task has started. */
- vPrintDisplayMessage( &pcTaskStartMsg );
-
- /* The variable this task increments to show it is still running is passed in
- as the parameter. */
- pusTaskCheckVariable = ( unsigned portSHORT * ) pvParameters;
-
- /* Keep performing a calculation and checking the result against a constant. */
- for( ;; )
- {
- l1 = -389000L;
- l2 = 329999L;
- l3 = -89L;
-
- l4 = ( l1 / l2 ) * l3;
-
- taskYIELD();
-
- /* If the calculation does not match the expected constant, stop the
- increment of the check variable. */
- if( l4 != lAnswer )
- {
- vPrintDisplayMessage( &pcTaskFailMsg );
- sError = pdTRUE;
- }
-
- if( sError == pdFALSE )
- {
- /* If the calculation has always been correct, increment the check
- variable so we know this task is still running okay. */
- ( *pusTaskCheckVariable )++;
- }
- }
-}
-/*-----------------------------------------------------------*/
-
-static void vCompeteingIntMathTask3( void *pvParameters )
-{
-portLONG *plArray, lTotal1, lTotal2;
-portSHORT sError = pdFALSE;
-volatile unsigned portSHORT *pusTaskCheckVariable;
-const unsigned portSHORT usArraySize = ( unsigned portSHORT ) 125;
-unsigned portSHORT usPosition;
-const portCHAR * const pcTaskStartMsg = "Integer math task 3 started.\r\n";
-const portCHAR * const pcTaskFailMsg = "Integer math task 3 failed.\r\n";
-
- /* Queue a message for printing to say the task has started. */
- vPrintDisplayMessage( &pcTaskStartMsg );
-
- /* The variable this task increments to show it is still running is passed in
- as the parameter. */
- pusTaskCheckVariable = ( unsigned portSHORT * ) pvParameters;
-
- /* Create the array we are going to use for our check calculation. */
- plArray = ( portLONG * ) pvPortMalloc( ( size_t ) 125 * sizeof( portLONG ) );
-
- /* Keep filling the array, keeping a running total of the values placed in the
- array. Then run through the array adding up all the values. If the two totals
- do not match, stop the check variable from incrementing. */
- for( ;; )
- {
- lTotal1 = ( portLONG ) 0;
- lTotal2 = ( portLONG ) 0;
-
- for( usPosition = 0; usPosition < usArraySize; usPosition++ )
- {
- plArray[ usPosition ] = ( portLONG ) usPosition + ( portLONG ) 5;
- lTotal1 += ( portLONG ) usPosition + ( portLONG ) 5;
- }
-
- taskYIELD();
-
- for( usPosition = 0; usPosition < usArraySize; usPosition++ )
- {
- lTotal2 += plArray[ usPosition ];
- }
-
- if( lTotal1 != lTotal2 )
- {
- vPrintDisplayMessage( &pcTaskFailMsg );
- sError = pdTRUE;
- }
-
- taskYIELD();
-
- if( sError == pdFALSE )
- {
- /* If the calculation has always been correct, increment the check
- variable so we know this task is still running okay. */
- ( *pusTaskCheckVariable )++;
- }
- }
-}
-/*-----------------------------------------------------------*/
-
-static void vCompeteingIntMathTask4( void *pvParameters )
-{
-portLONG *plArray, lTotal1, lTotal2;
-portSHORT sError = pdFALSE;
-volatile unsigned portSHORT *pusTaskCheckVariable;
-const unsigned portSHORT usArraySize = 125;
-unsigned portSHORT usPosition;
-const portCHAR * const pcTaskStartMsg = "Integer math task 4 started.\r\n";
-const portCHAR * const pcTaskFailMsg = "Integer math task 4 failed.\r\n";
-
- /* Queue a message for printing to say the task has started. */
- vPrintDisplayMessage( &pcTaskStartMsg );
-
- /* The variable this task increments to show it is still running is passed in
- as the parameter. */
- pusTaskCheckVariable = ( unsigned portSHORT * ) pvParameters;
-
- /* Create the array we are going to use for our check calculation. */
- plArray = ( portLONG * ) pvPortMalloc( ( size_t ) 125 * sizeof( portLONG ) );
-
- /* Keep filling the array, keeping a running total of the values placed in the
- array. Then run through the array adding up all the values. If the two totals
- do not match, stop the check variable from incrementing. */
- for( ;; )
- {
- lTotal1 = ( portLONG ) 0;
- lTotal2 = ( portLONG ) 0;
-
- for( usPosition = 0; usPosition < usArraySize; usPosition++ )
- {
- plArray[ usPosition ] = ( portLONG ) usPosition * ( portLONG ) 12;
- lTotal1 += ( portLONG ) usPosition * ( portLONG ) 12;
- }
-
- taskYIELD();
-
- for( usPosition = 0; usPosition < usArraySize; usPosition++ )
- {
- lTotal2 += plArray[ usPosition ];
- }
-
-
- if( lTotal1 != lTotal2 )
- {
- vPrintDisplayMessage( &pcTaskFailMsg );
- sError = pdTRUE;
- }
-
- taskYIELD();
-
- if( sError == pdFALSE )
- {
- /* If the calculation has always been correct, increment the check
- variable so we know this task is still running okay. */
- ( *pusTaskCheckVariable )++;
- }
- }
-}
-/*-----------------------------------------------------------*/
-
-/* This is called to check that all the created tasks are still running. */
-portBASE_TYPE xAreIntegerMathsTaskStillRunning( void )
-{
-/* Keep a history of the check variables so we know if they have been incremented
-since the last call. */
-static unsigned portSHORT usLastTaskCheck[ intgNUMBER_OF_TASKS ] = { ( unsigned portSHORT ) 0 };
-portBASE_TYPE xReturn = pdTRUE, xTask;
-
- /* Check the maths tasks are still running by ensuring their check variables
- are still incrementing. */
- for( xTask = 0; xTask < intgNUMBER_OF_TASKS; xTask++ )
- {
- if( usTaskCheck[ xTask ] == usLastTaskCheck[ xTask ] )
- {
- /* The check has not incremented so an error exists. */
- xReturn = pdFALSE;
- }
-
- usLastTaskCheck[ xTask ] = usTaskCheck[ xTask ];
- }
-
- return xReturn;
-}
diff --git a/Demo/NEC_78K0R_IAR/LEDtoggle/LED.c b/Demo/NEC_78K0R_IAR/LEDtoggle/LED.c
deleted file mode 100644
index f25640f7..00000000
--- a/Demo/NEC_78K0R_IAR/LEDtoggle/LED.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.
-
- This file is part of the FreeRTOS.org distribution.
-
- FreeRTOS.org is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- FreeRTOS.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with FreeRTOS.org; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- A special exception to the GPL can be applied should you wish to distribute
- a combined work that includes FreeRTOS.org, without being obliged to provide
- the source code for any proprietary components. See the licensing section
- of http://www.FreeRTOS.org for full details of how and when the exception
- can be applied.
-
- ***************************************************************************
- ***************************************************************************
- * *
- * SAVE TIME AND MONEY! We can port FreeRTOS.org to your own hardware, *
- * and even write all or part of your application on your behalf. *
- * See http://www.OpenRTOS.com for details of the services we provide to *
- * expedite your project. *
- * *
- ***************************************************************************
- ***************************************************************************
-
- Please ensure to read the configuration and relevant port sections of the
- online documentation.
-
- http://www.FreeRTOS.org - Documentation, latest information, license and
- contact details.
-
- http://www.SafeRTOS.com - A version that is certified for use in safety
- critical systems.
-
- http://www.OpenRTOS.com - Commercial support, development, porting,
- licensing and training services.
-*/
-
-/**
- * This is a simple LED toggle test for the 78K0R/Kx3 Target Board (QB-78K0RKG3-TB).
- *
- * Creates two task that control one LED each.
- *
- * The first task toggles a LED with a frequency of 1Hz by using the vTaskDelay
- * function. So the task is yielded for 1 seconed after each LED switch.
- *
- * The second LED can be toggled by a switch within the second task.
- * When the switch is pushed it is detected by an interrupt. When the interrupt
- * occurs a flag is set in the ISR and sent to the second task by using a queue.
- * Therefore the xQueueSendFromISR() function is called from within the ISR to
- * write the flag value to the queue. The task uses the xQueueReceive() function
- * to read the flag value from the queue.
- * If the flag value changed from the last task activation the LED is toggled.
- *
- * Also a check function is implemented to check if the task still run properly
- */
-
-/* Scheduler include files. */
-#include "FreeRTOS.h"
-#include "task.h"
-
-/* Demo program include files. */
-#include "LED.h"
-#include "queue.h"
-#include "print.h"
-
-#define LEDToggleSTACK_SIZE (( unsigned portSHORT ) configMINIMAL_STACK_SIZE)
-#define LED_NUMBER_OF_TASKS 2
-
-/* LED toggle wait time and check definitions */
-#define LED1_Wait_Time 1000
-#define LED2_Wait_Time 100
-
-/* Task function prototypes */
-static void vLEDToggleTask1( void *pvParameters);
-static void vLEDToggleTask2( void *pvParameters);
-
-/* Port Initialization for LED's and Switch */
-static void prvLEDInit(void);
-
-/* Switch press counter */
-static unsigned portSHORT usClick = 0;
-
-/* Queue used for LED02 toggle*/
-static xQueueHandle xLEDQueue;
-
-/*xQUEUE *xLEDQueue;*/
-
-static volatile unsigned portSHORT usTask1Check = 0, usTask2Check = 0, usLEDQueue = 0;
-
-void vStartLEDToggleTasks( unsigned portBASE_TYPE uxPriority )
-{
-
-const unsigned portBASE_TYPE uxQueueSize = 4;
-
- prvLEDInit();
-
- /* Create the queue used by the Switch ISR and the second task. */
- xLEDQueue = xQueueCreate( uxQueueSize, ( unsigned portBASE_TYPE ) sizeof( unsigned portSHORT ) );
- /* create 2 LED toggle Tasks */
- xTaskCreate(vLEDToggleTask1, "LEDTog1", LEDToggleSTACK_SIZE, ( void * ) &(usTask1Check), uxPriority, NULL );
- xTaskCreate(vLEDToggleTask2, "LEDTog2", LEDToggleSTACK_SIZE, ( void * ) &xLEDQueue, uxPriority, NULL );
-}
-/*-----------------------------------------------------------*/
-
-static void vLEDToggleTask1( void *pvParameters)
-{
-static portCHAR pcLED1old;
-portSHORT sError = pdFALSE;
-volatile unsigned portSHORT *pusTaskCheckVariable;
-const portCHAR * const pcTaskFailMsg = "ERROR: LED toggle failed.\r\n";
-
- pusTaskCheckVariable = ( unsigned portSHORT * ) pvParameters;
- for(;;)
- {
- pcLED1old = LED01;
-
- vTaskDelay( LED1_Wait_Time );
- /* toggle the LED01 */
- LED01 = ~LED01;
-
- if(pcLED1old == LED01)
- {
- /* an error has occured */
- vPrintDisplayMessage( &pcTaskFailMsg );
- sError = pdTRUE;
- }
-
- if(sError != pdTRUE)
- {
- /* If a LED toggle has been made, increment the check
- variable so we know this task is still running okay. */
- ( *pusTaskCheckVariable )++;
- }
- }
-}
-/*-----------------------------------------------------------*/
-
-static void vLEDToggleTask2( void *pvParameters)
-{
-unsigned portSHORT usData, usDataOld = 0;
-xQueueHandle *pxQueue;
-
- pxQueue = ( xQueueHandle * ) pvParameters;
- for(;;)
- {
- if( xQueueReceive( *pxQueue, &usData, ( portTickType ) 0 ) == pdPASS )
- {
- if (usData != usDataOld)
- {
- LED02 = ~LED02;
- }
- usDataOld = usData;
- }
- vTaskDelay( LED2_Wait_Time );
- /* increment check variable whenever the task gets active */
- usTask2Check++;
- }
-}
-
-portBASE_TYPE xAreLEDToggleTaskStillRunning( void )
-{
-/*
- * Keep a history of the check variables so we know if they have been incremented
- * since the last call.
- */
-static unsigned portSHORT usLastTask1Check = 0;
-static unsigned portSHORT usLastTask2Check = 0;
-portBASE_TYPE xReturn = pdTRUE;
-
- /* Check the LED toggle tasks are still running by ensuring their check variables
- * are still incrementing.
- */
- if(( usTask1Check == usLastTask1Check )||(usLastTask2Check == usTask2Check))
- {
- /* The check has not incremented so an error exists. */
- xReturn = pdFALSE;
- }
-
- usLastTask1Check = usTask1Check;
- usLastTask2Check = usTask2Check;
-
- return xReturn;
-}
-/*-----------------------------------------------------------*/
-
-static void prvLEDInit(void)
-{
-/* LED Port Initialization */
- /* set Port Register */
- P7 = 0x80;
- /* set Port Mode Register */
- PM7 = 0x3F;
-
-/* Switch Pin Initialization */
- /* enable pull-up resistor */
- PU12_bit.no0 = 1;
- /* INTP0 disable */
- PMK0 = 1;
- /* INTP0 IF clear */
- PIF0 = 0;
- EGN0_bit.no0 = 1;
- /* INTP0 priority low */
- PPR10 = 0;
- PPR00 = 1;
- /* enable ext. INTP0 interrupt */
- PMK0 = 0;
-}
-/*-----------------------------------------------------------*/
-
-/* Switch ISR */
-
-#pragma vector=INTP0_vect
-__interrupt void P0_isr (void)
-{
- /* Increment Switch pressed counter */
- usClick++;
- /* Use usClick to signalize a detected Interrupt for the vLEDToggleTask2
- * to toggle the LED02.
- */
- xQueueSendFromISR( xLEDQueue, &usClick, pdFALSE );
-}
-/*-----------------------------------------------------------*/ \ No newline at end of file
diff --git a/Demo/NEC_78K0R_IAR/LEDtoggle/LED.h b/Demo/NEC_78K0R_IAR/LEDtoggle/LED.h
deleted file mode 100644
index 9d2884af..00000000
--- a/Demo/NEC_78K0R_IAR/LEDtoggle/LED.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry.
-
- This file is part of the FreeRTOS.org distribution.
-
- FreeRTOS.org is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- FreeRTOS.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with FreeRTOS.org; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- A special exception to the GPL can be applied should you wish to distribute
- a combined work that includes FreeRTOS.org, without being obliged to provide
- the source code for any proprietary components. See the licensing section
- of http://www.FreeRTOS.org for full details of how and when the exception
- can be applied.
-
- ***************************************************************************
- ***************************************************************************
- * *
- * SAVE TIME AND MONEY! We can port FreeRTOS.org to your own hardware, *
- * and even write all or part of your application on your behalf. *
- * See http://www.OpenRTOS.com for details of the services we provide to *
- * expedite your project. *
- * *
- ***************************************************************************
- ***************************************************************************
-
- Please ensure to read the configuration and relevant port sections of the
- online documentation.
-
- http://www.FreeRTOS.org - Documentation, latest information, license and
- contact details.
-
- http://www.SafeRTOS.com - A version that is certified for use in safety
- critical systems.
-
- http://www.OpenRTOS.com - Commercial support, development, porting,
- licensing and training services.
-*/
-
-#ifndef LEDTOGGLE_TASKS_H
-#define LEDTOGGLE_TASKS_H
-
-void vStartLEDToggleTasks( unsigned portBASE_TYPE uxPriority );
-portBASE_TYPE xAreLEDToggleTaskStillRunning( void );
-/* LED Pin Configuration */
-static void prvLEDinit( void );
-
-#define LED01 P7_bit.no6
-#define LED02 P7_bit.no7
-
-#endif \ No newline at end of file
diff --git a/Demo/NEC_78K0R_IAR/main.c b/Demo/NEC_78K0R_IAR/main.c
index 6824ee65..4c3342e8 100644
--- a/Demo/NEC_78K0R_IAR/main.c
+++ b/Demo/NEC_78K0R_IAR/main.c
@@ -58,9 +58,10 @@
/* Demo file headers. */
#include "int78K0R.h"
#include "PollQ.h"
-#include "LED.h"
-#include "print.h"
#include "semtest.h"
+#include "GenQTest.h"
+#include "dynamic.h"
+#include "blocktim.h"
/*
* Priority definitions for most of the tasks in the demo application. Some
@@ -69,12 +70,16 @@
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 1 )
#define mainSEMTEST_PRIORITY ( tskIDLE_PRIORITY + 1 )
-#define mainLED_TOGGLE_PRIORITY ( tskIDLE_PRIORITY + 1 )
+#define mainBUTTON_PRIORITY ( configMAX_PRIORITIES - 1 )
+#define mainGEN_QUEUE_PRIORITY ( tskIDLE_PRIORITY )
/* The period between executions of the check task. */
#define mainNO_ERROR_TOGGLE_PERIOD ( ( portTickType ) 3000 / portTICK_RATE_MS )
#define mainERROR_TOGGLE_PERIOD ( ( portTickType ) 500 / portTICK_RATE_MS )
+#define LED00 P7_bit.no6
+#define LED01 P7_bit.no7
+
/*
* 78K0R/Kx3 Option Byte Definition
* watchdog disabled, LVI enabled, OCD interface enabled
@@ -99,29 +104,31 @@ int __low_level_init(void);
extern void vRegTest1( void *pvParameters );
extern void vRegTest2( void *pvParameters );
+extern void vButtonTask( void *pvParameters );
static short sRegTestStatus = pdPASS;
portSHORT main( void )
{
/* Create the standard demo tasks. */
- vStartIntegerMathTasks( tskIDLE_PRIORITY );
vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );
vStartSemaphoreTasks(mainSEMTEST_PRIORITY);
+ vStartGenericQueueTasks( mainGEN_QUEUE_PRIORITY );
+ vStartDynamicPriorityTasks();
+ vCreateBlockTimeTasks();
+ xTaskCreate( vButtonTask, "Button", configMINIMAL_STACK_SIZE, NULL, mainBUTTON_PRIORITY, NULL );
+
/* Create the tasks defined within this file. */
xTaskCreate( vErrorChecks, "Check", configMINIMAL_STACK_SIZE, (void*)0x12345678, mainCHECK_TASK_PRIORITY, NULL );
xTaskCreate( vRegTest1, "Reg1", configMINIMAL_STACK_SIZE, NULL, 0, NULL );
xTaskCreate( vRegTest2, "Reg2", configMINIMAL_STACK_SIZE, NULL, 0, NULL );
- /* In this port, to use preemptive scheduler define configUSE_PREEMPTION
- * as 1 in FreeRTOSconfig.h. To use the cooperative scheduler define
- * configUSE_PREEMPTION as 0.
- */
+
vTaskStartScheduler();
- return 0;
+ for( ;; );
}
/*-----------------------------------------------------------*/
@@ -144,7 +151,7 @@ portTickType xToggleRate = mainNO_ERROR_TOGGLE_PERIOD, xLastWakeTime;
{
vTaskDelayUntil( &xLastWakeTime, xToggleRate );
- if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
+ if( xAreGenericQueueTasksStillRunning() != pdTRUE )
{
xToggleRate = mainERROR_TOGGLE_PERIOD;
}
@@ -158,6 +165,16 @@ portTickType xToggleRate = mainNO_ERROR_TOGGLE_PERIOD, xLastWakeTime;
{
xToggleRate = mainERROR_TOGGLE_PERIOD;
}
+
+ if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
+ {
+ xToggleRate = mainERROR_TOGGLE_PERIOD;
+ }
+
+ if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )
+ {
+ xToggleRate = mainERROR_TOGGLE_PERIOD;
+ }
if( sRegTestStatus != pdPASS )
{
@@ -165,7 +182,7 @@ portTickType xToggleRate = mainNO_ERROR_TOGGLE_PERIOD, xLastWakeTime;
}
/* Toggle the LED. */
- LED01 = !LED01;
+ LED00 = !LED00;
}
}
/*-----------------------------------------------------------*/
@@ -285,6 +302,30 @@ unsigned portCHAR resetflag = RESF;
}
/*-----------------------------------------------------------*/
+static void prvLEDInit(void)
+{
+/* LED Port Initialization */
+ /* set Port Register */
+ P7 = 0x80;
+ /* set Port Mode Register */
+ PM7 = 0x3F;
+
+/* Switch Pin Initialization */
+ /* enable pull-up resistor */
+ PU12_bit.no0 = 1;
+ /* INTP0 disable */
+ PMK0 = 1;
+ /* INTP0 IF clear */
+ PIF0 = 0;
+ EGN0_bit.no0 = 1;
+ /* INTP0 priority low */
+ PPR10 = 0;
+ PPR00 = 1;
+ /* enable ext. INTP0 interrupt */
+ PMK0 = 0;
+}
+/*-----------------------------------------------------------*/
+
void vRegTestError( void )
{
sRegTestStatus = pdFAIL;
diff --git a/Demo/NEC_78K0R_IAR/rtosdemo.dep b/Demo/NEC_78K0R_IAR/rtosdemo.dep
deleted file mode 100644
index 135fb757..00000000
--- a/Demo/NEC_78K0R_IAR/rtosdemo.dep
+++ /dev/null
@@ -1,719 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-
-<project>
- <fileVersion>2</fileVersion>
- <fileChecksum>3729116561</fileChecksum>
- <configuration>
- <name>Debug</name>
- <outputs>
- <file>$PROJ_DIR$\Debug\List\integer.lst</file>
- <file>$TOOLKIT_DIR$\inc\intrinsics.h</file>
- <file>$PROJ_DIR$\..\Common\include\print.h</file>
- <file>$PROJ_DIR$\Debug\List\list.lst</file>
- <file>$PROJ_DIR$\Debug\List\tasks.lst</file>
- <file>$PROJ_DIR$\Debug\Exe\rtosdemo.d26</file>
- <file>$PROJ_DIR$\..\..\Source\include\portable.h</file>
- <file>$PROJ_DIR$\Debug\Obj\PollQ.pbi</file>
- <file>$PROJ_DIR$\Debug\Obj\portasm.r26</file>
- <file>$PROJ_DIR$\Debug\Obj\list.r26</file>
- <file>$PROJ_DIR$\Debug\Obj\PollQ.r26</file>
- <file>$PROJ_DIR$\Debug\Obj\semtest.r26</file>
- <file>$PROJ_DIR$\Debug\Obj\port.r26</file>
- <file>$PROJ_DIR$\Debug\List\rtosdemo.map</file>
- <file>$TOOLKIT_DIR$\inc\clib\stdarg.h</file>
- <file>$PROJ_DIR$\..\..\Source\include\task.h</file>
- <file>$PROJ_DIR$\..\..\Source\include\StackMacros.h</file>
- <file>$PROJ_DIR$\Debug\Obj\main.pbi</file>
- <file>$TOOLKIT_DIR$\inc\clib\stddef.h</file>
- <file>$PROJ_DIR$\Debug\Obj\queue.pbi</file>
- <file>$PROJ_DIR$\Debug\Obj\list.pbi</file>
- <file>$TOOLKIT_DIR$\inc\clib\string.h</file>
- <file>$PROJ_DIR$\Debug\Obj\tasks.pbi</file>
- <file>$PROJ_DIR$\Debug\Obj\queue.r26</file>
- <file>$PROJ_DIR$\..\..\Source\include\croutine.h</file>
- <file>$PROJ_DIR$\Debug\List\heap_1.lst</file>
- <file>$TOOLKIT_DIR$\inc\clib\sysmac.h</file>
- <file>$TOOLKIT_DIR$\inc\clib\stdio.h</file>
- <file>$PROJ_DIR$\Debug\Obj\port.pbi</file>
- <file>$PROJ_DIR$\Debug\Obj\integer.r26</file>
- <file>$PROJ_DIR$\Debug\List\main.lst</file>
- <file>$TOOLKIT_DIR$\config\lnk78f1166_a0.xcl</file>
- <file>$PROJ_DIR$\Int78K0R\int78K0R.h</file>
- <file>$PROJ_DIR$\LEDtoggle\LED.h</file>
- <file>$PROJ_DIR$\..\..\Source\include\projdefs.h</file>
- <file>$PROJ_DIR$\FreeRTOSConfig.h</file>
- <file>$PROJ_DIR$\Debug\Obj\heap_1.pbi</file>
- <file>$PROJ_DIR$\Debug\Obj\tasks.r26</file>
- <file>$PROJ_DIR$\Debug\Obj\RegTest.r26</file>
- <file>$PROJ_DIR$\Debug\List\RegTest.lst</file>
- <file>$PROJ_DIR$\Debug\List\queue.lst</file>
- <file>$PROJ_DIR$\Debug\Obj\heap_1.r26</file>
- <file>$PROJ_DIR$\main.c</file>
- <file>$PROJ_DIR$\..\..\Source\include\semphr.h</file>
- <file>$PROJ_DIR$\..\Common\include\PollQ.h</file>
- <file>$PROJ_DIR$\Debug\List\port.lst</file>
- <file>$PROJ_DIR$\..\Common\include\semtest.h</file>
- <file>$TOOLKIT_DIR$\inc\io78f1166_a0.h</file>
- <file>$PROJ_DIR$\Debug\Obj\integer.pbi</file>
- <file>$PROJ_DIR$\..\..\Source\portable\IAR\78K0R\portmacro.h</file>
- <file>$PROJ_DIR$\..\..\Source\include\FreeRTOS.h</file>
- <file>$PROJ_DIR$\..\..\Source\include\list.h</file>
- <file>$TOOLKIT_DIR$\inc\clib\stdlib.h</file>
- <file>$PROJ_DIR$\Debug\Obj\rtosdemo.pbd</file>
- <file>$PROJ_DIR$\..\..\Source\include\queue.h</file>
- <file>$TOOLKIT_DIR$\inc\io78f1166_a0_ext.h</file>
- <file>$PROJ_DIR$\Debug\List\portasm.lst</file>
- <file>$PROJ_DIR$\Debug\Obj\semtest.pbi</file>
- <file>$PROJ_DIR$\Debug\Obj\main.r26</file>
- <file>$PROJ_DIR$\..\Common\include\integer.h</file>
- <file>$TOOLKIT_DIR$\lib\clib\cl78kff3.r26</file>
- <file>$PROJ_DIR$\..\Common\Full\PollQ.c</file>
- <file>$PROJ_DIR$\RegTest.s26</file>
- <file>$PROJ_DIR$\..\..\Source\list.c</file>
- <file>$PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c</file>
- <file>$PROJ_DIR$\..\..\Source\portable\IAR\78K0R\port.c</file>
- <file>$PROJ_DIR$\..\..\Source\portable\IAR\78K0R\portasm.s26</file>
- <file>$PROJ_DIR$\..\..\Source\queue.c</file>
- <file>$PROJ_DIR$\..\..\Source\tasks.c</file>
- <file>$PROJ_DIR$\..\Common\Minimal\integer.c</file>
- <file>$PROJ_DIR$\Debug\List\PollQ.lst</file>
- <file>$PROJ_DIR$\Debug\List\semtest.lst</file>
- <file>$PROJ_DIR$\..\Common\Minimal\semtest.c</file>
- <file>$PROJ_DIR$\..\Common\Minimal\PollQ.c</file>
- </outputs>
- <file>
- <name>[ROOT_NODE]</name>
- <outputs>
- <tool>
- <name>XLINK</name>
- <file> 5 13</file>
- </tool>
- </outputs>
- </file>
- <file>
- <name>$PROJ_DIR$\Debug\Exe\rtosdemo.d26</name>
- <outputs>
- <tool>
- <name>XLINK</name>
- <file> 13</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>XLINK</name>
- <file> 31 10 38 41 29 9 58 12 8 23 11 37 60</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\main.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 30 58</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 17</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 26 21 50 18 34 35 47 55 1 6 49 15 51 32 44 33 2 46</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 26 21 50 18 34 35 47 55 1 6 49 15 51 32 44 33 2 46</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\Debug\Obj\rtosdemo.pbd</name>
- <inputs>
- <tool>
- <name>BILINK</name>
- <file> 7 36 48 20 17 28 19 57 22</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\RegTest.s26</name>
- <outputs>
- <tool>
- <name>A78000</name>
- <file> 38 39</file>
- </tool>
- </outputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\Source\list.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 3 9</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 20</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 26 50 18 34 35 47 55 1 6 49 51</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 26 50 18 34 35 47 55 1 6 49 51</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 25 41</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 36</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 26 50 18 34 35 47 55 1 6 49 15 51</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 26 50 18 34 35 47 55 1 6 49 15 51</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\Source\portable\IAR\78K0R\port.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 45 12</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 28</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 26 50 18 34 35 47 55 1 6 49 15 51</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 26 50 18 34 35 47 55 1 6 49 15 51</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\Source\portable\IAR\78K0R\portasm.s26</name>
- <outputs>
- <tool>
- <name>A78000</name>
- <file> 8 56</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>A78000</name>
- <file> 35</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\Source\queue.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 40 23</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 19</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 26 21 50 18 34 35 47 55 1 6 49 15 51 24</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 26 21 50 18 34 35 47 55 1 6 49 15 51 24</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\Source\tasks.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 4 37</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 22</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 27 14 26 52 21 50 18 34 35 47 55 1 6 49 15 51 16</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 27 14 26 52 21 50 18 34 35 47 55 1 6 49 15 51 16</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Common\Minimal\integer.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 0 29</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 48</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 26 50 18 34 35 47 55 1 6 49 15 51 59</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 26 50 18 34 35 47 55 1 6 49 15 51 59</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Common\Minimal\semtest.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 71 11</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 57</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 26 50 18 34 35 47 55 1 6 49 15 51 43 54 46</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 26 50 18 34 35 47 55 1 6 49 15 51 43 54 46</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Common\Minimal\PollQ.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 70 10</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 7</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 26 50 18 34 35 47 55 1 6 49 15 51 54 44</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 26 50 18 34 35 47 55 1 6 49 15 51 54 44</file>
- </tool>
- </inputs>
- </file>
- </configuration>
- <configuration>
- <name>Release</name>
- <outputs>
- <file>$TOOLKIT_DIR$\inc\intrinsics.h</file>
- <file>$PROJ_DIR$\Release\Obj\int78K0R.r26</file>
- <file>$PROJ_DIR$\Release\Obj\tasks.r26</file>
- <file>$PROJ_DIR$\Release\Obj\portmacro.r26</file>
- <file>$PROJ_DIR$\Release\Obj\queue.pbi</file>
- <file>$PROJ_DIR$\Release\Exe\rtosdemo.a26</file>
- <file>$PROJ_DIR$\Release\Obj\PollQ.r26</file>
- <file>$PROJ_DIR$\Release\Obj\LED.pbi</file>
- <file>$PROJ_DIR$\..\Common\include\print.h</file>
- <file>$PROJ_DIR$\..\..\Source\include\portable.h</file>
- <file>$PROJ_DIR$\..\Common\Full\semtest.c</file>
- <file>$TOOLKIT_DIR$\inc\clib\stdarg.h</file>
- <file>$PROJ_DIR$\..\..\Source\include\task.h</file>
- <file>$TOOLKIT_DIR$\inc\clib\stddef.h</file>
- <file>$TOOLKIT_DIR$\inc\clib\string.h</file>
- <file>$PROJ_DIR$\Release\Obj\list.r26</file>
- <file>$PROJ_DIR$\Release\Obj\print.pbi</file>
- <file>$PROJ_DIR$\Release\Obj\rtosdemo.pbd</file>
- <file>$PROJ_DIR$\Release\Obj\PollQ.pbi</file>
- <file>$PROJ_DIR$\..\..\Source\include\croutine.h</file>
- <file>$PROJ_DIR$\Int78K0R\int78K0R.c</file>
- <file>$TOOLKIT_DIR$\inc\clib\sysmac.h</file>
- <file>$TOOLKIT_DIR$\inc\clib\stdio.h</file>
- <file>$TOOLKIT_DIR$\config\lnk78f1166_a0.xcl</file>
- <file>$PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\portmacro.s26</file>
- <file>$PROJ_DIR$\Int78K0R\int78K0R.h</file>
- <file>$PROJ_DIR$\LEDtoggle\LED.h</file>
- <file>$PROJ_DIR$\..\..\Source\include\projdefs.h</file>
- <file>$PROJ_DIR$\FreeRTOSConfig.h</file>
- <file>$PROJ_DIR$\main.c</file>
- <file>$PROJ_DIR$\Release\Obj\port.r26</file>
- <file>$PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\portmacro.h</file>
- <file>$PROJ_DIR$\Release\Obj\tasks.pbi</file>
- <file>$PROJ_DIR$\Release\Obj\print.r26</file>
- <file>$PROJ_DIR$\Release\Obj\port.pbi</file>
- <file>$PROJ_DIR$\Release\Obj\heap_1.pbi</file>
- <file>$PROJ_DIR$\..\..\Source\include\semphr.h</file>
- <file>$PROJ_DIR$\..\Common\include\PollQ.h</file>
- <file>$PROJ_DIR$\LEDtoggle\LED.c</file>
- <file>$PROJ_DIR$\..\Common\include\semtest.h</file>
- <file>$PROJ_DIR$\Release\Obj\LED.r26</file>
- <file>$PROJ_DIR$\Release\Obj\main.r26</file>
- <file>$PROJ_DIR$\Release\Obj\semtest.pbi</file>
- <file>$PROJ_DIR$\Release\Obj\list.pbi</file>
- <file>$PROJ_DIR$\Release\Obj\heap_1.r26</file>
- <file>$PROJ_DIR$\Release\Obj\main.pbi</file>
- <file>$PROJ_DIR$\Release\Obj\semtest.r26</file>
- <file>$PROJ_DIR$\Release\Obj\int78K0R.pbi</file>
- <file>$PROJ_DIR$\Release\Obj\queue.r26</file>
- <file>$TOOLKIT_DIR$\inc\io78f1166_a0.h</file>
- <file>$PROJ_DIR$\..\..\Source\include\FreeRTOS.h</file>
- <file>$PROJ_DIR$\..\..\Source\include\list.h</file>
- <file>$TOOLKIT_DIR$\inc\clib\stdlib.h</file>
- <file>$PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\port.c</file>
- <file>$PROJ_DIR$\..\..\Source\include\queue.h</file>
- <file>$TOOLKIT_DIR$\inc\io78f1166_a0_ext.h</file>
- <file>$PROJ_DIR$\..\Common\include\integer.h</file>
- <file>$TOOLKIT_DIR$\lib\clib\cl78kff3.r26</file>
- <file>$PROJ_DIR$\..\Common\Full\PollQ.c</file>
- <file>$PROJ_DIR$\..\Common\Full\print.c</file>
- <file>$PROJ_DIR$\..\..\Source\list.c</file>
- <file>$PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c</file>
- <file>$PROJ_DIR$\..\..\Source\queue.c</file>
- <file>$PROJ_DIR$\..\..\Source\tasks.c</file>
- </outputs>
- <file>
- <name>[ROOT_NODE]</name>
- <outputs>
- <tool>
- <name>XLINK</name>
- <file> 5</file>
- </tool>
- </outputs>
- </file>
- <file>
- <name>$PROJ_DIR$\Release\Exe\rtosdemo.a26</name>
- <inputs>
- <tool>
- <name>XLINK</name>
- <file> 23 40 6 44 1 15 41 30 3 33 48 46 2 57</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Common\Full\semtest.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 46</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 42</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 12 51 36 54 39 8</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 12 51 36 54 39 8</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\Release\Obj\rtosdemo.pbd</name>
- <inputs>
- <tool>
- <name>BILINK</name>
- <file> 7 18 35 47 43 45 34 16 4 42 32</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\Int78K0R\int78K0R.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 1</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 47</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 12 51 8 56</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 12 51 8 56</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\portmacro.s26</name>
- <outputs>
- <tool>
- <name>A78000</name>
- <file> 3</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>A78000</name>
- <file> 28</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\main.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 41</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 45</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 21 14 50 13 27 28 49 55 0 9 31 12 51 25 37 26 8 39</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 21 14 50 13 27 28 49 55 0 9 31 12 51 25 37 26 8 39</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\LEDtoggle\LED.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 40</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 7</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 50 13 21 27 28 49 55 0 9 31 12 51 26 54 8</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 50 13 21 27 28 49 55 0 9 31 12 51 26 54 8</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\port.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 30</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 34</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 12 51</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 12 51</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Common\Full\PollQ.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 6</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 18</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 12 51 54 8 37</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 12 51 54 8 37</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Common\Full\print.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 33</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 16</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 54 8</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 54 8</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\Source\list.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 15</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 43</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 51</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 51</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 44</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 35</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 12 51</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 21 50 13 27 28 49 55 0 9 31 12 51</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\Source\queue.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 48</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 4</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 52 21 14 50 13 27 28 49 55 0 9 31 12 51 19</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 52 21 14 50 13 27 28 49 55 0 9 31 12 51 19</file>
- </tool>
- </inputs>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\Source\tasks.c</name>
- <outputs>
- <tool>
- <name>ICC78000</name>
- <file> 2</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 32</file>
- </tool>
- </outputs>
- <inputs>
- <tool>
- <name>ICC78000</name>
- <file> 22 11 21 52 14 50 13 27 28 49 55 0 9 31 12 51</file>
- </tool>
- <tool>
- <name>BICOMP</name>
- <file> 22 11 21 52 14 50 13 27 28 49 55 0 9 31 12 51</file>
- </tool>
- </inputs>
- </file>
- <forcedrebuild>
- <name>[MULTI_TOOL]</name>
- <tool>XLINK</tool>
- </forcedrebuild>
- </configuration>
-</project>
-
-
diff --git a/Demo/NEC_78K0R_IAR/rtosdemo.ewp b/Demo/NEC_78K0R_IAR/rtosdemo.ewp
index c655692d..09d372ec 100644
--- a/Demo/NEC_78K0R_IAR/rtosdemo.ewp
+++ b/Demo/NEC_78K0R_IAR/rtosdemo.ewp
@@ -314,7 +314,6 @@
<name>CCIncludePath2</name>
<state>$PROJ_DIR$\..\..\Source\include</state>
<state>$PROJ_DIR$\..\Common\include</state>
- <state>$PROJ_DIR$\LEDtoggle</state>
<state>$PROJ_DIR$\Int78K0R</state>
<state>$PROJ_DIR$</state>
</option>
@@ -527,9 +526,7 @@
</option>
<option>
<name>OAIncludePath2</name>
- <state>$PROJ_DIR$\..\..\Source\include</state>
- <state>$PROJ_DIR$\..\Common\include</state>
- <state>$PROJ_DIR$\LEDtoggle</state>
+ <state>$PROJ_DIR$\..\..\Source\portable\IAR\78K0R</state>
<state>$PROJ_DIR$</state>
</option>
<option>
@@ -1806,11 +1803,32 @@
</configuration>
<group>
<name>Demo Source</name>
+ <group>
+ <name>StandardDemos</name>
+ <file>
+ <name>$PROJ_DIR$\..\Common\Minimal\blocktim.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Common\Minimal\dynamic.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Common\Minimal\GenQTest.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Common\Minimal\PollQ.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Common\Minimal\semtest.c</name>
+ </file>
+ </group>
<file>
- <name>$PROJ_DIR$\main.c</name>
+ <name>$PROJ_DIR$\ButtonISR.s26</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\ButtonTask.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\Common\Minimal\PollQ.c</name>
+ <name>$PROJ_DIR$\main.c</name>
</file>
<file>
<name>$PROJ_DIR$\RegTest.s26</name>
@@ -1837,12 +1855,6 @@
<name>$PROJ_DIR$\..\..\Source\tasks.c</name>
</file>
</group>
- <file>
- <name>$PROJ_DIR$\..\Common\Minimal\integer.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Common\Minimal\semtest.c</name>
- </file>
</project>
diff --git a/Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt b/Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt
index 52b46aeb..0cb1b7a6 100644
--- a/Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt
+++ b/Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt
@@ -3,20 +3,20 @@
<Project>
<Desktop>
<Static>
- <Debug-Log/>
+ <Debug-Log><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Build</Factory></Window><Window><Factory>Breakpoints</Factory></Window><Window><Factory>Watch</Factory></Window></Windows></PreferedWindows></Debug-Log>
<Build>
<ColumnWidth0>20</ColumnWidth0>
<ColumnWidth1>1216</ColumnWidth1>
<ColumnWidth2>324</ColumnWidth2>
<ColumnWidth3>81</ColumnWidth3>
- </Build>
+ <PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Debug-Log</Factory></Window><Window><Factory>Breakpoints</Factory></Window><Window><Factory>Watch</Factory></Window></Windows></PreferedWindows></Build>
<Workspace>
<ColumnWidths>
- <Column0>138</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
+ <Column0>181</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
</Workspace>
<Disassembly>
<PreferedWindows>
@@ -28,27 +28,11 @@
<MixedMode>1</MixedMode><CodeCovShow>0</CodeCovShow></Disassembly>
- <Register/><Watch><Format><struct_types/><watch_formats/></Format><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><Column0>203</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></Watch><Memory><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory></Static>
+ <Register><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></Register><Watch><Format><struct_types/><watch_formats/></Format><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Debug-Log</Factory></Window><Window><Factory>Build</Factory></Window><Window><Factory>Breakpoints</Factory></Window></Windows></PreferedWindows><Column0>203</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></Watch><Memory><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory><Breakpoints><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Debug-Log</Factory></Window><Window><Factory>Build</Factory></Window><Window><Factory>Watch</Factory></Window></Windows></PreferedWindows></Breakpoints></Static>
<Windows>
- <Wnd0>
- <Tabs>
- <Tab>
- <Identity>TabID-15892-1978</Identity>
- <TabName>Debug Log</TabName>
- <Factory>Debug-Log</Factory>
- <Session/>
- </Tab>
- <Tab>
- <Identity>TabID-15370-1988</Identity>
- <TabName>Build</TabName>
- <Factory>Build</Factory>
- <Session/>
- </Tab>
- <Tab><Identity>TabID-15381-14004</Identity><TabName>Breakpoints</TabName><Factory>Breakpoints</Factory></Tab><Tab><Identity>TabID-30955-22315</Identity><TabName>Watch</TabName><Factory>Watch</Factory><Session><Expressions><Expression><Expression>usCriticalNesting</Expression></Expression><Expression><Expression>pxCurrentTCB</Expression></Expression><Expression><Expression>pxTopOfStack</Expression></Expression></Expressions><TabId>1</TabId><Column0>203</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></Session></Tab></Tabs>
-
- <SelectedTab>0</SelectedTab></Wnd0><Wnd4>
+ <Wnd1>
<Tabs>
<Tab>
<Identity>TabID-26641-1982</Identity>
@@ -60,20 +44,20 @@
</Tab>
</Tabs>
- <SelectedTab>0</SelectedTab></Wnd4><Wnd5><Tabs><Tab><Identity>TabID-29701-24386</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd5><Wnd6><Tabs><Tab><Identity>TabID-10381-31310</Identity><TabName>Register</TabName><Factory>Register</Factory><Session><REG1>0</REG1><REG2>0</REG2><Group>0</Group><States>1</States><State0>PSW</State0></Session></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd6><Wnd7><Tabs><Tab><Identity>TabID-32148-30071</Identity><TabName>Memory</TabName><Factory>Memory</Factory><Session><ZoneNumber>5</ZoneNumber><SelectionAnchor>103624864d</SelectionAnchor><SelectionEnd>103624864d</SelectionEnd><UnitsPerGroup>1</UnitsPerGroup><EndianMode>0</EndianMode><DataCovEnabled>0</DataCovEnabled><DataCovShown>0</DataCovShown><HScroll>064d</HScroll><VScroll>6475864d</VScroll></Session></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd7></Windows>
+ <SelectedTab>0</SelectedTab></Wnd1><Wnd4><Tabs><Tab><Identity>TabID-7145-8325</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab><Tab><Identity>TabID-6162-8753</Identity><TabName>Watch</TabName><Factory>Watch</Factory><Session><Expressions><Expression><Expression>pvReturn</Expression></Expression><Expression><Expression>xNextFreeByte</Expression></Expression></Expressions><TabId>0</TabId><Column0>203</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></Session></Tab><Tab><Identity>TabID-24881-24777</Identity><TabName>Breakpoints</TabName><Factory>Breakpoints</Factory></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd4><Wnd5><Tabs><Tab><Identity>TabID-935-8851</Identity><TabName>Disassembly</TabName><Factory>Disassembly</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd5></Windows>
<Editor>
- <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\port.c</Filename><XPos>0</XPos><YPos>104</YPos><SelStart>4766</SelStart><SelEnd>4766</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\main.c</Filename><XPos>0</XPos><YPos>115</YPos><SelStart>4695</SelStart><SelEnd>4695</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\RegTest.s26</Filename><XPos>0</XPos><YPos>57</YPos><SelStart>2622</SelStart><SelEnd>2622</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\tasks.c</Filename><XPos>0</XPos><YPos>1207</YPos><SelStart>38811</SelStart><SelEnd>38811</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\portasm.s26</Filename><XPos>0</XPos><YPos>153</YPos><SelStart>6500</SelStart><SelEnd>6500</SelEnd></Tab><ActiveTab>4</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\list.c</Filename><XPos>0</XPos><YPos>136</YPos><SelStart>6044</SelStart><SelEnd>6044</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
+ <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\main.c</Filename><XPos>0</XPos><YPos>91</YPos><SelStart>4068</SelStart><SelEnd>4068</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\SwitchISR.s26.c</Filename><XPos>0</XPos><YPos>20</YPos><SelStart>1732</SelStart><SelEnd>1749</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\portasm.s26</Filename><XPos>0</XPos><YPos>36</YPos><SelStart>2187</SelStart><SelEnd>2187</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\portmacro.h</Filename><XPos>0</XPos><YPos>39</YPos><SelStart>4776</SelStart><SelEnd>4776</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\ISR_Support.h</Filename><XPos>0</XPos><YPos>24</YPos><SelStart>1618</SelStart><SelEnd>1618</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\ButtonTask.c</Filename><XPos>0</XPos><YPos>44</YPos><SelStart>2364</SelStart><SelEnd>2364</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\ButtonISR.s26</Filename><XPos>0</XPos><YPos>23</YPos><SelStart>1785</SelStart><SelEnd>1785</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\blocktim.c</Filename><XPos>0</XPos><YPos>430</YPos><SelStart>15217</SelStart><SelEnd>15251</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions>
- <Top><Row0><Sizes><Toolbar-00aa9b40><key>iaridepm.enu1</key></Toolbar-00aa9b40><Toolbar-029980a0><key>debuggergui.enu1</key></Toolbar-029980a0></Sizes></Row0></Top><Left><Row0><Sizes><Wnd4><Rect><Top>-2</Top><Left>-2</Left><Bottom>496</Bottom><Right>212</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>142857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>152857</sizeVertCX><sizeVertCY>507128</sizeVertCY></Rect></Wnd4></Sizes></Row0></Left><Right><Row0><Sizes><Wnd6><Rect><Top>-2</Top><Left>-2</Left><Bottom>496</Bottom><Right>281</Right><x>-2</x><y>-2</y><xscreen>1404</xscreen><yscreen>200</yscreen><sizeHorzCX>1002857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>202143</sizeVertCX><sizeVertCY>507128</sizeVertCY></Rect></Wnd6></Sizes></Row0><Row1><Sizes><Wnd5><Rect><Top>-2</Top><Left>279</Left><Bottom>496</Bottom><Right>738</Right><x>279</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>142857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>327857</sizeVertCX><sizeVertCY>507128</sizeVertCY></Rect></Wnd5></Sizes></Row1></Right><Bottom><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>244</Bottom><Right>1402</Right><x>-2</x><y>-2</y><xscreen>1404</xscreen><yscreen>246</yscreen><sizeHorzCX>1002857</sizeHorzCX><sizeHorzCY>250509</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd0></Sizes></Row0><Row1><Sizes><Wnd7><Rect><Top>242</Top><Left>-2</Left><Bottom>442</Bottom><Right>1402</Right><x>-2</x><y>242</y><xscreen>1404</xscreen><yscreen>200</yscreen><sizeHorzCX>1002857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd7></Sizes></Row1></Bottom><Float><Sizes/></Float></Positions>
+ <Top><Row0><Sizes><Toolbar-00aa9c38><key>iaridepm.enu1</key></Toolbar-00aa9c38><Toolbar-03afbbc8><key>debuggergui.enu1</key></Toolbar-03afbbc8></Sizes></Row0></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>255</Right><x>-2</x><y>-2</y><xscreen>240</xscreen><yscreen>200</yscreen><sizeHorzCX>142857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>152976</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes><Wnd5><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>633</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>377976</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd5></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd4><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd4></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Project>
diff --git a/Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt b/Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt
index a7716a38..68fda64b 100644
--- a/Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt
+++ b/Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt
@@ -12,7 +12,7 @@
- <Column0>218</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
+ <Column0>277</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
</Workspace>
<Build>
@@ -32,7 +32,7 @@
<Factory>Workspace</Factory>
<Session>
- <NodeDict><ExpandedNode>rtosdemo</ExpandedNode><ExpandedNode>rtosdemo/Demo Source</ExpandedNode><ExpandedNode>rtosdemo/Kernel Source</ExpandedNode></NodeDict></Session>
+ <NodeDict><ExpandedNode>rtosdemo</ExpandedNode><ExpandedNode>rtosdemo/Demo Source</ExpandedNode><ExpandedNode>rtosdemo/Demo Source/StandardDemos</ExpandedNode><ExpandedNode>rtosdemo/Kernel Source</ExpandedNode></NodeDict></Session>
</Tab>
</Tabs>
@@ -52,14 +52,14 @@
- <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\port.c</Filename><XPos>0</XPos><YPos>104</YPos><SelStart>4766</SelStart><SelEnd>4766</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\main.c</Filename><XPos>0</XPos><YPos>115</YPos><SelStart>4695</SelStart><SelEnd>4695</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\RegTest.s26</Filename><XPos>0</XPos><YPos>57</YPos><SelStart>2622</SelStart><SelEnd>2622</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\tasks.c</Filename><XPos>0</XPos><YPos>1207</YPos><SelStart>38811</SelStart><SelEnd>38811</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\portasm.s26</Filename><XPos>0</XPos><YPos>153</YPos><SelStart>6053</SelStart><SelEnd>6053</SelEnd></Tab><ActiveTab>4</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\list.c</Filename><XPos>0</XPos><YPos>136</YPos><SelStart>6044</SelStart><SelEnd>6044</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
+ <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\main.c</Filename><XPos>0</XPos><YPos>91</YPos><SelStart>4068</SelStart><SelEnd>4068</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\SwitchISR.s26.c</Filename><XPos>0</XPos><YPos>20</YPos><SelStart>1732</SelStart><SelEnd>1749</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\portasm.s26</Filename><XPos>0</XPos><YPos>36</YPos><SelStart>2187</SelStart><SelEnd>2187</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\portmacro.h</Filename><XPos>0</XPos><YPos>39</YPos><SelStart>4776</SelStart><SelEnd>4776</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\ISR_Support.h</Filename><XPos>0</XPos><YPos>24</YPos><SelStart>1618</SelStart><SelEnd>1618</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\ButtonTask.c</Filename><XPos>0</XPos><YPos>44</YPos><SelStart>2364</SelStart><SelEnd>2364</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\ButtonISR.s26</Filename><XPos>0</XPos><YPos>23</YPos><SelStart>1785</SelStart><SelEnd>1785</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\blocktim.c</Filename><XPos>0</XPos><YPos>430</YPos><SelStart>15217</SelStart><SelEnd>15251</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions>
- <Top><Row0><Sizes><Toolbar-00aa9b40><key>iaridepm.enu1</key></Toolbar-00aa9b40></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>735</Bottom><Right>292</Right><x>-2</x><y>-2</y><xscreen>182</xscreen><yscreen>205</yscreen><sizeHorzCX>130000</sizeHorzCX><sizeHorzCY>208758</sizeHorzCY><sizeVertCX>210000</sizeVertCX><sizeVertCY>750509</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>203</Bottom><Right>1402</Right><x>-2</x><y>-2</y><xscreen>1404</xscreen><yscreen>205</yscreen><sizeHorzCX>1002857</sizeHorzCX><sizeHorzCY>208758</sizeHorzCY><sizeVertCX>130000</sizeVertCX><sizeVertCY>208758</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
+ <Top><Row0><Sizes><Toolbar-00aa9c38><key>iaridepm.enu1</key></Toolbar-00aa9c38></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>735</Bottom><Right>351</Right><x>-2</x><y>-2</y><xscreen>218</xscreen><yscreen>205</yscreen><sizeHorzCX>129762</sizeHorzCX><sizeHorzCY>208758</sizeHorzCY><sizeVertCX>210119</sizeVertCX><sizeVertCY>750509</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>203</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>205</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>208758</sizeHorzCY><sizeVertCX>129762</sizeVertCX><sizeVertCY>208758</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Workspace>