#include "FreeRTOS.h"\r
#include "task.h"\r
\r
+/* Hardware includes. */\r
+#include <XMC1300.h>\r
+\r
/* Standard demo include. */\r
#include "partest.h"\r
\r
+/* The port bits on which LEDs are connected. */\r
+static const unsigned long ulLEDBits[] = \r
+{ \r
+ 1UL << 0, /* P0.0 */\r
+ 1UL << 2, /* P0.2 */\r
+ 1UL << 5, /* P0.5 */\r
+ 1UL << 6, /* P0.6 */\r
+ 1UL << 7 /* P0.7 */\r
+};\r
+\r
+#define partstNUM_LEDS ( sizeof( ulLEDBits ) / sizeof( unsigned long ) )\r
+\r
+/* Shift the LED bit into the correct position within the POW register to\r
+perform the desired operation. */\r
+#define partstON_SHIFT ( 16UL )\r
+#define partstOFF_SHIFT ( 0UL )\r
+\r
/*-----------------------------------------------------------*/\r
\r
void vParTestInitialise( void )\r
{\r
+ /* Configure relevant port P0 to push pull output to drive LEDs. */\r
+ \r
+ /* P0.0 */\r
+ PORT0->IOCR0 &= ~( ( 0xFFUL << 0 ) );\r
+ PORT0->IOCR0 |= ( 0x80UL << 0 );\r
+\r
+ /* P0.2 */\r
+ PORT0->IOCR0 &= ~( ( 0xFFUL << 16 ) );\r
+ PORT0->IOCR0 |= ( 0x80UL << 16 );\r
+\r
+ /* P0.5 */\r
+ PORT0->IOCR4 &= ~( ( 0xFFUL << 8 ) );\r
+ PORT0->IOCR4 |= ( 0x80UL << 8 );\r
+\r
+ /* P0.6 */\r
+ PORT0->IOCR4 &= ~( ( 0xFFUL << 16 ) );\r
+ PORT0->IOCR4 |= ( 0x80UL << 16 );\r
+\r
+ /* P0.7 */\r
+ PORT0->IOCR4 &= ~( ( 0xFFUL << 24 ) );\r
+ PORT0->IOCR4 |= ( 0x80UL << 24 );\r
}\r
/*-----------------------------------------------------------*/\r
\r
void vParTestSetLED( unsigned long ulLED, signed portBASE_TYPE xValue )\r
{\r
+ if( ulLED < partstNUM_LEDS )\r
+ {\r
+ if( xValue == pdTRUE )\r
+ {\r
+ /* Turn the LED on. */\r
+ PORT0->OMR = ( ulLEDBits[ ulLED ] << partstON_SHIFT );\r
+ }\r
+ else\r
+ {\r
+ /* Turn the LED off. */\r
+ PORT0->OMR = ( ulLEDBits[ ulLED ] << partstOFF_SHIFT );\r
+ }\r
+ }\r
}\r
/*-----------------------------------------------------------*/\r
\r
void vParTestToggleLED( unsigned long ulLED )\r
{\r
+ if( ulLED < partstNUM_LEDS )\r
+ {\r
+ /* Setting both the ON and OFF bits simultaneously results in the bit\r
+ being toggled. */\r
+ PORT0->OMR = ( ulLEDBits[ ulLED ] << partstON_SHIFT ) | ( ulLEDBits[ ulLED ] << partstOFF_SHIFT );\r
+ }\r
}\r
/*-----------------------------------------------------------*/\r
\r
<uSim>1</uSim>
<uTrg>0</uTrg>
<sLdApp>1</sLdApp>
- <sGomain>1</sGomain>
+ <sGomain>0</sGomain>
<sRbreak>1</sRbreak>
<sRwatch>1</sRwatch>
<sRmem>1</sRmem>
<tRtrace>1</tRtrace>
<sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime>
- <nTsel>1</nTsel>
+ <nTsel>0</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
<pMon>BIN\UL2CM3.DLL</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>DLGDARM</Key>
+ <Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>ARMDBGFLAGS</Key>
+ <Name>-T0</Name>
+ </SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
<Name>UL2CM3(-O207 -S0 -C0 -FO7 -FN1 -FC800 -FD20000000 -FF0XMC1300_200 -FL032000 -FS010001000</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
- <Breakpoint/>
+ <Breakpoint>
+ <Bp>
+ <Number>0</Number>
+ <Type>0</Type>
+ <LineNumber>132</LineNumber>
+ <EnabledFlag>1</EnabledFlag>
+ <Address>0</Address>
+ <ByteObject>0</ByteObject>
+ <HtxType>0</HtxType>
+ <ManyObjects>0</ManyObjects>
+ <SizeOfObject>0</SizeOfObject>
+ <BreakByAccess>0</BreakByAccess>
+ <BreakIfRCount>0</BreakIfRCount>
+ <Filename>C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\CORTEX_M0_Infineon_Boot_Kits_IAR_Keil\startup_XMC1300.s</Filename>
+ <ExecCommand></ExecCommand>
+ <Expression></Expression>
+ </Bp>
+ </Breakpoint>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
<DebugFlag>
<trace>0</trace>
<periodic>1</periodic>
- <aLwin>0</aLwin>
+ <aLwin>1</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer2>0</aSer2>
<aPa>0</aPa>
- <viewmode>0</viewmode>
+ <viewmode>1</viewmode>
<vrSel>0</vrSel>
<aSym>0</aSym>
<aTbox>0</aTbox>
<aSer4>0</aSer4>
<StkLoc>0</StkLoc>
<TrcWin>0</TrcWin>
- <newCpu>3</newCpu>
+ <newCpu>0</newCpu>
<uProt>0</uProt>
</DebugFlag>
<LintExecutable></LintExecutable>
<Group>
<GroupName>System</GroupName>
- <tvExp>0</tvExp>
+ <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<FileType>2</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
- <ColumnNumber>26</ColumnNumber>
+ <ColumnNumber>0</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
- <TopLine>128</TopLine>
- <CurrentLine>129</CurrentLine>
+ <TopLine>130</TopLine>
+ <CurrentLine>132</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>.\startup_XMC1300.s</PathWithFileName>
<FilenameWithoutPath>startup_XMC1300.s</FilenameWithoutPath>
<Group>
<GroupName>FreeRTOS source</GroupName>
- <tvExp>0</tvExp>
+ <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
- <ColumnNumber>0</ColumnNumber>
+ <ColumnNumber>9</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
- <TopLine>1</TopLine>
- <CurrentLine>1</CurrentLine>
+ <TopLine>265</TopLine>
+ <CurrentLine>279</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>..\..\Source\portable\RVDS\ARM_CM0\port.c</PathWithFileName>
<FilenameWithoutPath>port.c</FilenameWithoutPath>
<Group>
<GroupName>Demo App Source</GroupName>
- <tvExp>0</tvExp>
+ <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
- <ColumnNumber>0</ColumnNumber>
+ <ColumnNumber>9</ColumnNumber>
<tvExpOptDlg>0</tvExpOptDlg>
- <TopLine>0</TopLine>
- <CurrentLine>0</CurrentLine>
+ <TopLine>115</TopLine>
+ <CurrentLine>134</CurrentLine>
<bDave2>0</bDave2>
<PathWithFileName>.\ParTest.c</PathWithFileName>
<FilenameWithoutPath>ParTest.c</FilenameWithoutPath>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>12</FileNumber>
- <FileType>1</FileType>
+ <FileType>5</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<ColumnNumber>0</ColumnNumber>
<TopLine>0</TopLine>
<CurrentLine>0</CurrentLine>
<bDave2>0</bDave2>
+ <PathWithFileName>.\FreeRTOSConfig.h</PathWithFileName>
+ <FilenameWithoutPath>FreeRTOSConfig.h</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>13</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>36</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>293</TopLine>
+ <CurrentLine>311</CurrentLine>
+ <bDave2>0</bDave2>
<PathWithFileName>.\main-full.c</PathWithFileName>
<FilenameWithoutPath>main-full.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
</File>
<File>
<GroupNumber>3</GroupNumber>
- <FileNumber>13</FileNumber>
- <FileType>5</FileType>
+ <FileNumber>14</FileNumber>
+ <FileType>2</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>5</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>142</TopLine>
+ <CurrentLine>143</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>.\RegTest.s</PathWithFileName>
+ <FilenameWithoutPath>RegTest.s</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Common Demo Tasks</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>4</GroupNumber>
+ <FileNumber>15</FileNumber>
+ <FileType>1</FileType>
<tvExp>0</tvExp>
<Focus>0</Focus>
<ColumnNumber>0</ColumnNumber>
<TopLine>0</TopLine>
<CurrentLine>0</CurrentLine>
<bDave2>0</bDave2>
- <PathWithFileName>.\FreeRTOSConfig.h</PathWithFileName>
- <FilenameWithoutPath>FreeRTOSConfig.h</FilenameWithoutPath>
+ <PathWithFileName>..\Common\Minimal\dynamic.c</PathWithFileName>
+ <FilenameWithoutPath>dynamic.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>4</GroupNumber>
+ <FileNumber>16</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Common\Minimal\recmutex.c</PathWithFileName>
+ <FilenameWithoutPath>recmutex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>4</GroupNumber>
+ <FileNumber>17</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Common\Minimal\blocktim.c</PathWithFileName>
+ <FilenameWithoutPath>blocktim.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>4</GroupNumber>
+ <FileNumber>18</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <Focus>0</Focus>
+ <ColumnNumber>0</ColumnNumber>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <TopLine>0</TopLine>
+ <CurrentLine>0</CurrentLine>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\Common\Minimal\countsem.c</PathWithFileName>
+ <FilenameWithoutPath>countsem.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<Simulator>
<UseSimulator>1</UseSimulator>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
- <RunToMain>1</RunToMain>
+ <RunToMain>0</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreTracepoints>1</RestoreTracepoints>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
- <TargetSelection>1</TargetSelection>
+ <TargetSelection>0</TargetSelection>
<SimDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<UseExternalTool>0</UseExternalTool>
<RunIndependent>0</RunIndependent>
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
- <Capability>0</Capability>
- <DriverSelection>-1</DriverSelection>
+ <Capability>1</Capability>
+ <DriverSelection>4096</DriverSelection>
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2>
- <Flash3></Flash3>
+ <Flash3>"" ()</Flash3>
<Flash4></Flash4>
</Utilities>
<TargetArmAds>
<FileType>1</FileType>
<FilePath>.\main-blinky.c</FilePath>
</File>
+ <File>
+ <FileName>FreeRTOSConfig.h</FileName>
+ <FileType>5</FileType>
+ <FilePath>.\FreeRTOSConfig.h</FilePath>
+ </File>
<File>
<FileName>main-full.c</FileName>
<FileType>1</FileType>
<FilePath>.\main-full.c</FilePath>
- <FileOption>
- <CommonProperty>
- <UseCPPCompiler>2</UseCPPCompiler>
- <RVCTCodeConst>0</RVCTCodeConst>
- <RVCTZI>0</RVCTZI>
- <RVCTOtherData>0</RVCTOtherData>
- <ModuleSelection>0</ModuleSelection>
- <IncludeInBuild>0</IncludeInBuild>
- <AlwaysBuild>2</AlwaysBuild>
- <GenerateAssemblyFile>2</GenerateAssemblyFile>
- <AssembleAssemblyFile>2</AssembleAssemblyFile>
- <PublicsOnly>2</PublicsOnly>
- <StopOnExitCode>11</StopOnExitCode>
- <CustomArgument></CustomArgument>
- <IncludeLibraryModules></IncludeLibraryModules>
- </CommonProperty>
- <FileArmAds>
- <Cads>
- <interw>2</interw>
- <Optim>0</Optim>
- <oTime>2</oTime>
- <SplitLS>2</SplitLS>
- <OneElfS>2</OneElfS>
- <Strict>2</Strict>
- <EnumInt>2</EnumInt>
- <PlainCh>2</PlainCh>
- <Ropi>2</Ropi>
- <Rwpi>2</Rwpi>
- <wLevel>0</wLevel>
- <uThumb>2</uThumb>
- <uSurpInc>2</uSurpInc>
- <VariousControls>
- <MiscControls></MiscControls>
- <Define></Define>
- <Undefine></Undefine>
- <IncludePath></IncludePath>
- </VariousControls>
- </Cads>
- </FileArmAds>
- </FileOption>
</File>
<File>
- <FileName>FreeRTOSConfig.h</FileName>
- <FileType>5</FileType>
- <FilePath>.\FreeRTOSConfig.h</FilePath>
+ <FileName>RegTest.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>.\RegTest.s</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Common Demo Tasks</GroupName>
+ <Files>
+ <File>
+ <FileName>dynamic.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\dynamic.c</FilePath>
+ </File>
+ <File>
+ <FileName>recmutex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\recmutex.c</FilePath>
+ </File>
+ <File>
+ <FileName>blocktim.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\blocktim.c</FilePath>
+ </File>
+ <File>
+ <FileName>countsem.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\countsem.c</FilePath>
</File>
</Files>
</Group>
-/*\r
- FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd.\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that has become a de facto standard. *\r
- * *\r
- * Help yourself get started quickly and support the FreeRTOS *\r
- * project by purchasing a FreeRTOS tutorial book, reference *\r
- * manual, or both from: http://www.FreeRTOS.org/Documentation *\r
- * *\r
- * Thank you! *\r
- * *\r
- ***************************************************************************\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
-\r
- >>! NOTE: The modification to the GPL is included to allow you to distribute\r
- >>! a combined work that includes FreeRTOS without being obliged to provide\r
- >>! the source code for proprietary components outside of the FreeRTOS\r
- >>! kernel.\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available from the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- 1 tab == 4 spaces!\r
-\r
- ***************************************************************************\r
- * *\r
- * Having a problem? Start by reading the FAQ "My application does *\r
- * not run, what could be wrong?" *\r
- * *\r
- * http://www.FreeRTOS.org/FAQHelp.html *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org - Documentation, books, training, latest versions,\r
- license and Real Time Engineers Ltd. contact details.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High\r
- Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
- RSEG CODE:CODE(2)\r
- thumb\r
-\r
- EXTERN ulRegTest1LoopCounter\r
- EXTERN ulRegTest2LoopCounter\r
-\r
- PUBLIC vRegTest1Task\r
- PUBLIC vRegTest2Task\r
-\r
-/*-----------------------------------------------------------*/\r
-vRegTest1Task\r
-\r
- /* Fill the core registers with known values. This is only done once. */\r
+;/*\r
+; FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd.\r
+;\r
+; VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
+;\r
+; ***************************************************************************\r
+; * *\r
+; * FreeRTOS provides completely free yet professionally developed, *\r
+; * robust, strictly quality controlled, supported, and cross *\r
+; * platform software that has become a de facto standard. *\r
+; * *\r
+; * Help yourself get started quickly and support the FreeRTOS *\r
+; * project by purchasing a FreeRTOS tutorial book, reference *\r
+; * manual, or both from: http://www.FreeRTOS.org/Documentation *\r
+; * *\r
+; * Thank you! *\r
+; * *\r
+; ***************************************************************************\r
+;\r
+; This file is part of the FreeRTOS distribution.\r
+;\r
+; FreeRTOS is free software; you can redistribute it and/or modify it under\r
+; the terms of the GNU General Public License (version 2) as published by the\r
+; Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
+;\r
+; >>! NOTE: The modification to the GPL is included to allow you to distribute\r
+; >>! a combined work that includes FreeRTOS without being obliged to provide\r
+; >>! the source code for proprietary components outside of the FreeRTOS\r
+; >>! kernel.\r
+;\r
+; FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
+; WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+; FOR A PARTICULAR PURPOSE. Full license text is available from the following\r
+; link: http://www.freertos.org/a00114.html\r
+;\r
+; 1 tab == 4 spaces!\r
+;\r
+; ***************************************************************************\r
+; * *\r
+; * Having a problem? Start by reading the FAQ "My application does *\r
+; * not run, what could be wrong?" *\r
+; * *\r
+; * http://www.FreeRTOS.org/FAQHelp.html *\r
+; * *\r
+; ***************************************************************************\r
+;\r
+; http://www.FreeRTOS.org - Documentation, books, training, latest versions,\r
+; license and Real Time Engineers Ltd. contact details.\r
+;\r
+; http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
+; including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
+; compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
+;\r
+; http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High\r
+; Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS\r
+; licenses offer ticketed support, indemnification and middleware.\r
+;\r
+; http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
+; engineered and independently SIL3 certified version for use in safety and\r
+; mission critical applications that require provable dependability.\r
+;\r
+; 1 tab == 4 spaces!\r
+;*/\r
+\r
+ PRESERVE8\r
+ THUMB\r
+ \r
+\r
+ IMPORT ulRegTest1LoopCounter\r
+ IMPORT ulRegTest2LoopCounter\r
+\r
+ EXPORT vRegTest1Task\r
+ EXPORT vRegTest2Task\r
+ \r
+ AREA |.text|, CODE, READONLY\r
+\r
+;/*-----------------------------------------------------------*/\r
+vRegTest1Task PROC\r
+\r
+ ;/* Fill the core registers with known values. This is only done once. */\r
movs r1, #101\r
movs r2, #102\r
movs r3, #103\r
movs r0, #100\r
\r
reg1_loop\r
- /* Repeatedly check that each register still contains the value written to\r
- it when the task started. */\r
+ ;/* Repeatedly check that each register still contains the value written to\r
+ ;it when the task started. */\r
cmp r0, #100\r
bne reg1_error_loop\r
cmp r1, #101\r
cmp r12, r0\r
bne reg1_error_loop\r
\r
- /* Everything passed, increment the loop counter. */\r
+ ;/* Everything passed, increment the loop counter. */\r
push { r1 }\r
ldr r0, =ulRegTest1LoopCounter\r
ldr r1, [r0]\r
str r1, [r0]\r
pop { r1 }\r
\r
- /* Start again. */\r
+ ;/* Start again. */\r
movs r0, #100\r
b reg1_loop\r
\r
reg1_error_loop\r
- /* If this line is hit then there was an error in a core register value.\r
- The loop ensures the loop counter stops incrementing. */\r
+ ;/* If this line is hit then there was an error in a core register value.\r
+ ;The loop ensures the loop counter stops incrementing. */\r
b reg1_error_loop\r
nop\r
+ ENDP\r
\r
\r
\r
-vRegTest2Task\r
+vRegTest2Task PROC\r
\r
- /* Fill the core registers with known values. This is only done once. */\r
+ ;/* Fill the core registers with known values. This is only done once. */\r
movs r1, #1\r
movs r2, #2\r
movs r3, #3\r
movs r0, #10\r
\r
reg2_loop\r
- /* Repeatedly check that each register still contains the value written to\r
- it when the task started. */\r
+ ;/* Repeatedly check that each register still contains the value written to\r
+ ;it when the task started. */\r
cmp r0, #10\r
bne reg2_error_loop\r
cmp r1, #1\r
cmp r12, r0\r
bne reg2_error_loop\r
\r
- /* Everything passed, increment the loop counter. */\r
+ ;/* Everything passed, increment the loop counter. */\r
push { r1 }\r
ldr r0, =ulRegTest2LoopCounter\r
ldr r1, [r0]\r
str r1, [r0]\r
pop { r1 }\r
\r
- /* Start again. */\r
+ ;/* Start again. */\r
movs r0, #10\r
b reg2_loop\r
\r
reg2_error_loop\r
- /* If this line is hit then there was an error in a core register value.\r
- The loop ensures the loop counter stops incrementing. */\r
+ ;/* If this line is hit then there was an error in a core register value.\r
+ ;The loop ensures the loop counter stops incrementing. */\r
b reg2_error_loop\r
nop\r
+ ENDP\r
\r
END\r
#define mainFLASH_TIMER_BASE_RATE ( 200UL / portTICK_RATE_MS )\r
\r
/* The LED toggle by the check timer. */\r
-#define mainCHECK_LED ( 3 )\r
+#define mainCHECK_LED ( 1 )\r
+\r
/*-----------------------------------------------------------*/\r
\r
/*\r