;/*\r
-; FreeRTOS V9.0.1 - Copyright (C) 2017 Real Time Engineers Ltd.\r
-; All rights reserved\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
+; * FreeRTOS Kernel V10.0.0\r
+; * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r
+; *\r
+; * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
+; * this software and associated documentation files (the "Software"), to deal in\r
+; * the Software without restriction, including without limitation the rights to\r
+; * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
+; * the Software, and to permit persons to whom the Software is furnished to do so,\r
+; * subject to the following conditions:\r
+; *\r
+; * The above copyright notice and this permission notice shall be included in all\r
+; * copies or substantial portions of the Software. If you wish to use our Amazon\r
+; * FreeRTOS name, please do so in a fair use way that does not cause confusion.\r
+; *\r
+; * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+; * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
+; * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
+; * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
+; * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+; * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+; *\r
+; * http://www.FreeRTOS.org\r
+; * http://aws.amazon.com/freertos\r
+; *\r
+; * 1 tab == 4 spaces!\r
+; */\r
\r
.global _vRegTest1Implementation\r
.global _vRegTest2Implementation\r
MOV.L #13, R13\r
MOV.L #14, R14\r
MOV.L #15, R15\r
- \r
+\r
;/* Put a known value in the hi and low of the accumulators. */\r
MVTACHI R1, A0\r
MVTACLO R2, A0\r
\r
;/* Loop, checking each iteration that each register still contains the\r
;expected value. */\r
-TestLoop1: \r
+TestLoop1:\r
\r
;/* Push the registers that are going to get clobbered. */\r
- PUSHM R14-R15 \r
- \r
+ PUSHM R14-R15\r
+\r
;/* Increment the loop counter to show this task is still getting CPU time. */\r
MOV.L #_ulRegTest1LoopCounter, R14\r
MOV.L [ R14 ], R15\r
- ADD #1, R15 \r
+ ADD #1, R15\r
MOV.L R15, [ R14 ]\r
- \r
+\r
;/* Yield to extend the text coverage. Set the bit in the ITU SWINTR register. */\r
MOV.L #1, R14\r
MOV.L #0872E0H, R15\r
MOV.B R14, [R15]\r
- NOP \r
- NOP \r
- \r
+ NOP\r
+ NOP\r
+\r
;/* Check accumulators. */\r
MVFACHI #0, A0, R15\r
CMP #1, R15\r
BNE RegTest1Error\r
\r
;/* Restore the clobbered registers. */\r
- POPM R14-R15 \r
- \r
+ POPM R14-R15\r
+\r
;/* Now compare each register to ensure it still contains the value that was\r
;set before this loop was entered. */\r
- CMP #1, R1 \r
- BNE RegTest1Error \r
- CMP #2, R2 \r
- BNE RegTest1Error \r
- CMP #3, R3 \r
- BNE RegTest1Error \r
- CMP #4, R4 \r
- BNE RegTest1Error \r
- CMP #5, R5 \r
- BNE RegTest1Error \r
- CMP #6, R6 \r
- BNE RegTest1Error \r
- CMP #7, R7 \r
- BNE RegTest1Error \r
- CMP #8, R8 \r
- BNE RegTest1Error \r
- CMP #9, R9 \r
- BNE RegTest1Error \r
- CMP #10, R10 \r
- BNE RegTest1Error \r
- CMP #11, R11 \r
- BNE RegTest1Error \r
- CMP #12, R12 \r
- BNE RegTest1Error \r
- CMP #13, R13 \r
- BNE RegTest1Error \r
- CMP #14, R14 \r
- BNE RegTest1Error \r
- CMP #15, R15 \r
- BNE RegTest1Error \r
+ CMP #1, R1\r
+ BNE RegTest1Error\r
+ CMP #2, R2\r
+ BNE RegTest1Error\r
+ CMP #3, R3\r
+ BNE RegTest1Error\r
+ CMP #4, R4\r
+ BNE RegTest1Error\r
+ CMP #5, R5\r
+ BNE RegTest1Error\r
+ CMP #6, R6\r
+ BNE RegTest1Error\r
+ CMP #7, R7\r
+ BNE RegTest1Error\r
+ CMP #8, R8\r
+ BNE RegTest1Error\r
+ CMP #9, R9\r
+ BNE RegTest1Error\r
+ CMP #10, R10\r
+ BNE RegTest1Error\r
+ CMP #11, R11\r
+ BNE RegTest1Error\r
+ CMP #12, R12\r
+ BNE RegTest1Error\r
+ CMP #13, R13\r
+ BNE RegTest1Error\r
+ CMP #14, R14\r
+ BNE RegTest1Error\r
+ CMP #15, R15\r
+ BNE RegTest1Error\r
\r
;/* All comparisons passed, start a new itteratio of this loop. */\r
- BRA TestLoop1 \r
- \r
-RegTest1Error: \r
+ BRA TestLoop1\r
+\r
+RegTest1Error:\r
;/* A compare failed, just loop here so the loop counter stops incrementing\r
;- causing the check task to indicate the error. */\r
- BRA RegTest1Error \r
+ BRA RegTest1Error\r
;/*-----------------------------------------------------------*/\r
\r
;/* This function is explained in the comments at the top of main.c. */\r
\r
;/* Loop, checking each iteration that each register still contains the\r
;expected value. */\r
-TestLoop2: \r
+TestLoop2:\r
\r
;/* Push the registers that are going to get clobbered. */\r
- PUSHM R14-R15 \r
- \r
+ PUSHM R14-R15\r
+\r
;/* Increment the loop counter to show this task is still getting CPU time. */\r
MOV.L #_ulRegTest2LoopCounter, R14\r
MOV.L [ R14 ], R15\r
- ADD #1, R15 \r
+ ADD #1, R15\r
MOV.L R15, [ R14 ]\r
- \r
+\r
;/* Check accumulators. */\r
MVFACHI #0, A0, R15\r
CMP #10H, R15\r
BNE RegTest1Error\r
\r
;/* Restore the clobbered registers. */\r
- POPM R14-R15 \r
- \r
+ POPM R14-R15\r
+\r
;/* Now compare each register to ensure it still contains the value that was\r
;set before this loop was entered. */\r
- CMP #10H, R1 \r
- BNE RegTest2Error \r
- CMP #20H, R2 \r
- BNE RegTest2Error \r
- CMP #30H, R3 \r
- BNE RegTest2Error \r
- CMP #40H, R4 \r
- BNE RegTest2Error \r
- CMP #50H, R5 \r
- BNE RegTest2Error \r
- CMP #60H, R6 \r
- BNE RegTest2Error \r
- CMP #70H, R7 \r
- BNE RegTest2Error \r
- CMP #80H, R8 \r
- BNE RegTest2Error \r
- CMP #90H, R9 \r
- BNE RegTest2Error \r
- CMP #100H, R10 \r
- BNE RegTest2Error \r
- CMP #110H, R11 \r
- BNE RegTest2Error \r
- CMP #120H, R12 \r
- BNE RegTest2Error \r
- CMP #130H, R13 \r
- BNE RegTest2Error \r
- CMP #140H, R14 \r
- BNE RegTest2Error \r
- CMP #150H, R15 \r
- BNE RegTest2Error \r
+ CMP #10H, R1\r
+ BNE RegTest2Error\r
+ CMP #20H, R2\r
+ BNE RegTest2Error\r
+ CMP #30H, R3\r
+ BNE RegTest2Error\r
+ CMP #40H, R4\r
+ BNE RegTest2Error\r
+ CMP #50H, R5\r
+ BNE RegTest2Error\r
+ CMP #60H, R6\r
+ BNE RegTest2Error\r
+ CMP #70H, R7\r
+ BNE RegTest2Error\r
+ CMP #80H, R8\r
+ BNE RegTest2Error\r
+ CMP #90H, R9\r
+ BNE RegTest2Error\r
+ CMP #100H, R10\r
+ BNE RegTest2Error\r
+ CMP #110H, R11\r
+ BNE RegTest2Error\r
+ CMP #120H, R12\r
+ BNE RegTest2Error\r
+ CMP #130H, R13\r
+ BNE RegTest2Error\r
+ CMP #140H, R14\r
+ BNE RegTest2Error\r
+ CMP #150H, R15\r
+ BNE RegTest2Error\r
\r
;/* All comparisons passed, start a new itteratio of this loop. */\r
- BRA TestLoop2 \r
- \r
-RegTest2Error: \r
+ BRA TestLoop2\r
+\r
+RegTest2Error:\r
;/* A compare failed, just loop here so the loop counter stops incrementing\r
;- causing the check task to indicate the error. */\r
- BRA RegTest2Error \r
+ BRA RegTest2Error\r
+\r
\r
- \r
.END\r