;/*
;    FreeRTOS V8.0.0:rc1 - 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.
;*/

	.import _ulRegTest1CycleCount
	.import _ulRegTest2CycleCount
	.import _vPortYield

	.export _vRegTest1Task
	.export _vRegTest2Task

    .section    P, code, align=4
	
	
	
_vRegTest1Task:

	; Fill the registers with known values.
	mov		#2, r1
	mov		#3, r2
	mov		#4, r3
	mov		#5, r4
	mov		#6, r5
	mov		#7, r6
	mov		#8, r7
	mov		#9, r8
	mov		#10, r9
	mov		#11, r10
	mov		#12, r11
	mov		#13, r12
	mov		#14, r13
	mov		#15, r14

	mov		#16, r0
	lds		r0, macl
	mov		#17, r0
	lds		r0, mach
	mov		#18, r0
	ldc		r0, gbr

	; Also fill the flop registers with known values.
	lds		r1, fpul
	fsts	fpul, fr1
	lds		r2, fpul
	fsts	fpul, fr2
	lds		r3, fpul
	fsts	fpul, fr3
	lds		r4, fpul
	fsts	fpul, fr4
	lds		r5, fpul
	fsts	fpul, fr5
	lds		r6, fpul
	fsts	fpul, fr6
	lds		r7, fpul
	fsts	fpul, fr7
	lds		r8, fpul
	fsts	fpul, fr8
	lds		r9, fpul
	fsts	fpul, fr9
	lds		r10, fpul
	fsts	fpul, fr10
	lds		r11, fpul
	fsts	fpul, fr11
	lds		r12, fpul
	fsts	fpul, fr12
	lds		r13, fpul
	fsts	fpul, fr13
	lds		r14, fpul
	fsts	fpul, fr14
	
_vRegTest1Loop:

	; Reset r1 which was used in the tests.
	mov		#2, r1

	; Test that the registers still contain the expected values.  If not, jump to
	; vRegTestError, which will stop this function looping and so cause it to stop
	; incrementing its loop counter.  Both the standard and flop registers are 
	; checked.	
	mov		#2, r0
	cmp/eq	r0, r1
	bf		_vRegTest1Error
	flds	fr1, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error
	
	mov		#3, r0
	cmp/eq	r0, r2
	bf		_vRegTest1Error
	flds	fr2, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	mov		#4, r0
	cmp/eq	r0, r3
	bf		_vRegTest1Error
	flds	fr3, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	mov		#5, r0
	cmp/eq	r0, r4
	bf		_vRegTest1Error
	flds	fr4, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	mov		#6, r0
	cmp/eq	r0, r5
	bf		_vRegTest1Error
	flds	fr5, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	mov		#7, r0
	cmp/eq	r0, r6
	bf		_vRegTest1Error
	flds	fr6, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	mov		#8, r0
	cmp/eq	r0, r7
	bf		_vRegTest1Error
	flds	fr7, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	mov		#9, r0
	cmp/eq	r0, r8
	bf		_vRegTest1Error
	flds	fr8, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	mov		#10, r0
	cmp/eq	r0, r9
	bf		_vRegTest1Error
	flds	fr9, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	mov		#11, r0
	cmp/eq	r0, r10
	bf		_vRegTest1Error
	flds	fr10, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	mov		#12, r0
	cmp/eq	r0, r11
	bf		_vRegTest1Error
	flds	fr11, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	mov		#13, r0
	cmp/eq	r0, r12
	bf		_vRegTest1Error
	flds	fr12, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	mov		#14, r0
	cmp/eq	r0, r13
	bf		_vRegTest1Error
	flds	fr13, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	mov		#15, r0
	cmp/eq	r0, r14
	bf		_vRegTest1Error
	flds	fr14, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	sts		macl, r0
	mov		#16, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	sts		mach, r0
	mov		#17, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	stc		gbr, r0
	mov		#18, r1
	cmp/eq	r0, r1
	bf		_vRegTest1Error

	; Increment the loop counter to indicate that this task is still running and
	; still healthy.
	mov.l	#_ulRegTest1CycleCount, r0
	mov.l	@r0, r1
	add		#1, r1
	mov.l	r1, @r0

	; Jump back to test all the registers again.
	bra		_vRegTest1Loop
	nop

