-/*\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