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

@ -70,6 +70,9 @@ peripheral clock. */
#define configUSE_RECURSIVE_MUTEXES 1
#define configUSE_MUTEXES 1
/* Co-routine definitions. */
#define configUSE_CO_ROUTINES 0
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
/* Software timer configuration. */
#define configUSE_TIMERS 1

View file

@ -102,13 +102,13 @@ unsigned long ulCompareMatchBits;
interrupt and the task. */
vSemaphoreCreateBinary( xHighFrequencyTimerSemaphore );
configASSERT( xHighFrequencyTimerSemaphore );
/* Create the task that pends on the semaphore that is given by the
high frequency interrupt. */
xTaskCreate( prvHighFrequencyTimerTask, "HFTmr", configMINIMAL_STACK_SIZE, NULL, configMAX_PRIORITIES - 1, NULL );
/* Setup the interrupt itself. The STM module clock divider is setup when
the tick interrupt is configured - which is when the scheduler is started -
/* Setup the interrupt itself. The STM module clock divider is setup when
the tick interrupt is configured - which is when the scheduler is started -
so there is no need to do it here.
The tick interrupt uses compare match 0, so this test uses compare match
@ -116,7 +116,7 @@ unsigned long ulCompareMatchBits;
register. */
ulCompareMatchBits = ( 0x1fUL - __CLZ( ulCompareMatchValue ) );
ulCompareMatchBits <<= 16UL;
/* Write the values to the relevant SMT registers, without changing other
bits. */
taskENTER_CRITICAL();
@ -129,7 +129,7 @@ unsigned long ulCompareMatchBits;
{
/* Set-up the interrupt. */
STM_SRC1.reg = ( configHIGH_FREQUENCY_TIMER_PRIORITY | 0x00005000UL );
/* Enable the Interrupt. */
STM_ISRR.reg &= ~( 0x03UL << 2UL );
STM_ISRR.reg |= ( 0x1UL << 2UL );
@ -170,7 +170,7 @@ static void prvHighFrequencyTimerTask( void *pvParameters )
{
/* Wait for the next trigger from the high frequency timer interrupt. */
xSemaphoreTake( xHighFrequencyTimerSemaphore, portMAX_DELAY );
/* Just count how many times the task has been unblocked before
returning to wait for the semaphore again. */
ulHighFrequencyTaskIterations++;
@ -193,18 +193,18 @@ unsigned long ulHigherPriorityTaskWoken = pdFALSE;
STM_CMP1.reg += ulCompareMatchValue;
ulExecutionCounter++;
if( ulExecutionCounter >= ulInterruptsPer10ms )
{
ulExecutionCounter = xSemaphoreGiveFromISR( xHighFrequencyTimerSemaphore, &ulHigherPriorityTaskWoken );
/* If the semaphore was given ulExeuctionCounter will now be pdTRUE. */
configASSERT( ulExecutionCounter == pdTRUE );
/* Start counting again. */
ulExecutionCounter = 0UL;
}
/* Context switch on exit if necessary. */
portYIELD_FROM_ISR( ulHigherPriorityTaskWoken );
}

View file

@ -87,6 +87,7 @@
/* Scheduler includes. */
#include "FreeRTOS.h"
#include "task.h"
#include "croutine.h"
/* Demo application includes. */
#include "partest.h"