blob: bf61b39fbe8d77a067612fa18b0521e7c077735b [file] [log] [blame]
;/*
; FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd.
;
;
; ***************************************************************************
; * *
; * FreeRTOS tutorial books are available in pdf and paperback. *
; * Complete, revised, and edited pdf reference manuals are also *
; * available. *
; * *
; * Purchasing FreeRTOS documentation will not only help you, by *
; * ensuring you get running as quickly as possible and with an *
; * in-depth knowledge of how to use FreeRTOS, it will also help *
; * the FreeRTOS project to continue with its mission of providing *
; * professional grade, cross platform, de facto standard solutions *
; * for microcontrollers - completely free of charge! *
; * *
; * >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
; * *
; * Thank you for using FreeRTOS, and thank you for your support! *
; * *
; ***************************************************************************
;
;
; This file is part of the FreeRTOS distribution.
;
; FreeRTOS is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License (version 2) as published by the
; Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
; >>>NOTE<<< The modification to the GPL is included to allow you to
; distribute a combined work that includes FreeRTOS without being obliged to
; provide the source code for proprietary components outside of the FreeRTOS
; kernel. FreeRTOS is distributed in the hope that it will be useful, but
; WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
; more details. You should have received a copy of the GNU General Public
; License and the FreeRTOS license exception along with FreeRTOS; if not it
; can be viewed here: http://www.freertos.org/a00114.html and also obtained
; by writing to Richard Barry, contact details for whom are available on the
; FreeRTOS WEB site.
;
; 1 tab == 4 spaces!
;
; http://www.FreeRTOS.org - Documentation, latest information, license and
; contact details.
;
; http://www.SafeRTOS.com - A version that is certified for use in safety
; critical systems.
;
; http://www.OpenRTOS.com - Commercial support, development, porting,
; licensing and training services.
;*/
; 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