From b0f97ee58ac7ba0ea00a89087c677ae86381c451 Mon Sep 17 00:00:00 2001 From: RichardBarry Date: Tue, 3 Feb 2009 19:46:32 +0000 Subject: [PATCH] First pass demo for 78K0R. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@669 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- Demo/NEC_78K0R_IAR/FreeRTOSConfig.h | 131 ++ Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.c | 353 ++++ Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.h | 58 + Demo/NEC_78K0R_IAR/LEDtoggle/LED.c | 234 +++ Demo/NEC_78K0R_IAR/LEDtoggle/LED.h | 61 + Demo/NEC_78K0R_IAR/RegTest.s26 | 150 ++ Demo/NEC_78K0R_IAR/main.c | 294 +++ Demo/NEC_78K0R_IAR/rtosdemo.dep | 830 ++++++++ Demo/NEC_78K0R_IAR/rtosdemo.ewd | 479 +++++ Demo/NEC_78K0R_IAR/rtosdemo.ewp | 1851 +++++++++++++++++ Demo/NEC_78K0R_IAR/rtosdemo.eww | 10 + Demo/NEC_78K0R_IAR/settings/rtosdemo.cspy.bat | 33 + Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt | 80 + Demo/NEC_78K0R_IAR/settings/rtosdemo.dni | 85 + Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt | 66 + 15 files changed, 4715 insertions(+) create mode 100644 Demo/NEC_78K0R_IAR/FreeRTOSConfig.h create mode 100644 Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.c create mode 100644 Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.h create mode 100644 Demo/NEC_78K0R_IAR/LEDtoggle/LED.c create mode 100644 Demo/NEC_78K0R_IAR/LEDtoggle/LED.h create mode 100644 Demo/NEC_78K0R_IAR/RegTest.s26 create mode 100644 Demo/NEC_78K0R_IAR/main.c create mode 100644 Demo/NEC_78K0R_IAR/rtosdemo.dep create mode 100644 Demo/NEC_78K0R_IAR/rtosdemo.ewd create mode 100644 Demo/NEC_78K0R_IAR/rtosdemo.ewp create mode 100644 Demo/NEC_78K0R_IAR/rtosdemo.eww create mode 100644 Demo/NEC_78K0R_IAR/settings/rtosdemo.cspy.bat create mode 100644 Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt create mode 100644 Demo/NEC_78K0R_IAR/settings/rtosdemo.dni create mode 100644 Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt diff --git a/Demo/NEC_78K0R_IAR/FreeRTOSConfig.h b/Demo/NEC_78K0R_IAR/FreeRTOSConfig.h new file mode 100644 index 000000000..ef7643021 --- /dev/null +++ b/Demo/NEC_78K0R_IAR/FreeRTOSConfig.h @@ -0,0 +1,131 @@ +/* + 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. + + *************************************************************************** + *************************************************************************** + * * + * 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 FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/* only include in C files */ +#ifdef __IAR_SYSTEMS_ICC__ + + #pragma language=extended + #pragma system_include + + #include + #include + #include + +#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 + * + * This setting must match the setting in the IAR project options. + */ +#define configMEMORY_MODE 1 + +/* + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + */ + +#define configUSE_PREEMPTION 1 + +/* only use following section for C files */ +#ifdef __IAR_SYSTEMS_ICC__ + + #define configUSE_IDLE_HOOK 0 + #define configUSE_TICK_HOOK 0 + #define configTICK_RATE_HZ ( ( portTickType ) 1000 ) + #define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 ) + #define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 75 ) + #define configTOTAL_HEAP_SIZE ( (size_t ) ( 6000 ) ) + #define configMAX_TASK_NAME_LEN ( 10 ) + #define configUSE_TRACE_FACILITY 0 + #define configUSE_16_BIT_TICKS 1 + #define configIDLE_SHOULD_YIELD 1 + #define configCHECK_FOR_STACK_OVERFLOW 0 + + /* Co-routine definitions. */ + #define configUSE_CO_ROUTINES 0 + #define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) + + /* 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_vTaskDelete 1 + #define INCLUDE_vTaskCleanUpResources 0 + #define INCLUDE_vTaskSuspend 0 + #define INCLUDE_vTaskDelayUntil 1 + #define INCLUDE_vTaskDelay 1 + + #ifdef configCLOCK_SOURCE == 0 + #define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 20000000 ) /* using the external clock source */ + #else + #define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 8000000 ) /* using the internal high speed clock */ + #endif /* configCLOCK_SOURCE */ + +#endif /* __IAR_SYSTEMS_ICC__ */ + +#endif /* FREERTOS_CONFIG_H */ + diff --git a/Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.c b/Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.c new file mode 100644 index 000000000..68ffabd6c --- /dev/null +++ b/Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.c @@ -0,0 +1,353 @@ +/* + 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/Int78K0R/int78K0R.h b/Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.h new file mode 100644 index 000000000..2bd33182e --- /dev/null +++ b/Demo/NEC_78K0R_IAR/Int78K0R/int78K0R.h @@ -0,0 +1,58 @@ +/* + 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 INTEGER_TASKS_H +#define INTEGER_TASKS_H + +void vStartIntegerMathTasks( unsigned portBASE_TYPE uxPriority ); +portBASE_TYPE xAreIntegerMathsTaskStillRunning( void ); + +#endif + + diff --git a/Demo/NEC_78K0R_IAR/LEDtoggle/LED.c b/Demo/NEC_78K0R_IAR/LEDtoggle/LED.c new file mode 100644 index 000000000..f25640f7a --- /dev/null +++ b/Demo/NEC_78K0R_IAR/LEDtoggle/LED.c @@ -0,0 +1,234 @@ +/* + 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 new file mode 100644 index 000000000..9d2884af8 --- /dev/null +++ b/Demo/NEC_78K0R_IAR/LEDtoggle/LED.h @@ -0,0 +1,61 @@ +/* + 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/RegTest.s26 b/Demo/NEC_78K0R_IAR/RegTest.s26 new file mode 100644 index 000000000..9b51b407c --- /dev/null +++ b/Demo/NEC_78K0R_IAR/RegTest.s26 @@ -0,0 +1,150 @@ +; 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. +; *************************************************************************** +; +;------------------------------------------------------------------------------ + +;------------------------------------------------------------------------------ + +#if __CORE__ != __78K0R__ + #error "This file is only for 78K0R Devices" +#endif + +; Functions implemented in this file +;------------------------------------------------------------------------------ + + PUBLIC vRegTest1 + PUBLIC vRegTest2 + +; Functions used by this file +;------------------------------------------------------------------------------ + EXTERN vRegTestError + +;------------------------------------------------------------------------------ +; Fill all the registers with known values, then check that the registers +; contain the expected value. An incorrect value being indicative of an +; error in the context switch mechanism. +; +; Input: NONE +; +; Call: CALL vRegTest1 +; +; Output: NONE +; +;------------------------------------------------------------------------------ + RSEG CODE:CODE +vRegTest1: + + MOVW AX, #0x1122 + MOVW BC, #0x3344 + MOVW DE, #0x5566 + MOVW HL, #0x7788 + MOV CS, #0x01 + MOV ES, #0x02 + +loop1: + BRK + CMPW AX, #0x1122 + BZ +5 + BR vRegTestError + MOVW AX, BC + CMPW AX, #0x3344 + BZ +5 + BR vRegTestError + MOVW AX, DE + CMPW AX, #0x5566 + BZ +5 + BR vRegTestError + MOVW AX, HL + CMPW AX, #0x7788 + BZ +5 + BR vRegTestError + MOV A, CS + CMP A, #0x01 + BZ +5 + BR vRegTestError + MOV A, ES + CMP A, #0x02 + BZ +5 + BR vRegTestError + MOVW AX, #0x1122 + BR loop1 + + +;------------------------------------------------------------------------------ +; Fill all the registers with known values, then check that the registers +; contain the expected value. An incorrect value being indicative of an +; error in the context switch mechanism. +; +; Input: NONE +; +; Call: CALL vRegTest1 +; +; Output: NONE +; +;------------------------------------------------------------------------------ + RSEG CODE:CODE +vRegTest2: + + MOVW AX, #0x99aa + MOVW BC, #0xbbcc + MOVW DE, #0xddee + MOVW HL, #0xff12 + MOV CS, #0x03 + MOV ES, #0x04 + +loop2: + CMPW AX, #0x99aa + BZ +5 + BR vRegTestError + MOVW AX, BC + CMPW AX, #0xbbcc + BZ +5 + BR vRegTestError + MOVW AX, DE + CMPW AX, #0xddee + BZ +5 + BR vRegTestError + MOVW AX, HL + CMPW AX, #0xff12 + BZ +5 + BR vRegTestError + MOV A, CS + CMP A, #0x03 + BZ +5 + BR vRegTestError + MOV A, ES + CMP A, #0x04 + BZ +5 + BR vRegTestError + MOVW AX, #0x99aa + BR loop2 + + + END diff --git a/Demo/NEC_78K0R_IAR/main.c b/Demo/NEC_78K0R_IAR/main.c new file mode 100644 index 000000000..c94ab40c0 --- /dev/null +++ b/Demo/NEC_78K0R_IAR/main.c @@ -0,0 +1,294 @@ +/* + FreeRTOS.org V5.1.1 - Copyright (C) 2003-2009 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. +*/ + +/* Standard includes. */ +#include +#include + +/* Scheduler include files. */ +#include "FreeRTOS.h" +#include "task.h" + +/* Demo file headers. */ +#include "int78K0R.h" +#include "PollQ.h" +#include "LED.h" +#include "print.h" +#include "semtest.h" + +/* + * Priority definitions for most of the tasks in the demo application. Some + * tasks just use the idle priority. + */ +#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 ) + +/* 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 ) + +/* + * 78K0R/Kx3 Option Byte Definition + * watchdog disabled, LVI enabled, OCD interface enabled + */ +__root __far const unsigned portCHAR OptionByte[OPT_BYTES_SIZE] @ 0x00C0 = +{ + WATCHDOG_DISABLED, LVI_ENABLED, RESERVED_FF, OCD_ENABLED +}; + +/* Security Byte Definition */ +__root __far const unsigned portCHAR SecuIDCode[SECU_ID_SIZE] @ 0x00C4 = +{ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; + +/* The task function for the "Check" task. */ +static void vErrorChecks( void *pvParameters ); + + +/* 78K0R/Kx3 low level init Initialization of the System Clock */ +int __low_level_init(void); + +extern void vRegTest1( void *pvParameters ); +extern void vRegTest2( void *pvParameters ); + +static short sRegTestStatus = pdPASS; + +portSHORT main( void ) +{ + /* Create the standard demo tasks. */ + vStartIntegerMathTasks( tskIDLE_PRIORITY ); + vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY ); + vStartSemaphoreTasks(mainSEMTEST_PRIORITY); + + /* 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 ); + + vPrintInitialise(); + + /* 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; +} +/*-----------------------------------------------------------*/ + +static void vErrorChecks( void *pvParameters ) +{ +portTickType xToggleRate = mainNO_ERROR_TOGGLE_PERIOD, xLastWakeTime; + + /* The pointer will only actually be either 3 or 2 bytes, depending on the + memory model. */ + if( pvParameters != ( void * ) 0x12345678 ) + { + xToggleRate = mainERROR_TOGGLE_PERIOD; + } + + xLastWakeTime = xTaskGetTickCount(); + + /* Cycle for ever, delaying then checking all the other tasks are still + operating without error. */ + for( ;; ) + { + vTaskDelayUntil( &xLastWakeTime, xToggleRate ); + + if( xAreIntegerMathsTaskStillRunning() != pdTRUE ) + { + xToggleRate = mainERROR_TOGGLE_PERIOD; + } + + if( xArePollingQueuesStillRunning() != pdTRUE) + { + xToggleRate = mainERROR_TOGGLE_PERIOD; + } + + if( xAreSemaphoreTasksStillRunning() != pdTRUE) + { + xToggleRate = mainERROR_TOGGLE_PERIOD; + } + + if( sRegTestStatus != pdPASS ) + { + xToggleRate = mainERROR_TOGGLE_PERIOD; + } + + /* Toggle the LED. */ + LED01 = !LED01; + } +} +/*-----------------------------------------------------------*/ + +int __low_level_init(void) +{ +unsigned portCHAR resetflag = RESF; + + portDISABLE_INTERRUPTS(); + + /* + * Clock Configuration: + * In this port, to use the internal high speed clock source of the microcontroller + * define the configCLOCK_SOURCE as 1 in FreeRTOSConfig.h. To use an external + * clock define configCLOCK_SOURCE as 0. + */ + #if configCLOCK_SOURCE == 1 + { + /* + * Set XT1 and XT2 in Input Port Mode + * Set X1 and X2 in Input Port Mode + * High speed oszillation frequency 2MHz <= fMX <= 10MHz + */ + CMC = 0x00; + + /* X1 external oszillation stopped */ + MSTOP = 1; + + /* enable internal high speed oszillation */ + HIOSTOP = 0; + MCM0 = 0; + + /* stop internal subsystem clock */ + XTSTOP = 1; + + /* Set clock speed */ + CSS = 0; + CKC &= (unsigned portCHAR)~0x07; + CKC |= 0x00; + } + #else + { + /* + * XT1 and XT2 pin in input port mode + * X1 and X2 pin in crystal resonator mode + * High speed oszillation frequency 10MHz < fMX <= 20MHz + */ + CMC = 0x41; + + /* Set oscillation stabilization time */ + OSTS = 0x07; + + /* Set speed mode: fMX > 10MHz for Flash memory high speed operation */ + OSMC = 0x01; + + /* + * Start up X1 oscillator operation + * Internal high-speed oscillator operating + */ + MSTOP = 0; + + /* Check oscillation stabilization time status */ + while(OSTC < 0x07) + { + /* wait until X1 clock stabilization time */ + portNOP(); + } + + /* Switch CPU clock to X1 oscillator */ + MCM0 = 1; + while(MCS != 1) + { + /* wait until CPU and peripherals operate with fX1 clock */ + portNOP(); + } + + /* Stop the internal high-speed oscillator operation */ + HIOSTOP = 1; + + /* Stop the XT1 oscillator operation */ + XTSTOP = 1; + + /* + * operating frequency f = fx + * Change clock generator setting, if necessary + */ + CKC &= 0xF8; + + /* From here onwards the X1 oscillator is supplied to the CPU */ + } + #endif + + /* 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; + + return pdTRUE; +} +/*-----------------------------------------------------------*/ + +void vRegTestError( void ) +{ + sRegTestStatus = pdFAIL; + for( ;; ); +} diff --git a/Demo/NEC_78K0R_IAR/rtosdemo.dep b/Demo/NEC_78K0R_IAR/rtosdemo.dep new file mode 100644 index 000000000..aa74619de --- /dev/null +++ b/Demo/NEC_78K0R_IAR/rtosdemo.dep @@ -0,0 +1,830 @@ + + + + 2 + 3820058658 + + Debug + + $TOOLKIT_DIR$\lib\clib\cl78kff3.r26 + $PROJ_DIR$\Debug\Obj\port.pbi + $PROJ_DIR$\Debug\Obj\integer.r26 + $PROJ_DIR$\Debug\Obj\print.r26 + $TOOLKIT_DIR$\inc\io78f1166_a0.h + $TOOLKIT_DIR$\inc\clib\stdlib.h + $PROJ_DIR$\Debug\List\PollQ.lst + $PROJ_DIR$\Debug\Exe\rtosdemo.d26 + $PROJ_DIR$\..\..\Source\include\portable.h + $PROJ_DIR$\..\Common\Full\semtest.c + $PROJ_DIR$\..\Common\Full\PollQ.c + $PROJ_DIR$\Debug\Obj\main.pbi + $PROJ_DIR$\Debug\List\semtest.lst + $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$\..\..\Source\include\StackMacros.h + $PROJ_DIR$\Int78K0R\int78K0R.c + $PROJ_DIR$\Debug\List\heap_1.lst + $TOOLKIT_DIR$\inc\clib\sysmac.h + $TOOLKIT_DIR$\inc\clib\stdio.h + $PROJ_DIR$\Debug\Obj\heap_1.pbi + $PROJ_DIR$\Debug\Obj\tasks.r26 + $PROJ_DIR$\Debug\Obj\RegTest.r26 + $PROJ_DIR$\Debug\Obj\int78K0R.r26 + $PROJ_DIR$\Debug\List\main.lst + $TOOLKIT_DIR$\config\lnk78f1166_a0.xcl + $PROJ_DIR$\Debug\List\int78K0R.lst + $TOOLKIT_DIR$\inc\intrinsics.h + $PROJ_DIR$\Debug\List\integer.lst + $PROJ_DIR$\..\Common\include\PollQ.h + $PROJ_DIR$\..\..\Source\include\semphr.h + $PROJ_DIR$\Debug\List\rtosdemo.map + $PROJ_DIR$\..\..\Source\include\task.h + $TOOLKIT_DIR$\inc\clib\stdarg.h + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\port.c + $PROJ_DIR$\Debug\Obj\portmacro.r26 + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R\portmacro.h + $PROJ_DIR$\Debug\Obj\integer.pbi + $PROJ_DIR$\..\..\Source\include\list.h + $PROJ_DIR$\..\..\Source\include\FreeRTOS.h + $PROJ_DIR$\..\Common\include\print.h + $PROJ_DIR$\Debug\List\list.lst + $PROJ_DIR$\Debug\Obj\LED.r26 + $PROJ_DIR$\FreeRTOSConfig.h + $PROJ_DIR$\Debug\List\tasks.lst + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\portmacro.s26 + $PROJ_DIR$\Int78K0R\int78K0R.h + $PROJ_DIR$\..\..\Source\include\projdefs.h + $PROJ_DIR$\LEDtoggle\LED.h + $PROJ_DIR$\Debug\List\print.lst + $PROJ_DIR$\Debug\Obj\port.r26 + $PROJ_DIR$\Debug\List\LED.lst + $PROJ_DIR$\Debug\Obj\main.r26 + $PROJ_DIR$\Debug\Obj\print.pbi + $PROJ_DIR$\..\Common\include\integer.h + $PROJ_DIR$\Debug\Obj\semtest.r26 + $PROJ_DIR$\Debug\Obj\portasm.r26 + $PROJ_DIR$\Debug\Obj\list.r26 + $PROJ_DIR$\Debug\Obj\PollQ.r26 + $TOOLKIT_DIR$\inc\io78f1166_a0_ext.h + $PROJ_DIR$\Debug\Obj\PollQ.pbi + $PROJ_DIR$\Debug\Obj\semtest.pbi + $PROJ_DIR$\Debug\List\port.lst + $PROJ_DIR$\LEDtoggle\LED.c + $PROJ_DIR$\..\Common\include\semtest.h + $PROJ_DIR$\Debug\List\portasm.lst + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R\portmacro.s26 + $PROJ_DIR$\Debug\Obj\rtosdemo.pbd + $PROJ_DIR$\Debug\Obj\int78K0R.pbi + $PROJ_DIR$\Debug\List\RegTest.lst + $PROJ_DIR$\Debug\Obj\LED.pbi + $PROJ_DIR$\Debug\List\queue.lst + $PROJ_DIR$\Debug\Obj\heap_1.r26 + $PROJ_DIR$\..\Common\Full\print.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$\main.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$\..\..\Source\include\queue.h + + + $PROJ_DIR$\Debug\Exe\rtosdemo.d26 + + + XLINK + 36 + + + + + XLINK + 30 63 27 77 2 62 57 55 61 3 18 60 26 0 + + + + + $PROJ_DIR$\..\Common\Full\semtest.c + + + ICC78000 + 12 60 + + + BICOMP + 66 + + + + + ICC78000 + 5 23 44 13 52 48 4 64 32 8 41 37 43 35 88 69 45 + + + BICOMP + 5 23 44 13 52 48 4 64 32 8 41 37 43 35 88 69 45 + + + + + $PROJ_DIR$\..\Common\Full\PollQ.c + + + ICC78000 + 6 63 + + + BICOMP + 65 + + + + + ICC78000 + 5 23 44 13 52 48 4 64 32 8 41 37 43 88 45 34 + + + BICOMP + 5 23 44 13 52 48 4 64 32 8 41 37 43 88 45 34 + + + + + $PROJ_DIR$\Int78K0R\int78K0R.c + + + ICC78000 + 31 28 + + + BICOMP + 73 + + + + + ICC78000 + 5 23 44 13 52 48 4 64 32 8 41 37 43 45 59 + + + BICOMP + 5 23 44 13 52 48 4 64 32 8 41 37 43 45 59 + + + + + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\port.c + + + BICOMP + 1 + + + + + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\portmacro.s26 + + + A78000 + 40 + + + + + [ROOT_NODE] + + + XLINK + 7 36 + + + + + $PROJ_DIR$\LEDtoggle\LED.c + + + ICC78000 + 56 47 + + + BICOMP + 75 + + + + + ICC78000 + 44 13 23 52 48 4 64 32 8 41 37 43 53 88 45 + + + BICOMP + 44 13 23 52 48 4 64 32 8 41 37 43 53 88 45 + + + + + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R\portmacro.s26 + + + A78000 + 40 + + + + + $PROJ_DIR$\Debug\Obj\rtosdemo.pbd + + + BILINK + 65 25 42 15 11 1 58 14 66 17 + + + + + $PROJ_DIR$\..\Common\Full\print.c + + + ICC78000 + 54 3 + + + BICOMP + 58 + + + + + ICC78000 + 5 23 44 13 52 48 4 64 32 8 41 88 45 + + + BICOMP + 5 23 44 13 52 48 4 64 32 8 41 88 45 + + + + + $PROJ_DIR$\RegTest.s26 + + + A78000 + 27 74 + + + + + $PROJ_DIR$\..\..\Source\list.c + + + ICC78000 + 46 62 + + + BICOMP + 15 + + + + + ICC78000 + 5 23 44 13 52 48 4 64 32 8 41 43 + + + BICOMP + 5 23 44 13 52 48 4 64 32 8 41 43 + + + + + $PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c + + + ICC78000 + 22 77 + + + BICOMP + 25 + + + + + ICC78000 + 5 23 44 13 52 48 4 64 32 8 41 37 43 + + + BICOMP + 5 23 44 13 52 48 4 64 32 8 41 37 43 + + + + + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R\port.c + + + ICC78000 + 67 55 + + + BICOMP + 1 + + + + + ICC78000 + 5 23 44 13 52 48 4 64 32 8 41 37 43 + + + BICOMP + 5 23 44 13 52 48 4 64 32 8 41 37 43 + + + + + $PROJ_DIR$\main.c + + + ICC78000 + 29 57 + + + BICOMP + 11 + + + + + ICC78000 + 5 23 16 44 13 52 48 4 64 32 8 41 37 43 51 34 53 45 69 + + + BICOMP + 5 23 16 44 13 52 48 4 64 32 8 41 37 43 51 34 53 45 69 + + + + + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R\portasm.s26 + + + A78000 + 61 70 + + + + + A78000 + 48 + + + + + $PROJ_DIR$\..\..\Source\queue.c + + + ICC78000 + 76 18 + + + BICOMP + 14 + + + + + ICC78000 + 5 23 16 44 13 52 48 4 64 32 8 41 37 43 19 + + + BICOMP + 5 23 16 44 13 52 48 4 64 32 8 41 37 43 19 + + + + + $PROJ_DIR$\..\..\Source\tasks.c + + + ICC78000 + 49 26 + + + BICOMP + 17 + + + + + ICC78000 + 24 38 23 5 16 44 13 52 48 4 64 32 8 41 37 43 20 + + + BICOMP + 24 38 23 5 16 44 13 52 48 4 64 32 8 41 37 43 20 + + + + + $PROJ_DIR$\..\Common\Minimal\integer.c + + + ICC78000 + 33 2 + + + BICOMP + 42 + + + + + ICC78000 + 5 23 44 13 52 48 4 64 32 8 41 37 43 59 + + + BICOMP + 5 23 44 13 52 48 4 64 32 8 41 37 43 59 + + + + + + Release + + $TOOLKIT_DIR$\lib\clib\cl78kff3.r26 + $TOOLKIT_DIR$\inc\io78f1166_a0.h + $TOOLKIT_DIR$\inc\clib\stdlib.h + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\portmacro.h + $PROJ_DIR$\Release\Obj\port.r26 + $PROJ_DIR$\Release\Obj\int78K0R.pbi + $PROJ_DIR$\Release\Obj\queue.r26 + $PROJ_DIR$\Release\Exe\rtosdemo.a26 + $PROJ_DIR$\Release\Obj\PollQ.r26 + $PROJ_DIR$\..\..\Source\include\portable.h + $PROJ_DIR$\..\Common\Full\semtest.c + $PROJ_DIR$\..\Common\Full\PollQ.c + $TOOLKIT_DIR$\inc\clib\stddef.h + $TOOLKIT_DIR$\inc\clib\string.h + $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 + $TOOLKIT_DIR$\inc\intrinsics.h + $PROJ_DIR$\..\Common\include\PollQ.h + $PROJ_DIR$\..\..\Source\include\semphr.h + $PROJ_DIR$\..\..\Source\include\task.h + $TOOLKIT_DIR$\inc\clib\stdarg.h + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\port.c + $PROJ_DIR$\..\..\Source\include\list.h + $PROJ_DIR$\..\..\Source\include\FreeRTOS.h + $PROJ_DIR$\..\Common\include\print.h + $PROJ_DIR$\FreeRTOSConfig.h + $PROJ_DIR$\Release\Obj\tasks.pbi + $PROJ_DIR$\Release\Obj\LED.pbi + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\portmacro.s26 + $PROJ_DIR$\Int78K0R\int78K0R.h + $PROJ_DIR$\..\..\Source\include\projdefs.h + $PROJ_DIR$\Release\Obj\semtest.pbi + $PROJ_DIR$\Release\Obj\main.r26 + $PROJ_DIR$\Release\Obj\list.pbi + $PROJ_DIR$\Release\Obj\int78K0R.r26 + $PROJ_DIR$\Release\Obj\tasks.r26 + $PROJ_DIR$\Release\Obj\portmacro.r26 + $PROJ_DIR$\LEDtoggle\LED.h + $PROJ_DIR$\Release\Obj\queue.pbi + $PROJ_DIR$\Release\Obj\LED.r26 + $PROJ_DIR$\Release\Obj\port.pbi + $PROJ_DIR$\Release\Obj\heap_1.pbi + $PROJ_DIR$\..\Common\include\integer.h + $PROJ_DIR$\Release\Obj\print.r26 + $PROJ_DIR$\Release\Obj\list.r26 + $PROJ_DIR$\Release\Obj\print.pbi + $PROJ_DIR$\Release\Obj\rtosdemo.pbd + $TOOLKIT_DIR$\inc\io78f1166_a0_ext.h + $PROJ_DIR$\LEDtoggle\LED.c + $PROJ_DIR$\..\Common\include\semtest.h + $PROJ_DIR$\..\Common\Full\print.c + $PROJ_DIR$\..\..\Source\list.c + $PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c + $PROJ_DIR$\main.c + $PROJ_DIR$\Release\Obj\PollQ.pbi + $PROJ_DIR$\Release\Obj\heap_1.r26 + $PROJ_DIR$\Release\Obj\main.pbi + $PROJ_DIR$\Release\Obj\semtest.r26 + $PROJ_DIR$\..\..\Source\queue.c + $PROJ_DIR$\..\..\Source\tasks.c + $PROJ_DIR$\..\..\Source\include\queue.h + + + $PROJ_DIR$\Release\Exe\rtosdemo.a26 + + + XLINK + 18 42 8 58 37 47 35 4 39 46 6 60 38 0 + + + + + $PROJ_DIR$\..\Common\Full\semtest.c + + + ICC78000 + 60 + + + BICOMP + 34 + + + + + ICC78000 + 2 16 26 12 33 28 1 50 19 9 3 22 25 21 63 52 27 + + + BICOMP + 2 16 26 12 33 28 1 50 19 9 3 22 25 21 63 52 27 + + + + + $PROJ_DIR$\..\Common\Full\PollQ.c + + + ICC78000 + 8 + + + BICOMP + 57 + + + + + ICC78000 + 2 16 26 12 33 28 1 50 19 9 3 22 25 63 27 20 + + + BICOMP + 2 16 26 12 33 28 1 50 19 9 3 22 25 63 27 20 + + + + + $PROJ_DIR$\Int78K0R\int78K0R.c + + + ICC78000 + 37 + + + BICOMP + 5 + + + + + ICC78000 + 2 16 26 12 33 28 1 50 19 9 3 22 25 27 45 + + + BICOMP + 2 16 26 12 33 28 1 50 19 9 3 22 25 27 45 + + + + + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\port.c + + + ICC78000 + 4 + + + BICOMP + 43 + + + + + ICC78000 + 2 16 26 12 33 28 1 50 19 9 3 22 25 + + + BICOMP + 2 16 26 12 33 28 1 50 19 9 3 22 25 + + + + + $PROJ_DIR$\..\..\Source\portable\IAR\78K0R_Kx3\portmacro.s26 + + + A78000 + 39 + + + + + A78000 + 28 + + + + + [ROOT_NODE] + + + XLINK + 7 + + + + + $PROJ_DIR$\Release\Obj\rtosdemo.pbd + + + BILINK + 30 57 44 5 36 59 43 48 41 34 29 + + + + + $PROJ_DIR$\LEDtoggle\LED.c + + + ICC78000 + 42 + + + BICOMP + 30 + + + + + ICC78000 + 26 12 16 33 28 1 50 19 9 3 22 25 40 63 27 + + + BICOMP + 26 12 16 33 28 1 50 19 9 3 22 25 40 63 27 + + + + + $PROJ_DIR$\..\Common\Full\print.c + + + ICC78000 + 46 + + + BICOMP + 48 + + + + + ICC78000 + 2 16 26 12 33 28 1 50 19 9 3 63 27 + + + BICOMP + 2 16 26 12 33 28 1 50 19 9 3 63 27 + + + + + $PROJ_DIR$\..\..\Source\list.c + + + ICC78000 + 47 + + + BICOMP + 36 + + + + + ICC78000 + 2 16 26 12 33 28 1 50 19 9 3 25 + + + BICOMP + 2 16 26 12 33 28 1 50 19 9 3 25 + + + + + $PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c + + + ICC78000 + 58 + + + BICOMP + 44 + + + + + ICC78000 + 2 16 26 12 33 28 1 50 19 9 3 22 25 + + + BICOMP + 2 16 26 12 33 28 1 50 19 9 3 22 25 + + + + + $PROJ_DIR$\main.c + + + ICC78000 + 35 + + + BICOMP + 59 + + + + + ICC78000 + 2 16 13 26 12 33 28 1 50 19 9 3 22 25 32 20 40 27 52 + + + BICOMP + 2 16 13 26 12 33 28 1 50 19 9 3 22 25 32 20 40 27 52 + + + + + $PROJ_DIR$\..\..\Source\queue.c + + + ICC78000 + 6 + + + BICOMP + 41 + + + + + ICC78000 + 2 16 13 26 12 33 28 1 50 19 9 3 22 25 14 + + + BICOMP + 2 16 13 26 12 33 28 1 50 19 9 3 22 25 14 + + + + + $PROJ_DIR$\..\..\Source\tasks.c + + + ICC78000 + 38 + + + BICOMP + 29 + + + + + ICC78000 + 17 23 16 2 13 26 12 33 28 1 50 19 9 3 22 25 + + + BICOMP + 17 23 16 2 13 26 12 33 28 1 50 19 9 3 22 25 + + + + + [MULTI_TOOL] + XLINK + + + + + diff --git a/Demo/NEC_78K0R_IAR/rtosdemo.ewd b/Demo/NEC_78K0R_IAR/rtosdemo.ewd new file mode 100644 index 000000000..a1daedfbb --- /dev/null +++ b/Demo/NEC_78K0R_IAR/rtosdemo.ewd @@ -0,0 +1,479 @@ + + + + 2 + + Debug + + 78000 + + 1 + + C-SPY + 5 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + EMU78K + 5 + + 1 + 1 + 1 + + + + + + + + + IEC78K + 5 + + 1 + 1 + 1 + + + + + + + + + + MIC78K + 5 + + 0 + 1 + 1 + + + + + + + + + SIM78K + 5 + + 0 + 1 + 1 + + + + + TKS78K + 5 + + 1 + 1 + 1 + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\codecoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\stack.ENU.ewplugin + 1 + + + + + Release + + 78000 + + 0 + + C-SPY + 5 + + 2 + 1 + 0 + + + + + + + + + + + + + + + + + + + EMU78K + 5 + + 1 + 1 + 0 + + + + + + + + + IEC78K + 5 + + 1 + 1 + 0 + + + + + + + + + + MIC78K + 5 + + 0 + 1 + 0 + + + + + + + + + SIM78K + 5 + + 0 + 1 + 0 + + + + + TKS78K + 5 + + 1 + 1 + 0 + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\codecoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\stack.ENU.ewplugin + 1 + + + + + + diff --git a/Demo/NEC_78K0R_IAR/rtosdemo.ewp b/Demo/NEC_78K0R_IAR/rtosdemo.ewp new file mode 100644 index 000000000..9c5c19bd5 --- /dev/null +++ b/Demo/NEC_78K0R_IAR/rtosdemo.ewp @@ -0,0 +1,1851 @@ + + + + 2 + + Debug + + 78000 + + 1 + + General + 5 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICC78000 + 3 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A78000 + 3 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + XLINK + 3 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XAR + 3 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + 78000 + + 0 + + General + 5 + + 7 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICC78000 + 3 + + 15 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A78000 + 3 + + 9 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + XLINK + 3 + + 15 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XAR + 3 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + Demo Source + + $PROJ_DIR$\main.c + + + $PROJ_DIR$\..\Common\Full\PollQ.c + + + $PROJ_DIR$\..\Common\Full\print.c + + + $PROJ_DIR$\RegTest.s26 + + + $PROJ_DIR$\..\Common\Full\semtest.c + + + + Kernel Source + + $PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c + + + $PROJ_DIR$\..\..\Source\list.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 + + + + diff --git a/Demo/NEC_78K0R_IAR/rtosdemo.eww b/Demo/NEC_78K0R_IAR/rtosdemo.eww new file mode 100644 index 000000000..2294aacb5 --- /dev/null +++ b/Demo/NEC_78K0R_IAR/rtosdemo.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\rtosdemo.ewp + + + + + diff --git a/Demo/NEC_78K0R_IAR/settings/rtosdemo.cspy.bat b/Demo/NEC_78K0R_IAR/settings/rtosdemo.cspy.bat new file mode 100644 index 000000000..9865cab38 --- /dev/null +++ b/Demo/NEC_78K0R_IAR/settings/rtosdemo.cspy.bat @@ -0,0 +1,33 @@ +@REM This bat file has been generated by the IAR Embeddded Workbench +@REM C-SPY interactive debugger,as an aid to preparing a command +@REM line for running the cspybat command line utility with the +@REM appropriate settings. +@REM +@REM After making some adjustments to this file, you can launch cspybat +@REM by typing the name of this file followed by the name of the debug +@REM file (usually an ubrof file). Note that this file is generated +@REM every time a new debug session is initialized, so you may want to +@REM move or rename the file before making changes. +@REM +@REM Note: some command line arguments cannot be properly generated +@REM by this process. Specifically, the plugin which is responsible +@REM for the Terminal I/O window (and other C runtime functionality) +@REM comes in a special version for cspybat, and the name of that +@REM plugin dll is not known when generating this file. It resides in +@REM the $TOOLKIT_DIR$\bin folder and is usually called XXXbat.dll or +@REM XXXlibsupportbat.dll, where XXX is the name of the corresponding +@REM tool chain. Replace the '' parameter +@REM below with the appropriate file name. Other plugins loaded by +@REM C-SPY are usually not needed by, or will not work in, cspybat +@REM but they are listed at the end of this file for reference. + + +"C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\bin\cspybat" "C:\Devtools\IAR Systems\Embedded Workbench 5.0\78k\bin\78k0rproc.dll" "C:\Devtools\IAR Systems\Embedded Workbench 5.0\78k\bin\78k0rminitks.dll" %1 --plugin "C:\Devtools\IAR Systems\Embedded Workbench 5.0\78k\bin\" --backend -B "--core" "78k0r" "--near_const_location" "rom1" "--near_const_start" "0xF1000" "--near_const_size" "47.75" "-p" "C:\Devtools\IAR Systems\Embedded Workbench 5.0\78k\CONFIG\DDF\io78f1166_a0.ddf" "-d" "minicube" + + +@REM Loaded plugins: +@REM 78kLibSupport.dll +@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\plugins\CodeCoverage\CodeCoverage.dll +@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\plugins\Profiling\Profiling.dll +@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\plugins\stack\stack.dll +@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\plugins\SymList\SymList.dll diff --git a/Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt b/Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt new file mode 100644 index 000000000..850a154cd --- /dev/null +++ b/Demo/NEC_78K0R_IAR/settings/rtosdemo.dbgdt @@ -0,0 +1,80 @@ + + + + + + + + 20 + 1216 + 324 + 81 + + + + + + + + 181272727 + + + + + + + + 200 + + + 10 + 100100100100 + + + + + + + TabID-15892-1978 + Debug Log + Debug-Log + + + + TabID-15370-1988 + Build + Build + + + TabID-15381-14004BreakpointsBreakpoints + + 0 + + + TabID-26641-1982 + Workspace + Workspace + + + rtosdemortosdemo/Demo Sourcertosdemo/Kernel Source + + + + 0TabID-10381-31310RegisterRegister00000TabID-22710-15119DisassemblyDisassembly0TabID-16207-15446WatchWatchusCriticalNesting01001001001000 + + + + + + TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\port.c048689689TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\main.c085388438841TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\RegTest.s2605726222622TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\portasm.s26012260486048TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\portmacro.h0106491349130100000010000001 + + + + + + + iaridepm.enu1debuggergui.enu1-2-2740255-2-2240200142857203666152976755601-2-2553536-2-2240200142857203666320238565173000543518313-2551200200119048203666320238192464-2534740939534-2200200119048203666241071755601-2-21981682-2-216842001002381203666142857203666 + + + + diff --git a/Demo/NEC_78K0R_IAR/settings/rtosdemo.dni b/Demo/NEC_78K0R_IAR/settings/rtosdemo.dni new file mode 100644 index 000000000..0e6ccd1a5 --- /dev/null +++ b/Demo/NEC_78K0R_IAR/settings/rtosdemo.dni @@ -0,0 +1,85 @@ +[CodeCoverage] +Enabled=_ 0 +[MINICUBE2] +Map0=0,0,262143,262144 +Map1=1,1036032,1048319,12288 +MapEntries=2 +HWsettings=4,0,1,2,4,0,2,0 +HWsettingsCube=2,4294967295,2,4294967295,0,1,0,0 +HWsettingsRsuid=FFFFFFFFFFFFFFFFFFFF +EventEntries=0 +SeqName0= +SeqData0=0,0 +SeqEnable10=0,0,0,0,0,0,0,0,0,0 +SeqEnable20=0,0,0,0,0,0,0,0,0,0 +SeqEnable30=0,0,0,0,0,0,0,0,0,0 +SeqEnable40=0,0,0,0,0,0,0,0,0,0 +SeqDisable0=0,0,0,0,0,0,0,0,0,0 +SeqData20=0,0,0,0,0,0 +SeqName1= +SeqData1=0,0 +SeqEnable11=0,0,0,0,0,0,0,0,0,0 +SeqEnable21=0,0,0,0,0,0,0,0,0,0 +SeqEnable31=0,0,0,0,0,0,0,0,0,0 +SeqEnable41=0,0,0,0,0,0,0,0,0,0 +SeqDisable1=0,0,0,0,0,0,0,0,0,0 +SeqData21=0,0,0,0,0,0 +SeqName2= +SeqData2=0,0 +SeqEnable12=0,0,0,0,0,0,0,0,0,0 +SeqEnable22=0,0,0,0,0,0,0,0,0,0 +SeqEnable32=0,0,0,0,0,0,0,0,0,0 +SeqEnable42=0,0,0,0,0,0,0,0,0,0 +SeqDisable2=0,0,0,0,0,0,0,0,0,0 +SeqData22=0,0,0,0,0,0 +SeqName3= +SeqData3=0,0 +SeqEnable13=0,0,0,0,0,0,0,0,0,0 +SeqEnable23=0,0,0,0,0,0,0,0,0,0 +SeqEnable33=0,0,0,0,0,0,0,0,0,0 +SeqEnable43=0,0,0,0,0,0,0,0,0,0 +SeqDisable3=0,0,0,0,0,0,0,0,0,0 +SeqData23=0,0,0,0,0,0 +SeqName4= +SeqData4=0,0 +SeqEnable14=0,0,0,0,0,0,0,0,0,0 +SeqEnable24=0,0,0,0,0,0,0,0,0,0 +SeqEnable34=0,0,0,0,0,0,0,0,0,0 +SeqEnable44=0,0,0,0,0,0,0,0,0,0 +SeqDisable4=0,0,0,0,0,0,0,0,0,0 +SeqData24=0,0,0,0,0,0 +TraceSettings=64,0,0,0,0,0,8192 +TimerSettings=0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +CoverSettings=1048192,1048207,0 +Version=1,78k0rtrace.txt +LastDevFile=DF1166A0.78K +EmulType=320 +EventLimits=0, 1, 1, 2 +LastSetupFailed=0 +[DisAssemblyWindow] +NumStates=_ 1 +State 1=_ 1 +[Profiling] +Enabled=0 +[StackPlugin] +Enabled=1 +OverflowWarningsEnabled=1 +WarningThreshold=90 +SpWarningsEnabled=1 +WarnHow=0 +UseTrigger=1 +TriggerName=main +LimitSize=0 +ByteLimit=50 +[Breakpoints] +Count=0 +[Log file] +LoggingEnabled=_ 0 +LogFile=_ "" +Category=_ 0 +[TermIOLog] +LoggingEnabled=_ 0 +LogFile=_ "" +[TraceHelper] +Enabled=0 +ShowSource=1 diff --git a/Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt b/Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt new file mode 100644 index 000000000..5755f3754 --- /dev/null +++ b/Demo/NEC_78K0R_IAR/settings/rtosdemo.wsdt @@ -0,0 +1,66 @@ + + + + + + rtosdemo/Debug + + + + + + + + + 277272727 + + + + + + + 2091624461 + + + + + + + + TabID-28554-14697 + Workspace + Workspace + + + rtosdemortosdemo/Demo Sourcertosdemo/Kernel Sourcertosdemo/Kernel Source/port.c + + + + 0 + + + TabID-24371-14776 + Build + Build + + + TabID-2405-1208Debug LogDebug-Log + + 0 + + + + + + TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\port.c048689689TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\main.c085388438841TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_78K0R_IAR\RegTest.s2605726222622TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\portasm.s26012260486048TextEditorC:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\78K0R\portmacro.h0106491349130100000010000001 + + + + + + + iaridepm.enu1-2-2735351-2-2219205130357208758210119750509-2-22031682-2-216842051002381208758130357208758 + + + + -- 2.39.5