From: richardbarry Date: Mon, 18 Mar 2013 16:51:43 +0000 (+0000) Subject: Rename the Demo/RL78_RL78G13_Promot_Board_IAR directory to RL78_Multiple_IAR as it... X-Git-Tag: V7.4.1~29 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=778e0b7999524e1fa4a184001c27287d32a9f3ba;p=freertos Rename the Demo/RL78_RL78G13_Promot_Board_IAR directory to RL78_Multiple_IAR as it now targets several different devices. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1846 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- diff --git a/FreeRTOS/Demo/RL78_E2Studio_GCC/.RSKRL78G1Clinker b/FreeRTOS/Demo/RL78_E2Studio_GCC/.RSKRL78G1Clinker new file mode 100644 index 000000000..279af16d5 --- /dev/null +++ b/FreeRTOS/Demo/RL78_E2Studio_GCC/.RSKRL78G1Clinker @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/ExampleISR.s87 b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/ExampleISR.s87 deleted file mode 100644 index df5fcba56..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/ExampleISR.s87 +++ /dev/null @@ -1,134 +0,0 @@ -; FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. -; -; FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT -; http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. -; -; *************************************************************************** -; * * -; * FreeRTOS tutorial books are available in pdf and paperback. * -; * Complete, revised, and edited pdf reference manuals are also * -; * available. * -; * * -; * Purchasing FreeRTOS documentation will not only help you, by * -; * ensuring you get running as quickly as possible and with an * -; * in-depth knowledge of how to use FreeRTOS, it will also help * -; * the FreeRTOS project to continue with its mission of providing * -; * professional grade, cross platform, de facto standard solutions * -; * for microcontrollers - completely free of charge! * -; * * -; * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * -; * * -; * Thank you for using FreeRTOS, and thank you for your support! * -; * * -; *************************************************************************** -; -; -; This file is part of the FreeRTOS distribution. -; -; FreeRTOS is free software; you can redistribute it and/or modify it under -; the terms of the GNU General Public License (version 2) as published by the -; Free Software Foundation AND MODIFIED BY the FreeRTOS exception. -; -; >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to -; distribute a combined work that includes FreeRTOS without being obliged to -; provide the source code for proprietary components outside of the FreeRTOS -; kernel. -; -; FreeRTOS 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 -; and the FreeRTOS license exception along with FreeRTOS; if not itcan be -; viewed here: http://www.freertos.org/a00114.html and also obtained by -; writing to Real Time Engineers Ltd., contact details for whom are available -; on the FreeRTOS WEB site. -; -; 1 tab == 4 spaces! -; -; *************************************************************************** -; * * -; * Having a problem? Start by reading the FAQ "My application does * -; * not run, what could be wrong?" * -; * * -; * http://www.FreeRTOS.org/FAQHelp.html * -; * * -; *************************************************************************** -; -; -; http://www.FreeRTOS.org - Documentation, books, training, latest versions, -; license and Real Time Engineers Ltd. contact details. -; -; http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, -; including FreeRTOS+Trace - an indispensable productivity tool, and our new -; fully thread aware and reentrant UDP/IP stack. -; -; http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High -; Integrity Systems, who sell the code with commercial support, -; indemnification and middleware, under the OpenRTOS brand. -; -; http://www.SafeRTOS.com - High Integrity Systems also provide a safety -; engineered and independently SIL3 certified version for use in safety and -; mission critical applications that require provable dependability. - -;* -; * This file defines the assembler wrapper for the example interrupt that is -; * defined in main.c. The wrapper is the interrupt entry point. -; * - -; ISR_Support.h contains the definitions of portSAVE_CONTEXT() and -; portRESTORE_CONTEXT(). -#include "ISR_Support.h" - - PUBLIC vANExampleISR_ASM_Wrapper - EXTERN vAnExampleISR_C_Handler - - RSEG CODE:CODE - -; * -; * This demo does not include a functional interrupt service routine - so -; * this dummy handler (which is not actually installed) is provided as an -; * example of how an ISR that needs to cause a context switch needs to be -; * implemented. ISRs that do not cause a context switch have no special -; * requirements and can be written as per the compiler documentation. -; * -; * This assembly wrapper function calls the main handler, which is called -; * vAnExampleISR_C_Handler(), and is implemented in main.c. See the -; * documentation page for this demo on the FreeRTOS.org website for full -; * instructions. -; * -; * NOTE: vANExampleISR_ASM_Wrapper needs to be installed into the relevant -; * vector, an example of how to do this from an assembly file is locate at -; * the bottom of this file. -; * - - vANExampleISR_ASM_Wrapper: - -; portSAVE_CONTEXT() must be the first thing called in the ASM -; wrapper. - portSAVE_CONTEXT - -; Once the context has been saved the C handler can be called. - call !!vAnExampleISR_C_Handler - -; Finally the ISR must end with a call to portRESTORE_CONTEXT() -; followed by a reti instruction to return from the interrupt to whichever -; task is now the task selected to run (which may be different to the task -; that was running before the interrupt started). - portRESTORE_CONTEXT - reti - - -; The interrupt handler can be installed into the vector table in the same -; assembly file. - -; Ensure the vector table segement is used. - COMMON INTVEC:CODE:ROOT(1) -; -; Place a pointer to the asm wrapper at the correct index into the vector -; table. Note 56 is used is purely as an example. The correct vector -; number for the interrupt being installed must be used. - ORG 58 - DW vANExampleISR_ASM_Wrapper - - END - diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h deleted file mode 100644 index 0224421c2..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. - - FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT - http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - - >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. - - FreeRTOS 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 - and the FreeRTOS license exception along with FreeRTOS; if not itcan be - viewed here: http://www.freertos.org/a00114.html and also obtained by - writing to Real Time Engineers Ltd., contact details for whom are available - on the FreeRTOS WEB site. - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, and our new - fully thread aware and reentrant UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems, who sell the code with commercial support, - indemnification and middleware, under the OpenRTOS brand. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. -*/ - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H - -/*----------------------------------------------------------- - * 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. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* This #ifdef prevents the enclosed code being included from within an -asm file. It is valid in a C file, but not valid in an asm file. */ -#ifdef __IAR_SYSTEMS_ICC__ - - #pragma system_include - #include - -#endif /* __IAR_SYSTEMS_ICC__ */ - -/* Include hardware dependent header files to allow this demo to run on -multiple evaluation boards. */ -#include "demo_specific_io.h" - -#define configUSE_PREEMPTION 1 -#define configTICK_RATE_HZ ( ( unsigned short ) 1000 ) -#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 ) -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 80 ) -#define configMAX_TASK_NAME_LEN ( 10 ) -#define configUSE_TRACE_FACILITY 0 -#define configUSE_16_BIT_TICKS 1 -#define configIDLE_SHOULD_YIELD 1 -#define configTOTAL_HEAP_SIZE ( (size_t ) ( 3420 ) ) -#define configCHECK_FOR_STACK_OVERFLOW 2 -#define configUSE_MUTEXES 1 - -/* Hook function definitions. */ -#define configUSE_IDLE_HOOK 1 -#define configUSE_TICK_HOOK 0 -#define configUSE_MALLOC_FAILED_HOOK 1 - -/* Software timer definitions. */ -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY ( 2 ) -#define configTIMER_QUEUE_LENGTH 10 -#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 ) - -/* 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 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 0 -#define INCLUDE_vTaskCleanUpResources 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 -#define INCLUDE_xTaskGetIdleTaskHandle 0 -#define INCLUDE_xTimerGetTimerDaemonTaskHandle 0 - -/* Tick interrupt vector - this must match the INTIT_vect definition contained -in the ior5fnnnn.h header file included at the top of this file (the value is -dependent on the hardware being used. */ -#define configTICK_VECTOR INTIT_vect - -#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); } - -#endif /* FREERTOS_CONFIG_H */ - diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewd deleted file mode 100644 index d0d8eedf7..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewd +++ /dev/null @@ -1,1502 +0,0 @@ - - - - 2 - - YRPBRL78G13 - - RL78 - - 1 - - C-SPY - 1 - - 0 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - E1RL78 - 1 - - 1 - 1 - 1 - - - - - - - - - - E20RL78 - 1 - - 1 - 1 - 1 - - - - - - - - - - IECRL78 - 1 - - 0 - 1 - 1 - - - - - - - - - - SIMRL78 - 1 - - 0 - 1 - 1 - - - - - TKRL78 - 1 - - 0 - 1 - 1 - - - - - - - - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - YRDKRL78G14 - - RL78 - - 1 - - C-SPY - 1 - - 0 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - E1RL78 - 1 - - 1 - 1 - 1 - - - - - - - - - - E20RL78 - 1 - - 1 - 1 - 1 - - - - - - - - - - IECRL78 - 1 - - 0 - 1 - 1 - - - - - - - - - - SIMRL78 - 1 - - 0 - 1 - 1 - - - - - TKRL78 - 1 - - 0 - 1 - 1 - - - - - - - - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - RSKRL78G1C - - RL78 - - 1 - - C-SPY - 1 - - 0 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - E1RL78 - 1 - - 1 - 1 - 1 - - - - - - - - - - E20RL78 - 1 - - 1 - 1 - 1 - - - - - - - - - - IECRL78 - 1 - - 0 - 1 - 1 - - - - - - - - - - SIMRL78 - 1 - - 0 - 1 - 1 - - - - - TKRL78 - 1 - - 0 - 1 - 1 - - - - - - - - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - RSKRL78L13 - - RL78 - - 1 - - C-SPY - 1 - - 0 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - E1RL78 - 1 - - 1 - 1 - 1 - - - - - - - - - - E20RL78 - 1 - - 1 - 1 - 1 - - - - - - - - - - IECRL78 - 1 - - 0 - 1 - 1 - - - - - - - - - - SIMRL78 - 1 - - 0 - 1 - 1 - - - - - TKRL78 - 1 - - 0 - 1 - 1 - - - - - - - - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - RL78_G1A_TB - - RL78 - - 1 - - C-SPY - 1 - - 0 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - E1RL78 - 1 - - 1 - 1 - 1 - - - - - - - - - - E20RL78 - 1 - - 1 - 1 - 1 - - - - - - - - - - IECRL78 - 1 - - 0 - 1 - 1 - - - - - - - - - - SIMRL78 - 1 - - 0 - 1 - 1 - - - - - TKRL78 - 1 - - 0 - 1 - 1 - - - - - - - - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - - diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp deleted file mode 100644 index 184d96c26..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp +++ /dev/null @@ -1,4521 +0,0 @@ - - - - 2 - - YRPBRL78G13 - - RL78 - - 1 - - General - 5 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCRL78 - 5 - - 7 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARL78 - 5 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - XLINK - 5 - - 14 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - XAR - 5 - - 0 - 1 - 1 - - - - - - - INTERNAL_HWSUPPORT - 5 - - - - BILINK - 0 - - - - - YRDKRL78G14 - - RL78 - - 1 - - General - 5 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCRL78 - 5 - - 7 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARL78 - 5 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - XLINK - 5 - - 14 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - XAR - 5 - - 0 - 1 - 1 - - - - - - - INTERNAL_HWSUPPORT - 5 - - - - BILINK - 0 - - - - - RSKRL78G1C - - RL78 - - 1 - - General - 5 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCRL78 - 5 - - 7 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARL78 - 5 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - XLINK - 5 - - 14 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - XAR - 5 - - 0 - 1 - 1 - - - - - - - INTERNAL_HWSUPPORT - 5 - - - - BILINK - 0 - - - - - RSKRL78L13 - - RL78 - - 1 - - General - 5 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCRL78 - 5 - - 7 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARL78 - 5 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - XLINK - 5 - - 14 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - XAR - 5 - - 0 - 1 - 1 - - - - - - - INTERNAL_HWSUPPORT - 5 - - - - BILINK - 0 - - - - - RL78_G1A_TB - - RL78 - - 1 - - General - 5 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCRL78 - 5 - - 7 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARL78 - 5 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - XLINK - 5 - - 14 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - XAR - 5 - - 0 - 1 - 1 - - - - - - - INTERNAL_HWSUPPORT - 5 - - - - BILINK - 0 - - - - - Demo Source - - StandardDemos - - $PROJ_DIR$\..\Common\Minimal\blocktim.c - - - $PROJ_DIR$\..\Common\Minimal\dynamic.c - - - $PROJ_DIR$\main_full.c - - - $PROJ_DIR$\..\Common\Minimal\PollQ.c - - - - $PROJ_DIR$\ExampleISR.s87 - - - $PROJ_DIR$\main.c - - - $PROJ_DIR$\main_blinky.c - - - $PROJ_DIR$\RegTest.s87 - - - - Kernel Source - - $PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c - - - $PROJ_DIR$\..\..\Source\list.c - - - $PROJ_DIR$\..\..\Source\portable\IAR\RL78\port.c - - - $PROJ_DIR$\..\..\Source\portable\IAR\RL78\portasm.s87 - - - $PROJ_DIR$\..\..\Source\queue.c - - - $PROJ_DIR$\..\..\Source\tasks.c - - - $PROJ_DIR$\..\..\Source\timers.c - - - - - diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.eww b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.eww deleted file mode 100644 index 239a9381e..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.eww +++ /dev/null @@ -1,10 +0,0 @@ - - - - - $WS_DIR$\RTOSDemo.ewp - - - - - diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87 b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87 deleted file mode 100644 index 56b399790..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87 +++ /dev/null @@ -1,219 +0,0 @@ -;/* -; FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. -; -; -; *************************************************************************** -; * * -; * FreeRTOS tutorial books are available in pdf and paperback. * -; * Complete, revised, and edited pdf reference manuals are also * -; * available. * -; * * -; * Purchasing FreeRTOS documentation will not only help you, by * -; * ensuring you get running as quickly as possible and with an * -; * in-depth knowledge of how to use FreeRTOS, it will also help * -; * the FreeRTOS project to continue with its mission of providing * -; * professional grade, cross platform, de facto standard solutions * -; * for microcontrollers - completely free of charge! * -; * * -; * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * -; * * -; * Thank you for using FreeRTOS, and thank you for your support! * -; * * -; *************************************************************************** -; -; -; This file is part of the FreeRTOS distribution. -; -; FreeRTOS is free software; you can redistribute it and/or modify it under -; the terms of the GNU General Public License (version 2) as published by the -; Free Software Foundation AND MODIFIED BY the FreeRTOS exception. -; >>>NOTE<<< The modification to the GPL is included to allow you to -; distribute a combined work that includes FreeRTOS without being obliged to -; provide the source code for proprietary components outside of the FreeRTOS -; kernel. FreeRTOS 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 and the FreeRTOS license exception along with FreeRTOS; if not it -; can be viewed here: http://www.freertos.org/a00114.html and also obtained -; by writing to Richard Barry, contact details for whom are available on the -; FreeRTOS WEB site. -; -; 1 tab == 4 spaces! -; -; 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 file defines the RegTest tasks as described at the top of main.c -; - -;------------------------------------------------------------------------------ - - -; Functions implemented in this file -;------------------------------------------------------------------------------ - - PUBLIC vRegTest1Task - PUBLIC vRegTest2Task - -; Functions and variables used by this file -;------------------------------------------------------------------------------ - EXTERN vRegTestError - EXTERN usRegTest1LoopCounter - EXTERN usRegTest2LoopCounter - -;------------------------------------------------------------------------------ -; 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: Created as a task. -; -; Output: NONE -; -;------------------------------------------------------------------------------ - RSEG CODE:CODE -vRegTest1Task: - - ; First fill the registers. - MOVW AX, #0x1122 - MOVW BC, #0x3344 - MOVW DE, #0x5566 - MOVW HL, #0x7788 - MOV CS, #0x01 - -#if __DATA_MODEL__ == __DATA_MODEL_FAR__ - - ; ES is not saved or restored when using the near memory model so only - ; test it when using the far model. - MOV ES, #0x02 - -#endif - -loop1: - - ; Continuously check that the register values remain at their expected - ; values. The BRK is to test the yield. This task runs at low priority - ; so will also regularly get preempted. - BRK - - ; Compare with the expected value. - CMPW AX, #0x1122 - BZ +5 - - ; Jump over the branch to vRegTestError() if the register contained the - ; expected value - otherwise flag an error by executing vRegTestError(). - BR vRegTestError - - ; Repeat for all the registers. - 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 - -#if __DATA_MODEL__ == __DATA_MODEL_FAR__ - - ; ES is not saved or restored when using the near memory model so only - ; test it when using the far model. - MOV A, ES - CMP A, #0x02 - BZ +5 - BR vRegTestError - -#endif - - ; Indicate that this task is still cycling. - INCW usRegTest1LoopCounter - - 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: Created as a task. -; -; Output: NONE -; -;------------------------------------------------------------------------------ - RSEG CODE:CODE -vRegTest2Task: - - MOVW AX, #0x99aa - MOVW BC, #0xbbcc - MOVW DE, #0xddee - MOVW HL, #0xff12 - MOV CS, #0x03 - -#if __DATA_MODEL__ == __DATA_MODEL_FAR__ - - MOV ES, #0x04 - -#endif - -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 - -#if __DATA_MODEL__ == __DATA_MODEL_FAR__ - - MOV A, ES - CMP A, #0x04 - BZ +5 - BR vRegTestError - -#endif - - ; Indicate that this task is still cycling. - INCW usRegTest2LoopCounter - - MOVW AX, #0x99aa - BR loop2 - - - END diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/demo_specific_io.h b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/demo_specific_io.h deleted file mode 100644 index 0dba58fdf..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/demo_specific_io.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. - - FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT - http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - - >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. - - FreeRTOS 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 - and the FreeRTOS license exception along with FreeRTOS; if not itcan be - viewed here: http://www.freertos.org/a00114.html and also obtained by - writing to Real Time Engineers Ltd., contact details for whom are available - on the FreeRTOS WEB site. - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, and our new - fully thread aware and reentrant UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems, who sell the code with commercial support, - indemnification and middleware, under the OpenRTOS brand. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. -*/ - -#ifndef LED_IO_H -#define LED_IO_H - -/* Include the register definition file that is correct for the hardware being -used. The C and assembler pre-processor must have one of the following board -definitions defined to have the correct register definition header file -included. Alternatively, just manually include the correct files here. */ - - - #ifdef YRPBRL78G13 - #include "ior5f100le.h" - #include "ior5f100le_ext.h" - #define LED_BIT ( P7_bit.no7 ) - #define LED_INIT() P7 &= 0x7F; PM7 &= 0x7F - #endif /* YRPBRL78G13 */ - - #ifdef YRDKRL78G14 - #include "ior5f104pj.h" - #include "ior5f104pj_ext.h" - #define LED_BIT ( P4_bit.no1 ) - #define LED_INIT() LED_BIT = 0 - #endif /* YRDKRL78G14 */ - - #ifdef RSKRL78G1C - #include "ior5f10jgc.h" - #include "ior5f10jgc_ext.h" - #define LED_BIT ( P0_bit.no1 ) - #define LED_INIT() P0 &= 0xFD; PM0 &= 0xFD - #endif /* RSKRL78G1C */ - - #ifdef RSKRL78L13 - #include "ior5f10wmg.h" - #include "ior5f10wmg_ext.h" - #define LED_BIT ( P4_bit.no1 ) - #define LED_INIT() P4 &= 0xFD; PM4 &= 0xFD - #endif /* RSKRL78L13 */ - - #ifdef RL78_G1A_TB - #include "ior5f10ele.h" - #include "ior5f10ele_ext.h" - #define LED_BIT ( P6_bit.no2 ) - #define LED_INIT() P6 &= 0xFB; PM6 &= 0xFB - #endif /* RL78_G1A_TB */ - - #ifndef LED_BIT - #error The hardware platform is not defined - #endif - -#endif /* LED_IO_H */ - diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/main.c b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/main.c deleted file mode 100644 index 2b4acff9b..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/main.c +++ /dev/null @@ -1,272 +0,0 @@ -/* - FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. - - FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT - http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - - >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. - - FreeRTOS 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 - and the FreeRTOS license exception along with FreeRTOS; if not itcan be - viewed here: http://www.freertos.org/a00114.html and also obtained by - writing to Real Time Engineers Ltd., contact details for whom are available - on the FreeRTOS WEB site. - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, and our new - fully thread aware and reentrant UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems, who sell the code with commercial support, - indemnification and middleware, under the OpenRTOS brand. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. -*/ - -/****************************************************************************** - * This project provides two demo applications. A simple blinky style project, - * and a more comprehensive test and demo application. The - * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting (defined in this file) is used to - * select between the two. The simply blinky demo is implemented and described - * in main_blinky.c. The more comprehensive test and demo application is - * implemented and described in main_full.c. - * - * This file implements the code that is not demo specific, including the - * hardware setup and FreeRTOS hook functions. - * - * This project does not provide an example of how to write an RTOS compatible - * interrupt service routine (other than the tick interrupt itself), so this - * file contains the function vAnExampleISR_C_Handler() as a dummy example (that - * is not actually installed) that can be used as a reference. Also see the - * file ExampleISR.s87, and the documentation page for this demo on the - * FreeRTOS.org website for full instructions. - * - * ENSURE TO READ THE DOCUMENTATION PAGE FOR THIS PORT AND DEMO APPLICATION ON - * THE http://www.FreeRTOS.org WEB SITE FOR FULL INFORMATION ON USING THIS DEMO - * APPLICATION, AND ITS ASSOCIATE FreeRTOS ARCHITECTURE PORT! - * - */ - -/* Scheduler include files. */ -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" - -/* Hardware includes. */ -#include "demo_specific_io.h" - -/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to one to run the simple blinky demo, -or 0 to run the more comprehensive test and demo application. */ -#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 1 - -/*-----------------------------------------------------------*/ - -/* - * main_blinky() is used when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 1. - * main_full() is used when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 0. - */ -extern void main_blinky( void ); -extern void main_full( void ); - -/* - * This function is called from the C startup routine to setup the processor - - * in particular the clock source. - */ -int __low_level_init(void); - -/* Prototypes for the standard FreeRTOS callback/hook functions implemented -within this file. */ -void vApplicationMallocFailedHook( void ); -void vApplicationIdleHook( void ); -void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName ); -void vApplicationTickHook( void ); - -/*-----------------------------------------------------------*/ - -/* This variable is not actually used, but provided to allow an example of how -to write an ISR to be included in this file. */ -static xSemaphoreHandle xSemaphore = NULL; - -/* RL78 Option Byte Definition. Watchdog disabled, LVI enabled, OCD interface -enabled. */ -__root __far const unsigned char OptionByte[] @ 0x00C0 = -{ - 0x6eU, 0xffU, 0xe8U, 0x85U -}; - -/* Security byte definition */ -__root __far const unsigned char ucSecurityCode[] @ 0x00C4 = -{ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - -/*-----------------------------------------------------------*/ - -void main( void ) -{ - /* The mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting is described at the top - of this file. */ - #if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1 - { - main_blinky(); - } - #else - { - main_full(); - } - #endif -} -/*-----------------------------------------------------------*/ - -void vAnExampleISR_C_Handler( void ) -{ - /* - * This demo does not include a functional interrupt service routine - so - * this dummy handler (which is not actually installed) is provided as an - * example of how an ISR that needs to cause a context switch needs to be - * implemented. ISRs that do not cause a context switch have no special - * requirements and can be written as per the compiler documentation. - * - * This C function is called from a wrapper function that is implemented - * in assembly code. See vANExampleISR_ASM_Wrapper() in ExampleISR.s87. - * Also see the documentation page for this demo on the FreeRTOS.org website - * for full instructions. - */ -short sHigherPriorityTaskWoken = pdFALSE; - - /* Handler code goes here...*/ - - /* For purposes of demonstration, assume at some point the hander calls - xSemaphoreGiveFromISR().*/ - xSemaphoreGiveFromISR( xSemaphore, &sHigherPriorityTaskWoken ); - - /* If giving the semaphore unblocked a task, and the unblocked task has a - priority higher than or equal to the currently running task, then - sHigherPriorityTaskWoken will have been set to pdTRUE internally within the - xSemaphoreGiveFromISR() function. Passing a pdTRUE value to - portYIELD_FROM_ISR() will cause this interrupt to return directly to the - higher priority unblocked task. */ - portYIELD_FROM_ISR( sHigherPriorityTaskWoken ); -} -/*-----------------------------------------------------------*/ - -int __low_level_init(void) -{ - portDISABLE_INTERRUPTS(); - - /* Set fMX */ - CMC = 0x00; - MSTOP = 1U; - - /* Set fMAIN */ - MCM0 = 0U; - - /* Set fSUB */ - XTSTOP = 1U; - OSMC = 0x10; - - /* Set fCLK */ - CSS = 0U; - - /* Set fIH */ - HIOSTOP = 0U; - - /* LED port initialization. */ - LED_INIT(); - - return pdTRUE; -} -/*-----------------------------------------------------------*/ - -void vApplicationMallocFailedHook( void ) -{ - /* Called if a call to pvPortMalloc() fails because there is insufficient - free memory available in the FreeRTOS heap. pvPortMalloc() is called - internally by FreeRTOS API functions that create tasks, queues, software - timers, and semaphores. The size of the FreeRTOS heap is set by the - configTOTAL_HEAP_SIZE configuration constant in FreeRTOSConfig.h. */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName ) -{ - ( void ) pcTaskName; - ( void ) pxTask; - - /* Run time stack overflow checking is performed if - configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook - function is called if a stack overflow is detected. */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -void vApplicationIdleHook( void ) -{ -volatile size_t xFreeHeapSpace; - - /* This is just a trivial example of an idle hook. It is called on each - cycle of the idle task. It must *NOT* attempt to block. In this case the - idle task just queries the amount of FreeRTOS heap that remains. See the - memory management section on the http://www.FreeRTOS.org web site for memory - management options. If there is a lot of heap memory free then the - configTOTAL_HEAP_SIZE value in FreeRTOSConfig.h can be reduced to free up - RAM. */ - xFreeHeapSpace = xPortGetFreeHeapSize(); - - /* Remove compiler warning about xFreeHeapSpace being set but never used. */ - ( void ) xFreeHeapSpace; -} - - diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/main_blinky.c b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/main_blinky.c deleted file mode 100644 index 78df19403..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/main_blinky.c +++ /dev/null @@ -1,240 +0,0 @@ -/* - FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. - - FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT - http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - - >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. - - FreeRTOS 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 - and the FreeRTOS license exception along with FreeRTOS; if not itcan be - viewed here: http://www.freertos.org/a00114.html and also obtained by - writing to Real Time Engineers Ltd., contact details for whom are available - on the FreeRTOS WEB site. - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, and our new - fully thread aware and reentrant UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems, who sell the code with commercial support, - indemnification and middleware, under the OpenRTOS brand. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. -*/ - -/****************************************************************************** - * NOTE 1: This project provides two demo applications. A simple blinky style - * project, and a more comprehensive test and demo application. The - * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting in main.c is used to select - * between the two. See the notes on using mainCREATE_SIMPLE_BLINKY_DEMO_ONLY - * in main.c. This file implements the simply blinky style version. - * - * NOTE 2: This file only contains the source code that is specific to the - * basic demo. Generic functions, such FreeRTOS hook functions, and functions - * required to configure the hardware, along with an example interrupt service - * routine, are defined in main.c. - ****************************************************************************** - * - * main_blinky() creates one queue, and two tasks. It then starts the - * scheduler. - * - * The Queue Send Task: - * The queue send task is implemented by the prvQueueSendTask() function in - * this file. prvQueueSendTask() sits in a loop that causes it to repeatedly - * block for 200 milliseconds, before sending the value 100 to the queue that - * was created within main_blinky(). Once the value is sent, the task loops - * back around to block for another 200 milliseconds. - * - * The Queue Receive Task: - * The queue receive task is implemented by the prvQueueReceiveTask() function - * in this file. prvQueueReceiveTask() sits in a loop where it repeatedly - * blocks on attempts to read data from the queue that was created within - * main_blinky(). When data is received, the task checks the value of the - * data, and if the value equals the expected 100, toggles the LED. The 'block - * time' parameter passed to the queue receive function specifies that the - * task should be held in the Blocked state indefinitely to wait for data to - * be available on the queue. The queue receive task will only leave the - * Blocked state when the queue send task writes to the queue. As the queue - * send task writes to the queue every 200 milliseconds, the queue receive - * task leaves the Blocked state every 200 milliseconds, and therefore toggles - * the LED every 200 milliseconds. - */ - -/* Standard includes. */ -#include - -/* Kernel includes. */ -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" - -/* Eval board specific definitions. */ -#include "demo_specific_io.h" - -/* Priorities at which the tasks are created. */ -#define mainQUEUE_RECEIVE_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) -#define mainQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) - -/* The rate at which data is sent to the queue. The 200ms value is converted -to ticks using the portTICK_RATE_MS constant. */ -#define mainQUEUE_SEND_FREQUENCY_MS ( 200 / portTICK_RATE_MS ) - -/* The number of items the queue can hold. This is 1 as the receive task -will remove items as they are added, meaning the send task should always find -the queue empty. */ -#define mainQUEUE_LENGTH ( 1 ) - - -/*-----------------------------------------------------------*/ - -/* - * The tasks as described in the comments at the top of this file. - */ -static void prvQueueReceiveTask( void *pvParameters ); -static void prvQueueSendTask( void *pvParameters ); - -/* - * Called by main() to create the simply blinky style application if - * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 1. - */ -void main_blinky( void ); - -/*-----------------------------------------------------------*/ - -/* The queue used by both tasks. */ -static xQueueHandle xQueue = NULL; - -/*-----------------------------------------------------------*/ - -void main_blinky( void ) -{ - /* Create the queue. */ - xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) ); - - if( xQueue != NULL ) - { - /* Start the two tasks as described in the comments at the top of this - file. */ - xTaskCreate( prvQueueReceiveTask, /* The function that implements the task. */ - ( signed char * ) "Rx", /* The text name assigned to the task - for debug only as it is not used by the kernel. */ - configMINIMAL_STACK_SIZE, /* The size of the stack to allocate to the task. */ - NULL, /* The parameter passed to the task - not used in this case. */ - mainQUEUE_RECEIVE_TASK_PRIORITY, /* The priority assigned to the task. */ - NULL ); /* The task handle is not required, so NULL is passed. */ - - xTaskCreate( prvQueueSendTask, ( signed char * ) "TX", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_SEND_TASK_PRIORITY, NULL ); - - /* Start the tasks and timer running. */ - vTaskStartScheduler(); - } - - /* If all is well, the scheduler will now be running, and the following - line will never be reached. If the following line does execute, then - there was insufficient FreeRTOS heap memory available for the idle and/or - timer tasks to be created. See the memory management section on the - FreeRTOS web site for more details. http://www.freertos.org/a00111.html. */ - for( ;; ); -} -/*-----------------------------------------------------------*/ - -static void prvQueueSendTask( void *pvParameters ) -{ -portTickType xNextWakeTime; -const unsigned long ulValueToSend = 100UL; - - /* Remove compiler warning about unused parameter. */ - ( void ) pvParameters; - - /* Initialise xNextWakeTime - this only needs to be done once. */ - xNextWakeTime = xTaskGetTickCount(); - - for( ;; ) - { - /* Place this task in the blocked state until it is time to run again. */ - vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS ); - - /* Send to the queue - causing the queue receive task to unblock and - toggle the LED. 0 is used as the block time so the sending operation - will not block - it shouldn't need to block as the queue should always - be empty at this point in the code. */ - xQueueSend( xQueue, &ulValueToSend, 0U ); - } -} -/*-----------------------------------------------------------*/ - -static void prvQueueReceiveTask( void *pvParameters ) -{ -unsigned long ulReceivedValue; -const unsigned long ulExpectedValue = 100UL; - - /* Remove compiler warning about unused parameter. */ - ( void ) pvParameters; - - for( ;; ) - { - /* Wait until something arrives in the queue - this task will block - indefinitely provided INCLUDE_vTaskSuspend is set to 1 in - FreeRTOSConfig.h. */ - xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY ); - - /* To get here something must have been received from the queue, but - is it the expected value? If it is, toggle the LED. */ - if( ulReceivedValue == ulExpectedValue ) - { - LED_BIT = !LED_BIT; - ulReceivedValue = 0U; - } - } -} -/*-----------------------------------------------------------*/ - diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/main_full.c b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/main_full.c deleted file mode 100644 index 80b2a2ed1..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/main_full.c +++ /dev/null @@ -1,417 +0,0 @@ -/* - FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. - - FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT - http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** - - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - - >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. - - FreeRTOS 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 - and the FreeRTOS license exception along with FreeRTOS; if not itcan be - viewed here: http://www.freertos.org/a00114.html and also obtained by - writing to Real Time Engineers Ltd., contact details for whom are available - on the FreeRTOS WEB site. - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, and our new - fully thread aware and reentrant UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems, who sell the code with commercial support, - indemnification and middleware, under the OpenRTOS brand. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. -*/ - -/****************************************************************************** - * NOTE 1: This project provides two demo applications. A simple blinky style - * project, and a more comprehensive test and demo application. The - * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting in main.c is used to select - * between the two. See the notes on using mainCREATE_SIMPLE_BLINKY_DEMO_ONLY - * in main.c. This file implements the comprehensive test and demo version. - * - * NOTE 2: This file only contains the source code that is specific to the - * full demo. Generic functions, such FreeRTOS hook functions, and functions - * required to configure the hardware, along with an example of how to write an - * interrupt service routine, are defined in main.c. - ****************************************************************************** - * - * main_full() creates all the demo application tasks and two software timers, - * then starts the scheduler. The web documentation provides more details of - * the standard demo application tasks, which provide no particular - * functionality, but do provide a good example of how to use the FreeRTOS API. - * - * In addition to the standard demo tasks, the following tasks, tests and - * timers are created within this file: - * - * "Reg test" tasks - These fill the registers with known values, then check - * that each register still contains its expected value. Each task uses a - * different set of values. The reg test tasks execute with a very low priority, - * so get preempted very frequently. A register containing an unexpected value - * is indicative of an error in the context switching mechanism. - * - * The "Demo" Timer and Callback Function: - * The demo timer callback function does nothing more than increment a variable. - * The period of the demo timer is set relative to the period of the check timer - * (described below). This allows the check timer to know how many times the - * demo timer callback function should execute between each execution of the - * check timer callback function. The variable incremented in the demo timer - * callback function is used to determine how many times the callback function - * has executed. - * - * The "Check" Timer and Callback Function: - * The check timer period is initially set to three seconds. The check timer - * callback function checks that all the standard demo tasks, the reg test - * tasks, and the demo timer are not only still executing, but are executing - * without reporting any errors. If the check timer discovers that a task or - * timer has stalled, or reported an error, then it changes its own period from - * the initial three seconds, to just 200ms. The check timer callback function - * also toggles an LED each time it is called. This provides a visual - * indication of the system status: If the LED toggles every three seconds, - * then no issues have been discovered. If the LED toggles every 200ms, then - * an issue has been discovered with at least one task. - * - * ENSURE TO READ THE DOCUMENTATION PAGE FOR THIS PORT AND DEMO APPLICATION ON - * THE http://www.FreeRTOS.org WEB SITE FOR FULL INFORMATION ON USING THIS DEMO - * APPLICATION, AND ITS ASSOCIATE FreeRTOS ARCHITECTURE PORT! - * - */ - -/* Scheduler include files. */ -#include "FreeRTOS.h" -#include "task.h" -#include "timers.h" - -/* Standard demo includes. */ -#include "dynamic.h" -#include "PollQ.h" -#include "blocktim.h" - -/* Hardware includes. */ -#include "demo_specific_io.h" - -/* The period at which the check timer will expire, in ms, provided no errors -have been reported by any of the standard demo tasks. ms are converted to the -equivalent in ticks using the portTICK_RATE_MS constant. */ -#define mainCHECK_TIMER_PERIOD_MS ( 3000UL / portTICK_RATE_MS ) - -/* The period at which the check timer will expire, in ms, if an error has been -reported in one of the standard demo tasks, the check tasks, or the demo timer. -ms are converted to the equivalent in ticks using the portTICK_RATE_MS -constant. */ -#define mainERROR_CHECK_TIMER_PERIOD_MS ( 200UL / portTICK_RATE_MS ) - -/* These two definitions are used to set the period of the demo timer. The demo -timer period is always relative to the check timer period, so the check timer -can determine if the demo timer has expired the expected number of times between -its own executions. */ -#define mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT ( 100UL ) -#define mainDEMO_TIMER_PERIOD_MS ( mainCHECK_TIMER_PERIOD_MS / mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT ) - -/* A block time of zero simply means "don't block". */ -#define mainDONT_BLOCK ( 0U ) - -/* Values that are passed as parameters into the reg test tasks (purely to -ensure task parameters are passed correctly). */ -#define mainREG_TEST_1_PARAMETER ( ( void * ) 0x1234 ) -#define mainREG_TEST_2_PARAMETER ( ( void * ) 0x5678 ) - -/*-----------------------------------------------------------*/ - -/* - * The 'check' timer callback function, as described at the top of this file. - */ -static void prvCheckTimerCallback( xTimerHandle xTimer ); - -/* - * The 'demo' timer callback function, as described at the top of this file. - */ -static void prvDemoTimerCallback( xTimerHandle xTimer ); - -/* - * Functions that define the RegTest tasks, as described at the top of this - * file. The RegTest tasks are written (necessarily) in assembler. Their - * entry points are written in C to allow for easy checking of the task - * parameter values. - */ -extern void vRegTest1Task( void ); -extern void vRegTest2Task( void ); -static void prvRegTest1Entry( void *pvParameters ); -static void prvRegTest2Entry( void *pvParameters ); - -/* - * Called if a RegTest task discovers an error as a mechanism to stop the - * tasks loop counter incrementing (so the check task can detect that an - * error exists). - */ -void vRegTestError( void ); - -/* - * Called by main() to create the more comprehensive application if - * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 0. - */ -void main_full( void ); - -/*-----------------------------------------------------------*/ - -/* Variables that are incremented on each cycle of the two reg tests to allow -the check timer to know that they are still executing. */ -unsigned short usRegTest1LoopCounter = 0, usRegTest2LoopCounter; - -/* The check timer. This uses prvCheckTimerCallback() as its callback -function. */ -static xTimerHandle xCheckTimer = NULL; - -/* The demo timer. This uses prvDemoTimerCallback() as its callback function. */ -static xTimerHandle xDemoTimer = NULL; - -/* This variable is incremented each time the demo timer expires. */ -static volatile unsigned long ulDemoSoftwareTimerCounter = 0UL; - -/*-----------------------------------------------------------*/ - -void main_full( void ) -{ - /* Creates all the tasks and timers, then starts the scheduler. */ - - /* First create the 'standard demo' tasks. These are used to demonstrate - API functions being used and also to test the kernel port. More information - is provided on the FreeRTOS.org WEB site. */ - vStartDynamicPriorityTasks(); - vStartPolledQueueTasks( tskIDLE_PRIORITY ); - vCreateBlockTimeTasks(); - - /* Create the RegTest tasks as described at the top of this file. */ - xTaskCreate( prvRegTest1Entry, /* The function that implements the task. */ - ( const signed char * ) "Reg1",/* Text name for the task - to assist debugging only, not used by the kernel. */ - configMINIMAL_STACK_SIZE, /* The size of the stack allocated to the task (in words, not bytes). */ - mainREG_TEST_1_PARAMETER, /* The parameter passed into the task. */ - tskIDLE_PRIORITY, /* The priority at which the task will execute. */ - NULL ); /* Used to pass the handle of the created task out to the function caller - not used in this case. */ - - xTaskCreate( prvRegTest2Entry, ( const signed char * ) "Reg2", configMINIMAL_STACK_SIZE, mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL ); - - /* Create the software timer that performs the 'check' functionality, - as described at the top of this file. */ - xCheckTimer = xTimerCreate( ( const signed char * ) "CheckTimer",/* A text name, purely to help debugging. */ - ( mainCHECK_TIMER_PERIOD_MS ), /* The timer period, in this case 3000ms (3s). */ - pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */ - ( void * ) 0, /* The ID is not used, so can be set to anything. */ - prvCheckTimerCallback /* The callback function that inspects the status of all the other tasks. */ - ); - - /* Create the software timer that just increments a variable for demo - purposes. */ - xDemoTimer = xTimerCreate( ( const signed char * ) "DemoTimer",/* A text name, purely to help debugging. */ - ( mainDEMO_TIMER_PERIOD_MS ), /* The timer period, in this case it is always calculated relative to the check timer period (see the definition of mainDEMO_TIMER_PERIOD_MS). */ - pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */ - ( void * ) 0, /* The ID is not used, so can be set to anything. */ - prvDemoTimerCallback /* The callback function that inspects the status of all the other tasks. */ - ); - - /* Start both the check timer and the demo timer. The timers won't actually - start until the scheduler is started. */ - xTimerStart( xCheckTimer, mainDONT_BLOCK ); - xTimerStart( xDemoTimer, mainDONT_BLOCK ); - - /* Finally start the scheduler running. */ - vTaskStartScheduler(); - - /* If all is well execution will never reach here as the scheduler will be - running. If this null loop is reached then it is likely there was - insufficient FreeRTOS heap available for the idle task and/or timer task to - be created. See http://www.freertos.org/a00111.html. */ - for( ;; ); -} -/*-----------------------------------------------------------*/ - -static void prvDemoTimerCallback( xTimerHandle xTimer ) -{ - /* Remove compiler warning about unused parameter. */ - ( void ) xTimer; - - /* The demo timer has expired. All it does is increment a variable. The - period of the demo timer is relative to that of the check timer, so the - check timer knows how many times this variable should have been incremented - between each execution of the check timer's own callback. */ - ulDemoSoftwareTimerCounter++; -} -/*-----------------------------------------------------------*/ - -static void prvCheckTimerCallback( xTimerHandle xTimer ) -{ -static portBASE_TYPE xChangedTimerPeriodAlready = pdFALSE, xErrorStatus = pdPASS; -static unsigned short usLastRegTest1Counter = 0, usLastRegTest2Counter = 0; - - /* Remove compiler warning about unused parameter. */ - ( void ) xTimer; - - /* Inspect the status of the standard demo tasks. */ - if( xAreDynamicPriorityTasksStillRunning() != pdTRUE ) - { - xErrorStatus = pdFAIL; - } - - if( xArePollingQueuesStillRunning() != pdTRUE ) - { - xErrorStatus = pdFAIL; - } - - if( xAreBlockTimeTestTasksStillRunning() != pdTRUE ) - { - xErrorStatus = pdFAIL; - } - - /* Indicate an error if either of the reg test loop counters have not - incremented since the last time this function was called. */ - if( usLastRegTest1Counter == usRegTest1LoopCounter ) - { - xErrorStatus = pdFAIL; - } - else - { - usLastRegTest1Counter = usRegTest1LoopCounter; - } - - if( usLastRegTest2Counter == usRegTest2LoopCounter ) - { - xErrorStatus = pdFAIL; - } - else - { - usLastRegTest2Counter = usRegTest2LoopCounter; - } - - /* Ensure that the demo software timer has expired - mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT times in between - each call of this function. A critical section is not required to access - ulDemoSoftwareTimerCounter as the variable is only accessed from another - software timer callback, and only one software timer callback can be - executing at any time. */ - if( ( ulDemoSoftwareTimerCounter < ( mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT - 1 ) ) || - ( ulDemoSoftwareTimerCounter > ( mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT + 1 ) ) - ) - { - xErrorStatus = pdFAIL; - } - else - { - ulDemoSoftwareTimerCounter = 0UL; - } - - if( ( xErrorStatus == pdFAIL ) && ( xChangedTimerPeriodAlready == pdFALSE ) ) - { - /* An error has occurred, but the timer's period has not yet been changed, - change it now, and remember that it has been changed. Shortening the - timer's period means the LED will toggle at a faster rate, giving a - visible indication that something has gone wrong. */ - xChangedTimerPeriodAlready = pdTRUE; - - /* This call to xTimerChangePeriod() uses a zero block time. Functions - called from inside of a timer callback function must *never* attempt to - block. */ - xTimerChangePeriod( xCheckTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK ); - } - - /* Toggle the LED. The toggle rate will depend on whether or not an error - has been found in any tasks. */ - LED_BIT = !LED_BIT; -} -/*-----------------------------------------------------------*/ - -void vRegTestError( void ) -{ - /* Called by both reg test tasks if an error is found. There is no way out - of this function so the loop counter of the calling task will stop - incrementing, which will result in the check timer signaling an error. */ - for( ;; ); -} -/*-----------------------------------------------------------*/ - -static void prvRegTest1Entry( void *pvParameters ) -{ - /* If the parameter has its expected value then start the first reg test - task (this is only done to test that the RTOS port is correctly handling - task parameters. */ - if( pvParameters == mainREG_TEST_1_PARAMETER ) - { - vRegTest1Task(); - } - else - { - vRegTestError(); - } - - /* It is not possible to get here as neither of the two functions called - above will ever return. */ -} -/*-----------------------------------------------------------*/ - -static void prvRegTest2Entry( void *pvParameters ) -{ - /* If the parameter has its expected value then start the first reg test - task (this is only done to test that the RTOS port is correctly handling - task parameters. */ - if( pvParameters == mainREG_TEST_2_PARAMETER ) - { - vRegTest2Task(); - } - else - { - vRegTestError(); - } - - /* It is not possible to get here as neither of the two functions called - above will ever return. */ -} -/*-----------------------------------------------------------*/ - diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.cspy.bat b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.cspy.bat deleted file mode 100644 index 3ee2603b8..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.cspy.bat +++ /dev/null @@ -1,24 +0,0 @@ -@REM This batch file has been generated by the IAR Embedded Workbench -@REM C-SPY Debugger, as an aid to preparing a command line for running -@REM the cspybat command line utility using the appropriate settings. -@REM -@REM Note that this file is generated every time a new debug session -@REM is initialized, so you may want to move or rename the file before -@REM making changes. -@REM -@REM You can launch cspybat by typing the name of this batch file followed -@REM by the name of the debug file (usually an ELF/DWARF or UBROF file). -@REM -@REM Read about available command line parameters in the C-SPY Debugging -@REM Guide. Hints about additional command line parameters that may be -@REM useful in specific cases: -@REM --download_only Downloads a code image without starting a debug -@REM session afterwards. -@REM --silent Omits the sign-on message. -@REM --timeout Limits the maximum allowed execution time. -@REM - - -"C:\devtools\IAR Systems\Embedded Workbench 6.5\common\bin\cspybat" "C:\devtools\IAR Systems\Embedded Workbench 6.5\rl78\bin\rl78proc.dll" "C:\devtools\IAR Systems\Embedded Workbench 6.5\rl78\bin\rl78ocd.dll" %1 --plugin "C:\devtools\IAR Systems\Embedded Workbench 6.5\rl78\bin\rl78bat.dll" --backend -B "--core" "rl78_1" "--near_const_location" "rom0" "--near_const_start" "0xf2000" "--near_const_size" "24.00" "-p" "C:\devtools\IAR Systems\Embedded Workbench 6.5\rl78\config\debugger\ior5f10jgc.ddf" "-d" "e1" - - diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt deleted file mode 100644 index 240a38a67..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - 20912 - - - - - - 2068418245 - - - - - - - 154272727 - - - - - - 200111Disassembly_I05002000 - 100200200ExpressionLocationTypeValue100150100100 - - - - - - - - TabID-30626-17561 - Debug Log - Debug-Log - - - - TabID-30103-17570 - Build - Build - - - - - 0 - - - TabID-8606-17564 - Workspace - Workspace - - - RTOSDemoRTOSDemo/Demo SourceRTOSDemo/Demo Source/StandardDemosRTOSDemo/Kernel SourceRTOSDemo/Output - - - - 0 - - - - - - TextEditor$WS_DIR$\main.c000001477550755000100000010000001 - - - - - - - iaridepm.enu1debuggergui.enu1rl78ocd.enu1-2-2614228-2-29853578147136905627291-2-22761682-2-21684278100238128309653578147 - - - - diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni deleted file mode 100644 index 1f7a62ed4..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni +++ /dev/null @@ -1,205 +0,0 @@ -[DebugChecksum] -Checksum=573869402 -[DisAssemblyWindow] -NumStates=_ 1 -State 1=_ 1 -[InstructionProfiling] -Enabled=_ 0 -[CodeCoverage] -Enabled=_ 0 -[E1] -Map0=0,0,65535,65536 -Map1=1,1044224,1048319,4096 -MapEntries=2 -HWsettings=2,0,1,2,4,0,1,0,17,17,0 -HWsettingsCube=2,4294967295,2,4294967295,0,1,0,0 -HWsettingsRsuid=00000000000000000000 -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=128,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,trace.txt -LastDevFile=DR5F10ELE.DVF -EmulType=64 -BreakToggle=0 -EventLimits=0,1,1,0,0,0,1 -LastSetupFailed=0 -ForceHwSetup=0 -[StackPlugin] -Enabled=1 -OverflowWarningsEnabled=1 -WarningThreshold=90 -SpWarningsEnabled=1 -WarnHow=0 -UseTrigger=1 -TriggerName=main -LimitSize=0 -ByteLimit=50 -[TK] -LastSetupFailed=0 -Map0=0,0,65535,65536 -Map1=1,1044224,1048319,4096 -MapEntries=2 -HWsettings=2,0,1,2,4,0,1,0,16,1,0 -HWsettingsCube=2,4294967295,2,4294967295,0,1,0,0 -HWsettingsRsuid=00000000000000000000 -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=128,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,trace.txt -LastDevFile=DR5F100LE.DVF -EmulType=256 -BreakToggle=0 -EventLimits=0,1,1,0,0,0,1 -ForceHwSetup=0 -[Stack] -FillEnabled=0 -OverflowWarningsEnabled=1 -WarningThreshold=90 -SpWarningsEnabled=0 -WarnLogOnly=1 -UseTrigger=1 -TriggerName=main -LimitSize=0 -ByteLimit=50 -[CallStack] -ShowArgs=0 -[Disassembly] -MixedMode=1 -[InterruptLog] -LogEnabled=0 -SumEnabled=0 -GraphEnabled=0 -ShowTimeLog=1 -ShowTimeSum=1 -SumSortOrder=0 -[DataLog] -LogEnabled=0 -SumEnabled=0 -GraphEnabled=0 -ShowTimeLog=1 -ShowTimeSum=1 -[Breakpoints2] -Count=0 -[Interrupts] -Enabled=1 -[MemoryMap] -Enabled=0 -Base=0 -UseAuto=0 -TypeViolation=1 -UnspecRange=1 -ActionState=1 -[Trace1] -Enabled=0 -ShowSource=1 -[DataSample] -LogEnabled=0 -GraphEnabled=0 -ShowTimeLog=1 -ShowTimeSum=1 -[Log file] -LoggingEnabled=_ 0 -LogFile=_ "" -Category=_ 0 -[TermIOLog] -LoggingEnabled=_ 0 -LogFile=_ "" -[TraceHelper] -Enabled=0 -ShowSource=1 -[CallStackLog] -Enabled=0 -[DriverProfiling] -Enabled=0 -Mode=0 -Graph=0 -Symbiont=0 -Exclusions= -[Breakpoints] -Count=0 -[Aliases] -A0=_ "C:\Data\RL78_STICK\FreeRTOSV6.1.1\Source\portable\IAR\RL78\portasm.s87" "E:\Data\RL78_STICK\FreeRTOSV6.1.1\Source\portable\IAR\RL78\portasm.s87" -Count=1 -SuppressDialog=1 diff --git a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt b/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt deleted file mode 100644 index db581bce1..000000000 --- a/FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - RTOSDemo/RSKRL78G1C - - - - - - - - - 263272727 - - 206841824520121811143962753 - - - - - - TabID-25565-17041 - Workspace - Workspace - - - RTOSDemoRTOSDemo/Demo SourceRTOSDemo/Output - - - - 0TabID-4654-17433BuildBuildTabID-7454-1824Find in FilesFind-in-FilesTabID-32199-1847Debug LogDebug-Log0 - - - - - - TextEditor$WS_DIR$\main.c0000014775507550TextEditor$WS_DIR$\demo_specific_io.h00000644262426210100000010000001 - - - - - - - iaridepm.enu1-2-2749337-2-29625615157291676263747201786764766-2-21891682-2-21684191100238119450175196437952138 - - - - diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/ExampleISR.s87 b/FreeRTOS/Demo/RL78_multiple_IAR/ExampleISR.s87 new file mode 100644 index 000000000..df5fcba56 --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/ExampleISR.s87 @@ -0,0 +1,134 @@ +; FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. +; +; FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT +; http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. +; +; *************************************************************************** +; * * +; * FreeRTOS tutorial books are available in pdf and paperback. * +; * Complete, revised, and edited pdf reference manuals are also * +; * available. * +; * * +; * Purchasing FreeRTOS documentation will not only help you, by * +; * ensuring you get running as quickly as possible and with an * +; * in-depth knowledge of how to use FreeRTOS, it will also help * +; * the FreeRTOS project to continue with its mission of providing * +; * professional grade, cross platform, de facto standard solutions * +; * for microcontrollers - completely free of charge! * +; * * +; * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * +; * * +; * Thank you for using FreeRTOS, and thank you for your support! * +; * * +; *************************************************************************** +; +; +; This file is part of the FreeRTOS distribution. +; +; FreeRTOS is free software; you can redistribute it and/or modify it under +; the terms of the GNU General Public License (version 2) as published by the +; Free Software Foundation AND MODIFIED BY the FreeRTOS exception. +; +; >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to +; distribute a combined work that includes FreeRTOS without being obliged to +; provide the source code for proprietary components outside of the FreeRTOS +; kernel. +; +; FreeRTOS 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 +; and the FreeRTOS license exception along with FreeRTOS; if not itcan be +; viewed here: http://www.freertos.org/a00114.html and also obtained by +; writing to Real Time Engineers Ltd., contact details for whom are available +; on the FreeRTOS WEB site. +; +; 1 tab == 4 spaces! +; +; *************************************************************************** +; * * +; * Having a problem? Start by reading the FAQ "My application does * +; * not run, what could be wrong?" * +; * * +; * http://www.FreeRTOS.org/FAQHelp.html * +; * * +; *************************************************************************** +; +; +; http://www.FreeRTOS.org - Documentation, books, training, latest versions, +; license and Real Time Engineers Ltd. contact details. +; +; http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, +; including FreeRTOS+Trace - an indispensable productivity tool, and our new +; fully thread aware and reentrant UDP/IP stack. +; +; http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High +; Integrity Systems, who sell the code with commercial support, +; indemnification and middleware, under the OpenRTOS brand. +; +; http://www.SafeRTOS.com - High Integrity Systems also provide a safety +; engineered and independently SIL3 certified version for use in safety and +; mission critical applications that require provable dependability. + +;* +; * This file defines the assembler wrapper for the example interrupt that is +; * defined in main.c. The wrapper is the interrupt entry point. +; * + +; ISR_Support.h contains the definitions of portSAVE_CONTEXT() and +; portRESTORE_CONTEXT(). +#include "ISR_Support.h" + + PUBLIC vANExampleISR_ASM_Wrapper + EXTERN vAnExampleISR_C_Handler + + RSEG CODE:CODE + +; * +; * This demo does not include a functional interrupt service routine - so +; * this dummy handler (which is not actually installed) is provided as an +; * example of how an ISR that needs to cause a context switch needs to be +; * implemented. ISRs that do not cause a context switch have no special +; * requirements and can be written as per the compiler documentation. +; * +; * This assembly wrapper function calls the main handler, which is called +; * vAnExampleISR_C_Handler(), and is implemented in main.c. See the +; * documentation page for this demo on the FreeRTOS.org website for full +; * instructions. +; * +; * NOTE: vANExampleISR_ASM_Wrapper needs to be installed into the relevant +; * vector, an example of how to do this from an assembly file is locate at +; * the bottom of this file. +; * + + vANExampleISR_ASM_Wrapper: + +; portSAVE_CONTEXT() must be the first thing called in the ASM +; wrapper. + portSAVE_CONTEXT + +; Once the context has been saved the C handler can be called. + call !!vAnExampleISR_C_Handler + +; Finally the ISR must end with a call to portRESTORE_CONTEXT() +; followed by a reti instruction to return from the interrupt to whichever +; task is now the task selected to run (which may be different to the task +; that was running before the interrupt started). + portRESTORE_CONTEXT + reti + + +; The interrupt handler can be installed into the vector table in the same +; assembly file. + +; Ensure the vector table segement is used. + COMMON INTVEC:CODE:ROOT(1) +; +; Place a pointer to the asm wrapper at the correct index into the vector +; table. Note 56 is used is purely as an example. The correct vector +; number for the interrupt being installed must be used. + ORG 58 + DW vANExampleISR_ASM_Wrapper + + END + diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/RL78_multiple_IAR/FreeRTOSConfig.h new file mode 100644 index 000000000..0224421c2 --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/FreeRTOSConfig.h @@ -0,0 +1,150 @@ +/* + FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. + + FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT + http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + + >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. + + FreeRTOS 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 + and the FreeRTOS license exception along with FreeRTOS; if not itcan be + viewed here: http://www.freertos.org/a00114.html and also obtained by + writing to Real Time Engineers Ltd., contact details for whom are available + on the FreeRTOS WEB site. + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, and our new + fully thread aware and reentrant UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems, who sell the code with commercial support, + indemnification and middleware, under the OpenRTOS brand. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. +*/ + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * 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. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* This #ifdef prevents the enclosed code being included from within an +asm file. It is valid in a C file, but not valid in an asm file. */ +#ifdef __IAR_SYSTEMS_ICC__ + + #pragma system_include + #include + +#endif /* __IAR_SYSTEMS_ICC__ */ + +/* Include hardware dependent header files to allow this demo to run on +multiple evaluation boards. */ +#include "demo_specific_io.h" + +#define configUSE_PREEMPTION 1 +#define configTICK_RATE_HZ ( ( unsigned short ) 1000 ) +#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 ) +#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 80 ) +#define configMAX_TASK_NAME_LEN ( 10 ) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 1 +#define configIDLE_SHOULD_YIELD 1 +#define configTOTAL_HEAP_SIZE ( (size_t ) ( 3420 ) ) +#define configCHECK_FOR_STACK_OVERFLOW 2 +#define configUSE_MUTEXES 1 + +/* Hook function definitions. */ +#define configUSE_IDLE_HOOK 1 +#define configUSE_TICK_HOOK 0 +#define configUSE_MALLOC_FAILED_HOOK 1 + +/* Software timer definitions. */ +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY ( 2 ) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 ) + +/* 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 1 +#define INCLUDE_uxTaskPriorityGet 1 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_vTaskDelay 1 +#define INCLUDE_xTaskGetIdleTaskHandle 0 +#define INCLUDE_xTimerGetTimerDaemonTaskHandle 0 + +/* Tick interrupt vector - this must match the INTIT_vect definition contained +in the ior5fnnnn.h header file included at the top of this file (the value is +dependent on the hardware being used. */ +#define configTICK_VECTOR INTIT_vect + +#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); } + +#endif /* FREERTOS_CONFIG_H */ + diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.ewd b/FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.ewd new file mode 100644 index 000000000..d0d8eedf7 --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.ewd @@ -0,0 +1,1502 @@ + + + + 2 + + YRPBRL78G13 + + RL78 + + 1 + + C-SPY + 1 + + 0 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E1RL78 + 1 + + 1 + 1 + 1 + + + + + + + + + + E20RL78 + 1 + + 1 + 1 + 1 + + + + + + + + + + IECRL78 + 1 + + 0 + 1 + 1 + + + + + + + + + + SIMRL78 + 1 + + 0 + 1 + 1 + + + + + TKRL78 + 1 + + 0 + 1 + 1 + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + YRDKRL78G14 + + RL78 + + 1 + + C-SPY + 1 + + 0 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E1RL78 + 1 + + 1 + 1 + 1 + + + + + + + + + + E20RL78 + 1 + + 1 + 1 + 1 + + + + + + + + + + IECRL78 + 1 + + 0 + 1 + 1 + + + + + + + + + + SIMRL78 + 1 + + 0 + 1 + 1 + + + + + TKRL78 + 1 + + 0 + 1 + 1 + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + RSKRL78G1C + + RL78 + + 1 + + C-SPY + 1 + + 0 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E1RL78 + 1 + + 1 + 1 + 1 + + + + + + + + + + E20RL78 + 1 + + 1 + 1 + 1 + + + + + + + + + + IECRL78 + 1 + + 0 + 1 + 1 + + + + + + + + + + SIMRL78 + 1 + + 0 + 1 + 1 + + + + + TKRL78 + 1 + + 0 + 1 + 1 + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + RSKRL78L13 + + RL78 + + 1 + + C-SPY + 1 + + 0 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E1RL78 + 1 + + 1 + 1 + 1 + + + + + + + + + + E20RL78 + 1 + + 1 + 1 + 1 + + + + + + + + + + IECRL78 + 1 + + 0 + 1 + 1 + + + + + + + + + + SIMRL78 + 1 + + 0 + 1 + 1 + + + + + TKRL78 + 1 + + 0 + 1 + 1 + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + RL78_G1A_TB + + RL78 + + 1 + + C-SPY + 1 + + 0 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E1RL78 + 1 + + 1 + 1 + 1 + + + + + + + + + + E20RL78 + 1 + + 1 + 1 + 1 + + + + + + + + + + IECRL78 + 1 + + 0 + 1 + 1 + + + + + + + + + + SIMRL78 + 1 + + 0 + 1 + 1 + + + + + TKRL78 + 1 + + 0 + 1 + 1 + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + + diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.ewp b/FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.ewp new file mode 100644 index 000000000..184d96c26 --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.ewp @@ -0,0 +1,4521 @@ + + + + 2 + + YRPBRL78G13 + + RL78 + + 1 + + General + 5 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCRL78 + 5 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARL78 + 5 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + XLINK + 5 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XAR + 5 + + 0 + 1 + 1 + + + + + + + INTERNAL_HWSUPPORT + 5 + + + + BILINK + 0 + + + + + YRDKRL78G14 + + RL78 + + 1 + + General + 5 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCRL78 + 5 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARL78 + 5 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + XLINK + 5 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XAR + 5 + + 0 + 1 + 1 + + + + + + + INTERNAL_HWSUPPORT + 5 + + + + BILINK + 0 + + + + + RSKRL78G1C + + RL78 + + 1 + + General + 5 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCRL78 + 5 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARL78 + 5 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + XLINK + 5 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XAR + 5 + + 0 + 1 + 1 + + + + + + + INTERNAL_HWSUPPORT + 5 + + + + BILINK + 0 + + + + + RSKRL78L13 + + RL78 + + 1 + + General + 5 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCRL78 + 5 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARL78 + 5 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + XLINK + 5 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XAR + 5 + + 0 + 1 + 1 + + + + + + + INTERNAL_HWSUPPORT + 5 + + + + BILINK + 0 + + + + + RL78_G1A_TB + + RL78 + + 1 + + General + 5 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCRL78 + 5 + + 7 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARL78 + 5 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + XLINK + 5 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XAR + 5 + + 0 + 1 + 1 + + + + + + + INTERNAL_HWSUPPORT + 5 + + + + BILINK + 0 + + + + + Demo Source + + StandardDemos + + $PROJ_DIR$\..\Common\Minimal\blocktim.c + + + $PROJ_DIR$\..\Common\Minimal\dynamic.c + + + $PROJ_DIR$\main_full.c + + + $PROJ_DIR$\..\Common\Minimal\PollQ.c + + + + $PROJ_DIR$\ExampleISR.s87 + + + $PROJ_DIR$\main.c + + + $PROJ_DIR$\main_blinky.c + + + $PROJ_DIR$\RegTest.s87 + + + + Kernel Source + + $PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c + + + $PROJ_DIR$\..\..\Source\list.c + + + $PROJ_DIR$\..\..\Source\portable\IAR\RL78\port.c + + + $PROJ_DIR$\..\..\Source\portable\IAR\RL78\portasm.s87 + + + $PROJ_DIR$\..\..\Source\queue.c + + + $PROJ_DIR$\..\..\Source\tasks.c + + + $PROJ_DIR$\..\..\Source\timers.c + + + + + diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.eww b/FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.eww new file mode 100644 index 000000000..239a9381e --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/RTOSDemo.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\RTOSDemo.ewp + + + + + diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/RegTest.s87 b/FreeRTOS/Demo/RL78_multiple_IAR/RegTest.s87 new file mode 100644 index 000000000..56b399790 --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/RegTest.s87 @@ -0,0 +1,219 @@ +;/* +; FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. +; +; +; *************************************************************************** +; * * +; * FreeRTOS tutorial books are available in pdf and paperback. * +; * Complete, revised, and edited pdf reference manuals are also * +; * available. * +; * * +; * Purchasing FreeRTOS documentation will not only help you, by * +; * ensuring you get running as quickly as possible and with an * +; * in-depth knowledge of how to use FreeRTOS, it will also help * +; * the FreeRTOS project to continue with its mission of providing * +; * professional grade, cross platform, de facto standard solutions * +; * for microcontrollers - completely free of charge! * +; * * +; * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * +; * * +; * Thank you for using FreeRTOS, and thank you for your support! * +; * * +; *************************************************************************** +; +; +; This file is part of the FreeRTOS distribution. +; +; FreeRTOS is free software; you can redistribute it and/or modify it under +; the terms of the GNU General Public License (version 2) as published by the +; Free Software Foundation AND MODIFIED BY the FreeRTOS exception. +; >>>NOTE<<< The modification to the GPL is included to allow you to +; distribute a combined work that includes FreeRTOS without being obliged to +; provide the source code for proprietary components outside of the FreeRTOS +; kernel. FreeRTOS 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 and the FreeRTOS license exception along with FreeRTOS; if not it +; can be viewed here: http://www.freertos.org/a00114.html and also obtained +; by writing to Richard Barry, contact details for whom are available on the +; FreeRTOS WEB site. +; +; 1 tab == 4 spaces! +; +; 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 file defines the RegTest tasks as described at the top of main.c +; + +;------------------------------------------------------------------------------ + + +; Functions implemented in this file +;------------------------------------------------------------------------------ + + PUBLIC vRegTest1Task + PUBLIC vRegTest2Task + +; Functions and variables used by this file +;------------------------------------------------------------------------------ + EXTERN vRegTestError + EXTERN usRegTest1LoopCounter + EXTERN usRegTest2LoopCounter + +;------------------------------------------------------------------------------ +; 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: Created as a task. +; +; Output: NONE +; +;------------------------------------------------------------------------------ + RSEG CODE:CODE +vRegTest1Task: + + ; First fill the registers. + MOVW AX, #0x1122 + MOVW BC, #0x3344 + MOVW DE, #0x5566 + MOVW HL, #0x7788 + MOV CS, #0x01 + +#if __DATA_MODEL__ == __DATA_MODEL_FAR__ + + ; ES is not saved or restored when using the near memory model so only + ; test it when using the far model. + MOV ES, #0x02 + +#endif + +loop1: + + ; Continuously check that the register values remain at their expected + ; values. The BRK is to test the yield. This task runs at low priority + ; so will also regularly get preempted. + BRK + + ; Compare with the expected value. + CMPW AX, #0x1122 + BZ +5 + + ; Jump over the branch to vRegTestError() if the register contained the + ; expected value - otherwise flag an error by executing vRegTestError(). + BR vRegTestError + + ; Repeat for all the registers. + 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 + +#if __DATA_MODEL__ == __DATA_MODEL_FAR__ + + ; ES is not saved or restored when using the near memory model so only + ; test it when using the far model. + MOV A, ES + CMP A, #0x02 + BZ +5 + BR vRegTestError + +#endif + + ; Indicate that this task is still cycling. + INCW usRegTest1LoopCounter + + 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: Created as a task. +; +; Output: NONE +; +;------------------------------------------------------------------------------ + RSEG CODE:CODE +vRegTest2Task: + + MOVW AX, #0x99aa + MOVW BC, #0xbbcc + MOVW DE, #0xddee + MOVW HL, #0xff12 + MOV CS, #0x03 + +#if __DATA_MODEL__ == __DATA_MODEL_FAR__ + + MOV ES, #0x04 + +#endif + +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 + +#if __DATA_MODEL__ == __DATA_MODEL_FAR__ + + MOV A, ES + CMP A, #0x04 + BZ +5 + BR vRegTestError + +#endif + + ; Indicate that this task is still cycling. + INCW usRegTest2LoopCounter + + MOVW AX, #0x99aa + BR loop2 + + + END diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/demo_specific_io.h b/FreeRTOS/Demo/RL78_multiple_IAR/demo_specific_io.h new file mode 100644 index 000000000..0dba58fdf --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/demo_specific_io.h @@ -0,0 +1,124 @@ +/* + FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. + + FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT + http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + + >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. + + FreeRTOS 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 + and the FreeRTOS license exception along with FreeRTOS; if not itcan be + viewed here: http://www.freertos.org/a00114.html and also obtained by + writing to Real Time Engineers Ltd., contact details for whom are available + on the FreeRTOS WEB site. + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, and our new + fully thread aware and reentrant UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems, who sell the code with commercial support, + indemnification and middleware, under the OpenRTOS brand. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. +*/ + +#ifndef LED_IO_H +#define LED_IO_H + +/* Include the register definition file that is correct for the hardware being +used. The C and assembler pre-processor must have one of the following board +definitions defined to have the correct register definition header file +included. Alternatively, just manually include the correct files here. */ + + + #ifdef YRPBRL78G13 + #include "ior5f100le.h" + #include "ior5f100le_ext.h" + #define LED_BIT ( P7_bit.no7 ) + #define LED_INIT() P7 &= 0x7F; PM7 &= 0x7F + #endif /* YRPBRL78G13 */ + + #ifdef YRDKRL78G14 + #include "ior5f104pj.h" + #include "ior5f104pj_ext.h" + #define LED_BIT ( P4_bit.no1 ) + #define LED_INIT() LED_BIT = 0 + #endif /* YRDKRL78G14 */ + + #ifdef RSKRL78G1C + #include "ior5f10jgc.h" + #include "ior5f10jgc_ext.h" + #define LED_BIT ( P0_bit.no1 ) + #define LED_INIT() P0 &= 0xFD; PM0 &= 0xFD + #endif /* RSKRL78G1C */ + + #ifdef RSKRL78L13 + #include "ior5f10wmg.h" + #include "ior5f10wmg_ext.h" + #define LED_BIT ( P4_bit.no1 ) + #define LED_INIT() P4 &= 0xFD; PM4 &= 0xFD + #endif /* RSKRL78L13 */ + + #ifdef RL78_G1A_TB + #include "ior5f10ele.h" + #include "ior5f10ele_ext.h" + #define LED_BIT ( P6_bit.no2 ) + #define LED_INIT() P6 &= 0xFB; PM6 &= 0xFB + #endif /* RL78_G1A_TB */ + + #ifndef LED_BIT + #error The hardware platform is not defined + #endif + +#endif /* LED_IO_H */ + diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/main.c b/FreeRTOS/Demo/RL78_multiple_IAR/main.c new file mode 100644 index 000000000..2b4acff9b --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/main.c @@ -0,0 +1,272 @@ +/* + FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. + + FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT + http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + + >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. + + FreeRTOS 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 + and the FreeRTOS license exception along with FreeRTOS; if not itcan be + viewed here: http://www.freertos.org/a00114.html and also obtained by + writing to Real Time Engineers Ltd., contact details for whom are available + on the FreeRTOS WEB site. + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, and our new + fully thread aware and reentrant UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems, who sell the code with commercial support, + indemnification and middleware, under the OpenRTOS brand. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. +*/ + +/****************************************************************************** + * This project provides two demo applications. A simple blinky style project, + * and a more comprehensive test and demo application. The + * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting (defined in this file) is used to + * select between the two. The simply blinky demo is implemented and described + * in main_blinky.c. The more comprehensive test and demo application is + * implemented and described in main_full.c. + * + * This file implements the code that is not demo specific, including the + * hardware setup and FreeRTOS hook functions. + * + * This project does not provide an example of how to write an RTOS compatible + * interrupt service routine (other than the tick interrupt itself), so this + * file contains the function vAnExampleISR_C_Handler() as a dummy example (that + * is not actually installed) that can be used as a reference. Also see the + * file ExampleISR.s87, and the documentation page for this demo on the + * FreeRTOS.org website for full instructions. + * + * ENSURE TO READ THE DOCUMENTATION PAGE FOR THIS PORT AND DEMO APPLICATION ON + * THE http://www.FreeRTOS.org WEB SITE FOR FULL INFORMATION ON USING THIS DEMO + * APPLICATION, AND ITS ASSOCIATE FreeRTOS ARCHITECTURE PORT! + * + */ + +/* Scheduler include files. */ +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" + +/* Hardware includes. */ +#include "demo_specific_io.h" + +/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to one to run the simple blinky demo, +or 0 to run the more comprehensive test and demo application. */ +#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 1 + +/*-----------------------------------------------------------*/ + +/* + * main_blinky() is used when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 1. + * main_full() is used when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 0. + */ +extern void main_blinky( void ); +extern void main_full( void ); + +/* + * This function is called from the C startup routine to setup the processor - + * in particular the clock source. + */ +int __low_level_init(void); + +/* Prototypes for the standard FreeRTOS callback/hook functions implemented +within this file. */ +void vApplicationMallocFailedHook( void ); +void vApplicationIdleHook( void ); +void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName ); +void vApplicationTickHook( void ); + +/*-----------------------------------------------------------*/ + +/* This variable is not actually used, but provided to allow an example of how +to write an ISR to be included in this file. */ +static xSemaphoreHandle xSemaphore = NULL; + +/* RL78 Option Byte Definition. Watchdog disabled, LVI enabled, OCD interface +enabled. */ +__root __far const unsigned char OptionByte[] @ 0x00C0 = +{ + 0x6eU, 0xffU, 0xe8U, 0x85U +}; + +/* Security byte definition */ +__root __far const unsigned char ucSecurityCode[] @ 0x00C4 = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +/*-----------------------------------------------------------*/ + +void main( void ) +{ + /* The mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting is described at the top + of this file. */ + #if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1 + { + main_blinky(); + } + #else + { + main_full(); + } + #endif +} +/*-----------------------------------------------------------*/ + +void vAnExampleISR_C_Handler( void ) +{ + /* + * This demo does not include a functional interrupt service routine - so + * this dummy handler (which is not actually installed) is provided as an + * example of how an ISR that needs to cause a context switch needs to be + * implemented. ISRs that do not cause a context switch have no special + * requirements and can be written as per the compiler documentation. + * + * This C function is called from a wrapper function that is implemented + * in assembly code. See vANExampleISR_ASM_Wrapper() in ExampleISR.s87. + * Also see the documentation page for this demo on the FreeRTOS.org website + * for full instructions. + */ +short sHigherPriorityTaskWoken = pdFALSE; + + /* Handler code goes here...*/ + + /* For purposes of demonstration, assume at some point the hander calls + xSemaphoreGiveFromISR().*/ + xSemaphoreGiveFromISR( xSemaphore, &sHigherPriorityTaskWoken ); + + /* If giving the semaphore unblocked a task, and the unblocked task has a + priority higher than or equal to the currently running task, then + sHigherPriorityTaskWoken will have been set to pdTRUE internally within the + xSemaphoreGiveFromISR() function. Passing a pdTRUE value to + portYIELD_FROM_ISR() will cause this interrupt to return directly to the + higher priority unblocked task. */ + portYIELD_FROM_ISR( sHigherPriorityTaskWoken ); +} +/*-----------------------------------------------------------*/ + +int __low_level_init(void) +{ + portDISABLE_INTERRUPTS(); + + /* Set fMX */ + CMC = 0x00; + MSTOP = 1U; + + /* Set fMAIN */ + MCM0 = 0U; + + /* Set fSUB */ + XTSTOP = 1U; + OSMC = 0x10; + + /* Set fCLK */ + CSS = 0U; + + /* Set fIH */ + HIOSTOP = 0U; + + /* LED port initialization. */ + LED_INIT(); + + return pdTRUE; +} +/*-----------------------------------------------------------*/ + +void vApplicationMallocFailedHook( void ) +{ + /* Called if a call to pvPortMalloc() fails because there is insufficient + free memory available in the FreeRTOS heap. pvPortMalloc() is called + internally by FreeRTOS API functions that create tasks, queues, software + timers, and semaphores. The size of the FreeRTOS heap is set by the + configTOTAL_HEAP_SIZE configuration constant in FreeRTOSConfig.h. */ + taskDISABLE_INTERRUPTS(); + for( ;; ); +} +/*-----------------------------------------------------------*/ + +void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName ) +{ + ( void ) pcTaskName; + ( void ) pxTask; + + /* Run time stack overflow checking is performed if + configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook + function is called if a stack overflow is detected. */ + taskDISABLE_INTERRUPTS(); + for( ;; ); +} +/*-----------------------------------------------------------*/ + +void vApplicationIdleHook( void ) +{ +volatile size_t xFreeHeapSpace; + + /* This is just a trivial example of an idle hook. It is called on each + cycle of the idle task. It must *NOT* attempt to block. In this case the + idle task just queries the amount of FreeRTOS heap that remains. See the + memory management section on the http://www.FreeRTOS.org web site for memory + management options. If there is a lot of heap memory free then the + configTOTAL_HEAP_SIZE value in FreeRTOSConfig.h can be reduced to free up + RAM. */ + xFreeHeapSpace = xPortGetFreeHeapSize(); + + /* Remove compiler warning about xFreeHeapSpace being set but never used. */ + ( void ) xFreeHeapSpace; +} + + diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/main_blinky.c b/FreeRTOS/Demo/RL78_multiple_IAR/main_blinky.c new file mode 100644 index 000000000..78df19403 --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/main_blinky.c @@ -0,0 +1,240 @@ +/* + FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. + + FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT + http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + + >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. + + FreeRTOS 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 + and the FreeRTOS license exception along with FreeRTOS; if not itcan be + viewed here: http://www.freertos.org/a00114.html and also obtained by + writing to Real Time Engineers Ltd., contact details for whom are available + on the FreeRTOS WEB site. + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, and our new + fully thread aware and reentrant UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems, who sell the code with commercial support, + indemnification and middleware, under the OpenRTOS brand. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. +*/ + +/****************************************************************************** + * NOTE 1: This project provides two demo applications. A simple blinky style + * project, and a more comprehensive test and demo application. The + * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting in main.c is used to select + * between the two. See the notes on using mainCREATE_SIMPLE_BLINKY_DEMO_ONLY + * in main.c. This file implements the simply blinky style version. + * + * NOTE 2: This file only contains the source code that is specific to the + * basic demo. Generic functions, such FreeRTOS hook functions, and functions + * required to configure the hardware, along with an example interrupt service + * routine, are defined in main.c. + ****************************************************************************** + * + * main_blinky() creates one queue, and two tasks. It then starts the + * scheduler. + * + * The Queue Send Task: + * The queue send task is implemented by the prvQueueSendTask() function in + * this file. prvQueueSendTask() sits in a loop that causes it to repeatedly + * block for 200 milliseconds, before sending the value 100 to the queue that + * was created within main_blinky(). Once the value is sent, the task loops + * back around to block for another 200 milliseconds. + * + * The Queue Receive Task: + * The queue receive task is implemented by the prvQueueReceiveTask() function + * in this file. prvQueueReceiveTask() sits in a loop where it repeatedly + * blocks on attempts to read data from the queue that was created within + * main_blinky(). When data is received, the task checks the value of the + * data, and if the value equals the expected 100, toggles the LED. The 'block + * time' parameter passed to the queue receive function specifies that the + * task should be held in the Blocked state indefinitely to wait for data to + * be available on the queue. The queue receive task will only leave the + * Blocked state when the queue send task writes to the queue. As the queue + * send task writes to the queue every 200 milliseconds, the queue receive + * task leaves the Blocked state every 200 milliseconds, and therefore toggles + * the LED every 200 milliseconds. + */ + +/* Standard includes. */ +#include + +/* Kernel includes. */ +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" + +/* Eval board specific definitions. */ +#include "demo_specific_io.h" + +/* Priorities at which the tasks are created. */ +#define mainQUEUE_RECEIVE_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) +#define mainQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) + +/* The rate at which data is sent to the queue. The 200ms value is converted +to ticks using the portTICK_RATE_MS constant. */ +#define mainQUEUE_SEND_FREQUENCY_MS ( 200 / portTICK_RATE_MS ) + +/* The number of items the queue can hold. This is 1 as the receive task +will remove items as they are added, meaning the send task should always find +the queue empty. */ +#define mainQUEUE_LENGTH ( 1 ) + + +/*-----------------------------------------------------------*/ + +/* + * The tasks as described in the comments at the top of this file. + */ +static void prvQueueReceiveTask( void *pvParameters ); +static void prvQueueSendTask( void *pvParameters ); + +/* + * Called by main() to create the simply blinky style application if + * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 1. + */ +void main_blinky( void ); + +/*-----------------------------------------------------------*/ + +/* The queue used by both tasks. */ +static xQueueHandle xQueue = NULL; + +/*-----------------------------------------------------------*/ + +void main_blinky( void ) +{ + /* Create the queue. */ + xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) ); + + if( xQueue != NULL ) + { + /* Start the two tasks as described in the comments at the top of this + file. */ + xTaskCreate( prvQueueReceiveTask, /* The function that implements the task. */ + ( signed char * ) "Rx", /* The text name assigned to the task - for debug only as it is not used by the kernel. */ + configMINIMAL_STACK_SIZE, /* The size of the stack to allocate to the task. */ + NULL, /* The parameter passed to the task - not used in this case. */ + mainQUEUE_RECEIVE_TASK_PRIORITY, /* The priority assigned to the task. */ + NULL ); /* The task handle is not required, so NULL is passed. */ + + xTaskCreate( prvQueueSendTask, ( signed char * ) "TX", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_SEND_TASK_PRIORITY, NULL ); + + /* Start the tasks and timer running. */ + vTaskStartScheduler(); + } + + /* If all is well, the scheduler will now be running, and the following + line will never be reached. If the following line does execute, then + there was insufficient FreeRTOS heap memory available for the idle and/or + timer tasks to be created. See the memory management section on the + FreeRTOS web site for more details. http://www.freertos.org/a00111.html. */ + for( ;; ); +} +/*-----------------------------------------------------------*/ + +static void prvQueueSendTask( void *pvParameters ) +{ +portTickType xNextWakeTime; +const unsigned long ulValueToSend = 100UL; + + /* Remove compiler warning about unused parameter. */ + ( void ) pvParameters; + + /* Initialise xNextWakeTime - this only needs to be done once. */ + xNextWakeTime = xTaskGetTickCount(); + + for( ;; ) + { + /* Place this task in the blocked state until it is time to run again. */ + vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS ); + + /* Send to the queue - causing the queue receive task to unblock and + toggle the LED. 0 is used as the block time so the sending operation + will not block - it shouldn't need to block as the queue should always + be empty at this point in the code. */ + xQueueSend( xQueue, &ulValueToSend, 0U ); + } +} +/*-----------------------------------------------------------*/ + +static void prvQueueReceiveTask( void *pvParameters ) +{ +unsigned long ulReceivedValue; +const unsigned long ulExpectedValue = 100UL; + + /* Remove compiler warning about unused parameter. */ + ( void ) pvParameters; + + for( ;; ) + { + /* Wait until something arrives in the queue - this task will block + indefinitely provided INCLUDE_vTaskSuspend is set to 1 in + FreeRTOSConfig.h. */ + xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY ); + + /* To get here something must have been received from the queue, but + is it the expected value? If it is, toggle the LED. */ + if( ulReceivedValue == ulExpectedValue ) + { + LED_BIT = !LED_BIT; + ulReceivedValue = 0U; + } + } +} +/*-----------------------------------------------------------*/ + diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/main_full.c b/FreeRTOS/Demo/RL78_multiple_IAR/main_full.c new file mode 100644 index 000000000..80b2a2ed1 --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/main_full.c @@ -0,0 +1,417 @@ +/* + FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd. + + FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT + http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS tutorial books are available in pdf and paperback. * + * Complete, revised, and edited pdf reference manuals are also * + * available. * + * * + * Purchasing FreeRTOS documentation will not only help you, by * + * ensuring you get running as quickly as possible and with an * + * in-depth knowledge of how to use FreeRTOS, it will also help * + * the FreeRTOS project to continue with its mission of providing * + * professional grade, cross platform, de facto standard solutions * + * for microcontrollers - completely free of charge! * + * * + * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * + * * + * Thank you for using FreeRTOS, and thank you for your support! * + * * + *************************************************************************** + + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + + >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to + distribute a combined work that includes FreeRTOS without being obliged to + provide the source code for proprietary components outside of the FreeRTOS + kernel. + + FreeRTOS 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 + and the FreeRTOS license exception along with FreeRTOS; if not itcan be + viewed here: http://www.freertos.org/a00114.html and also obtained by + writing to Real Time Engineers Ltd., contact details for whom are available + on the FreeRTOS WEB site. + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, and our new + fully thread aware and reentrant UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems, who sell the code with commercial support, + indemnification and middleware, under the OpenRTOS brand. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. +*/ + +/****************************************************************************** + * NOTE 1: This project provides two demo applications. A simple blinky style + * project, and a more comprehensive test and demo application. The + * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting in main.c is used to select + * between the two. See the notes on using mainCREATE_SIMPLE_BLINKY_DEMO_ONLY + * in main.c. This file implements the comprehensive test and demo version. + * + * NOTE 2: This file only contains the source code that is specific to the + * full demo. Generic functions, such FreeRTOS hook functions, and functions + * required to configure the hardware, along with an example of how to write an + * interrupt service routine, are defined in main.c. + ****************************************************************************** + * + * main_full() creates all the demo application tasks and two software timers, + * then starts the scheduler. The web documentation provides more details of + * the standard demo application tasks, which provide no particular + * functionality, but do provide a good example of how to use the FreeRTOS API. + * + * In addition to the standard demo tasks, the following tasks, tests and + * timers are created within this file: + * + * "Reg test" tasks - These fill the registers with known values, then check + * that each register still contains its expected value. Each task uses a + * different set of values. The reg test tasks execute with a very low priority, + * so get preempted very frequently. A register containing an unexpected value + * is indicative of an error in the context switching mechanism. + * + * The "Demo" Timer and Callback Function: + * The demo timer callback function does nothing more than increment a variable. + * The period of the demo timer is set relative to the period of the check timer + * (described below). This allows the check timer to know how many times the + * demo timer callback function should execute between each execution of the + * check timer callback function. The variable incremented in the demo timer + * callback function is used to determine how many times the callback function + * has executed. + * + * The "Check" Timer and Callback Function: + * The check timer period is initially set to three seconds. The check timer + * callback function checks that all the standard demo tasks, the reg test + * tasks, and the demo timer are not only still executing, but are executing + * without reporting any errors. If the check timer discovers that a task or + * timer has stalled, or reported an error, then it changes its own period from + * the initial three seconds, to just 200ms. The check timer callback function + * also toggles an LED each time it is called. This provides a visual + * indication of the system status: If the LED toggles every three seconds, + * then no issues have been discovered. If the LED toggles every 200ms, then + * an issue has been discovered with at least one task. + * + * ENSURE TO READ THE DOCUMENTATION PAGE FOR THIS PORT AND DEMO APPLICATION ON + * THE http://www.FreeRTOS.org WEB SITE FOR FULL INFORMATION ON USING THIS DEMO + * APPLICATION, AND ITS ASSOCIATE FreeRTOS ARCHITECTURE PORT! + * + */ + +/* Scheduler include files. */ +#include "FreeRTOS.h" +#include "task.h" +#include "timers.h" + +/* Standard demo includes. */ +#include "dynamic.h" +#include "PollQ.h" +#include "blocktim.h" + +/* Hardware includes. */ +#include "demo_specific_io.h" + +/* The period at which the check timer will expire, in ms, provided no errors +have been reported by any of the standard demo tasks. ms are converted to the +equivalent in ticks using the portTICK_RATE_MS constant. */ +#define mainCHECK_TIMER_PERIOD_MS ( 3000UL / portTICK_RATE_MS ) + +/* The period at which the check timer will expire, in ms, if an error has been +reported in one of the standard demo tasks, the check tasks, or the demo timer. +ms are converted to the equivalent in ticks using the portTICK_RATE_MS +constant. */ +#define mainERROR_CHECK_TIMER_PERIOD_MS ( 200UL / portTICK_RATE_MS ) + +/* These two definitions are used to set the period of the demo timer. The demo +timer period is always relative to the check timer period, so the check timer +can determine if the demo timer has expired the expected number of times between +its own executions. */ +#define mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT ( 100UL ) +#define mainDEMO_TIMER_PERIOD_MS ( mainCHECK_TIMER_PERIOD_MS / mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT ) + +/* A block time of zero simply means "don't block". */ +#define mainDONT_BLOCK ( 0U ) + +/* Values that are passed as parameters into the reg test tasks (purely to +ensure task parameters are passed correctly). */ +#define mainREG_TEST_1_PARAMETER ( ( void * ) 0x1234 ) +#define mainREG_TEST_2_PARAMETER ( ( void * ) 0x5678 ) + +/*-----------------------------------------------------------*/ + +/* + * The 'check' timer callback function, as described at the top of this file. + */ +static void prvCheckTimerCallback( xTimerHandle xTimer ); + +/* + * The 'demo' timer callback function, as described at the top of this file. + */ +static void prvDemoTimerCallback( xTimerHandle xTimer ); + +/* + * Functions that define the RegTest tasks, as described at the top of this + * file. The RegTest tasks are written (necessarily) in assembler. Their + * entry points are written in C to allow for easy checking of the task + * parameter values. + */ +extern void vRegTest1Task( void ); +extern void vRegTest2Task( void ); +static void prvRegTest1Entry( void *pvParameters ); +static void prvRegTest2Entry( void *pvParameters ); + +/* + * Called if a RegTest task discovers an error as a mechanism to stop the + * tasks loop counter incrementing (so the check task can detect that an + * error exists). + */ +void vRegTestError( void ); + +/* + * Called by main() to create the more comprehensive application if + * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 0. + */ +void main_full( void ); + +/*-----------------------------------------------------------*/ + +/* Variables that are incremented on each cycle of the two reg tests to allow +the check timer to know that they are still executing. */ +unsigned short usRegTest1LoopCounter = 0, usRegTest2LoopCounter; + +/* The check timer. This uses prvCheckTimerCallback() as its callback +function. */ +static xTimerHandle xCheckTimer = NULL; + +/* The demo timer. This uses prvDemoTimerCallback() as its callback function. */ +static xTimerHandle xDemoTimer = NULL; + +/* This variable is incremented each time the demo timer expires. */ +static volatile unsigned long ulDemoSoftwareTimerCounter = 0UL; + +/*-----------------------------------------------------------*/ + +void main_full( void ) +{ + /* Creates all the tasks and timers, then starts the scheduler. */ + + /* First create the 'standard demo' tasks. These are used to demonstrate + API functions being used and also to test the kernel port. More information + is provided on the FreeRTOS.org WEB site. */ + vStartDynamicPriorityTasks(); + vStartPolledQueueTasks( tskIDLE_PRIORITY ); + vCreateBlockTimeTasks(); + + /* Create the RegTest tasks as described at the top of this file. */ + xTaskCreate( prvRegTest1Entry, /* The function that implements the task. */ + ( const signed char * ) "Reg1",/* Text name for the task - to assist debugging only, not used by the kernel. */ + configMINIMAL_STACK_SIZE, /* The size of the stack allocated to the task (in words, not bytes). */ + mainREG_TEST_1_PARAMETER, /* The parameter passed into the task. */ + tskIDLE_PRIORITY, /* The priority at which the task will execute. */ + NULL ); /* Used to pass the handle of the created task out to the function caller - not used in this case. */ + + xTaskCreate( prvRegTest2Entry, ( const signed char * ) "Reg2", configMINIMAL_STACK_SIZE, mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL ); + + /* Create the software timer that performs the 'check' functionality, + as described at the top of this file. */ + xCheckTimer = xTimerCreate( ( const signed char * ) "CheckTimer",/* A text name, purely to help debugging. */ + ( mainCHECK_TIMER_PERIOD_MS ), /* The timer period, in this case 3000ms (3s). */ + pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */ + ( void * ) 0, /* The ID is not used, so can be set to anything. */ + prvCheckTimerCallback /* The callback function that inspects the status of all the other tasks. */ + ); + + /* Create the software timer that just increments a variable for demo + purposes. */ + xDemoTimer = xTimerCreate( ( const signed char * ) "DemoTimer",/* A text name, purely to help debugging. */ + ( mainDEMO_TIMER_PERIOD_MS ), /* The timer period, in this case it is always calculated relative to the check timer period (see the definition of mainDEMO_TIMER_PERIOD_MS). */ + pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */ + ( void * ) 0, /* The ID is not used, so can be set to anything. */ + prvDemoTimerCallback /* The callback function that inspects the status of all the other tasks. */ + ); + + /* Start both the check timer and the demo timer. The timers won't actually + start until the scheduler is started. */ + xTimerStart( xCheckTimer, mainDONT_BLOCK ); + xTimerStart( xDemoTimer, mainDONT_BLOCK ); + + /* Finally start the scheduler running. */ + vTaskStartScheduler(); + + /* If all is well execution will never reach here as the scheduler will be + running. If this null loop is reached then it is likely there was + insufficient FreeRTOS heap available for the idle task and/or timer task to + be created. See http://www.freertos.org/a00111.html. */ + for( ;; ); +} +/*-----------------------------------------------------------*/ + +static void prvDemoTimerCallback( xTimerHandle xTimer ) +{ + /* Remove compiler warning about unused parameter. */ + ( void ) xTimer; + + /* The demo timer has expired. All it does is increment a variable. The + period of the demo timer is relative to that of the check timer, so the + check timer knows how many times this variable should have been incremented + between each execution of the check timer's own callback. */ + ulDemoSoftwareTimerCounter++; +} +/*-----------------------------------------------------------*/ + +static void prvCheckTimerCallback( xTimerHandle xTimer ) +{ +static portBASE_TYPE xChangedTimerPeriodAlready = pdFALSE, xErrorStatus = pdPASS; +static unsigned short usLastRegTest1Counter = 0, usLastRegTest2Counter = 0; + + /* Remove compiler warning about unused parameter. */ + ( void ) xTimer; + + /* Inspect the status of the standard demo tasks. */ + if( xAreDynamicPriorityTasksStillRunning() != pdTRUE ) + { + xErrorStatus = pdFAIL; + } + + if( xArePollingQueuesStillRunning() != pdTRUE ) + { + xErrorStatus = pdFAIL; + } + + if( xAreBlockTimeTestTasksStillRunning() != pdTRUE ) + { + xErrorStatus = pdFAIL; + } + + /* Indicate an error if either of the reg test loop counters have not + incremented since the last time this function was called. */ + if( usLastRegTest1Counter == usRegTest1LoopCounter ) + { + xErrorStatus = pdFAIL; + } + else + { + usLastRegTest1Counter = usRegTest1LoopCounter; + } + + if( usLastRegTest2Counter == usRegTest2LoopCounter ) + { + xErrorStatus = pdFAIL; + } + else + { + usLastRegTest2Counter = usRegTest2LoopCounter; + } + + /* Ensure that the demo software timer has expired + mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT times in between + each call of this function. A critical section is not required to access + ulDemoSoftwareTimerCounter as the variable is only accessed from another + software timer callback, and only one software timer callback can be + executing at any time. */ + if( ( ulDemoSoftwareTimerCounter < ( mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT - 1 ) ) || + ( ulDemoSoftwareTimerCounter > ( mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEOUT + 1 ) ) + ) + { + xErrorStatus = pdFAIL; + } + else + { + ulDemoSoftwareTimerCounter = 0UL; + } + + if( ( xErrorStatus == pdFAIL ) && ( xChangedTimerPeriodAlready == pdFALSE ) ) + { + /* An error has occurred, but the timer's period has not yet been changed, + change it now, and remember that it has been changed. Shortening the + timer's period means the LED will toggle at a faster rate, giving a + visible indication that something has gone wrong. */ + xChangedTimerPeriodAlready = pdTRUE; + + /* This call to xTimerChangePeriod() uses a zero block time. Functions + called from inside of a timer callback function must *never* attempt to + block. */ + xTimerChangePeriod( xCheckTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK ); + } + + /* Toggle the LED. The toggle rate will depend on whether or not an error + has been found in any tasks. */ + LED_BIT = !LED_BIT; +} +/*-----------------------------------------------------------*/ + +void vRegTestError( void ) +{ + /* Called by both reg test tasks if an error is found. There is no way out + of this function so the loop counter of the calling task will stop + incrementing, which will result in the check timer signaling an error. */ + for( ;; ); +} +/*-----------------------------------------------------------*/ + +static void prvRegTest1Entry( void *pvParameters ) +{ + /* If the parameter has its expected value then start the first reg test + task (this is only done to test that the RTOS port is correctly handling + task parameters. */ + if( pvParameters == mainREG_TEST_1_PARAMETER ) + { + vRegTest1Task(); + } + else + { + vRegTestError(); + } + + /* It is not possible to get here as neither of the two functions called + above will ever return. */ +} +/*-----------------------------------------------------------*/ + +static void prvRegTest2Entry( void *pvParameters ) +{ + /* If the parameter has its expected value then start the first reg test + task (this is only done to test that the RTOS port is correctly handling + task parameters. */ + if( pvParameters == mainREG_TEST_2_PARAMETER ) + { + vRegTest2Task(); + } + else + { + vRegTestError(); + } + + /* It is not possible to get here as neither of the two functions called + above will ever return. */ +} +/*-----------------------------------------------------------*/ + diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/settings/rtosdemo.cspy.bat b/FreeRTOS/Demo/RL78_multiple_IAR/settings/rtosdemo.cspy.bat new file mode 100644 index 000000000..3ee2603b8 --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/settings/rtosdemo.cspy.bat @@ -0,0 +1,24 @@ +@REM This batch file has been generated by the IAR Embedded Workbench +@REM C-SPY Debugger, as an aid to preparing a command line for running +@REM the cspybat command line utility using the appropriate settings. +@REM +@REM Note that this file is generated every time a new debug session +@REM is initialized, so you may want to move or rename the file before +@REM making changes. +@REM +@REM You can launch cspybat by typing the name of this batch file followed +@REM by the name of the debug file (usually an ELF/DWARF or UBROF file). +@REM +@REM Read about available command line parameters in the C-SPY Debugging +@REM Guide. Hints about additional command line parameters that may be +@REM useful in specific cases: +@REM --download_only Downloads a code image without starting a debug +@REM session afterwards. +@REM --silent Omits the sign-on message. +@REM --timeout Limits the maximum allowed execution time. +@REM + + +"C:\devtools\IAR Systems\Embedded Workbench 6.5\common\bin\cspybat" "C:\devtools\IAR Systems\Embedded Workbench 6.5\rl78\bin\rl78proc.dll" "C:\devtools\IAR Systems\Embedded Workbench 6.5\rl78\bin\rl78ocd.dll" %1 --plugin "C:\devtools\IAR Systems\Embedded Workbench 6.5\rl78\bin\rl78bat.dll" --backend -B "--core" "rl78_1" "--near_const_location" "rom0" "--near_const_start" "0xf2000" "--near_const_size" "24.00" "-p" "C:\devtools\IAR Systems\Embedded Workbench 6.5\rl78\config\debugger\ior5f10jgc.ddf" "-d" "e1" + + diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/settings/rtosdemo.dbgdt b/FreeRTOS/Demo/RL78_multiple_IAR/settings/rtosdemo.dbgdt new file mode 100644 index 000000000..240a38a67 --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/settings/rtosdemo.dbgdt @@ -0,0 +1,79 @@ + + + + + + + + + 20912 + + + + + + 2068418245 + + + + + + + 154272727 + + + + + + 200111Disassembly_I05002000 + 100200200ExpressionLocationTypeValue100150100100 + + + + + + + + TabID-30626-17561 + Debug Log + Debug-Log + + + + TabID-30103-17570 + Build + Build + + + + + 0 + + + TabID-8606-17564 + Workspace + Workspace + + + RTOSDemoRTOSDemo/Demo SourceRTOSDemo/Demo Source/StandardDemosRTOSDemo/Kernel SourceRTOSDemo/Output + + + + 0 + + + + + + TextEditor$WS_DIR$\main.c000001477550755000100000010000001 + + + + + + + iaridepm.enu1debuggergui.enu1rl78ocd.enu1-2-2614228-2-29853578147136905627291-2-22761682-2-21684278100238128309653578147 + + + + diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/settings/rtosdemo.dni b/FreeRTOS/Demo/RL78_multiple_IAR/settings/rtosdemo.dni new file mode 100644 index 000000000..1f7a62ed4 --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/settings/rtosdemo.dni @@ -0,0 +1,205 @@ +[DebugChecksum] +Checksum=573869402 +[DisAssemblyWindow] +NumStates=_ 1 +State 1=_ 1 +[InstructionProfiling] +Enabled=_ 0 +[CodeCoverage] +Enabled=_ 0 +[E1] +Map0=0,0,65535,65536 +Map1=1,1044224,1048319,4096 +MapEntries=2 +HWsettings=2,0,1,2,4,0,1,0,17,17,0 +HWsettingsCube=2,4294967295,2,4294967295,0,1,0,0 +HWsettingsRsuid=00000000000000000000 +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=128,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,trace.txt +LastDevFile=DR5F10ELE.DVF +EmulType=64 +BreakToggle=0 +EventLimits=0,1,1,0,0,0,1 +LastSetupFailed=0 +ForceHwSetup=0 +[StackPlugin] +Enabled=1 +OverflowWarningsEnabled=1 +WarningThreshold=90 +SpWarningsEnabled=1 +WarnHow=0 +UseTrigger=1 +TriggerName=main +LimitSize=0 +ByteLimit=50 +[TK] +LastSetupFailed=0 +Map0=0,0,65535,65536 +Map1=1,1044224,1048319,4096 +MapEntries=2 +HWsettings=2,0,1,2,4,0,1,0,16,1,0 +HWsettingsCube=2,4294967295,2,4294967295,0,1,0,0 +HWsettingsRsuid=00000000000000000000 +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=128,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,trace.txt +LastDevFile=DR5F100LE.DVF +EmulType=256 +BreakToggle=0 +EventLimits=0,1,1,0,0,0,1 +ForceHwSetup=0 +[Stack] +FillEnabled=0 +OverflowWarningsEnabled=1 +WarningThreshold=90 +SpWarningsEnabled=0 +WarnLogOnly=1 +UseTrigger=1 +TriggerName=main +LimitSize=0 +ByteLimit=50 +[CallStack] +ShowArgs=0 +[Disassembly] +MixedMode=1 +[InterruptLog] +LogEnabled=0 +SumEnabled=0 +GraphEnabled=0 +ShowTimeLog=1 +ShowTimeSum=1 +SumSortOrder=0 +[DataLog] +LogEnabled=0 +SumEnabled=0 +GraphEnabled=0 +ShowTimeLog=1 +ShowTimeSum=1 +[Breakpoints2] +Count=0 +[Interrupts] +Enabled=1 +[MemoryMap] +Enabled=0 +Base=0 +UseAuto=0 +TypeViolation=1 +UnspecRange=1 +ActionState=1 +[Trace1] +Enabled=0 +ShowSource=1 +[DataSample] +LogEnabled=0 +GraphEnabled=0 +ShowTimeLog=1 +ShowTimeSum=1 +[Log file] +LoggingEnabled=_ 0 +LogFile=_ "" +Category=_ 0 +[TermIOLog] +LoggingEnabled=_ 0 +LogFile=_ "" +[TraceHelper] +Enabled=0 +ShowSource=1 +[CallStackLog] +Enabled=0 +[DriverProfiling] +Enabled=0 +Mode=0 +Graph=0 +Symbiont=0 +Exclusions= +[Breakpoints] +Count=0 +[Aliases] +A0=_ "C:\Data\RL78_STICK\FreeRTOSV6.1.1\Source\portable\IAR\RL78\portasm.s87" "E:\Data\RL78_STICK\FreeRTOSV6.1.1\Source\portable\IAR\RL78\portasm.s87" +Count=1 +SuppressDialog=1 diff --git a/FreeRTOS/Demo/RL78_multiple_IAR/settings/rtosdemo.wsdt b/FreeRTOS/Demo/RL78_multiple_IAR/settings/rtosdemo.wsdt new file mode 100644 index 000000000..db581bce1 --- /dev/null +++ b/FreeRTOS/Demo/RL78_multiple_IAR/settings/rtosdemo.wsdt @@ -0,0 +1,49 @@ + + + + + + RTOSDemo/RSKRL78G1C + + + + + + + + + 263272727 + + 206841824520121811143962753 + + + + + + TabID-25565-17041 + Workspace + Workspace + + + RTOSDemoRTOSDemo/Demo SourceRTOSDemo/Output + + + + 0TabID-4654-17433BuildBuildTabID-7454-1824Find in FilesFind-in-FilesTabID-32199-1847Debug LogDebug-Log0 + + + + + + TextEditor$WS_DIR$\main.c0000014775507550TextEditor$WS_DIR$\demo_specific_io.h00000644262426210100000010000001 + + + + + + + iaridepm.enu1-2-2749337-2-29625615157291676263747201786764766-2-21891682-2-21684191100238119450175196437952138 + + + +