mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04:00
Remove unnecessary use of portLONG, portCHAR and portSHORT.
Change version number in headers.
This commit is contained in:
parent
506dd1b7c8
commit
7f0c4ef656
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -70,10 +71,10 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 0
|
#define configUSE_IDLE_HOOK 0
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 66000000 ) /* = 66.000MHz clk gen */
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 66000000 ) /* = 66.000MHz clk gen */
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 128 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 25 * 1024 ) )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 25 * 1024 ) )
|
||||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||||
#define configUSE_TRACE_FACILITY 0
|
#define configUSE_TRACE_FACILITY 0
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
#/*
|
#/*
|
||||||
# FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
# FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeRTOS distribution.
|
# This file is part of the FreeRTOS distribution.
|
||||||
#
|
#
|
||||||
# FreeRTOS is free software; you can redistribute it and/or modify it under
|
# 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
|
# 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 exception to the GPL is included to allow you to distribute a
|
# **NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
# combined work that includes FreeRTOS without being obliged to provide the
|
# combined work that includes FreeRTOS without being obliged to provide the
|
||||||
# source code for proprietary components outside of the FreeRTOS kernel.
|
# source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
# Alternative commercial license and support terms are also available upon
|
# Alternative commercial license and support terms are also available upon
|
||||||
# request. See the licensing section of http://www.FreeRTOS.org for full
|
# request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
# license details.
|
# license details.
|
||||||
#
|
#
|
||||||
# FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
# FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
# more details.
|
# more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License along
|
# You should have received a copy of the GNU General Public License along
|
||||||
# with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
# with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
# Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# ***************************************************************************
|
# ***************************************************************************
|
||||||
# * *
|
# * *
|
||||||
# * Looking for a quick start? Then check out the FreeRTOS eBook! *
|
# * The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
# * See http://www.FreeRTOS.org/Documentation for details *
|
# * small fee. Help yourself get started quickly while also helping the *
|
||||||
# * *
|
# * FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
# ***************************************************************************
|
# * *
|
||||||
|
# ***************************************************************************
|
||||||
#
|
#
|
||||||
# 1 tab == 4 spaces!
|
# 1 tab == 4 spaces!
|
||||||
#
|
#
|
||||||
# Please ensure to read the configuration and relevant port sections of the
|
# Please ensure to read the configuration and relevant port sections of the
|
||||||
# online documentation.
|
# online documentation.
|
||||||
#
|
#
|
||||||
# http://www.FreeRTOS.org - Documentation, latest information, license and
|
# http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
# contact details.
|
# contact details.
|
||||||
#
|
#
|
||||||
# http://www.SafeRTOS.com - A version that is certified for use in safety
|
# http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
# critical systems.
|
# critical systems.
|
||||||
#
|
#
|
||||||
# http://www.OpenRTOS.com - Commercial support, development, porting,
|
# http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
# licensing and training services.
|
# licensing and training services.
|
||||||
#*/
|
#*/
|
||||||
|
|
||||||
CC=arm-elf-gcc
|
CC=arm-elf-gcc
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Scheduler includes. */
|
/* Scheduler includes. */
|
||||||
|
@ -58,9 +59,9 @@
|
||||||
#include "aic.h"
|
#include "aic.h"
|
||||||
|
|
||||||
#define partstNUM_LEDS ( 8 )
|
#define partstNUM_LEDS ( 8 )
|
||||||
#define partstALL_OUTPUTS_OFF ( ( unsigned portLONG ) ~(0xFFFFFFFF << partstNUM_LEDS) )
|
#define partstALL_OUTPUTS_OFF ( ( unsigned long ) ~(0xFFFFFFFF << partstNUM_LEDS) )
|
||||||
|
|
||||||
static unsigned portLONG ulLEDReg;
|
static unsigned long ulLEDReg;
|
||||||
|
|
||||||
/*-----------------------------------------------------------
|
/*-----------------------------------------------------------
|
||||||
* Simple parallel port IO routines.
|
* Simple parallel port IO routines.
|
||||||
|
@ -68,7 +69,7 @@ static unsigned portLONG ulLEDReg;
|
||||||
|
|
||||||
static void SetLeds (unsigned int leds)
|
static void SetLeds (unsigned int leds)
|
||||||
{
|
{
|
||||||
unsigned portLONG ulPIOSetReg, ulPIOClearReg;
|
unsigned long ulPIOSetReg, ulPIOClearReg;
|
||||||
|
|
||||||
/* LEDs are grouped in different port bits: P3-P6 and P16-P19.
|
/* LEDs are grouped in different port bits: P3-P6 and P16-P19.
|
||||||
A port bit set to '0' turns an LED on, '1' turns it off. */
|
A port bit set to '0' turns an LED on, '1' turns it off. */
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -105,7 +106,7 @@
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/* Constants for the ComTest tasks. */
|
/* Constants for the ComTest tasks. */
|
||||||
#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 115200 )
|
#define mainCOM_TEST_BAUD_RATE ( ( unsigned long ) 115200 )
|
||||||
#define mainCOM_TEST_LED ( 5 )
|
#define mainCOM_TEST_LED ( 5 )
|
||||||
|
|
||||||
/* Priorities for the demo application tasks. */
|
/* Priorities for the demo application tasks. */
|
||||||
|
@ -120,10 +121,10 @@
|
||||||
error. */
|
error. */
|
||||||
#define mainNO_ERROR_FLASH_PERIOD ( ( portTickType ) 3000 / portTICK_RATE_MS )
|
#define mainNO_ERROR_FLASH_PERIOD ( ( portTickType ) 3000 / portTICK_RATE_MS )
|
||||||
#define mainERROR_FLASH_PERIOD ( ( portTickType ) 500 / portTICK_RATE_MS )
|
#define mainERROR_FLASH_PERIOD ( ( portTickType ) 500 / portTICK_RATE_MS )
|
||||||
#define mainON_BOARD_LED_BIT ( ( unsigned portLONG ) 7 )
|
#define mainON_BOARD_LED_BIT ( ( unsigned long ) 7 )
|
||||||
|
|
||||||
/* Constants used by the vMemCheckTask() task. */
|
/* Constants used by the vMemCheckTask() task. */
|
||||||
#define mainCOUNT_INITIAL_VALUE ( ( unsigned portLONG ) 0 )
|
#define mainCOUNT_INITIAL_VALUE ( ( unsigned long ) 0 )
|
||||||
#define mainNO_TASK ( 0 )
|
#define mainNO_TASK ( 0 )
|
||||||
|
|
||||||
/* The size of the memory blocks allocated by the vMemCheckTask() task. */
|
/* The size of the memory blocks allocated by the vMemCheckTask() task. */
|
||||||
|
@ -132,7 +133,7 @@ error. */
|
||||||
#define mainMEM_CHECK_SIZE_3 ( ( size_t ) 151 )
|
#define mainMEM_CHECK_SIZE_3 ( ( size_t ) 151 )
|
||||||
|
|
||||||
#define MAX_WAIT_STATES 8
|
#define MAX_WAIT_STATES 8
|
||||||
static const unsigned portLONG ululCSRWaitValues[ MAX_WAIT_STATES + 1 ] =
|
static const unsigned long ululCSRWaitValues[ MAX_WAIT_STATES + 1 ] =
|
||||||
{
|
{
|
||||||
WaitState1,/* There is no "zero wait state" value, so use one wait state */
|
WaitState1,/* There is no "zero wait state" value, so use one wait state */
|
||||||
WaitState1,
|
WaitState1,
|
||||||
|
@ -150,7 +151,7 @@ static const unsigned portLONG ululCSRWaitValues[ MAX_WAIT_STATES + 1 ] =
|
||||||
* Checks that all the demo application tasks are still executing without error
|
* Checks that all the demo application tasks are still executing without error
|
||||||
* - as described at the top of the file.
|
* - as described at the top of the file.
|
||||||
*/
|
*/
|
||||||
static portLONG prvCheckOtherTasksAreStillRunning( unsigned portLONG ulMemCheckTaskCount );
|
static long prvCheckOtherTasksAreStillRunning( unsigned long ulMemCheckTaskCount );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The task that executes at the highest priority and calls
|
* The task that executes at the highest priority and calls
|
||||||
|
@ -193,7 +194,7 @@ int main( void )
|
||||||
vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
|
vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
|
||||||
|
|
||||||
/* Start the check task - which is defined in this file. */
|
/* Start the check task - which is defined in this file. */
|
||||||
xTaskCreate( vErrorChecks, ( signed portCHAR * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
xTaskCreate( vErrorChecks, ( signed char * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
||||||
|
|
||||||
/* Now all the tasks have been started - start the scheduler.
|
/* Now all the tasks have been started - start the scheduler.
|
||||||
|
|
||||||
|
@ -212,7 +213,7 @@ int main( void )
|
||||||
static void vErrorChecks( void *pvParameters )
|
static void vErrorChecks( void *pvParameters )
|
||||||
{
|
{
|
||||||
portTickType xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;
|
portTickType xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;
|
||||||
unsigned portLONG ulMemCheckTaskRunningCount;
|
unsigned long ulMemCheckTaskRunningCount;
|
||||||
xTaskHandle xCreatedTask;
|
xTaskHandle xCreatedTask;
|
||||||
|
|
||||||
/* Just to stop compiler warnings. */
|
/* Just to stop compiler warnings. */
|
||||||
|
@ -238,7 +239,7 @@ xTaskHandle xCreatedTask;
|
||||||
/* Dynamically create a task - passing ulMemCheckTaskRunningCount as a
|
/* Dynamically create a task - passing ulMemCheckTaskRunningCount as a
|
||||||
parameter. */
|
parameter. */
|
||||||
ulMemCheckTaskRunningCount = mainCOUNT_INITIAL_VALUE;
|
ulMemCheckTaskRunningCount = mainCOUNT_INITIAL_VALUE;
|
||||||
if( xTaskCreate( vMemCheckTask, ( signed portCHAR * ) "MEM_CHECK", configMINIMAL_STACK_SIZE, ( void * ) &ulMemCheckTaskRunningCount, tskIDLE_PRIORITY, &xCreatedTask ) != pdPASS )
|
if( xTaskCreate( vMemCheckTask, ( signed char * ) "MEM_CHECK", configMINIMAL_STACK_SIZE, ( void * ) &ulMemCheckTaskRunningCount, tskIDLE_PRIORITY, &xCreatedTask ) != pdPASS )
|
||||||
{
|
{
|
||||||
/* Could not create the task - we have probably run out of heap. */
|
/* Could not create the task - we have probably run out of heap. */
|
||||||
xDelayPeriod = mainERROR_FLASH_PERIOD;
|
xDelayPeriod = mainERROR_FLASH_PERIOD;
|
||||||
|
@ -271,13 +272,13 @@ xTaskHandle xCreatedTask;
|
||||||
|
|
||||||
static void prvSetupHardware( void )
|
static void prvSetupHardware( void )
|
||||||
{
|
{
|
||||||
portLONG lCount;
|
long lCount;
|
||||||
|
|
||||||
#ifdef RUN_FROM_ROM
|
#ifdef RUN_FROM_ROM
|
||||||
{
|
{
|
||||||
portFLOAT nsecsPerClockTick;
|
portFLOAT nsecsPerClockTick;
|
||||||
portLONG lNumWaitStates;
|
long lNumWaitStates;
|
||||||
unsigned portLONG ulCSRWaitValue;
|
unsigned long ulCSRWaitValue;
|
||||||
|
|
||||||
/* We are compiling to run from ROM (either on-chip or off-chip flash).
|
/* We are compiling to run from ROM (either on-chip or off-chip flash).
|
||||||
Leave the RAM/flash mapped the way they are on reset
|
Leave the RAM/flash mapped the way they are on reset
|
||||||
|
@ -289,7 +290,7 @@ portLONG lCount;
|
||||||
based on constants. But the compiler should still produce
|
based on constants. But the compiler should still produce
|
||||||
a correct wait state register value. */
|
a correct wait state register value. */
|
||||||
nsecsPerClockTick = ( portFLOAT ) 1000000000 / configCPU_CLOCK_HZ;
|
nsecsPerClockTick = ( portFLOAT ) 1000000000 / configCPU_CLOCK_HZ;
|
||||||
lNumWaitStates = ( portLONG )( ( configFLASH_SPEED_NSEC / nsecsPerClockTick ) + 0.5 ) - 1;
|
lNumWaitStates = ( long )( ( configFLASH_SPEED_NSEC / nsecsPerClockTick ) + 0.5 ) - 1;
|
||||||
|
|
||||||
if( lNumWaitStates < 0 )
|
if( lNumWaitStates < 0 )
|
||||||
{
|
{
|
||||||
|
@ -346,9 +347,9 @@ portLONG lCount;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
static portLONG prvCheckOtherTasksAreStillRunning( unsigned portLONG ulMemCheckTaskCount )
|
static long prvCheckOtherTasksAreStillRunning( unsigned long ulMemCheckTaskCount )
|
||||||
{
|
{
|
||||||
portLONG lReturn = ( portLONG ) pdPASS;
|
long lReturn = ( long ) pdPASS;
|
||||||
|
|
||||||
/* Check all the demo tasks (other than the flash tasks) to ensure
|
/* Check all the demo tasks (other than the flash tasks) to ensure
|
||||||
that they are all still running, and that none of them have detected
|
that they are all still running, and that none of them have detected
|
||||||
|
@ -356,44 +357,44 @@ portLONG lReturn = ( portLONG ) pdPASS;
|
||||||
|
|
||||||
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreComTestTasksStillRunning() != pdTRUE )
|
if( xAreComTestTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xArePollingQueuesStillRunning() != pdTRUE )
|
if( xArePollingQueuesStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreMathsTaskStillRunning() != pdTRUE )
|
if( xAreMathsTaskStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ulMemCheckTaskCount == mainCOUNT_INITIAL_VALUE )
|
if( ulMemCheckTaskCount == mainCOUNT_INITIAL_VALUE )
|
||||||
{
|
{
|
||||||
/* The vMemCheckTask did not increment the counter - it must
|
/* The vMemCheckTask did not increment the counter - it must
|
||||||
have failed. */
|
have failed. */
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return lReturn;
|
return lReturn;
|
||||||
|
@ -402,9 +403,9 @@ portLONG lReturn = ( portLONG ) pdPASS;
|
||||||
|
|
||||||
static void vMemCheckTask( void *pvParameters )
|
static void vMemCheckTask( void *pvParameters )
|
||||||
{
|
{
|
||||||
unsigned portLONG *pulMemCheckTaskRunningCounter;
|
unsigned long *pulMemCheckTaskRunningCounter;
|
||||||
void *pvMem1, *pvMem2, *pvMem3;
|
void *pvMem1, *pvMem2, *pvMem3;
|
||||||
static portLONG lErrorOccurred = pdFALSE;
|
static long lErrorOccurred = pdFALSE;
|
||||||
|
|
||||||
/* This task is dynamically created then deleted during each cycle of the
|
/* This task is dynamically created then deleted during each cycle of the
|
||||||
vErrorChecks task to check the operation of the memory allocator. Each time
|
vErrorChecks task to check the operation of the memory allocator. Each time
|
||||||
|
@ -417,7 +418,7 @@ static portLONG lErrorOccurred = pdFALSE;
|
||||||
pulMemCheckTaskRunningCounter is incremented each cycle to indicate to the
|
pulMemCheckTaskRunningCounter is incremented each cycle to indicate to the
|
||||||
vErrorChecks() task that this task is still executing without error. */
|
vErrorChecks() task that this task is still executing without error. */
|
||||||
|
|
||||||
pulMemCheckTaskRunningCounter = ( unsigned portLONG * ) pvParameters;
|
pulMemCheckTaskRunningCounter = ( unsigned long * ) pvParameters;
|
||||||
|
|
||||||
for( ;; )
|
for( ;; )
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -71,7 +72,7 @@
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/* Constants to setup and access the UART. */
|
/* Constants to setup and access the UART. */
|
||||||
#define portUSART0_AIC_CHANNEL ( ( unsigned portLONG ) 2 )
|
#define portUSART0_AIC_CHANNEL ( ( unsigned long ) 2 )
|
||||||
|
|
||||||
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
||||||
#define serHANDLE ( ( xComPortHandle ) 1 )
|
#define serHANDLE ( ( xComPortHandle ) 1 )
|
||||||
|
@ -94,10 +95,10 @@ extern void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueu
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulSpeed;
|
unsigned long ulSpeed;
|
||||||
unsigned portLONG ulCD;
|
unsigned long ulCD;
|
||||||
xComPortHandle xReturn = serHANDLE;
|
xComPortHandle xReturn = serHANDLE;
|
||||||
extern void ( vUART_ISR_Wrapper )( void );
|
extern void ( vUART_ISR_Wrapper )( void );
|
||||||
|
|
||||||
|
@ -108,7 +109,7 @@ extern void ( vUART_ISR_Wrapper )( void );
|
||||||
if(
|
if(
|
||||||
( xRxedChars != serINVALID_QUEUE ) &&
|
( xRxedChars != serINVALID_QUEUE ) &&
|
||||||
( xCharsForTx != serINVALID_QUEUE ) &&
|
( xCharsForTx != serINVALID_QUEUE ) &&
|
||||||
( ulWantedBaud != ( unsigned portLONG ) 0 )
|
( ulWantedBaud != ( unsigned long ) 0 )
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
|
@ -179,7 +180,7 @@ extern void ( vUART_ISR_Wrapper )( void );
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* The port handle is not required as this driver only supports UART0. */
|
/* The port handle is not required as this driver only supports UART0. */
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
@ -197,9 +198,9 @@ signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcR
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )
|
void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )
|
||||||
{
|
{
|
||||||
signed portCHAR *pxNext;
|
signed char *pxNext;
|
||||||
|
|
||||||
/* NOTE: This implementation does not handle the queue being full as no
|
/* NOTE: This implementation does not handle the queue being full as no
|
||||||
block time is used! */
|
block time is used! */
|
||||||
|
@ -209,7 +210,7 @@ signed portCHAR *pxNext;
|
||||||
( void ) usStringLength;
|
( void ) usStringLength;
|
||||||
|
|
||||||
/* Send each character in the string, one at a time. */
|
/* Send each character in the string, one at a time. */
|
||||||
pxNext = ( signed portCHAR * ) pcString;
|
pxNext = ( signed char * ) pcString;
|
||||||
while( *pxNext )
|
while( *pxNext )
|
||||||
{
|
{
|
||||||
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
||||||
|
@ -218,7 +219,7 @@ signed portCHAR *pxNext;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,14 +72,14 @@
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/* Constant to access the AIC. */
|
/* Constant to access the AIC. */
|
||||||
#define serCLEAR_AIC_INTERRUPT ( ( unsigned portLONG ) 0 )
|
#define serCLEAR_AIC_INTERRUPT ( ( unsigned long ) 0 )
|
||||||
|
|
||||||
/* Constants to determine the ISR source. */
|
/* Constants to determine the ISR source. */
|
||||||
#define serSOURCE_THRE ( ( unsigned portCHAR ) 0x02 )
|
#define serSOURCE_THRE ( ( unsigned char ) 0x02 )
|
||||||
#define serSOURCE_RX_TIMEOUT ( ( unsigned portCHAR ) 0x0c )
|
#define serSOURCE_RX_TIMEOUT ( ( unsigned char ) 0x0c )
|
||||||
#define serSOURCE_ERROR ( ( unsigned portCHAR ) 0x06 )
|
#define serSOURCE_ERROR ( ( unsigned char ) 0x06 )
|
||||||
#define serSOURCE_RX ( ( unsigned portCHAR ) 0x04 )
|
#define serSOURCE_RX ( ( unsigned char ) 0x04 )
|
||||||
#define serINTERRUPT_SOURCE_MASK ( ( unsigned portLONG ) (US_RXRDY | US_TXRDY | US_RXBRK | US_OVRE | US_FRAME | US_PARE) )
|
#define serINTERRUPT_SOURCE_MASK ( ( unsigned long ) (US_RXRDY | US_TXRDY | US_RXBRK | US_OVRE | US_FRAME | US_PARE) )
|
||||||
|
|
||||||
/* Queues used to hold received characters, and characters waiting to be
|
/* Queues used to hold received characters, and characters waiting to be
|
||||||
transmitted. */
|
transmitted. */
|
||||||
|
@ -99,8 +100,8 @@ void vUART_ISR_Handler( void ) __attribute__ ((noinline));
|
||||||
void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle *pxRxedChars, xQueueHandle *pxCharsForTx )
|
void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle *pxRxedChars, xQueueHandle *pxCharsForTx )
|
||||||
{
|
{
|
||||||
/* Create the queues used to hold Rx and Tx characters. */
|
/* Create the queues used to hold Rx and Tx characters. */
|
||||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
|
|
||||||
/* Pass back a reference to the queues so the serial API file can
|
/* Pass back a reference to the queues so the serial API file can
|
||||||
post/receive characters. */
|
post/receive characters. */
|
||||||
|
@ -126,9 +127,9 @@ void vUART_ISR_Wrapper( void )
|
||||||
void vUART_ISR_Handler( void )
|
void vUART_ISR_Handler( void )
|
||||||
{
|
{
|
||||||
/* Now we can declare the local variables. These must be static. */
|
/* Now we can declare the local variables. These must be static. */
|
||||||
signed portCHAR cChar;
|
signed char cChar;
|
||||||
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
unsigned portLONG ulStatus;
|
unsigned long ulStatus;
|
||||||
|
|
||||||
/* What caused the interrupt? */
|
/* What caused the interrupt? */
|
||||||
ulStatus = AT91C_BASE_US0->US_CSR & AT91C_BASE_US0->US_IMR;
|
ulStatus = AT91C_BASE_US0->US_CSR & AT91C_BASE_US0->US_IMR;
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -66,10 +67,10 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 0
|
#define configUSE_IDLE_HOOK 0
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 47923200 )
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 47923200 )
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 100 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 100 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) 14200 )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) 14200 )
|
||||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||||
#define configUSE_TRACE_FACILITY 0
|
#define configUSE_TRACE_FACILITY 0
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
|
@ -53,7 +54,7 @@
|
||||||
* Simple parallel port IO routines for the LED's.
|
* Simple parallel port IO routines for the LED's.
|
||||||
*-----------------------------------------------------------*/
|
*-----------------------------------------------------------*/
|
||||||
|
|
||||||
const unsigned portLONG led_mask[ NB_LED ]= { LED1, LED2, LED3, LED4 };
|
const unsigned long led_mask[ NB_LED ]= { LED1, LED2, LED3, LED4 };
|
||||||
|
|
||||||
void vParTestInitialise( void )
|
void vParTestInitialise( void )
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -139,7 +140,7 @@ little odd. */
|
||||||
/* Misc application definitions. */
|
/* Misc application definitions. */
|
||||||
#define usbINTERRUPT_PRIORITY ( 3 )
|
#define usbINTERRUPT_PRIORITY ( 3 )
|
||||||
#define usbQUEUE_LENGTH ( 0x3 ) /* Must have all bits set! */
|
#define usbQUEUE_LENGTH ( 0x3 ) /* Must have all bits set! */
|
||||||
#define usbFIFO_LENGTH ( ( unsigned portLONG ) 8 )
|
#define usbFIFO_LENGTH ( ( unsigned long ) 8 )
|
||||||
#define usbEND_POINT_0 ( 0 )
|
#define usbEND_POINT_0 ( 0 )
|
||||||
#define usbEND_POINT_1 ( 1 )
|
#define usbEND_POINT_1 ( 1 )
|
||||||
#define usbXUP ( 1 )
|
#define usbXUP ( 1 )
|
||||||
|
@ -148,14 +149,14 @@ little odd. */
|
||||||
#define usbYDOWN ( 4 )
|
#define usbYDOWN ( 4 )
|
||||||
#define usbMAX_COORD ( 120 )
|
#define usbMAX_COORD ( 120 )
|
||||||
#define usbMAX_TX_MESSAGE_SIZE ( 128 )
|
#define usbMAX_TX_MESSAGE_SIZE ( 128 )
|
||||||
#define usbRX_COUNT_MASK ( ( unsigned portLONG ) 0x7ff )
|
#define usbRX_COUNT_MASK ( ( unsigned long ) 0x7ff )
|
||||||
#define AT91C_UDP_STALLSENT AT91C_UDP_ISOERROR
|
#define AT91C_UDP_STALLSENT AT91C_UDP_ISOERROR
|
||||||
#define usbSHORTEST_DELAY ( ( portTickType ) 1 )
|
#define usbSHORTEST_DELAY ( ( portTickType ) 1 )
|
||||||
#define usbINIT_DELAY ( ( portTickType ) 500 / portTICK_RATE_MS )
|
#define usbINIT_DELAY ( ( portTickType ) 500 / portTICK_RATE_MS )
|
||||||
#define usbSHORT_DELAY ( ( portTickType ) 50 / portTICK_RATE_MS )
|
#define usbSHORT_DELAY ( ( portTickType ) 50 / portTICK_RATE_MS )
|
||||||
#define usbEND_POINT_RESET_MASK ( ( unsigned portLONG ) 0x0f )
|
#define usbEND_POINT_RESET_MASK ( ( unsigned long ) 0x0f )
|
||||||
#define usbDATA_INC ( ( portCHAR ) 5 )
|
#define usbDATA_INC ( ( char ) 5 )
|
||||||
#define usbEXPECTED_NUMBER_OF_BYTES ( ( unsigned portLONG ) 8 )
|
#define usbEXPECTED_NUMBER_OF_BYTES ( ( unsigned long ) 8 )
|
||||||
|
|
||||||
/* Control request types. */
|
/* Control request types. */
|
||||||
#define usbSTANDARD_DEVICE_REQUEST ( 0 )
|
#define usbSTANDARD_DEVICE_REQUEST ( 0 )
|
||||||
|
@ -168,19 +169,19 @@ little odd. */
|
||||||
/* Structure used to take a snapshot of the USB status from within the ISR. */
|
/* Structure used to take a snapshot of the USB status from within the ISR. */
|
||||||
typedef struct X_ISR_STATUS
|
typedef struct X_ISR_STATUS
|
||||||
{
|
{
|
||||||
unsigned portLONG ulISR;
|
unsigned long ulISR;
|
||||||
unsigned portLONG ulCSR0;
|
unsigned long ulCSR0;
|
||||||
unsigned portCHAR ucFifoData[ 8 ];
|
unsigned char ucFifoData[ 8 ];
|
||||||
} xISRStatus;
|
} xISRStatus;
|
||||||
|
|
||||||
/* Structure used to hold the received requests. */
|
/* Structure used to hold the received requests. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
unsigned portCHAR ucReqType;
|
unsigned char ucReqType;
|
||||||
unsigned portCHAR ucRequest;
|
unsigned char ucRequest;
|
||||||
unsigned portSHORT usValue;
|
unsigned short usValue;
|
||||||
unsigned portSHORT usIndex;
|
unsigned short usIndex;
|
||||||
unsigned portSHORT usLength;
|
unsigned short usLength;
|
||||||
} xUSB_REQUEST;
|
} xUSB_REQUEST;
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
|
@ -196,9 +197,9 @@ typedef enum
|
||||||
/* Structure used to control the data being sent to the host. */
|
/* Structure used to control the data being sent to the host. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
unsigned portCHAR ucTxBuffer[ usbMAX_TX_MESSAGE_SIZE ];
|
unsigned char ucTxBuffer[ usbMAX_TX_MESSAGE_SIZE ];
|
||||||
unsigned portLONG ulNextCharIndex;
|
unsigned long ulNextCharIndex;
|
||||||
unsigned portLONG ulTotalDataLength;
|
unsigned long ulTotalDataLength;
|
||||||
} xTX_MESSAGE;
|
} xTX_MESSAGE;
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
@ -271,7 +272,7 @@ static void prvHandleClassInterfaceRequest( xUSB_REQUEST *pxRequest );
|
||||||
* in response to TXCOMP interrupts until the entire buffer has been
|
* in response to TXCOMP interrupts until the entire buffer has been
|
||||||
* sent.
|
* sent.
|
||||||
*/
|
*/
|
||||||
static void prvSendControlData( unsigned portCHAR *pucData, unsigned portSHORT usRequestedLength, unsigned portLONG ulLengthLeftToSend, portLONG lSendingDescriptor );
|
static void prvSendControlData( unsigned char *pucData, unsigned short usRequestedLength, unsigned long ulLengthLeftToSend, long lSendingDescriptor );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Examine the Tx buffer to see if there is any more data to be transmitted.
|
* Examine the Tx buffer to see if there is any more data to be transmitted.
|
||||||
|
@ -334,14 +335,14 @@ These take the form:
|
||||||
Data
|
Data
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
const portCHAR pxLanguageStringDescriptor[] =
|
const char pxLanguageStringDescriptor[] =
|
||||||
{
|
{
|
||||||
4,
|
4,
|
||||||
usbDESCRIPTOR_TYPE_STRING,
|
usbDESCRIPTOR_TYPE_STRING,
|
||||||
0x09, 0x04
|
0x09, 0x04
|
||||||
};
|
};
|
||||||
|
|
||||||
const portCHAR pxManufacturerStringDescriptor[] =
|
const char pxManufacturerStringDescriptor[] =
|
||||||
{
|
{
|
||||||
18,
|
18,
|
||||||
usbDESCRIPTOR_TYPE_STRING,
|
usbDESCRIPTOR_TYPE_STRING,
|
||||||
|
@ -356,7 +357,7 @@ const portCHAR pxManufacturerStringDescriptor[] =
|
||||||
'S', 0x00
|
'S', 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
const portCHAR pxProductStringDescriptor[] =
|
const char pxProductStringDescriptor[] =
|
||||||
{
|
{
|
||||||
44,
|
44,
|
||||||
usbDESCRIPTOR_TYPE_STRING,
|
usbDESCRIPTOR_TYPE_STRING,
|
||||||
|
@ -384,7 +385,7 @@ const portCHAR pxProductStringDescriptor[] =
|
||||||
'k', 0x00
|
'k', 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
const portCHAR pxConfigurationStringDescriptor[] =
|
const char pxConfigurationStringDescriptor[] =
|
||||||
{
|
{
|
||||||
38,
|
38,
|
||||||
usbDESCRIPTOR_TYPE_STRING,
|
usbDESCRIPTOR_TYPE_STRING,
|
||||||
|
@ -409,7 +410,7 @@ const portCHAR pxConfigurationStringDescriptor[] =
|
||||||
'e', 0x00
|
'e', 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
const portCHAR pxInterfaceStringDescriptor[] =
|
const char pxInterfaceStringDescriptor[] =
|
||||||
{
|
{
|
||||||
30,
|
30,
|
||||||
usbDESCRIPTOR_TYPE_STRING,
|
usbDESCRIPTOR_TYPE_STRING,
|
||||||
|
@ -431,7 +432,7 @@ const portCHAR pxInterfaceStringDescriptor[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Enumeration descriptors. */
|
/* Enumeration descriptors. */
|
||||||
const portCHAR pxReportDescriptor[] =
|
const char pxReportDescriptor[] =
|
||||||
{
|
{
|
||||||
0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
|
0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
|
||||||
0x09, 0x04, /* USAGE (Joystick) */
|
0x09, 0x04, /* USAGE (Joystick) */
|
||||||
|
@ -513,8 +514,8 @@ const char pxConfigDescriptor[] = {
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/* File scope state variables. */
|
/* File scope state variables. */
|
||||||
static unsigned portCHAR ucUSBConfig = ( unsigned portCHAR ) 0;
|
static unsigned char ucUSBConfig = ( unsigned char ) 0;
|
||||||
static unsigned portLONG ulReceivedAddress = ( unsigned portLONG ) 0;
|
static unsigned long ulReceivedAddress = ( unsigned long ) 0;
|
||||||
static eDRIVER_STATE eDriverState = eNOTHING;
|
static eDRIVER_STATE eDriverState = eNOTHING;
|
||||||
|
|
||||||
/* Array in which the USB interrupt status is passed between the ISR and task. */
|
/* Array in which the USB interrupt status is passed between the ISR and task. */
|
||||||
|
@ -545,14 +546,14 @@ unchanged by writing with a 1. */
|
||||||
/* Set TXCOMP, RX_DATA_BK0, RXSETUP, */ \
|
/* Set TXCOMP, RX_DATA_BK0, RXSETUP, */ \
|
||||||
/* STALLSENT and RX_DATA_BK1 to 1 so the */ \
|
/* STALLSENT and RX_DATA_BK1 to 1 so the */ \
|
||||||
/* write has no effect. */ \
|
/* write has no effect. */ \
|
||||||
( * ( ( unsigned portLONG * ) pulValueNow ) ) |= ( unsigned portLONG ) 0x4f; \
|
( * ( ( unsigned long * ) pulValueNow ) ) |= ( unsigned long ) 0x4f; \
|
||||||
\
|
\
|
||||||
/* Clear the FORCE_STALL and TXPKTRDY bits */ \
|
/* Clear the FORCE_STALL and TXPKTRDY bits */ \
|
||||||
/* so the write has no effect. */ \
|
/* so the write has no effect. */ \
|
||||||
( * ( ( unsigned portLONG * ) pulValueNow ) ) &= ( unsigned portLONG ) 0xffffffcf; \
|
( * ( ( unsigned long * ) pulValueNow ) ) &= ( unsigned long ) 0xffffffcf; \
|
||||||
\
|
\
|
||||||
/* Set whichever bit we want set. */ \
|
/* Set whichever bit we want set. */ \
|
||||||
( * ( ( unsigned portLONG * ) pulValueNow ) ) |= ( ulBit ); \
|
( * ( ( unsigned long * ) pulValueNow ) ) |= ( ulBit ); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define usbCSR_CLEAR_BIT( pulValueNow, ulBit ) \
|
#define usbCSR_CLEAR_BIT( pulValueNow, ulBit ) \
|
||||||
|
@ -560,14 +561,14 @@ unchanged by writing with a 1. */
|
||||||
/* Set TXCOMP, RX_DATA_BK0, RXSETUP, */ \
|
/* Set TXCOMP, RX_DATA_BK0, RXSETUP, */ \
|
||||||
/* STALLSENT and RX_DATA_BK1 to 1 so the */ \
|
/* STALLSENT and RX_DATA_BK1 to 1 so the */ \
|
||||||
/* write has no effect. */ \
|
/* write has no effect. */ \
|
||||||
( * ( ( unsigned portLONG * ) pulValueNow ) ) |= ( unsigned portLONG ) 0x4f; \
|
( * ( ( unsigned long * ) pulValueNow ) ) |= ( unsigned long ) 0x4f; \
|
||||||
\
|
\
|
||||||
/* Clear the FORCE_STALL and TXPKTRDY bits */ \
|
/* Clear the FORCE_STALL and TXPKTRDY bits */ \
|
||||||
/* so the write has no effect. */ \
|
/* so the write has no effect. */ \
|
||||||
( * ( ( unsigned portLONG * ) pulValueNow ) ) &= ( unsigned portLONG ) 0xffffffcf; \
|
( * ( ( unsigned long * ) pulValueNow ) ) &= ( unsigned long ) 0xffffffcf; \
|
||||||
\
|
\
|
||||||
/* Clear whichever bit we want clear. */ \
|
/* Clear whichever bit we want clear. */ \
|
||||||
( * ( ( unsigned portLONG * ) pulValueNow ) ) &= ( ~ulBit ); \
|
( * ( ( unsigned long * ) pulValueNow ) ) &= ( ~ulBit ); \
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
@ -575,9 +576,9 @@ unchanged by writing with a 1. */
|
||||||
__arm void vUSB_ISR( void )
|
__arm void vUSB_ISR( void )
|
||||||
{
|
{
|
||||||
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
static volatile unsigned portLONG ulNextMessage = 0;
|
static volatile unsigned long ulNextMessage = 0;
|
||||||
xISRStatus *pxMessage;
|
xISRStatus *pxMessage;
|
||||||
unsigned portLONG ulTemp, ulRxBytes;
|
unsigned long ulTemp, ulRxBytes;
|
||||||
|
|
||||||
/* Take the next message from the queue. Note that usbQUEUE_LENGTH *must*
|
/* Take the next message from the queue. Note that usbQUEUE_LENGTH *must*
|
||||||
be all 1's, as in 0x01, 0x03, 0x07, etc. */
|
be all 1's, as in 0x01, 0x03, 0x07, etc. */
|
||||||
|
@ -691,11 +692,11 @@ xISRStatus *pxMessage;
|
||||||
|
|
||||||
static void prvTransmitSampleValues( void )
|
static void prvTransmitSampleValues( void )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulStatus;
|
unsigned long ulStatus;
|
||||||
static portLONG lState = usbXUP;
|
static long lState = usbXUP;
|
||||||
|
|
||||||
/* Variables to hold dummy x, y and z joystick axis data. */
|
/* Variables to hold dummy x, y and z joystick axis data. */
|
||||||
static signed portCHAR x = 0, y = 0, z = 0;
|
static signed char x = 0, y = 0, z = 0;
|
||||||
|
|
||||||
/* Generate some sample data in the x and y axis - draw a square. */
|
/* Generate some sample data in the x and y axis - draw a square. */
|
||||||
switch( lState )
|
switch( lState )
|
||||||
|
@ -754,7 +755,7 @@ static signed portCHAR x = 0, y = 0, z = 0;
|
||||||
|
|
||||||
static void prvUSBTransmitNull( void )
|
static void prvUSBTransmitNull( void )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulStatus;
|
unsigned long ulStatus;
|
||||||
|
|
||||||
/* Wait until the FIFO is free - even though we are not going to use it.
|
/* Wait until the FIFO is free - even though we are not going to use it.
|
||||||
THERE IS NO TIMEOUT HERE! */
|
THERE IS NO TIMEOUT HERE! */
|
||||||
|
@ -781,7 +782,7 @@ unsigned portLONG ulStatus;
|
||||||
|
|
||||||
static void prvSendStall( void )
|
static void prvSendStall( void )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulStatus;
|
unsigned long ulStatus;
|
||||||
|
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
{
|
{
|
||||||
|
@ -796,13 +797,13 @@ unsigned portLONG ulStatus;
|
||||||
|
|
||||||
static void prvResetEndPoints( void )
|
static void prvResetEndPoints( void )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulTemp;
|
unsigned long ulTemp;
|
||||||
|
|
||||||
eDriverState = eJUST_RESET;
|
eDriverState = eJUST_RESET;
|
||||||
|
|
||||||
/* Reset all the end points. */
|
/* Reset all the end points. */
|
||||||
AT91C_BASE_UDP->UDP_RSTEP = usbEND_POINT_RESET_MASK;
|
AT91C_BASE_UDP->UDP_RSTEP = usbEND_POINT_RESET_MASK;
|
||||||
AT91C_BASE_UDP->UDP_RSTEP = ( unsigned portLONG ) 0x00;
|
AT91C_BASE_UDP->UDP_RSTEP = ( unsigned long ) 0x00;
|
||||||
|
|
||||||
/* Enable data to be sent and received. */
|
/* Enable data to be sent and received. */
|
||||||
AT91C_BASE_UDP->UDP_FADDR = AT91C_UDP_FEN;
|
AT91C_BASE_UDP->UDP_FADDR = AT91C_UDP_FEN;
|
||||||
|
@ -811,7 +812,7 @@ unsigned portLONG ulTemp;
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
{
|
{
|
||||||
ulTemp = AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ];
|
ulTemp = AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ];
|
||||||
usbCSR_SET_BIT( &ulTemp, ( ( unsigned portLONG ) ( AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_CTRL ) ) );
|
usbCSR_SET_BIT( &ulTemp, ( ( unsigned long ) ( AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_CTRL ) ) );
|
||||||
AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ] = ulTemp;
|
AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ] = ulTemp;
|
||||||
AT91F_UDP_EnableIt( AT91C_BASE_UDP, AT91C_UDP_EPINT0 );
|
AT91F_UDP_EnableIt( AT91C_BASE_UDP, AT91C_UDP_EPINT0 );
|
||||||
}
|
}
|
||||||
|
@ -843,7 +844,7 @@ static void prvProcessEndPoint0Interrupt( xISRStatus *pxMessage )
|
||||||
/* Read the end point for data transfer. */
|
/* Read the end point for data transfer. */
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
{
|
{
|
||||||
unsigned portLONG ulTemp;
|
unsigned long ulTemp;
|
||||||
|
|
||||||
ulTemp = AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_1 ];
|
ulTemp = AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_1 ];
|
||||||
usbCSR_SET_BIT( &ulTemp, AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_INT_IN );
|
usbCSR_SET_BIT( &ulTemp, AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_INT_IN );
|
||||||
|
@ -858,7 +859,7 @@ static void prvProcessEndPoint0Interrupt( xISRStatus *pxMessage )
|
||||||
{
|
{
|
||||||
/* We sent an acknowledgement of a SET_ADDRESS request. Move
|
/* We sent an acknowledgement of a SET_ADDRESS request. Move
|
||||||
to the addressed state. */
|
to the addressed state. */
|
||||||
if( ulReceivedAddress != ( unsigned portLONG ) 0 )
|
if( ulReceivedAddress != ( unsigned long ) 0 )
|
||||||
{
|
{
|
||||||
AT91C_BASE_UDP->UDP_GLBSTATE = AT91C_UDP_FADDEN;
|
AT91C_BASE_UDP->UDP_GLBSTATE = AT91C_UDP_FADDEN;
|
||||||
}
|
}
|
||||||
|
@ -881,8 +882,8 @@ static void prvProcessEndPoint0Interrupt( xISRStatus *pxMessage )
|
||||||
if( pxMessage->ulCSR0 & AT91C_UDP_RXSETUP )
|
if( pxMessage->ulCSR0 & AT91C_UDP_RXSETUP )
|
||||||
{
|
{
|
||||||
xUSB_REQUEST xRequest;
|
xUSB_REQUEST xRequest;
|
||||||
unsigned portCHAR ucRequest;
|
unsigned char ucRequest;
|
||||||
unsigned portLONG ulRxBytes;
|
unsigned long ulRxBytes;
|
||||||
|
|
||||||
/* A data packet is available. */
|
/* A data packet is available. */
|
||||||
ulRxBytes = pxMessage->ulCSR0 >> 16;
|
ulRxBytes = pxMessage->ulCSR0 >> 16;
|
||||||
|
@ -952,11 +953,11 @@ static void prvGetStandardDeviceDescriptor( xUSB_REQUEST *pxRequest )
|
||||||
switch( ( pxRequest->usValue & 0xff00 ) >> 8 )
|
switch( ( pxRequest->usValue & 0xff00 ) >> 8 )
|
||||||
{
|
{
|
||||||
case usbDESCRIPTOR_TYPE_DEVICE:
|
case usbDESCRIPTOR_TYPE_DEVICE:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &pxDeviceDescriptor, pxRequest->usLength, sizeof( pxDeviceDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &pxDeviceDescriptor, pxRequest->usLength, sizeof( pxDeviceDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbDESCRIPTOR_TYPE_CONFIGURATION:
|
case usbDESCRIPTOR_TYPE_CONFIGURATION:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &( pxConfigDescriptor ), pxRequest->usLength, sizeof( pxConfigDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &( pxConfigDescriptor ), pxRequest->usLength, sizeof( pxConfigDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbDESCRIPTOR_TYPE_STRING:
|
case usbDESCRIPTOR_TYPE_STRING:
|
||||||
|
@ -965,23 +966,23 @@ static void prvGetStandardDeviceDescriptor( xUSB_REQUEST *pxRequest )
|
||||||
switch( pxRequest->usValue & 0xff )
|
switch( pxRequest->usValue & 0xff )
|
||||||
{
|
{
|
||||||
case usbLANGUAGE_STRING:
|
case usbLANGUAGE_STRING:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &pxLanguageStringDescriptor, pxRequest->usLength, sizeof(pxLanguageStringDescriptor), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &pxLanguageStringDescriptor, pxRequest->usLength, sizeof(pxLanguageStringDescriptor), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbMANUFACTURER_STRING:
|
case usbMANUFACTURER_STRING:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &pxManufacturerStringDescriptor, pxRequest->usLength, sizeof( pxManufacturerStringDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &pxManufacturerStringDescriptor, pxRequest->usLength, sizeof( pxManufacturerStringDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbPRODUCT_STRING:
|
case usbPRODUCT_STRING:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &pxProductStringDescriptor, pxRequest->usLength, sizeof( pxProductStringDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &pxProductStringDescriptor, pxRequest->usLength, sizeof( pxProductStringDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbCONFIGURATION_STRING:
|
case usbCONFIGURATION_STRING:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &pxConfigurationStringDescriptor, pxRequest->usLength, sizeof( pxConfigurationStringDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &pxConfigurationStringDescriptor, pxRequest->usLength, sizeof( pxConfigurationStringDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbINTERFACE_STRING:
|
case usbINTERFACE_STRING:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &pxInterfaceStringDescriptor, pxRequest->usLength, sizeof( pxInterfaceStringDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &pxInterfaceStringDescriptor, pxRequest->usLength, sizeof( pxInterfaceStringDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -1002,13 +1003,13 @@ static void prvGetStandardDeviceDescriptor( xUSB_REQUEST *pxRequest )
|
||||||
|
|
||||||
static void prvHandleStandardDeviceRequest( xUSB_REQUEST *pxRequest )
|
static void prvHandleStandardDeviceRequest( xUSB_REQUEST *pxRequest )
|
||||||
{
|
{
|
||||||
unsigned portSHORT usStatus = 0;
|
unsigned short usStatus = 0;
|
||||||
|
|
||||||
switch( pxRequest->ucRequest )
|
switch( pxRequest->ucRequest )
|
||||||
{
|
{
|
||||||
case usbGET_STATUS_REQUEST:
|
case usbGET_STATUS_REQUEST:
|
||||||
/* Just send two byte dummy status. */
|
/* Just send two byte dummy status. */
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &usStatus, sizeof( usStatus ), sizeof( usStatus ), pdFALSE );
|
prvSendControlData( ( unsigned char * ) &usStatus, sizeof( usStatus ), sizeof( usStatus ), pdFALSE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbGET_DESCRIPTOR_REQUEST:
|
case usbGET_DESCRIPTOR_REQUEST:
|
||||||
|
@ -1018,7 +1019,7 @@ unsigned portSHORT usStatus = 0;
|
||||||
|
|
||||||
case usbGET_CONFIGURATION_REQUEST:
|
case usbGET_CONFIGURATION_REQUEST:
|
||||||
/* Send selected device configuration */
|
/* Send selected device configuration */
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &ucUSBConfig, sizeof( ucUSBConfig ), sizeof( ucUSBConfig ), pdFALSE );
|
prvSendControlData( ( unsigned char * ) &ucUSBConfig, sizeof( ucUSBConfig ), sizeof( ucUSBConfig ), pdFALSE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbSET_FEATURE_REQUEST:
|
case usbSET_FEATURE_REQUEST:
|
||||||
|
@ -1033,7 +1034,7 @@ unsigned portSHORT usStatus = 0;
|
||||||
address and set our state so we know we have received the address. */
|
address and set our state so we know we have received the address. */
|
||||||
prvUSBTransmitNull();
|
prvUSBTransmitNull();
|
||||||
eDriverState = eJUST_GOT_ADDRESS;
|
eDriverState = eJUST_GOT_ADDRESS;
|
||||||
ulReceivedAddress = ( unsigned portLONG ) pxRequest->usValue;
|
ulReceivedAddress = ( unsigned long ) pxRequest->usValue;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbSET_CONFIGURATION_REQUEST:
|
case usbSET_CONFIGURATION_REQUEST:
|
||||||
|
@ -1042,7 +1043,7 @@ unsigned portSHORT usStatus = 0;
|
||||||
we cannot actually move to the configured state until we get a
|
we cannot actually move to the configured state until we get a
|
||||||
TXCOMP interrupt from this NULL packet. Therefore we just remember the
|
TXCOMP interrupt from this NULL packet. Therefore we just remember the
|
||||||
config and set our state so we know we have received the go ahead. */
|
config and set our state so we know we have received the go ahead. */
|
||||||
ucUSBConfig = ( unsigned portCHAR ) ( pxRequest->usValue & 0xff );
|
ucUSBConfig = ( unsigned char ) ( pxRequest->usValue & 0xff );
|
||||||
eDriverState = eJUST_GOT_CONFIG;
|
eDriverState = eJUST_GOT_CONFIG;
|
||||||
prvUSBTransmitNull();
|
prvUSBTransmitNull();
|
||||||
break;
|
break;
|
||||||
|
@ -1080,10 +1081,10 @@ static void prvHandleClassInterfaceRequest( xUSB_REQUEST *pxRequest )
|
||||||
|
|
||||||
static void prvGetStandardInterfaceDescriptor( xUSB_REQUEST *pxRequest )
|
static void prvGetStandardInterfaceDescriptor( xUSB_REQUEST *pxRequest )
|
||||||
{
|
{
|
||||||
switch( ( pxRequest->usValue & ( unsigned portSHORT ) 0xff00 ) >> 8 )
|
switch( ( pxRequest->usValue & ( unsigned short ) 0xff00 ) >> 8 )
|
||||||
{
|
{
|
||||||
case usbHID_REPORT_DESCRIPTOR:
|
case usbHID_REPORT_DESCRIPTOR:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) pxReportDescriptor, pxRequest->usLength, sizeof( pxReportDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) pxReportDescriptor, pxRequest->usLength, sizeof( pxReportDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -1097,13 +1098,13 @@ static void prvGetStandardInterfaceDescriptor( xUSB_REQUEST *pxRequest )
|
||||||
|
|
||||||
static void prvHandleStandardInterfaceRequest( xUSB_REQUEST *pxRequest )
|
static void prvHandleStandardInterfaceRequest( xUSB_REQUEST *pxRequest )
|
||||||
{
|
{
|
||||||
unsigned portSHORT usStatus = 0;
|
unsigned short usStatus = 0;
|
||||||
|
|
||||||
switch( pxRequest->ucRequest )
|
switch( pxRequest->ucRequest )
|
||||||
{
|
{
|
||||||
case usbGET_STATUS_REQUEST:
|
case usbGET_STATUS_REQUEST:
|
||||||
/* Send dummy 2 bytes. */
|
/* Send dummy 2 bytes. */
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &usStatus, sizeof( usStatus ), sizeof( usStatus ), pdFALSE );
|
prvSendControlData( ( unsigned char * ) &usStatus, sizeof( usStatus ), sizeof( usStatus ), pdFALSE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbGET_DESCRIPTOR_REQUEST:
|
case usbGET_DESCRIPTOR_REQUEST:
|
||||||
|
@ -1140,14 +1141,14 @@ static void prvHandleStandardEndPointRequest( xUSB_REQUEST *pxRequest )
|
||||||
|
|
||||||
static void vInitUSBInterface( void )
|
static void vInitUSBInterface( void )
|
||||||
{
|
{
|
||||||
volatile unsigned portLONG ulTemp;
|
volatile unsigned long ulTemp;
|
||||||
|
|
||||||
/* Create the queue used to communicate between the USB ISR and task. */
|
/* Create the queue used to communicate between the USB ISR and task. */
|
||||||
xUSBInterruptQueue = xQueueCreate( usbQUEUE_LENGTH + 1, sizeof( xISRStatus * ) );
|
xUSBInterruptQueue = xQueueCreate( usbQUEUE_LENGTH + 1, sizeof( xISRStatus * ) );
|
||||||
|
|
||||||
/* Initialise a few state variables. */
|
/* Initialise a few state variables. */
|
||||||
pxCharsForTx.ulNextCharIndex = ( unsigned portLONG ) 0;
|
pxCharsForTx.ulNextCharIndex = ( unsigned long ) 0;
|
||||||
ucUSBConfig = ( unsigned portCHAR ) 0;
|
ucUSBConfig = ( unsigned char ) 0;
|
||||||
eDriverState = eNOTHING;
|
eDriverState = eNOTHING;
|
||||||
|
|
||||||
/* HARDWARE SETUP */
|
/* HARDWARE SETUP */
|
||||||
|
@ -1169,10 +1170,10 @@ volatile unsigned portLONG ulTemp;
|
||||||
/* When using the USB debugger the peripheral registers do not always get
|
/* When using the USB debugger the peripheral registers do not always get
|
||||||
set to the correct default values. To make sure set the relevant registers
|
set to the correct default values. To make sure set the relevant registers
|
||||||
manually here. */
|
manually here. */
|
||||||
AT91C_BASE_UDP->UDP_IDR = ( unsigned portLONG ) 0xffffffff;
|
AT91C_BASE_UDP->UDP_IDR = ( unsigned long ) 0xffffffff;
|
||||||
AT91C_BASE_UDP->UDP_ICR = ( unsigned portLONG ) 0xffffffff;
|
AT91C_BASE_UDP->UDP_ICR = ( unsigned long ) 0xffffffff;
|
||||||
AT91C_BASE_UDP->UDP_CSR[ 0 ] = ( unsigned portLONG ) 0x00;
|
AT91C_BASE_UDP->UDP_CSR[ 0 ] = ( unsigned long ) 0x00;
|
||||||
AT91C_BASE_UDP->UDP_CSR[ 1 ] = ( unsigned portLONG ) 0x00;
|
AT91C_BASE_UDP->UDP_CSR[ 1 ] = ( unsigned long ) 0x00;
|
||||||
AT91C_BASE_UDP->UDP_GLBSTATE = 0;
|
AT91C_BASE_UDP->UDP_GLBSTATE = 0;
|
||||||
AT91C_BASE_UDP->UDP_FADDR = 0;
|
AT91C_BASE_UDP->UDP_FADDR = 0;
|
||||||
|
|
||||||
|
@ -1190,14 +1191,14 @@ volatile unsigned portLONG ulTemp;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
static void prvSendControlData( unsigned portCHAR *pucData, unsigned portSHORT usRequestedLength, unsigned portLONG ulLengthToSend, portLONG lSendingDescriptor )
|
static void prvSendControlData( unsigned char *pucData, unsigned short usRequestedLength, unsigned long ulLengthToSend, long lSendingDescriptor )
|
||||||
{
|
{
|
||||||
if( ( ( unsigned portLONG ) usRequestedLength < ulLengthToSend ) )
|
if( ( ( unsigned long ) usRequestedLength < ulLengthToSend ) )
|
||||||
{
|
{
|
||||||
/* Cap the data length to that requested. */
|
/* Cap the data length to that requested. */
|
||||||
ulLengthToSend = ( unsigned portSHORT ) usRequestedLength;
|
ulLengthToSend = ( unsigned short ) usRequestedLength;
|
||||||
}
|
}
|
||||||
else if( ( ulLengthToSend < ( unsigned portLONG ) usRequestedLength ) && lSendingDescriptor )
|
else if( ( ulLengthToSend < ( unsigned long ) usRequestedLength ) && lSendingDescriptor )
|
||||||
{
|
{
|
||||||
/* We are sending a descriptor. If the descriptor is an exact
|
/* We are sending a descriptor. If the descriptor is an exact
|
||||||
multiple of the FIFO length then it will have to be terminated
|
multiple of the FIFO length then it will have to be terminated
|
||||||
|
@ -1219,7 +1220,7 @@ static void prvSendControlData( unsigned portCHAR *pucData, unsigned portSHORT u
|
||||||
/* Reinitialise the buffer index so we start sending from the start of
|
/* Reinitialise the buffer index so we start sending from the start of
|
||||||
the data. */
|
the data. */
|
||||||
pxCharsForTx.ulTotalDataLength = ulLengthToSend;
|
pxCharsForTx.ulTotalDataLength = ulLengthToSend;
|
||||||
pxCharsForTx.ulNextCharIndex = ( unsigned portLONG ) 0;
|
pxCharsForTx.ulNextCharIndex = ( unsigned long ) 0;
|
||||||
|
|
||||||
/* Send the first 8 bytes now. The rest will get sent in response to
|
/* Send the first 8 bytes now. The rest will get sent in response to
|
||||||
TXCOMP interrupts. */
|
TXCOMP interrupts. */
|
||||||
|
@ -1229,7 +1230,7 @@ static void prvSendControlData( unsigned portCHAR *pucData, unsigned portSHORT u
|
||||||
|
|
||||||
static void prvSendNextSegment( void )
|
static void prvSendNextSegment( void )
|
||||||
{
|
{
|
||||||
volatile unsigned portLONG ulNextLength, ulStatus, ulLengthLeftToSend;
|
volatile unsigned long ulNextLength, ulStatus, ulLengthLeftToSend;
|
||||||
|
|
||||||
/* Is there any data to send? */
|
/* Is there any data to send? */
|
||||||
if( pxCharsForTx.ulTotalDataLength > pxCharsForTx.ulNextCharIndex )
|
if( pxCharsForTx.ulTotalDataLength > pxCharsForTx.ulNextCharIndex )
|
||||||
|
@ -1254,7 +1255,7 @@ volatile unsigned portLONG ulNextLength, ulStatus, ulLengthLeftToSend;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Write the data to the FIFO. */
|
/* Write the data to the FIFO. */
|
||||||
while( ulNextLength > ( unsigned portLONG ) 0 )
|
while( ulNextLength > ( unsigned long ) 0 )
|
||||||
{
|
{
|
||||||
AT91C_BASE_UDP->UDP_FDR[ usbEND_POINT_0 ] = pxCharsForTx.ucTxBuffer[ pxCharsForTx.ulNextCharIndex ];
|
AT91C_BASE_UDP->UDP_FDR[ usbEND_POINT_0 ] = pxCharsForTx.ucTxBuffer[ pxCharsForTx.ulNextCharIndex ];
|
||||||
|
|
||||||
|
@ -1266,7 +1267,7 @@ volatile unsigned portLONG ulNextLength, ulStatus, ulLengthLeftToSend;
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
{
|
{
|
||||||
ulStatus = AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ];
|
ulStatus = AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ];
|
||||||
usbCSR_SET_BIT( &ulStatus, ( ( unsigned portLONG ) 0x10 ) );
|
usbCSR_SET_BIT( &ulStatus, ( ( unsigned long ) 0x10 ) );
|
||||||
AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ] = ulStatus;
|
AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ] = ulStatus;
|
||||||
}
|
}
|
||||||
portEXIT_CRITICAL();
|
portEXIT_CRITICAL();
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -105,7 +106,7 @@
|
||||||
#define mainCHECK_TASK_LED ( 3 )
|
#define mainCHECK_TASK_LED ( 3 )
|
||||||
|
|
||||||
/* Constants for the ComTest tasks. */
|
/* Constants for the ComTest tasks. */
|
||||||
#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 115200 )
|
#define mainCOM_TEST_BAUD_RATE ( ( unsigned long ) 115200 )
|
||||||
#define mainCOM_TEST_LED ( 4 ) /* Off the board. */
|
#define mainCOM_TEST_LED ( 4 ) /* Off the board. */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -126,7 +127,7 @@ static void prvSetupHardware( void );
|
||||||
* Checks that all the demo application tasks are still executing without error
|
* Checks that all the demo application tasks are still executing without error
|
||||||
* - as described at the top of the file.
|
* - as described at the top of the file.
|
||||||
*/
|
*/
|
||||||
static portLONG prvCheckOtherTasksAreStillRunning( void );
|
static long prvCheckOtherTasksAreStillRunning( void );
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
@ -222,9 +223,9 @@ portTickType xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
static portLONG prvCheckOtherTasksAreStillRunning( void )
|
static long prvCheckOtherTasksAreStillRunning( void )
|
||||||
{
|
{
|
||||||
portLONG lReturn = ( portLONG ) pdPASS;
|
long lReturn = ( long ) pdPASS;
|
||||||
|
|
||||||
/* Check all the demo tasks (other than the flash tasks) to ensure
|
/* Check all the demo tasks (other than the flash tasks) to ensure
|
||||||
that they are all still running, and that none of them have detected
|
that they are all still running, and that none of them have detected
|
||||||
|
@ -232,32 +233,32 @@ portLONG lReturn = ( portLONG ) pdPASS;
|
||||||
|
|
||||||
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xArePollingQueuesStillRunning() != pdTRUE )
|
if( xArePollingQueuesStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreComTestTasksStillRunning() != pdTRUE )
|
if( xAreComTestTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return lReturn;
|
return lReturn;
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -73,8 +74,8 @@
|
||||||
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
||||||
#define serHANDLE ( ( xComPortHandle ) 1 )
|
#define serHANDLE ( ( xComPortHandle ) 1 )
|
||||||
#define serNO_BLOCK ( ( portTickType ) 0 )
|
#define serNO_BLOCK ( ( portTickType ) 0 )
|
||||||
#define serNO_TIMEGUARD ( ( unsigned portLONG ) 0 )
|
#define serNO_TIMEGUARD ( ( unsigned long ) 0 )
|
||||||
#define serNO_PERIPHERAL_B_SETUP ( ( unsigned portLONG ) 0 )
|
#define serNO_PERIPHERAL_B_SETUP ( ( unsigned long ) 0 )
|
||||||
|
|
||||||
|
|
||||||
/* Queues used to hold received characters, and characters waiting to be
|
/* Queues used to hold received characters, and characters waiting to be
|
||||||
|
@ -95,14 +96,14 @@ __arm void vSerialISR( void );
|
||||||
/*
|
/*
|
||||||
* See the serial2.h header file.
|
* See the serial2.h header file.
|
||||||
*/
|
*/
|
||||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||||
{
|
{
|
||||||
xComPortHandle xReturn = serHANDLE;
|
xComPortHandle xReturn = serHANDLE;
|
||||||
extern void ( vUART_ISR )( void );
|
extern void ( vUART_ISR )( void );
|
||||||
|
|
||||||
/* Create the queues used to hold Rx and Tx characters. */
|
/* Create the queues used to hold Rx and Tx characters. */
|
||||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
|
|
||||||
/* If the queues were created correctly then setup the serial port
|
/* If the queues were created correctly then setup the serial port
|
||||||
hardware. */
|
hardware. */
|
||||||
|
@ -113,7 +114,7 @@ extern void ( vUART_ISR )( void );
|
||||||
/* Enable the USART clock. */
|
/* Enable the USART clock. */
|
||||||
AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1 << AT91C_ID_US0 );
|
AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1 << AT91C_ID_US0 );
|
||||||
|
|
||||||
AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA, ( ( unsigned portLONG ) AT91C_PA5_RXD0 ) | ( ( unsigned portLONG ) AT91C_PA6_TXD0 ), serNO_PERIPHERAL_B_SETUP );
|
AT91F_PIO_CfgPeriph( AT91C_BASE_PIOA, ( ( unsigned long ) AT91C_PA5_RXD0 ) | ( ( unsigned long ) AT91C_PA6_TXD0 ), serNO_PERIPHERAL_B_SETUP );
|
||||||
|
|
||||||
/* Set the required protocol. */
|
/* Set the required protocol. */
|
||||||
AT91F_US_Configure( serCOM0, configCPU_CLOCK_HZ, AT91C_US_ASYNC_MODE, ulWantedBaud, serNO_TIMEGUARD );
|
AT91F_US_Configure( serCOM0, configCPU_CLOCK_HZ, AT91C_US_ASYNC_MODE, ulWantedBaud, serNO_TIMEGUARD );
|
||||||
|
@ -142,7 +143,7 @@ extern void ( vUART_ISR )( void );
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* The port handle is not required as this driver only supports one port. */
|
/* The port handle is not required as this driver only supports one port. */
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
@ -160,9 +161,9 @@ signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcR
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )
|
void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )
|
||||||
{
|
{
|
||||||
signed portCHAR *pxNext;
|
signed char *pxNext;
|
||||||
|
|
||||||
/* A couple of parameters that this port does not use. */
|
/* A couple of parameters that this port does not use. */
|
||||||
( void ) usStringLength;
|
( void ) usStringLength;
|
||||||
|
@ -175,7 +176,7 @@ signed portCHAR *pxNext;
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
|
||||||
/* Send each character in the string, one at a time. */
|
/* Send each character in the string, one at a time. */
|
||||||
pxNext = ( signed portCHAR * ) pcString;
|
pxNext = ( signed char * ) pcString;
|
||||||
while( *pxNext )
|
while( *pxNext )
|
||||||
{
|
{
|
||||||
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
||||||
|
@ -184,7 +185,7 @@ signed portCHAR *pxNext;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* Place the character in the queue of characters to be transmitted. */
|
/* Place the character in the queue of characters to be transmitted. */
|
||||||
if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )
|
if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )
|
||||||
|
@ -214,8 +215,8 @@ within serialISR.s79 which in turn calls this function. See the port
|
||||||
documentation on the FreeRTOS.org website for more information. */
|
documentation on the FreeRTOS.org website for more information. */
|
||||||
__arm void vSerialISR( void )
|
__arm void vSerialISR( void )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulStatus;
|
unsigned long ulStatus;
|
||||||
signed portCHAR cChar;
|
signed char cChar;
|
||||||
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
/* What caused the interrupt? */
|
/* What caused the interrupt? */
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -66,10 +67,10 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 0
|
#define configUSE_IDLE_HOOK 0
|
||||||
#define configUSE_TICK_HOOK 1
|
#define configUSE_TICK_HOOK 1
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 47923200 )
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 47923200 )
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 130 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 130 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 24 * 1024 ) )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 24 * 1024 ) )
|
||||||
#define configMAX_TASK_NAME_LEN ( 10 )
|
#define configMAX_TASK_NAME_LEN ( 10 )
|
||||||
#define configUSE_TRACE_FACILITY 1
|
#define configUSE_TRACE_FACILITY 1
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
#/*
|
#/*
|
||||||
# FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
# FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeRTOS distribution.
|
# This file is part of the FreeRTOS distribution.
|
||||||
#
|
#
|
||||||
# FreeRTOS is free software; you can redistribute it and/or modify it under
|
# 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
|
# 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 exception to the GPL is included to allow you to distribute a
|
# **NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
# combined work that includes FreeRTOS without being obliged to provide the
|
# combined work that includes FreeRTOS without being obliged to provide the
|
||||||
# source code for proprietary components outside of the FreeRTOS kernel.
|
# source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
# Alternative commercial license and support terms are also available upon
|
# Alternative commercial license and support terms are also available upon
|
||||||
# request. See the licensing section of http://www.FreeRTOS.org for full
|
# request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
# license details.
|
# license details.
|
||||||
#
|
#
|
||||||
# FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
# FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
# more details.
|
# more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License along
|
# You should have received a copy of the GNU General Public License along
|
||||||
# with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
# with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
# Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# ***************************************************************************
|
# ***************************************************************************
|
||||||
# * *
|
# * *
|
||||||
# * Looking for a quick start? Then check out the FreeRTOS eBook! *
|
# * The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
# * See http://www.FreeRTOS.org/Documentation for details *
|
# * small fee. Help yourself get started quickly while also helping the *
|
||||||
# * *
|
# * FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
# ***************************************************************************
|
# * *
|
||||||
|
# ***************************************************************************
|
||||||
#
|
#
|
||||||
# 1 tab == 4 spaces!
|
# 1 tab == 4 spaces!
|
||||||
#
|
#
|
||||||
# Please ensure to read the configuration and relevant port sections of the
|
# Please ensure to read the configuration and relevant port sections of the
|
||||||
# online documentation.
|
# online documentation.
|
||||||
#
|
#
|
||||||
# http://www.FreeRTOS.org - Documentation, latest information, license and
|
# http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
# contact details.
|
# contact details.
|
||||||
#
|
#
|
||||||
# http://www.SafeRTOS.com - A version that is certified for use in safety
|
# http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
# critical systems.
|
# critical systems.
|
||||||
#
|
#
|
||||||
# http://www.OpenRTOS.com - Commercial support, development, porting,
|
# http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
# licensing and training services.
|
# licensing and training services.
|
||||||
#*/
|
#*/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Scheduler includes. */
|
/* Scheduler includes. */
|
||||||
|
@ -58,7 +59,7 @@
|
||||||
|
|
||||||
#define partstNUM_LEDS ( 4 )
|
#define partstNUM_LEDS ( 4 )
|
||||||
#define partstALL_LEDS ( ulLED_Mask[ 0 ] | ulLED_Mask[ 1 ] | ulLED_Mask[ 2 ] | ulLED_Mask[ 3 ] )
|
#define partstALL_LEDS ( ulLED_Mask[ 0 ] | ulLED_Mask[ 1 ] | ulLED_Mask[ 2 ] | ulLED_Mask[ 3 ] )
|
||||||
const unsigned portLONG ulLED_Mask[ partstNUM_LEDS ]= { (1<<19), (1<<20), (1<<21), (1<<22) };
|
const unsigned long ulLED_Mask[ partstNUM_LEDS ]= { (1<<19), (1<<20), (1<<21), (1<<22) };
|
||||||
|
|
||||||
|
|
||||||
void vParTestInitialise( void )
|
void vParTestInitialise( void )
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -126,7 +127,7 @@ little odd. */
|
||||||
|
|
||||||
/* Misc application definitions. */
|
/* Misc application definitions. */
|
||||||
#define usbINTERRUPT_PRIORITY ( 3 )
|
#define usbINTERRUPT_PRIORITY ( 3 )
|
||||||
#define usbFIFO_LENGTH ( ( unsigned portLONG ) 8 )
|
#define usbFIFO_LENGTH ( ( unsigned long ) 8 )
|
||||||
#define usbXUP ( 1 )
|
#define usbXUP ( 1 )
|
||||||
#define usbXDOWN ( 2 )
|
#define usbXDOWN ( 2 )
|
||||||
#define usbYUP ( 3 )
|
#define usbYUP ( 3 )
|
||||||
|
@ -136,9 +137,9 @@ little odd. */
|
||||||
#define usbSHORTEST_DELAY ( ( portTickType ) 1 )
|
#define usbSHORTEST_DELAY ( ( portTickType ) 1 )
|
||||||
#define usbINIT_DELAY ( ( portTickType ) 1000 / portTICK_RATE_MS )
|
#define usbINIT_DELAY ( ( portTickType ) 1000 / portTICK_RATE_MS )
|
||||||
#define usbSHORT_DELAY ( ( portTickType ) 50 / portTICK_RATE_MS )
|
#define usbSHORT_DELAY ( ( portTickType ) 50 / portTICK_RATE_MS )
|
||||||
#define usbEND_POINT_RESET_MASK ( ( unsigned portLONG ) 0x0f )
|
#define usbEND_POINT_RESET_MASK ( ( unsigned long ) 0x0f )
|
||||||
#define usbDATA_INC ( ( portCHAR ) 5 )
|
#define usbDATA_INC ( ( char ) 5 )
|
||||||
#define usbEXPECTED_NUMBER_OF_BYTES ( ( unsigned portLONG ) 8 )
|
#define usbEXPECTED_NUMBER_OF_BYTES ( ( unsigned long ) 8 )
|
||||||
|
|
||||||
/* Control request types. */
|
/* Control request types. */
|
||||||
#define usbSTANDARD_DEVICE_REQUEST ( 0 )
|
#define usbSTANDARD_DEVICE_REQUEST ( 0 )
|
||||||
|
@ -149,11 +150,11 @@ little odd. */
|
||||||
/* Structure used to hold the received requests. */
|
/* Structure used to hold the received requests. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
unsigned portCHAR ucReqType;
|
unsigned char ucReqType;
|
||||||
unsigned portCHAR ucRequest;
|
unsigned char ucRequest;
|
||||||
unsigned portSHORT usValue;
|
unsigned short usValue;
|
||||||
unsigned portSHORT usIndex;
|
unsigned short usIndex;
|
||||||
unsigned portSHORT usLength;
|
unsigned short usLength;
|
||||||
} xUSB_REQUEST;
|
} xUSB_REQUEST;
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
|
@ -169,9 +170,9 @@ typedef enum
|
||||||
/* Structure used to control the data being sent to the host. */
|
/* Structure used to control the data being sent to the host. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
unsigned portCHAR ucTxBuffer[ usbMAX_TX_MESSAGE_SIZE ];
|
unsigned char ucTxBuffer[ usbMAX_TX_MESSAGE_SIZE ];
|
||||||
unsigned portLONG ulNextCharIndex;
|
unsigned long ulNextCharIndex;
|
||||||
unsigned portLONG ulTotalDataLength;
|
unsigned long ulTotalDataLength;
|
||||||
} xTX_MESSAGE;
|
} xTX_MESSAGE;
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
@ -244,7 +245,7 @@ static void prvHandleClassInterfaceRequest( xUSB_REQUEST *pxRequest );
|
||||||
* in response to TXCOMP interrupts until the entire buffer has been
|
* in response to TXCOMP interrupts until the entire buffer has been
|
||||||
* sent.
|
* sent.
|
||||||
*/
|
*/
|
||||||
static void prvSendControlData( unsigned portCHAR *pucData, unsigned portSHORT usRequestedLength, unsigned portLONG ulLengthLeftToSend, portLONG lSendingDescriptor );
|
static void prvSendControlData( unsigned char *pucData, unsigned short usRequestedLength, unsigned long ulLengthLeftToSend, long lSendingDescriptor );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Examine the Tx buffer to see if there is any more data to be transmitted.
|
* Examine the Tx buffer to see if there is any more data to be transmitted.
|
||||||
|
@ -291,7 +292,7 @@ static void vUSBDemoTask( void *pvParameters );
|
||||||
* Simple algorithm to ramp up the mouse cursor speed to make it easier to
|
* Simple algorithm to ramp up the mouse cursor speed to make it easier to
|
||||||
* use.
|
* use.
|
||||||
*/
|
*/
|
||||||
static void prvControlCursorSpeed( signed portCHAR *cVal, unsigned portLONG ulInput, unsigned portLONG ulSwitch1, unsigned portLONG ulSwitch2 );
|
static void prvControlCursorSpeed( signed char *cVal, unsigned long ulInput, unsigned long ulSwitch1, unsigned long ulSwitch2 );
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -307,14 +308,14 @@ These take the form:
|
||||||
Data
|
Data
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
const portCHAR pxLanguageStringDescriptor[] =
|
const char pxLanguageStringDescriptor[] =
|
||||||
{
|
{
|
||||||
4,
|
4,
|
||||||
usbDESCRIPTOR_TYPE_STRING,
|
usbDESCRIPTOR_TYPE_STRING,
|
||||||
0x09, 0x04
|
0x09, 0x04
|
||||||
};
|
};
|
||||||
|
|
||||||
const portCHAR pxManufacturerStringDescriptor[] =
|
const char pxManufacturerStringDescriptor[] =
|
||||||
{
|
{
|
||||||
18,
|
18,
|
||||||
usbDESCRIPTOR_TYPE_STRING,
|
usbDESCRIPTOR_TYPE_STRING,
|
||||||
|
@ -329,7 +330,7 @@ const portCHAR pxManufacturerStringDescriptor[] =
|
||||||
'S', 0x00
|
'S', 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
const portCHAR pxProductStringDescriptor[] =
|
const char pxProductStringDescriptor[] =
|
||||||
{
|
{
|
||||||
38,
|
38,
|
||||||
usbDESCRIPTOR_TYPE_STRING,
|
usbDESCRIPTOR_TYPE_STRING,
|
||||||
|
@ -354,7 +355,7 @@ const portCHAR pxProductStringDescriptor[] =
|
||||||
'e', 0x00
|
'e', 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
const portCHAR pxConfigurationStringDescriptor[] =
|
const char pxConfigurationStringDescriptor[] =
|
||||||
{
|
{
|
||||||
38,
|
38,
|
||||||
usbDESCRIPTOR_TYPE_STRING,
|
usbDESCRIPTOR_TYPE_STRING,
|
||||||
|
@ -379,7 +380,7 @@ const portCHAR pxConfigurationStringDescriptor[] =
|
||||||
'e', 0x00
|
'e', 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
const portCHAR pxInterfaceStringDescriptor[] =
|
const char pxInterfaceStringDescriptor[] =
|
||||||
{
|
{
|
||||||
30,
|
30,
|
||||||
usbDESCRIPTOR_TYPE_STRING,
|
usbDESCRIPTOR_TYPE_STRING,
|
||||||
|
@ -401,7 +402,7 @@ const portCHAR pxInterfaceStringDescriptor[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Enumeration descriptors. */
|
/* Enumeration descriptors. */
|
||||||
const portCHAR pxReportDescriptor[] =
|
const char pxReportDescriptor[] =
|
||||||
{
|
{
|
||||||
0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
|
0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
|
||||||
0x09, 0x02, /* USAGE (Mouse) */
|
0x09, 0x02, /* USAGE (Mouse) */
|
||||||
|
@ -496,8 +497,8 @@ const char pxConfigDescriptor[] = {
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/* File scope state variables. */
|
/* File scope state variables. */
|
||||||
static unsigned portCHAR ucUSBConfig = ( unsigned portCHAR ) 0;
|
static unsigned char ucUSBConfig = ( unsigned char ) 0;
|
||||||
static unsigned portLONG ulReceivedAddress = ( unsigned portLONG ) 0;
|
static unsigned long ulReceivedAddress = ( unsigned long ) 0;
|
||||||
static eDRIVER_STATE eDriverState = eNOTHING;
|
static eDRIVER_STATE eDriverState = eNOTHING;
|
||||||
|
|
||||||
/* Structure used to control the characters being sent to the host. */
|
/* Structure used to control the characters being sent to the host. */
|
||||||
|
@ -563,9 +564,9 @@ xISRStatus *pxMessage;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
static void prvControlCursorSpeed( signed portCHAR *cVal, unsigned portLONG ulInput, unsigned portLONG ulSwitch1, unsigned portLONG ulSwitch2 )
|
static void prvControlCursorSpeed( signed char *cVal, unsigned long ulInput, unsigned long ulSwitch1, unsigned long ulSwitch2 )
|
||||||
{
|
{
|
||||||
const portCHAR cSpeed = 20;
|
const char cSpeed = 20;
|
||||||
|
|
||||||
if( !( ulInput & ulSwitch1 ) )
|
if( !( ulInput & ulSwitch1 ) )
|
||||||
{
|
{
|
||||||
|
@ -609,8 +610,8 @@ const portCHAR cSpeed = 20;
|
||||||
static void prvTransmitSampleValues( void )
|
static void prvTransmitSampleValues( void )
|
||||||
{
|
{
|
||||||
/* Variables to hold dummy x, y and z joystick axis data. */
|
/* Variables to hold dummy x, y and z joystick axis data. */
|
||||||
static signed portCHAR x = 0, y = 0, z = 0;
|
static signed char x = 0, y = 0, z = 0;
|
||||||
unsigned portLONG ulStatus;
|
unsigned long ulStatus;
|
||||||
|
|
||||||
ulStatus = AT91C_BASE_PIOA->PIO_PDSR;
|
ulStatus = AT91C_BASE_PIOA->PIO_PDSR;
|
||||||
|
|
||||||
|
@ -642,7 +643,7 @@ unsigned portLONG ulStatus;
|
||||||
|
|
||||||
static void prvUSBTransmitNull( void )
|
static void prvUSBTransmitNull( void )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulStatus;
|
unsigned long ulStatus;
|
||||||
|
|
||||||
/* Wait until the FIFO is free - even though we are not going to use it.
|
/* Wait until the FIFO is free - even though we are not going to use it.
|
||||||
THERE IS NO TIMEOUT HERE! */
|
THERE IS NO TIMEOUT HERE! */
|
||||||
|
@ -669,7 +670,7 @@ unsigned portLONG ulStatus;
|
||||||
|
|
||||||
static void prvSendStall( void )
|
static void prvSendStall( void )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulStatus;
|
unsigned long ulStatus;
|
||||||
|
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
{
|
{
|
||||||
|
@ -684,13 +685,13 @@ unsigned portLONG ulStatus;
|
||||||
|
|
||||||
static void prvResetEndPoints( void )
|
static void prvResetEndPoints( void )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulTemp;
|
unsigned long ulTemp;
|
||||||
|
|
||||||
eDriverState = eJUST_RESET;
|
eDriverState = eJUST_RESET;
|
||||||
|
|
||||||
/* Reset all the end points. */
|
/* Reset all the end points. */
|
||||||
AT91C_BASE_UDP->UDP_RSTEP = usbEND_POINT_RESET_MASK;
|
AT91C_BASE_UDP->UDP_RSTEP = usbEND_POINT_RESET_MASK;
|
||||||
AT91C_BASE_UDP->UDP_RSTEP = ( unsigned portLONG ) 0x00;
|
AT91C_BASE_UDP->UDP_RSTEP = ( unsigned long ) 0x00;
|
||||||
|
|
||||||
/* Enable data to be sent and received. */
|
/* Enable data to be sent and received. */
|
||||||
AT91C_BASE_UDP->UDP_FADDR = AT91C_UDP_FEN;
|
AT91C_BASE_UDP->UDP_FADDR = AT91C_UDP_FEN;
|
||||||
|
@ -699,7 +700,7 @@ unsigned portLONG ulTemp;
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
{
|
{
|
||||||
ulTemp = AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ];
|
ulTemp = AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ];
|
||||||
usbCSR_SET_BIT( &ulTemp, ( ( unsigned portLONG ) ( AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_CTRL ) ) );
|
usbCSR_SET_BIT( &ulTemp, ( ( unsigned long ) ( AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_CTRL ) ) );
|
||||||
AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ] = ulTemp;
|
AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ] = ulTemp;
|
||||||
AT91C_BASE_UDP->UDP_IER = AT91C_UDP_EPINT0;
|
AT91C_BASE_UDP->UDP_IER = AT91C_UDP_EPINT0;
|
||||||
}
|
}
|
||||||
|
@ -731,7 +732,7 @@ static void prvProcessEndPoint0Interrupt( xISRStatus *pxMessage )
|
||||||
/* Read the end point for data transfer. */
|
/* Read the end point for data transfer. */
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
{
|
{
|
||||||
unsigned portLONG ulTemp;
|
unsigned long ulTemp;
|
||||||
|
|
||||||
ulTemp = AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_1 ];
|
ulTemp = AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_1 ];
|
||||||
usbCSR_SET_BIT( &ulTemp, AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_INT_IN );
|
usbCSR_SET_BIT( &ulTemp, AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_INT_IN );
|
||||||
|
@ -746,7 +747,7 @@ static void prvProcessEndPoint0Interrupt( xISRStatus *pxMessage )
|
||||||
{
|
{
|
||||||
/* We sent an acknowledgement of a SET_ADDRESS request. Move
|
/* We sent an acknowledgement of a SET_ADDRESS request. Move
|
||||||
to the addressed state. */
|
to the addressed state. */
|
||||||
if( ulReceivedAddress != ( unsigned portLONG ) 0 )
|
if( ulReceivedAddress != ( unsigned long ) 0 )
|
||||||
{
|
{
|
||||||
AT91C_BASE_UDP->UDP_GLBSTATE = AT91C_UDP_FADDEN;
|
AT91C_BASE_UDP->UDP_GLBSTATE = AT91C_UDP_FADDEN;
|
||||||
}
|
}
|
||||||
|
@ -769,8 +770,8 @@ static void prvProcessEndPoint0Interrupt( xISRStatus *pxMessage )
|
||||||
if( pxMessage->ulCSR0 & AT91C_UDP_RXSETUP )
|
if( pxMessage->ulCSR0 & AT91C_UDP_RXSETUP )
|
||||||
{
|
{
|
||||||
xUSB_REQUEST xRequest;
|
xUSB_REQUEST xRequest;
|
||||||
unsigned portCHAR ucRequest;
|
unsigned char ucRequest;
|
||||||
unsigned portLONG ulRxBytes;
|
unsigned long ulRxBytes;
|
||||||
|
|
||||||
/* A data packet is available. */
|
/* A data packet is available. */
|
||||||
ulRxBytes = pxMessage->ulCSR0 >> 16;
|
ulRxBytes = pxMessage->ulCSR0 >> 16;
|
||||||
|
@ -840,11 +841,11 @@ static void prvGetStandardDeviceDescriptor( xUSB_REQUEST *pxRequest )
|
||||||
switch( ( pxRequest->usValue & 0xff00 ) >> 8 )
|
switch( ( pxRequest->usValue & 0xff00 ) >> 8 )
|
||||||
{
|
{
|
||||||
case usbDESCRIPTOR_TYPE_DEVICE:
|
case usbDESCRIPTOR_TYPE_DEVICE:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &pxDeviceDescriptor, pxRequest->usLength, sizeof( pxDeviceDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &pxDeviceDescriptor, pxRequest->usLength, sizeof( pxDeviceDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbDESCRIPTOR_TYPE_CONFIGURATION:
|
case usbDESCRIPTOR_TYPE_CONFIGURATION:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &( pxConfigDescriptor ), pxRequest->usLength, sizeof( pxConfigDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &( pxConfigDescriptor ), pxRequest->usLength, sizeof( pxConfigDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbDESCRIPTOR_TYPE_STRING:
|
case usbDESCRIPTOR_TYPE_STRING:
|
||||||
|
@ -853,23 +854,23 @@ static void prvGetStandardDeviceDescriptor( xUSB_REQUEST *pxRequest )
|
||||||
switch( pxRequest->usValue & 0xff )
|
switch( pxRequest->usValue & 0xff )
|
||||||
{
|
{
|
||||||
case usbLANGUAGE_STRING:
|
case usbLANGUAGE_STRING:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &pxLanguageStringDescriptor, pxRequest->usLength, sizeof(pxLanguageStringDescriptor), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &pxLanguageStringDescriptor, pxRequest->usLength, sizeof(pxLanguageStringDescriptor), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbMANUFACTURER_STRING:
|
case usbMANUFACTURER_STRING:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &pxManufacturerStringDescriptor, pxRequest->usLength, sizeof( pxManufacturerStringDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &pxManufacturerStringDescriptor, pxRequest->usLength, sizeof( pxManufacturerStringDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbPRODUCT_STRING:
|
case usbPRODUCT_STRING:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &pxProductStringDescriptor, pxRequest->usLength, sizeof( pxProductStringDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &pxProductStringDescriptor, pxRequest->usLength, sizeof( pxProductStringDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbCONFIGURATION_STRING:
|
case usbCONFIGURATION_STRING:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &pxConfigurationStringDescriptor, pxRequest->usLength, sizeof( pxConfigurationStringDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &pxConfigurationStringDescriptor, pxRequest->usLength, sizeof( pxConfigurationStringDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbINTERFACE_STRING:
|
case usbINTERFACE_STRING:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &pxInterfaceStringDescriptor, pxRequest->usLength, sizeof( pxInterfaceStringDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) &pxInterfaceStringDescriptor, pxRequest->usLength, sizeof( pxInterfaceStringDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -890,13 +891,13 @@ static void prvGetStandardDeviceDescriptor( xUSB_REQUEST *pxRequest )
|
||||||
|
|
||||||
static void prvHandleStandardDeviceRequest( xUSB_REQUEST *pxRequest )
|
static void prvHandleStandardDeviceRequest( xUSB_REQUEST *pxRequest )
|
||||||
{
|
{
|
||||||
unsigned portSHORT usStatus = 0;
|
unsigned short usStatus = 0;
|
||||||
|
|
||||||
switch( pxRequest->ucRequest )
|
switch( pxRequest->ucRequest )
|
||||||
{
|
{
|
||||||
case usbGET_STATUS_REQUEST:
|
case usbGET_STATUS_REQUEST:
|
||||||
/* Just send two byte dummy status. */
|
/* Just send two byte dummy status. */
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &usStatus, sizeof( usStatus ), sizeof( usStatus ), pdFALSE );
|
prvSendControlData( ( unsigned char * ) &usStatus, sizeof( usStatus ), sizeof( usStatus ), pdFALSE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbGET_DESCRIPTOR_REQUEST:
|
case usbGET_DESCRIPTOR_REQUEST:
|
||||||
|
@ -906,7 +907,7 @@ unsigned portSHORT usStatus = 0;
|
||||||
|
|
||||||
case usbGET_CONFIGURATION_REQUEST:
|
case usbGET_CONFIGURATION_REQUEST:
|
||||||
/* Send selected device configuration */
|
/* Send selected device configuration */
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &ucUSBConfig, sizeof( ucUSBConfig ), sizeof( ucUSBConfig ), pdFALSE );
|
prvSendControlData( ( unsigned char * ) &ucUSBConfig, sizeof( ucUSBConfig ), sizeof( ucUSBConfig ), pdFALSE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbSET_FEATURE_REQUEST:
|
case usbSET_FEATURE_REQUEST:
|
||||||
|
@ -921,7 +922,7 @@ unsigned portSHORT usStatus = 0;
|
||||||
address and set our state so we know we have received the address. */
|
address and set our state so we know we have received the address. */
|
||||||
prvUSBTransmitNull();
|
prvUSBTransmitNull();
|
||||||
eDriverState = eJUST_GOT_ADDRESS;
|
eDriverState = eJUST_GOT_ADDRESS;
|
||||||
ulReceivedAddress = ( unsigned portLONG ) pxRequest->usValue;
|
ulReceivedAddress = ( unsigned long ) pxRequest->usValue;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbSET_CONFIGURATION_REQUEST:
|
case usbSET_CONFIGURATION_REQUEST:
|
||||||
|
@ -930,7 +931,7 @@ unsigned portSHORT usStatus = 0;
|
||||||
we cannot actually move to the configured state until we get a
|
we cannot actually move to the configured state until we get a
|
||||||
TXCOMP interrupt from this NULL packet. Therefore we just remember the
|
TXCOMP interrupt from this NULL packet. Therefore we just remember the
|
||||||
config and set our state so we know we have received the go ahead. */
|
config and set our state so we know we have received the go ahead. */
|
||||||
ucUSBConfig = ( unsigned portCHAR ) ( pxRequest->usValue & 0xff );
|
ucUSBConfig = ( unsigned char ) ( pxRequest->usValue & 0xff );
|
||||||
eDriverState = eJUST_GOT_CONFIG;
|
eDriverState = eJUST_GOT_CONFIG;
|
||||||
prvUSBTransmitNull();
|
prvUSBTransmitNull();
|
||||||
break;
|
break;
|
||||||
|
@ -968,10 +969,10 @@ static void prvHandleClassInterfaceRequest( xUSB_REQUEST *pxRequest )
|
||||||
|
|
||||||
static void prvGetStandardInterfaceDescriptor( xUSB_REQUEST *pxRequest )
|
static void prvGetStandardInterfaceDescriptor( xUSB_REQUEST *pxRequest )
|
||||||
{
|
{
|
||||||
switch( ( pxRequest->usValue & ( unsigned portSHORT ) 0xff00 ) >> 8 )
|
switch( ( pxRequest->usValue & ( unsigned short ) 0xff00 ) >> 8 )
|
||||||
{
|
{
|
||||||
case usbHID_REPORT_DESCRIPTOR:
|
case usbHID_REPORT_DESCRIPTOR:
|
||||||
prvSendControlData( ( unsigned portCHAR * ) pxReportDescriptor, pxRequest->usLength, sizeof( pxReportDescriptor ), pdTRUE );
|
prvSendControlData( ( unsigned char * ) pxReportDescriptor, pxRequest->usLength, sizeof( pxReportDescriptor ), pdTRUE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -985,13 +986,13 @@ static void prvGetStandardInterfaceDescriptor( xUSB_REQUEST *pxRequest )
|
||||||
|
|
||||||
static void prvHandleStandardInterfaceRequest( xUSB_REQUEST *pxRequest )
|
static void prvHandleStandardInterfaceRequest( xUSB_REQUEST *pxRequest )
|
||||||
{
|
{
|
||||||
unsigned portSHORT usStatus = 0;
|
unsigned short usStatus = 0;
|
||||||
|
|
||||||
switch( pxRequest->ucRequest )
|
switch( pxRequest->ucRequest )
|
||||||
{
|
{
|
||||||
case usbGET_STATUS_REQUEST:
|
case usbGET_STATUS_REQUEST:
|
||||||
/* Send dummy 2 bytes. */
|
/* Send dummy 2 bytes. */
|
||||||
prvSendControlData( ( unsigned portCHAR * ) &usStatus, sizeof( usStatus ), sizeof( usStatus ), pdFALSE );
|
prvSendControlData( ( unsigned char * ) &usStatus, sizeof( usStatus ), sizeof( usStatus ), pdFALSE );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case usbGET_DESCRIPTOR_REQUEST:
|
case usbGET_DESCRIPTOR_REQUEST:
|
||||||
|
@ -1028,11 +1029,11 @@ static void prvHandleStandardEndPointRequest( xUSB_REQUEST *pxRequest )
|
||||||
|
|
||||||
static void vInitUSBInterface( void )
|
static void vInitUSBInterface( void )
|
||||||
{
|
{
|
||||||
volatile unsigned portLONG ulTemp;
|
volatile unsigned long ulTemp;
|
||||||
|
|
||||||
/* Initialise a few state variables. */
|
/* Initialise a few state variables. */
|
||||||
pxCharsForTx.ulNextCharIndex = ( unsigned portLONG ) 0;
|
pxCharsForTx.ulNextCharIndex = ( unsigned long ) 0;
|
||||||
ucUSBConfig = ( unsigned portCHAR ) 0;
|
ucUSBConfig = ( unsigned char ) 0;
|
||||||
eDriverState = eNOTHING;
|
eDriverState = eNOTHING;
|
||||||
|
|
||||||
/* HARDWARE SETUP */
|
/* HARDWARE SETUP */
|
||||||
|
@ -1056,10 +1057,10 @@ volatile unsigned portLONG ulTemp;
|
||||||
/* When using the USB debugger the peripheral registers do not always get
|
/* When using the USB debugger the peripheral registers do not always get
|
||||||
set to the correct default values. To make sure set the relevant registers
|
set to the correct default values. To make sure set the relevant registers
|
||||||
manually here. */
|
manually here. */
|
||||||
AT91C_BASE_UDP->UDP_IDR = ( unsigned portLONG ) 0xffffffff;
|
AT91C_BASE_UDP->UDP_IDR = ( unsigned long ) 0xffffffff;
|
||||||
AT91C_BASE_UDP->UDP_ICR = ( unsigned portLONG ) 0xffffffff;
|
AT91C_BASE_UDP->UDP_ICR = ( unsigned long ) 0xffffffff;
|
||||||
AT91C_BASE_UDP->UDP_CSR[ 0 ] = ( unsigned portLONG ) 0x00;
|
AT91C_BASE_UDP->UDP_CSR[ 0 ] = ( unsigned long ) 0x00;
|
||||||
AT91C_BASE_UDP->UDP_CSR[ 1 ] = ( unsigned portLONG ) 0x00;
|
AT91C_BASE_UDP->UDP_CSR[ 1 ] = ( unsigned long ) 0x00;
|
||||||
AT91C_BASE_UDP->UDP_GLBSTATE = 0;
|
AT91C_BASE_UDP->UDP_GLBSTATE = 0;
|
||||||
AT91C_BASE_UDP->UDP_FADDR = 0;
|
AT91C_BASE_UDP->UDP_FADDR = 0;
|
||||||
|
|
||||||
|
@ -1077,14 +1078,14 @@ volatile unsigned portLONG ulTemp;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
static void prvSendControlData( unsigned portCHAR *pucData, unsigned portSHORT usRequestedLength, unsigned portLONG ulLengthToSend, portLONG lSendingDescriptor )
|
static void prvSendControlData( unsigned char *pucData, unsigned short usRequestedLength, unsigned long ulLengthToSend, long lSendingDescriptor )
|
||||||
{
|
{
|
||||||
if( ( ( unsigned portLONG ) usRequestedLength < ulLengthToSend ) )
|
if( ( ( unsigned long ) usRequestedLength < ulLengthToSend ) )
|
||||||
{
|
{
|
||||||
/* Cap the data length to that requested. */
|
/* Cap the data length to that requested. */
|
||||||
ulLengthToSend = ( unsigned portSHORT ) usRequestedLength;
|
ulLengthToSend = ( unsigned short ) usRequestedLength;
|
||||||
}
|
}
|
||||||
else if( ( ulLengthToSend < ( unsigned portLONG ) usRequestedLength ) && lSendingDescriptor )
|
else if( ( ulLengthToSend < ( unsigned long ) usRequestedLength ) && lSendingDescriptor )
|
||||||
{
|
{
|
||||||
/* We are sending a descriptor. If the descriptor is an exact
|
/* We are sending a descriptor. If the descriptor is an exact
|
||||||
multiple of the FIFO length then it will have to be terminated
|
multiple of the FIFO length then it will have to be terminated
|
||||||
|
@ -1106,7 +1107,7 @@ static void prvSendControlData( unsigned portCHAR *pucData, unsigned portSHORT u
|
||||||
/* Reinitialise the buffer index so we start sending from the start of
|
/* Reinitialise the buffer index so we start sending from the start of
|
||||||
the data. */
|
the data. */
|
||||||
pxCharsForTx.ulTotalDataLength = ulLengthToSend;
|
pxCharsForTx.ulTotalDataLength = ulLengthToSend;
|
||||||
pxCharsForTx.ulNextCharIndex = ( unsigned portLONG ) 0;
|
pxCharsForTx.ulNextCharIndex = ( unsigned long ) 0;
|
||||||
|
|
||||||
/* Send the first 8 bytes now. The rest will get sent in response to
|
/* Send the first 8 bytes now. The rest will get sent in response to
|
||||||
TXCOMP interrupts. */
|
TXCOMP interrupts. */
|
||||||
|
@ -1116,7 +1117,7 @@ static void prvSendControlData( unsigned portCHAR *pucData, unsigned portSHORT u
|
||||||
|
|
||||||
static void prvSendNextSegment( void )
|
static void prvSendNextSegment( void )
|
||||||
{
|
{
|
||||||
volatile unsigned portLONG ulNextLength, ulStatus, ulLengthLeftToSend;
|
volatile unsigned long ulNextLength, ulStatus, ulLengthLeftToSend;
|
||||||
|
|
||||||
/* Is there any data to send? */
|
/* Is there any data to send? */
|
||||||
if( pxCharsForTx.ulTotalDataLength > pxCharsForTx.ulNextCharIndex )
|
if( pxCharsForTx.ulTotalDataLength > pxCharsForTx.ulNextCharIndex )
|
||||||
|
@ -1141,7 +1142,7 @@ volatile unsigned portLONG ulNextLength, ulStatus, ulLengthLeftToSend;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Write the data to the FIFO. */
|
/* Write the data to the FIFO. */
|
||||||
while( ulNextLength > ( unsigned portLONG ) 0 )
|
while( ulNextLength > ( unsigned long ) 0 )
|
||||||
{
|
{
|
||||||
AT91C_BASE_UDP->UDP_FDR[ usbEND_POINT_0 ] = pxCharsForTx.ucTxBuffer[ pxCharsForTx.ulNextCharIndex ];
|
AT91C_BASE_UDP->UDP_FDR[ usbEND_POINT_0 ] = pxCharsForTx.ucTxBuffer[ pxCharsForTx.ulNextCharIndex ];
|
||||||
|
|
||||||
|
@ -1153,7 +1154,7 @@ volatile unsigned portLONG ulNextLength, ulStatus, ulLengthLeftToSend;
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
{
|
{
|
||||||
ulStatus = AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ];
|
ulStatus = AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ];
|
||||||
usbCSR_SET_BIT( &ulStatus, ( ( unsigned portLONG ) 0x10 ) );
|
usbCSR_SET_BIT( &ulStatus, ( ( unsigned long ) 0x10 ) );
|
||||||
AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ] = ulStatus;
|
AT91C_BASE_UDP->UDP_CSR[ usbEND_POINT_0 ] = ulStatus;
|
||||||
}
|
}
|
||||||
portEXIT_CRITICAL();
|
portEXIT_CRITICAL();
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef USB_DEMO_H
|
#ifndef USB_DEMO_H
|
||||||
|
@ -54,15 +55,15 @@
|
||||||
#define usbQUEUE_LENGTH ( 0x3 ) /* Must have all bits set! */
|
#define usbQUEUE_LENGTH ( 0x3 ) /* Must have all bits set! */
|
||||||
#define usbEND_POINT_0 ( 0 )
|
#define usbEND_POINT_0 ( 0 )
|
||||||
#define usbEND_POINT_1 ( 1 )
|
#define usbEND_POINT_1 ( 1 )
|
||||||
#define usbRX_COUNT_MASK ( ( unsigned portLONG ) 0x7ff )
|
#define usbRX_COUNT_MASK ( ( unsigned long ) 0x7ff )
|
||||||
#define AT91C_UDP_STALLSENT AT91C_UDP_ISOERROR
|
#define AT91C_UDP_STALLSENT AT91C_UDP_ISOERROR
|
||||||
|
|
||||||
/* Structure used to take a snapshot of the USB status from within the ISR. */
|
/* Structure used to take a snapshot of the USB status from within the ISR. */
|
||||||
typedef struct X_ISR_STATUS
|
typedef struct X_ISR_STATUS
|
||||||
{
|
{
|
||||||
unsigned portLONG ulISR;
|
unsigned long ulISR;
|
||||||
unsigned portLONG ulCSR0;
|
unsigned long ulCSR0;
|
||||||
unsigned portCHAR ucFifoData[ 8 ];
|
unsigned char ucFifoData[ 8 ];
|
||||||
} xISRStatus;
|
} xISRStatus;
|
||||||
|
|
||||||
/* Macros to manipulate the control and status registers. These registers
|
/* Macros to manipulate the control and status registers. These registers
|
||||||
|
@ -75,14 +76,14 @@ unchanged by writing with a 1. */
|
||||||
/* Set TXCOMP, RX_DATA_BK0, RXSETUP, */ \
|
/* Set TXCOMP, RX_DATA_BK0, RXSETUP, */ \
|
||||||
/* STALLSENT and RX_DATA_BK1 to 1 so the */ \
|
/* STALLSENT and RX_DATA_BK1 to 1 so the */ \
|
||||||
/* write has no effect. */ \
|
/* write has no effect. */ \
|
||||||
( * ( ( unsigned portLONG * ) pulValueNow ) ) |= ( unsigned portLONG ) 0x4f; \
|
( * ( ( unsigned long * ) pulValueNow ) ) |= ( unsigned long ) 0x4f; \
|
||||||
\
|
\
|
||||||
/* Clear the FORCE_STALL and TXPKTRDY bits */ \
|
/* Clear the FORCE_STALL and TXPKTRDY bits */ \
|
||||||
/* so the write has no effect. */ \
|
/* so the write has no effect. */ \
|
||||||
( * ( ( unsigned portLONG * ) pulValueNow ) ) &= ( unsigned portLONG ) 0xffffffcf; \
|
( * ( ( unsigned long * ) pulValueNow ) ) &= ( unsigned long ) 0xffffffcf; \
|
||||||
\
|
\
|
||||||
/* Set whichever bit we want set. */ \
|
/* Set whichever bit we want set. */ \
|
||||||
( * ( ( unsigned portLONG * ) pulValueNow ) ) |= ( ulBit ); \
|
( * ( ( unsigned long * ) pulValueNow ) ) |= ( ulBit ); \
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Scheduler includes. */
|
/* Scheduler includes. */
|
||||||
|
@ -60,14 +61,14 @@
|
||||||
/* Set TXCOMP, RX_DATA_BK0, RXSETUP, */ \
|
/* Set TXCOMP, RX_DATA_BK0, RXSETUP, */ \
|
||||||
/* STALLSENT and RX_DATA_BK1 to 1 so the */ \
|
/* STALLSENT and RX_DATA_BK1 to 1 so the */ \
|
||||||
/* write has no effect. */ \
|
/* write has no effect. */ \
|
||||||
( * ( ( unsigned portLONG * ) pulValueNow ) ) |= ( unsigned portLONG ) 0x4f; \
|
( * ( ( unsigned long * ) pulValueNow ) ) |= ( unsigned long ) 0x4f; \
|
||||||
\
|
\
|
||||||
/* Clear the FORCE_STALL and TXPKTRDY bits */ \
|
/* Clear the FORCE_STALL and TXPKTRDY bits */ \
|
||||||
/* so the write has no effect. */ \
|
/* so the write has no effect. */ \
|
||||||
( * ( ( unsigned portLONG * ) pulValueNow ) ) &= ( unsigned portLONG ) 0xffffffcf; \
|
( * ( ( unsigned long * ) pulValueNow ) ) &= ( unsigned long ) 0xffffffcf; \
|
||||||
\
|
\
|
||||||
/* Clear whichever bit we want clear. */ \
|
/* Clear whichever bit we want clear. */ \
|
||||||
( * ( ( unsigned portLONG * ) pulValueNow ) ) &= ( ~ulBit ); \
|
( * ( ( unsigned long * ) pulValueNow ) ) &= ( ~ulBit ); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -98,9 +99,9 @@ extern xQueueHandle xUSBInterruptQueue;
|
||||||
void vUSB_ISR_Handler( void )
|
void vUSB_ISR_Handler( void )
|
||||||
{
|
{
|
||||||
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
static volatile unsigned portLONG ulNextMessage = 0;
|
static volatile unsigned long ulNextMessage = 0;
|
||||||
xISRStatus *pxMessage;
|
xISRStatus *pxMessage;
|
||||||
unsigned portLONG ulTemp, ulRxBytes;
|
unsigned long ulTemp, ulRxBytes;
|
||||||
|
|
||||||
/* To reduce the amount of time spent in this interrupt it would be
|
/* To reduce the amount of time spent in this interrupt it would be
|
||||||
possible to defer the majority of this processing to an 'interrupt task',
|
possible to defer the majority of this processing to an 'interrupt task',
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -181,15 +182,15 @@ static void prvSetupHardware( void )
|
||||||
|
|
||||||
void vApplicationTickHook( void )
|
void vApplicationTickHook( void )
|
||||||
{
|
{
|
||||||
static unsigned portLONG ulCallCount = 0, ulErrorFound = pdFALSE;
|
static unsigned long ulCallCount = 0, ulErrorFound = pdFALSE;
|
||||||
|
|
||||||
/* The rate at which LED D4 will toggle if an error has been found in one or
|
/* The rate at which LED D4 will toggle if an error has been found in one or
|
||||||
more of the standard demo tasks. */
|
more of the standard demo tasks. */
|
||||||
const unsigned portLONG ulErrorFlashRate = 500 / portTICK_RATE_MS;
|
const unsigned long ulErrorFlashRate = 500 / portTICK_RATE_MS;
|
||||||
|
|
||||||
/* The rate at which LED D4 will toggle if no errors have been found in any
|
/* The rate at which LED D4 will toggle if no errors have been found in any
|
||||||
of the standard demo tasks. */
|
of the standard demo tasks. */
|
||||||
const unsigned portLONG ulNoErrorCheckRate = 5000 / portTICK_RATE_MS;
|
const unsigned long ulNoErrorCheckRate = 5000 / portTICK_RATE_MS;
|
||||||
|
|
||||||
ulCallCount++;
|
ulCallCount++;
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
|
@ -68,7 +69,7 @@ void vPassEMACSemaphore( xSemaphoreHandle xSemaphore )
|
||||||
|
|
||||||
void vEMACISR_Handler( void )
|
void vEMACISR_Handler( void )
|
||||||
{
|
{
|
||||||
volatile unsigned portLONG ulIntStatus, ulRxStatus;
|
volatile unsigned long ulIntStatus, ulRxStatus;
|
||||||
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
ulIntStatus = AT91C_BASE_EMAC->EMAC_ISR;
|
ulIntStatus = AT91C_BASE_EMAC->EMAC_ISR;
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Standard includes. */
|
/* Standard includes. */
|
||||||
|
@ -72,15 +73,15 @@ to use an MII interface. */
|
||||||
/* The buffer addresses written into the descriptors must be aligned so the
|
/* The buffer addresses written into the descriptors must be aligned so the
|
||||||
last few bits are zero. These bits have special meaning for the EMAC
|
last few bits are zero. These bits have special meaning for the EMAC
|
||||||
peripheral and cannot be used as part of the address. */
|
peripheral and cannot be used as part of the address. */
|
||||||
#define emacADDRESS_MASK ( ( unsigned portLONG ) 0xFFFFFFFC )
|
#define emacADDRESS_MASK ( ( unsigned long ) 0xFFFFFFFC )
|
||||||
|
|
||||||
/* Bit used within the address stored in the descriptor to mark the last
|
/* Bit used within the address stored in the descriptor to mark the last
|
||||||
descriptor in the array. */
|
descriptor in the array. */
|
||||||
#define emacRX_WRAP_BIT ( ( unsigned portLONG ) 0x02 )
|
#define emacRX_WRAP_BIT ( ( unsigned long ) 0x02 )
|
||||||
|
|
||||||
/* Bit used within the Tx descriptor status to indicate whether the
|
/* Bit used within the Tx descriptor status to indicate whether the
|
||||||
descriptor is under the control of the EMAC or the software. */
|
descriptor is under the control of the EMAC or the software. */
|
||||||
#define emacTX_BUF_USED ( ( unsigned portLONG ) 0x80000000 )
|
#define emacTX_BUF_USED ( ( unsigned long ) 0x80000000 )
|
||||||
|
|
||||||
/* A short delay is used to wait for a buffer to become available, should
|
/* A short delay is used to wait for a buffer to become available, should
|
||||||
one not be immediately available when trying to transmit a frame. */
|
one not be immediately available when trying to transmit a frame. */
|
||||||
|
@ -92,31 +93,31 @@ one not be immediately available when trying to transmit a frame. */
|
||||||
#define emacNO_DELAY ( 0 )
|
#define emacNO_DELAY ( 0 )
|
||||||
#define emacTOTAL_FRAME_HEADER_SIZE ( 54 )
|
#define emacTOTAL_FRAME_HEADER_SIZE ( 54 )
|
||||||
#define emacPHY_INIT_DELAY ( 5000 / portTICK_RATE_MS )
|
#define emacPHY_INIT_DELAY ( 5000 / portTICK_RATE_MS )
|
||||||
#define emacRESET_KEY ( ( unsigned portLONG ) 0xA5000000 )
|
#define emacRESET_KEY ( ( unsigned long ) 0xA5000000 )
|
||||||
#define emacRESET_LENGTH ( ( unsigned portLONG ) ( 0x01 << 8 ) )
|
#define emacRESET_LENGTH ( ( unsigned long ) ( 0x01 << 8 ) )
|
||||||
|
|
||||||
/* The Atmel header file only defines the TX frame length mask. */
|
/* The Atmel header file only defines the TX frame length mask. */
|
||||||
#define emacRX_LENGTH_FRAME ( 0xfff )
|
#define emacRX_LENGTH_FRAME ( 0xfff )
|
||||||
|
|
||||||
/* Peripheral setup for the EMAC. */
|
/* Peripheral setup for the EMAC. */
|
||||||
#define emacPERIPHERAL_A_SETUP ( ( unsigned portLONG ) AT91C_PB2_ETX0 ) | \
|
#define emacPERIPHERAL_A_SETUP ( ( unsigned long ) AT91C_PB2_ETX0 ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB12_ETXER ) | \
|
( ( unsigned long ) AT91C_PB12_ETXER ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB16_ECOL ) | \
|
( ( unsigned long ) AT91C_PB16_ECOL ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB11_ETX3 ) | \
|
( ( unsigned long ) AT91C_PB11_ETX3 ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB6_ERX1 ) | \
|
( ( unsigned long ) AT91C_PB6_ERX1 ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB15_ERXDV ) | \
|
( ( unsigned long ) AT91C_PB15_ERXDV ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB13_ERX2 ) | \
|
( ( unsigned long ) AT91C_PB13_ERX2 ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB3_ETX1 ) | \
|
( ( unsigned long ) AT91C_PB3_ETX1 ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB8_EMDC ) | \
|
( ( unsigned long ) AT91C_PB8_EMDC ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB5_ERX0 ) | \
|
( ( unsigned long ) AT91C_PB5_ERX0 ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB14_ERX3 ) | \
|
( ( unsigned long ) AT91C_PB14_ERX3 ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB4_ECRS_ECRSDV ) | \
|
( ( unsigned long ) AT91C_PB4_ECRS_ECRSDV ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB1_ETXEN ) | \
|
( ( unsigned long ) AT91C_PB1_ETXEN ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB10_ETX2 ) | \
|
( ( unsigned long ) AT91C_PB10_ETX2 ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB0_ETXCK_EREFCK ) | \
|
( ( unsigned long ) AT91C_PB0_ETXCK_EREFCK ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB9_EMDIO ) | \
|
( ( unsigned long ) AT91C_PB9_EMDIO ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB7_ERXER ) | \
|
( ( unsigned long ) AT91C_PB7_ERXER ) | \
|
||||||
( ( unsigned portLONG ) AT91C_PB17_ERXCK );
|
( ( unsigned long ) AT91C_PB17_ERXCK );
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -144,9 +145,9 @@ static void prvSetupEMACInterrupt( void );
|
||||||
/*
|
/*
|
||||||
* Some initialisation functions taken from the Atmel EMAC sample code.
|
* Some initialisation functions taken from the Atmel EMAC sample code.
|
||||||
*/
|
*/
|
||||||
static void vReadPHY( unsigned portCHAR ucPHYAddress, unsigned portCHAR ucAddress, unsigned portLONG *pulValue );
|
static void vReadPHY( unsigned char ucPHYAddress, unsigned char ucAddress, unsigned long *pulValue );
|
||||||
#if USE_RMII_INTERFACE != 1
|
#if USE_RMII_INTERFACE != 1
|
||||||
static void vWritePHY( unsigned portCHAR ucPHYAddress, unsigned portCHAR ucAddress, unsigned portLONG ulValue);
|
static void vWritePHY( unsigned char ucPHYAddress, unsigned char ucAddress, unsigned long ulValue);
|
||||||
#endif
|
#endif
|
||||||
static portBASE_TYPE xGetLinkSpeed( void );
|
static portBASE_TYPE xGetLinkSpeed( void );
|
||||||
static portBASE_TYPE prvProbePHY( void );
|
static portBASE_TYPE prvProbePHY( void );
|
||||||
|
@ -156,12 +157,12 @@ static portBASE_TYPE prvProbePHY( void );
|
||||||
/* Buffer written to by the EMAC DMA. Must be aligned as described by the
|
/* Buffer written to by the EMAC DMA. Must be aligned as described by the
|
||||||
comment above the emacADDRESS_MASK definition. */
|
comment above the emacADDRESS_MASK definition. */
|
||||||
#pragma data_alignment=8
|
#pragma data_alignment=8
|
||||||
static volatile portCHAR pcRxBuffer[ NB_RX_BUFFERS * ETH_RX_BUFFER_SIZE ];
|
static volatile char pcRxBuffer[ NB_RX_BUFFERS * ETH_RX_BUFFER_SIZE ];
|
||||||
|
|
||||||
/* Buffer read by the EMAC DMA. Must be aligned as described by he comment
|
/* Buffer read by the EMAC DMA. Must be aligned as described by he comment
|
||||||
above the emacADDRESS_MASK definition. */
|
above the emacADDRESS_MASK definition. */
|
||||||
#pragma data_alignment=8
|
#pragma data_alignment=8
|
||||||
static portCHAR pcTxBuffer[ NB_TX_BUFFERS * ETH_TX_BUFFER_SIZE ];
|
static char pcTxBuffer[ NB_TX_BUFFERS * ETH_TX_BUFFER_SIZE ];
|
||||||
|
|
||||||
/* Descriptors used to communicate between the program and the EMAC peripheral.
|
/* Descriptors used to communicate between the program and the EMAC peripheral.
|
||||||
These descriptors hold the locations and state of the Rx and Tx buffers. */
|
These descriptors hold the locations and state of the Rx and Tx buffers. */
|
||||||
|
@ -169,7 +170,7 @@ static volatile AT91S_TxTdDescriptor xTxDescriptors[ NB_TX_BUFFERS ];
|
||||||
static volatile AT91S_RxTdDescriptor xRxDescriptors[ NB_RX_BUFFERS ];
|
static volatile AT91S_RxTdDescriptor xRxDescriptors[ NB_RX_BUFFERS ];
|
||||||
|
|
||||||
/* The IP and Ethernet addresses are read from the uIP setup. */
|
/* The IP and Ethernet addresses are read from the uIP setup. */
|
||||||
const portCHAR cMACAddress[ 6 ] = { uipMAC_ADDR0, uipMAC_ADDR1, uipMAC_ADDR2, uipMAC_ADDR3, uipMAC_ADDR4, uipMAC_ADDR5 };
|
const char cMACAddress[ 6 ] = { uipMAC_ADDR0, uipMAC_ADDR1, uipMAC_ADDR2, uipMAC_ADDR3, uipMAC_ADDR4, uipMAC_ADDR5 };
|
||||||
const unsigned char ucIPAddress[ 4 ] = { uipIP_ADDR0, uipIP_ADDR1, uipIP_ADDR2, uipIP_ADDR3 };
|
const unsigned char ucIPAddress[ 4 ] = { uipIP_ADDR0, uipIP_ADDR1, uipIP_ADDR2, uipIP_ADDR3 };
|
||||||
|
|
||||||
/* The semaphore used by the EMAC ISR to wake the EMAC task. */
|
/* The semaphore used by the EMAC ISR to wake the EMAC task. */
|
||||||
|
@ -224,7 +225,7 @@ xSemaphoreHandle xEMACInit( void )
|
||||||
/* PHY configuration. */
|
/* PHY configuration. */
|
||||||
#if USE_RMII_INTERFACE != 1
|
#if USE_RMII_INTERFACE != 1
|
||||||
{
|
{
|
||||||
unsigned portLONG ulControl;
|
unsigned long ulControl;
|
||||||
|
|
||||||
/* PHY has internal pull down : disable MII isolate. */
|
/* PHY has internal pull down : disable MII isolate. */
|
||||||
vReadPHY( AT91C_PHY_ADDR, MII_BMCR, &ulControl );
|
vReadPHY( AT91C_PHY_ADDR, MII_BMCR, &ulControl );
|
||||||
|
@ -270,12 +271,12 @@ xSemaphoreHandle xEMACInit( void )
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
portLONG lEMACSend( void )
|
long lEMACSend( void )
|
||||||
{
|
{
|
||||||
static unsigned portBASE_TYPE uxTxBufferIndex = 0;
|
static unsigned portBASE_TYPE uxTxBufferIndex = 0;
|
||||||
portBASE_TYPE xWaitCycles = 0;
|
portBASE_TYPE xWaitCycles = 0;
|
||||||
portLONG lReturn = pdPASS;
|
long lReturn = pdPASS;
|
||||||
portCHAR *pcBuffer;
|
char *pcBuffer;
|
||||||
|
|
||||||
/* Is a buffer available? */
|
/* Is a buffer available? */
|
||||||
while( !( xTxDescriptors[ uxTxBufferIndex ].U_Status.status & AT91C_TRANSMIT_OK ) )
|
while( !( xTxDescriptors[ uxTxBufferIndex ].U_Status.status & AT91C_TRANSMIT_OK ) )
|
||||||
|
@ -299,7 +300,7 @@ portCHAR *pcBuffer;
|
||||||
if( lReturn == pdPASS )
|
if( lReturn == pdPASS )
|
||||||
{
|
{
|
||||||
/* Copy the headers into the Tx buffer. These will be in the uIP buffer. */
|
/* Copy the headers into the Tx buffer. These will be in the uIP buffer. */
|
||||||
pcBuffer = ( portCHAR * ) xTxDescriptors[ uxTxBufferIndex ].addr;
|
pcBuffer = ( char * ) xTxDescriptors[ uxTxBufferIndex ].addr;
|
||||||
memcpy( ( void * ) pcBuffer, ( void * ) uip_buf, emacTOTAL_FRAME_HEADER_SIZE );
|
memcpy( ( void * ) pcBuffer, ( void * ) uip_buf, emacTOTAL_FRAME_HEADER_SIZE );
|
||||||
|
|
||||||
/* If there is room, also copy in the application data if any. */
|
/* If there is room, also copy in the application data if any. */
|
||||||
|
@ -314,7 +315,7 @@ portCHAR *pcBuffer;
|
||||||
if( uxTxBufferIndex >= ( NB_TX_BUFFERS - 1 ) )
|
if( uxTxBufferIndex >= ( NB_TX_BUFFERS - 1 ) )
|
||||||
{
|
{
|
||||||
/* Fill out the necessary in the descriptor to get the data sent. */
|
/* Fill out the necessary in the descriptor to get the data sent. */
|
||||||
xTxDescriptors[ uxTxBufferIndex ].U_Status.status = ( uip_len & ( unsigned portLONG ) AT91C_LENGTH_FRAME )
|
xTxDescriptors[ uxTxBufferIndex ].U_Status.status = ( uip_len & ( unsigned long ) AT91C_LENGTH_FRAME )
|
||||||
| AT91C_LAST_BUFFER
|
| AT91C_LAST_BUFFER
|
||||||
| AT91C_TRANSMIT_WRAP;
|
| AT91C_TRANSMIT_WRAP;
|
||||||
uxTxBufferIndex = 0;
|
uxTxBufferIndex = 0;
|
||||||
|
@ -322,7 +323,7 @@ portCHAR *pcBuffer;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Fill out the necessary in the descriptor to get the data sent. */
|
/* Fill out the necessary in the descriptor to get the data sent. */
|
||||||
xTxDescriptors[ uxTxBufferIndex ].U_Status.status = ( uip_len & ( unsigned portLONG ) AT91C_LENGTH_FRAME )
|
xTxDescriptors[ uxTxBufferIndex ].U_Status.status = ( uip_len & ( unsigned long ) AT91C_LENGTH_FRAME )
|
||||||
| AT91C_LAST_BUFFER;
|
| AT91C_LAST_BUFFER;
|
||||||
uxTxBufferIndex++;
|
uxTxBufferIndex++;
|
||||||
}
|
}
|
||||||
|
@ -336,11 +337,11 @@ portCHAR *pcBuffer;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
unsigned portLONG ulEMACPoll( void )
|
unsigned long ulEMACPoll( void )
|
||||||
{
|
{
|
||||||
static unsigned portBASE_TYPE ulNextRxBuffer = 0;
|
static unsigned portBASE_TYPE ulNextRxBuffer = 0;
|
||||||
unsigned portLONG ulSectionLength = 0, ulLengthSoFar = 0, ulEOF = pdFALSE;
|
unsigned long ulSectionLength = 0, ulLengthSoFar = 0, ulEOF = pdFALSE;
|
||||||
portCHAR *pcSource;
|
char *pcSource;
|
||||||
|
|
||||||
/* Skip any fragments. */
|
/* Skip any fragments. */
|
||||||
while( ( xRxDescriptors[ ulNextRxBuffer ].addr & AT91C_OWNERSHIP_BIT ) && !( xRxDescriptors[ ulNextRxBuffer ].U_Status.status & AT91C_SOF ) )
|
while( ( xRxDescriptors[ ulNextRxBuffer ].addr & AT91C_OWNERSHIP_BIT ) && !( xRxDescriptors[ ulNextRxBuffer ].U_Status.status & AT91C_SOF ) )
|
||||||
|
@ -358,7 +359,7 @@ portCHAR *pcSource;
|
||||||
|
|
||||||
while( ( xRxDescriptors[ ulNextRxBuffer ].addr & AT91C_OWNERSHIP_BIT ) && !ulSectionLength )
|
while( ( xRxDescriptors[ ulNextRxBuffer ].addr & AT91C_OWNERSHIP_BIT ) && !ulSectionLength )
|
||||||
{
|
{
|
||||||
pcSource = ( portCHAR * )( xRxDescriptors[ ulNextRxBuffer ].addr & emacADDRESS_MASK );
|
pcSource = ( char * )( xRxDescriptors[ ulNextRxBuffer ].addr & emacADDRESS_MASK );
|
||||||
ulSectionLength = xRxDescriptors[ ulNextRxBuffer ].U_Status.status & emacRX_LENGTH_FRAME;
|
ulSectionLength = xRxDescriptors[ ulNextRxBuffer ].U_Status.status & emacRX_LENGTH_FRAME;
|
||||||
|
|
||||||
if( ulSectionLength == 0 )
|
if( ulSectionLength == 0 )
|
||||||
|
@ -417,13 +418,13 @@ portCHAR *pcSource;
|
||||||
static void prvSetupDescriptors(void)
|
static void prvSetupDescriptors(void)
|
||||||
{
|
{
|
||||||
unsigned portBASE_TYPE xIndex;
|
unsigned portBASE_TYPE xIndex;
|
||||||
unsigned portLONG ulAddress;
|
unsigned long ulAddress;
|
||||||
|
|
||||||
/* Initialise xRxDescriptors descriptor. */
|
/* Initialise xRxDescriptors descriptor. */
|
||||||
for( xIndex = 0; xIndex < NB_RX_BUFFERS; ++xIndex )
|
for( xIndex = 0; xIndex < NB_RX_BUFFERS; ++xIndex )
|
||||||
{
|
{
|
||||||
/* Calculate the address of the nth buffer within the array. */
|
/* Calculate the address of the nth buffer within the array. */
|
||||||
ulAddress = ( unsigned portLONG )( pcRxBuffer + ( xIndex * ETH_RX_BUFFER_SIZE ) );
|
ulAddress = ( unsigned long )( pcRxBuffer + ( xIndex * ETH_RX_BUFFER_SIZE ) );
|
||||||
|
|
||||||
/* Write the buffer address into the descriptor. The DMA will place
|
/* Write the buffer address into the descriptor. The DMA will place
|
||||||
the data at this address when this descriptor is being used. Mask off
|
the data at this address when this descriptor is being used. Mask off
|
||||||
|
@ -439,7 +440,7 @@ unsigned portLONG ulAddress;
|
||||||
for( xIndex = 0; xIndex < NB_TX_BUFFERS; ++xIndex )
|
for( xIndex = 0; xIndex < NB_TX_BUFFERS; ++xIndex )
|
||||||
{
|
{
|
||||||
/* Calculate the address of the nth buffer within the array. */
|
/* Calculate the address of the nth buffer within the array. */
|
||||||
ulAddress = ( unsigned portLONG )( pcTxBuffer + ( xIndex * ETH_TX_BUFFER_SIZE ) );
|
ulAddress = ( unsigned long )( pcTxBuffer + ( xIndex * ETH_TX_BUFFER_SIZE ) );
|
||||||
|
|
||||||
/* Write the buffer address into the descriptor. The DMA will read
|
/* Write the buffer address into the descriptor. The DMA will read
|
||||||
data from here when the descriptor is being used. */
|
data from here when the descriptor is being used. */
|
||||||
|
@ -452,8 +453,8 @@ unsigned portLONG ulAddress;
|
||||||
xTxDescriptors[ NB_TX_BUFFERS - 1 ].U_Status.status = AT91C_TRANSMIT_WRAP | AT91C_TRANSMIT_OK;
|
xTxDescriptors[ NB_TX_BUFFERS - 1 ].U_Status.status = AT91C_TRANSMIT_WRAP | AT91C_TRANSMIT_OK;
|
||||||
|
|
||||||
/* Tell the EMAC where to find the descriptors. */
|
/* Tell the EMAC where to find the descriptors. */
|
||||||
AT91C_BASE_EMAC->EMAC_RBQP = ( unsigned portLONG ) xRxDescriptors;
|
AT91C_BASE_EMAC->EMAC_RBQP = ( unsigned long ) xRxDescriptors;
|
||||||
AT91C_BASE_EMAC->EMAC_TBQP = ( unsigned portLONG ) xTxDescriptors;
|
AT91C_BASE_EMAC->EMAC_TBQP = ( unsigned long ) xTxDescriptors;
|
||||||
|
|
||||||
/* Clear all the bits in the receive status register. */
|
/* Clear all the bits in the receive status register. */
|
||||||
AT91C_BASE_EMAC->EMAC_RSR = ( AT91C_EMAC_OVR | AT91C_EMAC_REC | AT91C_EMAC_BNA );
|
AT91C_BASE_EMAC->EMAC_RSR = ( AT91C_EMAC_OVR | AT91C_EMAC_REC | AT91C_EMAC_BNA );
|
||||||
|
@ -470,12 +471,12 @@ unsigned portLONG ulAddress;
|
||||||
static void prvSetupMACAddress( void )
|
static void prvSetupMACAddress( void )
|
||||||
{
|
{
|
||||||
/* Must be written SA1L then SA1H. */
|
/* Must be written SA1L then SA1H. */
|
||||||
AT91C_BASE_EMAC->EMAC_SA1L = ( ( unsigned portLONG ) cMACAddress[ 3 ] << 24 ) |
|
AT91C_BASE_EMAC->EMAC_SA1L = ( ( unsigned long ) cMACAddress[ 3 ] << 24 ) |
|
||||||
( ( unsigned portLONG ) cMACAddress[ 2 ] << 16 ) |
|
( ( unsigned long ) cMACAddress[ 2 ] << 16 ) |
|
||||||
( ( unsigned portLONG ) cMACAddress[ 1 ] << 8 ) |
|
( ( unsigned long ) cMACAddress[ 1 ] << 8 ) |
|
||||||
cMACAddress[ 0 ];
|
cMACAddress[ 0 ];
|
||||||
|
|
||||||
AT91C_BASE_EMAC->EMAC_SA1H = ( ( unsigned portLONG ) cMACAddress[ 5 ] << 8 ) |
|
AT91C_BASE_EMAC->EMAC_SA1H = ( ( unsigned long ) cMACAddress[ 5 ] << 8 ) |
|
||||||
cMACAddress[ 4 ];
|
cMACAddress[ 4 ];
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
@ -513,7 +514,7 @@ static void prvSetupEMACInterrupt( void )
|
||||||
|
|
||||||
static portBASE_TYPE prvProbePHY( void )
|
static portBASE_TYPE prvProbePHY( void )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulPHYId1, ulPHYId2, ulStatus;
|
unsigned long ulPHYId1, ulPHYId2, ulStatus;
|
||||||
portBASE_TYPE xReturn = pdPASS;
|
portBASE_TYPE xReturn = pdPASS;
|
||||||
|
|
||||||
/* Code supplied by Atmel (reformatted) -----------------*/
|
/* Code supplied by Atmel (reformatted) -----------------*/
|
||||||
|
@ -556,7 +557,7 @@ portBASE_TYPE xReturn = pdPASS;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
static void vReadPHY( unsigned portCHAR ucPHYAddress, unsigned portCHAR ucAddress, unsigned portLONG *pulValue )
|
static void vReadPHY( unsigned char ucPHYAddress, unsigned char ucAddress, unsigned long *pulValue )
|
||||||
{
|
{
|
||||||
/* Code supplied by Atmel (reformatted) ----------------------*/
|
/* Code supplied by Atmel (reformatted) ----------------------*/
|
||||||
|
|
||||||
|
@ -578,7 +579,7 @@ static void vReadPHY( unsigned portCHAR ucPHYAddress, unsigned portCHAR ucAddres
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
#if USE_RMII_INTERFACE != 1
|
#if USE_RMII_INTERFACE != 1
|
||||||
static void vWritePHY( unsigned portCHAR ucPHYAddress, unsigned portCHAR ucAddress, unsigned portLONG ulValue )
|
static void vWritePHY( unsigned char ucPHYAddress, unsigned char ucAddress, unsigned long ulValue )
|
||||||
{
|
{
|
||||||
/* Code supplied by Atmel (reformatted) ----------------------*/
|
/* Code supplied by Atmel (reformatted) ----------------------*/
|
||||||
|
|
||||||
|
@ -601,7 +602,7 @@ static void vWritePHY( unsigned portCHAR ucPHYAddress, unsigned portCHAR ucAddre
|
||||||
|
|
||||||
static portBASE_TYPE xGetLinkSpeed( void )
|
static portBASE_TYPE xGetLinkSpeed( void )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulBMSR, ulBMCR, ulLPA, ulMACCfg, ulSpeed, ulDuplex;
|
unsigned long ulBMSR, ulBMCR, ulLPA, ulMACCfg, ulSpeed, ulDuplex;
|
||||||
|
|
||||||
/* Code supplied by Atmel (reformatted) -----------------*/
|
/* Code supplied by Atmel (reformatted) -----------------*/
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SAM_7_EMAC_H
|
#ifndef SAM_7_EMAC_H
|
||||||
|
@ -60,12 +61,12 @@ xSemaphoreHandle xEMACInit( void );
|
||||||
* Send the current uIP buffer. This copies the uIP buffer to one of the
|
* Send the current uIP buffer. This copies the uIP buffer to one of the
|
||||||
* EMAC Tx buffers, then indicates to the EMAC that the buffer is ready.
|
* EMAC Tx buffers, then indicates to the EMAC that the buffer is ready.
|
||||||
*/
|
*/
|
||||||
portLONG lEMACSend( void );
|
long lEMACSend( void );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Called in response to an EMAC Rx interrupt. Copies the received frame
|
* Called in response to an EMAC Rx interrupt. Copies the received frame
|
||||||
* into the uIP buffer.
|
* into the uIP buffer.
|
||||||
*/
|
*/
|
||||||
unsigned portLONG ulEMACPoll( void );
|
unsigned long ulEMACPoll( void );
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef UIP_TASK_H
|
#ifndef UIP_TASK_H
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -66,10 +67,10 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 0
|
#define configUSE_IDLE_HOOK 0
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 58982400 ) /* =14.7456MHz xtal multiplied by 4 using the PLL. */
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 58982400 ) /* =14.7456MHz xtal multiplied by 4 using the PLL. */
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 128 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 24 * 1024 ) )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 24 * 1024 ) )
|
||||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||||
#define configUSE_TRACE_FACILITY 0
|
#define configUSE_TRACE_FACILITY 0
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
#/*
|
#/*
|
||||||
# FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
# FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeRTOS distribution.
|
# This file is part of the FreeRTOS distribution.
|
||||||
#
|
#
|
||||||
# FreeRTOS is free software; you can redistribute it and/or modify it under
|
# 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
|
# 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 exception to the GPL is included to allow you to distribute a
|
# **NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
# combined work that includes FreeRTOS without being obliged to provide the
|
# combined work that includes FreeRTOS without being obliged to provide the
|
||||||
# source code for proprietary components outside of the FreeRTOS kernel.
|
# source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
# Alternative commercial license and support terms are also available upon
|
# Alternative commercial license and support terms are also available upon
|
||||||
# request. See the licensing section of http://www.FreeRTOS.org for full
|
# request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
# license details.
|
# license details.
|
||||||
#
|
#
|
||||||
# FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
# FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
# more details.
|
# more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License along
|
# You should have received a copy of the GNU General Public License along
|
||||||
# with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
# with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
# Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# ***************************************************************************
|
# ***************************************************************************
|
||||||
# * *
|
# * *
|
||||||
# * Looking for a quick start? Then check out the FreeRTOS eBook! *
|
# * The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
# * See http://www.FreeRTOS.org/Documentation for details *
|
# * small fee. Help yourself get started quickly while also helping the *
|
||||||
# * *
|
# * FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
# ***************************************************************************
|
# * *
|
||||||
|
# ***************************************************************************
|
||||||
#
|
#
|
||||||
# 1 tab == 4 spaces!
|
# 1 tab == 4 spaces!
|
||||||
#
|
#
|
||||||
# Please ensure to read the configuration and relevant port sections of the
|
# Please ensure to read the configuration and relevant port sections of the
|
||||||
# online documentation.
|
# online documentation.
|
||||||
#
|
#
|
||||||
# http://www.FreeRTOS.org - Documentation, latest information, license and
|
# http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
# contact details.
|
# contact details.
|
||||||
#
|
#
|
||||||
# http://www.SafeRTOS.com - A version that is certified for use in safety
|
# http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
# critical systems.
|
# critical systems.
|
||||||
#
|
#
|
||||||
# http://www.OpenRTOS.com - Commercial support, development, porting,
|
# http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
# licensing and training services.
|
# licensing and training services.
|
||||||
#*/
|
#*/
|
||||||
|
|
||||||
CC=arm-elf-gcc
|
CC=arm-elf-gcc
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -55,9 +56,9 @@
|
||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
#include "partest.h"
|
#include "partest.h"
|
||||||
|
|
||||||
#define partstFIRST_IO ( ( unsigned portLONG ) 0x400 )
|
#define partstFIRST_IO ( ( unsigned long ) 0x400 )
|
||||||
#define partstNUM_LEDS ( 4 )
|
#define partstNUM_LEDS ( 4 )
|
||||||
#define partstALL_OUTPUTS_OFF ( ( unsigned portLONG ) 0xffffffff )
|
#define partstALL_OUTPUTS_OFF ( ( unsigned long ) 0xffffffff )
|
||||||
|
|
||||||
/*-----------------------------------------------------------
|
/*-----------------------------------------------------------
|
||||||
* Simple parallel port IO routines.
|
* Simple parallel port IO routines.
|
||||||
|
@ -75,13 +76,13 @@ void vParTestInitialise( void )
|
||||||
|
|
||||||
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulLED = partstFIRST_IO;
|
unsigned long ulLED = partstFIRST_IO;
|
||||||
|
|
||||||
if( uxLED < partstNUM_LEDS )
|
if( uxLED < partstNUM_LEDS )
|
||||||
{
|
{
|
||||||
/* Rotate to the wanted bit of port 0. Only P10 to P13 have an LED
|
/* Rotate to the wanted bit of port 0. Only P10 to P13 have an LED
|
||||||
attached. */
|
attached. */
|
||||||
ulLED <<= ( unsigned portLONG ) uxLED;
|
ulLED <<= ( unsigned long ) uxLED;
|
||||||
|
|
||||||
/* Set of clear the output. */
|
/* Set of clear the output. */
|
||||||
if( xValue )
|
if( xValue )
|
||||||
|
@ -98,13 +99,13 @@ unsigned portLONG ulLED = partstFIRST_IO;
|
||||||
|
|
||||||
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulLED = partstFIRST_IO, ulCurrentState;
|
unsigned long ulLED = partstFIRST_IO, ulCurrentState;
|
||||||
|
|
||||||
if( uxLED < partstNUM_LEDS )
|
if( uxLED < partstNUM_LEDS )
|
||||||
{
|
{
|
||||||
/* Rotate to the wanted bit of port 0. Only P10 to P13 have an LED
|
/* Rotate to the wanted bit of port 0. Only P10 to P13 have an LED
|
||||||
attached. */
|
attached. */
|
||||||
ulLED <<= ( unsigned portLONG ) uxLED;
|
ulLED <<= ( unsigned long ) uxLED;
|
||||||
|
|
||||||
/* If this bit is already set, clear it, and visa versa. */
|
/* If this bit is already set, clear it, and visa versa. */
|
||||||
ulCurrentState = GPIO0_IOPIN;
|
ulCurrentState = GPIO0_IOPIN;
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -114,29 +115,29 @@
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/* Constants to setup I/O. */
|
/* Constants to setup I/O. */
|
||||||
#define mainTX_ENABLE ( ( unsigned portLONG ) 0x0001 )
|
#define mainTX_ENABLE ( ( unsigned long ) 0x0001 )
|
||||||
#define mainRX_ENABLE ( ( unsigned portLONG ) 0x0004 )
|
#define mainRX_ENABLE ( ( unsigned long ) 0x0004 )
|
||||||
#define mainP0_14 ( ( unsigned portLONG ) 0x4000 )
|
#define mainP0_14 ( ( unsigned long ) 0x4000 )
|
||||||
#define mainJTAG_PORT ( ( unsigned portLONG ) 0x3E0000UL )
|
#define mainJTAG_PORT ( ( unsigned long ) 0x3E0000UL )
|
||||||
|
|
||||||
/* Constants to setup the PLL. */
|
/* Constants to setup the PLL. */
|
||||||
#define mainPLL_MUL_4 ( ( unsigned portCHAR ) 0x0003 )
|
#define mainPLL_MUL_4 ( ( unsigned char ) 0x0003 )
|
||||||
#define mainPLL_DIV_1 ( ( unsigned portCHAR ) 0x0000 )
|
#define mainPLL_DIV_1 ( ( unsigned char ) 0x0000 )
|
||||||
#define mainPLL_ENABLE ( ( unsigned portCHAR ) 0x0001 )
|
#define mainPLL_ENABLE ( ( unsigned char ) 0x0001 )
|
||||||
#define mainPLL_CONNECT ( ( unsigned portCHAR ) 0x0003 )
|
#define mainPLL_CONNECT ( ( unsigned char ) 0x0003 )
|
||||||
#define mainPLL_FEED_BYTE1 ( ( unsigned portCHAR ) 0xaa )
|
#define mainPLL_FEED_BYTE1 ( ( unsigned char ) 0xaa )
|
||||||
#define mainPLL_FEED_BYTE2 ( ( unsigned portCHAR ) 0x55 )
|
#define mainPLL_FEED_BYTE2 ( ( unsigned char ) 0x55 )
|
||||||
#define mainPLL_LOCK ( ( unsigned portLONG ) 0x0400 )
|
#define mainPLL_LOCK ( ( unsigned long ) 0x0400 )
|
||||||
|
|
||||||
/* Constants to setup the MAM. */
|
/* Constants to setup the MAM. */
|
||||||
#define mainMAM_TIM_3 ( ( unsigned portCHAR ) 0x03 )
|
#define mainMAM_TIM_3 ( ( unsigned char ) 0x03 )
|
||||||
#define mainMAM_MODE_FULL ( ( unsigned portCHAR ) 0x02 )
|
#define mainMAM_MODE_FULL ( ( unsigned char ) 0x02 )
|
||||||
|
|
||||||
/* Constants to setup the peripheral bus. */
|
/* Constants to setup the peripheral bus. */
|
||||||
#define mainBUS_CLK_FULL ( ( unsigned portCHAR ) 0x01 )
|
#define mainBUS_CLK_FULL ( ( unsigned char ) 0x01 )
|
||||||
|
|
||||||
/* Constants for the ComTest tasks. */
|
/* Constants for the ComTest tasks. */
|
||||||
#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 115200 )
|
#define mainCOM_TEST_BAUD_RATE ( ( unsigned long ) 115200 )
|
||||||
#define mainCOM_TEST_LED ( 3 )
|
#define mainCOM_TEST_LED ( 3 )
|
||||||
|
|
||||||
/* Priorities for the demo application tasks. */
|
/* Priorities for the demo application tasks. */
|
||||||
|
@ -151,10 +152,10 @@
|
||||||
error. */
|
error. */
|
||||||
#define mainNO_ERROR_FLASH_PERIOD ( ( portTickType ) 3000 / portTICK_RATE_MS )
|
#define mainNO_ERROR_FLASH_PERIOD ( ( portTickType ) 3000 / portTICK_RATE_MS )
|
||||||
#define mainERROR_FLASH_PERIOD ( ( portTickType ) 500 / portTICK_RATE_MS )
|
#define mainERROR_FLASH_PERIOD ( ( portTickType ) 500 / portTICK_RATE_MS )
|
||||||
#define mainON_BOARD_LED_BIT ( ( unsigned portLONG ) 0x80 )
|
#define mainON_BOARD_LED_BIT ( ( unsigned long ) 0x80 )
|
||||||
|
|
||||||
/* Constants used by the vMemCheckTask() task. */
|
/* Constants used by the vMemCheckTask() task. */
|
||||||
#define mainCOUNT_INITIAL_VALUE ( ( unsigned portLONG ) 0 )
|
#define mainCOUNT_INITIAL_VALUE ( ( unsigned long ) 0 )
|
||||||
#define mainNO_TASK ( 0 )
|
#define mainNO_TASK ( 0 )
|
||||||
|
|
||||||
/* The size of the memory blocks allocated by the vMemCheckTask() task. */
|
/* The size of the memory blocks allocated by the vMemCheckTask() task. */
|
||||||
|
@ -174,7 +175,7 @@ void prvToggleOnBoardLED( void );
|
||||||
* Checks that all the demo application tasks are still executing without error
|
* Checks that all the demo application tasks are still executing without error
|
||||||
* - as described at the top of the file.
|
* - as described at the top of the file.
|
||||||
*/
|
*/
|
||||||
static portLONG prvCheckOtherTasksAreStillRunning( unsigned portLONG ulMemCheckTaskCount );
|
static long prvCheckOtherTasksAreStillRunning( unsigned long ulMemCheckTaskCount );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The task that executes at the highest priority and calls
|
* The task that executes at the highest priority and calls
|
||||||
|
@ -217,7 +218,7 @@ int main( void )
|
||||||
vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
|
vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
|
||||||
|
|
||||||
/* Start the check task - which is defined in this file. */
|
/* Start the check task - which is defined in this file. */
|
||||||
xTaskCreate( vErrorChecks, ( signed portCHAR * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
xTaskCreate( vErrorChecks, ( signed char * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
||||||
|
|
||||||
/* Now all the tasks have been started - start the scheduler.
|
/* Now all the tasks have been started - start the scheduler.
|
||||||
|
|
||||||
|
@ -236,7 +237,7 @@ int main( void )
|
||||||
static void vErrorChecks( void *pvParameters )
|
static void vErrorChecks( void *pvParameters )
|
||||||
{
|
{
|
||||||
portTickType xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;
|
portTickType xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;
|
||||||
unsigned portLONG ulMemCheckTaskRunningCount;
|
unsigned long ulMemCheckTaskRunningCount;
|
||||||
xTaskHandle xCreatedTask;
|
xTaskHandle xCreatedTask;
|
||||||
|
|
||||||
/* The parameters are not used in this function. */
|
/* The parameters are not used in this function. */
|
||||||
|
@ -260,7 +261,7 @@ xTaskHandle xCreatedTask;
|
||||||
ulMemCheckTaskRunningCount = mainCOUNT_INITIAL_VALUE;
|
ulMemCheckTaskRunningCount = mainCOUNT_INITIAL_VALUE;
|
||||||
xCreatedTask = mainNO_TASK;
|
xCreatedTask = mainNO_TASK;
|
||||||
|
|
||||||
if( xTaskCreate( vMemCheckTask, ( signed portCHAR * ) "MEM_CHECK", configMINIMAL_STACK_SIZE, ( void * ) &ulMemCheckTaskRunningCount, tskIDLE_PRIORITY, &xCreatedTask ) != pdPASS )
|
if( xTaskCreate( vMemCheckTask, ( signed char * ) "MEM_CHECK", configMINIMAL_STACK_SIZE, ( void * ) &ulMemCheckTaskRunningCount, tskIDLE_PRIORITY, &xCreatedTask ) != pdPASS )
|
||||||
{
|
{
|
||||||
/* Could not create the task - we have probably run out of heap. */
|
/* Could not create the task - we have probably run out of heap. */
|
||||||
xDelayPeriod = mainERROR_FLASH_PERIOD;
|
xDelayPeriod = mainERROR_FLASH_PERIOD;
|
||||||
|
@ -339,7 +340,7 @@ static void prvSetupHardware( void )
|
||||||
|
|
||||||
void prvToggleOnBoardLED( void )
|
void prvToggleOnBoardLED( void )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulState;
|
unsigned long ulState;
|
||||||
|
|
||||||
ulState = GPIO0_IOPIN;
|
ulState = GPIO0_IOPIN;
|
||||||
if( ulState & mainON_BOARD_LED_BIT )
|
if( ulState & mainON_BOARD_LED_BIT )
|
||||||
|
@ -353,9 +354,9 @@ unsigned portLONG ulState;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
static portLONG prvCheckOtherTasksAreStillRunning( unsigned portLONG ulMemCheckTaskCount )
|
static long prvCheckOtherTasksAreStillRunning( unsigned long ulMemCheckTaskCount )
|
||||||
{
|
{
|
||||||
portLONG lReturn = ( portLONG ) pdPASS;
|
long lReturn = ( long ) pdPASS;
|
||||||
|
|
||||||
/* Check all the demo tasks (other than the flash tasks) to ensure
|
/* Check all the demo tasks (other than the flash tasks) to ensure
|
||||||
that they are all still running, and that none of them have detected
|
that they are all still running, and that none of them have detected
|
||||||
|
@ -363,44 +364,44 @@ portLONG lReturn = ( portLONG ) pdPASS;
|
||||||
|
|
||||||
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreComTestTasksStillRunning() != pdTRUE )
|
if( xAreComTestTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xArePollingQueuesStillRunning() != pdTRUE )
|
if( xArePollingQueuesStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreMathsTaskStillRunning() != pdTRUE )
|
if( xAreMathsTaskStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ulMemCheckTaskCount == mainCOUNT_INITIAL_VALUE )
|
if( ulMemCheckTaskCount == mainCOUNT_INITIAL_VALUE )
|
||||||
{
|
{
|
||||||
/* The vMemCheckTask did not increment the counter - it must
|
/* The vMemCheckTask did not increment the counter - it must
|
||||||
have failed. */
|
have failed. */
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return lReturn;
|
return lReturn;
|
||||||
|
@ -409,9 +410,9 @@ portLONG lReturn = ( portLONG ) pdPASS;
|
||||||
|
|
||||||
static void vMemCheckTask( void *pvParameters )
|
static void vMemCheckTask( void *pvParameters )
|
||||||
{
|
{
|
||||||
unsigned portLONG *pulMemCheckTaskRunningCounter;
|
unsigned long *pulMemCheckTaskRunningCounter;
|
||||||
void *pvMem1, *pvMem2, *pvMem3;
|
void *pvMem1, *pvMem2, *pvMem3;
|
||||||
static portLONG lErrorOccurred = pdFALSE;
|
static long lErrorOccurred = pdFALSE;
|
||||||
|
|
||||||
/* This task is dynamically created then deleted during each cycle of the
|
/* This task is dynamically created then deleted during each cycle of the
|
||||||
vErrorChecks task to check the operation of the memory allocator. Each time
|
vErrorChecks task to check the operation of the memory allocator. Each time
|
||||||
|
@ -424,7 +425,7 @@ static portLONG lErrorOccurred = pdFALSE;
|
||||||
pulMemCheckTaskRunningCounter is incremented each cycle to indicate to the
|
pulMemCheckTaskRunningCounter is incremented each cycle to indicate to the
|
||||||
vErrorChecks() task that this task is still executing without error. */
|
vErrorChecks() task that this task is still executing without error. */
|
||||||
|
|
||||||
pulMemCheckTaskRunningCounter = ( unsigned portLONG * ) pvParameters;
|
pulMemCheckTaskRunningCounter = ( unsigned long * ) pvParameters;
|
||||||
|
|
||||||
for( ;; )
|
for( ;; )
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -87,20 +88,20 @@
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/* Constants to setup and access the UART. */
|
/* Constants to setup and access the UART. */
|
||||||
#define serDLAB ( ( unsigned portCHAR ) 0x80 )
|
#define serDLAB ( ( unsigned char ) 0x80 )
|
||||||
#define serENABLE_INTERRUPTS ( ( unsigned portCHAR ) 0x03 )
|
#define serENABLE_INTERRUPTS ( ( unsigned char ) 0x03 )
|
||||||
#define serNO_PARITY ( ( unsigned portCHAR ) 0x00 )
|
#define serNO_PARITY ( ( unsigned char ) 0x00 )
|
||||||
#define ser1_STOP_BIT ( ( unsigned portCHAR ) 0x00 )
|
#define ser1_STOP_BIT ( ( unsigned char ) 0x00 )
|
||||||
#define ser8_BIT_CHARS ( ( unsigned portCHAR ) 0x03 )
|
#define ser8_BIT_CHARS ( ( unsigned char ) 0x03 )
|
||||||
#define serFIFO_ON ( ( unsigned portCHAR ) 0x01 )
|
#define serFIFO_ON ( ( unsigned char ) 0x01 )
|
||||||
#define serCLEAR_FIFO ( ( unsigned portCHAR ) 0x06 )
|
#define serCLEAR_FIFO ( ( unsigned char ) 0x06 )
|
||||||
#define serWANTED_CLOCK_SCALING ( ( unsigned portLONG ) 16 )
|
#define serWANTED_CLOCK_SCALING ( ( unsigned long ) 16 )
|
||||||
|
|
||||||
/* Constants to setup and access the VIC. */
|
/* Constants to setup and access the VIC. */
|
||||||
#define serUART0_VIC_CHANNEL ( ( unsigned portLONG ) 0x0006 )
|
#define serUART0_VIC_CHANNEL ( ( unsigned long ) 0x0006 )
|
||||||
#define serUART0_VIC_CHANNEL_BIT ( ( unsigned portLONG ) 0x0040 )
|
#define serUART0_VIC_CHANNEL_BIT ( ( unsigned long ) 0x0040 )
|
||||||
#define serUART0_VIC_ENABLE ( ( unsigned portLONG ) 0x0020 )
|
#define serUART0_VIC_ENABLE ( ( unsigned long ) 0x0020 )
|
||||||
#define serCLEAR_VIC_INTERRUPT ( ( unsigned portLONG ) 0 )
|
#define serCLEAR_VIC_INTERRUPT ( ( unsigned long ) 0 )
|
||||||
|
|
||||||
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
||||||
#define serHANDLE ( ( xComPortHandle ) 1 )
|
#define serHANDLE ( ( xComPortHandle ) 1 )
|
||||||
|
@ -116,19 +117,19 @@ static xQueueHandle xCharsForTx;
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/* Communication flag between the interrupt service routine and serial API. */
|
/* Communication flag between the interrupt service routine and serial API. */
|
||||||
static volatile portLONG *plTHREEmpty;
|
static volatile long *plTHREEmpty;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The queues are created in serialISR.c as they are used from the ISR.
|
* The queues are created in serialISR.c as they are used from the ISR.
|
||||||
* Obtain references to the queues and THRE Empty flag.
|
* Obtain references to the queues and THRE Empty flag.
|
||||||
*/
|
*/
|
||||||
extern void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle *pxRxedChars, xQueueHandle *pxCharsForTx, portLONG volatile **pplTHREEmptyFlag );
|
extern void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle *pxRxedChars, xQueueHandle *pxCharsForTx, long volatile **pplTHREEmptyFlag );
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulDivisor, ulWantedClock;
|
unsigned long ulDivisor, ulWantedClock;
|
||||||
xComPortHandle xReturn = serHANDLE;
|
xComPortHandle xReturn = serHANDLE;
|
||||||
extern void ( vUART_ISR_Wrapper )( void );
|
extern void ( vUART_ISR_Wrapper )( void );
|
||||||
|
|
||||||
|
@ -139,7 +140,7 @@ extern void ( vUART_ISR_Wrapper )( void );
|
||||||
if(
|
if(
|
||||||
( xRxedChars != serINVALID_QUEUE ) &&
|
( xRxedChars != serINVALID_QUEUE ) &&
|
||||||
( xCharsForTx != serINVALID_QUEUE ) &&
|
( xCharsForTx != serINVALID_QUEUE ) &&
|
||||||
( ulWantedBaud != ( unsigned portLONG ) 0 )
|
( ulWantedBaud != ( unsigned long ) 0 )
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
|
@ -152,9 +153,9 @@ extern void ( vUART_ISR_Wrapper )( void );
|
||||||
UART0_LCR |= serDLAB;
|
UART0_LCR |= serDLAB;
|
||||||
|
|
||||||
/* Setup the divisor. */
|
/* Setup the divisor. */
|
||||||
UART0_DLL = ( unsigned portCHAR ) ( ulDivisor & ( unsigned portLONG ) 0xff );
|
UART0_DLL = ( unsigned char ) ( ulDivisor & ( unsigned long ) 0xff );
|
||||||
ulDivisor >>= 8;
|
ulDivisor >>= 8;
|
||||||
UART0_DLM = ( unsigned portCHAR ) ( ulDivisor & ( unsigned portLONG ) 0xff );
|
UART0_DLM = ( unsigned char ) ( ulDivisor & ( unsigned long ) 0xff );
|
||||||
|
|
||||||
/* Turn on the FIFO's and clear the buffers. */
|
/* Turn on the FIFO's and clear the buffers. */
|
||||||
UART0_FCR = ( serFIFO_ON | serCLEAR_FIFO );
|
UART0_FCR = ( serFIFO_ON | serCLEAR_FIFO );
|
||||||
|
@ -165,7 +166,7 @@ extern void ( vUART_ISR_Wrapper )( void );
|
||||||
/* Setup the VIC for the UART. */
|
/* Setup the VIC for the UART. */
|
||||||
VICIntSelect &= ~( serUART0_VIC_CHANNEL_BIT );
|
VICIntSelect &= ~( serUART0_VIC_CHANNEL_BIT );
|
||||||
VICIntEnable |= serUART0_VIC_CHANNEL_BIT;
|
VICIntEnable |= serUART0_VIC_CHANNEL_BIT;
|
||||||
VICVectAddr1 = ( portLONG ) vUART_ISR_Wrapper;
|
VICVectAddr1 = ( long ) vUART_ISR_Wrapper;
|
||||||
VICVectCntl1 = serUART0_VIC_CHANNEL | serUART0_VIC_ENABLE;
|
VICVectCntl1 = serUART0_VIC_CHANNEL | serUART0_VIC_ENABLE;
|
||||||
|
|
||||||
/* Enable UART0 interrupts. */
|
/* Enable UART0 interrupts. */
|
||||||
|
@ -182,7 +183,7 @@ extern void ( vUART_ISR_Wrapper )( void );
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* The port handle is not required as this driver only supports UART0. */
|
/* The port handle is not required as this driver only supports UART0. */
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
@ -200,9 +201,9 @@ signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcR
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )
|
void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )
|
||||||
{
|
{
|
||||||
signed portCHAR *pxNext;
|
signed char *pxNext;
|
||||||
|
|
||||||
/* NOTE: This implementation does not handle the queue being full as no
|
/* NOTE: This implementation does not handle the queue being full as no
|
||||||
block time is used! */
|
block time is used! */
|
||||||
|
@ -212,7 +213,7 @@ signed portCHAR *pxNext;
|
||||||
( void ) usStringLength;
|
( void ) usStringLength;
|
||||||
|
|
||||||
/* Send each character in the string, one at a time. */
|
/* Send each character in the string, one at a time. */
|
||||||
pxNext = ( signed portCHAR * ) pcString;
|
pxNext = ( signed char * ) pcString;
|
||||||
while( *pxNext )
|
while( *pxNext )
|
||||||
{
|
{
|
||||||
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
||||||
|
@ -221,7 +222,7 @@ signed portCHAR *pxNext;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
signed portBASE_TYPE xReturn;
|
signed portBASE_TYPE xReturn;
|
||||||
|
|
||||||
|
@ -231,7 +232,7 @@ signed portBASE_TYPE xReturn;
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
{
|
{
|
||||||
/* Is there space to write directly to the UART? */
|
/* Is there space to write directly to the UART? */
|
||||||
if( *plTHREEmpty == ( portLONG ) pdTRUE )
|
if( *plTHREEmpty == ( long ) pdTRUE )
|
||||||
{
|
{
|
||||||
/* We wrote the character directly to the UART, so was
|
/* We wrote the character directly to the UART, so was
|
||||||
successful. */
|
successful. */
|
||||||
|
@ -250,7 +251,7 @@ signed portBASE_TYPE xReturn;
|
||||||
were blocked waiting to post interrupts were not disabled. It is
|
were blocked waiting to post interrupts were not disabled. It is
|
||||||
possible that the serial ISR has emptied the Tx queue, in which
|
possible that the serial ISR has emptied the Tx queue, in which
|
||||||
case we need to start the Tx off again. */
|
case we need to start the Tx off again. */
|
||||||
if( ( *plTHREEmpty == ( portLONG ) pdTRUE ) && ( xReturn == pdPASS ) )
|
if( ( *plTHREEmpty == ( long ) pdTRUE ) && ( xReturn == pdPASS ) )
|
||||||
{
|
{
|
||||||
xQueueReceive( xCharsForTx, &cOutChar, serNO_BLOCK );
|
xQueueReceive( xCharsForTx, &cOutChar, serNO_BLOCK );
|
||||||
*plTHREEmpty = pdFALSE;
|
*plTHREEmpty = pdFALSE;
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -69,20 +70,20 @@
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/* Constant to access the VIC. */
|
/* Constant to access the VIC. */
|
||||||
#define serCLEAR_VIC_INTERRUPT ( ( unsigned portLONG ) 0 )
|
#define serCLEAR_VIC_INTERRUPT ( ( unsigned long ) 0 )
|
||||||
|
|
||||||
/* Constants to determine the ISR source. */
|
/* Constants to determine the ISR source. */
|
||||||
#define serSOURCE_THRE ( ( unsigned portCHAR ) 0x02 )
|
#define serSOURCE_THRE ( ( unsigned char ) 0x02 )
|
||||||
#define serSOURCE_RX_TIMEOUT ( ( unsigned portCHAR ) 0x0c )
|
#define serSOURCE_RX_TIMEOUT ( ( unsigned char ) 0x0c )
|
||||||
#define serSOURCE_ERROR ( ( unsigned portCHAR ) 0x06 )
|
#define serSOURCE_ERROR ( ( unsigned char ) 0x06 )
|
||||||
#define serSOURCE_RX ( ( unsigned portCHAR ) 0x04 )
|
#define serSOURCE_RX ( ( unsigned char ) 0x04 )
|
||||||
#define serINTERRUPT_SOURCE_MASK ( ( unsigned portCHAR ) 0x0f )
|
#define serINTERRUPT_SOURCE_MASK ( ( unsigned char ) 0x0f )
|
||||||
|
|
||||||
/* Queues used to hold received characters, and characters waiting to be
|
/* Queues used to hold received characters, and characters waiting to be
|
||||||
transmitted. */
|
transmitted. */
|
||||||
static xQueueHandle xRxedChars;
|
static xQueueHandle xRxedChars;
|
||||||
static xQueueHandle xCharsForTx;
|
static xQueueHandle xCharsForTx;
|
||||||
static volatile portLONG lTHREEmpty;
|
static volatile long lTHREEmpty;
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -90,7 +91,7 @@ static volatile portLONG lTHREEmpty;
|
||||||
* The queues are created in serialISR.c as they are used from the ISR.
|
* The queues are created in serialISR.c as they are used from the ISR.
|
||||||
* Obtain references to the queues and THRE Empty flag.
|
* Obtain references to the queues and THRE Empty flag.
|
||||||
*/
|
*/
|
||||||
void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle *pxRxedChars, xQueueHandle *pxCharsForTx, portLONG volatile **pplTHREEmptyFlag );
|
void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle *pxRxedChars, xQueueHandle *pxCharsForTx, long volatile **pplTHREEmptyFlag );
|
||||||
|
|
||||||
/* UART0 interrupt service routine entry point. */
|
/* UART0 interrupt service routine entry point. */
|
||||||
void vUART_ISR_Wrapper( void ) __attribute__ ((naked));
|
void vUART_ISR_Wrapper( void ) __attribute__ ((naked));
|
||||||
|
@ -100,11 +101,11 @@ void vUART_ISR_Handler( void ) __attribute__ ((noinline));
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle *pxRxedChars,
|
void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle *pxRxedChars,
|
||||||
xQueueHandle *pxCharsForTx, portLONG volatile **pplTHREEmptyFlag )
|
xQueueHandle *pxCharsForTx, long volatile **pplTHREEmptyFlag )
|
||||||
{
|
{
|
||||||
/* Create the queues used to hold Rx and Tx characters. */
|
/* Create the queues used to hold Rx and Tx characters. */
|
||||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
|
|
||||||
/* Pass back a reference to the queues so the serial API file can
|
/* Pass back a reference to the queues so the serial API file can
|
||||||
post/receive characters. */
|
post/receive characters. */
|
||||||
|
@ -112,7 +113,7 @@ void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle
|
||||||
*pxCharsForTx = xCharsForTx;
|
*pxCharsForTx = xCharsForTx;
|
||||||
|
|
||||||
/* Initialise the THRE empty flag - and pass back a reference. */
|
/* Initialise the THRE empty flag - and pass back a reference. */
|
||||||
lTHREEmpty = ( portLONG ) pdTRUE;
|
lTHREEmpty = ( long ) pdTRUE;
|
||||||
*pplTHREEmptyFlag = &lTHREEmpty;
|
*pplTHREEmptyFlag = &lTHREEmpty;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
@ -133,7 +134,7 @@ void vUART_ISR_Wrapper( void )
|
||||||
|
|
||||||
void vUART_ISR_Handler( void )
|
void vUART_ISR_Handler( void )
|
||||||
{
|
{
|
||||||
signed portCHAR cChar;
|
signed char cChar;
|
||||||
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
/* What caused the interrupt? */
|
/* What caused the interrupt? */
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -66,10 +67,10 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 0
|
#define configUSE_IDLE_HOOK 0
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 60000000 ) /* =12.0MHz xtal multiplied by 5 using the PLL. */
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 60000000 ) /* =12.0MHz xtal multiplied by 5 using the PLL. */
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 100 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 100 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) 14200 )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) 14200 )
|
||||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||||
#define configUSE_TRACE_FACILITY 0
|
#define configUSE_TRACE_FACILITY 0
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*-----------------------------------------------------------
|
/*-----------------------------------------------------------
|
||||||
|
@ -57,7 +58,7 @@
|
||||||
#include "partest.h"
|
#include "partest.h"
|
||||||
|
|
||||||
/* Board specific defines. */
|
/* Board specific defines. */
|
||||||
#define partstFIRST_IO ( ( unsigned portLONG ) 0x10000 )
|
#define partstFIRST_IO ( ( unsigned long ) 0x10000 )
|
||||||
#define partstNUM_LEDS ( 8 )
|
#define partstNUM_LEDS ( 8 )
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
@ -70,13 +71,13 @@ void vParTestInitialise( void )
|
||||||
|
|
||||||
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulLED = partstFIRST_IO;
|
unsigned long ulLED = partstFIRST_IO;
|
||||||
|
|
||||||
if( uxLED < partstNUM_LEDS )
|
if( uxLED < partstNUM_LEDS )
|
||||||
{
|
{
|
||||||
/* Rotate to the wanted bit of port 1. Only P16 to P23 have an LED
|
/* Rotate to the wanted bit of port 1. Only P16 to P23 have an LED
|
||||||
attached. */
|
attached. */
|
||||||
ulLED <<= ( unsigned portLONG ) uxLED;
|
ulLED <<= ( unsigned long ) uxLED;
|
||||||
|
|
||||||
/* Set or clear the output. */
|
/* Set or clear the output. */
|
||||||
if( xValue )
|
if( xValue )
|
||||||
|
@ -93,13 +94,13 @@ unsigned portLONG ulLED = partstFIRST_IO;
|
||||||
|
|
||||||
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulLED = partstFIRST_IO, ulCurrentState;
|
unsigned long ulLED = partstFIRST_IO, ulCurrentState;
|
||||||
|
|
||||||
if( uxLED < partstNUM_LEDS )
|
if( uxLED < partstNUM_LEDS )
|
||||||
{
|
{
|
||||||
/* Rotate to the wanted bit of port 1. Only P10 to P13 have an LED
|
/* Rotate to the wanted bit of port 1. Only P10 to P13 have an LED
|
||||||
attached. */
|
attached. */
|
||||||
ulLED <<= ( unsigned portLONG ) uxLED;
|
ulLED <<= ( unsigned long ) uxLED;
|
||||||
|
|
||||||
/* If this bit is already set, clear it, and visa versa. */
|
/* If this bit is already set, clear it, and visa versa. */
|
||||||
ulCurrentState = IO1PIN;
|
ulCurrentState = IO1PIN;
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -104,29 +105,29 @@
|
||||||
#define mainCHECK_TASK_LED ( 7 )
|
#define mainCHECK_TASK_LED ( 7 )
|
||||||
|
|
||||||
/* Constants for the ComTest tasks. */
|
/* Constants for the ComTest tasks. */
|
||||||
#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 115200 )
|
#define mainCOM_TEST_BAUD_RATE ( ( unsigned long ) 115200 )
|
||||||
#define mainCOM_TEST_LED ( 4 )
|
#define mainCOM_TEST_LED ( 4 )
|
||||||
#define mainTX_ENABLE ( ( unsigned portLONG ) 0x0001 )
|
#define mainTX_ENABLE ( ( unsigned long ) 0x0001 )
|
||||||
#define mainRX_ENABLE ( ( unsigned portLONG ) 0x0004 )
|
#define mainRX_ENABLE ( ( unsigned long ) 0x0004 )
|
||||||
|
|
||||||
/* Constants to setup the PLL. */
|
/* Constants to setup the PLL. */
|
||||||
#define mainPLL_MUL_5 ( ( unsigned portCHAR ) 0x0004 )
|
#define mainPLL_MUL_5 ( ( unsigned char ) 0x0004 )
|
||||||
#define mainPLL_DIV_1 ( ( unsigned portCHAR ) 0x0000 )
|
#define mainPLL_DIV_1 ( ( unsigned char ) 0x0000 )
|
||||||
#define mainPLL_ENABLE ( ( unsigned portCHAR ) 0x0001 )
|
#define mainPLL_ENABLE ( ( unsigned char ) 0x0001 )
|
||||||
#define mainPLL_CONNECT ( ( unsigned portCHAR ) 0x0003 )
|
#define mainPLL_CONNECT ( ( unsigned char ) 0x0003 )
|
||||||
#define mainPLL_FEED_BYTE1 ( ( unsigned portCHAR ) 0xaa )
|
#define mainPLL_FEED_BYTE1 ( ( unsigned char ) 0xaa )
|
||||||
#define mainPLL_FEED_BYTE2 ( ( unsigned portCHAR ) 0x55 )
|
#define mainPLL_FEED_BYTE2 ( ( unsigned char ) 0x55 )
|
||||||
#define mainPLL_LOCK ( ( unsigned portLONG ) 0x0400 )
|
#define mainPLL_LOCK ( ( unsigned long ) 0x0400 )
|
||||||
|
|
||||||
/* Constants to setup the MAM. */
|
/* Constants to setup the MAM. */
|
||||||
#define mainMAM_TIM_3 ( ( unsigned portCHAR ) 0x03 )
|
#define mainMAM_TIM_3 ( ( unsigned char ) 0x03 )
|
||||||
#define mainMAM_MODE_FULL ( ( unsigned portCHAR ) 0x02 )
|
#define mainMAM_MODE_FULL ( ( unsigned char ) 0x02 )
|
||||||
|
|
||||||
/* Constants to setup the peripheral bus. */
|
/* Constants to setup the peripheral bus. */
|
||||||
#define mainBUS_CLK_FULL ( ( unsigned portCHAR ) 0x01 )
|
#define mainBUS_CLK_FULL ( ( unsigned char ) 0x01 )
|
||||||
|
|
||||||
/* And finally, constant to setup the port for the LED's. */
|
/* And finally, constant to setup the port for the LED's. */
|
||||||
#define mainLED_TO_OUTPUT ( ( unsigned portLONG ) 0xff0000 )
|
#define mainLED_TO_OUTPUT ( ( unsigned long ) 0xff0000 )
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The task that executes at the highest priority and calls
|
* The task that executes at the highest priority and calls
|
||||||
|
@ -144,7 +145,7 @@ static void prvSetupHardware( void );
|
||||||
* Checks that all the demo application tasks are still executing without error
|
* Checks that all the demo application tasks are still executing without error
|
||||||
* - as described at the top of the file.
|
* - as described at the top of the file.
|
||||||
*/
|
*/
|
||||||
static portLONG prvCheckOtherTasksAreStillRunning( void );
|
static long prvCheckOtherTasksAreStillRunning( void );
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
@ -254,9 +255,9 @@ portTickType xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
static portLONG prvCheckOtherTasksAreStillRunning( void )
|
static long prvCheckOtherTasksAreStillRunning( void )
|
||||||
{
|
{
|
||||||
portLONG lReturn = ( portLONG ) pdPASS;
|
long lReturn = ( long ) pdPASS;
|
||||||
|
|
||||||
/* Check all the demo tasks (other than the flash tasks) to ensure
|
/* Check all the demo tasks (other than the flash tasks) to ensure
|
||||||
that they are all still running, and that none of them have detected
|
that they are all still running, and that none of them have detected
|
||||||
|
@ -264,32 +265,32 @@ portLONG lReturn = ( portLONG ) pdPASS;
|
||||||
|
|
||||||
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xArePollingQueuesStillRunning() != pdTRUE )
|
if( xArePollingQueuesStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreComTestTasksStillRunning() != pdTRUE )
|
if( xAreComTestTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return lReturn;
|
return lReturn;
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -64,27 +65,27 @@
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/* Constants to setup and access the UART. */
|
/* Constants to setup and access the UART. */
|
||||||
#define serDLAB ( ( unsigned portCHAR ) 0x80 )
|
#define serDLAB ( ( unsigned char ) 0x80 )
|
||||||
#define serENABLE_INTERRUPTS ( ( unsigned portCHAR ) 0x03 )
|
#define serENABLE_INTERRUPTS ( ( unsigned char ) 0x03 )
|
||||||
#define serNO_PARITY ( ( unsigned portCHAR ) 0x00 )
|
#define serNO_PARITY ( ( unsigned char ) 0x00 )
|
||||||
#define ser1_STOP_BIT ( ( unsigned portCHAR ) 0x00 )
|
#define ser1_STOP_BIT ( ( unsigned char ) 0x00 )
|
||||||
#define ser8_BIT_CHARS ( ( unsigned portCHAR ) 0x03 )
|
#define ser8_BIT_CHARS ( ( unsigned char ) 0x03 )
|
||||||
#define serFIFO_ON ( ( unsigned portCHAR ) 0x01 )
|
#define serFIFO_ON ( ( unsigned char ) 0x01 )
|
||||||
#define serCLEAR_FIFO ( ( unsigned portCHAR ) 0x06 )
|
#define serCLEAR_FIFO ( ( unsigned char ) 0x06 )
|
||||||
#define serWANTED_CLOCK_SCALING ( ( unsigned portLONG ) 16 )
|
#define serWANTED_CLOCK_SCALING ( ( unsigned long ) 16 )
|
||||||
|
|
||||||
/* Constants to setup and access the VIC. */
|
/* Constants to setup and access the VIC. */
|
||||||
#define serU0VIC_CHANNEL ( ( unsigned portLONG ) 0x0006 )
|
#define serU0VIC_CHANNEL ( ( unsigned long ) 0x0006 )
|
||||||
#define serU0VIC_CHANNEL_BIT ( ( unsigned portLONG ) 0x0040 )
|
#define serU0VIC_CHANNEL_BIT ( ( unsigned long ) 0x0040 )
|
||||||
#define serU0VIC_ENABLE ( ( unsigned portLONG ) 0x0020 )
|
#define serU0VIC_ENABLE ( ( unsigned long ) 0x0020 )
|
||||||
#define serCLEAR_VIC_INTERRUPT ( ( unsigned portLONG ) 0 )
|
#define serCLEAR_VIC_INTERRUPT ( ( unsigned long ) 0 )
|
||||||
|
|
||||||
/* Constants to determine the ISR source. */
|
/* Constants to determine the ISR source. */
|
||||||
#define serSOURCE_THRE ( ( unsigned portCHAR ) 0x02 )
|
#define serSOURCE_THRE ( ( unsigned char ) 0x02 )
|
||||||
#define serSOURCE_RX_TIMEOUT ( ( unsigned portCHAR ) 0x0c )
|
#define serSOURCE_RX_TIMEOUT ( ( unsigned char ) 0x0c )
|
||||||
#define serSOURCE_ERROR ( ( unsigned portCHAR ) 0x06 )
|
#define serSOURCE_ERROR ( ( unsigned char ) 0x06 )
|
||||||
#define serSOURCE_RX ( ( unsigned portCHAR ) 0x04 )
|
#define serSOURCE_RX ( ( unsigned char ) 0x04 )
|
||||||
#define serINTERRUPT_SOURCE_MASK ( ( unsigned portCHAR ) 0x0f )
|
#define serINTERRUPT_SOURCE_MASK ( ( unsigned char ) 0x0f )
|
||||||
|
|
||||||
/* Misc. */
|
/* Misc. */
|
||||||
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
||||||
|
@ -97,7 +98,7 @@
|
||||||
transmitted. */
|
transmitted. */
|
||||||
static xQueueHandle xRxedChars;
|
static xQueueHandle xRxedChars;
|
||||||
static xQueueHandle xCharsForTx;
|
static xQueueHandle xCharsForTx;
|
||||||
static volatile portLONG lTHREEmpty = pdFALSE;
|
static volatile long lTHREEmpty = pdFALSE;
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -108,15 +109,15 @@ __arm void vSerialISR( void );
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulDivisor, ulWantedClock;
|
unsigned long ulDivisor, ulWantedClock;
|
||||||
xComPortHandle xReturn = serHANDLE;
|
xComPortHandle xReturn = serHANDLE;
|
||||||
extern void ( vSerialISREntry) ( void );
|
extern void ( vSerialISREntry) ( void );
|
||||||
|
|
||||||
/* Create the queues used to hold Rx and Tx characters. */
|
/* Create the queues used to hold Rx and Tx characters. */
|
||||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
|
|
||||||
/* Initialise the THRE empty flag. */
|
/* Initialise the THRE empty flag. */
|
||||||
lTHREEmpty = pdTRUE;
|
lTHREEmpty = pdTRUE;
|
||||||
|
@ -124,7 +125,7 @@ extern void ( vSerialISREntry) ( void );
|
||||||
if(
|
if(
|
||||||
( xRxedChars != serINVALID_QUEUE ) &&
|
( xRxedChars != serINVALID_QUEUE ) &&
|
||||||
( xCharsForTx != serINVALID_QUEUE ) &&
|
( xCharsForTx != serINVALID_QUEUE ) &&
|
||||||
( ulWantedBaud != ( unsigned portLONG ) 0 )
|
( ulWantedBaud != ( unsigned long ) 0 )
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
|
@ -137,9 +138,9 @@ extern void ( vSerialISREntry) ( void );
|
||||||
U0LCR |= serDLAB;
|
U0LCR |= serDLAB;
|
||||||
|
|
||||||
/* Setup the divisor. */
|
/* Setup the divisor. */
|
||||||
U0DLL = ( unsigned portCHAR ) ( ulDivisor & ( unsigned portLONG ) 0xff );
|
U0DLL = ( unsigned char ) ( ulDivisor & ( unsigned long ) 0xff );
|
||||||
ulDivisor >>= 8;
|
ulDivisor >>= 8;
|
||||||
U0DLM = ( unsigned portCHAR ) ( ulDivisor & ( unsigned portLONG ) 0xff );
|
U0DLM = ( unsigned char ) ( ulDivisor & ( unsigned long ) 0xff );
|
||||||
|
|
||||||
/* Turn on the FIFO's and clear the buffers. */
|
/* Turn on the FIFO's and clear the buffers. */
|
||||||
U0FCR = ( serFIFO_ON | serCLEAR_FIFO );
|
U0FCR = ( serFIFO_ON | serCLEAR_FIFO );
|
||||||
|
@ -150,7 +151,7 @@ extern void ( vSerialISREntry) ( void );
|
||||||
/* Setup the VIC for the UART. */
|
/* Setup the VIC for the UART. */
|
||||||
VICIntSelect &= ~( serU0VIC_CHANNEL_BIT );
|
VICIntSelect &= ~( serU0VIC_CHANNEL_BIT );
|
||||||
VICIntEnable |= serU0VIC_CHANNEL_BIT;
|
VICIntEnable |= serU0VIC_CHANNEL_BIT;
|
||||||
VICVectAddr1 = ( unsigned portLONG ) vSerialISREntry;
|
VICVectAddr1 = ( unsigned long ) vSerialISREntry;
|
||||||
VICVectCntl1 = serU0VIC_CHANNEL | serU0VIC_ENABLE;
|
VICVectCntl1 = serU0VIC_CHANNEL | serU0VIC_ENABLE;
|
||||||
|
|
||||||
/* Enable UART0 interrupts. */
|
/* Enable UART0 interrupts. */
|
||||||
|
@ -169,7 +170,7 @@ extern void ( vSerialISREntry) ( void );
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* The port handle is not required as this driver only supports UART0. */
|
/* The port handle is not required as this driver only supports UART0. */
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
@ -187,9 +188,9 @@ signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcR
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )
|
void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )
|
||||||
{
|
{
|
||||||
signed portCHAR *pxNext;
|
signed char *pxNext;
|
||||||
|
|
||||||
/* NOTE: This implementation does not handle the queue being full as no
|
/* NOTE: This implementation does not handle the queue being full as no
|
||||||
block time is used! */
|
block time is used! */
|
||||||
|
@ -199,7 +200,7 @@ signed portCHAR *pxNext;
|
||||||
( void ) usStringLength;
|
( void ) usStringLength;
|
||||||
|
|
||||||
/* Send each character in the string, one at a time. */
|
/* Send each character in the string, one at a time. */
|
||||||
pxNext = ( signed portCHAR * ) pcString;
|
pxNext = ( signed char * ) pcString;
|
||||||
while( *pxNext )
|
while( *pxNext )
|
||||||
{
|
{
|
||||||
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
||||||
|
@ -208,7 +209,7 @@ signed portCHAR *pxNext;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
signed portBASE_TYPE xReturn;
|
signed portBASE_TYPE xReturn;
|
||||||
|
|
||||||
|
@ -218,7 +219,7 @@ signed portBASE_TYPE xReturn;
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
{
|
{
|
||||||
/* Is there space to write directly to the UART? */
|
/* Is there space to write directly to the UART? */
|
||||||
if( lTHREEmpty == ( portLONG ) pdTRUE )
|
if( lTHREEmpty == ( long ) pdTRUE )
|
||||||
{
|
{
|
||||||
/* We wrote the character directly to the UART, so was
|
/* We wrote the character directly to the UART, so was
|
||||||
successful. */
|
successful. */
|
||||||
|
@ -238,7 +239,7 @@ signed portBASE_TYPE xReturn;
|
||||||
were blocked waiting to post interrupts were not disabled. It is
|
were blocked waiting to post interrupts were not disabled. It is
|
||||||
possible that the serial ISR has emptied the Tx queue, in which
|
possible that the serial ISR has emptied the Tx queue, in which
|
||||||
case we need to start the Tx off again. */
|
case we need to start the Tx off again. */
|
||||||
if( lTHREEmpty == ( portLONG ) pdTRUE )
|
if( lTHREEmpty == ( long ) pdTRUE )
|
||||||
{
|
{
|
||||||
xQueueReceive( xCharsForTx, &cOutChar, serNO_BLOCK );
|
xQueueReceive( xCharsForTx, &cOutChar, serNO_BLOCK );
|
||||||
lTHREEmpty = pdFALSE;
|
lTHREEmpty = pdFALSE;
|
||||||
|
@ -254,7 +255,7 @@ signed portBASE_TYPE xReturn;
|
||||||
|
|
||||||
__arm void vSerialISR( void )
|
__arm void vSerialISR( void )
|
||||||
{
|
{
|
||||||
signed portCHAR cChar;
|
signed char cChar;
|
||||||
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
/* What caused the interrupt? */
|
/* What caused the interrupt? */
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -65,10 +66,10 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 0
|
#define configUSE_IDLE_HOOK 0
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 60000000 ) /* =12.0MHz xtal multiplied by 5 using the PLL. */
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 60000000 ) /* =12.0MHz xtal multiplied by 5 using the PLL. */
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 90 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 90 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) 13 * 1024 )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) 13 * 1024 )
|
||||||
#define configMAX_TASK_NAME_LEN ( 8 )
|
#define configMAX_TASK_NAME_LEN ( 8 )
|
||||||
#define configUSE_TRACE_FACILITY 0
|
#define configUSE_TRACE_FACILITY 0
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,7 +51,7 @@
|
||||||
#include "portable.h"
|
#include "portable.h"
|
||||||
#include "partest.h"
|
#include "partest.h"
|
||||||
|
|
||||||
#define partstFIRST_IO ( ( unsigned portLONG ) 0x10000 )
|
#define partstFIRST_IO ( ( unsigned long ) 0x10000 )
|
||||||
#define partstNUM_LEDS ( 8 )
|
#define partstNUM_LEDS ( 8 )
|
||||||
|
|
||||||
/*-----------------------------------------------------------
|
/*-----------------------------------------------------------
|
||||||
|
@ -66,13 +67,13 @@ void vParTestInitialise( void )
|
||||||
|
|
||||||
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulLED = partstFIRST_IO;
|
unsigned long ulLED = partstFIRST_IO;
|
||||||
|
|
||||||
if( uxLED < partstNUM_LEDS )
|
if( uxLED < partstNUM_LEDS )
|
||||||
{
|
{
|
||||||
/* Rotate to the wanted bit of port 0. Only P16 to P23 have an LED
|
/* Rotate to the wanted bit of port 0. Only P16 to P23 have an LED
|
||||||
attached. */
|
attached. */
|
||||||
ulLED <<= ( unsigned portLONG ) uxLED;
|
ulLED <<= ( unsigned long ) uxLED;
|
||||||
|
|
||||||
/* Set or clear the output. */
|
/* Set or clear the output. */
|
||||||
if( xValue )
|
if( xValue )
|
||||||
|
@ -89,13 +90,13 @@ unsigned portLONG ulLED = partstFIRST_IO;
|
||||||
|
|
||||||
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulLED = partstFIRST_IO, ulCurrentState;
|
unsigned long ulLED = partstFIRST_IO, ulCurrentState;
|
||||||
|
|
||||||
if( uxLED < partstNUM_LEDS )
|
if( uxLED < partstNUM_LEDS )
|
||||||
{
|
{
|
||||||
/* Rotate to the wanted bit of port 0. Only P10 to P13 have an LED
|
/* Rotate to the wanted bit of port 0. Only P10 to P13 have an LED
|
||||||
attached. */
|
attached. */
|
||||||
ulLED <<= ( unsigned portLONG ) uxLED;
|
ulLED <<= ( unsigned long ) uxLED;
|
||||||
|
|
||||||
/* If this bit is already set, clear it, and visa versa. */
|
/* If this bit is already set, clear it, and visa versa. */
|
||||||
ulCurrentState = IOPIN1;
|
ulCurrentState = IOPIN1;
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -67,19 +68,19 @@
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/* Constants to setup and access the UART. */
|
/* Constants to setup and access the UART. */
|
||||||
#define serDLAB ( ( unsigned portCHAR ) 0x80 )
|
#define serDLAB ( ( unsigned char ) 0x80 )
|
||||||
#define serENABLE_INTERRUPTS ( ( unsigned portCHAR ) 0x03 )
|
#define serENABLE_INTERRUPTS ( ( unsigned char ) 0x03 )
|
||||||
#define serNO_PARITY ( ( unsigned portCHAR ) 0x00 )
|
#define serNO_PARITY ( ( unsigned char ) 0x00 )
|
||||||
#define ser1_STOP_BIT ( ( unsigned portCHAR ) 0x00 )
|
#define ser1_STOP_BIT ( ( unsigned char ) 0x00 )
|
||||||
#define ser8_BIT_CHARS ( ( unsigned portCHAR ) 0x03 )
|
#define ser8_BIT_CHARS ( ( unsigned char ) 0x03 )
|
||||||
#define serFIFO_ON ( ( unsigned portCHAR ) 0x01 )
|
#define serFIFO_ON ( ( unsigned char ) 0x01 )
|
||||||
#define serCLEAR_FIFO ( ( unsigned portCHAR ) 0x06 )
|
#define serCLEAR_FIFO ( ( unsigned char ) 0x06 )
|
||||||
#define serWANTED_CLOCK_SCALING ( ( unsigned portLONG ) 16 )
|
#define serWANTED_CLOCK_SCALING ( ( unsigned long ) 16 )
|
||||||
|
|
||||||
/* Constants to setup and access the VIC. */
|
/* Constants to setup and access the VIC. */
|
||||||
#define serU1VIC_CHANNEL ( ( unsigned portLONG ) 0x0007 )
|
#define serU1VIC_CHANNEL ( ( unsigned long ) 0x0007 )
|
||||||
#define serU1VIC_CHANNEL_BIT ( ( unsigned portLONG ) 0x0080 )
|
#define serU1VIC_CHANNEL_BIT ( ( unsigned long ) 0x0080 )
|
||||||
#define serU1VIC_ENABLE ( ( unsigned portLONG ) 0x0020 )
|
#define serU1VIC_ENABLE ( ( unsigned long ) 0x0020 )
|
||||||
|
|
||||||
/* Misc. */
|
/* Misc. */
|
||||||
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
||||||
|
@ -87,15 +88,15 @@
|
||||||
#define serNO_BLOCK ( ( portTickType ) 0 )
|
#define serNO_BLOCK ( ( portTickType ) 0 )
|
||||||
|
|
||||||
/* Constant to access the VIC. */
|
/* Constant to access the VIC. */
|
||||||
#define serCLEAR_VIC_INTERRUPT ( ( unsigned portLONG ) 0 )
|
#define serCLEAR_VIC_INTERRUPT ( ( unsigned long ) 0 )
|
||||||
|
|
||||||
/* Constants to determine the ISR source. */
|
/* Constants to determine the ISR source. */
|
||||||
#define serSOURCE_THRE ( ( unsigned portCHAR ) 0x02 )
|
#define serSOURCE_THRE ( ( unsigned char ) 0x02 )
|
||||||
#define serSOURCE_RX_TIMEOUT ( ( unsigned portCHAR ) 0x0c )
|
#define serSOURCE_RX_TIMEOUT ( ( unsigned char ) 0x0c )
|
||||||
#define serSOURCE_ERROR ( ( unsigned portCHAR ) 0x06 )
|
#define serSOURCE_ERROR ( ( unsigned char ) 0x06 )
|
||||||
#define serSOURCE_RX ( ( unsigned portCHAR ) 0x04 )
|
#define serSOURCE_RX ( ( unsigned char ) 0x04 )
|
||||||
#define serINTERRUPT_SOURCE_MASK ( ( unsigned portCHAR ) 0x0f )
|
#define serINTERRUPT_SOURCE_MASK ( ( unsigned char ) 0x0f )
|
||||||
#define serINTERRUPT_IS_PENDING ( ( unsigned portCHAR ) 0x01 )
|
#define serINTERRUPT_IS_PENDING ( ( unsigned char ) 0x01 )
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -117,18 +118,18 @@ static xQueueHandle xRxedChars;
|
||||||
static xQueueHandle xCharsForTx;
|
static xQueueHandle xCharsForTx;
|
||||||
|
|
||||||
/* Communication flag between the interrupt service routine and serial API. */
|
/* Communication flag between the interrupt service routine and serial API. */
|
||||||
static volatile portLONG lTHREEmpty;
|
static volatile long lTHREEmpty;
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulDivisor, ulWantedClock;
|
unsigned long ulDivisor, ulWantedClock;
|
||||||
xComPortHandle xReturn = serHANDLE;
|
xComPortHandle xReturn = serHANDLE;
|
||||||
|
|
||||||
/* Create the queues used to hold Rx and Tx characters. */
|
/* Create the queues used to hold Rx and Tx characters. */
|
||||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
|
|
||||||
/* Initialise the THRE empty flag. */
|
/* Initialise the THRE empty flag. */
|
||||||
lTHREEmpty = pdTRUE;
|
lTHREEmpty = pdTRUE;
|
||||||
|
@ -136,7 +137,7 @@ xComPortHandle xReturn = serHANDLE;
|
||||||
if(
|
if(
|
||||||
( xRxedChars != serINVALID_QUEUE ) &&
|
( xRxedChars != serINVALID_QUEUE ) &&
|
||||||
( xCharsForTx != serINVALID_QUEUE ) &&
|
( xCharsForTx != serINVALID_QUEUE ) &&
|
||||||
( ulWantedBaud != ( unsigned portLONG ) 0 )
|
( ulWantedBaud != ( unsigned long ) 0 )
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
portENTER_CRITICAL()
|
portENTER_CRITICAL()
|
||||||
|
@ -149,9 +150,9 @@ xComPortHandle xReturn = serHANDLE;
|
||||||
U1LCR |= serDLAB;
|
U1LCR |= serDLAB;
|
||||||
|
|
||||||
/* Setup the divisor. */
|
/* Setup the divisor. */
|
||||||
U1DLL = ( unsigned portCHAR ) ( ulDivisor & ( unsigned portLONG ) 0xff );
|
U1DLL = ( unsigned char ) ( ulDivisor & ( unsigned long ) 0xff );
|
||||||
ulDivisor >>= 8;
|
ulDivisor >>= 8;
|
||||||
U1DLM = ( unsigned portCHAR ) ( ulDivisor & ( unsigned portLONG ) 0xff );
|
U1DLM = ( unsigned char ) ( ulDivisor & ( unsigned long ) 0xff );
|
||||||
|
|
||||||
/* Turn on the FIFO's and clear the buffers. */
|
/* Turn on the FIFO's and clear the buffers. */
|
||||||
U1FCR = ( serFIFO_ON | serCLEAR_FIFO );
|
U1FCR = ( serFIFO_ON | serCLEAR_FIFO );
|
||||||
|
@ -162,7 +163,7 @@ xComPortHandle xReturn = serHANDLE;
|
||||||
/* Setup the VIC for the UART. */
|
/* Setup the VIC for the UART. */
|
||||||
VICIntSelect &= ~( serU1VIC_CHANNEL_BIT );
|
VICIntSelect &= ~( serU1VIC_CHANNEL_BIT );
|
||||||
VICIntEnable |= serU1VIC_CHANNEL_BIT;
|
VICIntEnable |= serU1VIC_CHANNEL_BIT;
|
||||||
VICVectAddr1 = ( unsigned portLONG ) vUART_ISREntry;
|
VICVectAddr1 = ( unsigned long ) vUART_ISREntry;
|
||||||
VICVectCntl1 = serU1VIC_CHANNEL | serU1VIC_ENABLE;
|
VICVectCntl1 = serU1VIC_CHANNEL | serU1VIC_ENABLE;
|
||||||
|
|
||||||
/* Enable UART0 interrupts. */
|
/* Enable UART0 interrupts. */
|
||||||
|
@ -179,7 +180,7 @@ xComPortHandle xReturn = serHANDLE;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* The port handle is not required as this driver only supports UART0. */
|
/* The port handle is not required as this driver only supports UART0. */
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
@ -197,9 +198,9 @@ signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcR
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )
|
void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )
|
||||||
{
|
{
|
||||||
signed portCHAR *pxNext;
|
signed char *pxNext;
|
||||||
|
|
||||||
/* NOTE: This implementation does not handle the queue being full as no
|
/* NOTE: This implementation does not handle the queue being full as no
|
||||||
block time is used! */
|
block time is used! */
|
||||||
|
@ -209,7 +210,7 @@ signed portCHAR *pxNext;
|
||||||
( void ) usStringLength;
|
( void ) usStringLength;
|
||||||
|
|
||||||
/* Send each character in the string, one at a time. */
|
/* Send each character in the string, one at a time. */
|
||||||
pxNext = ( signed portCHAR * ) pcString;
|
pxNext = ( signed char * ) pcString;
|
||||||
while( *pxNext )
|
while( *pxNext )
|
||||||
{
|
{
|
||||||
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
||||||
|
@ -218,7 +219,7 @@ signed portCHAR *pxNext;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
signed portBASE_TYPE xReturn;
|
signed portBASE_TYPE xReturn;
|
||||||
|
|
||||||
|
@ -228,7 +229,7 @@ signed portBASE_TYPE xReturn;
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
{
|
{
|
||||||
/* Is there space to write directly to the UART? */
|
/* Is there space to write directly to the UART? */
|
||||||
if( lTHREEmpty == ( portLONG ) pdTRUE )
|
if( lTHREEmpty == ( long ) pdTRUE )
|
||||||
{
|
{
|
||||||
/* We wrote the character directly to the UART, so was
|
/* We wrote the character directly to the UART, so was
|
||||||
successful. */
|
successful. */
|
||||||
|
@ -248,7 +249,7 @@ signed portBASE_TYPE xReturn;
|
||||||
were blocked waiting to post interrupts were not disabled. It is
|
were blocked waiting to post interrupts were not disabled. It is
|
||||||
possible that the serial ISR has emptied the Tx queue, in which
|
possible that the serial ISR has emptied the Tx queue, in which
|
||||||
case we need to start the Tx off again. */
|
case we need to start the Tx off again. */
|
||||||
if( lTHREEmpty == ( portLONG ) pdTRUE )
|
if( lTHREEmpty == ( long ) pdTRUE )
|
||||||
{
|
{
|
||||||
xQueueReceive( xCharsForTx, &cOutChar, serNO_BLOCK );
|
xQueueReceive( xCharsForTx, &cOutChar, serNO_BLOCK );
|
||||||
lTHREEmpty = pdFALSE;
|
lTHREEmpty = pdFALSE;
|
||||||
|
@ -264,9 +265,9 @@ signed portBASE_TYPE xReturn;
|
||||||
|
|
||||||
void vUART_ISRHandler( void )
|
void vUART_ISRHandler( void )
|
||||||
{
|
{
|
||||||
signed portCHAR cChar;
|
signed char cChar;
|
||||||
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
unsigned portCHAR ucInterrupt;
|
unsigned char ucInterrupt;
|
||||||
|
|
||||||
ucInterrupt = U1IIR;
|
ucInterrupt = U1IIR;
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
;/*
|
;/*
|
||||||
; FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
; FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
;
|
;
|
||||||
; This file is part of the FreeRTOS distribution.
|
; This file is part of the FreeRTOS distribution.
|
||||||
;
|
;
|
||||||
; FreeRTOS is free software; you can redistribute it and/or modify it under
|
; 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
|
; 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 exception to the GPL is included to allow you to distribute a
|
; **NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
; combined work that includes FreeRTOS without being obliged to provide the
|
; combined work that includes FreeRTOS without being obliged to provide the
|
||||||
; source code for proprietary components outside of the FreeRTOS kernel.
|
; source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
; Alternative commercial license and support terms are also available upon
|
; Alternative commercial license and support terms are also available upon
|
||||||
; request. See the licensing section of http://www.FreeRTOS.org for full
|
; request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
; license details.
|
; license details.
|
||||||
;
|
;
|
||||||
; FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
; FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
; more details.
|
; more details.
|
||||||
;
|
;
|
||||||
; You should have received a copy of the GNU General Public License along
|
; You should have received a copy of the GNU General Public License along
|
||||||
; with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
; with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
; Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
; Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
; ***************************************************************************
|
; ***************************************************************************
|
||||||
; * *
|
; * *
|
||||||
; * Looking for a quick start? Then check out the FreeRTOS eBook! *
|
; * The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
; * See http://www.FreeRTOS.org/Documentation for details *
|
; * small fee. Help yourself get started quickly while also helping the *
|
||||||
; * *
|
; * FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
; ***************************************************************************
|
; * *
|
||||||
|
; ***************************************************************************
|
||||||
;
|
;
|
||||||
; 1 tab == 4 spaces!
|
; 1 tab == 4 spaces!
|
||||||
;
|
;
|
||||||
; Please ensure to read the configuration and relevant port sections of the
|
; Please ensure to read the configuration and relevant port sections of the
|
||||||
; online documentation.
|
; online documentation.
|
||||||
;
|
;
|
||||||
; http://www.FreeRTOS.org - Documentation, latest information, license and
|
; http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
; contact details.
|
; contact details.
|
||||||
;
|
;
|
||||||
; http://www.SafeRTOS.com - A version that is certified for use in safety
|
; http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
; critical systems.
|
; critical systems.
|
||||||
;
|
;
|
||||||
; http://www.OpenRTOS.com - Commercial support, development, porting,
|
; http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
; licensing and training services.
|
; licensing and training services.
|
||||||
;*/
|
;*/
|
||||||
|
|
||||||
INCLUDE portmacro.inc
|
INCLUDE portmacro.inc
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -80,7 +81,7 @@ the CPU frequency. */
|
||||||
#define configCPU_CLOCK_HZ ( 58982400UL ) /* =14.7456MHz xtal multiplied by 4 using the PLL. */
|
#define configCPU_CLOCK_HZ ( 58982400UL ) /* =14.7456MHz xtal multiplied by 4 using the PLL. */
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 6 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 6 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 128 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 18 * 1024 ) )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 18 * 1024 ) )
|
||||||
#define configMAX_TASK_NAME_LEN ( 15 )
|
#define configMAX_TASK_NAME_LEN ( 15 )
|
||||||
#define configUSE_TRACE_FACILITY 1
|
#define configUSE_TRACE_FACILITY 1
|
||||||
|
|
|
@ -50,9 +50,9 @@
|
||||||
</Watch3>
|
</Watch3>
|
||||||
<Watch4>
|
<Watch4>
|
||||||
<Watches active="0" update="Never" >
|
<Watches active="0" update="Never" >
|
||||||
<Watchpoint evalMode="1" linenumber="0" evalType="1" radix="16" name="pxMutex" expression="pxMutex" filename="" />
|
|
||||||
<Watchpoint evalMode="1" linenumber="0" evalType="1" radix="-1" name="pxCurrentTCB" expression="pxCurrentTCB" filename="" />
|
|
||||||
<Watchpoint evalMode="1" linenumber="0" evalType="1" radix="-1" name="(xQUEUE *)xMutex" expression="(xQUEUE *)xMutex" filename="" />
|
<Watchpoint evalMode="1" linenumber="0" evalType="1" radix="-1" name="(xQUEUE *)xMutex" expression="(xQUEUE *)xMutex" filename="" />
|
||||||
|
<Watchpoint evalMode="1" linenumber="0" evalType="1" radix="-1" name="pxCurrentTCB" expression="pxCurrentTCB" filename="" />
|
||||||
|
<Watchpoint evalMode="1" linenumber="0" evalType="1" radix="16" name="pxMutex" expression="pxMutex" filename="" />
|
||||||
</Watches>
|
</Watches>
|
||||||
</Watch4>
|
</Watch4>
|
||||||
<Files>
|
<Files>
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -96,7 +97,7 @@
|
||||||
#include "semtest.h"
|
#include "semtest.h"
|
||||||
|
|
||||||
/* Hardware configuration definitions. */
|
/* Hardware configuration definitions. */
|
||||||
#define mainBUS_CLK_FULL ( ( unsigned portCHAR ) 0x01 )
|
#define mainBUS_CLK_FULL ( ( unsigned char ) 0x01 )
|
||||||
#define mainLED_BIT 0x80000000
|
#define mainLED_BIT 0x80000000
|
||||||
#define mainP0_14__EINT_1 ( 2 << 28 )
|
#define mainP0_14__EINT_1 ( 2 << 28 )
|
||||||
#define mainEINT_1_EDGE_SENSITIVE 2
|
#define mainEINT_1_EDGE_SENSITIVE 2
|
||||||
|
@ -175,7 +176,7 @@ int main( void )
|
||||||
VPBDIV = mainBUS_CLK_FULL;
|
VPBDIV = mainBUS_CLK_FULL;
|
||||||
|
|
||||||
/* Create the queue used to pass message to vPrintTask. */
|
/* Create the queue used to pass message to vPrintTask. */
|
||||||
xPrintQueue = xQueueCreate( mainQUEUE_SIZE, sizeof( portCHAR * ) );
|
xPrintQueue = xQueueCreate( mainQUEUE_SIZE, sizeof( char * ) );
|
||||||
|
|
||||||
/* Create the semaphore used to wake vButtonHandlerTask(). */
|
/* Create the semaphore used to wake vButtonHandlerTask(). */
|
||||||
vSemaphoreCreateBinary( xButtonSemaphore );
|
vSemaphoreCreateBinary( xButtonSemaphore );
|
||||||
|
@ -244,8 +245,8 @@ static void vCheckTask( void *pvParameters )
|
||||||
{
|
{
|
||||||
portBASE_TYPE xErrorOccurred = pdFALSE;
|
portBASE_TYPE xErrorOccurred = pdFALSE;
|
||||||
portTickType xLastExecutionTime;
|
portTickType xLastExecutionTime;
|
||||||
const portCHAR * const pcPassMessage = "PASS\n";
|
const char * const pcPassMessage = "PASS\n";
|
||||||
const portCHAR * const pcFailMessage = "FAIL\n";
|
const char * const pcFailMessage = "FAIL\n";
|
||||||
|
|
||||||
/* Just to remove compiler warnings. */
|
/* Just to remove compiler warnings. */
|
||||||
( void ) pvParameters;
|
( void ) pvParameters;
|
||||||
|
@ -319,7 +320,7 @@ const portCHAR * const pcFailMessage = "FAIL\n";
|
||||||
|
|
||||||
static void vPrintTask( void *pvParameters )
|
static void vPrintTask( void *pvParameters )
|
||||||
{
|
{
|
||||||
portCHAR *pcMessage;
|
char *pcMessage;
|
||||||
|
|
||||||
/* Just to stop compiler warnings. */
|
/* Just to stop compiler warnings. */
|
||||||
( void ) pvParameters;
|
( void ) pvParameters;
|
||||||
|
@ -339,9 +340,9 @@ portCHAR *pcMessage;
|
||||||
|
|
||||||
static void vButtonHandlerTask( void *pvParameters )
|
static void vButtonHandlerTask( void *pvParameters )
|
||||||
{
|
{
|
||||||
static signed portCHAR cListBuffer[ mainLIST_BUFFER_SIZE ];
|
static signed char cListBuffer[ mainLIST_BUFFER_SIZE ];
|
||||||
const signed portCHAR *pcList = &( cListBuffer[ 0 ] );
|
const signed char *pcList = &( cListBuffer[ 0 ] );
|
||||||
const portCHAR * const pcHeader = "\nTask State Priority Stack #\n************************************************";
|
const char * const pcHeader = "\nTask State Priority Stack #\n************************************************";
|
||||||
extern void (vButtonISRWrapper) ( void );
|
extern void (vButtonISRWrapper) ( void );
|
||||||
|
|
||||||
/* Just to stop compiler warnings. */
|
/* Just to stop compiler warnings. */
|
||||||
|
@ -358,7 +359,7 @@ extern void (vButtonISRWrapper) ( void );
|
||||||
/* Setup the VIC for EINT 1. */
|
/* Setup the VIC for EINT 1. */
|
||||||
VICIntSelect &= ~mainEINT_1_VIC_CHANNEL_BIT;
|
VICIntSelect &= ~mainEINT_1_VIC_CHANNEL_BIT;
|
||||||
VICIntEnable |= mainEINT_1_VIC_CHANNEL_BIT;
|
VICIntEnable |= mainEINT_1_VIC_CHANNEL_BIT;
|
||||||
VICVectAddr1 = ( portLONG ) vButtonISRWrapper;
|
VICVectAddr1 = ( long ) vButtonISRWrapper;
|
||||||
VICVectCntl1 = mainEINT_1_ENABLE_BIT | mainEINT_1_CHANNEL;
|
VICVectCntl1 = mainEINT_1_ENABLE_BIT | mainEINT_1_CHANNEL;
|
||||||
}
|
}
|
||||||
portEXIT_CRITICAL();
|
portEXIT_CRITICAL();
|
||||||
|
@ -384,7 +385,7 @@ extern void (vButtonISRWrapper) ( void );
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed portCHAR *pcTaskName )
|
void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName )
|
||||||
{
|
{
|
||||||
/* Check pcTaskName for the name of the offending task, or pxCurrentTCB
|
/* Check pcTaskName for the name of the offending task, or pxCurrentTCB
|
||||||
if pcTaskName has itself been corrupted. */
|
if pcTaskName has itself been corrupted. */
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
#include "semphr.h"
|
#include "semphr.h"
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -76,10 +77,10 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 0
|
#define configUSE_IDLE_HOOK 0
|
||||||
#define configUSE_TICK_HOOK 1
|
#define configUSE_TICK_HOOK 1
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 48000000 ) /* =12Mhz xtal multiplied by 5 using the PLL. */
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 48000000 ) /* =12Mhz xtal multiplied by 5 using the PLL. */
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 104 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 104 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 18 * 1024 ) )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 18 * 1024 ) )
|
||||||
#define configMAX_TASK_NAME_LEN ( 10 )
|
#define configMAX_TASK_NAME_LEN ( 10 )
|
||||||
#define configUSE_TRACE_FACILITY 1
|
#define configUSE_TRACE_FACILITY 1
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
#/*
|
#/*
|
||||||
# FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
# FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
#
|
#
|
||||||
# This file is part of the FreeRTOS distribution.
|
# This file is part of the FreeRTOS distribution.
|
||||||
#
|
#
|
||||||
# FreeRTOS is free software; you can redistribute it and/or modify it under
|
# 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
|
# 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 exception to the GPL is included to allow you to distribute a
|
# **NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
# combined work that includes FreeRTOS without being obliged to provide the
|
# combined work that includes FreeRTOS without being obliged to provide the
|
||||||
# source code for proprietary components outside of the FreeRTOS kernel.
|
# source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
# Alternative commercial license and support terms are also available upon
|
# Alternative commercial license and support terms are also available upon
|
||||||
# request. See the licensing section of http://www.FreeRTOS.org for full
|
# request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
# license details.
|
# license details.
|
||||||
#
|
#
|
||||||
# FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
# FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
# more details.
|
# more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License along
|
# You should have received a copy of the GNU General Public License along
|
||||||
# with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
# with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
# Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
# Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# ***************************************************************************
|
# ***************************************************************************
|
||||||
# * *
|
# * *
|
||||||
# * Looking for a quick start? Then check out the FreeRTOS eBook! *
|
# * The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
# * See http://www.FreeRTOS.org/Documentation for details *
|
# * small fee. Help yourself get started quickly while also helping the *
|
||||||
# * *
|
# * FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
# ***************************************************************************
|
# * *
|
||||||
|
# ***************************************************************************
|
||||||
#
|
#
|
||||||
# 1 tab == 4 spaces!
|
# 1 tab == 4 spaces!
|
||||||
#
|
#
|
||||||
# Please ensure to read the configuration and relevant port sections of the
|
# Please ensure to read the configuration and relevant port sections of the
|
||||||
# online documentation.
|
# online documentation.
|
||||||
#
|
#
|
||||||
# http://www.FreeRTOS.org - Documentation, latest information, license and
|
# http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
# contact details.
|
# contact details.
|
||||||
#
|
#
|
||||||
# http://www.SafeRTOS.com - A version that is certified for use in safety
|
# http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
# critical systems.
|
# critical systems.
|
||||||
#
|
#
|
||||||
# http://www.OpenRTOS.com - Commercial support, development, porting,
|
# http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
# licensing and training services.
|
# licensing and training services.
|
||||||
#*/
|
#*/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* FreeRTOS.org includes. */
|
/* FreeRTOS.org includes. */
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
/* Standard includes. */
|
/* Standard includes. */
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -78,10 +79,10 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 0
|
#define configUSE_IDLE_HOOK 0
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 57600000 )
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 57600000 )
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 120 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 120 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 18 * 1024 ) )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 18 * 1024 ) )
|
||||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||||
#define configUSE_TRACE_FACILITY 1
|
#define configUSE_TRACE_FACILITY 1
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* FreeRTOS.org includes. */
|
/* FreeRTOS.org includes. */
|
||||||
|
@ -51,9 +52,9 @@
|
||||||
/* Demo application includes. */
|
/* Demo application includes. */
|
||||||
#include "partest.h"
|
#include "partest.h"
|
||||||
|
|
||||||
#define partstFIRST_IO ( ( unsigned portLONG ) 0x01 )
|
#define partstFIRST_IO ( ( unsigned long ) 0x01 )
|
||||||
#define partstNUM_LEDS ( 8 )
|
#define partstNUM_LEDS ( 8 )
|
||||||
#define partstALL_OUTPUTS_OFF ( ( unsigned portLONG ) 0xff )
|
#define partstALL_OUTPUTS_OFF ( ( unsigned long ) 0xff )
|
||||||
|
|
||||||
/*-----------------------------------------------------------
|
/*-----------------------------------------------------------
|
||||||
* Simple parallel port IO routines.
|
* Simple parallel port IO routines.
|
||||||
|
@ -73,12 +74,12 @@ void vParTestInitialise( void )
|
||||||
|
|
||||||
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulLED = partstFIRST_IO;
|
unsigned long ulLED = partstFIRST_IO;
|
||||||
|
|
||||||
if( uxLED < partstNUM_LEDS )
|
if( uxLED < partstNUM_LEDS )
|
||||||
{
|
{
|
||||||
/* Rotate to the wanted bit of port */
|
/* Rotate to the wanted bit of port */
|
||||||
ulLED <<= ( unsigned portLONG ) uxLED;
|
ulLED <<= ( unsigned long ) uxLED;
|
||||||
|
|
||||||
/* Set of clear the output. */
|
/* Set of clear the output. */
|
||||||
if( xValue )
|
if( xValue )
|
||||||
|
@ -95,13 +96,13 @@ unsigned portLONG ulLED = partstFIRST_IO;
|
||||||
|
|
||||||
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulLED = partstFIRST_IO, ulCurrentState;
|
unsigned long ulLED = partstFIRST_IO, ulCurrentState;
|
||||||
|
|
||||||
if( uxLED < partstNUM_LEDS )
|
if( uxLED < partstNUM_LEDS )
|
||||||
{
|
{
|
||||||
/* Rotate to the wanted bit of port 0. Only P10 to P13 have an LED
|
/* Rotate to the wanted bit of port 0. Only P10 to P13 have an LED
|
||||||
attached. */
|
attached. */
|
||||||
ulLED <<= ( unsigned portLONG ) uxLED;
|
ulLED <<= ( unsigned long ) uxLED;
|
||||||
|
|
||||||
/* If this bit is already set, clear it, and visa versa. */
|
/* If this bit is already set, clear it, and visa versa. */
|
||||||
ulCurrentState = FIO2PIN;
|
ulCurrentState = FIO2PIN;
|
||||||
|
@ -119,9 +120,9 @@ unsigned portLONG ulLED = partstFIRST_IO, ulCurrentState;
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
unsigned portBASE_TYPE uxParTextGetLED( unsigned portBASE_TYPE uxLED )
|
unsigned portBASE_TYPE uxParTextGetLED( unsigned portBASE_TYPE uxLED )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulLED = partstFIRST_IO;
|
unsigned long ulLED = partstFIRST_IO;
|
||||||
|
|
||||||
ulLED <<= ( unsigned portLONG ) uxLED;
|
ulLED <<= ( unsigned long ) uxLED;
|
||||||
|
|
||||||
return ( FIO2PIN & ulLED );
|
return ( FIO2PIN & ulLED );
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Environment includes. */
|
/* Environment includes. */
|
||||||
|
@ -120,7 +121,7 @@ int main (void)
|
||||||
xLCDQueue = xQueueCreate( mainQUEUE_SIZE, sizeof( xLCDMessage ) );
|
xLCDQueue = xQueueCreate( mainQUEUE_SIZE, sizeof( xLCDMessage ) );
|
||||||
|
|
||||||
/* Create the lwIP task. This uses the lwIP RTOS abstraction layer.*/
|
/* Create the lwIP task. This uses the lwIP RTOS abstraction layer.*/
|
||||||
xTaskCreate( vuIP_Task, ( signed portCHAR * ) "uIP", mainBASIC_WEB_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY - 1, NULL );
|
xTaskCreate( vuIP_Task, ( signed char * ) "uIP", mainBASIC_WEB_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY - 1, NULL );
|
||||||
|
|
||||||
/* Start the standard demo tasks - these serve no useful purpose other than
|
/* Start the standard demo tasks - these serve no useful purpose other than
|
||||||
to demonstrate the FreeRTOS API being used and to test the port. */
|
to demonstrate the FreeRTOS API being used and to test the port. */
|
||||||
|
@ -132,8 +133,8 @@ int main (void)
|
||||||
vStartIntegerMathTasks( mainINTEGER_TASK_PRIORITY );
|
vStartIntegerMathTasks( mainINTEGER_TASK_PRIORITY );
|
||||||
|
|
||||||
/* Start the tasks defined within this file/specific to this demo. */
|
/* Start the tasks defined within this file/specific to this demo. */
|
||||||
xTaskCreate( vCheckTask, ( signed portCHAR * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
xTaskCreate( vCheckTask, ( signed char * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
||||||
xTaskCreate( vLCDTask, ( signed portCHAR * ) "LCD", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY - 1, NULL );
|
xTaskCreate( vLCDTask, ( signed char * ) "LCD", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY - 1, NULL );
|
||||||
|
|
||||||
/* The suicide tasks must be created last as they need to know how many
|
/* The suicide tasks must be created last as they need to know how many
|
||||||
tasks were running prior to their creation in order to ascertain whether
|
tasks were running prior to their creation in order to ascertain whether
|
||||||
|
@ -222,7 +223,7 @@ xLCDMessage xMessage;
|
||||||
LCD_cur_off();
|
LCD_cur_off();
|
||||||
LCD_cls();
|
LCD_cls();
|
||||||
LCD_gotoxy( 1, 1 );
|
LCD_gotoxy( 1, 1 );
|
||||||
LCD_puts( ( signed portCHAR * ) "www.FreeRTOS.org" );
|
LCD_puts( ( signed char * ) "www.FreeRTOS.org" );
|
||||||
|
|
||||||
for( ;; )
|
for( ;; )
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
/* Standard includes. */
|
/* Standard includes. */
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -64,10 +65,10 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 0
|
#define configUSE_IDLE_HOOK 0
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 48000000 )
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 48000000 )
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 100 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 100 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) 20480 )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) 20480 )
|
||||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||||
#define configUSE_TRACE_FACILITY 0
|
#define configUSE_TRACE_FACILITY 0
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Library includes. */
|
/* Library includes. */
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -103,7 +104,7 @@
|
||||||
#define mainCHECK_TASK_LED ( 4 )
|
#define mainCHECK_TASK_LED ( 4 )
|
||||||
|
|
||||||
/* Constants for the ComTest tasks. */
|
/* Constants for the ComTest tasks. */
|
||||||
#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 115200 )
|
#define mainCOM_TEST_BAUD_RATE ( ( unsigned long ) 115200 )
|
||||||
#define mainCOM_TEST_LED ( 6 ) /* The LED built onto the kickstart board. */
|
#define mainCOM_TEST_LED ( 6 ) /* The LED built onto the kickstart board. */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -123,7 +124,7 @@ static void prvSetupHardware( void );
|
||||||
* Checks that all the demo application tasks are still executing without error
|
* Checks that all the demo application tasks are still executing without error
|
||||||
* - as described at the top of the file. Called by vErrorChecks().
|
* - as described at the top of the file. Called by vErrorChecks().
|
||||||
*/
|
*/
|
||||||
static portLONG prvCheckOtherTasksAreStillRunning( void );
|
static long prvCheckOtherTasksAreStillRunning( void );
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
@ -216,9 +217,9 @@ portTickType xLastWakeTime;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
static portLONG prvCheckOtherTasksAreStillRunning( void )
|
static long prvCheckOtherTasksAreStillRunning( void )
|
||||||
{
|
{
|
||||||
portLONG lReturn = ( portLONG ) pdPASS;
|
long lReturn = ( long ) pdPASS;
|
||||||
|
|
||||||
/* Check all the demo tasks (other than the flash tasks) to ensure
|
/* Check all the demo tasks (other than the flash tasks) to ensure
|
||||||
that they are all still running, and that none of them have detected
|
that they are all still running, and that none of them have detected
|
||||||
|
@ -226,32 +227,32 @@ portLONG lReturn = ( portLONG ) pdPASS;
|
||||||
|
|
||||||
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xArePollingQueuesStillRunning() != pdTRUE )
|
if( xArePollingQueuesStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreComTestTasksStillRunning() != pdTRUE )
|
if( xAreComTestTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
||||||
{
|
{
|
||||||
lReturn = ( portLONG ) pdFAIL;
|
lReturn = ( long ) pdFAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return lReturn;
|
return lReturn;
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -91,13 +92,13 @@ __arm void vSerialISR( void );
|
||||||
/*
|
/*
|
||||||
* See the serial2.h header file.
|
* See the serial2.h header file.
|
||||||
*/
|
*/
|
||||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||||
{
|
{
|
||||||
xComPortHandle xReturn;
|
xComPortHandle xReturn;
|
||||||
|
|
||||||
/* Create the queues used to hold Rx and Tx characters. */
|
/* Create the queues used to hold Rx and Tx characters. */
|
||||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
|
|
||||||
/* If the queues were created correctly then setup the serial port
|
/* If the queues were created correctly then setup the serial port
|
||||||
hardware. */
|
hardware. */
|
||||||
|
@ -137,7 +138,7 @@ xComPortHandle xReturn;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* The port handle is not required as this driver only supports one port. */
|
/* The port handle is not required as this driver only supports one port. */
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
@ -155,9 +156,9 @@ signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcR
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )
|
void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )
|
||||||
{
|
{
|
||||||
signed portCHAR *pxNext;
|
signed char *pxNext;
|
||||||
|
|
||||||
/* A couple of parameters that this port does not use. */
|
/* A couple of parameters that this port does not use. */
|
||||||
( void ) usStringLength;
|
( void ) usStringLength;
|
||||||
|
@ -170,7 +171,7 @@ signed portCHAR *pxNext;
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
|
||||||
/* Send each character in the string, one at a time. */
|
/* Send each character in the string, one at a time. */
|
||||||
pxNext = ( signed portCHAR * ) pcString;
|
pxNext = ( signed char * ) pcString;
|
||||||
while( *pxNext )
|
while( *pxNext )
|
||||||
{
|
{
|
||||||
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
||||||
|
@ -179,7 +180,7 @@ signed portCHAR *pxNext;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* Place the character in the queue of characters to be transmitted. */
|
/* Place the character in the queue of characters to be transmitted. */
|
||||||
if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )
|
if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )
|
||||||
|
@ -209,8 +210,8 @@ within serialISR.s79 which in turn calls this function. See the port
|
||||||
documentation on the FreeRTOS.org website for more information. */
|
documentation on the FreeRTOS.org website for more information. */
|
||||||
__arm void vSerialISR( void )
|
__arm void vSerialISR( void )
|
||||||
{
|
{
|
||||||
unsigned portSHORT usStatus;
|
unsigned short usStatus;
|
||||||
signed portCHAR cChar;
|
signed char cChar;
|
||||||
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
/* What caused the interrupt? */
|
/* What caused the interrupt? */
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -66,10 +67,10 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 0
|
#define configUSE_IDLE_HOOK 0
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 60000000 ) /* Timer clock. */
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 60000000 ) /* Timer clock. */
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 100 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 100 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) 12800 )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) 12800 )
|
||||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||||
#define configUSE_TRACE_FACILITY 0
|
#define configUSE_TRACE_FACILITY 0
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Library includes. */
|
/* Library includes. */
|
||||||
|
@ -64,8 +65,8 @@
|
||||||
typedef struct GPIOMAP
|
typedef struct GPIOMAP
|
||||||
{
|
{
|
||||||
GPIO_TypeDef *pxPort;
|
GPIO_TypeDef *pxPort;
|
||||||
unsigned portLONG ulPin;
|
unsigned long ulPin;
|
||||||
unsigned portLONG ulValue;
|
unsigned long ulValue;
|
||||||
} GPIO_MAP;
|
} GPIO_MAP;
|
||||||
|
|
||||||
static GPIO_MAP xLEDMap[ partstNUM_LEDS ] =
|
static GPIO_MAP xLEDMap[ partstNUM_LEDS ] =
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -120,8 +121,8 @@ time. */
|
||||||
/* The type that is posted to the LCD queue. */
|
/* The type that is posted to the LCD queue. */
|
||||||
typedef struct LCD_MESSAGE
|
typedef struct LCD_MESSAGE
|
||||||
{
|
{
|
||||||
unsigned portCHAR *pucString; /* Points to the string to be displayed. */
|
unsigned char *pucString; /* Points to the string to be displayed. */
|
||||||
unsigned portCHAR ucLine; /* The line of the LCD that should be used. */
|
unsigned char ucLine; /* The line of the LCD that should be used. */
|
||||||
} LCDMessage;
|
} LCDMessage;
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
@ -174,8 +175,8 @@ int main( void )
|
||||||
vStartIntegerMathTasks( tskIDLE_PRIORITY );
|
vStartIntegerMathTasks( tskIDLE_PRIORITY );
|
||||||
|
|
||||||
/* Create the tasks defined within this file. */
|
/* Create the tasks defined within this file. */
|
||||||
xTaskCreate( vPrintTask, ( signed portCHAR * ) "LCD", configMINIMAL_STACK_SIZE, NULL, mainLCD_TASK_PRIORITY, NULL );
|
xTaskCreate( vPrintTask, ( signed char * ) "LCD", configMINIMAL_STACK_SIZE, NULL, mainLCD_TASK_PRIORITY, NULL );
|
||||||
xTaskCreate( vCheckTask, ( signed portCHAR * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
xTaskCreate( vCheckTask, ( signed char * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
||||||
|
|
||||||
vTaskStartScheduler();
|
vTaskStartScheduler();
|
||||||
|
|
||||||
|
@ -187,10 +188,10 @@ int main( void )
|
||||||
|
|
||||||
static void vCheckTask( void *pvParameters )
|
static void vCheckTask( void *pvParameters )
|
||||||
{
|
{
|
||||||
static unsigned portLONG ulErrorDetected = pdFALSE;
|
static unsigned long ulErrorDetected = pdFALSE;
|
||||||
portTickType xLastExecutionTime;
|
portTickType xLastExecutionTime;
|
||||||
unsigned portCHAR *ucErrorMessage = ( unsigned portCHAR * )" FAIL";
|
unsigned char *ucErrorMessage = ( unsigned char * )" FAIL";
|
||||||
unsigned portCHAR *ucSuccessMessage = ( unsigned portCHAR * )" PASS";
|
unsigned char *ucSuccessMessage = ( unsigned char * )" PASS";
|
||||||
unsigned portBASE_TYPE uxColumn = mainMAX_WRITE_COLUMN;
|
unsigned portBASE_TYPE uxColumn = mainMAX_WRITE_COLUMN;
|
||||||
LCDMessage xMessage;
|
LCDMessage xMessage;
|
||||||
|
|
||||||
|
@ -233,7 +234,7 @@ LCDMessage xMessage;
|
||||||
/* Calculate the LCD line on which we would like the message to
|
/* Calculate the LCD line on which we would like the message to
|
||||||
be displayed. The column variable is used for convenience as
|
be displayed. The column variable is used for convenience as
|
||||||
it is incremented each cycle anyway. */
|
it is incremented each cycle anyway. */
|
||||||
xMessage.ucLine = ( unsigned portCHAR ) ( uxColumn & 0x01 );
|
xMessage.ucLine = ( unsigned char ) ( uxColumn & 0x01 );
|
||||||
|
|
||||||
/* The message displayed depends on whether an error was found or
|
/* The message displayed depends on whether an error was found or
|
||||||
not. Any discovered error is latched. Here the column variable
|
not. Any discovered error is latched. Here the column variable
|
||||||
|
@ -324,8 +325,8 @@ ErrorStatus OSC4MStartUpStatus01;
|
||||||
/* Initialize the demonstration menu */
|
/* Initialize the demonstration menu */
|
||||||
LCD_Init();
|
LCD_Init();
|
||||||
|
|
||||||
LCD_DisplayString(Line1, ( unsigned portCHAR * ) "www.FreeRTOS.org", BlackText);
|
LCD_DisplayString(Line1, ( unsigned char * ) "www.FreeRTOS.org", BlackText);
|
||||||
LCD_DisplayString(Line2, ( unsigned portCHAR * ) " STR750 Demo ", BlackText);
|
LCD_DisplayString(Line2, ( unsigned char * ) " STR750 Demo ", BlackText);
|
||||||
|
|
||||||
EIC_IRQCmd(ENABLE);
|
EIC_IRQCmd(ENABLE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -94,7 +95,7 @@ void vConfigureQueues( xQueueHandle xQForRx, xQueueHandle xQForTx, volatile port
|
||||||
/*
|
/*
|
||||||
* See the serial2.h header file.
|
* See the serial2.h header file.
|
||||||
*/
|
*/
|
||||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||||
{
|
{
|
||||||
xComPortHandle xReturn;
|
xComPortHandle xReturn;
|
||||||
UART_InitTypeDef UART_InitStructure;
|
UART_InitTypeDef UART_InitStructure;
|
||||||
|
@ -102,8 +103,8 @@ GPIO_InitTypeDef GPIO_InitStructure;
|
||||||
EIC_IRQInitTypeDef EIC_IRQInitStructure;
|
EIC_IRQInitTypeDef EIC_IRQInitStructure;
|
||||||
|
|
||||||
/* Create the queues used to hold Rx and Tx characters. */
|
/* Create the queues used to hold Rx and Tx characters. */
|
||||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
|
|
||||||
/* If the queues were created correctly then setup the serial port
|
/* If the queues were created correctly then setup the serial port
|
||||||
hardware. */
|
hardware. */
|
||||||
|
@ -163,7 +164,7 @@ EIC_IRQInitTypeDef EIC_IRQInitStructure;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* The port handle is not required as this driver only supports one port. */
|
/* The port handle is not required as this driver only supports one port. */
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
@ -181,9 +182,9 @@ signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcR
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )
|
void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )
|
||||||
{
|
{
|
||||||
signed portCHAR *pxNext;
|
signed char *pxNext;
|
||||||
|
|
||||||
/* A couple of parameters that this port does not use. */
|
/* A couple of parameters that this port does not use. */
|
||||||
( void ) usStringLength;
|
( void ) usStringLength;
|
||||||
|
@ -196,7 +197,7 @@ signed portCHAR *pxNext;
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
|
||||||
/* Send each character in the string, one at a time. */
|
/* Send each character in the string, one at a time. */
|
||||||
pxNext = ( signed portCHAR * ) pcString;
|
pxNext = ( signed char * ) pcString;
|
||||||
while( *pxNext )
|
while( *pxNext )
|
||||||
{
|
{
|
||||||
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
||||||
|
@ -205,7 +206,7 @@ signed portCHAR *pxNext;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
portBASE_TYPE xReturn;
|
portBASE_TYPE xReturn;
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*-----------------------------------------------------------
|
/*-----------------------------------------------------------
|
||||||
|
@ -74,7 +75,7 @@ void vConfigureQueues( xQueueHandle xQForRx, xQueueHandle xQForTx, portBASE_TYPE
|
||||||
|
|
||||||
void vSerialISR( void )
|
void vSerialISR( void )
|
||||||
{
|
{
|
||||||
signed portCHAR cChar;
|
signed char cChar;
|
||||||
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
do
|
do
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -64,10 +65,10 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 0
|
#define configUSE_IDLE_HOOK 0
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 60000000 ) /* Timer clock. */
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 60000000 ) /* Timer clock. */
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 100 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 100 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) 12800 )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) 12800 )
|
||||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||||
#define configUSE_TRACE_FACILITY 0
|
#define configUSE_TRACE_FACILITY 0
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Library includes. */
|
/* Library includes. */
|
||||||
|
@ -64,8 +65,8 @@
|
||||||
typedef struct GPIOMAP
|
typedef struct GPIOMAP
|
||||||
{
|
{
|
||||||
GPIO_TypeDef *pxPort;
|
GPIO_TypeDef *pxPort;
|
||||||
unsigned portLONG ulPin;
|
unsigned long ulPin;
|
||||||
unsigned portLONG ulValue;
|
unsigned long ulValue;
|
||||||
} GPIO_MAP;
|
} GPIO_MAP;
|
||||||
|
|
||||||
static GPIO_MAP xLEDMap[ partstNUM_LEDS ] =
|
static GPIO_MAP xLEDMap[ partstNUM_LEDS ] =
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -120,8 +121,8 @@ time. */
|
||||||
/* The type that is posted to the LCD queue. */
|
/* The type that is posted to the LCD queue. */
|
||||||
typedef struct LCD_MESSAGE
|
typedef struct LCD_MESSAGE
|
||||||
{
|
{
|
||||||
unsigned portCHAR *pucString; /* Points to the string to be displayed. */
|
unsigned char *pucString; /* Points to the string to be displayed. */
|
||||||
unsigned portCHAR ucLine; /* The line of the LCD that should be used. */
|
unsigned char ucLine; /* The line of the LCD that should be used. */
|
||||||
} LCDMessage;
|
} LCDMessage;
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
@ -174,8 +175,8 @@ void main( void )
|
||||||
vStartIntegerMathTasks( tskIDLE_PRIORITY );
|
vStartIntegerMathTasks( tskIDLE_PRIORITY );
|
||||||
|
|
||||||
/* Create the tasks defined within this file. */
|
/* Create the tasks defined within this file. */
|
||||||
xTaskCreate( vPrintTask, ( signed portCHAR * ) "LCD", configMINIMAL_STACK_SIZE, NULL, mainLCD_TASK_PRIORITY, NULL );
|
xTaskCreate( vPrintTask, ( signed char * ) "LCD", configMINIMAL_STACK_SIZE, NULL, mainLCD_TASK_PRIORITY, NULL );
|
||||||
xTaskCreate( vCheckTask, ( signed portCHAR * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
xTaskCreate( vCheckTask, ( signed char * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
||||||
|
|
||||||
vTaskStartScheduler();
|
vTaskStartScheduler();
|
||||||
|
|
||||||
|
@ -186,10 +187,10 @@ void main( void )
|
||||||
|
|
||||||
static void vCheckTask( void *pvParameters )
|
static void vCheckTask( void *pvParameters )
|
||||||
{
|
{
|
||||||
static unsigned portLONG ulErrorDetected = pdFALSE;
|
static unsigned long ulErrorDetected = pdFALSE;
|
||||||
portTickType xLastExecutionTime;
|
portTickType xLastExecutionTime;
|
||||||
unsigned portCHAR *cErrorMessage = " FAIL";
|
unsigned char *cErrorMessage = " FAIL";
|
||||||
unsigned portCHAR *cSuccessMessage = " PASS";
|
unsigned char *cSuccessMessage = " PASS";
|
||||||
unsigned portBASE_TYPE uxColumn = mainMAX_WRITE_COLUMN;
|
unsigned portBASE_TYPE uxColumn = mainMAX_WRITE_COLUMN;
|
||||||
LCDMessage xMessage;
|
LCDMessage xMessage;
|
||||||
|
|
||||||
|
@ -232,7 +233,7 @@ LCDMessage xMessage;
|
||||||
/* Calculate the LCD line on which we would like the message to
|
/* Calculate the LCD line on which we would like the message to
|
||||||
be displayed. The column variable is used for convenience as
|
be displayed. The column variable is used for convenience as
|
||||||
it is incremented each cycle anyway. */
|
it is incremented each cycle anyway. */
|
||||||
xMessage.ucLine = ( unsigned portCHAR ) ( uxColumn & 0x01 );
|
xMessage.ucLine = ( unsigned char ) ( uxColumn & 0x01 );
|
||||||
|
|
||||||
/* The message displayed depends on whether an error was found or
|
/* The message displayed depends on whether an error was found or
|
||||||
not. Any discovered error is latched. Here the column variable
|
not. Any discovered error is latched. Here the column variable
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -84,7 +85,7 @@ __arm void vSerialISR( void );
|
||||||
/*
|
/*
|
||||||
* See the serial2.h header file.
|
* See the serial2.h header file.
|
||||||
*/
|
*/
|
||||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||||
{
|
{
|
||||||
xComPortHandle xReturn;
|
xComPortHandle xReturn;
|
||||||
UART_InitTypeDef UART_InitStructure;
|
UART_InitTypeDef UART_InitStructure;
|
||||||
|
@ -92,8 +93,8 @@ GPIO_InitTypeDef GPIO_InitStructure;
|
||||||
EIC_IRQInitTypeDef EIC_IRQInitStructure;
|
EIC_IRQInitTypeDef EIC_IRQInitStructure;
|
||||||
|
|
||||||
/* Create the queues used to hold Rx and Tx characters. */
|
/* Create the queues used to hold Rx and Tx characters. */
|
||||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
|
|
||||||
/* If the queues were created correctly then setup the serial port
|
/* If the queues were created correctly then setup the serial port
|
||||||
hardware. */
|
hardware. */
|
||||||
|
@ -150,7 +151,7 @@ EIC_IRQInitTypeDef EIC_IRQInitStructure;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* The port handle is not required as this driver only supports one port. */
|
/* The port handle is not required as this driver only supports one port. */
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
@ -168,9 +169,9 @@ signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcR
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )
|
void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )
|
||||||
{
|
{
|
||||||
signed portCHAR *pxNext;
|
signed char *pxNext;
|
||||||
|
|
||||||
/* A couple of parameters that this port does not use. */
|
/* A couple of parameters that this port does not use. */
|
||||||
( void ) usStringLength;
|
( void ) usStringLength;
|
||||||
|
@ -183,7 +184,7 @@ signed portCHAR *pxNext;
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
|
||||||
/* Send each character in the string, one at a time. */
|
/* Send each character in the string, one at a time. */
|
||||||
pxNext = ( signed portCHAR * ) pcString;
|
pxNext = ( signed char * ) pcString;
|
||||||
while( *pxNext )
|
while( *pxNext )
|
||||||
{
|
{
|
||||||
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
||||||
|
@ -192,7 +193,7 @@ signed portCHAR *pxNext;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
portBASE_TYPE xReturn;
|
portBASE_TYPE xReturn;
|
||||||
|
|
||||||
|
@ -232,7 +233,7 @@ void vSerialClose( xComPortHandle xPort )
|
||||||
|
|
||||||
__arm void vSerialISR( void )
|
__arm void vSerialISR( void )
|
||||||
{
|
{
|
||||||
signed portCHAR cChar;
|
signed char cChar;
|
||||||
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
do
|
do
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -65,9 +66,9 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 0
|
#define configUSE_IDLE_HOOK 0
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) BOARD_MCK )
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) BOARD_MCK )
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 190 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 190 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 40000 ) )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 40000 ) )
|
||||||
#define configMAX_TASK_NAME_LEN ( 12 )
|
#define configMAX_TASK_NAME_LEN ( 12 )
|
||||||
#define configUSE_TRACE_FACILITY 0
|
#define configUSE_TRACE_FACILITY 0
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -150,7 +151,7 @@ int main()
|
||||||
static void prvCheckTask( void * pvParameters )
|
static void prvCheckTask( void * pvParameters )
|
||||||
{
|
{
|
||||||
portTickType xNextWakeTime, xPeriod = mainNO_ERROR_PERIOD;
|
portTickType xNextWakeTime, xPeriod = mainNO_ERROR_PERIOD;
|
||||||
static volatile unsigned portLONG ulErrorCode = 0UL;
|
static volatile unsigned long ulErrorCode = 0UL;
|
||||||
|
|
||||||
/* Just to remove the compiler warning. */
|
/* Just to remove the compiler warning. */
|
||||||
( void ) pvParameters;
|
( void ) pvParameters;
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -78,8 +79,8 @@
|
||||||
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
#define serINVALID_QUEUE ( ( xQueueHandle ) 0 )
|
||||||
#define serHANDLE ( ( xComPortHandle ) 1 )
|
#define serHANDLE ( ( xComPortHandle ) 1 )
|
||||||
#define serNO_BLOCK ( ( portTickType ) 0 )
|
#define serNO_BLOCK ( ( portTickType ) 0 )
|
||||||
#define serNO_TIMEGUARD ( ( unsigned portLONG ) 0 )
|
#define serNO_TIMEGUARD ( ( unsigned long ) 0 )
|
||||||
#define serNO_PERIPHERAL_B_SETUP ( ( unsigned portLONG ) 0 )
|
#define serNO_PERIPHERAL_B_SETUP ( ( unsigned long ) 0 )
|
||||||
|
|
||||||
|
|
||||||
/* Queues used to hold received characters, and characters waiting to be
|
/* Queues used to hold received characters, and characters waiting to be
|
||||||
|
@ -97,13 +98,13 @@ __arm void vSerialISR( void );
|
||||||
/*
|
/*
|
||||||
* See the serial2.h header file.
|
* See the serial2.h header file.
|
||||||
*/
|
*/
|
||||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||||
{
|
{
|
||||||
xComPortHandle xReturn = serHANDLE;
|
xComPortHandle xReturn = serHANDLE;
|
||||||
|
|
||||||
/* Create the queues used to hold Rx and Tx characters. */
|
/* Create the queues used to hold Rx and Tx characters. */
|
||||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
|
|
||||||
/* If the queues were created correctly then setup the serial port
|
/* If the queues were created correctly then setup the serial port
|
||||||
hardware. */
|
hardware. */
|
||||||
|
@ -139,7 +140,7 @@ xComPortHandle xReturn = serHANDLE;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* The port handle is not required as this driver only supports one port. */
|
/* The port handle is not required as this driver only supports one port. */
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
@ -157,9 +158,9 @@ signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcR
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )
|
void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )
|
||||||
{
|
{
|
||||||
signed portCHAR *pxNext;
|
signed char *pxNext;
|
||||||
|
|
||||||
/* A couple of parameters that this port does not use. */
|
/* A couple of parameters that this port does not use. */
|
||||||
( void ) usStringLength;
|
( void ) usStringLength;
|
||||||
|
@ -172,7 +173,7 @@ signed portCHAR *pxNext;
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
|
||||||
/* Send each character in the string, one at a time. */
|
/* Send each character in the string, one at a time. */
|
||||||
pxNext = ( signed portCHAR * ) pcString;
|
pxNext = ( signed char * ) pcString;
|
||||||
while( *pxNext )
|
while( *pxNext )
|
||||||
{
|
{
|
||||||
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
||||||
|
@ -181,7 +182,7 @@ signed portCHAR *pxNext;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* Just to remove compiler warning. */
|
/* Just to remove compiler warning. */
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
@ -215,8 +216,8 @@ within serialISR.s79 which in turn calls this function. See the port
|
||||||
documentation on the FreeRTOS.org website for more information. */
|
documentation on the FreeRTOS.org website for more information. */
|
||||||
__arm void vSerialISR( void )
|
__arm void vSerialISR( void )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulStatus;
|
unsigned long ulStatus;
|
||||||
signed portCHAR cChar;
|
signed char cChar;
|
||||||
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
/* What caused the interrupt? */
|
/* What caused the interrupt? */
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -72,11 +73,11 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 0
|
#define configUSE_IDLE_HOOK 0
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 96000000 )
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 96000000 )
|
||||||
#define configCPU_PERIPH_HZ ( ( unsigned portLONG ) 48000000 )
|
#define configCPU_PERIPH_HZ ( ( unsigned long ) 48000000 )
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 100 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 100 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 180 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 180 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) 52000 )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) 52000 )
|
||||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||||
#define configUSE_TRACE_FACILITY 1
|
#define configUSE_TRACE_FACILITY 1
|
||||||
|
|
|
@ -137,7 +137,7 @@ void ENET_MACControlConfig(ENET_MACConfig *MAC_Config)
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
portBASE_TYPE ENET_SetOperatingMode( void )
|
portBASE_TYPE ENET_SetOperatingMode( void )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulStatusReg, ulControlReg, ulLinkAbilityReg;
|
unsigned long ulStatusReg, ulControlReg, ulLinkAbilityReg;
|
||||||
|
|
||||||
/* Link status is latched, so read twice to get current value */
|
/* Link status is latched, so read twice to get current value */
|
||||||
ulStatusReg = ENET_MIIReadReg(0, STE100P_STATUS_REG);
|
ulStatusReg = ENET_MIIReadReg(0, STE100P_STATUS_REG);
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Library includes. */
|
/* Library includes. */
|
||||||
|
@ -55,7 +56,7 @@
|
||||||
#include "partest.h"
|
#include "partest.h"
|
||||||
|
|
||||||
#define partstMAX_LEDs 4
|
#define partstMAX_LEDs 4
|
||||||
#define partstLED_PORT *( ( unsigned portSHORT * ) 0x5800f3fc )
|
#define partstLED_PORT *( ( unsigned short * ) 0x5800f3fc )
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -73,7 +74,7 @@ void vParTestInitialise( void )
|
||||||
|
|
||||||
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
||||||
{
|
{
|
||||||
unsigned portSHORT usLED = 0x0001;
|
unsigned short usLED = 0x0001;
|
||||||
|
|
||||||
if( uxLED < partstMAX_LEDs )
|
if( uxLED < partstMAX_LEDs )
|
||||||
{
|
{
|
||||||
|
@ -97,7 +98,7 @@ unsigned portSHORT usLED = 0x0001;
|
||||||
|
|
||||||
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
||||||
{
|
{
|
||||||
unsigned portSHORT usLED = 0x0001;
|
unsigned short usLED = 0x0001;
|
||||||
|
|
||||||
if( uxLED < partstMAX_LEDs )
|
if( uxLED < partstMAX_LEDs )
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
|
|
||||||
/* Message queue constants. */
|
/* Message queue constants. */
|
||||||
#define archMESG_QUEUE_LENGTH ( 6 )
|
#define archMESG_QUEUE_LENGTH ( 6 )
|
||||||
#define archPOST_BLOCK_TIME_MS ( ( unsigned portLONG ) 10000 )
|
#define archPOST_BLOCK_TIME_MS ( ( unsigned long ) 10000 )
|
||||||
|
|
||||||
struct timeoutlist
|
struct timeoutlist
|
||||||
{
|
{
|
||||||
|
@ -329,7 +329,7 @@ sys_thread_t sys_thread_new(void (* thread)(void *arg), void *arg, int prio)
|
||||||
xTaskHandle CreatedTask;
|
xTaskHandle CreatedTask;
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
result = xTaskCreate(thread, ( signed portCHAR * ) s_sys_arch_state.cTaskName, s_sys_arch_state.nStackDepth, arg, prio, &CreatedTask );
|
result = xTaskCreate(thread, ( signed char * ) s_sys_arch_state.cTaskName, s_sys_arch_state.nStackDepth, arg, prio, &CreatedTask );
|
||||||
|
|
||||||
// For each task created, store the task handle (pid) in the timers array.
|
// For each task created, store the task handle (pid) in the timers array.
|
||||||
// This scheme doesn't allow for threads to be deleted
|
// This scheme doesn't allow for threads to be deleted
|
||||||
|
@ -384,7 +384,7 @@ void sys_set_default_state()
|
||||||
sprintf(s_sys_arch_state.cTaskName, "thread%d", s_sys_arch_state.nTaskCount);
|
sprintf(s_sys_arch_state.cTaskName, "thread%d", s_sys_arch_state.nTaskCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sys_set_state(signed portCHAR *pTaskName, unsigned portSHORT nStackSize)
|
void sys_set_state(signed char *pTaskName, unsigned short nStackSize)
|
||||||
{
|
{
|
||||||
s_sys_arch_state.nStackDepth = nStackSize;
|
s_sys_arch_state.nStackDepth = nStackSize;
|
||||||
sprintf(s_sys_arch_state.cTaskName, "%s", pTaskName);
|
sprintf(s_sys_arch_state.cTaskName, "%s", pTaskName);
|
||||||
|
|
|
@ -48,15 +48,15 @@ typedef xTaskHandle sys_thread_t;
|
||||||
typedef struct _sys_arch_state_t
|
typedef struct _sys_arch_state_t
|
||||||
{
|
{
|
||||||
// Task creation data.
|
// Task creation data.
|
||||||
portCHAR cTaskName[configMAX_TASK_NAME_LEN];
|
char cTaskName[configMAX_TASK_NAME_LEN];
|
||||||
unsigned portSHORT nStackDepth;
|
unsigned short nStackDepth;
|
||||||
unsigned short nTaskCount;
|
unsigned short nTaskCount;
|
||||||
} sys_arch_state_t;
|
} sys_arch_state_t;
|
||||||
|
|
||||||
//extern sys_arch_state_t s_sys_arch_state;
|
//extern sys_arch_state_t s_sys_arch_state;
|
||||||
|
|
||||||
void sys_set_default_state();
|
void sys_set_default_state();
|
||||||
void sys_set_state(signed portCHAR *pTaskName, unsigned portSHORT nStackSize);
|
void sys_set_state(signed char *pTaskName, unsigned short nStackSize);
|
||||||
|
|
||||||
#endif /* __SYS_RTXC_H__ */
|
#endif /* __SYS_RTXC_H__ */
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef BASIC_WEB_SERVER_H
|
#ifndef BASIC_WEB_SERVER_H
|
||||||
|
|
|
@ -1,49 +1,50 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -100,7 +101,7 @@ void vlwIPInit( void )
|
||||||
pbuf_init();
|
pbuf_init();
|
||||||
netif_init();
|
netif_init();
|
||||||
ip_init();
|
ip_init();
|
||||||
sys_set_state(( signed portCHAR * ) "lwIP", lwipTCP_STACK_SIZE);
|
sys_set_state(( signed char * ) "lwIP", lwipTCP_STACK_SIZE);
|
||||||
tcpip_init( NULL, NULL );
|
tcpip_init( NULL, NULL );
|
||||||
sys_set_default_state();
|
sys_set_default_state();
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,7 +131,7 @@ static void low_level_init(struct netif *netif)
|
||||||
portEXIT_CRITICAL();
|
portEXIT_CRITICAL();
|
||||||
|
|
||||||
/* Create the task that handles the EMAC. */
|
/* Create the task that handles the EMAC. */
|
||||||
xTaskCreate( ethernetif_input, ( signed portCHAR * ) "ETH_INT", netifINTERFACE_TASK_STACK_SIZE, NULL, netifINTERFACE_TASK_PRIORITY, NULL );
|
xTaskCreate( ethernetif_input, ( signed char * ) "ETH_INT", netifINTERFACE_TASK_STACK_SIZE, NULL, netifINTERFACE_TASK_PRIORITY, NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -130,7 +131,7 @@
|
||||||
#define mainLCD_DELAY ( 20 / portTICK_RATE_MS )
|
#define mainLCD_DELAY ( 20 / portTICK_RATE_MS )
|
||||||
|
|
||||||
/* Constants for the ComTest tasks. */
|
/* Constants for the ComTest tasks. */
|
||||||
#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 115200 )
|
#define mainCOM_TEST_BAUD_RATE ( ( unsigned long ) 115200 )
|
||||||
#define mainCOM_TEST_LED ( 3 )
|
#define mainCOM_TEST_LED ( 3 )
|
||||||
|
|
||||||
/* The maximum number of messages that can be pending to be written to the LCD. */
|
/* The maximum number of messages that can be pending to be written to the LCD. */
|
||||||
|
@ -142,7 +143,7 @@
|
||||||
/* The structure that is passed on the LCD message queue. */
|
/* The structure that is passed on the LCD message queue. */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
portCHAR **ppcMessageToDisplay; /*<< Points to a char* pointing to the message to display. */
|
char **ppcMessageToDisplay; /*<< Points to a char* pointing to the message to display. */
|
||||||
portBASE_TYPE xRow; /*<< The row on which the message should be displayed. */
|
portBASE_TYPE xRow; /*<< The row on which the message should be displayed. */
|
||||||
} xLCDMessage;
|
} xLCDMessage;
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
@ -190,7 +191,7 @@ static void prvLCDMessageTask( void * pvParameters );
|
||||||
static xQueueHandle xLCDQueue;
|
static xQueueHandle xLCDQueue;
|
||||||
|
|
||||||
/* Error status flag. */
|
/* Error status flag. */
|
||||||
static unsigned portLONG ulErrorFlags = 0;
|
static unsigned long ulErrorFlags = 0;
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -235,7 +236,7 @@ void main( void )
|
||||||
#ifdef STACK_LWIP
|
#ifdef STACK_LWIP
|
||||||
/* Create the lwIP task. This uses the lwIP RTOS abstraction layer.*/
|
/* Create the lwIP task. This uses the lwIP RTOS abstraction layer.*/
|
||||||
vlwIPInit();
|
vlwIPInit();
|
||||||
sys_set_state( ( signed portCHAR * ) "httpd", lwipBASIC_SERVER_STACK_SIZE );
|
sys_set_state( ( signed char * ) "httpd", lwipBASIC_SERVER_STACK_SIZE );
|
||||||
sys_thread_new( vBasicWEBServer, ( void * ) NULL, basicwebWEBSERVER_PRIORITY );
|
sys_thread_new( vBasicWEBServer, ( void * ) NULL, basicwebWEBSERVER_PRIORITY );
|
||||||
sys_set_default_state();
|
sys_set_default_state();
|
||||||
#endif
|
#endif
|
||||||
|
@ -293,11 +294,11 @@ static void prvSetupHardware( void )
|
||||||
|
|
||||||
static void vErrorChecks( void *pvParameters )
|
static void vErrorChecks( void *pvParameters )
|
||||||
{
|
{
|
||||||
static portCHAR cCheckVal[ mainMAX_FLAG_STRING_LEN ];
|
static char cCheckVal[ mainMAX_FLAG_STRING_LEN ];
|
||||||
portCHAR *pcFlagString;
|
char *pcFlagString;
|
||||||
xLCDMessage xMessageToSend;
|
xLCDMessage xMessageToSend;
|
||||||
portTickType xLastWakeTime;
|
portTickType xLastWakeTime;
|
||||||
portCHAR *pcStringsToDisplay[] = {
|
char *pcStringsToDisplay[] = {
|
||||||
"Check status flag"
|
"Check status flag"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -393,7 +394,7 @@ xLCDMessage xMessageToSend;
|
||||||
portBASE_TYPE xIndex = 0;
|
portBASE_TYPE xIndex = 0;
|
||||||
|
|
||||||
/* The strings that are written to the LCD. */
|
/* The strings that are written to the LCD. */
|
||||||
portCHAR *pcStringsToDisplay[] = {
|
char *pcStringsToDisplay[] = {
|
||||||
"IAR ",
|
"IAR ",
|
||||||
"STR912 ",
|
"STR912 ",
|
||||||
"Demo ",
|
"Demo ",
|
||||||
|
@ -436,7 +437,7 @@ void prvLCDTask( void * pvParameters )
|
||||||
{
|
{
|
||||||
xQueueHandle *pxLCDQueue;
|
xQueueHandle *pxLCDQueue;
|
||||||
xLCDMessage xReceivedMessage;
|
xLCDMessage xReceivedMessage;
|
||||||
portCHAR *pcString;
|
char *pcString;
|
||||||
|
|
||||||
/* To test the parameter passing mechanism, the queue on which messages are
|
/* To test the parameter passing mechanism, the queue on which messages are
|
||||||
received is passed in as a parameter even though it is available as a file
|
received is passed in as a parameter even though it is available as a file
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -92,19 +93,19 @@ __arm void UART1_IRQHandler( void );
|
||||||
|
|
||||||
/* Flag to indicate whether or not a task is blocked waiting for space on
|
/* Flag to indicate whether or not a task is blocked waiting for space on
|
||||||
the FIFO. */
|
the FIFO. */
|
||||||
static portLONG lTaskWaiting = pdFALSE;
|
static long lTaskWaiting = pdFALSE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* See the serial2.h header file.
|
* See the serial2.h header file.
|
||||||
*/
|
*/
|
||||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||||
{
|
{
|
||||||
xComPortHandle xReturn;
|
xComPortHandle xReturn;
|
||||||
UART_InitTypeDef xUART1_Init;
|
UART_InitTypeDef xUART1_Init;
|
||||||
GPIO_InitTypeDef GPIO_InitStructure;
|
GPIO_InitTypeDef GPIO_InitStructure;
|
||||||
|
|
||||||
/* Create the queues used to hold Rx characters. */
|
/* Create the queues used to hold Rx characters. */
|
||||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
|
|
||||||
/* Create the semaphore used to wake a task waiting for space to become
|
/* Create the semaphore used to wake a task waiting for space to become
|
||||||
available in the FIFO. */
|
available in the FIFO. */
|
||||||
|
@ -180,7 +181,7 @@ GPIO_InitTypeDef GPIO_InitStructure;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* The port handle is not required as this driver only supports one port. */
|
/* The port handle is not required as this driver only supports one port. */
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
@ -198,9 +199,9 @@ signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcR
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength )
|
void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength )
|
||||||
{
|
{
|
||||||
signed portCHAR *pxNext;
|
signed char *pxNext;
|
||||||
|
|
||||||
/* A couple of parameters that this port does not use. */
|
/* A couple of parameters that this port does not use. */
|
||||||
( void ) usStringLength;
|
( void ) usStringLength;
|
||||||
|
@ -213,7 +214,7 @@ signed portCHAR *pxNext;
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
|
||||||
/* Send each character in the string, one at a time. */
|
/* Send each character in the string, one at a time. */
|
||||||
pxNext = ( signed portCHAR * ) pcString;
|
pxNext = ( signed char * ) pcString;
|
||||||
while( *pxNext )
|
while( *pxNext )
|
||||||
{
|
{
|
||||||
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
xSerialPutChar( pxPort, *pxNext, serNO_BLOCK );
|
||||||
|
@ -222,7 +223,7 @@ signed portCHAR *pxNext;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
portBASE_TYPE xReturn;
|
portBASE_TYPE xReturn;
|
||||||
|
|
||||||
|
@ -267,7 +268,7 @@ void vSerialClose( xComPortHandle xPort )
|
||||||
|
|
||||||
void UART1_IRQHandler( void )
|
void UART1_IRQHandler( void )
|
||||||
{
|
{
|
||||||
signed portCHAR cChar;
|
signed char cChar;
|
||||||
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
while( UART1->RIS & mainRXRIS )
|
while( UART1->RIS & mainRXRIS )
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
/* Standard includes. */
|
/* Standard includes. */
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -122,7 +123,7 @@ static void prvSetMACAddress( void );
|
||||||
/*
|
/*
|
||||||
* Used to return a pointer to the next buffer to be used.
|
* Used to return a pointer to the next buffer to be used.
|
||||||
*/
|
*/
|
||||||
extern unsigned portCHAR *pcGetNextBuffer( void );
|
extern unsigned char *pcGetNextBuffer( void );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Port functions required by the uIP stack.
|
* Port functions required by the uIP stack.
|
||||||
|
@ -262,7 +263,7 @@ struct timer periodic_timer, arp_timer;
|
||||||
static void prvENET_Send(void)
|
static void prvENET_Send(void)
|
||||||
{
|
{
|
||||||
portBASE_TYPE i;
|
portBASE_TYPE i;
|
||||||
static unsigned portCHAR *pcTxData;
|
static unsigned char *pcTxData;
|
||||||
|
|
||||||
/* Get a DMA buffer into which we can write the data to send. */
|
/* Get a DMA buffer into which we can write the data to send. */
|
||||||
for( i = 0; i < uipBUFFER_WAIT_ATTEMPTS; i++ )
|
for( i = 0; i < uipBUFFER_WAIT_ATTEMPTS; i++ )
|
||||||
|
|
|
@ -65,7 +65,7 @@
|
||||||
#define configPBA_CLOCK_HZ ( FOSC0 )
|
#define configPBA_CLOCK_HZ ( FOSC0 )
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 8 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 8 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 128 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 )
|
||||||
/* configTOTAL_HEAP_SIZE is not used when heap_3.c is used. */
|
/* configTOTAL_HEAP_SIZE is not used when heap_3.c is used. */
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 1024*25 ) )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 1024*25 ) )
|
||||||
#define configMAX_TASK_NAME_LEN ( 16 )
|
#define configMAX_TASK_NAME_LEN ( 16 )
|
||||||
|
|
|
@ -30,50 +30,51 @@
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -67,10 +68,10 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 1
|
#define configUSE_IDLE_HOOK 1
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 8000000 )
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 8000000 )
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 85 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 85 )
|
||||||
#define configTOTAL_HEAP_SIZE ( (size_t ) ( 1500 ) )
|
#define configTOTAL_HEAP_SIZE ( (size_t ) ( 1500 ) )
|
||||||
#define configMAX_TASK_NAME_LEN ( 8 )
|
#define configMAX_TASK_NAME_LEN ( 8 )
|
||||||
#define configUSE_TRACE_FACILITY 0
|
#define configUSE_TRACE_FACILITY 0
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -65,11 +66,11 @@ Changes from V2.6.0
|
||||||
* Simple parallel port IO routines.
|
* Simple parallel port IO routines.
|
||||||
*-----------------------------------------------------------*/
|
*-----------------------------------------------------------*/
|
||||||
|
|
||||||
#define partstALL_BITS_OUTPUT ( ( unsigned portCHAR ) 0xff )
|
#define partstALL_BITS_OUTPUT ( ( unsigned char ) 0xff )
|
||||||
#define partstALL_OUTPUTS_OFF ( ( unsigned portCHAR ) 0xff )
|
#define partstALL_OUTPUTS_OFF ( ( unsigned char ) 0xff )
|
||||||
#define partstMAX_OUTPUT_LED ( ( unsigned portCHAR ) 7 )
|
#define partstMAX_OUTPUT_LED ( ( unsigned char ) 7 )
|
||||||
|
|
||||||
static volatile unsigned portCHAR ucCurrentOutputValue = partstALL_OUTPUTS_OFF; /*lint !e956 File scope parameters okay here. */
|
static volatile unsigned char ucCurrentOutputValue = partstALL_OUTPUTS_OFF; /*lint !e956 File scope parameters okay here. */
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -85,7 +86,7 @@ void vParTestInitialise( void )
|
||||||
|
|
||||||
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
||||||
{
|
{
|
||||||
unsigned portCHAR ucBit = ( unsigned portCHAR ) 1;
|
unsigned char ucBit = ( unsigned char ) 1;
|
||||||
|
|
||||||
if( uxLED <= partstMAX_OUTPUT_LED )
|
if( uxLED <= partstMAX_OUTPUT_LED )
|
||||||
{
|
{
|
||||||
|
@ -95,7 +96,7 @@ unsigned portCHAR ucBit = ( unsigned portCHAR ) 1;
|
||||||
{
|
{
|
||||||
if( xValue == pdTRUE )
|
if( xValue == pdTRUE )
|
||||||
{
|
{
|
||||||
ucBit ^= ( unsigned portCHAR ) 0xff;
|
ucBit ^= ( unsigned char ) 0xff;
|
||||||
ucCurrentOutputValue &= ucBit;
|
ucCurrentOutputValue &= ucBit;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -112,11 +113,11 @@ unsigned portCHAR ucBit = ( unsigned portCHAR ) 1;
|
||||||
|
|
||||||
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
||||||
{
|
{
|
||||||
unsigned portCHAR ucBit;
|
unsigned char ucBit;
|
||||||
|
|
||||||
if( uxLED <= partstMAX_OUTPUT_LED )
|
if( uxLED <= partstMAX_OUTPUT_LED )
|
||||||
{
|
{
|
||||||
ucBit = ( ( unsigned portCHAR ) 1 ) << uxLED;
|
ucBit = ( ( unsigned char ) 1 ) << uxLED;
|
||||||
|
|
||||||
vTaskSuspendAll();
|
vTaskSuspendAll();
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -83,7 +84,7 @@ Changes from V1.2.5
|
||||||
Changes from V2.0.0
|
Changes from V2.0.0
|
||||||
|
|
||||||
+ Delay periods are now specified using variables and constants of
|
+ Delay periods are now specified using variables and constants of
|
||||||
portTickType rather than unsigned portLONG.
|
portTickType rather than unsigned long.
|
||||||
|
|
||||||
Changes from V2.2.0
|
Changes from V2.2.0
|
||||||
|
|
||||||
|
@ -129,7 +130,7 @@ tasks just use the idle priority. */
|
||||||
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
|
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
|
||||||
|
|
||||||
/* Baud rate used by the serial port tasks. */
|
/* Baud rate used by the serial port tasks. */
|
||||||
#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 38400 )
|
#define mainCOM_TEST_BAUD_RATE ( ( unsigned long ) 38400 )
|
||||||
|
|
||||||
/* LED used by the serial port tasks. This is toggled on each character Tx,
|
/* LED used by the serial port tasks. This is toggled on each character Tx,
|
||||||
and mainCOM_TEST_LED + 1 is toggles on each character Rx. */
|
and mainCOM_TEST_LED + 1 is toggles on each character Rx. */
|
||||||
|
@ -173,7 +174,7 @@ static void prvIncrementResetCount( void );
|
||||||
*/
|
*/
|
||||||
void vApplicationIdleHook( void );
|
void vApplicationIdleHook( void );
|
||||||
|
|
||||||
portSHORT main( void )
|
short main( void )
|
||||||
{
|
{
|
||||||
prvIncrementResetCount();
|
prvIncrementResetCount();
|
||||||
|
|
||||||
|
@ -203,7 +204,7 @@ portSHORT main( void )
|
||||||
|
|
||||||
static void vErrorChecks( void *pvParameters )
|
static void vErrorChecks( void *pvParameters )
|
||||||
{
|
{
|
||||||
static volatile unsigned portLONG ulDummyVariable = 3UL;
|
static volatile unsigned long ulDummyVariable = 3UL;
|
||||||
|
|
||||||
/* The parameters are not used. */
|
/* The parameters are not used. */
|
||||||
( void ) pvParameters;
|
( void ) pvParameters;
|
||||||
|
@ -259,10 +260,10 @@ static portBASE_TYPE xErrorHasOccurred = pdFALSE;
|
||||||
|
|
||||||
static void prvIncrementResetCount( void )
|
static void prvIncrementResetCount( void )
|
||||||
{
|
{
|
||||||
unsigned portCHAR ucCount;
|
unsigned char ucCount;
|
||||||
const unsigned portCHAR ucReadBit = ( unsigned portCHAR ) 0x01;
|
const unsigned char ucReadBit = ( unsigned char ) 0x01;
|
||||||
const unsigned portCHAR ucWrite1 = ( unsigned portCHAR ) 0x04;
|
const unsigned char ucWrite1 = ( unsigned char ) 0x04;
|
||||||
const unsigned portCHAR ucWrite2 = ( unsigned portCHAR ) 0x02;
|
const unsigned char ucWrite2 = ( unsigned char ) 0x02;
|
||||||
|
|
||||||
/* Increment the EEPROM value at 0x00.
|
/* Increment the EEPROM value at 0x00.
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Scheduler include files. */
|
/* Scheduler include files. */
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef REG_TEST_H
|
#ifndef REG_TEST_H
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,24 +56,24 @@
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "serial.h"
|
#include "serial.h"
|
||||||
|
|
||||||
#define serBAUD_DIV_CONSTANT ( ( unsigned portLONG ) 16 )
|
#define serBAUD_DIV_CONSTANT ( ( unsigned long ) 16 )
|
||||||
|
|
||||||
/* Constants for writing to UCSRB. */
|
/* Constants for writing to UCSRB. */
|
||||||
#define serRX_INT_ENABLE ( ( unsigned portCHAR ) 0x80 )
|
#define serRX_INT_ENABLE ( ( unsigned char ) 0x80 )
|
||||||
#define serRX_ENABLE ( ( unsigned portCHAR ) 0x10 )
|
#define serRX_ENABLE ( ( unsigned char ) 0x10 )
|
||||||
#define serTX_ENABLE ( ( unsigned portCHAR ) 0x08 )
|
#define serTX_ENABLE ( ( unsigned char ) 0x08 )
|
||||||
#define serTX_INT_ENABLE ( ( unsigned portCHAR ) 0x20 )
|
#define serTX_INT_ENABLE ( ( unsigned char ) 0x20 )
|
||||||
|
|
||||||
/* Constants for writing to UCSRC. */
|
/* Constants for writing to UCSRC. */
|
||||||
#define serUCSRC_SELECT ( ( unsigned portCHAR ) 0x80 )
|
#define serUCSRC_SELECT ( ( unsigned char ) 0x80 )
|
||||||
#define serEIGHT_DATA_BITS ( ( unsigned portCHAR ) 0x06 )
|
#define serEIGHT_DATA_BITS ( ( unsigned char ) 0x06 )
|
||||||
|
|
||||||
static xQueueHandle xRxedChars;
|
static xQueueHandle xRxedChars;
|
||||||
static xQueueHandle xCharsForTx;
|
static xQueueHandle xCharsForTx;
|
||||||
|
|
||||||
#define vInterruptOn() \
|
#define vInterruptOn() \
|
||||||
{ \
|
{ \
|
||||||
unsigned portCHAR ucByte; \
|
unsigned char ucByte; \
|
||||||
\
|
\
|
||||||
ucByte = UCSRB; \
|
ucByte = UCSRB; \
|
||||||
ucByte |= serTX_INT_ENABLE; \
|
ucByte |= serTX_INT_ENABLE; \
|
||||||
|
@ -82,7 +83,7 @@ static xQueueHandle xCharsForTx;
|
||||||
|
|
||||||
#define vInterruptOff() \
|
#define vInterruptOff() \
|
||||||
{ \
|
{ \
|
||||||
unsigned portCHAR ucByte; \
|
unsigned char ucByte; \
|
||||||
\
|
\
|
||||||
ucByte = UCSRB; \
|
ucByte = UCSRB; \
|
||||||
ucByte &= ~serTX_INT_ENABLE; \
|
ucByte &= ~serTX_INT_ENABLE; \
|
||||||
|
@ -90,27 +91,27 @@ static xQueueHandle xCharsForTx;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulBaudRateCounter;
|
unsigned long ulBaudRateCounter;
|
||||||
unsigned portCHAR ucByte;
|
unsigned char ucByte;
|
||||||
|
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
{
|
{
|
||||||
/* Create the queues used by the com test task. */
|
/* Create the queues used by the com test task. */
|
||||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
xCharsForTx = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xCharsForTx = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
|
|
||||||
/* Calculate the baud rate register value from the equation in the
|
/* Calculate the baud rate register value from the equation in the
|
||||||
data sheet. */
|
data sheet. */
|
||||||
ulBaudRateCounter = ( configCPU_CLOCK_HZ / ( serBAUD_DIV_CONSTANT * ulWantedBaud ) ) - ( unsigned portLONG ) 1;
|
ulBaudRateCounter = ( configCPU_CLOCK_HZ / ( serBAUD_DIV_CONSTANT * ulWantedBaud ) ) - ( unsigned long ) 1;
|
||||||
|
|
||||||
/* Set the baud rate. */
|
/* Set the baud rate. */
|
||||||
ucByte = ( unsigned portCHAR ) ( ulBaudRateCounter & ( unsigned portLONG ) 0xff );
|
ucByte = ( unsigned char ) ( ulBaudRateCounter & ( unsigned long ) 0xff );
|
||||||
outb( UBRRL, ucByte );
|
outb( UBRRL, ucByte );
|
||||||
|
|
||||||
ulBaudRateCounter >>= ( unsigned portLONG ) 8;
|
ulBaudRateCounter >>= ( unsigned long ) 8;
|
||||||
ucByte = ( unsigned portCHAR ) ( ulBaudRateCounter & ( unsigned portLONG ) 0xff );
|
ucByte = ( unsigned char ) ( ulBaudRateCounter & ( unsigned long ) 0xff );
|
||||||
outb( UBRRH, ucByte );
|
outb( UBRRH, ucByte );
|
||||||
|
|
||||||
/* Enable the Rx interrupt. The Tx interrupt will get enabled
|
/* Enable the Rx interrupt. The Tx interrupt will get enabled
|
||||||
|
@ -129,7 +130,7 @@ unsigned portCHAR ucByte;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* Get the next character from the buffer. Return false if no characters
|
/* Get the next character from the buffer. Return false if no characters
|
||||||
are available, or arrive before xBlockTime expires. */
|
are available, or arrive before xBlockTime expires. */
|
||||||
|
@ -144,7 +145,7 @@ signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcR
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* Return false if after the block time there is no room on the Tx queue. */
|
/* Return false if after the block time there is no room on the Tx queue. */
|
||||||
if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )
|
if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )
|
||||||
|
@ -160,7 +161,7 @@ signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOut
|
||||||
|
|
||||||
void vSerialClose( xComPortHandle xPort )
|
void vSerialClose( xComPortHandle xPort )
|
||||||
{
|
{
|
||||||
unsigned portCHAR ucByte;
|
unsigned char ucByte;
|
||||||
|
|
||||||
/* Turn off the interrupts. We may also want to delete the queues and/or
|
/* Turn off the interrupts. We may also want to delete the queues and/or
|
||||||
re-install the original ISR. */
|
re-install the original ISR. */
|
||||||
|
@ -178,7 +179,7 @@ unsigned portCHAR ucByte;
|
||||||
|
|
||||||
__interrupt void SIG_UART_RECV( void )
|
__interrupt void SIG_UART_RECV( void )
|
||||||
{
|
{
|
||||||
signed portCHAR ucChar, xHigherPriorityTaskWoken = pdFALSE;
|
signed char ucChar, xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
/* Get the character and post it on the queue of Rxed characters.
|
/* Get the character and post it on the queue of Rxed characters.
|
||||||
If the post causes a task to wake force a context switch as the woken task
|
If the post causes a task to wake force a context switch as the woken task
|
||||||
|
@ -196,7 +197,7 @@ signed portCHAR ucChar, xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
__interrupt void SIG_UART_DATA( void )
|
__interrupt void SIG_UART_DATA( void )
|
||||||
{
|
{
|
||||||
signed portCHAR cChar, cTaskWoken = pdFALSE;
|
signed char cChar, cTaskWoken = pdFALSE;
|
||||||
|
|
||||||
if( xQueueReceiveFromISR( xCharsForTx, &cChar, &cTaskWoken ) == pdTRUE )
|
if( xQueueReceiveFromISR( xCharsForTx, &cChar, &cTaskWoken ) == pdTRUE )
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FREERTOS_CONFIG_H
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
@ -65,10 +66,10 @@
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 1
|
#define configUSE_IDLE_HOOK 1
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 8000000 )
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 8000000 )
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 4 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 85 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 85 )
|
||||||
#define configTOTAL_HEAP_SIZE ( (size_t ) ( 1500 ) )
|
#define configTOTAL_HEAP_SIZE ( (size_t ) ( 1500 ) )
|
||||||
#define configMAX_TASK_NAME_LEN ( 8 )
|
#define configMAX_TASK_NAME_LEN ( 8 )
|
||||||
#define configUSE_TRACE_FACILITY 0
|
#define configUSE_TRACE_FACILITY 0
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -65,11 +66,11 @@ Changes from V2.6.0
|
||||||
* Simple parallel port IO routines.
|
* Simple parallel port IO routines.
|
||||||
*-----------------------------------------------------------*/
|
*-----------------------------------------------------------*/
|
||||||
|
|
||||||
#define partstALL_BITS_OUTPUT ( ( unsigned portCHAR ) 0xff )
|
#define partstALL_BITS_OUTPUT ( ( unsigned char ) 0xff )
|
||||||
#define partstALL_OUTPUTS_OFF ( ( unsigned portCHAR ) 0xff )
|
#define partstALL_OUTPUTS_OFF ( ( unsigned char ) 0xff )
|
||||||
#define partstMAX_OUTPUT_LED ( ( unsigned portCHAR ) 7 )
|
#define partstMAX_OUTPUT_LED ( ( unsigned char ) 7 )
|
||||||
|
|
||||||
static volatile unsigned portCHAR ucCurrentOutputValue = partstALL_OUTPUTS_OFF; /*lint !e956 File scope parameters okay here. */
|
static volatile unsigned char ucCurrentOutputValue = partstALL_OUTPUTS_OFF; /*lint !e956 File scope parameters okay here. */
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -85,7 +86,7 @@ void vParTestInitialise( void )
|
||||||
|
|
||||||
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
||||||
{
|
{
|
||||||
unsigned portCHAR ucBit = ( unsigned portCHAR ) 1;
|
unsigned char ucBit = ( unsigned char ) 1;
|
||||||
|
|
||||||
if( uxLED <= partstMAX_OUTPUT_LED )
|
if( uxLED <= partstMAX_OUTPUT_LED )
|
||||||
{
|
{
|
||||||
|
@ -95,7 +96,7 @@ unsigned portCHAR ucBit = ( unsigned portCHAR ) 1;
|
||||||
{
|
{
|
||||||
if( xValue == pdTRUE )
|
if( xValue == pdTRUE )
|
||||||
{
|
{
|
||||||
ucBit ^= ( unsigned portCHAR ) 0xff;
|
ucBit ^= ( unsigned char ) 0xff;
|
||||||
ucCurrentOutputValue &= ucBit;
|
ucCurrentOutputValue &= ucBit;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -112,11 +113,11 @@ unsigned portCHAR ucBit = ( unsigned portCHAR ) 1;
|
||||||
|
|
||||||
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
||||||
{
|
{
|
||||||
unsigned portCHAR ucBit;
|
unsigned char ucBit;
|
||||||
|
|
||||||
if( uxLED <= partstMAX_OUTPUT_LED )
|
if( uxLED <= partstMAX_OUTPUT_LED )
|
||||||
{
|
{
|
||||||
ucBit = ( ( unsigned portCHAR ) 1 ) << uxLED;
|
ucBit = ( ( unsigned char ) 1 ) << uxLED;
|
||||||
|
|
||||||
vTaskSuspendAll();
|
vTaskSuspendAll();
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -83,7 +84,7 @@ Changes from V1.2.5
|
||||||
Changes from V2.0.0
|
Changes from V2.0.0
|
||||||
|
|
||||||
+ Delay periods are now specified using variables and constants of
|
+ Delay periods are now specified using variables and constants of
|
||||||
portTickType rather than unsigned portLONG.
|
portTickType rather than unsigned long.
|
||||||
|
|
||||||
Changes from V2.6.1
|
Changes from V2.6.1
|
||||||
|
|
||||||
|
@ -126,7 +127,7 @@ tasks just use the idle priority. */
|
||||||
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
|
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
|
||||||
|
|
||||||
/* Baud rate used by the serial port tasks. */
|
/* Baud rate used by the serial port tasks. */
|
||||||
#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 38400 )
|
#define mainCOM_TEST_BAUD_RATE ( ( unsigned long ) 38400 )
|
||||||
|
|
||||||
/* LED used by the serial port tasks. This is toggled on each character Tx,
|
/* LED used by the serial port tasks. This is toggled on each character Tx,
|
||||||
and mainCOM_TEST_LED + 1 is toggles on each character Rx. */
|
and mainCOM_TEST_LED + 1 is toggles on each character Rx. */
|
||||||
|
@ -172,7 +173,7 @@ void vApplicationIdleHook( void );
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
portSHORT main( void )
|
short main( void )
|
||||||
{
|
{
|
||||||
prvIncrementResetCount();
|
prvIncrementResetCount();
|
||||||
|
|
||||||
|
@ -186,7 +187,7 @@ portSHORT main( void )
|
||||||
vStartRegTestTasks();
|
vStartRegTestTasks();
|
||||||
|
|
||||||
/* Create the tasks defined within this file. */
|
/* Create the tasks defined within this file. */
|
||||||
xTaskCreate( vErrorChecks, ( signed portCHAR * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
xTaskCreate( vErrorChecks, ( signed char * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
||||||
|
|
||||||
/* Create the co-routines that flash the LED's. */
|
/* Create the co-routines that flash the LED's. */
|
||||||
vStartFlashCoRoutines( mainNUM_FLASH_COROUTINES );
|
vStartFlashCoRoutines( mainNUM_FLASH_COROUTINES );
|
||||||
|
@ -202,7 +203,7 @@ portSHORT main( void )
|
||||||
|
|
||||||
static void vErrorChecks( void *pvParameters )
|
static void vErrorChecks( void *pvParameters )
|
||||||
{
|
{
|
||||||
static volatile unsigned portLONG ulDummyVariable = 3UL;
|
static volatile unsigned long ulDummyVariable = 3UL;
|
||||||
|
|
||||||
/* The parameters are not used. */
|
/* The parameters are not used. */
|
||||||
( void ) pvParameters;
|
( void ) pvParameters;
|
||||||
|
@ -258,7 +259,7 @@ static portBASE_TYPE xErrorHasOccurred = pdFALSE;
|
||||||
|
|
||||||
static void prvIncrementResetCount( void )
|
static void prvIncrementResetCount( void )
|
||||||
{
|
{
|
||||||
unsigned portCHAR ucCount;
|
unsigned char ucCount;
|
||||||
|
|
||||||
eeprom_read_block( &ucCount, mainRESET_COUNT_ADDRESS, sizeof( ucCount ) );
|
eeprom_read_block( &ucCount, mainRESET_COUNT_ADDRESS, sizeof( ucCount ) );
|
||||||
ucCount++;
|
ucCount++;
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Scheduler include files. */
|
/* Scheduler include files. */
|
||||||
|
@ -66,8 +67,8 @@ portBASE_TYPE xRegTestError = pdFALSE;
|
||||||
|
|
||||||
void vStartRegTestTasks( void )
|
void vStartRegTestTasks( void )
|
||||||
{
|
{
|
||||||
xTaskCreate( prvRegisterCheck1, ( signed portCHAR * ) "Reg1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
|
xTaskCreate( prvRegisterCheck1, ( signed char * ) "Reg1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
|
||||||
xTaskCreate( prvRegisterCheck2, ( signed portCHAR * ) "Reg2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
|
xTaskCreate( prvRegisterCheck2, ( signed char * ) "Reg2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef REG_TEST_H
|
#ifndef REG_TEST_H
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -55,7 +56,7 @@ Changes from V1.2.3
|
||||||
Changes from V2.0.0
|
Changes from V2.0.0
|
||||||
|
|
||||||
+ Delay periods are now specified using variables and constants of
|
+ Delay periods are now specified using variables and constants of
|
||||||
portTickType rather than unsigned portLONG.
|
portTickType rather than unsigned long.
|
||||||
+ xQueueReceiveFromISR() used in place of xQueueReceive() within the ISR.
|
+ xQueueReceiveFromISR() used in place of xQueueReceive() within the ISR.
|
||||||
|
|
||||||
Changes from V2.6.0
|
Changes from V2.6.0
|
||||||
|
@ -75,24 +76,24 @@ Changes from V2.6.0
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "serial.h"
|
#include "serial.h"
|
||||||
|
|
||||||
#define serBAUD_DIV_CONSTANT ( ( unsigned portLONG ) 16 )
|
#define serBAUD_DIV_CONSTANT ( ( unsigned long ) 16 )
|
||||||
|
|
||||||
/* Constants for writing to UCSRB. */
|
/* Constants for writing to UCSRB. */
|
||||||
#define serRX_INT_ENABLE ( ( unsigned portCHAR ) 0x80 )
|
#define serRX_INT_ENABLE ( ( unsigned char ) 0x80 )
|
||||||
#define serRX_ENABLE ( ( unsigned portCHAR ) 0x10 )
|
#define serRX_ENABLE ( ( unsigned char ) 0x10 )
|
||||||
#define serTX_ENABLE ( ( unsigned portCHAR ) 0x08 )
|
#define serTX_ENABLE ( ( unsigned char ) 0x08 )
|
||||||
#define serTX_INT_ENABLE ( ( unsigned portCHAR ) 0x20 )
|
#define serTX_INT_ENABLE ( ( unsigned char ) 0x20 )
|
||||||
|
|
||||||
/* Constants for writing to UCSRC. */
|
/* Constants for writing to UCSRC. */
|
||||||
#define serUCSRC_SELECT ( ( unsigned portCHAR ) 0x80 )
|
#define serUCSRC_SELECT ( ( unsigned char ) 0x80 )
|
||||||
#define serEIGHT_DATA_BITS ( ( unsigned portCHAR ) 0x06 )
|
#define serEIGHT_DATA_BITS ( ( unsigned char ) 0x06 )
|
||||||
|
|
||||||
static xQueueHandle xRxedChars;
|
static xQueueHandle xRxedChars;
|
||||||
static xQueueHandle xCharsForTx;
|
static xQueueHandle xCharsForTx;
|
||||||
|
|
||||||
#define vInterruptOn() \
|
#define vInterruptOn() \
|
||||||
{ \
|
{ \
|
||||||
unsigned portCHAR ucByte; \
|
unsigned char ucByte; \
|
||||||
\
|
\
|
||||||
ucByte = UCSRB; \
|
ucByte = UCSRB; \
|
||||||
ucByte |= serTX_INT_ENABLE; \
|
ucByte |= serTX_INT_ENABLE; \
|
||||||
|
@ -102,7 +103,7 @@ static xQueueHandle xCharsForTx;
|
||||||
|
|
||||||
#define vInterruptOff() \
|
#define vInterruptOff() \
|
||||||
{ \
|
{ \
|
||||||
unsigned portCHAR ucInByte; \
|
unsigned char ucInByte; \
|
||||||
\
|
\
|
||||||
ucInByte = UCSRB; \
|
ucInByte = UCSRB; \
|
||||||
ucInByte &= ~serTX_INT_ENABLE; \
|
ucInByte &= ~serTX_INT_ENABLE; \
|
||||||
|
@ -110,27 +111,27 @@ static xQueueHandle xCharsForTx;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||||
{
|
{
|
||||||
unsigned portLONG ulBaudRateCounter;
|
unsigned long ulBaudRateCounter;
|
||||||
unsigned portCHAR ucByte;
|
unsigned char ucByte;
|
||||||
|
|
||||||
portENTER_CRITICAL();
|
portENTER_CRITICAL();
|
||||||
{
|
{
|
||||||
/* Create the queues used by the com test task. */
|
/* Create the queues used by the com test task. */
|
||||||
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
xCharsForTx = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
xCharsForTx = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
|
||||||
|
|
||||||
/* Calculate the baud rate register value from the equation in the
|
/* Calculate the baud rate register value from the equation in the
|
||||||
data sheet. */
|
data sheet. */
|
||||||
ulBaudRateCounter = ( configCPU_CLOCK_HZ / ( serBAUD_DIV_CONSTANT * ulWantedBaud ) ) - ( unsigned portLONG ) 1;
|
ulBaudRateCounter = ( configCPU_CLOCK_HZ / ( serBAUD_DIV_CONSTANT * ulWantedBaud ) ) - ( unsigned long ) 1;
|
||||||
|
|
||||||
/* Set the baud rate. */
|
/* Set the baud rate. */
|
||||||
ucByte = ( unsigned portCHAR ) ( ulBaudRateCounter & ( unsigned portLONG ) 0xff );
|
ucByte = ( unsigned char ) ( ulBaudRateCounter & ( unsigned long ) 0xff );
|
||||||
UBRRL = ucByte;
|
UBRRL = ucByte;
|
||||||
|
|
||||||
ulBaudRateCounter >>= ( unsigned portLONG ) 8;
|
ulBaudRateCounter >>= ( unsigned long ) 8;
|
||||||
ucByte = ( unsigned portCHAR ) ( ulBaudRateCounter & ( unsigned portLONG ) 0xff );
|
ucByte = ( unsigned char ) ( ulBaudRateCounter & ( unsigned long ) 0xff );
|
||||||
UBRRH = ucByte;
|
UBRRH = ucByte;
|
||||||
|
|
||||||
/* Enable the Rx interrupt. The Tx interrupt will get enabled
|
/* Enable the Rx interrupt. The Tx interrupt will get enabled
|
||||||
|
@ -149,7 +150,7 @@ unsigned portCHAR ucByte;
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* Only one port is supported. */
|
/* Only one port is supported. */
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
@ -167,7 +168,7 @@ signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcR
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime )
|
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, portTickType xBlockTime )
|
||||||
{
|
{
|
||||||
/* Only one port is supported. */
|
/* Only one port is supported. */
|
||||||
( void ) pxPort;
|
( void ) pxPort;
|
||||||
|
@ -186,7 +187,7 @@ signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOut
|
||||||
|
|
||||||
void vSerialClose( xComPortHandle xPort )
|
void vSerialClose( xComPortHandle xPort )
|
||||||
{
|
{
|
||||||
unsigned portCHAR ucByte;
|
unsigned char ucByte;
|
||||||
|
|
||||||
/* The parameter is not used. */
|
/* The parameter is not used. */
|
||||||
( void ) xPort;
|
( void ) xPort;
|
||||||
|
@ -207,7 +208,7 @@ unsigned portCHAR ucByte;
|
||||||
|
|
||||||
SIGNAL( SIG_UART_RECV )
|
SIGNAL( SIG_UART_RECV )
|
||||||
{
|
{
|
||||||
signed portCHAR cChar;
|
signed char cChar;
|
||||||
signed portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
signed portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
/* Get the character and post it on the queue of Rxed characters.
|
/* Get the character and post it on the queue of Rxed characters.
|
||||||
|
@ -226,7 +227,7 @@ signed portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
|
||||||
|
|
||||||
SIGNAL( SIG_UART_DATA )
|
SIGNAL( SIG_UART_DATA )
|
||||||
{
|
{
|
||||||
signed portCHAR cChar, cTaskWoken;
|
signed char cChar, cTaskWoken;
|
||||||
|
|
||||||
if( xQueueReceiveFromISR( xCharsForTx, &cChar, &cTaskWoken ) == pdTRUE )
|
if( xQueueReceiveFromISR( xCharsForTx, &cChar, &cTaskWoken ) == pdTRUE )
|
||||||
{
|
{
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
void vInitFEC( void );
|
void vInitFEC( void );
|
||||||
|
|
||||||
/* Receive any data into the uip_buf array. */
|
/* Receive any data into the uip_buf array. */
|
||||||
unsigned portLONG ulFECRx( void );
|
unsigned long ulFECRx( void );
|
||||||
|
|
||||||
/* Transmit the uip_buf array. */
|
/* Transmit the uip_buf array. */
|
||||||
void vFECTx( void );
|
void vFECTx( void );
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -80,7 +81,7 @@ before compiling. */
|
||||||
#define configUSE_TICK_HOOK 1
|
#define configUSE_TICK_HOOK 1
|
||||||
#define configCPU_CLOCK_HZ ( 50000000UL )
|
#define configCPU_CLOCK_HZ ( 50000000UL )
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 100 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 100 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 100 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 100 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 13 * 1024 ) )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 13 * 1024 ) )
|
||||||
#define configMAX_TASK_NAME_LEN ( 12 )
|
#define configMAX_TASK_NAME_LEN ( 12 )
|
||||||
#define configUSE_TRACE_FACILITY 1
|
#define configUSE_TRACE_FACILITY 1
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -30,10 +30,10 @@
|
||||||
#define ETH_MTU (ETH_HDR_LEN + ETH_MAX_DATA)
|
#define ETH_MTU (ETH_HDR_LEN + ETH_MAX_DATA)
|
||||||
|
|
||||||
/* Ethernet Addresses */
|
/* Ethernet Addresses */
|
||||||
typedef unsigned portCHAR ETH_ADDR[ETH_ADDR_LEN];
|
typedef unsigned char ETH_ADDR[ETH_ADDR_LEN];
|
||||||
|
|
||||||
/* 16-bit Ethernet Frame Type, ie. Protocol */
|
/* 16-bit Ethernet Frame Type, ie. Protocol */
|
||||||
typedef unsigned portSHORT ETH_FRM_TYPE;
|
typedef unsigned short ETH_FRM_TYPE;
|
||||||
|
|
||||||
/* Ethernet Frame Header definition */
|
/* Ethernet Frame Header definition */
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -47,7 +47,7 @@ typedef struct
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
ETH_HDR head;
|
ETH_HDR head;
|
||||||
unsigned portCHAR* data;
|
unsigned char* data;
|
||||||
} ETH_FRAME;
|
} ETH_FRAME;
|
||||||
|
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
|
|
|
@ -29,9 +29,9 @@
|
||||||
#pragma options align= packed
|
#pragma options align= packed
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
unsigned portSHORT status; /* control and status */
|
unsigned short status; /* control and status */
|
||||||
unsigned portSHORT length; /* transfer length */
|
unsigned short length; /* transfer length */
|
||||||
unsigned portCHAR *data; /* buffer address */
|
unsigned char *data; /* buffer address */
|
||||||
} FECBD;
|
} FECBD;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -85,7 +85,7 @@ typedef struct
|
||||||
int fecbd_init(int, int, int);
|
int fecbd_init(int, int, int);
|
||||||
void fecbd_flush(int);
|
void fecbd_flush(int);
|
||||||
void fecbd_dump( void );
|
void fecbd_dump( void );
|
||||||
unsigned portLONG fecbd_get_start(int, int);
|
unsigned long fecbd_get_start(int, int);
|
||||||
FECBD* fecbd_rx_alloc(int);
|
FECBD* fecbd_rx_alloc(int);
|
||||||
FECBD* fecbd_tx_alloc(int);
|
FECBD* fecbd_tx_alloc(int);
|
||||||
FECBD* fecbd_tx_free(int);
|
FECBD* fecbd_tx_free(int);
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Standard includes. */
|
/* Standard includes. */
|
||||||
|
@ -192,7 +193,7 @@ extern void ( vEMAC_ISR )( void );
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vApplicationProcessFormInput( portCHAR *pcInputString, portBASE_TYPE xInputLength )
|
void vApplicationProcessFormInput( char *pcInputString, portBASE_TYPE xInputLength )
|
||||||
{
|
{
|
||||||
char *c;
|
char *c;
|
||||||
|
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -96,7 +97,7 @@
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/* ComTest constants - there is no free LED for the comtest tasks. */
|
/* ComTest constants - there is no free LED for the comtest tasks. */
|
||||||
#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 19200 )
|
#define mainCOM_TEST_BAUD_RATE ( ( unsigned long ) 19200 )
|
||||||
#define mainCOM_TEST_LED ( 5 )
|
#define mainCOM_TEST_LED ( 5 )
|
||||||
|
|
||||||
/* Task priorities. */
|
/* Task priorities. */
|
||||||
|
@ -137,7 +138,7 @@ extern void vuIP_Task( void *pvParameters );
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
/* Counters used to detect errors within the reg test tasks. */
|
/* Counters used to detect errors within the reg test tasks. */
|
||||||
static volatile unsigned portLONG ulRegTest1Counter = 0x11111111, ulRegTest2Counter = 0x22222222;
|
static volatile unsigned long ulRegTest1Counter = 0x11111111, ulRegTest2Counter = 0x22222222;
|
||||||
|
|
||||||
/* Flag that latches any errors detected in the system. */
|
/* Flag that latches any errors detected in the system. */
|
||||||
unsigned long ulCheckErrors = 0;
|
unsigned long ulCheckErrors = 0;
|
||||||
|
@ -151,7 +152,7 @@ extern void vBasicWEBServer( void *pv );
|
||||||
/* Setup the hardware ready for this demo. */
|
/* Setup the hardware ready for this demo. */
|
||||||
prvSetupHardware();
|
prvSetupHardware();
|
||||||
|
|
||||||
xTaskCreate( vuIP_Task, ( signed portCHAR * ) "uIP", mainBASIC_WEB_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY - 1, NULL );
|
xTaskCreate( vuIP_Task, ( signed char * ) "uIP", mainBASIC_WEB_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY - 1, NULL );
|
||||||
|
|
||||||
/* Start the standard demo tasks. */
|
/* Start the standard demo tasks. */
|
||||||
vStartLEDFlashTasks( tskIDLE_PRIORITY );
|
vStartLEDFlashTasks( tskIDLE_PRIORITY );
|
||||||
|
@ -161,8 +162,8 @@ extern void vBasicWEBServer( void *pv );
|
||||||
vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
|
vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
|
||||||
|
|
||||||
/* Start the reg test tasks - defined in this file. */
|
/* Start the reg test tasks - defined in this file. */
|
||||||
xTaskCreate( vRegTest1Task, ( signed portCHAR * ) "Reg1", configMINIMAL_STACK_SIZE, ( void * ) &ulRegTest1Counter, tskIDLE_PRIORITY, NULL );
|
xTaskCreate( vRegTest1Task, ( signed char * ) "Reg1", configMINIMAL_STACK_SIZE, ( void * ) &ulRegTest1Counter, tskIDLE_PRIORITY, NULL );
|
||||||
xTaskCreate( vRegTest2Task, ( signed portCHAR * ) "Reg2", configMINIMAL_STACK_SIZE, ( void * ) &ulRegTest2Counter, tskIDLE_PRIORITY, NULL );
|
xTaskCreate( vRegTest2Task, ( signed char * ) "Reg2", configMINIMAL_STACK_SIZE, ( void * ) &ulRegTest2Counter, tskIDLE_PRIORITY, NULL );
|
||||||
|
|
||||||
/* Start the scheduler. */
|
/* Start the scheduler. */
|
||||||
vTaskStartScheduler();
|
vTaskStartScheduler();
|
||||||
|
@ -281,7 +282,7 @@ static void prvSetupHardware( void )
|
||||||
}
|
}
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed portCHAR *pcTaskName )
|
void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName )
|
||||||
{
|
{
|
||||||
/* This will get called if a stack overflow is detected during the context
|
/* This will get called if a stack overflow is detected during the context
|
||||||
switch. Set configCHECK_FOR_STACK_OVERFLOWS to 2 to also check for stack
|
switch. Set configCHECK_FOR_STACK_OVERFLOWS to 2 to also check for stack
|
||||||
|
|
|
@ -1,48 +1,49 @@
|
||||||
/*
|
/*
|
||||||
FreeRTOS V5.4.2 - Copyright (C) 2009 Real Time Engineers Ltd.
|
FreeRTOS V6.0.0 - Copyright (C) 2009 Real Time Engineers Ltd.
|
||||||
|
|
||||||
This file is part of the FreeRTOS distribution.
|
This file is part of the FreeRTOS distribution.
|
||||||
|
|
||||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
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
|
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 exception to the GPL is included to allow you to distribute a
|
**NOTE** The exception to the GPL is included to allow you to distribute a
|
||||||
combined work that includes FreeRTOS without being obliged to provide the
|
combined work that includes FreeRTOS without being obliged to provide the
|
||||||
source code for proprietary components outside of the FreeRTOS kernel.
|
source code for proprietary components outside of the FreeRTOS kernel.
|
||||||
Alternative commercial license and support terms are also available upon
|
Alternative commercial license and support terms are also available upon
|
||||||
request. See the licensing section of http://www.FreeRTOS.org for full
|
request. See the licensing section of http://www.FreeRTOS.org for full
|
||||||
license details.
|
license details.
|
||||||
|
|
||||||
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
more details.
|
more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
You should have received a copy of the GNU General Public License along
|
||||||
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59
|
||||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
* *
|
* *
|
||||||
* Looking for a quick start? Then check out the FreeRTOS eBook! *
|
* The FreeRTOS eBook and reference manual are available to purchase for a *
|
||||||
* See http://www.FreeRTOS.org/Documentation for details *
|
* small fee. Help yourself get started quickly while also helping the *
|
||||||
* *
|
* FreeRTOS project! See http://www.FreeRTOS.org/Documentation for details *
|
||||||
***************************************************************************
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
1 tab == 4 spaces!
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
Please ensure to read the configuration and relevant port sections of the
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
online documentation.
|
online documentation.
|
||||||
|
|
||||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
contact details.
|
contact details.
|
||||||
|
|
||||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
critical systems.
|
critical systems.
|
||||||
|
|
||||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
licensing and training services.
|
licensing and training services.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* CodeWarrior often thinks it knows better than you which files you want to
|
/* CodeWarrior often thinks it knows better than you which files you want to
|
||||||
|
@ -76,9 +77,9 @@ before compiling. */
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 1
|
#define configUSE_IDLE_HOOK 1
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 80000000 )
|
#define configCPU_CLOCK_HZ ( ( unsigned long ) 80000000 )
|
||||||
#define configTICK_RATE_HZ ( ( portTickType ) 100 )
|
#define configTICK_RATE_HZ ( ( portTickType ) 100 )
|
||||||
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 100 )
|
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 100 )
|
||||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 15000 ) )
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 15000 ) )
|
||||||
#define configMAX_TASK_NAME_LEN ( 12 )
|
#define configMAX_TASK_NAME_LEN ( 12 )
|
||||||
#define configUSE_TRACE_FACILITY 1
|
#define configUSE_TRACE_FACILITY 1
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue