]> git.sur5r.net Git - freertos/commitdiff
Complete the RL78 demo. main.c still requires documentation in the comments at the...
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 9 Sep 2011 10:09:10 +0000 (10:09 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 9 Sep 2011 10:09:10 +0000 (10:09 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1587 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

Demo/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h
Demo/RL78_RL78G13_Promo_Board_IAR/RTOSDemo.ewp
Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87
Demo/RL78_RL78G13_Promo_Board_IAR/main.c
Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dbgdt
Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.dni
Demo/RL78_RL78G13_Promo_Board_IAR/settings/rtosdemo.wsdt

index 6e841b0073ae005d48f8a154a6615f3487470d83..de9b770d2f99a0092bf468c89aebd2c97df0e500 100644 (file)
@@ -90,12 +90,12 @@ asm file.  It is valid in a C file, but not valid in an asm file. */
 #define configUSE_PREEMPTION                   1\r
 #define configTICK_RATE_HZ                             ( ( unsigned short ) 1000 )\r
 #define configMAX_PRIORITIES                   ( ( unsigned portBASE_TYPE ) 4 )\r
-#define configMINIMAL_STACK_SIZE               ( ( unsigned short ) 100 )\r
+#define configMINIMAL_STACK_SIZE               ( ( unsigned short ) 80 )\r
 #define configMAX_TASK_NAME_LEN                        ( 10 )\r
 #define configUSE_TRACE_FACILITY               0\r
 #define configUSE_16_BIT_TICKS                 1\r
 #define configIDLE_SHOULD_YIELD                        1\r
-#define configTOTAL_HEAP_SIZE                  ( (size_t ) ( 3500 ) )\r
+#define configTOTAL_HEAP_SIZE                  ( (size_t ) ( 3420 ) )\r
 #define configCHECK_FOR_STACK_OVERFLOW 2\r
 #define configUSE_MUTEXES                              1\r
 \r
@@ -138,15 +138,6 @@ to exclude the API function. */
  */\r
 #define configCLOCK_SOURCE                       1\r
 \r
-/*\r
- * RL78/G13 Memory Model\r
- * 1 = use far memory mode\r
- * 0 = use near memory mode\r
- *\r
- * This setting must match the setting in the IAR project options.\r
- */\r
-#define configMEMORY_MODE                         0\r
-\r
 #if configCLOCK_SOURCE == 0\r
        #define configCPU_CLOCK_HZ              ( ( unsigned long ) 20000000 )  /* using the external clock source */\r
 #else\r
index 0b30add33296bc94b46b0e2559e5e41e7de67b9b..a00303a836e05a1d4f2c13b5e639fff49806da15 100644 (file)
@@ -78,7 +78,7 @@
         </option>\r
         <option>\r
           <name>GenRTLibraryPath</name>\r
-          <state>$TOOLKIT_DIR$\LIB\dlrl78nn1n.r87</state>\r
+          <state>$TOOLKIT_DIR$\LIB\dlrl78nf1n.r87</state>\r
         </option>\r
         <option>\r
           <name>GenHwSupport</name>\r
         </option>\r
         <option>\r
           <name>GenStackSize</name>\r
-          <state>128</state>\r
+          <state>130</state>\r
         </option>\r
         <option>\r
           <name>GenNearHeapSize</name>\r
         </option>\r
         <option>\r
           <name>GenFarHeapSize</name>\r
-          <state>4096</state>\r
+          <state>0</state>\r
         </option>\r
         <option>\r
           <name>GeneralEnableMisra</name>\r
         <option>\r
           <name>AsmDefines</name>\r
           <state>__NEAR_MODEL__</state>\r
-          <state>__NEAR_DATA_MODEL__</state>\r
+          <state>__FAR_DATA_MODEL__</state>\r
         </option>\r
         <option>\r
           <name>AsmPreprocOutput</name>\r
     <group>\r
       <name>StandardDemos</name>\r
       <file>\r
-        <name>$PROJ_DIR$\..\Common\Minimal\dynamic.c</name>\r
+        <name>$PROJ_DIR$\..\Common\Minimal\blocktim.c</name>\r
       </file>\r
       <file>\r
-        <name>$PROJ_DIR$\..\Common\Minimal\PollQ.c</name>\r
+        <name>$PROJ_DIR$\..\Common\Minimal\dynamic.c</name>\r
       </file>\r
       <file>\r
-        <name>$PROJ_DIR$\..\Common\Minimal\semtest.c</name>\r
+        <name>$PROJ_DIR$\..\Common\Minimal\PollQ.c</name>\r
       </file>\r
     </group>\r
     <file>\r
index 13dc31ce56d4c4065e709086987e2a0ffebc6ed0..3d10c2ac095364be3f599ee52ed9ef87aee20564 100644 (file)
@@ -94,7 +94,7 @@ vRegTest1:
        MOVW    HL, #0x7788\r
        MOV             CS, #0x01\r
        \r
-#if configMEMORY_MODE == 1     \r
+#if __DATA_MODEL__ == __DATA_MODEL_FAR__\r
 \r
        ; ES is not saved or restored when using the near memory model so only\r
        ; test it when using the far model.\r
@@ -135,7 +135,8 @@ loop1:
        BZ              +5\r
        BR              vRegTestError\r
 \r
-#if configMEMORY_MODE == 1     \r
+#if __DATA_MODEL__ == __DATA_MODEL_FAR__\r
+\r
        ; ES is not saved or restored when using the near memory model so only\r
        ; test it when using the far model.\r
        MOV             A, ES\r
@@ -170,7 +171,7 @@ vRegTest2:
        MOVW    HL, #0xff12\r
        MOV             CS, #0x03\r
 \r
-#if configMEMORY_MODE == 1     \r
+#if __DATA_MODEL__ == __DATA_MODEL_FAR__\r
 \r
        MOV             ES, #0x04       \r
 \r
@@ -197,7 +198,7 @@ loop2:
        BZ              +5\r
        BR              vRegTestError\r
 \r
-#if configMEMORY_MODE == 1             \r
+#if __DATA_MODEL__ == __DATA_MODEL_FAR__\r
 \r
        MOV             A, ES\r
        CMP             A, #0x04\r
index 495e18a6393df4dda64ff0eebe7722ec4055e6b4..d046e443649d6784bbf3fe5f67137ad6869955a9 100644 (file)
 /* Standard demo includes. */\r
 #include "dynamic.h"\r
 #include "PollQ.h"\r
-#include "semtest.h"\r
+#include "blocktim.h"\r
 \r
 /* The period at which the check timer will expire, in ms, provided no errors\r
 have been reported by any of the standard demo tasks.  ms are converted to the\r
 equivalent in ticks using the portTICK_RATE_MS constant. */\r
 #define mainCHECK_TIMER_PERIOD_MS                      ( 3000UL / portTICK_RATE_MS )\r
 \r
+/* These are used to set the period of the demo timer.  The demo timer period\r
+is always relative to the check timer period, so the check timer can determine\r
+if the demo timer has expired the expected number of times between its own\r
+executions. */\r
+#define mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEROUT     ( 100UL )\r
+#define mainDEMO_TIMER_PERIOD_MS                       ( mainCHECK_TIMER_PERIOD_MS / mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEROUT )\r
+\r
 /* The period at which the check timer will expire, in ms, if an error has been\r
 reported in one of the standard demo tasks.  ms are converted to the equivalent\r
 in ticks using the portTICK_RATE_MS constant. */\r
@@ -94,6 +101,11 @@ in ticks using the portTICK_RATE_MS constant. */
  */\r
 static void prvCheckTimerCallback( xTimerHandle xTimer );\r
 \r
+/*\r
+ * The 'demo' timer callback function, as described at the top of this file.\r
+ */\r
+static void prvDemoTimerCallback( xTimerHandle xTimer );\r
+\r
 /*\r
  * This function is called from the C startup routine to setup the processor -\r
  * in particular the clock source.\r
@@ -118,6 +130,12 @@ static short sRegTestStatus = pdPASS;
 function. */\r
 static xTimerHandle xCheckTimer = NULL;\r
 \r
+/* This time is just for demo purposes. */\r
+static xTimerHandle xDemoTimer = NULL;\r
+\r
+/* This variable is incremented each time the demo timer expires. */\r
+static volatile unsigned long ulDemoTimerCounter = 0UL;\r
+\r
 /* RL78/G13 Option Byte Definition. Watchdog disabled, LVI enabled, OCD interface\r
 enabled. */\r
 __root __far const unsigned char OptionByte[] @ 0x00C0 =\r
@@ -142,7 +160,7 @@ short main( void )
        is provided on the FreeRTOS.org WEB site. */\r
        vStartDynamicPriorityTasks();\r
        vStartPolledQueueTasks( tskIDLE_PRIORITY );\r
-       vStartSemaphoreTasks( tskIDLE_PRIORITY + 1U );\r
+       vCreateBlockTimeTasks();\r
 \r
        /* Create the RegTest tasks as described at the top of this file. */\r
        xTaskCreate( vRegTest1, "Reg1", configMINIMAL_STACK_SIZE, NULL, 0, NULL );\r
@@ -157,10 +175,19 @@ short main( void )
                                                                prvCheckTimerCallback                           /* The callback function that inspects the status of all the other tasks. */\r
                                                          );\r
                                                        \r
+       /* Create the software timer that just increments a variable for demo\r
+       purposes. */\r
+       xDemoTimer = xTimerCreate( ( const signed char * ) "DemoTimer",/* A text name, purely to help debugging. */\r
+                                                               ( 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). */\r
+                                                               pdTRUE,                                                         /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */\r
+                                                               ( void * ) 0,                                           /* The ID is not used, so can be set to anything. */\r
+                                                               prvDemoTimerCallback                            /* The callback function that inspects the status of all the other tasks. */\r
+                                                         );\r
        \r
-       /* Send a command to start the check timer.  It will not actually start\r
-       until the scheduler is running (when vTaskStartScheduler() is called). */\r
+       /* Start both the check timer and the demo timer.  The timers won't actually\r
+       start until the scheduler is started. */\r
        xTimerStart( xCheckTimer, mainDONT_BLOCK );\r
+       xTimerStart( xDemoTimer, mainDONT_BLOCK );\r
        \r
        /* Finally start the scheduler running. */\r
        vTaskStartScheduler();\r
@@ -171,9 +198,20 @@ short main( void )
 }\r
 /*-----------------------------------------------------------*/\r
 \r
