Use new QEMU test project to improve stream/message buffer tests (#168)

* Add Eclipse/GCC project that targets the LM3S8962 QEMU model.

* Get the Cortex-M QEMU project working.

* Continue working on making stream buffer demo more robust and QEMU project.

* Rename directory CORTEX_LM3S8986_QEMU to CORTEX_LM3S6965_QEMU.
Work on making the Stream Buffer tests more robust.
Check in before adding in the trace recorder.

* Rename CORTEX_LM3S6969_QEMU to CORTEX_LM3S6969_GCC_QEMU.

* Make the StreamBufferDemo.c common demo file (test file) more robust to other test tasks running at an equally high priority.

* Work in progress checkin only - comments in main.c are incorrect.

* Correct comments at the top of FreeRTOS/Demo/CORTEX_LM3S6965_GCC_QEMU/main.c
Make the message buffer tests more robust in the case the a message buffer becomes full when prvSenderTask() has a higher priority than the reader task.

* Disable trace recorder in the LM3S6965 QEMU demo.

* I'm dropping FreeRTOS-Kernel reference update, since this seems to break the CMBC CI.

Co-authored-by: Yuhui Zheng <10982575+yuhui-zheng@users.noreply.github.com>
This commit is contained in:
RichardBarry 2020-08-11 10:50:30 -07:00 committed by GitHub
parent 157a7fc39f
commit 0e0edd96e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 4139 additions and 28 deletions

View file

@ -129,7 +129,11 @@ void vStartMessageBufferTasks( configSTACK_DEPTH_TYPE xStackSize )
{
MessageBufferHandle_t xMessageBuffer;
#ifndef configMESSAGE_BUFFER_BLOCK_TASK_STACK_SIZE
xBlockingStackSize = ( xStackSize + ( xStackSize >> 1U ) );
#else
xBlockingStackSize = configMESSAGE_BUFFER_BLOCK_TASK_STACK_SIZE;
#endif
/* The echo servers sets up the message buffers before creating the echo
client tasks. One set of tasks has the server as the higher priority, and
@ -543,6 +547,7 @@ char cRxString[ 12 ];
char cTxString[ 12 ]; /* Large enough to hold a 32 number in ASCII. */
const TickType_t xTicksToWait = mbRX_TX_BLOCK_TIME, xShortDelay = pdMS_TO_TICKS( 50 );
StaticMessageBuffer_t xStaticMessageBuffer;
size_t xBytesSent;
/* The task's priority is used as an index into the loop counters used to
@ -583,7 +588,11 @@ char cRxString[ 12 ];
then overflows. */
memset( cTxString, 0x00, sizeof( cTxString ) );
sprintf( cTxString, "%d", ( int ) iDataToSend );
xMessageBufferSend( xMessageBuffer, ( void * ) cTxString, strlen( cTxString ), xTicksToWait );
do
{
xBytesSent = xMessageBufferSend( xMessageBuffer, ( void * ) cTxString, strlen( cTxString ), xTicksToWait );
} while ( xBytesSent == 0 ); /* Buffer may become full when receiver is running at the idle priority. */
iDataToSend++;