From 4ef77782f73a396cc608a24631e035097472c460 Mon Sep 17 00:00:00 2001 From: RichardBarry Date: Thu, 22 Jan 2009 10:59:24 +0000 Subject: [PATCH] New NEC port - work in progress. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@612 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- Demo/NEC_V850ES_Fx3_IAR/FreeRTOSConfig.h | 112 ++ Demo/NEC_V850ES_Fx3_IAR/LEDtoggle/LED.c | 298 +++ Demo/NEC_V850ES_Fx3_IAR/LEDtoggle/LED.h | 61 + Demo/NEC_V850ES_Fx3_IAR/RegTest.s85 | 355 ++++ Demo/NEC_V850ES_Fx3_IAR/main.c | 253 +++ Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewd | 735 +++++++ Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewp | 1693 +++++++++++++++++ Demo/NEC_V850ES_Fx3_IAR/rtosdemo.eww | 10 + .../settings/rtosdemo.cspy.bat | 32 + .../settings/rtosdemo.dbgdt | 75 + Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dni | 242 +++ .../NEC_V850ES_Fx3_IAR/settings/rtosdemo.wsdt | 49 + 12 files changed, 3915 insertions(+) create mode 100644 Demo/NEC_V850ES_Fx3_IAR/FreeRTOSConfig.h create mode 100644 Demo/NEC_V850ES_Fx3_IAR/LEDtoggle/LED.c create mode 100644 Demo/NEC_V850ES_Fx3_IAR/LEDtoggle/LED.h create mode 100644 Demo/NEC_V850ES_Fx3_IAR/RegTest.s85 create mode 100644 Demo/NEC_V850ES_Fx3_IAR/main.c create mode 100644 Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewd create mode 100644 Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewp create mode 100644 Demo/NEC_V850ES_Fx3_IAR/rtosdemo.eww create mode 100644 Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.cspy.bat create mode 100644 Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dbgdt create mode 100644 Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dni create mode 100644 Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.wsdt diff --git a/Demo/NEC_V850ES_Fx3_IAR/FreeRTOSConfig.h b/Demo/NEC_V850ES_Fx3_IAR/FreeRTOSConfig.h new file mode 100644 index 000000000..b00f5b5f5 --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/FreeRTOSConfig.h @@ -0,0 +1,112 @@ +/* + FreeRTOS.org V5.1.1 - Copyright (C) 2003-2008 Richard Barry. + + This file is part of the FreeRTOS.org distribution. + + FreeRTOS.org is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + FreeRTOS.org is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with FreeRTOS.org; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + A special exception to the GPL can be applied should you wish to distribute + a combined work that includes FreeRTOS.org, without being obliged to provide + the source code for any proprietary components. See the licensing section + of http://www.FreeRTOS.org for full details of how and when the exception + can be applied. + + *************************************************************************** + *************************************************************************** + * * + * SAVE TIME AND MONEY! We can port FreeRTOS.org to your own hardware, * + * and even write all or part of your application on your behalf. * + * See http://www.OpenRTOS.com for details of the services we provide to * + * expedite your project. * + * * + *************************************************************************** + *************************************************************************** + + Please ensure to read the configuration and relevant port sections of the + online documentation. + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/* only include in C files */ +#ifdef __IAR_SYSTEMS_ICC__ +#pragma language=extended +#pragma system_include + +#include +#include "io70f3385.h" + +#endif /* __IAR_SYSTEMS_ICC__ */ + +/* V850ES/Fx3 Memory Model + * 1 = Tiny data model + * 0 = Small/Large data model + */ +#define configDATA_MODE 0 + + + +/* + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + */ +#define configUSE_PREEMPTION 1 +/* only include in C files */ +#ifdef __IAR_SYSTEMS_ICC__ + +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 48000000 ) /* using the external clock source */ +#define configTICK_RATE_HZ ( ( portTickType ) 1000 ) +#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 ) +#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 64 ) +#define configTOTAL_HEAP_SIZE ( (size_t ) ( 9000 ) ) +#define configMAX_TASK_NAME_LEN ( 10 ) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 1 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 1 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 0 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_vTaskDelay 1 + +#endif /* __IAR_SYSTEMS_ICC__ */ + +#endif /* FREERTOS_CONFIG_H */ diff --git a/Demo/NEC_V850ES_Fx3_IAR/LEDtoggle/LED.c b/Demo/NEC_V850ES_Fx3_IAR/LEDtoggle/LED.c new file mode 100644 index 000000000..739584eec --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/LEDtoggle/LED.c @@ -0,0 +1,298 @@ +/* + FreeRTOS.org V5.1.1 - Copyright (C) 2003-2008 Richard Barry. + + This file is part of the FreeRTOS.org distribution. + + FreeRTOS.org is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + FreeRTOS.org is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with FreeRTOS.org; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + A special exception to the GPL can be applied should you wish to distribute + a combined work that includes FreeRTOS.org, without being obliged to provide + the source code for any proprietary components. See the licensing section + of http://www.FreeRTOS.org for full details of how and when the exception + can be applied. + + *************************************************************************** + *************************************************************************** + * * + * SAVE TIME AND MONEY! We can port FreeRTOS.org to your own hardware, * + * and even write all or part of your application on your behalf. * + * See http://www.OpenRTOS.com for details of the services we provide to * + * expedite your project. * + * * + *************************************************************************** + *************************************************************************** + + Please ensure to read the configuration and relevant port sections of the + online documentation. + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +/** + * This is a simple LED toggle test for the V850ES/Fx3. + * + * Creates two task that control one LED each. + * + * The first task toggles a LED with a frequency of 1Hz by using the vTaskDelay + * function. So the task is yielded for 1 seconed after each LED switch. + * + * The second LED also starts with a toggling frequency of 1Hz but this frequency + * can be increased by pushing the switch button conected to pin INTP0. + * When the switch is pushed it is detected by an interrupt. When the interrupt + * occurs a flag is set in the ISR and sent to the third task by using a queue. + * Therefore the xQueueSendFromISR() function is called from within the ISR to + * write the flag value to the queue. The task uses the xQueueReceive() function + * to read the flag value from the queue. + * If the flag value changed from the last task activation the yield time for the + * second LED is incremented by 100ms. If the yield time reaches a time greater + * then 3 seconds it is set back to 1 second within task 3. + * + * Also a check function is implemented to check if the task still run properly + */ + +/* Scheduler include files. */ +#include "FreeRTOS.h" +#include "task.h" + +/* Demo program include files. */ +#include "LED.h" +#include "queue.h" +#include "print.h" + +#define LEDToggleSTACK_SIZE (( unsigned portSHORT ) configMINIMAL_STACK_SIZE) +#define SwitchSTACK_SIZE (( unsigned portSHORT ) configMINIMAL_STACK_SIZE) +#define LED_NUMBER_OF_TASKS 2 + +/* LED toggle wait time and check definitions */ +static portTickType LED1_Wait_Time = 1000; +static portTickType LED2_Wait_Time = 1000; +static portTickType SWITCH_Wait_Time = 50; + +/* Task function prototypes */ +static void vLEDToggleTask1 ( void *pvParameters ); +static void vLEDToggleTask2 ( void *pvParameters ); +static void vSWITCHDelayTask ( void *pvParameters ); + +/* Port Initialization for LED's and Switch */ +static void prvLEDInit(void); + +/* Switch press counter */ +static unsigned portSHORT usClick = 0; +/* Queue used for LED02 toggle*/ +static xQueueHandle xSwitchQueue; + +/*xQUEUE *xLEDQueue;*/ + +static volatile unsigned portSHORT usTask1Check = 0, usTask2Check = 0, usTask3Check = 0, usLEDQueue = 0; + +void vStartLEDToggleTasks( unsigned portBASE_TYPE uxPriority ) +{ + +const unsigned portBASE_TYPE uxQueueSize = 4; + + prvLEDInit(); + + /* Create the queue used by the Switch ISR and the second task. */ + xSwitchQueue = xQueueCreate( uxQueueSize, ( unsigned portBASE_TYPE ) sizeof( unsigned portSHORT ) ); + /* create 2 LED toggle Tasks */ + xTaskCreate(vLEDToggleTask1, "LEDTog1", LEDToggleSTACK_SIZE, ( void * ) &(usTask1Check), uxPriority, NULL ); + xTaskCreate(vLEDToggleTask2, "LEDTog2", LEDToggleSTACK_SIZE, ( void * ) &(usTask2Check), uxPriority, NULL ); + xTaskCreate(vSWITCHDelayTask, "SWITCH", SwitchSTACK_SIZE, ( void * ) &xSwitchQueue, (uxPriority+1), NULL ); +} +/*---------------------------------------------------------------------------*/ +static void vLEDToggleTask1( void *pvParameters) +{ +static portCHAR pcLED1old; +static portCHAR LEDcounter1 = 0; +portSHORT sError = pdFALSE; +volatile unsigned portSHORT *pusTaskCheckVariable; +const portCHAR * const pcTaskFailMsg = "ERROR: LED toggle failed.\r\n"; + + pusTaskCheckVariable = ( unsigned portSHORT * ) pvParameters; + for(;;) + { + pcLED1old = LED01; + LED01 = ~LED01; + LEDcounter1++; + vTaskDelay( LED1_Wait_Time ); + /* toggle the LED01 */ + + if(pcLED1old == LED01) + { + /* an error has occured */ + vPrintDisplayMessage( &pcTaskFailMsg ); + sError = pdTRUE; + } + + if(sError != pdTRUE) + { + /* If a LED toggle has been made, increment the check + variable so we know this task is still running okay. */ + ( *pusTaskCheckVariable )++; + } + } +} +/*-----------------------------------------------------------*/ +static void vLEDToggleTask2( void *pvParameters) +{ +static portCHAR pcLED2old; +portSHORT sError = pdFALSE; +volatile unsigned portSHORT *pusTaskCheckVariable; +const portCHAR * const pcTaskFailMsg = "ERROR: LED toggle failed.\r\n"; + + pusTaskCheckVariable = ( unsigned portSHORT * ) pvParameters; + for(;;) + { + pcLED2old = LED02; + /* toggle the LED02 */ + LED02 = ~LED02; + vTaskDelay( LED2_Wait_Time ); + if(pcLED2old == LED02) + { + /* an error has occured */ + vPrintDisplayMessage( &pcTaskFailMsg ); + sError = pdTRUE; + } + + if(sError != pdTRUE) + { + /* If a LED toggle has been made, increment the check + variable so we know this task is still running okay. */ + ( *pusTaskCheckVariable )++; + } + } +} +/*-----------------------------------------------------------*/ + +static void vSWITCHDelayTask( void *pvParameters) +{ +unsigned portSHORT usData, usDataOld = 0; +xQueueHandle *pxQueue; + + pxQueue = ( xQueueHandle * ) pvParameters; + for(;;) + { + if( xQueueReceive( *pxQueue, &usData, ( portTickType ) 0 ) == pdPASS ) + { + if (usData != usDataOld) + { + LED2_Wait_Time += 100; + if(LED2_Wait_Time >= 3000) + { + LED2_Wait_Time = 1000; + } + } + usDataOld = usData; + } + vTaskDelay( SWITCH_Wait_Time ); + /* increment check variable whenever the task gets active */ + usTask3Check++; + } +} + +portBASE_TYPE xAreLEDToggleTaskStillRunning( void ) +{ +/* + * Keep a history of the check variables so we know if they have been incremented + * since the last call. + */ +static unsigned portSHORT usLastTask1Check = 0; +static unsigned portSHORT usLastTask2Check = 0; +static unsigned portSHORT usLastTask3Check = 0; +portBASE_TYPE xReturn = pdTRUE; + + /* Check the LED toggle tasks are still running by ensuring their check variables + * are still incrementing. + */ + if(( usTask1Check == usLastTask1Check )||(usLastTask2Check == usTask2Check)||(usLastTask3Check == usTask3Check)) + { + /* The check has not incremented so an error exists. */ + xReturn = pdFALSE; + } + + usLastTask1Check = usTask1Check; + usLastTask2Check = usTask2Check; + usLastTask3Check = usTask3Check; + + return xReturn; +} +/*-----------------------------------------------------------*/ + +static void prvLEDInit(void) +{ + + INTR0 = 0x00; + INTR1 = 0x00; + INTR3L = 0x00; + INTR3H = 0x00; + INTR4 = 0x00; + INTR6L = 0x00; + INTR6H = 0x00; + INTR8 = 0x00; + INTR9H = 0x00; + + INTF0 = 0x00; + INTF1 = 0x00; + INTF3L = 0x00; + INTF3H = 0x00; + INTF4 = 0x00; + INTF6L = 0x00; + INTF6H = 0x00; + INTF8 = 0x00; + INTF9H = 0x00; + +/* LED Port Initialization */ +// PCM = 0x00; + PMCM = 0xF2; + PMCCM = 0x00; + +/* Switch Pin Initialization */ + /* INTP0 Setting */ + PMK0 = 1; /* INTP0 disable */ + PIF0 = 0; /* INTP0 IF clear */ + /* Set INTP0 lowest priority */ + PIC0 |= 0x07; + INTR0 |= 0x00; + INTF0 |= 0x08; + /* INTP0 pin set */ + PFC0 &= 0xF7; + PFCE0 &= 0xF7; + PMC0 |= 0x08; + + PIF0 = 0; /* INTP0 IF clear */ + PMK0 = 0; /* INTP0 enable */ +} +/*-----------------------------------------------------------*/ + +/* Switch ISR */ + +#pragma vector=INTP0_vector +__interrupt void MD_INTP0(void) +{ + /* Increment Switch pressed counter */ + usClick++; + /* Use usClick to signalize a detected Interrupt for the vLEDToggleTask2 + * to toggle the LED02. + */ + xQueueSendFromISR( xSwitchQueue, &usClick, pdFALSE ); +} +/*-----------------------------------------------------------*/ \ No newline at end of file diff --git a/Demo/NEC_V850ES_Fx3_IAR/LEDtoggle/LED.h b/Demo/NEC_V850ES_Fx3_IAR/LEDtoggle/LED.h new file mode 100644 index 000000000..244053008 --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/LEDtoggle/LED.h @@ -0,0 +1,61 @@ +/* + FreeRTOS.org V5.1.1 - Copyright (C) 2003-2008 Richard Barry. + + This file is part of the FreeRTOS.org distribution. + + FreeRTOS.org is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + FreeRTOS.org is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with FreeRTOS.org; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + A special exception to the GPL can be applied should you wish to distribute + a combined work that includes FreeRTOS.org, without being obliged to provide + the source code for any proprietary components. See the licensing section + of http://www.FreeRTOS.org for full details of how and when the exception + can be applied. + + *************************************************************************** + *************************************************************************** + * * + * SAVE TIME AND MONEY! We can port FreeRTOS.org to your own hardware, * + * and even write all or part of your application on your behalf. * + * See http://www.OpenRTOS.com for details of the services we provide to * + * expedite your project. * + * * + *************************************************************************** + *************************************************************************** + + Please ensure to read the configuration and relevant port sections of the + online documentation. + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +#ifndef LEDTOGGLE_TASKS_H +#define LEDTOGGLE_TASKS_H + +void vStartLEDToggleTasks( unsigned portBASE_TYPE uxPriority ); +portBASE_TYPE xAreLEDToggleTaskStillRunning( void ); +/* LED Pin Configuration */ +static void prvLEDinit( void ); + +#define LED01 PCM_bit.no3 +#define LED02 PCM_bit.no2 + +#endif \ No newline at end of file diff --git a/Demo/NEC_V850ES_Fx3_IAR/RegTest.s85 b/Demo/NEC_V850ES_Fx3_IAR/RegTest.s85 new file mode 100644 index 000000000..97d349496 --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/RegTest.s85 @@ -0,0 +1,355 @@ +; FreeRTOS.org V5.0.2 - Copyright (C) 2003-2008 Richard Barry. +; +; This file is part of the FreeRTOS.org distribution. +; +; FreeRTOS.org is free software; you can redistribute it and/or modify +; it under the terms of the GNU General Public License as published by +; the Free Software Foundation; either version 2 of the License, or +; (at your option) any later version. +; +; FreeRTOS.org is distributed in the hope that it will be useful, +; but WITHOUT ANY WARRANTY; without even the implied warranty of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +; GNU General Public License for more details. +; +; You should have received a copy of the GNU General Public License +; along with FreeRTOS.org; if not, write to the Free Software +; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +; +; A special exception to the GPL can be applied should you wish to distribute +; a combined work that includes FreeRTOS.org, without being obliged to provide +; the source code for any proprietary components. See the licensing section +; of http://www.FreeRTOS.org for full details of how and when the exception +; can be applied. +; +; *************************************************************************** +; See http://www.FreeRTOS.org for documentation, latest information, license +; and contact details. Please ensure to read the configuration and relevant +; port sections of the online documentation. +; *************************************************************************** +; +;------------------------------------------------------------------------------ +; Note: Select the correct include files for the device used by the application. + + EXTERN vRegTestFailed + +;------------------------------------------------------------------------------ + +; Functions implemented in this file +;------------------------------------------------------------------------------ + PUBLIC vRegTest1 + PUBLIC vRegTest2 + + +;------------------------------------------------------------------------------ +;------------------------------------------------------------------------------ + RSEG CODE:CODE +vRegTest1: + MOV 0x01010101, R1 + MOV 0x02020202, R2 + ; Ignore R3 and R4 as these are the stack and global pointers respectively. + MOV 0x04040404, R5 + MOV 0x05050505, R6 + MOV 0x06060606, R7 + MOV 0x07070707, R8 + MOV 0x08080808, R9 + MOV 0x09090909, R10 + MOV 0x0a0a0a0a, R11 + MOV 0x0b0b0b0b, R12 + MOV 0x0c0c0c0c, R13 + MOV 0x0d0d0d0d, R14 + MOV 0x0e0e0e0e, R15 + MOV 0x0f0f0f0f, R16 + MOV 0x10101010, R17 + MOV 0x11111111, R18 + MOV 0x12121212, R19 + MOV 0x13131313, R20 + MOV 0x14141414, R21 + MOV 0x15151515, R22 + MOV 0x16161616, R23 + MOV 0x17171717, R24 +#if ( configDATA_MODE == 1 ) + ;R25 is used as a base register except when the tiny model is used. */ + MOV 0x18181818, R25 +#endif + MOV 0x19191919, R26 + MOV 0x20202020, R27 + MOV 0x21212121, R28 + MOV 0x22222222, R29 + MOV 0x23232323, R30 + +vReg1TestLoopStart: + MOV 0x01010101, R31 + CMP R31, R1 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x02020202, R31 + CMP R31, R2 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x04040404, R31 + CMP R31, R5 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x05050505, R31 + CMP R31, R6 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x06060606, R31 + CMP R31, R7 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x07070707, R31 + CMP R31, R8 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x08080808, R31 + CMP R31, R9 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x09090909, R31 + CMP R31, R10 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x0a0a0a0a, R31 + CMP R31, R11 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x0b0b0b0b, R31 + CMP R31, R12 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x0c0c0c0c, R31 + CMP R31, R13 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x0d0d0d0d, R31 + CMP R31, R14 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x0e0e0e0e, R31 + CMP R31, R15 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x0f0f0f0f, R31 + CMP R31, R16 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x10101010, R31 + CMP R31, R17 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x11111111, R31 + CMP R31, R18 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x12121212, R31 + CMP R31, R19 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x13131313, R31 + CMP R31, R20 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x14141414, R31 + CMP R31, R21 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x15151515, R31 + CMP R31, R22 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x16161616, R31 + CMP R31, R23 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x17171717, R31 + CMP R31, R24 + BZ $+6 + JARL vRegTestFailed, lp +#if ( configDATA_MODE == 1 ) + MOV 0x18181818, R31 + CMP R31, R25 + BZ $+6 + JARL vRegTestFailed, lp +#endif + MOV 0x19191919, R31 + CMP R31, R26 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x20202020, R31 + CMP R31, R27 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x21212121, R31 + CMP R31, R28 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x22222222, R31 + CMP R31, R29 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0x23232323, R31 + CMP R31, R30 + BZ $+6 + JARL vRegTestFailed, lp + MOV vReg1TestLoopStart, R31 + JMP [R31] + +;------------------------------------------------------------------------------ +;------------------------------------------------------------------------------ + RSEG CODE:CODE +vRegTest2: + MOV 0xa101010b, R1 + MOV 0xa202020b, R2 + ; Ignore R3 and R4 as these are the stack and global pointers respectively. + MOV 0xa404040b, R5 + MOV 0xa505050b, R6 + MOV 0xa606060b, R7 + MOV 0xa707070b, R8 + MOV 0xa808080b, R9 + MOV 0xa909090b, R10 + MOV 0xaa0a0a0b, R11 + MOV 0xab0b0b0b, R12 + MOV 0xac0c0c0b, R13 + MOV 0xad0d0d0b, R14 + MOV 0xae0e0e0b, R15 + MOV 0xaf0f0f0b, R16 + MOV 0xa010101b, R17 + MOV 0xa111111b, R18 + MOV 0xa212121b, R19 + MOV 0xa313131b, R20 + MOV 0xa414141b, R21 + MOV 0xa515151b, R22 + MOV 0xa616161b, R23 + MOV 0xa717171b, R24 +#if ( configDATA_MODE == 1 ) + ;R25 is used as a base register except when the tiny model is used. */ + MOV 0xa818181b, R25 +#endif + MOV 0xa919191b, R26 + MOV 0xa020202b, R27 + MOV 0xa121212b, R28 + MOV 0xa222222b, R29 + MOV 0xa323232b, R30 + +vReg2TestLoopStart: + MOV 0xa101010b, R31 + CMP R31, R1 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa202020b, R31 + CMP R31, R2 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa404040b, R31 + CMP R31, R5 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa505050b, R31 + CMP R31, R6 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa606060b, R31 + CMP R31, R7 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa707070b, R31 + CMP R31, R8 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa808080b, R31 + CMP R31, R9 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa909090b, R31 + CMP R31, R10 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xaa0a0a0b, R31 + CMP R31, R11 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xab0b0b0b, R31 + CMP R31, R12 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xac0c0c0b, R31 + CMP R31, R13 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xad0d0d0b, R31 + CMP R31, R14 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xae0e0e0b, R31 + CMP R31, R15 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xaf0f0f0b, R31 + CMP R31, R16 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa010101b, R31 + CMP R31, R17 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa111111b, R31 + CMP R31, R18 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa212121b, R31 + CMP R31, R19 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa313131b, R31 + CMP R31, R20 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa414141b, R31 + CMP R31, R21 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa515151b, R31 + CMP R31, R22 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa616161b, R31 + CMP R31, R23 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa717171b, R31 + CMP R31, R24 + BZ $+6 + JARL vRegTestFailed, lp +#if ( configDATA_MODE == 1 ) + MOV 0xa818181b, R31 + CMP R31, R25 + BZ $+6 + JARL vRegTestFailed, lp +#endif + MOV 0xa919191b, R31 + CMP R31, R26 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa020202b, R31 + CMP R31, R27 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa121212b, R31 + CMP R31, R28 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa222222b, R31 + CMP R31, R29 + BZ $+6 + JARL vRegTestFailed, lp + MOV 0xa323232b, R31 + CMP R31, R30 + BZ $+6 + JARL vRegTestFailed, lp + MOV vReg2TestLoopStart, R31 + JMP [R31] + + END + \ No newline at end of file diff --git a/Demo/NEC_V850ES_Fx3_IAR/main.c b/Demo/NEC_V850ES_Fx3_IAR/main.c new file mode 100644 index 000000000..2c401980f --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/main.c @@ -0,0 +1,253 @@ +/* + FreeRTOS.org V5.1.1 - Copyright (C) 2003-2008 Richard Barry. + + This file is part of the FreeRTOS.org distribution. + + FreeRTOS.org is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + FreeRTOS.org is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with FreeRTOS.org; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + A special exception to the GPL can be applied should you wish to distribute + a combined work that includes FreeRTOS.org, without being obliged to provide + the source code for any proprietary components. See the licensing section + of http://www.FreeRTOS.org for full details of how and when the exception + can be applied. + + *************************************************************************** + *************************************************************************** + * * + * SAVE TIME AND MONEY! We can port FreeRTOS.org to your own hardware, * + * and even write all or part of your application on your behalf. * + * See http://www.OpenRTOS.com for details of the services we provide to * + * expedite your project. * + * * + *************************************************************************** + *************************************************************************** + + Please ensure to read the configuration and relevant port sections of the + online documentation. + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +#include +#include + +/* Scheduler include files. */ +#include "FreeRTOS.h" +#include "task.h" + +/* Demo file headers. */ +#include +#include "PollQ.h" +#include "semtest.h" +#include "print.h" +#include "semtest.h" +#include "led.h" +#include "integer.h" + +/* + * Priority definitions for most of the tasks in the demo application. Some + * tasks just use the idle priority. + */ +#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) +#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 1 ) +#define mainSEMTEST_PRIORITY ( tskIDLE_PRIORITY + 1 ) +#define mainLED_TOGGLE_PRIORITY ( tskIDLE_PRIORITY + 1 ) + +/* The period between executions of the check task. */ +#define mainCHECK_PERIOD ( ( portTickType ) 3000 / portTICK_RATE_MS ) + +/* The task function for the "Check" task. */ +static void vErrorChecks( void *pvParameters ); + +/* + * Checks the unique counts of other tasks to ensure they are still operational. + * Flashes an LED if everything is okay. + */ +static long prvCheckOtherTasksAreStillRunning( void ); + +/* low level initialization prototype */ +unsigned portCHAR __low_level_init(void); + +extern void vRegTest1( void *pvParameters ); +extern void vRegTest2( void *pvParameters ); + +/*-----------------------------------------------------------*/ + +volatile portLONG lRegTestStatus = pdPASS; + +void vRegTestFailed( void ) +{ + lRegTestStatus = pdFAIL; + for( ;; ); +} + +void main( void ) +{ + /* Create some standard demo tasks. */ +// vStartIntegerMathTasks( tskIDLE_PRIORITY ); +// vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY ); +// vStartSemaphoreTasks(mainSEMTEST_PRIORITY); + + /* Create a simple task that toggles a pin. */ +// vStartLEDToggleTasks( mainLED_TOGGLE_PRIORITY ); + + /* Create the tasks defined within this file. */ +// xTaskCreate( vErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL ); + +// vPrintInitialise(); + +xTaskCreate( vRegTest1, "Check", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); +xTaskCreate( vRegTest2, "Check", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL ); + + /* Start the scheduler. */ + vTaskStartScheduler(); + + /* If this line is reached then vTaskStartScheduler() returned because there + was insufficient heap memory remaining for the idle task to be created. */ + for( ;; ); +} +/*-----------------------------------------------------------*/ + +static void vErrorChecks( void *pvParameters ) +{ +volatile long lError = pdFALSE; + + /* Just to remove the compiler warning. */ + ( void ) pvParameters; + + /* Cycle for ever, delaying then checking all the other tasks are still + operating without error. */ + for( ;; ) + { + /* Delay until it is time to check the other tasks again. */ + vTaskDelay( mainCHECK_PERIOD ); + + if( prvCheckOtherTasksAreStillRunning() != pdPASS ) + { + lError = pdTRUE; + + /* Do something to indicate the error. */ + ( void ) lError; + } + } +} +/*-----------------------------------------------------------*/ + +static long prvCheckOtherTasksAreStillRunning( void ) +{ +long lStatus = pdPASS; + + if( xAreIntegerMathsTaskStillRunning() != pdPASS ) + { + lStatus = pdFAIL; + } + + if( xArePollingQueuesStillRunning() != pdPASS ) + { + lStatus = pdFAIL; + } + + if( xAreSemaphoreTasksStillRunning() != pdPASS ) + { + lStatus = pdFAIL; + } + + if( xAreLEDToggleTaskStillRunning() != pdPASS ) + { + lStatus = pdFAIL; + } + + return lStatus; +} +/*-----------------------------------------------------------*/ + +unsigned portCHAR __low_level_init(void) +{ +unsigned portCHAR resetflag = RESF; +unsigned portCHAR psval = 0; + + /* Setup provided by NEC. */ + + /* Disable global interrupts to ensure no interrupts occur during system + setup. */ + portDISABLE_INTERRUPTS(); + + PRCMD = 0x00; + OCDM = 0x00; + VSWC = 0x12; + VSWC = 18; + + /* Set main system clock */ + OSTS = 0x06; + psval = 0x80; + PRCMD = psval; + PCC = psval; + while (!OSTC) + { + ; + } + + PLLS = 0x03; + PLLON = 1; + while (LOCKR) + { + ; + } + + psval = 0x01; + PRCMD = psval; + MCM = psval; + SELPLL = 1; + + /* Set fCPU */ + psval = PCC | 0x00; + PRCMD = psval; + PCC = psval; + RCM = 0x83; + + /* Set fXP1 */ + SELCNT4 = 0x00; + + /* Set fBRG */ + PRSM0 = 0x00; + + /* Stand-by setting */ + psval = 0x00; + PRCMD = psval; + PSC = psval; + + /* WDT2 setting */ + WDTM2 = 0x1F; + + /* PCL setting */ + PCLM = 0x00; + + /* disable dma0 - dma3 */ + E00 = 0; + E11 = 0; + E22 = 0; + E33 = 0; + + return pdTRUE; +} + + diff --git a/Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewd b/Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewd new file mode 100644 index 000000000..f6388d8a0 --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewd @@ -0,0 +1,735 @@ + + + + 2 + + Debug + + V850 + + 1 + + C-SPY + 5 + + 12 + 1 + 1 + + + + + + + + + + + + + + + + + EMUV850 + 5 + + 0 + 1 + 1 + + + + + + + + + + IECV850 + 5 + + 0 + 1 + 1 + + + + + + + + + MICV850 + 5 + + 1 + 1 + 1 + + + + + + + + + + + + NWIV850 + 5 + + 0 + 1 + 1 + + + + + + + + + + + ROMV850 + 5 + + 0 + 1 + 1 + + + + + + + + + + + + + + + + + SIMV850 + 5 + + 0 + 1 + 1 + + + + + + + + TKSV850 + 5 + + 0 + 1 + 1 + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin + 1 + + + + + Release + + V850 + + 0 + + C-SPY + 5 + + 12 + 1 + 0 + + + + + + + + + + + + + + + + + EMUV850 + 5 + + 0 + 1 + 0 + + + + + + + + + + IECV850 + 5 + + 0 + 1 + 0 + + + + + + + + + MICV850 + 5 + + 1 + 1 + 0 + + + + + + + + + + + + NWIV850 + 5 + + 0 + 1 + 0 + + + + + + + + + + + ROMV850 + 5 + + 0 + 1 + 0 + + + + + + + + + + + + + + + + + SIMV850 + 5 + + 0 + 1 + 0 + + + + + + + + TKSV850 + 5 + + 0 + 1 + 0 + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin + 1 + + + + + + diff --git a/Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewp b/Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewp new file mode 100644 index 000000000..0a25cc743 --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewp @@ -0,0 +1,1693 @@ + + + + 2 + + Debug + + V850 + + 1 + + General + 5 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCV850 + 3 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AV850 + 3 + + 5 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + XLINK + 3 + + 15 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XAR + 3 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + V850 + + 0 + + General + 5 + + 5 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCV850 + 3 + + 14 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AV850 + 3 + + 5 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + XLINK + 3 + + 15 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XAR + 3 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + demo source + + $PROJ_DIR$\..\Common\Full\integer.c + + + $PROJ_DIR$\LEDtoggle\LED.c + + + $PROJ_DIR$\main.c + + + $PROJ_DIR$\..\Common\Full\PollQ.c + + + $PROJ_DIR$\..\Common\Full\print.c + + + $PROJ_DIR$\RegTest.s85 + + + $PROJ_DIR$\..\semtest.c + + + + kernel source + + $PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c + + + $PROJ_DIR$\..\..\Source\list.c + + + $PROJ_DIR$\..\..\Source\portable\IAR\V850ES_Fx3\port.c + + + $PROJ_DIR$\..\..\Source\portable\IAR\V850ES_Fx3\portmacro.s85 + + + $PROJ_DIR$\..\..\Source\queue.c + + + $PROJ_DIR$\..\..\Source\tasks.c + + + + + diff --git a/Demo/NEC_V850ES_Fx3_IAR/rtosdemo.eww b/Demo/NEC_V850ES_Fx3_IAR/rtosdemo.eww new file mode 100644 index 000000000..2294aacb5 --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/rtosdemo.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\rtosdemo.ewp + + + + + diff --git a/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.cspy.bat b/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.cspy.bat new file mode 100644 index 000000000..249011721 --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.cspy.bat @@ -0,0 +1,32 @@ +@REM This bat file has been generated by the IAR Embeddded Workbench +@REM C-SPY interactive debugger,as an aid to preparing a command +@REM line for running the cspybat command line utility with the +@REM appropriate settings. +@REM +@REM After making some adjustments to this file, you can launch cspybat +@REM by typing the name of this file followed by the name of the debug +@REM file (usually an ubrof file). Note that this file is generated +@REM every time a new debug session is initialized, so you may want to +@REM move or rename the file before making changes. +@REM +@REM Note: some command line arguments cannot be properly generated +@REM by this process. Specifically, the plugin which is responsible +@REM for the Terminal I/O window (and other C runtime functionality) +@REM comes in a special version for cspybat, and the name of that +@REM plugin dll is not known when generating this file. It resides in +@REM the $TOOLKIT_DIR$\bin folder and is usually called XXXbat.dll or +@REM XXXlibsupportbat.dll, where XXX is the name of the corresponding +@REM tool chain. Replace the '' parameter +@REM below with the appropriate file name. Other plugins loaded by +@REM C-SPY are usually not needed by, or will not work in, cspybat +@REM but they are listed at the end of this file for reference. + + +"C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\bin\cspybat" "C:\Devtools\IAR Systems\Embedded Workbench 5.0\v850\bin\v850proc.dll" "C:\Devtools\IAR Systems\Embedded Workbench 5.0\v850\bin\v850minicube.dll" %1 --plugin "C:\Devtools\IAR Systems\Embedded Workbench 5.0\v850\bin\" --backend -B "-v11" "-p" "C:\Devtools\IAR Systems\Embedded Workbench 5.0\v850\CONFIG\DDF\io70f3385.ddf" "-d" "minicube" "-c2" "-en10000" + + +@REM Loaded plugins: +@REM v850LibSupport.dll +@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\plugins\CodeCoverage\CodeCoverage.dll +@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\plugins\Profiling\Profiling.dll +@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\plugins\SymList\SymList.dll diff --git a/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dbgdt b/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dbgdt new file mode 100644 index 000000000..f09c8a511 --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dbgdt @@ -0,0 +1,75 @@ + + + + + + + + 20 + 1216 + 324 + 81 + + + + + + + + 416272727 + + + + + 20010 + + + + + + + + + TabID-757-1323 + Debug Log + Debug-Log + + + + TabID-234-1333 + Build + Build + + + + + 0 + + + TabID-11505-1326 + Workspace + Workspace + + + rtosdemortosdemo/demo sourcertosdemo/kernel source + + + + 0TabID-24251-8685RegisterRegister00000 + + + + + + TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Source\tasks.c014504649046508TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Source\portable\IAR\V850ES_Fx3\port.c02214901540TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Source\portable\IAR\V850ES_Fx3\portmacro.s85013687228740TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Demo\semtest.c018295209520TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Demo\NEC_V850ES_Fx3_IAR\LEDtoggle\LED.c09045054505TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Demo\NEC_V850ES_Fx3_IAR\main.c08637183718TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Demo\Common\Full\integer.c032680208043TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Demo\NEC_V850ES_Fx3_IAR\FreeRTOSConfig.h05126752675TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Demo\NEC_V850ES_Fx3_IAR\RegTest.s8501634999499980100000010000001 + + + + + + + iaridepm.enu1debuggergui.enu1-2-2740490-2-2240200142857203666292857755601-2-2740286-2-2240200142857203666171429755601-2-21981682-2-216842001002381203666142857203666 + + + + diff --git a/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dni b/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dni new file mode 100644 index 000000000..3ac16814f --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dni @@ -0,0 +1,242 @@ +[IECUBE] +MapEntries=0 +HWsettings=255,0,0,0,0,0,0,0 +HWsettings2=0 +HWsettings3=124,0 +EventEntries=0 +SeqName0= +SeqData0=0,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 +SeqName1= +SeqData1=0,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 +SeqName2= +SeqData2=0,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 +TraceSettings=0,0,0,0,0,0,0,2298478591,12,11,0,1,1,1,8192,0,4 +DataFlashSettings=0,0,0,0,0,0,0,0,0,0,0,1,0,1,1 +TraceSave=1,v850trace.txt +TriggerOutSettings=0,0,0,0,0,0,0,0,0,0 +TimerSettings=0,0,0 +Tim2Name1= +Tim2Data1=0,0,0,0,0,0,0,0,0 +Tim2Start1=0,0,0,0,0,0,0,0,0,0 +Tim2Stop1=0,0,0,0,0,0,0,0,0,0 +Tim2Name2= +Tim2Data2=0,0,0,0,0,0,0,0,0 +Tim2Start2=0,0,0,0,0,0,0,0,0,0 +Tim2Stop2=0,0,0,0,0,0,0,0,0,0 +Tim2Name3= +Tim2Data3=0,0,0,0,0,0,0,0,0 +Tim2Start3=0,0,0,0,0,0,0,0,0,0 +Tim2Stop3=0,0,0,0,0,0,0,0,0,0 +Tim2Name4= +Tim2Data4=0,0,0,0,0,0,0,0,0 +Tim2Start4=0,0,0,0,0,0,0,0,0,0 +Tim2Stop4=0,0,0,0,0,0,0,0,0,0 +Tim2Name5= +Tim2Data5=0,0,0,0,0,0,0,0,0 +Tim2Start5=0,0,0,0,0,0,0,0,0,0 +Tim2Stop5=0,0,0,0,0,0,0,0,0,0 +Tim2Name6= +Tim2Data6=0,0,0,0,0,0,0,0,0 +Tim2Start6=0,0,0,0,0,0,0,0,0,0 +Tim2Stop6=0,0,0,0,0,0,0,0,0,0 +Tim2Name7= +Tim2Data7=0,0,0,0,0,0,0,0,0 +Tim2Start7=0,0,0,0,0,0,0,0,0,0 +Tim2Stop7=0,0,0,0,0,0,0,0,0,0 +Tim2Name8= +Tim2Data8=0,0,0,0,0,0,0,0,0 +Tim2Start8=0,0,0,0,0,0,0,0,0,0 +Tim2Stop8=0,0,0,0,0,0,0,0,0,0 +Tim2Name9= +Tim2Data9=0,0,0,0,0,0,0,0,0 +Tim2Start9=0,0,0,0,0,0,0,0,0,0 +Tim2Stop9=0,0,0,0,0,0,0,0,0,0 +CoverSettings=0,1048575,66060288,67108863,0,0,0 +CoverSettings2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Version=1 +LastDevFile=unknown +LastSetupFailed=0 +[MINICUBE2] +LastSetupFailed=0 +MapEntries=0 +HWsettings=255,0,0,0,0,0,0,0 +HWsettings2=0 +HWsettings3=124,0 +EventEntries=0 +SeqName0= +SeqData0=0,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 +SeqName1= +SeqData1=0,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 +SeqName2= +SeqData2=0,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 +TraceSettings=0,0,0,0,0,0,0,2298478591,12,11,0,1,1,1,8192,0,4 +DataFlashSettings=0,0,0,0,0,0,0,0,0,0,0,1,0,1,1 +TraceSave=1,v850trace.txt +TriggerOutSettings=0,0,0,0,0,0,0,0,0,0 +TimerSettings=0,0,0 +Tim2Name1= +Tim2Data1=0,0,0,0,0,0,0,0,0 +Tim2Start1=0,0,0,0,0,0,0,0,0,0 +Tim2Stop1=0,0,0,0,0,0,0,0,0,0 +Tim2Name2= +Tim2Data2=0,0,0,0,0,0,0,0,0 +Tim2Start2=0,0,0,0,0,0,0,0,0,0 +Tim2Stop2=0,0,0,0,0,0,0,0,0,0 +Tim2Name3= +Tim2Data3=0,0,0,0,0,0,0,0,0 +Tim2Start3=0,0,0,0,0,0,0,0,0,0 +Tim2Stop3=0,0,0,0,0,0,0,0,0,0 +Tim2Name4= +Tim2Data4=0,0,0,0,0,0,0,0,0 +Tim2Start4=0,0,0,0,0,0,0,0,0,0 +Tim2Stop4=0,0,0,0,0,0,0,0,0,0 +Tim2Name5= +Tim2Data5=0,0,0,0,0,0,0,0,0 +Tim2Start5=0,0,0,0,0,0,0,0,0,0 +Tim2Stop5=0,0,0,0,0,0,0,0,0,0 +Tim2Name6= +Tim2Data6=0,0,0,0,0,0,0,0,0 +Tim2Start6=0,0,0,0,0,0,0,0,0,0 +Tim2Stop6=0,0,0,0,0,0,0,0,0,0 +Tim2Name7= +Tim2Data7=0,0,0,0,0,0,0,0,0 +Tim2Start7=0,0,0,0,0,0,0,0,0,0 +Tim2Stop7=0,0,0,0,0,0,0,0,0,0 +Tim2Name8= +Tim2Data8=0,0,0,0,0,0,0,0,0 +Tim2Start8=0,0,0,0,0,0,0,0,0,0 +Tim2Stop8=0,0,0,0,0,0,0,0,0,0 +Tim2Name9= +Tim2Data9=0,0,0,0,0,0,0,0,0 +Tim2Start9=0,0,0,0,0,0,0,0,0,0 +Tim2Stop9=0,0,0,0,0,0,0,0,0,0 +CoverSettings=0,1048575,66060288,67108863,0,0,0 +CoverSettings2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Version=1 +LastDevFile=unknown +[DisAssemblyWindow] +NumStates=_ 1 +State 1=_ 1 +[CodeCoverage] +Enabled=_ 0 +[Profiling] +Enabled=0 +[MINICUBE] +Map0=0,0,1048575,1024,3 +Map1=1,67043328,67104767,60,3 +MapEntries=2 +HWsettings=11,33024,8155,0,160,0,0,1 +HWsettings2=0 +HWsettings3=124,1 +NWsettings=1,5000,0,1,FFFFFFFFFFFFFFFFFFFF +NWsettings2=1 +EventEntries=0 +SeqName0= +SeqData0=0,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 +SeqName1= +SeqData1=0,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 +SeqName2= +SeqData2=0,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 +TraceSettings=0,0,0,0,0,0,0,2298478591,12,11,0,1,1,1,8192,0,4 +DataFlashSettings=0,0,0,0,0,0,0,0,0,0,0,1,0,1,1 +TraceSave=1,v850trace.txt +TriggerOutSettings=0,0,0,0,0,0,0,0,0,0 +TimerSettings=0,0,0 +Tim2Name1= +Tim2Data1=0,0,0,0,0,0,0,0,0 +Tim2Start1=0,0,0,0,0,0,0,0,0,0 +Tim2Stop1=0,0,0,0,0,0,0,0,0,0 +Tim2Name2= +Tim2Data2=0,0,0,0,0,0,0,0,0 +Tim2Start2=0,0,0,0,0,0,0,0,0,0 +Tim2Stop2=0,0,0,0,0,0,0,0,0,0 +Tim2Name3= +Tim2Data3=0,0,0,0,0,0,0,0,0 +Tim2Start3=0,0,0,0,0,0,0,0,0,0 +Tim2Stop3=0,0,0,0,0,0,0,0,0,0 +Tim2Name4= +Tim2Data4=0,0,0,0,0,0,0,0,0 +Tim2Start4=0,0,0,0,0,0,0,0,0,0 +Tim2Stop4=0,0,0,0,0,0,0,0,0,0 +Tim2Name5= +Tim2Data5=0,0,0,0,0,0,0,0,0 +Tim2Start5=0,0,0,0,0,0,0,0,0,0 +Tim2Stop5=0,0,0,0,0,0,0,0,0,0 +Tim2Name6= +Tim2Data6=0,0,0,0,0,0,0,0,0 +Tim2Start6=0,0,0,0,0,0,0,0,0,0 +Tim2Stop6=0,0,0,0,0,0,0,0,0,0 +Tim2Name7= +Tim2Data7=0,0,0,0,0,0,0,0,0 +Tim2Start7=0,0,0,0,0,0,0,0,0,0 +Tim2Stop7=0,0,0,0,0,0,0,0,0,0 +Tim2Name8= +Tim2Data8=0,0,0,0,0,0,0,0,0 +Tim2Start8=0,0,0,0,0,0,0,0,0,0 +Tim2Stop8=0,0,0,0,0,0,0,0,0,0 +Tim2Name9= +Tim2Data9=0,0,0,0,0,0,0,0,0 +Tim2Start9=0,0,0,0,0,0,0,0,0,0 +Tim2Stop9=0,0,0,0,0,0,0,0,0,0 +CoverSettings=0,1048575,66060288,67108863,0,0,0 +CoverSettings2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Version=1 +LastDevFile=DF3385.800 +LastSetupFailed=0 +[Log file] +LoggingEnabled=_ 0 +LogFile=_ "" +Category=_ 0 +[TermIOLog] +LoggingEnabled=_ 0 +LogFile=_ "" +[Breakpoints] +Count=0 +[TraceHelper] +Enabled=1 +ShowSource=1 diff --git a/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.wsdt b/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.wsdt new file mode 100644 index 000000000..a1eb05466 --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.wsdt @@ -0,0 +1,49 @@ + + + + + + rtosdemo/Debug + + + + + + + + + 240272727 + + 20121632481 + + + + + + TabID-30435-11592 + Workspace + Workspace + + + rtosdemortosdemo/demo sourcertosdemo/kernel source + + + + 0TabID-2785-875BuildBuildTabID-21438-1140Debug LogDebug-LogTabID-21061-4073BreakpointsBreakpoints0 + + + + + + TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Source\tasks.c014504649046508TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Source\portable\IAR\V850ES_Fx3\port.c02214901540TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Source\portable\IAR\V850ES_Fx3\portmacro.s85013687228740TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Demo\semtest.c018295209520TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Demo\NEC_V850ES_Fx3_IAR\LEDtoggle\LED.c09045054505TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Demo\NEC_V850ES_Fx3_IAR\main.c08637183718TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Demo\Common\Full\integer.c032680208043TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Demo\NEC_V850ES_Fx3_IAR\FreeRTOSConfig.h05126752675TextEditorC:\E\temp\NEC\FreeRTOS V850\FreeRTOS_V850ESFx3\Demo\NEC_V850ES_Fx3_IAR\RegTest.s8501634999499980100000010000001 + + + + + + + iaridepm.enu1-2-2740314-2-2316205188095208758188095755601-2-21981682-2-216842001002381203666142857203666 + + + + -- 2.39.5