mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-24 07:21:57 -04:00
New demo being added - work in progress.
This commit is contained in:
parent
8471147b5a
commit
5e6d50864c
104
Demo/ARM9_AT91SAM9XE_IAR/FreeRTOSConfig.h
Normal file
104
Demo/ARM9_AT91SAM9XE_IAR/FreeRTOSConfig.h
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
/*
|
||||||
|
FreeRTOS.org V5.1.1 - Copyright (C) 2003-2008 Richard Barry.
|
||||||
|
|
||||||
|
This file is part of the FreeRTOS.org distribution.
|
||||||
|
|
||||||
|
FreeRTOS.org is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
FreeRTOS.org is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with FreeRTOS.org; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
A special exception to the GPL can be applied should you wish to distribute
|
||||||
|
a combined work that includes FreeRTOS.org, without being obliged to provide
|
||||||
|
the source code for any proprietary components. See the licensing section
|
||||||
|
of http://www.FreeRTOS.org for full details of how and when the exception
|
||||||
|
can be applied.
|
||||||
|
|
||||||
|
***************************************************************************
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* SAVE TIME AND MONEY! We can port FreeRTOS.org to your own hardware, *
|
||||||
|
* and even write all or part of your application on your behalf. *
|
||||||
|
* See http://www.OpenRTOS.com for details of the services we provide to *
|
||||||
|
* expedite your project. *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
|
online documentation.
|
||||||
|
|
||||||
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
|
contact details.
|
||||||
|
|
||||||
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
|
critical systems.
|
||||||
|
|
||||||
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
|
licensing and training services.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
#define FREERTOS_CONFIG_H
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------
|
||||||
|
* Application specific definitions.
|
||||||
|
*
|
||||||
|
* These definitions should be adjusted for your particular hardware and
|
||||||
|
* application requirements.
|
||||||
|
*
|
||||||
|
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
|
||||||
|
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
|
||||||
|
*
|
||||||
|
* See http://www.freertos.org/a00110.html.
|
||||||
|
*----------------------------------------------------------*/
|
||||||
|
|
||||||
|
#define configUSE_PREEMPTION 1
|
||||||
|
#define configUSE_IDLE_HOOK 0
|
||||||
|
#define configUSE_TICK_HOOK 0
|
||||||
|
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 64000000 )
|
||||||
|
#define configTICK_RATE_HZ ( ( portTickType ) 100 )
|
||||||
|
#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 190 )
|
||||||
|
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 40000 ) )
|
||||||
|
#define configMAX_TASK_NAME_LEN ( 12 )
|
||||||
|
#define configUSE_TRACE_FACILITY 1
|
||||||
|
#define configUSE_16_BIT_TICKS 0
|
||||||
|
#define configIDLE_SHOULD_YIELD 0
|
||||||
|
#define configUSE_CO_ROUTINES 0
|
||||||
|
#define configUSE_MUTEXES 1
|
||||||
|
#define configCHECK_FOR_STACK_OVERFLOW 0
|
||||||
|
#define configUSE_RECURSIVE_MUTEXES 1
|
||||||
|
#define configQUEUE_REGISTRY_SIZE 10
|
||||||
|
#define configUSE_COUNTING_SEMAPHORES 1
|
||||||
|
|
||||||
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 6 )
|
||||||
|
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
|
||||||
|
|
||||||
|
/* Set the following definitions to 1 to include the API function, or zero
|
||||||
|
to exclude the API function. */
|
||||||
|
|
||||||
|
#define INCLUDE_vTaskPrioritySet 1
|
||||||
|
#define INCLUDE_uxTaskPriorityGet 1
|
||||||
|
#define INCLUDE_vTaskDelete 1
|
||||||
|
#define INCLUDE_vTaskCleanUpResources 0
|
||||||
|
#define INCLUDE_vTaskSuspend 1
|
||||||
|
#define INCLUDE_vTaskDelayUntil 1
|
||||||
|
#define INCLUDE_vTaskDelay 1
|
||||||
|
#define INCLUDE_uxTaskGetStackHighWaterMark 1
|
||||||
|
|
||||||
|
#define configYIELD_INTERRUPT_VECTOR 16UL
|
||||||
|
#define configKERNEL_INTERRUPT_PRIORITY 1
|
||||||
|
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 4
|
||||||
|
|
||||||
|
void vApplicationSetupInterrupts( void );
|
||||||
|
|
||||||
|
#endif /* FREERTOS_CONFIG_H */
|
75
Demo/ARM9_AT91SAM9XE_IAR/ParTest/ParTest.c
Normal file
75
Demo/ARM9_AT91SAM9XE_IAR/ParTest/ParTest.c
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
/*
|
||||||
|
FreeRTOS.org V5.1.1 - Copyright (C) 2003-2008 Richard Barry.
|
||||||
|
|
||||||
|
This file is part of the FreeRTOS.org distribution.
|
||||||
|
|
||||||
|
FreeRTOS.org is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
FreeRTOS.org is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with FreeRTOS.org; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
A special exception to the GPL can be applied should you wish to distribute
|
||||||
|
a combined work that includes FreeRTOS.org, without being obliged to provide
|
||||||
|
the source code for any proprietary components. See the licensing section
|
||||||
|
of http://www.FreeRTOS.org for full details of how and when the exception
|
||||||
|
can be applied.
|
||||||
|
|
||||||
|
***************************************************************************
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* SAVE TIME AND MONEY! We can port FreeRTOS.org to your own hardware, *
|
||||||
|
* and even write all or part of your application on your behalf. *
|
||||||
|
* See http://www.OpenRTOS.com for details of the services we provide to *
|
||||||
|
* expedite your project. *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
|
online documentation.
|
||||||
|
|
||||||
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
|
contact details.
|
||||||
|
|
||||||
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
|
critical systems.
|
||||||
|
|
||||||
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
|
licensing and training services.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "partest.h"
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------
|
||||||
|
* Simple parallel port IO routines for the LED's.
|
||||||
|
*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
void vParTestInitialise( void )
|
||||||
|
{
|
||||||
|
LED_Configure( 0 );
|
||||||
|
LED_Configure( 1 );
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
|
||||||
|
{
|
||||||
|
LED_Toggle(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
47
Demo/ARM9_AT91SAM9XE_IAR/RTOSDemo.eww
Normal file
47
Demo/ARM9_AT91SAM9XE_IAR/RTOSDemo.eww
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<workspace>
|
||||||
|
<project>
|
||||||
|
<path>$WS_DIR$\ewp\at91sam9xe-ek.ewp</path>
|
||||||
|
</project>
|
||||||
|
<batchBuild>
|
||||||
|
<batchDefinition>
|
||||||
|
<name>All</name>>
|
||||||
|
<member>
|
||||||
|
<project>at91sam9xe-ek</project>
|
||||||
|
<configuration>at91sam9xe128_flash</configuration>
|
||||||
|
</member>
|
||||||
|
<member>
|
||||||
|
<project>at91sam9xe-ek</project>
|
||||||
|
<configuration>at91sam9xe128_sdram</configuration>
|
||||||
|
</member>
|
||||||
|
<member>
|
||||||
|
<project>at91sam9xe-ek</project>
|
||||||
|
<configuration>at91sam9xe128_sram</configuration>
|
||||||
|
</member>
|
||||||
|
<member>
|
||||||
|
<project>at91sam9xe-ek</project>
|
||||||
|
<configuration>at91sam9xe256_flash</configuration>
|
||||||
|
</member>
|
||||||
|
<member>
|
||||||
|
<project>at91sam9xe-ek</project>
|
||||||
|
<configuration>at91sam9xe256_sdram</configuration>
|
||||||
|
</member>
|
||||||
|
<member>
|
||||||
|
<project>at91sam9xe-ek</project>
|
||||||
|
<configuration>at91sam9xe256_sram</configuration>
|
||||||
|
</member>
|
||||||
|
<member>
|
||||||
|
<project>at91sam9xe-ek</project>
|
||||||
|
<configuration>at91sam9xe512_flash</configuration>
|
||||||
|
</member>
|
||||||
|
<member>
|
||||||
|
<project>at91sam9xe-ek</project>
|
||||||
|
<configuration>at91sam9xe512_sdram</configuration>
|
||||||
|
</member>
|
||||||
|
<member>
|
||||||
|
<project>at91sam9xe-ek</project>
|
||||||
|
<configuration>at91sam9xe512_sram</configuration>
|
||||||
|
</member>
|
||||||
|
</batchDefinition>
|
||||||
|
</batchBuild>
|
||||||
|
</workspace>
|
5441
Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewd
Normal file
5441
Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewd
Normal file
File diff suppressed because it is too large
Load diff
7230
Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewp
Normal file
7230
Demo/ARM9_AT91SAM9XE_IAR/ewp/at91sam9xe-ek.ewp
Normal file
File diff suppressed because it is too large
Load diff
32
Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.cspy.bat
Normal file
32
Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.cspy.bat
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
@REM This bat file has been generated by the IAR Embeddded Workbench
|
||||||
|
@REM C-SPY interactive debugger,as an aid to preparing a command
|
||||||
|
@REM line for running the cspybat command line utility with the
|
||||||
|
@REM appropriate settings.
|
||||||
|
@REM
|
||||||
|
@REM After making some adjustments to this file, you can launch cspybat
|
||||||
|
@REM by typing the name of this file followed by the name of the debug
|
||||||
|
@REM file (usually an ubrof file). Note that this file is generated
|
||||||
|
@REM every time a new debug session is initialized, so you may want to
|
||||||
|
@REM move or rename the file before making changes.
|
||||||
|
@REM
|
||||||
|
@REM Note: some command line arguments cannot be properly generated
|
||||||
|
@REM by this process. Specifically, the plugin which is responsible
|
||||||
|
@REM for the Terminal I/O window (and other C runtime functionality)
|
||||||
|
@REM comes in a special version for cspybat, and the name of that
|
||||||
|
@REM plugin dll is not known when generating this file. It resides in
|
||||||
|
@REM the $TOOLKIT_DIR$\bin folder and is usually called XXXbat.dll or
|
||||||
|
@REM XXXlibsupportbat.dll, where XXX is the name of the corresponding
|
||||||
|
@REM tool chain. Replace the '<libsupport_plugin>' parameter
|
||||||
|
@REM below with the appropriate file name. Other plugins loaded by
|
||||||
|
@REM C-SPY are usually not needed by, or will not work in, cspybat
|
||||||
|
@REM but they are listed at the end of this file for reference.
|
||||||
|
|
||||||
|
|
||||||
|
"C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\bin\cspybat" "C:\Devtools\IAR Systems\Embedded Workbench 5.0\ARM\bin\armproc.dll" "C:\Devtools\IAR Systems\Embedded Workbench 5.0\ARM\bin\armjlink.dll" %1 --plugin "C:\Devtools\IAR Systems\Embedded Workbench 5.0\ARM\bin\<libsupport_plugin>" --macro "C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\ARM9_AT91SAM9XE_IAR\ewp\..\..\..\resources\at91sam9xe-ek-flash.mac" --backend -B "--endian=little" "--cpu=ARM926EJ-S" "--fpu=None" "-p" "C:\Devtools\IAR Systems\Embedded Workbench 5.0\ARM\CONFIG\debugger\Atmel\ioAT91SAM9XE256.ddf" "--semihosting" "--device=AT91SAM9XE256" "-d" "jlink" "--drv_communication=USB0" "--jlink_speed=adaptive" "--drv_catch_exceptions=0x000"
|
||||||
|
|
||||||
|
|
||||||
|
@REM Loaded plugins:
|
||||||
|
@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\ARM\bin\armlibsupport.dll
|
||||||
|
@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\plugins\CodeCoverage\CodeCoverage.dll
|
||||||
|
@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\plugins\stack\stack.dll
|
||||||
|
@REM C:\Devtools\IAR Systems\Embedded Workbench 5.0\common\plugins\SymList\SymList.dll
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
|
||||||
|
<Project/>
|
||||||
|
|
||||||
|
|
11
Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.dni
Normal file
11
Demo/ARM9_AT91SAM9XE_IAR/ewp/settings/at91sam9xe-ek.dni
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[JLinkDriver]
|
||||||
|
WatchCond=_ 0
|
||||||
|
Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0
|
||||||
|
Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0
|
||||||
|
[Disassemble mode]
|
||||||
|
mode=0
|
||||||
|
[Breakpoints]
|
||||||
|
Count=0
|
||||||
|
[TraceHelper]
|
||||||
|
Enabled=0
|
||||||
|
ShowSource=1
|
199
Demo/ARM9_AT91SAM9XE_IAR/main.c
Normal file
199
Demo/ARM9_AT91SAM9XE_IAR/main.c
Normal file
|
@ -0,0 +1,199 @@
|
||||||
|
/*
|
||||||
|
FreeRTOS.org V5.1.1 - Copyright (C) 2003-2008 Richard Barry.
|
||||||
|
|
||||||
|
This file is part of the FreeRTOS.org distribution.
|
||||||
|
|
||||||
|
FreeRTOS.org is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
FreeRTOS.org is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with FreeRTOS.org; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
A special exception to the GPL can be applied should you wish to distribute
|
||||||
|
a combined work that includes FreeRTOS.org, without being obliged to provide
|
||||||
|
the source code for any proprietary components. See the licensing section
|
||||||
|
of http://www.FreeRTOS.org for full details of how and when the exception
|
||||||
|
can be applied.
|
||||||
|
|
||||||
|
***************************************************************************
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* SAVE TIME AND MONEY! We can port FreeRTOS.org to your own hardware, *
|
||||||
|
* and even write all or part of your application on your behalf. *
|
||||||
|
* See http://www.OpenRTOS.com for details of the services we provide to *
|
||||||
|
* expedite your project. *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
|
online documentation.
|
||||||
|
|
||||||
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
|
contact details.
|
||||||
|
|
||||||
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
|
critical systems.
|
||||||
|
|
||||||
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
|
licensing and training services.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* FreeRTOS includes. */
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "task.h"
|
||||||
|
|
||||||
|
/* Standard demo includes. */
|
||||||
|
#include "BlockQ.h"
|
||||||
|
#include "blocktim.h"
|
||||||
|
#include "countsem.h"
|
||||||
|
#include "death.h"
|
||||||
|
#include "dynamic.h"
|
||||||
|
#include "flash.h"
|
||||||
|
#include "GenQTest.h"
|
||||||
|
#include "integer.h"
|
||||||
|
#include "PollQ.h"
|
||||||
|
#include "QPeek.h"
|
||||||
|
#include "recmutex.h"
|
||||||
|
#include "semtest.h"
|
||||||
|
#include "ParTest.h"
|
||||||
|
|
||||||
|
/* Standard includes. */
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* Priorities for the demo application tasks. */
|
||||||
|
#define mainLED_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
|
||||||
|
#define mainCOM_TEST_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
||||||
|
#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 0 )
|
||||||
|
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 4 )
|
||||||
|
#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 0 )
|
||||||
|
#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
||||||
|
#define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
|
||||||
|
#define mainGENERIC_QUEUE_PRIORITY ( tskIDLE_PRIORITY )
|
||||||
|
|
||||||
|
/* The period of the check task both in and out of the presense of an error. */
|
||||||
|
#define mainNO_ERROR_PERIOD ( 5000 / portTICK_RATE_MS )
|
||||||
|
#define mainERROR_PERIOD ( 500 / portTICK_RATE_MS );
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Simple hardware setup required by the demo. */
|
||||||
|
static void prvSetupHardware( void );
|
||||||
|
|
||||||
|
/* The check task as described at the top of this file. */
|
||||||
|
static void prvCheckTask( void *pvParameters );
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
prvSetupHardware();
|
||||||
|
|
||||||
|
/* Start the standard demo tasks. */
|
||||||
|
vStartIntegerMathTasks( tskIDLE_PRIORITY );
|
||||||
|
vStartLEDFlashTasks( mainLED_TASK_PRIORITY );
|
||||||
|
vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );
|
||||||
|
vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );
|
||||||
|
vStartDynamicPriorityTasks();
|
||||||
|
vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
|
||||||
|
vCreateBlockTimeTasks();
|
||||||
|
vStartCountingSemaphoreTasks();
|
||||||
|
vStartGenericQueueTasks( tskIDLE_PRIORITY );
|
||||||
|
vStartQueuePeekTasks();
|
||||||
|
vStartRecursiveMutexTasks();
|
||||||
|
|
||||||
|
/* The death demo tasks must be started last as the sanity checks performed
|
||||||
|
require knowledge of the number of other tasks in the system. */
|
||||||
|
vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );
|
||||||
|
|
||||||
|
/* Start the scheduler. From this point on the execution will be under
|
||||||
|
the control of the kernel. */
|
||||||
|
vTaskStartScheduler();
|
||||||
|
|
||||||
|
/* Will only get here if there was insufficient heap availale for the
|
||||||
|
idle task to be created. */
|
||||||
|
for( ;; );
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void prvCheckTask( void * pvParameters )
|
||||||
|
{
|
||||||
|
portTickType xNextWakeTime, xPeriod = mainNO_ERROR_PERIOD;
|
||||||
|
static volatile ulErrorCode = 0UL;
|
||||||
|
|
||||||
|
/* Initialise xNextWakeTime prior to its first use. From this point on
|
||||||
|
the value of the variable is handled automatically by the kernel. */
|
||||||
|
xNextWakeTime = xTaskGetTickCount();
|
||||||
|
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
vTaskDelayUntil( &xNextWakeTime, xPeriod );
|
||||||
|
|
||||||
|
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
ulErrorCode |= 0x01UL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
ulErrorCode |= 0x02UL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
ulErrorCode |= 0x04UL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xIsCreateTaskStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
ulErrorCode |= 0x08UL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
ulErrorCode |= 0x10UL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreGenericQueueTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
ulErrorCode |= 0x20UL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
ulErrorCode |= 0x40UL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xArePollingQueuesStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
ulErrorCode |= 0x80UL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreQueuePeekTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
ulErrorCode |= 0x100UL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
ulErrorCode |= 0x200UL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
ulErrorCode |= 0x400UL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void prvSetupHardware( void )
|
||||||
|
{
|
||||||
|
vParTestInitialise();
|
||||||
|
}
|
66
Demo/ARM9_AT91SAM9XE_IAR/settings/rtosdemo.wsdt
Normal file
66
Demo/ARM9_AT91SAM9XE_IAR/settings/rtosdemo.wsdt
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
|
||||||
|
<Workspace>
|
||||||
|
<ConfigDictionary>
|
||||||
|
|
||||||
|
<CurrentConfigs><Project>at91sam9xe-ek/at91sam9xe256_flash</Project></CurrentConfigs></ConfigDictionary>
|
||||||
|
<Desktop>
|
||||||
|
<Static>
|
||||||
|
<Workspace>
|
||||||
|
<ColumnWidths>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<Column0>330</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>
|
||||||
|
</Workspace>
|
||||||
|
<Build>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1216</ColumnWidth1><ColumnWidth2>324</ColumnWidth2><ColumnWidth3>81</ColumnWidth3></Build>
|
||||||
|
</Static>
|
||||||
|
<Windows>
|
||||||
|
|
||||||
|
|
||||||
|
<Wnd0>
|
||||||
|
<Tabs>
|
||||||
|
<Tab>
|
||||||
|
<Identity>TabID-26777-6465</Identity>
|
||||||
|
<TabName>Workspace</TabName>
|
||||||
|
<Factory>Workspace</Factory>
|
||||||
|
<Session>
|
||||||
|
|
||||||
|
<NodeDict><ExpandedNode>at91sam9xe-ek</ExpandedNode><ExpandedNode>at91sam9xe-ek/scheduler_source</ExpandedNode><ExpandedNode>at91sam9xe-ek/standard_demo_source</ExpandedNode><ExpandedNode>at91sam9xe-ek/standard_demo_source/countsem.c</ExpandedNode></NodeDict></Session>
|
||||||
|
</Tab>
|
||||||
|
</Tabs>
|
||||||
|
|
||||||
|
<SelectedTab>0</SelectedTab></Wnd0><Wnd1>
|
||||||
|
<Tabs>
|
||||||
|
<Tab>
|
||||||
|
<Identity>TabID-25209-6494</Identity>
|
||||||
|
<TabName>Build</TabName>
|
||||||
|
<Factory>Build</Factory>
|
||||||
|
<Session/>
|
||||||
|
</Tab>
|
||||||
|
</Tabs>
|
||||||
|
|
||||||
|
<SelectedTab>0</SelectedTab></Wnd1></Windows>
|
||||||
|
<Editor>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<Pane><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\AtmelSAM9XE\port.c</Filename><XPos>0</XPos><YPos>220</YPos><SelStart>8408</SelStart><SelEnd>8408</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\AtmelSAM9XE\portasm.s79</Filename><XPos>0</XPos><YPos>12</YPos><SelStart>731</SelStart><SelEnd>750</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\tasks.c</Filename><XPos>0</XPos><YPos>522</YPos><SelStart>19618</SelStart><SelEnd>19632</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\portable\IAR\AtmelSAM9XE\portmacro.h</Filename><XPos>0</XPos><YPos>85</YPos><SelStart>3868</SelStart><SelEnd>3868</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\ARM9_AT91SAM9XE_IAR\main.c</Filename><XPos>0</XPos><YPos>160</YPos><SelStart>6128</SelStart><SelEnd>6128</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\flash.c</Filename><XPos>0</XPos><YPos>63</YPos><SelStart>3406</SelStart><SelEnd>3469</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Source\include\task.h</Filename><XPos>0</XPos><YPos>32</YPos><SelStart>2354</SelStart><SelEnd>2354</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\drivers\Atmel\at91lib\peripherals\pit\pit.c</Filename><XPos>0</XPos><YPos>26</YPos><SelStart>2307</SelStart><SelEnd>2307</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\drivers\Atmel\at91lib\boards\at91sam9xe-ek\board.h</Filename><XPos>0</XPos><YPos>89</YPos><SelStart>4501</SelStart><SelEnd>4501</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\ARM9_AT91SAM9XE_IAR\ParTest\ParTest.c</Filename><XPos>0</XPos><YPos>36</YPos><SelStart>2922</SelStart><SelEnd>2922</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\drivers\Atmel\at91lib\boards\at91sam9xe-ek\board_cstartup_iar.s</Filename><XPos>0</XPos><YPos>102</YPos><SelStart>4607</SelStart><SelEnd>4607</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\blocktim.c</Filename><XPos>0</XPos><YPos>441</YPos><SelStart>15221</SelStart><SelEnd>15255</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\countsem.c</Filename><XPos>0</XPos><YPos>148</YPos><SelStart>6256</SelStart><SelEnd>6256</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\death.c</Filename><XPos>0</XPos><YPos>207</YPos><SelStart>7935</SelStart><SelEnd>7960</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\GenQTest.c</Filename><XPos>0</XPos><YPos>531</YPos><SelStart>17447</SelStart><SelEnd>17480</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\QPeek.c</Filename><XPos>0</XPos><YPos>405</YPos><SelStart>14830</SelStart><SelEnd>14860</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\recmutex.c</Filename><XPos>0</XPos><YPos>313</YPos><SelStart>11625</SelStart><SelEnd>11660</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\BlockQ.c</Filename><XPos>0</XPos><YPos>255</YPos><SelStart>11919</SelStart><SelEnd>11949</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\dynamic.c</Filename><XPos>0</XPos><YPos>386</YPos><SelStart>14818</SelStart><SelEnd>14854</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\integer.c</Filename><XPos>0</XPos><YPos>171</YPos><SelStart>6993</SelStart><SelEnd>7025</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\PollQ.c</Filename><XPos>0</XPos><YPos>205</YPos><SelStart>8251</SelStart><SelEnd>8280</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\Common\Minimal\semtest.c</Filename><XPos>0</XPos><YPos>243</YPos><SelStart>10689</SelStart><SelEnd>10719</SelEnd></Tab><Tab><Factory>TextEditor</Factory><Filename>C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\ARM9_AT91SAM9XE_IAR\FreeRTOSConfig.h</Filename><XPos>0</XPos><YPos>61</YPos><SelStart>3554</SelStart><SelEnd>3554</SelEnd></Tab><ActiveTab>22</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>
|
||||||
|
<Positions>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<Top><Row0><Sizes><Toolbar-00aa98f8><key>iaridepm.enu1</key></Toolbar-00aa98f8></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>740</Bottom><Right>404</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>241667</sizeVertCX><sizeVertCY>755601</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
|
||||||
|
</Desktop>
|
||||||
|
</Workspace>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue