]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/CORTEX_A5_SAMA5D4x_EK_IAR/Full_Demo/reg_test.S
commit 9f316c246baafa15c542a5aea81a94f26e3d6507
[freertos] / FreeRTOS / Demo / CORTEX_A5_SAMA5D4x_EK_IAR / Full_Demo / reg_test.S
index e7772b826085d7cc8fe8481ddcb18a583fb583f2..c3a5ec25a7c12c545981646036246f97a301c122 100644 (file)
@@ -1,76 +1,31 @@
 ;/*\r
-;    FreeRTOS V8.1.2 - Copyright (C) 2014 Real Time Engineers Ltd.\r
-;\r
-;    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT\r
-;    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-;\r
-;    ***************************************************************************\r
-;     *                                                                       *\r
-;     *    FreeRTOS tutorial books are available in pdf and paperback.        *\r
-;     *    Complete, revised, and edited pdf reference manuals are also       *\r
-;     *    available.                                                         *\r
-;     *                                                                       *\r
-;     *    Purchasing FreeRTOS documentation will not only help you, by       *\r
-;     *    ensuring you get running as quickly as possible and with an        *\r
-;     *    in-depth knowledge of how to use FreeRTOS, it will also help       *\r
-;     *    the FreeRTOS project to continue with its mission of providing     *\r
-;     *    professional grade, cross platform, de facto standard solutions    *\r
-;     *    for microcontrollers - completely free of charge!                  *\r
-;     *                                                                       *\r
-;     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *\r
-;     *                                                                       *\r
-;     *    Thank you for using FreeRTOS, and thank you for your support!      *\r
-;     *                                                                       *\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\r
-;    distribute a combined work that includes FreeRTOS without being obliged to\r
-;    provide 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.  See the GNU General Public License for more\r
-;    details. You should have received a copy of the GNU General Public License\r
-;    and the FreeRTOS license exception along with FreeRTOS; if not itcan be\r
-;    viewed here: http://www.freertos.org/a00114.html and also obtained by\r
-;    writing to Real Time Engineers Ltd., contact details for whom are available\r
-;    on the FreeRTOS WEB site.\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
-;\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, and our new\r
-;    fully thread aware and reentrant UDP/IP stack.\r
-;\r
-;    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High\r
-;    Integrity Systems, who sell the code with commercial support,\r
-;    indemnification and middleware, under the OpenRTOS brand.\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
+; * FreeRTOS Kernel V10.3.0\r
+; * Copyright (C) 2020 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.\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
+#include "FreeRTOSConfig.h"\r
 \r
        EXPORT vRegTest1Implementation\r
        EXPORT vRegTest2Implementation\r
@@ -123,7 +78,24 @@ vRegTest1Implementation
        vmov    d14, r4, r5\r
        vmov    d15, r6, r7\r
 \r
-       ; Loop, checking each itteration that each register still contains the\r
+       vmov    d16, r0, r1\r
+       vmov    d17, r2, r3\r
+       vmov    d18, r4, r5\r
+       vmov    d19, r6, r7\r
+       vmov    d20, r8, r9\r
+       vmov    d21, r10, r11\r
+       vmov    d22, r0, r1\r
+       vmov    d23, r2, r3\r
+       vmov    d24, r4, r5\r
+       vmov    d25, r6, r7\r
+       vmov    d26, r8, r9\r
+       vmov    d27, r10, r11\r
+       vmov    d28, r0, r1\r
+       vmov    d29, r2, r3\r
+       vmov    d30, r4, r5\r
+       vmov    d31, r6, r7\r
+\r
+       ; Loop, checking each iteration that each register still contains the\r
        ; expected value.\r
 reg1_loop\r
        ; Yield to increase test coverage\r
@@ -214,6 +186,87 @@ reg1_loop
        cmp     r1, #0x77\r
        bne     reg1_error_loopf\r
 \r
+       vmov    r0, r1, d16\r
+       cmp     r0, #0xFF\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x11\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d17\r
+       cmp     r0, #0x22\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x33\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d18\r
+       cmp     r0, #0x44\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x55\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d19\r
+       cmp     r0, #0x66\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x77\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d20\r
+       cmp     r0, #0x88\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x99\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d21\r
+       cmp     r0, #0xAA\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0xBB\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d22\r
+       cmp     r0, #0xFF\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x11\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d23\r
+       cmp     r0, #0x22\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x33\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d24\r
+       cmp     r0, #0x44\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x55\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d25\r
+       cmp     r0, #0x66\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x77\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d26\r
+       cmp     r0, #0x88\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x99\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d27\r
+       cmp     r0, #0xAA\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0xBB\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d28\r
+       cmp     r0, #0xFF\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x11\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d29\r
+       cmp     r0, #0x22\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x33\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d30\r
+       cmp     r0, #0x44\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x55\r
+       bne     reg1_error_loopf\r
+       vmov    r0, r1, d31\r
+       cmp     r0, #0x66\r
+       bne     reg1_error_loopf\r
+       cmp     r1, #0x77\r
+       bne     reg1_error_loopf\r
+\r
        ; Restore the registers that were clobbered by the test.\r
        pop     {r0-r1}\r
 \r
@@ -317,7 +370,24 @@ vRegTest2Implementation
        vmov    d14, r4, r5\r
        vmov    d15, r6, r7\r
 \r
-       ; Loop, checking each itteration that each register still contains the\r
+       vmov    d16, r0, r1\r
+       vmov    d17, r2, r3\r
+       vmov    d18, r4, r5\r
+       vmov    d19, r6, r7\r
+       vmov    d20, r8, r9\r
+       vmov    d21, r10, r11\r
+       vmov    d22, r0, r1\r
+       vmov    d23, r2, r3\r
+       vmov    d24, r4, r5\r
+       vmov    d25, r6, r7\r
+       vmov    d26, r8, r9\r
+       vmov    d27, r10, r11\r
+       vmov    d28, r0, r1\r
+       vmov    d29, r2, r3\r
+       vmov    d30, r4, r5\r
+       vmov    d31, r6, r7\r
+\r
+       ; Loop, checking each iteration that each register still contains the\r
        ; expected value.\r
 reg2_loop\r
        ; Check all the VFP registers still contain the values set above.\r
@@ -405,6 +475,87 @@ reg2_loop
        cmp     r1, #0x77000000\r
        bne     reg2_error_loopf\r
 \r
+       vmov    r0, r1, d16\r
+       cmp     r0, #0xFF000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x11000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d17\r
+       cmp     r0, #0x22000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x33000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d18\r
+       cmp     r0, #0x44000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x55000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d19\r
+       cmp     r0, #0x66000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x77000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d20\r
+       cmp     r0, #0x88000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x99000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d21\r
+       cmp     r0, #0xAA000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0xBB000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d22\r
+       cmp     r0, #0xFF000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x11000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d23\r
+       cmp     r0, #0x22000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x33000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d24\r
+       cmp     r0, #0x44000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x55000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d25\r
+       cmp     r0, #0x66000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x77000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d26\r
+       cmp     r0, #0x88000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x99000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d27\r
+       cmp     r0, #0xAA000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0xBB000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d28\r
+       cmp     r0, #0xFF000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x11000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d29\r
+       cmp     r0, #0x22000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x33000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d30\r
+       cmp     r0, #0x44000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x55000000\r
+       bne     reg2_error_loopf\r
+       vmov    r0, r1, d31\r
+       cmp     r0, #0x66000000\r
+       bne     reg2_error_loopf\r
+       cmp     r1, #0x77000000\r
+       bne     reg2_error_loopf\r
+\r
        ; Restore the registers that were clobbered by the test.\r
        pop     {r0-r1}\r
 \r
@@ -464,5 +615,4 @@ reg2_error_loop
        b               reg2_error_loop\r
        nop\r
 \r
-\r
        END\r