;-----------------------------------------------------------

_vRegTest1Error:
	bra		_vRegTest1Error	
	nop

;-----------------------------------------------------------

_vRegTest2Task:

	; Fill the standard registers with known values.
	mov		#12, r1
	mov		#13, r2
	mov		#14, r3
	mov		#15, r4
	mov		#16, r5
	mov		#17, r6
	mov		#18, r7
	mov		#19, r8
	mov		#110, r9
	mov		#111, r10
	mov		#112, r11
	mov		#113, r12
	mov		#114, r13

	mov		#115, r0
	lds		r0, macl
	mov		#116, r0
	lds		r0, mach
	mov		#117, r0
	ldc		r0, gbr
	
	; Also fill the flop registers with known values.
	lds		r1, fpul
	fsts	fpul, fr1
	lds		r2, fpul
	fsts	fpul, fr2
	lds		r3, fpul
	fsts	fpul, fr3
	lds		r4, fpul
	fsts	fpul, fr4
	lds		r5, fpul
	fsts	fpul, fr5
	lds		r6, fpul
	fsts	fpul, fr6
	lds		r7, fpul
	fsts	fpul, fr7
	lds		r8, fpul
	fsts	fpul, fr8
	lds		r9, fpul
	fsts	fpul, fr9
	lds		r10, fpul
	fsts	fpul, fr10
	lds		r11, fpul
	fsts	fpul, fr11
	lds		r12, fpul
	fsts	fpul, fr12
	lds		r13, fpul
	fsts	fpul, fr13
	lds		r14, fpul
	fsts	fpul, fr14

_vRegTest2Loop:

	; Reset r1 which was used in the tests.
	mov		#12, r1

	; Test that the registers still contain the expected values.  If not, jump to
	; vRegTestError, which will stop this function looping and so cause it to stop
	; incrementing its loop counter.  Both the standard and flop registers are 
	; checked.	
	mov		#12, r0
	cmp/eq	r0, r1
	bf		_vRegTest2Error
	flds	fr1, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error
	
	mov		#13, r0
	cmp/eq	r0, r2
	bf		_vRegTest2Error
	flds	fr2, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	mov		#14, r0
	cmp/eq	r0, r3
	bf		_vRegTest2Error
	flds	fr3, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	mov		#15, r0
	cmp/eq	r0, r4
	bf		_vRegTest2Error
	flds	fr4, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	mov		#16, r0
	cmp/eq	r0, r5
	bf		_vRegTest2Error
	flds	fr5, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	mov		#17, r0
	cmp/eq	r0, r6
	bf		_vRegTest2Error
	flds	fr6, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	mov		#18, r0
	cmp/eq	r0, r7
	bf		_vRegTest2Error
	flds	fr7, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	mov		#19, r0
	cmp/eq	r0, r8
	bf		_vRegTest2Error
	flds	fr8, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	mov		#110, r0
	cmp/eq	r0, r9
	bf		_vRegTest2Error
	flds	fr9, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	mov		#111, r0
	cmp/eq	r0, r10
	bf		_vRegTest2Error
	flds	fr10, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	mov		#112, r0
	cmp/eq	r0, r11
	bf		_vRegTest2Error
	flds	fr11, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	mov		#113, r0
	cmp/eq	r0, r12
	bf		_vRegTest2Error
	flds	fr12, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	mov		#114, r0
	cmp/eq	r0, r13
	bf		_vRegTest2Error
	flds	fr13, fpul
	sts		fpul, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	sts		macl, r0
	mov		#115, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	sts		mach, r0
	mov		#116, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	stc		gbr, r0
	mov		#117, r1
	cmp/eq	r0, r1
	bf		_vRegTest2Error

	; Increment the loop counter to indicate that this task is still running and
	; still healthy.
	mov.l	#_ulRegTest2CycleCount, r0
	mov.l	@r0, r1
	add		#1, r1
	mov.l	r1, @r0

	; Jump back to test all the registers again.
	bra		_vRegTest2Loop
	nop

;-----------------------------------------------------------

_vRegTest2Error:

	bra		_vRegTest2Error
	nop	


	.end
		
