summaryrefslogtreecommitdiff
path: root/FreeRTOS/Demo/RL78_E2Studio_GCC/src
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS/Demo/RL78_E2Studio_GCC/src')
-rw-r--r--FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/PollQ.c20
-rw-r--r--FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/blocktim.c14
-rw-r--r--FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/dynamic.c8
-rw-r--r--FreeRTOS/Demo/RL78_E2Studio_GCC/src/main.c8
-rw-r--r--FreeRTOS/Demo/RL78_E2Studio_GCC/src/main_blinky.c89
-rw-r--r--FreeRTOS/Demo/RL78_E2Studio_GCC/src/main_full.c20
6 files changed, 76 insertions, 83 deletions
diff --git a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/PollQ.c b/FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/PollQ.c
index 14c8b9f3e..ef05d977c 100644
--- a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/PollQ.c
+++ b/FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/PollQ.c
@@ -99,7 +99,7 @@
Changes from V2.0.0
+ Delay periods are now specified using variables and constants of
- portTickType rather than unsigned long.
+ TickType_t rather than unsigned long.
*/
#include <stdlib.h>
@@ -114,9 +114,9 @@ Changes from V2.0.0
#define pollqSTACK_SIZE configMINIMAL_STACK_SIZE
#define pollqQUEUE_SIZE ( 10 )
-#define pollqPRODUCER_DELAY ( ( portTickType ) 200 / portTICK_RATE_MS )
-#define pollqCONSUMER_DELAY ( pollqPRODUCER_DELAY - ( portTickType ) ( 20 / portTICK_RATE_MS ) )
-#define pollqNO_DELAY ( ( portTickType ) 0 )
+#define pollqPRODUCER_DELAY ( ( TickType_t ) 200 / portTICK_PERIOD_MS )
+#define pollqCONSUMER_DELAY ( pollqPRODUCER_DELAY - ( TickType_t ) ( 20 / portTICK_PERIOD_MS ) )
+#define pollqNO_DELAY ( ( TickType_t ) 0 )
#define pollqVALUES_TO_PRODUCE ( ( signed portBASE_TYPE ) 3 )
#define pollqINITIAL_VALUE ( ( signed portBASE_TYPE ) 0 )
@@ -134,7 +134,7 @@ static volatile signed portBASE_TYPE xPollingConsumerCount = pollqINITIAL_VALUE,
void vStartPolledQueueTasks( unsigned portBASE_TYPE uxPriority )
{
-static xQueueHandle xPolledQueue;
+static QueueHandle_t xPolledQueue;
/* Create the queue used by the producer and consumer. */
xPolledQueue = xQueueCreate( pollqQUEUE_SIZE, ( unsigned portBASE_TYPE ) sizeof( unsigned short ) );
@@ -148,8 +148,8 @@ static xQueueHandle xPolledQueue;
vQueueAddToRegistry( xPolledQueue, ( signed char * ) "Poll_Test_Queue" );
/* Spawn the producer and consumer. */
- xTaskCreate( vPolledQueueConsumer, ( signed char * ) "QConsNB", pollqSTACK_SIZE, ( void * ) &xPolledQueue, uxPriority, ( xTaskHandle * ) NULL );
- xTaskCreate( vPolledQueueProducer, ( signed char * ) "QProdNB", pollqSTACK_SIZE, ( void * ) &xPolledQueue, uxPriority, ( xTaskHandle * ) NULL );
+ xTaskCreate( vPolledQueueConsumer, ( signed char * ) "QConsNB", pollqSTACK_SIZE, ( void * ) &xPolledQueue, uxPriority, ( TaskHandle_t * ) NULL );
+ xTaskCreate( vPolledQueueProducer, ( signed char * ) "QProdNB", pollqSTACK_SIZE, ( void * ) &xPolledQueue, uxPriority, ( TaskHandle_t * ) NULL );
}
/*-----------------------------------------------------------*/
@@ -163,7 +163,7 @@ signed portBASE_TYPE xError = pdFALSE, xLoop;
for( xLoop = 0; xLoop < pollqVALUES_TO_PRODUCE; xLoop++ )
{
/* Send an incrementing number on the queue without blocking. */
- if( xQueueSend( *( ( xQueueHandle * ) pvParameters ), ( void * ) &usValue, pollqNO_DELAY ) != pdPASS )
+ if( xQueueSend( *( ( QueueHandle_t * ) pvParameters ), ( void * ) &usValue, pollqNO_DELAY ) != pdPASS )
{
/* We should never find the queue full so if we get here there
has been an error. */
@@ -200,9 +200,9 @@ signed portBASE_TYPE xError = pdFALSE;
for( ;; )
{
/* Loop until the queue is empty. */
- while( uxQueueMessagesWaiting( *( ( xQueueHandle * ) pvParameters ) ) )
+ while( uxQueueMessagesWaiting( *( ( QueueHandle_t * ) pvParameters ) ) )
{
- if( xQueueReceive( *( ( xQueueHandle * ) pvParameters ), &usData, pollqNO_DELAY ) == pdPASS )
+ if( xQueueReceive( *( ( QueueHandle_t * ) pvParameters ), &usData, pollqNO_DELAY ) == pdPASS )
{
if( usData != usExpectedValue )
{
diff --git a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/blocktim.c b/FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/blocktim.c
index 528f898d0..ed204716d 100644
--- a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/blocktim.c
+++ b/FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/blocktim.c
@@ -97,19 +97,19 @@
/* Task behaviour. */
#define bktQUEUE_LENGTH ( 5 )
-#define bktSHORT_WAIT ( ( ( portTickType ) 20 ) / portTICK_RATE_MS )
+#define bktSHORT_WAIT ( ( ( TickType_t ) 20 ) / portTICK_PERIOD_MS )
#define bktPRIMARY_BLOCK_TIME ( 10 )
#define bktALLOWABLE_MARGIN ( 15 )
#define bktTIME_TO_BLOCK ( 175 )
-#define bktDONT_BLOCK ( ( portTickType ) 0 )
+#define bktDONT_BLOCK ( ( TickType_t ) 0 )
#define bktRUN_INDICATOR ( ( unsigned portBASE_TYPE ) 0x55 )
/* The queue on which the tasks block. */
-static xQueueHandle xTestQueue;
+static QueueHandle_t xTestQueue;
/* Handle to the secondary task is required by the primary task for calls
to vTaskSuspend/Resume(). */
-static xTaskHandle xSecondary;
+static TaskHandle_t xSecondary;
/* Used to ensure that tasks are still executing without error. */
static volatile portBASE_TYPE xPrimaryCycles = 0, xSecondaryCycles = 0;
@@ -147,8 +147,8 @@ void vCreateBlockTimeTasks( void )
static void vPrimaryBlockTimeTestTask( void *pvParameters )
{
portBASE_TYPE xItem, xData;
-portTickType xTimeWhenBlocking;
-portTickType xTimeToBlock, xBlockedTime;
+TickType_t xTimeWhenBlocking;
+TickType_t xTimeToBlock, xBlockedTime;
( void ) pvParameters;
@@ -397,7 +397,7 @@ portTickType xTimeToBlock, xBlockedTime;
static void vSecondaryBlockTimeTestTask( void *pvParameters )
{
-portTickType xTimeWhenBlocking, xBlockedTime;
+TickType_t xTimeWhenBlocking, xBlockedTime;
portBASE_TYPE xData;
( void ) pvParameters;
diff --git a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/dynamic.c b/FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/dynamic.c
index 5b34d8a6a..69da6f0dc 100644
--- a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/dynamic.c
+++ b/FreeRTOS/Demo/RL78_E2Studio_GCC/src/Common-Demo-Tasks/dynamic.c
@@ -153,17 +153,17 @@ static portTASK_FUNCTION_PROTO( vQueueSendWhenSuspendedTask, pvParameters );
/* Demo task specific constants. */
#define priSTACK_SIZE ( configMINIMAL_STACK_SIZE )
-#define priSLEEP_TIME ( ( portTickType ) 128 / portTICK_RATE_MS )
+#define priSLEEP_TIME ( ( TickType_t ) 128 / portTICK_PERIOD_MS )
#define priLOOPS ( 5 )
#define priMAX_COUNT ( ( unsigned long ) 0xff )
-#define priNO_BLOCK ( ( portTickType ) 0 )
+#define priNO_BLOCK ( ( TickType_t ) 0 )
#define priSUSPENDED_QUEUE_LENGTH ( 1 )
/*-----------------------------------------------------------*/
/* Handles to the two counter tasks. These could be passed in as parameters
to the controller task to prevent them having to be file scope. */
-static xTaskHandle xContinousIncrementHandle, xLimitedIncrementHandle;
+static TaskHandle_t xContinousIncrementHandle, xLimitedIncrementHandle;
/* The shared counter variable. This is passed in as a parameter to the two
counter variables for demonstration purposes. */
@@ -178,7 +178,7 @@ static volatile portBASE_TYPE xSuspendedQueueSendError = pdFALSE;
static volatile portBASE_TYPE xSuspendedQueueReceiveError = pdFALSE;
/* Queue used by the second test. */
-static xQueueHandle xSuspendedTestQueue;
+static QueueHandle_t xSuspendedTestQueue;
/*-----------------------------------------------------------*/
/*
diff --git a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main.c b/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main.c
index cd3d5c350..d83ac826e 100644
--- a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main.c
+++ b/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main.c
@@ -103,7 +103,7 @@
/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to one to run the simple blinky demo,
or 0 to run the more comprehensive test and demo application. */
-#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 1
+#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 0
/*-----------------------------------------------------------*/
@@ -118,12 +118,12 @@ extern void main_full( void );
within this file. */
void vApplicationMallocFailedHook( void );
void vApplicationIdleHook( void );
-void vApplicationStackOverflowHook( xTaskHandle pxTask, char *pcTaskName );
+void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName );
void vApplicationTickHook( void );
/* This variable is not actually used, but provided to allow an example of how
to write an ISR to be included in this file. */
-static xSemaphoreHandle xSemaphore = NULL;
+static SemaphoreHandle_t xSemaphore = NULL;
/*-----------------------------------------------------------*/
int main( void )
@@ -190,7 +190,7 @@ void vApplicationMallocFailedHook( void )
}
/*-----------------------------------------------------------*/
-void vApplicationStackOverflowHook( xTaskHandle pxTask, char *pcTaskName )
+void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName )
{
( void ) pcTaskName;
( void ) pxTask;
diff --git a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main_blinky.c b/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main_blinky.c
index 78df19403..32aa2eaed 100644
--- a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main_blinky.c
+++ b/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main_blinky.c
@@ -1,48 +1,38 @@
/*
- FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.
+ FreeRTOS V8.0.0:rc1 - Copyright (C) 2014 Real Time Engineers Ltd.
+ All rights reserved
- FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT
- http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
+ VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
***************************************************************************
* *
- * FreeRTOS tutorial books are available in pdf and paperback. *
- * Complete, revised, and edited pdf reference manuals are also *
- * available. *
+ * FreeRTOS provides completely free yet professionally developed, *
+ * robust, strictly quality controlled, supported, and cross *
+ * platform software that has become a de facto standard. *
* *
- * Purchasing FreeRTOS documentation will not only help you, by *
- * ensuring you get running as quickly as possible and with an *
- * in-depth knowledge of how to use FreeRTOS, it will also help *
- * the FreeRTOS project to continue with its mission of providing *
- * professional grade, cross platform, de facto standard solutions *
- * for microcontrollers - completely free of charge! *
+ * Help yourself get started quickly and support the FreeRTOS *
+ * project by purchasing a FreeRTOS tutorial book, reference *
+ * manual, or both from: http://www.FreeRTOS.org/Documentation *
* *
- * >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
- * *
- * Thank you for using FreeRTOS, and thank you for your support! *
+ * Thank you! *
* *
***************************************************************************
-
This file is part of the FreeRTOS distribution.
FreeRTOS is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License (version 2) as published by the
- Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
+ Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
- >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to
- distribute a combined work that includes FreeRTOS without being obliged to
- provide the source code for proprietary components outside of the FreeRTOS
- kernel.
+ >>! NOTE: The modification to the GPL is included to allow you to distribute
+ >>! a combined work that includes FreeRTOS without being obliged to provide
+ >>! the source code for proprietary components outside of the FreeRTOS
+ >>! kernel.
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- details. You should have received a copy of the GNU General Public License
- and the FreeRTOS license exception along with FreeRTOS; if not itcan be
- viewed here: http://www.freertos.org/a00114.html and also obtained by
- writing to Real Time Engineers Ltd., contact details for whom are available
- on the FreeRTOS WEB site.
+ FOR A PARTICULAR PURPOSE. Full license text is available from the following
+ link: http://www.freertos.org/a00114.html
1 tab == 4 spaces!
@@ -55,21 +45,22 @@
* *
***************************************************************************
-
http://www.FreeRTOS.org - Documentation, books, training, latest versions,
license and Real Time Engineers Ltd. contact details.
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
- including FreeRTOS+Trace - an indispensable productivity tool, and our new
- fully thread aware and reentrant UDP/IP stack.
+ including FreeRTOS+Trace - an indispensable productivity tool, a DOS
+ compatible FAT file system, and our tiny thread aware UDP/IP stack.
http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
- Integrity Systems, who sell the code with commercial support,
- indemnification and middleware, under the OpenRTOS brand.
+ Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS
+ licenses offer ticketed support, indemnification and middleware.
http://www.SafeRTOS.com - High Integrity Systems also provide a safety
engineered and independently SIL3 certified version for use in safety and
mission critical applications that require provable dependability.
+
+ 1 tab == 4 spaces!
*/
/******************************************************************************
@@ -126,15 +117,17 @@
#define mainQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 )
/* The rate at which data is sent to the queue. The 200ms value is converted
-to ticks using the portTICK_RATE_MS constant. */
-#define mainQUEUE_SEND_FREQUENCY_MS ( 200 / portTICK_RATE_MS )
+to ticks using the portTICK_PERIOD_MS constant. */
+#define mainQUEUE_SEND_FREQUENCY_MS ( 200 / portTICK_PERIOD_MS )
/* The number of items the queue can hold. This is 1 as the receive task
will remove items as they are added, meaning the send task should always find
the queue empty. */
#define mainQUEUE_LENGTH ( 1 )
-
+/* Used to check the task parameter passing in both supported memory models. */
+#define mainQUEUE_SEND_PARAMETER ( ( void * ) 0x1234U )
+#define mainQUEUE_RECEIVE_PARAMETER ( ( void * ) 0x1122U )
/*-----------------------------------------------------------*/
/*
@@ -152,7 +145,7 @@ void main_blinky( void );
/*-----------------------------------------------------------*/
/* The queue used by both tasks. */
-static xQueueHandle xQueue = NULL;
+static QueueHandle_t xQueue = NULL;
/*-----------------------------------------------------------*/
@@ -165,14 +158,14 @@ void main_blinky( void )
{
/* Start the two tasks as described in the comments at the top of this
file. */
- xTaskCreate( prvQueueReceiveTask, /* The function that implements the task. */
- ( signed char * ) "Rx", /* The text name assigned to the task - for debug only as it is not used by the kernel. */
- configMINIMAL_STACK_SIZE, /* The size of the stack to allocate to the task. */
- NULL, /* The parameter passed to the task - not used in this case. */
- mainQUEUE_RECEIVE_TASK_PRIORITY, /* The priority assigned to the task. */
- NULL ); /* The task handle is not required, so NULL is passed. */
+ xTaskCreate( prvQueueReceiveTask, /* The function that implements the task. */
+ "Rx", /* The text name assigned to the task - for debug only as it is not used by the kernel. */
+ configMINIMAL_STACK_SIZE, /* The size of the stack to allocate to the task. */
+ mainQUEUE_RECEIVE_PARAMETER, /* The parameter passed to the task - just used to check the port in this case. */
+ mainQUEUE_RECEIVE_TASK_PRIORITY,/* The priority assigned to the task. */
+ NULL ); /* The task handle is not required, so NULL is passed. */
- xTaskCreate( prvQueueSendTask, ( signed char * ) "TX", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_SEND_TASK_PRIORITY, NULL );
+ xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, mainQUEUE_SEND_PARAMETER, mainQUEUE_SEND_TASK_PRIORITY, NULL );
/* Start the tasks and timer running. */
vTaskStartScheduler();
@@ -189,11 +182,11 @@ void main_blinky( void )
static void prvQueueSendTask( void *pvParameters )
{
-portTickType xNextWakeTime;
+TickType_t xNextWakeTime;
const unsigned long ulValueToSend = 100UL;
- /* Remove compiler warning about unused parameter. */
- ( void ) pvParameters;
+ /* Check the parameter was passed in correctly. */
+ configASSERT( pvParameters == mainQUEUE_SEND_PARAMETER )
/* Initialise xNextWakeTime - this only needs to be done once. */
xNextWakeTime = xTaskGetTickCount();
@@ -217,8 +210,8 @@ static void prvQueueReceiveTask( void *pvParameters )
unsigned long ulReceivedValue;
const unsigned long ulExpectedValue = 100UL;
- /* Remove compiler warning about unused parameter. */
- ( void ) pvParameters;
+ /* Check the parameter was passed in correctly. */
+ configASSERT( pvParameters == mainQUEUE_RECEIVE_PARAMETER )
for( ;; )
{
diff --git a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main_full.c b/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main_full.c
index a866218a9..13daf1f2b 100644
--- a/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main_full.c
+++ b/FreeRTOS/Demo/RL78_E2Studio_GCC/src/main_full.c
@@ -141,14 +141,14 @@
/* The period at which the check timer will expire, in ms, provided no errors
have been reported by any of the standard demo tasks. ms are converted to the
-equivalent in ticks using the portTICK_RATE_MS constant. */
-#define mainCHECK_TIMER_PERIOD_MS ( 3000UL / portTICK_RATE_MS )
+equivalent in ticks using the portTICK_PERIOD_MS constant. */
+#define mainCHECK_TIMER_PERIOD_MS ( 3000UL / portTICK_PERIOD_MS )
/* The period at which the check timer will expire, in ms, if an error has been
reported in one of the standard demo tasks, the check tasks, or the demo timer.
-ms are converted to the equivalent in ticks using the portTICK_RATE_MS
+ms are converted to the equivalent in ticks using the portTICK_PERIOD_MS
constant. */
-#define mainERROR_CHECK_TIMER_PERIOD_MS ( 200UL / portTICK_RATE_MS )
+#define mainERROR_CHECK_TIMER_PERIOD_MS ( 200UL / portTICK_PERIOD_MS )
/* These two definitions are used to set the period of the demo timer. The demo
timer period is always relative to the check timer period, so the check timer
@@ -170,12 +170,12 @@ ensure task parameters are passed correctly). */
/*
* The 'check' timer callback function, as described at the top of this file.
*/
-static void prvCheckTimerCallback( xTimerHandle xTimer );
+static void prvCheckTimerCallback( TimerHandle_t xTimer );
/*
* The 'demo' timer callback function, as described at the top of this file.
*/
-static void prvDemoTimerCallback( xTimerHandle xTimer );
+static void prvDemoTimerCallback( TimerHandle_t xTimer );
/*
* Functions that define the RegTest tasks, as described at the top of this
@@ -209,10 +209,10 @@ unsigned short usRegTest1LoopCounter = 0, usRegTest2LoopCounter;
/* The check timer. This uses prvCheckTimerCallback() as its callback
function. */
-static xTimerHandle xCheckTimer = NULL;
+static TimerHandle_t xCheckTimer = NULL;
/* The demo timer. This uses prvDemoTimerCallback() as its callback function. */
-static xTimerHandle xDemoTimer = NULL;
+static TimerHandle_t xDemoTimer = NULL;
/* This variable is incremented each time the demo timer expires. */
static volatile unsigned long ulDemoSoftwareTimerCounter = 0UL;
@@ -274,7 +274,7 @@ void main_full( void )
}
/*-----------------------------------------------------------*/
-static void prvDemoTimerCallback( xTimerHandle xTimer )
+static void prvDemoTimerCallback( TimerHandle_t xTimer )
{
/* Remove compiler warning about unused parameter. */
( void ) xTimer;
@@ -287,7 +287,7 @@ static void prvDemoTimerCallback( xTimerHandle xTimer )
}
/*-----------------------------------------------------------*/
-static void prvCheckTimerCallback( xTimerHandle xTimer )
+static void prvCheckTimerCallback( TimerHandle_t xTimer )
{
static portBASE_TYPE xChangedTimerPeriodAlready = pdFALSE, xErrorStatus = pdPASS;
static unsigned short usLastRegTest1Counter = 0, usLastRegTest2Counter = 0;