mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2026-01-19 00:00:39 -05:00
Prepare for V9.0.0 release.
+ Set flash wait states on MSP432 demos. + Remove use of obsolete IO library in PIC32 demos. + Remove obsolete item left on stack of first task to run in the Cortex-M0 ports. + Correct IA32 GCC vPortExitCritical() implementation when configMAX_API_CALL_INTERRUPT_PRIORITY == portMAX_PRIORITY.
This commit is contained in:
parent
e10647f9c0
commit
0063b29cdf
34 changed files with 2764 additions and 2463 deletions
|
|
@ -89,6 +89,9 @@
|
|||
* message to the LCD send the message on a queue to the LCD task instead of
|
||||
* accessing the LCD themselves. The LCD task just blocks on the queue waiting
|
||||
* for messages - waking and displaying the messages as they arrive.
|
||||
* **NOTE** The LCD driver has a dependency on the PLIB library, which is no
|
||||
* longer provided by Microchip, so LCD functionality has been removed from this
|
||||
* demo - however the source files remain in the distribution.
|
||||
*
|
||||
* "Check" timer - The check software timer period is initially set to three
|
||||
* seconds. The callback function associated with the check software timer
|
||||
|
|
@ -115,6 +118,10 @@
|
|||
*
|
||||
* + The UART is allocated a priority of 2. This means it can interrupt the
|
||||
* RTOS tick, and can also safely use queues.
|
||||
* **NOTE** The UART driver has a dependency on the PLIB library, which is no
|
||||
* longer provided by Microchip, so UART functionality has been removed from
|
||||
* this demo - however the source files remain in the distribution.
|
||||
*
|
||||
* + Two timers are configured to generate interrupts just to test the nesting
|
||||
* and queue access mechanisms. These timers are allocated priorities 2 and 3
|
||||
* respectively. Even though they both access the same two queues, the
|
||||
|
|
@ -147,7 +154,6 @@
|
|||
#include "GenQTest.h"
|
||||
#include "QPeek.h"
|
||||
#include "lcd.h"
|
||||
#include "comtest2.h"
|
||||
#include "timertest.h"
|
||||
#include "IntQueue.h"
|
||||
|
||||
|
|
@ -170,13 +176,6 @@ in ticks using the portTICK_PERIOD_MS constant. */
|
|||
#define mainINTEGER_TASK_PRIORITY ( tskIDLE_PRIORITY )
|
||||
#define mainGEN_QUEUE_TASK_PRIORITY ( tskIDLE_PRIORITY )
|
||||
|
||||
/* The LED used by the comtest tasks. mainCOM_TEST_LED + 1 is also used.
|
||||
See the comtest.c file for more information. */
|
||||
#define mainCOM_TEST_LED ( 4 )
|
||||
|
||||
/* Baud rate used by the comtest tasks. */
|
||||
#define mainCOM_TEST_BAUD_RATE ( 115200 )
|
||||
|
||||
/* Misc. */
|
||||
#define mainDONT_BLOCK ( 0 )
|
||||
|
||||
|
|
@ -251,10 +250,6 @@ int main_full( void )
|
|||
{
|
||||
TimerHandle_t xTimer = NULL;
|
||||
|
||||
/* Create the LCD task - this returns the queue to use when writing
|
||||
messages to the LCD. */
|
||||
xLCDQueue = xStartLCDTask();
|
||||
|
||||
/* Create all the other standard demo tasks. */
|
||||
vStartLEDFlashTimers( mainNUM_FLASH_TIMER_LEDS );
|
||||
vCreateBlockTimeTasks();
|
||||
|
|
@ -267,13 +262,6 @@ TimerHandle_t xTimer = NULL;
|
|||
xTaskCreate( prvRegTestTask1, "Reg1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
|
||||
xTaskCreate( prvRegTestTask2, "Reg2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
|
||||
|
||||
/* The PIC32MX795 uses an 8 deep fifo where TX interrupts are asserted
|
||||
whilst the TX buffer is empty. This causes an issue with the test driver so
|
||||
it is not used in this demo */
|
||||
#if !defined(__32MX795F512L__)
|
||||
vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainCOM_TEST_BAUD_RATE, mainCOM_TEST_LED );
|
||||
#endif
|
||||
|
||||
/* Create the software timer that performs the 'check' functionality, as
|
||||
described at the top of this file. */
|
||||
xTimer = xTimerCreate( "CheckTimer",/* A text name, purely to help debugging. */
|
||||
|
|
@ -391,19 +379,12 @@ static xLCDMessage xMessage = { ( 200 / portTICK_PERIOD_MS ), cStringBuffer };
|
|||
{
|
||||
xMessage.pcMessage = "Error: Int queue";
|
||||
}
|
||||
#if !defined(__32MX795F512L__)
|
||||
else if( xAreComTestTasksStillRunning() != pdTRUE )
|
||||
{
|
||||
xMessage.pcMessage = "Error: COM test";
|
||||
}
|
||||
#endif
|
||||
|
||||
if( xMessage.pcMessage != cStringBuffer )
|
||||
{
|
||||
/* An error string has been logged. If the timer period has not yet
|
||||
been changed it should be changed now. Increasing the frequency of the
|
||||
LED gives visual feedback of the error status (although it is written
|
||||
to the LCD too!). */
|
||||
LED gives visual feedback of the error status. */
|
||||
if( lChangedTimerPeriodAlready == pdFALSE )
|
||||
{
|
||||
lChangedTimerPeriodAlready = pdTRUE;
|
||||
|
|
@ -422,9 +403,6 @@ static xLCDMessage xMessage = { ( 200 / portTICK_PERIOD_MS ), cStringBuffer };
|
|||
sprintf( cStringBuffer, "Pass %u", ( unsigned int ) ulHighFrequencyTimerInterrupts );
|
||||
}
|
||||
|
||||
/* Send the status message to the LCD task for display on the LCD. This is
|
||||
a timer callback function, so the queue send function *must not* block. */
|
||||
xQueueSend( xLCDQueue, &xMessage, mainDONT_BLOCK );
|
||||
vParTestToggleLED( mainCHECK_LED );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue