From a0549fde2b2a268e49030e4102b9725d005327b6 Mon Sep 17 00:00:00 2001 From: RichardBarry Date: Wed, 4 Feb 2009 13:07:16 +0000 Subject: [PATCH] Continue 78K0R development. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@672 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- Demo/NEC_78K0R_IAR/ButtonISR.s26 | 55 ++ .../{Int78K0R/int78K0R.h => ButtonTask.c} | 43 +- Demo/NEC_78K0R_IAR/FreeRTOSConfig.h | 11 +- Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.c | 353 --------- Demo/NEC_78K0R_IAR/LEDtoggle/LED.c | 234 ------ Demo/NEC_78K0R_IAR/LEDtoggle/LED.h | 61 -- Demo/NEC_78K0R_IAR/main.c | 63 +- Demo/NEC_78K0R_IAR/rtosdemo.dep | 719 ------------------ Demo/NEC_78K0R_IAR/rtosdemo.ewp | 36 +- Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt | 32 +- Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt | 8 +- 11 files changed, 182 insertions(+), 1433 deletions(-) create mode 100644 Demo/NEC_78K0R_IAR/ButtonISR.s26 rename Demo/NEC_78K0R_IAR/{Int78K0R/int78K0R.h => ButtonTask.c} (71%) delete mode 100644 Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.c delete mode 100644 Demo/NEC_78K0R_IAR/LEDtoggle/LED.c delete mode 100644 Demo/NEC_78K0R_IAR/LEDtoggle/LED.h delete mode 100644 Demo/NEC_78K0R_IAR/rtosdemo.dep diff --git a/Demo/NEC_78K0R_IAR/ButtonISR.s26 b/Demo/NEC_78K0R_IAR/ButtonISR.s26 new file mode 100644 index 000000000..9ddf25772 --- /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 similarity index 71% rename from Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.h rename to Demo/NEC_78K0R_IAR/ButtonTask.c index 2bd33182e..a15202cd8 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 ef7643021..7c4f72f78 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 68ffabd6c..000000000 --- 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 - *
- */ - -/* -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 - -/* 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 f25640f7a..000000000 --- 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 9d2884af8..000000000 --- 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 6824ee658..4c3342e87 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 135fb7577..000000000 --- a/Demo/NEC_78K0R_IAR/rtosdemo.dep +++ /dev/null @@ -1,719 +0,0 @@ - - - - 2 - 3729116561 - - Debug - - $PROJ_DIR$\Debug\List\integer.lst - $TOOLKIT_DIR$\inc\intrinsics.h - $PROJ_DIR$\..\Common\include\print.h - $PROJ_DIR$\Debug\List\list.lst - $PROJ_DIR$\Debug\List\tasks.lst - $PROJ_DIR$\Debug\Exe\rtosdemo.d26 - $PROJ_DIR$\..\..\Source\include\portable.h - $PROJ_DIR$\Debug\Obj\PollQ.pbi - $PROJ_DIR$\Debug\Obj\portasm.r26 - $PROJ_DIR$\Debug\Obj\list.r26 - $PROJ_DIR$\Debug\Obj\PollQ.r26 - $PROJ_DIR$\Debug\Obj\semtest.r26 - $PROJ_DIR$\Debug\Obj\port.r26 - $PROJ_DIR$\Debug\List\rtosdemo.map - $TOOLKIT_DIR$\inc\clib\stdarg.h - $PROJ_DIR$\..\..\Source\include\task.h - $PROJ_DIR$\..\..\Source\include\StackMacros.h - $PROJ_DIR$\Debug\Obj\main.pbi - $TOOLKIT_DIR$\inc\clib\stddef.h - $PROJ_DIR$\Debug\Obj\queue.pbi - $PROJ_DIR$\Debug\Obj\list.pbi - $TOOLKIT_DIR$\inc\clib\string.h - $PROJ_DIR$\Debug\Obj\tasks.pbi - $PROJ_DIR$\Debug\Obj\queue.r26 - $PROJ_DIR$\..\..\Source\include\croutine.h - $PROJ_DIR$\Debug\List\heap_1.lst - $TOOLKIT_DIR$\inc\clib\sysmac.h - $TOOLKIT_DIR$\inc\clib\stdio.h - $PROJ_DIR$\Debug\Obj\port.pbi - $PROJ_DIR$\Debug\Obj\integer.r26 - $PROJ_DIR$\Debug\List\main.lst - $TOOLKIT_DIR$\config\lnk78f1166_a0.xcl - $PROJ_DIR$\Int78K0R\int78K0R.h - $PROJ_DIR$\LEDtoggle\LED.h - $PROJ_DIR$\..\..\Source\include\projdefs.h - $PROJ_DIR$\FreeRTOSConfig.h - $PROJ_DIR$\Debug\Obj\heap_1.pbi - $PROJ_DIR$\Debug\Obj\tasks.r26 - $PROJ_DIR$\Debug\Obj\RegTest.r26 - $PROJ_DIR$\Debug\List\RegTest.lst - $PROJ_DIR$\Debug\List\queue.lst - $PROJ_DIR$\Debug\Obj\heap_1.r26 - $PROJ_DIR$\main.c - $PROJ_DIR$\..\..\Source\include\semphr.h - $PROJ_DIR$\..\Common\include\PollQ.h - $PROJ_DIR$\Debug\List\port.lst - $PROJ_DIR$\..\Common\include\semtest.h - $TOOLKIT_DIR$\inc\io78f1166_a0.h - $PROJ_DIR$\Debug\Obj\integer.pbi - $PROJ_DIR$\..\..\Source\portable\IAR\78K0R\portmacro.h - $PROJ_DIR$\..\..\Source\include\FreeRTOS.h - $PROJ_DIR$\..\..\Source\include\list.h - $TOOLKIT_DIR$\inc\clib\stdlib.h - $PROJ_DIR$\Debug\Obj\rtosdemo.pbd - $PROJ_DIR$\..\..\Source\include\queue.h - $TOOLKIT_DIR$\inc\io78f1166_a0_ext.h - $PROJ_DIR$\Debug\List\portasm.lst - $PROJ_DIR$\Debug\Obj\semtest.pbi - $PROJ_DIR$\Debug\Obj\main.r26 - $PROJ_DIR$\..\Common\include\integer.h - $TOOLKIT_DIR$\lib\clib\cl78kff3.r26 - $PROJ_DIR$\..\Common\Full\PollQ.c - $PROJ_DIR$\RegTest.s26 - $PROJ_DIR$\..\..\Source\list.c - $PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c - $PROJ_DIR$\..\..\Source\portable\IAR\78K0R\port.c - $PROJ_DIR$\..\..\Source\portable\IAR\78K0R\portasm.s26 - $PROJ_DIR$\..\..\Source\queue.c - $PROJ_DIR$\..\..\Source\tasks.c - $PROJ_DIR$\..\Common\Minimal\integer.c - $PROJ_DIR$\Debug\List\PollQ.lst - $PROJ_DIR$\Debug\List\semtest.lst - $PROJ_DIR$\..\Common\Minimal\semtest.c - $PROJ_DIR$\..\Common\Minimal\PollQ.c - - - [ROOT_NODE] - - - XLINK - 5 13 - - - - - $PROJ_DIR$\Debug\Exe\rtosdemo.d26 - - - XLINK - 13 - - - - - XLINK - 31 10 38 41 29 9 58 12 8 23 11 37 60 - - - - - $PROJ_DIR$\main.c - - - ICC78000 - 30 58 - - - BICOMP - 17 - - - - - ICC78000 - 52 26 21 50 18 34 35 47 55 1 6 49 15 51 32 44 33 2 46 - - - BICOMP - 52 26 21 50 18 34 35 47 55 1 6 49 15 51 32 44 33 2 46 - - - - - $PROJ_DIR$\Debug\Obj\rtosdemo.pbd - - - BILINK - 7 36 48 20 17 28 19 57 22 - - - - - $PROJ_DIR$\RegTest.s26 - - - A78000 - 38 39 - - - - - $PROJ_DIR$\..\..\Source\list.c - - - ICC78000 - 3 9 - - - BICOMP - 20 - - - - - ICC78000 - 52 26 50 18 34 35 47 55 1 6 49 51 - - - BICOMP - 52 26 50 18 34 35 47 55 1 6 49 51 - - - - - $PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c - - - ICC78000 - 25 41 - - - BICOMP - 36 - - - - - ICC78000 - 52 26 50 18 34 35 47 55 1 6 49 15 51 - - - BICOMP - 52 26 50 18 34 35 47 55 1 6 49 15 51 - - - - - $PROJ_DIR$\..\..\Source\portable\IAR\78K0R\port.c - - - ICC78000 - 45 12 - - - BICOMP - 28 - - - - - ICC78000 - 52 26 50 18 34 35 47 55 1 6 49 15 51 - - - BICOMP - 52 26 50 18 34 35 47 55 1 6 49 15 51 - - - - - $PROJ_DIR$\..\..\Source\portable\IAR\78K0R\portasm.s26 - - - A78000 - 8 56 - - - - - A78000 - 35 - - - - - $PROJ_DIR$\..\..\Source\queue.c - - - ICC78000 - 40 23 - - - BICOMP - 19 - - - - - ICC78000 - 52 26 21 50 18 34 35 47 55 1 6 49 15 51 24 - - - BICOMP - 52 26 21 50 18 34 35 47 55 1 6 49 15 51 24 - - - - - $PROJ_DIR$\..\..\Source\tasks.c - - - ICC78000 - 4 37 - - - BICOMP - 22 - - - - - ICC78000 - 27 14 26 52 21 50 18 34 35 47 55 1 6 49 15 51 16 - - - BICOMP - 27 14 26 52 21 50 18 34 35 47 55 1 6 49 15 51 16 - - - - - $PROJ_DIR$\..\Common\Minimal\integer.c - - - ICC78000 - 0 29 - - - BICOMP - 48 - - - - - ICC78000 - 52 26 50 18 34 35 47 55 1 6 49 15 51 59 - - - BICOMP - 52 26 50 18 34 35 47 55 1 6 49 15 51 59 - - - - - $PROJ_DIR$\..\Common\Minimal\semtest.c - - - ICC78000 - 71 11 - - - BICOMP - 57 - - - - - ICC78000 - 52 26 50 18 34 35 47 55 1 6 49 15 51 43 54 46 - - - BICOMP - 52 26 50 18 34 35 47 55 1 6 49 15 51 43 54 46 - - - - - $PROJ_DIR$\..\Common\Minimal\PollQ.c - - - ICC78000 - 70 10 - - - BICOMP - 7 - - - - - ICC78000 - 52 26 50 18 34 35 47 55 1 6 49 15 51 54 44 - - - BICOMP - 52 26 50 18 34 35 47 55 1 6 49 15 51 54 44 - - - - - - Release - - $TOOLKIT_DIR$\inc\intrinsics.h - $PROJ_DIR$\Release\Obj\int78K0R.r26 - $PROJ_DIR$\Release\Obj\tasks.r26 - $PROJ_DIR$\Release\Obj\portmacro.r26 - $PROJ_DIR$\Release\Obj\queue.pbi - $PROJ_DIR$\Release\Exe\rtosdemo.a26 - $PROJ_DIR$\Release\Obj\PollQ.r26 - $PROJ_DIR$\Release\Obj\LED.pbi - $PROJ_DIR$\..\Common\include\print.h - $PROJ_DIR$\..\..\Source\include\portable.h - $PROJ_DIR$\..\Common\Full\semtest.c - $TOOLKIT_DIR$\inc\clib\stdarg.h - $PROJ_DIR$\..\..\Source\include\task.h - $TOOLKIT_DIR$\inc\clib\stddef.h - $TOOLKIT_DIR$\inc\clib\string.h - $PROJ_DIR$\Release\Obj\list.r26 - $PROJ_DIR$\Release\Obj\print.pbi - $PROJ_DIR$\Release\Obj\rtosdemo.pbd - $PROJ_DIR$\Release\Obj\PollQ.pbi - $PROJ_DIR$\..\..\Source\include\croutine.h - $PROJ_DIR$\Int78K0R\int78K0R.c - $TOOLKIT_DIR$\inc\clib\sysmac.h - $TOOLKIT_DIR$\inc\clib\stdio.h - $TOOLKIT_DIR$\config\lnk78f1166_a0.xcl - $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\portmacro.s26 - $PROJ_DIR$\Int78K0R\int78K0R.h - $PROJ_DIR$\LEDtoggle\LED.h - $PROJ_DIR$\..\..\Source\include\projdefs.h - $PROJ_DIR$\FreeRTOSConfig.h - $PROJ_DIR$\main.c - $PROJ_DIR$\Release\Obj\port.r26 - $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\portmacro.h - $PROJ_DIR$\Release\Obj\tasks.pbi - $PROJ_DIR$\Release\Obj\print.r26 - $PROJ_DIR$\Release\Obj\port.pbi - $PROJ_DIR$\Release\Obj\heap_1.pbi - $PROJ_DIR$\..\..\Source\include\semphr.h - $PROJ_DIR$\..\Common\include\PollQ.h - $PROJ_DIR$\LEDtoggle\LED.c - $PROJ_DIR$\..\Common\include\semtest.h - $PROJ_DIR$\Release\Obj\LED.r26 - $PROJ_DIR$\Release\Obj\main.r26 - $PROJ_DIR$\Release\Obj\semtest.pbi - $PROJ_DIR$\Release\Obj\list.pbi - $PROJ_DIR$\Release\Obj\heap_1.r26 - $PROJ_DIR$\Release\Obj\main.pbi - $PROJ_DIR$\Release\Obj\semtest.r26 - $PROJ_DIR$\Release\Obj\int78K0R.pbi - $PROJ_DIR$\Release\Obj\queue.r26 - $TOOLKIT_DIR$\inc\io78f1166_a0.h - $PROJ_DIR$\..\..\Source\include\FreeRTOS.h - $PROJ_DIR$\..\..\Source\include\list.h - $TOOLKIT_DIR$\inc\clib\stdlib.h - $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\port.c - $PROJ_DIR$\..\..\Source\include\queue.h - $TOOLKIT_DIR$\inc\io78f1166_a0_ext.h - $PROJ_DIR$\..\Common\include\integer.h - $TOOLKIT_DIR$\lib\clib\cl78kff3.r26 - $PROJ_DIR$\..\Common\Full\PollQ.c - $PROJ_DIR$\..\Common\Full\print.c - $PROJ_DIR$\..\..\Source\list.c - $PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c - $PROJ_DIR$\..\..\Source\queue.c - $PROJ_DIR$\..\..\Source\tasks.c - - - [ROOT_NODE] - - - XLINK - 5 - - - - - $PROJ_DIR$\Release\Exe\rtosdemo.a26 - - - XLINK - 23 40 6 44 1 15 41 30 3 33 48 46 2 57 - - - - - $PROJ_DIR$\..\Common\Full\semtest.c - - - ICC78000 - 46 - - - BICOMP - 42 - - - - - ICC78000 - 52 21 50 13 27 28 49 55 0 9 31 12 51 36 54 39 8 - - - BICOMP - 52 21 50 13 27 28 49 55 0 9 31 12 51 36 54 39 8 - - - - - $PROJ_DIR$\Release\Obj\rtosdemo.pbd - - - BILINK - 7 18 35 47 43 45 34 16 4 42 32 - - - - - $PROJ_DIR$\Int78K0R\int78K0R.c - - - ICC78000 - 1 - - - BICOMP - 47 - - - - - ICC78000 - 52 21 50 13 27 28 49 55 0 9 31 12 51 8 56 - - - BICOMP - 52 21 50 13 27 28 49 55 0 9 31 12 51 8 56 - - - - - $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\portmacro.s26 - - - A78000 - 3 - - - - - A78000 - 28 - - - - - $PROJ_DIR$\main.c - - - ICC78000 - 41 - - - BICOMP - 45 - - - - - ICC78000 - 52 21 14 50 13 27 28 49 55 0 9 31 12 51 25 37 26 8 39 - - - BICOMP - 52 21 14 50 13 27 28 49 55 0 9 31 12 51 25 37 26 8 39 - - - - - $PROJ_DIR$\LEDtoggle\LED.c - - - ICC78000 - 40 - - - BICOMP - 7 - - - - - ICC78000 - 50 13 21 27 28 49 55 0 9 31 12 51 26 54 8 - - - BICOMP - 50 13 21 27 28 49 55 0 9 31 12 51 26 54 8 - - - - - $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\port.c - - - ICC78000 - 30 - - - BICOMP - 34 - - - - - ICC78000 - 52 21 50 13 27 28 49 55 0 9 31 12 51 - - - BICOMP - 52 21 50 13 27 28 49 55 0 9 31 12 51 - - - - - $PROJ_DIR$\..\Common\Full\PollQ.c - - - ICC78000 - 6 - - - BICOMP - 18 - - - - - ICC78000 - 52 21 50 13 27 28 49 55 0 9 31 12 51 54 8 37 - - - BICOMP - 52 21 50 13 27 28 49 55 0 9 31 12 51 54 8 37 - - - - - $PROJ_DIR$\..\Common\Full\print.c - - - ICC78000 - 33 - - - BICOMP - 16 - - - - - ICC78000 - 52 21 50 13 27 28 49 55 0 9 31 54 8 - - - BICOMP - 52 21 50 13 27 28 49 55 0 9 31 54 8 - - - - - $PROJ_DIR$\..\..\Source\list.c - - - ICC78000 - 15 - - - BICOMP - 43 - - - - - ICC78000 - 52 21 50 13 27 28 49 55 0 9 31 51 - - - BICOMP - 52 21 50 13 27 28 49 55 0 9 31 51 - - - - - $PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c - - - ICC78000 - 44 - - - BICOMP - 35 - - - - - ICC78000 - 52 21 50 13 27 28 49 55 0 9 31 12 51 - - - BICOMP - 52 21 50 13 27 28 49 55 0 9 31 12 51 - - - - - $PROJ_DIR$\..\..\Source\queue.c - - - ICC78000 - 48 - - - BICOMP - 4 - - - - - ICC78000 - 52 21 14 50 13 27 28 49 55 0 9 31 12 51 19 - - - BICOMP - 52 21 14 50 13 27 28 49 55 0 9 31 12 51 19 - - - - - $PROJ_DIR$\..\..\Source\tasks.c - - - ICC78000 - 2 - - - BICOMP - 32 - - - - - ICC78000 - 22 11 21 52 14 50 13 27 28 49 55 0 9 31 12 51 - - - BICOMP - 22 11 21 52 14 50 13 27 28 49 55 0 9 31 12 51 - - - - - [MULTI_TOOL] - XLINK - - - - - diff --git a/Demo/NEC_78K0R_IAR/rtosdemo.ewp b/Demo/NEC_78K0R_IAR/rtosdemo.ewp index c655692d7..09d372ec5 100644 --- a/Demo/NEC_78K0R_IAR/rtosdemo.ewp +++ b/Demo/NEC_78K0R_IAR/rtosdemo.ewp @@ -314,7 +314,6 @@ CCIncludePath2 $PROJ_DIR$\..\..\Source\include $PROJ_DIR$\..\Common\include - $PROJ_DIR$\LEDtoggle $PROJ_DIR$\Int78K0R $PROJ_DIR$ @@ -527,9 +526,7 @@