;/* ; * FreeRTOS Kernel V10.3.0 ; * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. ; * ; * Permission is hereby granted, free of charge, to any person obtaining a copy of ; * this software and associated documentation files (the "Software"), to deal in ; * the Software without restriction, including without limitation the rights to ; * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of ; * the Software, and to permit persons to whom the Software is furnished to do so, ; * subject to the following conditions: ; * ; * The above copyright notice and this permission notice shall be included in all ; * copies or substantial portions of the Software. ; * ; * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ; * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS ; * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR ; * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER ; * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ; * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ; * ; * http://www.FreeRTOS.org ; * http://aws.amazon.com/freertos ; * ; * 1 tab == 4 spaces! ; */ ; Note: Select the correct include files for the device used by the application. EXTERN vRegTestFailed ; ; The RegTest tasks as described in the comments at the top of main(). ; ;------------------------------------------------------------------------------ ; Functions implemented in this file ;------------------------------------------------------------------------------ PUBLIC vRegTest1 PUBLIC vRegTest2 ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ RSEG CODE:CODE vRegTest1: MOV 0x01010101, R1 MOV 0x02020202, R2 ; Ignore R3 and R4 as these are the stack and global pointers respectively. MOV 0x04040404, R5 MOV 0x05050505, R6 MOV 0x06060606, R7 MOV 0x07070707, R8 MOV 0x08080808, R9 MOV 0x09090909, R10 MOV 0x0a0a0a0a, R11 MOV 0x0b0b0b0b, R12 MOV 0x0c0c0c0c, R13 MOV 0x0d0d0d0d, R14 MOV 0x0e0e0e0e, R15 MOV 0x0f0f0f0f, R16 MOV 0x10101010, R17 MOV 0x11111111, R18 MOV 0x12121212, R19 MOV 0x13131313, R20 MOV 0x14141414, R21 MOV 0x15151515, R22 MOV 0x16161616, R23 MOV 0x17171717, R24 #if ( configDATA_MODE == 1 ) ;R25 is used as a base register except when the tiny model is used. */ MOV 0x18181818, R25 #endif MOV 0x19191919, R26 MOV 0x20202020, R27 MOV 0x21212121, R28 MOV 0x22222222, R29 MOV 0x23232323, R30 vReg1TestLoopStart: TRAP 0 MOV 0x01010101, R31 CMP R31, R1 BZ $+6 JARL vRegTestFailed, lp MOV 0x02020202, R31 CMP R31, R2 BZ $+6 JARL vRegTestFailed, lp MOV 0x04040404, R31 CMP R31, R5 BZ $+6 JARL vRegTestFailed, lp MOV 0x05050505, R31 CMP R31, R6 BZ $+6 JARL vRegTestFailed, lp MOV 0x06060606, R31 CMP R31, R7 BZ $+6 JARL vRegTestFailed, lp MOV 0x07070707, R31 CMP R31, R8 BZ $+6 JARL vRegTestFailed, lp MOV 0x08080808, R31 CMP R31, R9 BZ $+6 JARL vRegTestFailed, lp MOV 0x09090909, R31 CMP R31, R10 BZ $+6 JARL vRegTestFailed, lp MOV 0x0a0a0a0a, R31 CMP R31, R11 BZ $+6 JARL vRegTestFailed, lp MOV 0x0b0b0b0b, R31 CMP R31, R12 BZ $+6 JARL vRegTestFailed, lp MOV 0x0c0c0c0c, R31 CMP R31, R13 BZ $+6 JARL vRegTestFailed, lp MOV 0x0d0d0d0d, R31 CMP R31, R14 BZ $+6 JARL vRegTestFailed, lp MOV 0x0e0e0e0e, R31 CMP R31, R15 BZ $+6 JARL vRegTestFailed, lp MOV 0x0f0f0f0f, R31 CMP R31, R16 BZ $+6 JARL vRegTestFailed, lp MOV 0x10101010, R31 CMP R31, R17 BZ $+6 JARL vRegTestFailed, lp MOV 0x11111111, R31 CMP R31, R18 BZ $+6 JARL vRegTestFailed, lp MOV 0x12121212, R31 CMP R31, R19 BZ $+6 JARL vRegTestFailed, lp MOV 0x13131313, R31 CMP R31, R20 BZ $+6 JARL vRegTestFailed, lp MOV 0x14141414, R31 CMP R31, R21 BZ $+6 JARL vRegTestFailed, lp MOV 0x15151515, R31 CMP R31, R22 BZ $+6 JARL vRegTestFailed, lp MOV 0x16161616, R31 CMP R31, R23 BZ $+6 JARL vRegTestFailed, lp MOV 0x17171717, R31 CMP R31, R24 BZ $+6 JARL vRegTestFailed, lp #if ( configDATA_MODE == 1 ) MOV 0x18181818, R31 CMP R31, R25 BZ $+6 JARL vRegTestFailed, lp #endif MOV 0x19191919, R31 CMP R31, R26 BZ $+6 JARL vRegTestFailed, lp MOV 0x20202020, R31 CMP R31, R27 BZ $+6 JARL vRegTestFailed, lp MOV 0x21212121, R31 CMP R31, R28 BZ $+6 JARL vRegTestFailed, lp MOV 0x22222222, R31 CMP R31, R29 BZ $+6 JARL vRegTestFailed, lp MOV 0x23232323, R31 CMP R31, R30 BZ $+6 JARL vRegTestFailed, lp MOV vReg1TestLoopStart, R31 JMP [R31] ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ RSEG CODE:CODE vRegTest2: MOV 0xa101010b, R1 MOV 0xa202020b, R2 ; Ignore R3 and R4 as these are the stack and global pointers respectively. MOV 0xa404040b, R5 MOV 0xa505050b, R6 MOV 0xa606060b, R7 MOV 0xa707070b, R8 MOV 0xa808080b, R9 MOV 0xa909090b, R10 MOV 0xaa0a0a0b, R11 MOV 0xab0b0b0b, R12 MOV 0xac0c0c0b, R13 MOV 0xad0d0d0b, R14 MOV 0xae0e0e0b, R15 MOV 0xaf0f0f0b, R16 MOV 0xa010101b, R17 MOV 0xa111111b, R18 MOV 0xa212121b, R19 MOV 0xa313131b, R20 MOV 0xa414141b, R21 MOV 0xa515151b, R22 MOV 0xa616161b, R23 MOV 0xa717171b, R24 #if ( configDATA_MODE == 1 ) ;R25 is used as a base register except when the tiny model is used. */ MOV 0xa818181b, R25 #endif MOV 0xa919191b, R26 MOV 0xa020202b, R27 MOV 0xa121212b, R28 MOV 0xa222222b, R29 MOV 0xa323232b, R30 vReg2TestLoopStart: MOV 0xa101010b, R31 CMP R31, R1 BZ $+6 JARL vRegTestFailed, lp MOV 0xa202020b, R31 CMP R31, R2 BZ $+6 JARL vRegTestFailed, lp MOV 0xa404040b, R31 CMP R31, R5 BZ $+6 JARL vRegTestFailed, lp MOV 0xa505050b, R31 CMP R31, R6 BZ $+6 JARL vRegTestFailed, lp MOV 0xa606060b, R31 CMP R31, R7 BZ $+6 JARL vRegTestFailed, lp MOV 0xa707070b, R31 CMP R31, R8 BZ $+6 JARL vRegTestFailed, lp MOV 0xa808080b, R31 CMP R31, R9 BZ $+6 JARL vRegTestFailed, lp MOV 0xa909090b, R31 CMP R31, R10 BZ $+6 JARL vRegTestFailed, lp MOV 0xaa0a0a0b, R31 CMP R31, R11 BZ $+6 JARL vRegTestFailed, lp MOV 0xab0b0b0b, R31 CMP R31, R12 BZ $+6 JARL vRegTestFailed, lp MOV 0xac0c0c0b, R31 CMP R31, R13 BZ $+6 JARL vRegTestFailed, lp MOV 0xad0d0d0b, R31 CMP R31, R14 BZ $+6 JARL vRegTestFailed, lp MOV 0xae0e0e0b, R31 CMP R31, R15 BZ $+6 JARL vRegTestFailed, lp MOV 0xaf0f0f0b, R31 CMP R31, R16 BZ $+6 JARL vRegTestFailed, lp MOV 0xa010101b, R31 CMP R31, R17 BZ $+6 JARL vRegTestFailed, lp MOV 0xa111111b, R31 CMP R31, R18 BZ $+6 JARL vRegTestFailed, lp MOV 0xa212121b, R31 CMP R31, R19 BZ $+6 JARL vRegTestFailed, lp MOV 0xa313131b, R31 CMP R31, R20 BZ $+6 JARL vRegTestFailed, lp MOV 0xa414141b, R31 CMP R31, R21 BZ $+6 JARL vRegTestFailed, lp MOV 0xa515151b, R31 CMP R31, R22 BZ $+6 JARL vRegTestFailed, lp MOV 0xa616161b, R31 CMP R31, R23 BZ $+6 JARL vRegTestFailed, lp MOV 0xa717171b, R31 CMP R31, R24 BZ $+6 JARL vRegTestFailed, lp #if ( configDATA_MODE == 1 ) MOV 0xa818181b, R31 CMP R31, R25 BZ $+6 JARL vRegTestFailed, lp #endif MOV 0xa919191b, R31 CMP R31, R26 BZ $+6 JARL vRegTestFailed, lp MOV 0xa020202b, R31 CMP R31, R27 BZ $+6 JARL vRegTestFailed, lp MOV 0xa121212b, R31 CMP R31, R28 BZ $+6 JARL vRegTestFailed, lp MOV 0xa222222b, R31 CMP R31, R29 BZ $+6 JARL vRegTestFailed, lp MOV 0xa323232b, R31 CMP R31, R30 BZ $+6 JARL vRegTestFailed, lp MOV vReg2TestLoopStart, R31 JMP [R31] END