text: /*
      FreeRTOS V7.0.1 - Copyright (C) 2011 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.
  */
  
  #ifndef PORTASM_H
  #define PORTASM_H
  
  portSAVE_CONTEXT macro
  
  		IMPORT pxCurrentTCB
  		IMPORT usCriticalNesting
  
  		/* Save the remaining registers. */
  		push	r4
  		push	r5
  		push	r6
  		push	r7
  		push	r8
  		push	r9
  		push	r10
  		push	r11
  		push	r12
  		push	r13
  		push	r14
  		push	r15
  		mov.w	&usCriticalNesting, r14
  		push	r14
  		mov.w	&pxCurrentTCB, r12
  		mov.w	r1, 0(r12)
  		endm
  /*-----------------------------------------------------------*/
  		
  portRESTORE_CONTEXT macro
  		mov.w	&pxCurrentTCB, r12
  		mov.w	@r12, r1
  		pop		r15
  		mov.w	r15, &usCriticalNesting
  		pop		r15
  		pop		r14
  		pop		r13
  		pop		r12
  		pop		r11
  		pop		r10
  		pop		r9
  		pop		r8
  		pop		r7
  		pop		r6
  		pop		r5
  		pop		r4
  
  		/* The last thing on the stack will be the status register.
          Ensure the power down bits are clear ready for the next
          time this power down register is popped from the stack. */
  		bic.w   #0xf0,0(SP)
  
  		reti
  		endm
  /*-----------------------------------------------------------*/
  
  #endif
  
  