mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-08-19 09:38:32 -04:00
Update version number to 8.1.1 for patch release that re-enables mutexes to be given from an interrupt.
This commit is contained in:
parent
ff5d3512b3
commit
a60ce58731
1264 changed files with 12252 additions and 1288 deletions
|
@ -129,10 +129,41 @@ to write an ISR to be included in this file. */
|
|||
static SemaphoreHandle_t xSemaphore = NULL;
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
#define portPSW ( 0xc6UL )
|
||||
volatile uint32_t *pulAddress;
|
||||
volatile uint32_t ulValue, ulError = 0;
|
||||
|
||||
int main( void )
|
||||
{
|
||||
/* The mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting is described at the top
|
||||
of this file. */
|
||||
/* Store an address below 0x8000 */
|
||||
pulAddress = ( uint32_t * ) 0x7fff;
|
||||
|
||||
/* Cast and OR with a value that uses the two most significant
|
||||
bytes. */
|
||||
ulValue = ( ( uint32_t ) pulAddress ) | ( portPSW << 24UL );
|
||||
|
||||
/* This test passes. */
|
||||
if( ulValue != 0xc6007fff )
|
||||
{
|
||||
/* This line of code is not executed. */
|
||||
ulError = 1;
|
||||
}
|
||||
|
||||
/* Now do the same, but with an address above 0x7fff, but
|
||||
still slower than the max 16-bit value. */
|
||||
pulAddress = ( uint32_t * ) 0x8000;
|
||||
ulValue = ( ( uint32_t ) pulAddress ) | ( portPSW << 24UL );
|
||||
|
||||
/* This test *fails*. */
|
||||
if( ulValue != 0xc6008000 )
|
||||
{
|
||||
/* This line of code *is* executed. */
|
||||
ulError = 1;
|
||||
}
|
||||
|
||||
|
||||
/* The mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting is
|
||||
described at the top of this file. */
|
||||
#if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1
|
||||
{
|
||||
main_blinky();
|
||||
|
|
|
@ -226,8 +226,8 @@ void main_full( void )
|
|||
/* First create the 'standard demo' tasks. These are used to demonstrate
|
||||
API functions being used and also to test the kernel port. More information
|
||||
is provided on the FreeRTOS.org WEB site. */
|
||||
vStartDynamicPriorityTasks();
|
||||
vStartPolledQueueTasks( tskIDLE_PRIORITY );
|
||||
// vStartDynamicPriorityTasks();
|
||||
// vStartPolledQueueTasks( tskIDLE_PRIORITY );
|
||||
|
||||
/* Additional tasks can be added by un-commenting the line below on devices
|
||||
with sufficient RAM for a larger heap (see configTOTAL_HEAP_SIZE in
|
||||
|
@ -239,37 +239,40 @@ void main_full( void )
|
|||
"Reg1", /* Text name for the task - to assist debugging only, not used by the kernel. */
|
||||
configMINIMAL_STACK_SIZE, /* The size of the stack allocated to the task (in words, not bytes). */
|
||||
mainREG_TEST_1_PARAMETER, /* The parameter passed into the task. */
|
||||
tskIDLE_PRIORITY, /* The priority at which the task will execute. */
|
||||
configMAX_PRIORITIES-1, /*tskIDLE_PRIORITY,*/ /* The priority at which the task will execute. */
|
||||
NULL ); /* Used to pass the handle of the created task out to the function caller - not used in this case. */
|
||||
|
||||
xTaskCreate( prvRegTest2Entry, "Reg2", configMINIMAL_STACK_SIZE, mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL );
|
||||
// xTaskCreate( prvRegTest2Entry, "Reg2", configMINIMAL_STACK_SIZE, mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL );
|
||||
|
||||
/* Create the software timer that performs the 'check' functionality,
|
||||
as described at the top of this file. */
|
||||
xCheckTimer = xTimerCreate( "CheckTimer", /* A text name, purely to help debugging. */
|
||||
( mainCHECK_TIMER_PERIOD_MS ), /* The timer period, in this case 3000ms (3s). */
|
||||
pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */
|
||||
( void * ) 0, /* The ID is not used, so can be set to anything. */
|
||||
prvCheckTimerCallback /* The callback function that inspects the status of all the other tasks. */
|
||||
);
|
||||
// xCheckTimer = xTimerCreate( "CheckTimer", /* A text name, purely to help debugging. */
|
||||
// ( mainCHECK_TIMER_PERIOD_MS ), /* The timer period, in this case 3000ms (3s). */
|
||||
// pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */
|
||||
// ( void * ) 0, /* The ID is not used, so can be set to anything. */
|
||||
// prvCheckTimerCallback /* The callback function that inspects the status of all the other tasks. */
|
||||
// );
|
||||
|
||||
/* Create the software timer that just increments a variable for demo
|
||||
purposes. */
|
||||
xDemoTimer = xTimerCreate( "DemoTimer", /* A text name, purely to help debugging. */
|
||||
( mainDEMO_TIMER_PERIOD_MS ), /* The timer period, in this case it is always calculated relative to the check timer period (see the definition of mainDEMO_TIMER_PERIOD_MS). */
|
||||
pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */
|
||||
( void * ) 0, /* The ID is not used, so can be set to anything. */
|
||||
prvDemoTimerCallback /* The callback function that inspects the status of all the other tasks. */
|
||||
);
|
||||
// xDemoTimer = xTimerCreate( "DemoTimer", /* A text name, purely to help debugging. */
|
||||
// ( mainDEMO_TIMER_PERIOD_MS ), /* The timer period, in this case it is always calculated relative to the check timer period (see the definition of mainDEMO_TIMER_PERIOD_MS). */
|
||||
// pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */
|
||||
// ( void * ) 0, /* The ID is not used, so can be set to anything. */
|
||||
// prvDemoTimerCallback /* The callback function that inspects the status of all the other tasks. */
|
||||
// );
|
||||
|
||||
/* Start both the check timer and the demo timer. The timers won't actually
|
||||
start until the scheduler is started. */
|
||||
xTimerStart( xCheckTimer, mainDONT_BLOCK );
|
||||
xTimerStart( xDemoTimer, mainDONT_BLOCK );
|
||||
// xTimerStart( xCheckTimer, mainDONT_BLOCK );
|
||||
// xTimerStart( xDemoTimer, mainDONT_BLOCK );
|
||||
|
||||
/* Finally start the scheduler running. */
|
||||
vTaskStartScheduler();
|
||||
|
||||
extern void my_function( void );
|
||||
my_function();
|
||||
|
||||
/* If all is well execution will never reach here as the scheduler will be
|
||||
running. If this null loop is reached then it is likely there was
|
||||
insufficient FreeRTOS heap available for the idle task and/or timer task to
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue