mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-08-28 05:58:36 -04:00
Add in the CORTEX_A53_64-bit_UltraScale_MPSoC demo application (a demo has been included in the Xilinx SDK download for some time already).
Update a few demo application files to work with 64-bit data types.
This commit is contained in:
parent
51560d9a96
commit
5690221c5c
360 changed files with 206264 additions and 53 deletions
|
@ -187,8 +187,8 @@ static void prvChangeRelativePriorities( void );
|
|||
* Local pseudo random number seed and return functions. Used to avoid calls
|
||||
* to the standard library.
|
||||
*/
|
||||
static uint32_t prvRand( void );
|
||||
static void prvSRand( uint32_t ulSeed );
|
||||
static size_t prvRand( void );
|
||||
static void prvSRand( size_t uxSeed );
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
@ -223,7 +223,7 @@ expected. */
|
|||
static volatile uint32_t ulISRTxValue = queuesetINITIAL_ISR_TX_VALUE;
|
||||
|
||||
/* Used by the pseudo random number generator. */
|
||||
static uint32_t ulNextRand = 0;
|
||||
static size_t uxNextRand = 0;
|
||||
|
||||
/* The task handles are stored so their priorities can be changed. */
|
||||
TaskHandle_t xQueueSetSendingTask, xQueueSetReceivingTask;
|
||||
|
@ -295,24 +295,25 @@ BaseType_t xReturn = pdPASS, x;
|
|||
|
||||
static void prvQueueSetSendingTask( void *pvParameters )
|
||||
{
|
||||
uint32_t ulTaskTxValue = 0, ulQueueToWriteTo;
|
||||
uint32_t ulTaskTxValue = 0;
|
||||
size_t uxQueueToWriteTo;
|
||||
QueueHandle_t xQueueInUse;
|
||||
|
||||
/* Remove compiler warning about the unused parameter. */
|
||||
( void ) pvParameters;
|
||||
|
||||
/* Seed mini pseudo random number generator. */
|
||||
prvSRand( ( uint32_t ) &ulTaskTxValue );
|
||||
prvSRand( ( size_t ) &ulTaskTxValue );
|
||||
|
||||
for( ;; )
|
||||
{
|
||||
/* Generate the index for the queue to which a value is to be sent. */
|
||||
ulQueueToWriteTo = prvRand() % queuesetNUM_QUEUES_IN_SET;
|
||||
xQueueInUse = xQueues[ ulQueueToWriteTo ];
|
||||
uxQueueToWriteTo = prvRand() % queuesetNUM_QUEUES_IN_SET;
|
||||
xQueueInUse = xQueues[ uxQueueToWriteTo ];
|
||||
|
||||
/* Note which index is being written to to ensure all the queues are
|
||||
used. */
|
||||
( ulQueueUsedCounter[ ulQueueToWriteTo ] )++;
|
||||
( ulQueueUsedCounter[ uxQueueToWriteTo ] )++;
|
||||
|
||||
/* Send to the queue to unblock the task that is waiting for data to
|
||||
arrive on a queue within the queue set to which this queue belongs. */
|
||||
|
@ -719,15 +720,15 @@ uint32_t ulValueToSend = 0;
|
|||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static uint32_t prvRand( void )
|
||||
static size_t prvRand( void )
|
||||
{
|
||||
ulNextRand = ( ulNextRand * 1103515245UL ) + 12345UL;
|
||||
return ( ulNextRand / 65536UL ) % 32768UL;
|
||||
uxNextRand = ( uxNextRand * ( size_t ) 1103515245 ) + ( size_t ) 12345;
|
||||
return ( uxNextRand / ( size_t ) 65536 ) % ( size_t ) 32768;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvSRand( uint32_t ulSeed )
|
||||
static void prvSRand( size_t uxSeed )
|
||||
{
|
||||
ulNextRand = ulSeed;
|
||||
uxNextRand = uxSeed;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue