-;\r
;/*\r
-; FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd.\r
-; \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
-; >>>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. FreeRTOS is distributed in the hope that it will be useful, but\r
-; WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
-; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
-; more details. You should have received a copy of the GNU General Public\r
-; License and the FreeRTOS license exception along with FreeRTOS; if not it\r
-; can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
-; by writing to Richard Barry, contact details for whom are available on the\r
-; FreeRTOS WEB site.\r
-;\r
-; 1 tab == 4 spaces!\r
-;\r
-; http://www.FreeRTOS.org - Documentation, latest information, license and\r
-; contact details.\r
-;\r
-; http://www.SafeRTOS.com - A version that is certified for use in safety\r
-; critical systems.\r
-;\r
-; http://www.OpenRTOS.com - Commercial support, development, porting,\r
-; licensing and training services.\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
; * The definition of the "register test" tasks, as described at the top of\r
; * main.c\r
mov_x sp, 0( r12 )\r
.endm\r
;-----------------------------------------------------------\r
- \r
+\r
portRESTORE_CONTEXT .macro\r
\r
mov_x &pxCurrentTCB, r12\r
pop_x r15\r
mov.w r15, &usCriticalNesting\r
popm_x #12, r15\r
+ nop\r
pop.w sr\r
+ nop\r
ret_x\r
.endm\r
;-----------------------------------------------------------\r
;*\r
;* If the preemptive scheduler is in use a context switch can also occur.\r
;*/\r
- \r
+\r
.text\r
.align 2\r
- \r
+\r
vPortPreemptiveTickISR: .asmfunc\r
- \r
+\r
; The sr is not saved in portSAVE_CONTEXT() because vPortYield() needs\r
;to save it manually before it gets modified (interrupts get disabled).\r
push.w sr\r
portSAVE_CONTEXT\r
- \r
+\r
call_x #xTaskIncrementTick\r
call_x #vTaskSwitchContext\r
- \r
+\r
portRESTORE_CONTEXT\r
.endasmfunc\r
;-----------------------------------------------------------\r
\r
.align 2\r
- \r
+\r
vPortCooperativeTickISR: .asmfunc\r
- \r
+\r
; The sr is not saved in portSAVE_CONTEXT() because vPortYield() needs\r
;to save it manually before it gets modified (interrupts get disabled).\r
push.w sr\r
portSAVE_CONTEXT\r
- \r
+\r
call_x #xTaskIncrementTick\r
- \r
+\r
portRESTORE_CONTEXT\r
- \r
+\r
.endasmfunc\r
;-----------------------------------------------------------\r
\r
\r
; The sr needs saving before it is modified.\r
push.w sr\r
- \r
+\r
; Now the SR is stacked we can disable interrupts.\r
- dint \r
+ dint\r
nop\r
- \r
+\r
; Save the context of the current task.\r
- portSAVE_CONTEXT \r
+ portSAVE_CONTEXT\r
\r
; Select the next task to run.\r
- call_x #vTaskSwitchContext \r
+ call_x #vTaskSwitchContext\r
\r
; Restore the context of the new task.\r
portRESTORE_CONTEXT\r
;\r
\r
.align 2\r
- \r
+\r
xPortStartScheduler: .asmfunc\r
\r
; Setup the hardware to generate the tick. Interrupts are disabled\r
portRESTORE_CONTEXT\r
.endasmfunc\r
;-----------------------------------------------------------\r
- \r
+\r
.end\r
- \r
+\r