Revert "Remove coroutines (#874)" (#1019)

* Revert "Remove coroutines (#874)"

This reverts commit 569c78fd8c.

* Update freertos Kernel submodule to latest head

* Remove temporary files

* Fix MingW demos and spell check

* Fix manifest version; fix headers

* Add ignore files and paths to core-checker.py

* Fix copyright in remaining files

* Fix PR check build failure

1. Remove defining `inline` in Makefile. This was causing build
   warnings.
2. Ensure that the linker removed unused functions from various
   compilation units.
3. Update the linker script so that all the functions are correctly
   placed in FLASH section.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>

---------

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
This commit is contained in:
Aniruddha Kanhere 2023-06-09 15:25:48 -07:00 committed by GitHub
parent 9ccae851e7
commit 1277ba1661
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
605 changed files with 11240 additions and 3628 deletions

View file

@ -19,8 +19,8 @@
* 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.
*
* https://www.FreeRTOS.org
* https://github.com/FreeRTOS
* https://www.FreeRTOS.org
* https://github.com/FreeRTOS
*
*/
@ -65,6 +65,9 @@
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 80 )
#endif
/* Co-routine definitions. */
#define configUSE_CO_ROUTINES 0
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
/* Set the following definitions to 1 to include the API function, or zero
to exclude the API function. */
@ -78,7 +81,7 @@ to exclude the API function. */
/* This demo makes use of one or more example stats formatting functions. These
format the raw data provided by the uxTaskGetSystemState() function in to human
readable ASCII form. See the notes in the implementation of vTaskList() within
readable ASCII form. See the notes in the implementation of vTaskList() within
FreeRTOS/Source/tasks.c for limitations. */
#define configUSE_STATS_FORMATTING_FUNCTIONS 1

View file

@ -56,10 +56,10 @@ void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
{
case 0: LED_PORT_OUT |= LED_1;
break;
case 1: LED_PORT_OUT |= LED_2;
break;
default: /* Nothing to do here, there are only two LEDs. */
break;
}
@ -70,7 +70,7 @@ void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
{
case 0: LED_PORT_OUT &= ~LED_1;
break;
case 1: LED_PORT_OUT &= ~LED_2;
break;
default: /* Nothing to do here, there are only two LEDs. */

View file

@ -37,12 +37,12 @@
IMPORT usRegTest1Counter
IMPORT usRegTest2Counter
IMPORT vPortYield
EXPORT vRegTest1Task
EXPORT vRegTest2Task
RSEG CODE
EVEN
vRegTest1Task:
@ -60,7 +60,7 @@ vRegTest1Task:
mov_x #0xdddd, r13
mov_x #0xeeee, r14
mov_x #0xffff, r15
prvRegTest1Loop:
/* Test each general purpose register to check that it still contains the
@ -90,22 +90,22 @@ prvRegTest1Loop:
jne vRegTest1Error
cmp_x #0xffff, r15
jne vRegTest1Error
/* This task is still running without jumping to vRegTest1Error, so increment
the loop counter so the check task knows the task is running error free. */
incx.w &usRegTest1Counter
/* Loop again, performing the same tests. */
jmp prvRegTest1Loop
nop
EVEN
vRegTest1Error:
jmp vRegTest1Error
nop
/*-----------------------------------------------------------*/
/* See the comments in vRegTest1Task. This task is the same, it just uses
@ -124,7 +124,7 @@ vRegTest2Task:
mov_x #0xddd1, r13
mov_x #0xeee1, r14
mov_x #0xfff1, r15
prvRegTest2Loop:
cmp_x #0x4441, r4
@ -151,20 +151,20 @@ prvRegTest2Loop:
jne vRegTest2Error
cmp_x #0xfff1, r15
jne vRegTest2Error
/* Also perform a manual yield, just to increase the scope of the test. */
calla #vPortYield
incx.w &usRegTest2Counter
jmp prvRegTest2Loop
nop
vRegTest2Error:
jmp vRegTest2Error
nop
/*-----------------------------------------------------------*/
END

View file

@ -76,7 +76,7 @@ unsigned long ulBaudRateCount;
/* Use SMCLK. */
UCA1CTL1 = UCSSEL0 | UCSSEL1;
/* Setup baud rate low byte. */
UCA1BR0 = ( unsigned char ) ( ulBaudRateCount & ( unsigned long ) 0xff );
@ -89,12 +89,12 @@ unsigned long ulBaudRateCount;
/* Enable interrupts. */
UCA1IE |= UCRXIE;
/* Take out of reset. */
UCA1CTL1 &= ~UCSWRST;
}
portEXIT_CRITICAL();
/* Note the comments at the top of this file about this not being a generic
UART driver. */
return NULL;
@ -149,7 +149,7 @@ portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
cChar = UCA1RXBUF;
xQueueSendFromISR( xRxedChars, &cChar, &xHigherPriorityTaskWoken );
}
/* If there is a Tx interrupt pending and the tx interrupts are enabled. */
if( ( UCA1IFG & UCTXIFG ) != 0 )
{
@ -169,14 +169,14 @@ portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
}
__bic_SR_register_on_exit( SCG1 + SCG0 + OSCOFF + CPUOFF );
/* If writing to a queue caused a task to unblock, and the unblocked task
has a priority equal to or above the task that this interrupt interrupted,
then lHigherPriorityTaskWoken will have been set to pdTRUE internally within
xQueuesendFromISR(), and portEND_SWITCHING_ISR() will ensure that this
interrupt returns directly to the higher priority unblocked task.
THIS MUST BE THE LAST THING DONE IN THE ISR. */
THIS MUST BE THE LAST THING DONE IN THE ISR. */
portYIELD_FROM_ISR( xHigherPriorityTaskWoken );
}