+static void prvDemoTimerCallback( xTimerHandle xTimer )\r
+{\r
+       /* The demo timer has expired.  All it does is increment a variable.  The\r
+       period of the demo timer is relative to that of the check timer, so the\r
+       check timer knows how many times this variable should have been incremented\r
+       between each execution of the check timer's own callback. */\r
+       ulDemoTimerCounter++;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
 static void prvCheckTimerCallback( xTimerHandle xTimer )\r
 {\r
 static portBASE_TYPE xChangedTimerPeriodAlready = pdFALSE, xErrorStatus = pdPASS;\r
+static unsigned long ulLastDemoTimerCounter = 0UL;\r
 \r
        if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )\r
        {\r
@@ -185,7 +223,7 @@ static portBASE_TYPE xChangedTimerPeriodAlready = pdFALSE, xErrorStatus = pdPASS
                xErrorStatus = pdFAIL;\r
        }\r
        \r
-       if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
+       if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )\r
        {\r
                xErrorStatus = pdFAIL;\r
        }\r
@@ -194,6 +232,16 @@ static portBASE_TYPE xChangedTimerPeriodAlready = pdFALSE, xErrorStatus = pdPASS
        {\r
                xErrorStatus = pdFAIL;\r
        }\r
+       \r
+       /* Ensure that the demo timer has expired at\r
+       mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEROUT times in between\r
+       each call of this function. */\r
+       if( ( ulDemoTimerCounter - ulLastDemoTimerCounter ) < ( mainDEMO_TIMER_INCREMENTS_PER_CHECK_TIMER_TIMEROUT - 1 ) )\r
+       {\r
+               xErrorStatus = pdFAIL;\r
+       }\r
+       \r
+       ulLastDemoTimerCounter = ulDemoTimerCounter;\r
 \r
        if( ( xErrorStatus == pdFAIL ) && ( xChangedTimerPeriodAlready == pdFALSE ) )\r
        {\r
index f14f3318179e465be01198baddcb8cd840323eaf..d7c608e742d28cfab135a4ac59c15c320a36e46e 100644 (file)
         \r
         \r
       <MixedMode>1</MixedMode><CodeCovShow>1</CodeCovShow><InstrProfShow>1</InstrProfShow></Disassembly>\r
-    </Static>\r
+    <STACK2><PreferedWindows><Position>1</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></STACK2><Register><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></Register></Static>\r
     <Windows>\r
       \r
       \r
       \r
-    <Wnd0>\r
+    <Wnd2>\r
         <Tabs>\r
           <Tab>\r
             <Identity>TabID-30626-17561</Identity>\r
@@ -47,7 +47,7 @@
           </Tab>\r
         </Tabs>\r
         \r
-      <SelectedTab>0</SelectedTab></Wnd0><Wnd1>\r
+      <SelectedTab>0</SelectedTab></Wnd2><Wnd3>\r
         <Tabs>\r
           <Tab>\r
             <Identity>TabID-8606-17564</Identity>\r
             <Factory>Workspace</Factory>\r
             <Session>\r
               \r
-            <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/Demo Source</ExpandedNode><ExpandedNode>RTOSDemo/Demo Source/StandardDemos</ExpandedNode></NodeDict></Session>\r
+            <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/Demo Source</ExpandedNode><ExpandedNode>RTOSDemo/Demo Source/StandardDemos</ExpandedNode><ExpandedNode>RTOSDemo/Kernel Source</ExpandedNode></NodeDict></Session>\r
           </Tab>\r
         </Tabs>\r
         \r
-      <SelectedTab>0</SelectedTab></Wnd1></Windows>\r
+      <SelectedTab>0</SelectedTab></Wnd3></Windows>\r
     <Editor>\r
       \r
       \r
       \r
       \r
-    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>157</YPos><SelStart>10672</SelStart><SelEnd>10672</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\Common\Minimal\semtest.c</Filename><XPos>0</XPos><YPos>248</YPos><SelStart>11198</SelStart><SelEnd>11228</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
+    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>134</YPos><SelStart>6308</SelStart><SelEnd>6308</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\portable\MemMang\heap_1.c</Filename><XPos>0</XPos><YPos>105</YPos><SelStart>4982</SelStart><SelEnd>4982</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\tasks.c</Filename><XPos>0</XPos><YPos>1089</YPos><SelStart>38372</SelStart><SelEnd>38372</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\..\Source\timers.c</Filename><XPos>0</XPos><YPos>186</YPos><SelStart>9465</SelStart><SelEnd>9465</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\FreeRTOSConfig.h</Filename><XPos>0</XPos><YPos>69</YPos><SelStart>4454</SelStart><SelEnd>4454</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\RegTest.s87</Filename><XPos>0</XPos><YPos>109</YPos><SelStart>5308</SelStart><SelEnd>5308</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
     <Positions>\r
       \r
       \r
       \r
       \r
       \r
-    <Top><Row0><Sizes><Toolbar-013362c8><key>iaridepm.enu1</key></Toolbar-013362c8></Sizes></Row0><Row1><Sizes><Toolbar-04c02860><key>debuggergui.enu1</key></Toolbar-04c02860><Toolbar-08707c28><key>rl78ocd.enu1</key></Toolbar-08707c28></Sizes></Row1><Row2><Sizes/></Row2><Row3><Sizes/></Row3><Row4><Sizes/></Row4><Row5><Sizes/></Row5><Row6><Sizes/></Row6></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>662</Bottom><Right>344</Right><x>-2</x><y>-2</y><xscreen>346</xscreen><yscreen>254</yscreen><sizeHorzCX>205952</sizeHorzCX><sizeHorzCY>258656</sizeHorzCY><sizeVertCX>205952</sizeVertCX><sizeVertCY>676171</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>252</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>254</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>258656</sizeHorzCY><sizeVertCX>205952</sizeVertCX><sizeVertCY>258656</sizeVertCY></Rect></Wnd0></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
+    <Top><Row0><Sizes><Toolbar-013362c8><key>iaridepm.enu1</key></Toolbar-013362c8></Sizes></Row0><Row1><Sizes><Toolbar-0b06e580><key>debuggergui.enu1</key></Toolbar-0b06e580><Toolbar-0ad5a4f8><key>rl78ocd.enu1</key></Toolbar-0ad5a4f8></Sizes></Row1><Row2><Sizes/></Row2><Row3><Sizes/></Row3><Row4><Sizes/></Row4><Row5><Sizes/></Row5><Row6><Sizes/></Row6><Row7><Sizes/></Row7><Row8><Sizes/></Row8><Row9><Sizes/></Row9><Row10><Sizes/></Row10><Row11><Sizes/></Row11><Row12><Sizes/></Row12><Row13><Sizes/></Row13><Row14><Sizes/></Row14><Row15><Sizes/></Row15><Row16><Sizes/></Row16><Row17><Sizes/></Row17><Row18><Sizes/></Row18><Row19><Sizes/></Row19><Row20><Sizes/></Row20><Row21><Sizes/></Row21><Row22><Sizes/></Row22><Row23><Sizes/></Row23><Row24><Sizes/></Row24><Row25><Sizes/></Row25><Row26><Sizes/></Row26><Row27><Sizes/></Row27><Row28><Sizes/></Row28><Row29><Sizes/></Row29><Row30><Sizes/></Row30><Row31><Sizes/></Row31><Row32><Sizes/></Row32><Row33><Sizes/></Row33><Row34><Sizes/></Row34><Row35><Sizes/></Row35><Row36><Sizes/></Row36></Top><Left><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>662</Bottom><Right>344</Right><x>-2</x><y>-2</y><xscreen>346</xscreen><yscreen>254</yscreen><sizeHorzCX>205952</sizeHorzCX><sizeHorzCY>258656</sizeHorzCY><sizeVertCX>205952</sizeVertCX><sizeVertCY>676171</sizeVertCY></Rect></Wnd3></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>252</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>254</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>258656</sizeHorzCY><sizeVertCX>205952</sizeVertCX><sizeVertCY>258656</sizeVertCY></Rect></Wnd2></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
   </Desktop>\r
 </Project>\r
 \r
index f1f403d76dd745e1ee33f28ebd33b3201a3dca27..9c561957f8d8b47e109ec59ccb815ed290db3621 100644 (file)
@@ -15,7 +15,7 @@ TypeViolation=1
 UnspecRange=1\r
 ActionState=1\r
 [DebugChecksum]\r
-Checksum=-185012109\r
+Checksum=-1910636464\r
 [DisAssemblyWindow]\r
 NumStates=_ 1\r
 State 1=_ 1\r
@@ -177,7 +177,8 @@ Mode=0
 Graph=0\r
 Symbiont=0\r
 [Breakpoints]\r
-Count=0\r
+Bp0=_ "STD_CODE" "{$PROJ_DIR$\..\..\Source\portable\MemMang\heap_1.c}.121.4@1" 1 0 0 0 "" 0 ""\r
+Count=1\r
 [Aliases]\r
 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"\r
 Count=1\r
index 670b6fff63171e2336c03324fd4e3a08b2289f77..12f572b343b82271f97d78d383f96e8f0f5204fa 100644 (file)
@@ -25,7 +25,7 @@
             <Factory>Workspace</Factory>\r
             <Session>\r
               \r
-            <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode><ExpandedNode>RTOSDemo/Demo Source</ExpandedNode><ExpandedNode>RTOSDemo/Demo Source/StandardDemos</ExpandedNode><ExpandedNode>RTOSDemo/Kernel Source</ExpandedNode></NodeDict></Session>\r
+            <NodeDict><ExpandedNode>RTOSDemo</ExpandedNode></NodeDict></Session>\r
           </Tab>\r
         </Tabs>\r
         \r
       \r
       \r
       \r
-    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>157</YPos><SelStart>10672</SelStart><SelEnd>10672</SelEnd></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\..\Common\Minimal\semtest.c</Filename><XPos>0</XPos><YPos>248</YPos><SelStart>11198</SelStart><SelEnd>11228</SelEnd></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
+    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>134</YPos><SelStart>6308</SelStart><SelEnd>6308</SelEnd></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>\r
     <Positions>\r
       \r
       \r
       \r
       \r
       \r
-    <Top><Row0><Sizes><Toolbar-013362c8><key>iaridepm.enu1</key></Toolbar-013362c8></Sizes></Row0><Row1><Sizes/></Row1><Row2><Sizes/></Row2><Row3><Sizes/></Row3><Row4><Sizes/></Row4><Row5><Sizes/></Row5><Row6><Sizes/></Row6><Row7><Sizes/></Row7><Row8><Sizes/></Row8><Row9><Sizes/></Row9><Row10><Sizes/></Row10></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>629</Bottom><Right>318</Right><x>-2</x><y>-2</y><xscreen>263</xscreen><yscreen>200</yscreen><sizeHorzCX>156548</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>190476</sizeVertCX><sizeVertCY>642566</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>309</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>311</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>316701</sizeHorzCY><sizeVertCX>205357</sizeVertCX><sizeVertCY>258656</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
+    <Top><Row0><Sizes><Toolbar-013362c8><key>iaridepm.enu1</key></Toolbar-013362c8></Sizes></Row0><Row1><Sizes/></Row1><Row2><Sizes/></Row2><Row3><Sizes/></Row3><Row4><Sizes/></Row4><Row5><Sizes/></Row5><Row6><Sizes/></Row6><Row7><Sizes/></Row7><Row8><Sizes/></Row8><Row9><Sizes/></Row9><Row10><Sizes/></Row10><Row11><Sizes/></Row11><Row12><Sizes/></Row12><Row13><Sizes/></Row13><Row14><Sizes/></Row14><Row15><Sizes/></Row15><Row16><Sizes/></Row16><Row17><Sizes/></Row17><Row18><Sizes/></Row18><Row19><Sizes/></Row19><Row20><Sizes/></Row20><Row21><Sizes/></Row21><Row22><Sizes/></Row22><Row23><Sizes/></Row23><Row24><Sizes/></Row24><Row25><Sizes/></Row25><Row26><Sizes/></Row26><Row27><Sizes/></Row27><Row28><Sizes/></Row28><Row29><Sizes/></Row29><Row30><Sizes/></Row30><Row31><Sizes/></Row31><Row32><Sizes/></Row32><Row33><Sizes/></Row33><Row34><Sizes/></Row34><Row35><Sizes/></Row35><Row36><Sizes/></Row36><Row37><Sizes/></Row37><Row38><Sizes/></Row38></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>629</Bottom><Right>318</Right><x>-2</x><y>-2</y><xscreen>263</xscreen><yscreen>200</yscreen><sizeHorzCX>156548</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>190476</sizeVertCX><sizeVertCY>642566</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>309</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>311</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>316701</sizeHorzCY><sizeVertCX>205357</sizeVertCX><sizeVertCY>258656</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>\r
   </Desktop>\r
 </Workspace>\r
 \r