summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichardBarry <RichardBarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>2009-01-26 17:30:18 +0000
committerRichardBarry <RichardBarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>2009-01-26 17:30:18 +0000
commit4c8edc30b5c44b76f405a58b7e5d673718383230 (patch)
tree87a2cf2fd1d1fa925378f21f448b2991b2020f7f
parent4e78d81d6b77f946f15a386bf67811be980000c9 (diff)
downloadfreertos-4c8edc30b5c44b76f405a58b7e5d673718383230.tar.gz
freertos-4c8edc30b5c44b76f405a58b7e5d673718383230.tar.bz2
freertos-4c8edc30b5c44b76f405a58b7e5d673718383230.tar.xz
More work in progress on NEC port and demo.
git-svn-id: https://freertos.svn.sourceforge.net/svnroot/freertos/trunk@626 1d2547de-c912-0410-9cb9-b8ca96c0e9e2
-rw-r--r--Demo/NEC_V850ES_Fx3_IAR/FreeRTOSConfig.h4
-rw-r--r--Demo/NEC_V850ES_Fx3_IAR/main.c17
-rw-r--r--Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewp4
-rw-r--r--Demo/NEC_V850ES_Fx3_IAR/serial/serial.c256
-rw-r--r--Demo/NEC_V850ES_Fx3_IAR/serial/serialISR.s8547
-rw-r--r--Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dbgdt18
-rw-r--r--Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dni3
-rw-r--r--Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.wsdt4
8 files changed, 332 insertions, 21 deletions
diff --git a/Demo/NEC_V850ES_Fx3_IAR/FreeRTOSConfig.h b/Demo/NEC_V850ES_Fx3_IAR/FreeRTOSConfig.h
index dc833811..14bc86b3 100644
--- a/Demo/NEC_V850ES_Fx3_IAR/FreeRTOSConfig.h
+++ b/Demo/NEC_V850ES_Fx3_IAR/FreeRTOSConfig.h
@@ -86,8 +86,8 @@
#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 ) ( 20000 ) )
+#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 85 )
+#define configTOTAL_HEAP_SIZE ( (size_t ) ( 60000 ) )
#define configMAX_TASK_NAME_LEN ( 10 )
#define configUSE_TRACE_FACILITY 0
#define configUSE_16_BIT_TICKS 0
diff --git a/Demo/NEC_V850ES_Fx3_IAR/main.c b/Demo/NEC_V850ES_Fx3_IAR/main.c
index c6d5d256..38a0864f 100644
--- a/Demo/NEC_V850ES_Fx3_IAR/main.c
+++ b/Demo/NEC_V850ES_Fx3_IAR/main.c
@@ -81,6 +81,8 @@
#define mainGEN_QUEUE_TASK_PRIORITY ( tskIDLE_PRIORITY )
#define mainCOMTEST_PRIORITY ( tskIDLE_PRIORITY + 1 )
+#define mainCHECK_PARAMETER ( ( void * ) 0x12345678 )
+
/* The period between executions of the check task. */
#define mainNO_ERROR_DELAY ( ( portTickType ) 3000 / portTICK_RATE_MS )
#define mainERROR_DELAY ( ( portTickType ) 500 / portTICK_RATE_MS )
@@ -129,10 +131,10 @@ void main( void )
vAltStartComTestTasks( mainCOMTEST_PRIORITY, mainBAUD_RATE, mainCOMTEST_LED );
/* Create the tasks defined within this file. */
- xTaskCreate( prvCheckTask, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
+ xTaskCreate( prvCheckTask, "Check", configMINIMAL_STACK_SIZE, mainCHECK_PARAMETER, mainCHECK_TASK_PRIORITY, NULL );
- xTaskCreate( vRegTest1, "Check", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
- xTaskCreate( vRegTest2, "Check", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
+ xTaskCreate( vRegTest1, "Reg1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
+ xTaskCreate( vRegTest2, "Reg2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
/* The suicide tasks must be created last as they need to know how many
tasks were running prior to their creation in order to ascertain whether
@@ -152,8 +154,11 @@ static void prvCheckTask( void *pvParameters )
{
portTickType xDelayPeriod = mainNO_ERROR_DELAY, xLastWakeTime;
- /* Just to remove the compiler warning. */
- ( void ) pvParameters;
+ /* Ensure parameter is passed in correctly. */
+ if( pvParameters != mainCHECK_PARAMETER )
+ {
+ xDelayPeriod = mainERROR_DELAY;
+ }
xLastWakeTime = xTaskGetTickCount();
@@ -293,5 +298,3 @@ void vApplicationStackOverflowHook( void )
for( ;; );
}
-
-
diff --git a/Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewp b/Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewp
index 42db4398..4b1c1ff7 100644
--- a/Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewp
+++ b/Demo/NEC_V850ES_Fx3_IAR/rtosdemo.ewp
@@ -481,6 +481,7 @@
<option>
<name>OAIncludePath2</name>
<state>$PROJ_DIR$</state>
+ <state>$PROJ_DIR$\..\..\Source\portable\IAR\V850ES_Fx3</state>
</option>
<option>
<name>OAStdIncCheck</name>
@@ -1687,6 +1688,9 @@
<file>
<name>$PROJ_DIR$\serial\serial.c</name>
</file>
+ <file>
+ <name>$PROJ_DIR$\serial\serialISR.s85</name>
+ </file>
</group>
<group>
<name>kernel source</name>
diff --git a/Demo/NEC_V850ES_Fx3_IAR/serial/serial.c b/Demo/NEC_V850ES_Fx3_IAR/serial/serial.c
new file mode 100644
index 00000000..a55708a5
--- /dev/null
+++ b/Demo/NEC_V850ES_Fx3_IAR/serial/serial.c
@@ -0,0 +1,256 @@
+/*
+ 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.
+*/
+
+/*
+ BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER FOR UART0.
+*/
+
+/* Standard includes. */
+#include <stdlib.h>
+
+/* Scheduler includes. */
+#include "FreeRTOS.h"
+#include "queue.h"
+
+/* Demo application includes. */
+#include "serial.h"
+
+
+
+#define serRX_DATA_PIN ( 0x01 )
+#define serTX_DATA_PIN ( 0x02 )
+
+#define serCLOCK_Fxx_DIV_8 0x03
+#define serUPWR ( 0x80 )
+#define serUTXE ( 0x40 )
+#define serURXE ( 0x20 )
+#define serUCL ( 0x02 )
+#define serLSB ( 0x10 )
+
+/* Misc. */
+#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
+#define serHANDLE ( ( xComPortHandle ) 1 )
+#define serNO_BLOCK ( ( portTickType ) 0 )
+
+/*-----------------------------------------------------------*/
+
+/* Queues used to hold received characters, and characters waiting to be
+transmitted. */
+static xQueueHandle xRxedChars;
+static xQueueHandle xCharsForTx;
+
+/*-----------------------------------------------------------*/
+
+/* Interrupt entry point written in the assembler file serialISR.s79. */
+extern void vSerialISREntry( void );
+
+/* The interrupt service routine - called from the assembly entry point. */
+void vSerialISR( void );
+
+static volatile unsigned long ulTxInProgress = pdFALSE;
+
+/*-----------------------------------------------------------*/
+
+/*
+ * See the serial2.h header file.
+ */
+xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
+{
+xComPortHandle xReturn = serHANDLE;
+extern void ( vUART_ISR )( void );
+const unsigned portLONG ulFuclk = ( configCPU_CLOCK_HZ / 2 ) / 8UL;
+
+ /* Create the queues used to hold Rx and Tx characters. */
+ xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
+ xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
+
+ /* If the queues were created correctly then setup the serial port
+ hardware. */
+ if( ( xRxedChars != serINVALID_QUEUE ) && ( xCharsForTx != serINVALID_QUEUE ) )
+ {
+ portENTER_CRITICAL();
+ {
+ /* Set the UART0 Rx and Tx pins to their alternative function. */
+ PMC3 |= ( serRX_DATA_PIN | serTX_DATA_PIN );
+ PM3 &= ~( serTX_DATA_PIN );
+
+ /* Setup clock for required baud. */
+ UD0CTL1 = serCLOCK_Fxx_DIV_8;
+ UD0CTL2 = ulFuclk / ( 2 * ulWantedBaud );
+
+ /* Enable, n81. */
+ UD0CTL0 = ( serUPWR | serUTXE | serURXE | serUCL | serLSB );
+
+ UD0TIC = 0x07; /* UARTA0 transmit enable interrupt request signal clear, mask release, priority level 7 set */
+ UD0RIC = 0x07; /* UARTA0 receive end interrupt request signal clear, mask release, priority level 7 set */
+
+ ulTxInProgress = pdFALSE;
+ }
+ portEXIT_CRITICAL();
+ }
+ else
+ {
+ xReturn = ( xComPortHandle ) 0;
+ }
+
+ /* This demo file only supports a single port but we have to return
+ something to comply with the standard demo header file. */
+ return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
+{
+ /* The port handle is not required as this driver only supports one port. */
+ ( void ) pxPort;
+
+ /* Get the next character from the buffer. Return false if no characters
+ are available, or arrive before xBlockTime expires. */
+ if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )
+ {
+ return pdTRUE;
+ }
+ else
+ {
+ return pdFALSE;
+ }
+}
+/*-----------------------------------------------------------*/
+
+void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )
+{
+signed portCHAR *pxNext;
+
+ /* A couple of parameters that this port does not use. */
+ ( void ) usStringLength;
+ ( void ) pxPort;
+
+ /* NOTE: This implementation does not handle the queue being full as no
+ block time is used! */
+
+ /* The port handle is not required as this driver only supports UART0. */
+ ( void ) pxPort;
+
+ /* Send each character in the string, one at a time. */
+ pxNext = ( signed portCHAR * ) pcString;
+ while( *pxNext )
+ {
+ xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
+ pxNext++;
+ }
+}
+/*-----------------------------------------------------------*/
+
+signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
+{
+portBASE_TYPE xReturn = pdPASS;
+
+ portENTER_CRITICAL();
+ {
+ if( ulTxInProgress == pdFALSE )
+ {
+ UD0TX = cOutChar;
+ ulTxInProgress = pdTRUE;
+ }
+ else
+ {
+ if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )
+ {
+ xReturn = pdFAIL;
+ }
+ }
+ }
+ portEXIT_CRITICAL();
+
+ return xReturn;
+}
+/*-----------------------------------------------------------*/
+
+void vSerialClose( xComPortHandle xPort )
+{
+ /* Not supported as not required by the demo application. */
+}
+/*-----------------------------------------------------------*/
+
+//#pragma vector=INTUD0T_vector
+//extern __interrupt void vUARTTxISRWrapper( void );
+//#pragma required=vUARTTxISRWrapper
+
+void vUARTTxISRHandler( void )
+{
+char cChar;
+portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
+
+ if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xHigherPriorityTaskWoken ) == pdTRUE )
+ {
+ UD0TX = cChar;
+ }
+ else
+ {
+ ulTxInProgress = pdFALSE;
+ }
+}
+
+//#pragma vector=INTUD0R_vector
+//extern __interrupt void vUARTRxISRWrapper( void );
+//#pragma required=vUARTRxISRWrapper
+
+void vUARTRxISRHandler( void )
+{
+portCHAR cChar;
+portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
+
+ cChar = UD0RX;
+ xQueueSendFromISR( xRxedChars, &cChar, &xHigherPriorityTaskWoken );
+}
+
+
+
+
+
diff --git a/Demo/NEC_V850ES_Fx3_IAR/serial/serialISR.s85 b/Demo/NEC_V850ES_Fx3_IAR/serial/serialISR.s85
new file mode 100644
index 00000000..01e81ff7
--- /dev/null
+++ b/Demo/NEC_V850ES_Fx3_IAR/serial/serialISR.s85
@@ -0,0 +1,47 @@
+ RSEG ICODE:CODE
+
+ EXTERN vUARTRxISRHandler
+ EXTERN vUARTTxISRHandler
+
+ PUBLIC vUARTRxISRWrapper
+ PUBLIC vUARTTxISRWrapper
+
+; Wrappers for the serial port interrupt service routines. These can cause a
+; context switch so requires an assembly wrapper.
+
+; Defines the portSAVE_CONTEXT and portRESTORE_CONTEXT macros.
+#include "ISR_Support.h"
+
+vUARTRxISRWrapper:
+
+ portSAVE_CONTEXT ; Save the context of the current task.
+
+ jarl vUARTRxISRHandler, lp ; Call the ISR routine.
+
+ portRESTORE_CONTEXT ; Restore the context of the current task -
+ ; which may be different to the task that
+ ; was interrupted.
+
+vUARTTxISRWrapper:
+
+ portSAVE_CONTEXT ; Save the context of the current task.
+
+ jarl vUARTTxISRHandler, lp ; Call the ISR routine.
+
+ portRESTORE_CONTEXT ; Restore the context of the current task -
+ ; which may be different to the task that
+ ; was interrupted.
+
+
+ COMMON INTVEC:CODE:ROOT(2)
+ ORG 2c0H
+`??vUARTRxISRWrapper??INTVEC 2c0`:
+ JR vUARTRxISRWrapper
+
+ COMMON INTVEC:CODE:ROOT(2)
+ ORG 2d0H
+`??vUARTTxISRWrapper??INTVEC 2d0`:
+ JR vUARTTxISRWrapper
+
+ END
+
diff --git a/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dbgdt b/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dbgdt
index a0676158..f97508db 100644
--- a/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dbgdt
+++ b/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dbgdt
@@ -16,18 +16,18 @@
- <Column0>416</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
+ <Column0>93</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
</Workspace>
<Disassembly>
<PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><MixedMode>1</MixedMode><CodeCovShow>0</CodeCovShow></Disassembly>
- <Register><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></Register></Static>
+ <Register><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></Register><Watch><Format><struct_types/><watch_formats/></Format><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><Column0>156</Column0><Column1>100</Column1><Column2>100</Column2><Column3>100</Column3></Watch><Memory><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory><Find-in-Files><ColumnWidth0>580</ColumnWidth0><ColumnWidth1>82</ColumnWidth1><ColumnWidth2>994</ColumnWidth2></Find-in-Files></Static>
<Windows>
- <Wnd2>
+ <Wnd0>
<Tabs>
<Tab>
<Identity>TabID-757-1323</Identity>
@@ -41,9 +41,9 @@
<Factory>Build</Factory>
<Session/>
</Tab>
- </Tabs>
+ <Tab><Identity>TabID-20969-27878</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab><Tab><Identity>TabID-27119-4411</Identity><TabName>Breakpoints</TabName><Factory>Breakpoints</Factory></Tab></Tabs>
- <SelectedTab>0</SelectedTab></Wnd2><Wnd3>
+ <SelectedTab>0</SelectedTab></Wnd0><Wnd1>
<Tabs>
<Tab>
<Identity>TabID-11505-1326</Identity>
@@ -51,24 +51,24 @@
<Factory>Workspace</Factory>
<Session>
- <NodeDict><ExpandedNode>rtosdemo</ExpandedNode><ExpandedNode>rtosdemo/demo source</ExpandedNode><ExpandedNode>rtosdemo/kernel source</ExpandedNode></NodeDict></Session>
+ <NodeDict><ExpandedNode>rtosdemo</ExpandedNode><ExpandedNode>rtosdemo/demo source</ExpandedNode><ExpandedNode>rtosdemo/demo source/Standard Demo Tasks</ExpandedNode><ExpandedNode>rtosdemo/kernel source</ExpandedNode><ExpandedNode>rtosdemo/kernel source/port.c</ExpandedNode></NodeDict></Session>
</Tab>
</Tabs>
- <SelectedTab>0</SelectedTab></Wnd3></Windows>
+ <SelectedTab>0</SelectedTab></Wnd1><Wnd2><Tabs><Tab><Identity>TabID-27476-15253</Identity><TabName>Register</TabName><Factory>Register</Factory><Session><REG1>0</REG1><REG2>0</REG2><Group>0</Group><States>2</States><State0>EIPSW</State0><State1>PSW</State1></Session></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd2></Windows>
<Editor>
- <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\main.c</Filename><XPos>0</XPos><YPos>83</YPos><SelStart>4277</SelStart><SelEnd>4277</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\RegTest.s85</Filename><XPos>0</XPos><YPos>72</YPos><SelStart>3127</SelStart><SelEnd>3127</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\LEDtoggle\LED.c</Filename><XPos>0</XPos><YPos>95</YPos><SelStart>10104</SelStart><SelEnd>10104</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Devtools\IAR Systems\Embedded Workbench 5.0\v850\lib\dl85esnn.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Devtools\IAR Systems\Embedded Workbench 5.0\v850\inc\io70f3385.h</Filename><XPos>0</XPos><YPos>21</YPos><SelStart>34477</SelStart><SelEnd>34480</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\flash.c</Filename><XPos>0</XPos><YPos>72</YPos><SelStart>3471</SelStart><SelEnd>3532</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\FreeRTOSConfig.h</Filename><XPos>0</XPos><YPos>81</YPos><SelStart>4259</SelStart><SelEnd>4259</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\PollQ.c</Filename><XPos>0</XPos><YPos>84</YPos><SelStart>4050</SelStart><SelEnd>4050</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\serial\serial.c</Filename><XPos>0</XPos><YPos>63</YPos><SelStart>2903</SelStart><SelEnd>2903</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\ParTest\ParTest.c</Filename><XPos>0</XPos><YPos>58</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\V850ES_Fx3\port.c</Filename><XPos>0</XPos><YPos>155</YPos><SelStart>7326</SelStart><SelEnd>7339</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\comtest.c</Filename><XPos>0</XPos><YPos>246</YPos><SelStart>10777</SelStart><SelEnd>10805</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
+ <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\serial\serialISR.s85</Filename><XPos>0</XPos><YPos>6</YPos><SelStart>1116</SelStart><SelEnd>1116</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\serial\serial.c</Filename><XPos>0</XPos><YPos>108</YPos><SelStart>4801</SelStart><SelEnd>4801</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\comtest.c</Filename><XPos>0</XPos><YPos>165</YPos><SelStart>7455</SelStart><SelEnd>7455</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\RegTest.s85</Filename><XPos>0</XPos><YPos>125</YPos><SelStart>3960</SelStart><SelEnd>3960</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\V850ES_Fx3\portmacro.h</Filename><XPos>0</XPos><YPos>116</YPos><SelStart>5010</SelStart><SelEnd>5015</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\V850ES_Fx3\port.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\include\queue.h</Filename><XPos>0</XPos><YPos>719</YPos><SelStart>25052</SelStart><SelEnd>25072</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\queue.c</Filename><XPos>1</XPos><YPos>984</YPos><SelStart>33540</SelStart><SelEnd>33540</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\V850ES_Fx3\portasm.s85</Filename><XPos>0</XPos><YPos>237</YPos><SelStart>9109</SelStart><SelEnd>9109</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\include\task.h</Filename><XPos>0</XPos><YPos>102</YPos><SelStart>3906</SelStart><SelEnd>3924</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\FreeRTOSConfig.h</Filename><XPos>0</XPos><YPos>69</YPos><SelStart>3431</SelStart><SelEnd>3431</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\BlockQ.c</Filename><XPos>0</XPos><YPos>171</YPos><SelStart>9651</SelStart><SelEnd>9651</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\tasks.c</Filename><XPos>0</XPos><YPos>1486</YPos><SelStart>46919</SelStart><SelEnd>46919</SelEnd></Tab><ActiveTab>12</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\main.c</Filename><XPos>0</XPos><YPos>100</YPos><SelStart>4336</SelStart><SelEnd>4336</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions>
- <Top><Row0><Sizes><Toolbar-00aa9b50><key>iaridepm.enu1</key></Toolbar-00aa9b50><Toolbar-03f11130><key>debuggergui.enu1</key></Toolbar-03f11130></Sizes></Row0></Top><Left><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>490</Right><x>-2</x><y>-2</y><xscreen>240</xscreen><yscreen>200</yscreen><sizeHorzCX>142857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>292857</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
+ <Top><Row0><Sizes><Toolbar-00aa9b30><key>iaridepm.enu1</key></Toolbar-00aa9b30><Toolbar-03abbe58><key>debuggergui.enu1</key></Toolbar-03abbe58></Sizes></Row0></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>183</Right><x>-2</x><y>-2</y><xscreen>240</xscreen><yscreen>200</yscreen><sizeHorzCX>142857</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>110119</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>525</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>313690</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd2></Sizes></Row0></Right><Bottom><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd0></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Project>
diff --git a/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dni b/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dni
index 3ac16814..385b3b7b 100644
--- a/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dni
+++ b/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.dni
@@ -236,7 +236,8 @@ Category=_ 0
LoggingEnabled=_ 0
LogFile=_ ""
[Breakpoints]
-Count=0
+Bp0=_ "STD_CODE" "{C:\E\Dev\FreeRTOS\WorkingCopy3\Source\queue.c}.998.8@1" 1 0 0 0 "" 0 ""
+Count=1
[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
index e88bb238..496deec9 100644
--- a/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.wsdt
+++ b/Demo/NEC_V850ES_Fx3_IAR/settings/rtosdemo.wsdt
@@ -35,14 +35,14 @@
- <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\main.c</Filename><XPos>0</XPos><YPos>83</YPos><SelStart>4277</SelStart><SelEnd>4277</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\RegTest.s85</Filename><XPos>0</XPos><YPos>72</YPos><SelStart>3127</SelStart><SelEnd>3127</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\LEDtoggle\LED.c</Filename><XPos>0</XPos><YPos>95</YPos><SelStart>10104</SelStart><SelEnd>10104</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Devtools\IAR Systems\Embedded Workbench 5.0\v850\lib\dl85esnn.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\Devtools\IAR Systems\Embedded Workbench 5.0\v850\inc\io70f3385.h</Filename><XPos>0</XPos><YPos>21</YPos><SelStart>34477</SelStart><SelEnd>34480</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\flash.c</Filename><XPos>0</XPos><YPos>72</YPos><SelStart>3471</SelStart><SelEnd>3532</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\FreeRTOSConfig.h</Filename><XPos>0</XPos><YPos>81</YPos><SelStart>4259</SelStart><SelEnd>4259</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\PollQ.c</Filename><XPos>0</XPos><YPos>84</YPos><SelStart>4050</SelStart><SelEnd>4050</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\serial\serial.c</Filename><XPos>0</XPos><YPos>63</YPos><SelStart>2903</SelStart><SelEnd>2903</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\ParTest\ParTest.c</Filename><XPos>0</XPos><YPos>58</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\V850ES_Fx3\port.c</Filename><XPos>0</XPos><YPos>155</YPos><SelStart>7326</SelStart><SelEnd>7339</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\comtest.c</Filename><XPos>0</XPos><YPos>246</YPos><SelStart>10777</SelStart><SelEnd>10805</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
+ <Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\serial\serialISR.s85</Filename><XPos>0</XPos><YPos>6</YPos><SelStart>1116</SelStart><SelEnd>1116</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\serial\serial.c</Filename><XPos>0</XPos><YPos>108</YPos><SelStart>4801</SelStart><SelEnd>4801</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\comtest.c</Filename><XPos>0</XPos><YPos>165</YPos><SelStart>7455</SelStart><SelEnd>7455</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\RegTest.s85</Filename><XPos>0</XPos><YPos>125</YPos><SelStart>3960</SelStart><SelEnd>3960</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\V850ES_Fx3\portmacro.h</Filename><XPos>0</XPos><YPos>116</YPos><SelStart>5010</SelStart><SelEnd>5015</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\V850ES_Fx3\port.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\include\queue.h</Filename><XPos>0</XPos><YPos>719</YPos><SelStart>25052</SelStart><SelEnd>25072</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\queue.c</Filename><XPos>1</XPos><YPos>984</YPos><SelStart>33540</SelStart><SelEnd>33540</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\V850ES_Fx3\portasm.s85</Filename><XPos>0</XPos><YPos>237</YPos><SelStart>9109</SelStart><SelEnd>9109</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\include\task.h</Filename><XPos>0</XPos><YPos>102</YPos><SelStart>3906</SelStart><SelEnd>3924</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\FreeRTOSConfig.h</Filename><XPos>0</XPos><YPos>69</YPos><SelStart>3431</SelStart><SelEnd>3431</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\BlockQ.c</Filename><XPos>0</XPos><YPos>171</YPos><SelStart>9651</SelStart><SelEnd>9651</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\tasks.c</Filename><XPos>0</XPos><YPos>1486</YPos><SelStart>46919</SelStart><SelEnd>46919</SelEnd></Tab><ActiveTab>12</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\NEC_V850ES_Fx3_IAR\main.c</Filename><XPos>0</XPos><YPos>100</YPos><SelStart>4336</SelStart><SelEnd>4336</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
<Positions>
- <Top><Row0><Sizes><Toolbar-00aa9b50><key>iaridepm.enu1</key></Toolbar-00aa9b50></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>314</Right><x>-2</x><y>-2</y><xscreen>316</xscreen><yscreen>205</yscreen><sizeHorzCX>188095</sizeHorzCX><sizeHorzCY>208758</sizeHorzCY><sizeVertCX>188095</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
+ <Top><Row0><Sizes><Toolbar-00aa9b30><key>iaridepm.enu1</key></Toolbar-00aa9b30></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>314</Right><x>-2</x><y>-2</y><xscreen>316</xscreen><yscreen>205</yscreen><sizeHorzCX>188095</sizeHorzCX><sizeHorzCY>208758</sizeHorzCY><sizeVertCX>188095</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>142857</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Workspace>