From 38cd7626d66606cb4568a88e9883afe500b04094 Mon Sep 17 00:00:00 2001 From: richardbarry Date: Sun, 13 Jun 2010 13:57:47 +0000 Subject: [PATCH] Removed outdated AVR32 demo. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1028 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- Demo/AVR32_UC3/FreeRTOSConfig.h | 139 --------- Demo/AVR32_UC3/documentation.h | 72 ----- Demo/AVR32_UC3/doxyfile.doxygen | 231 --------------- Demo/AVR32_UC3/freertos.gif | Bin 5741 -> 0 bytes Demo/AVR32_UC3/main.c | 492 -------------------------------- 5 files changed, 934 deletions(-) delete mode 100644 Demo/AVR32_UC3/FreeRTOSConfig.h delete mode 100644 Demo/AVR32_UC3/documentation.h delete mode 100644 Demo/AVR32_UC3/doxyfile.doxygen delete mode 100644 Demo/AVR32_UC3/freertos.gif delete mode 100644 Demo/AVR32_UC3/main.c diff --git a/Demo/AVR32_UC3/FreeRTOSConfig.h b/Demo/AVR32_UC3/FreeRTOSConfig.h deleted file mode 100644 index 5b22c861c..000000000 --- a/Demo/AVR32_UC3/FreeRTOSConfig.h +++ /dev/null @@ -1,139 +0,0 @@ -/*This file is prepared for Doxygen automatic documentation generation.*/ -/*! \file ********************************************************************* - * - * \brief FreeRTOS demonstration for AVR32 UC3. - * - * - Compiler: IAR EWAVR32 and GNU GCC for AVR32 - * - Supported devices: All AVR32 devices can be used. - * - AppNote: - * - * \author Atmel Corporation: http://www.atmel.com \n - * Support and FAQ: http://support.atmel.no/ - * - ******************************************************************************/ - -/* Copyright (c) 2007, Atmel Corporation All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name of ATMEL may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY ATMEL ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND - * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H - -#include "board.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 ( FOSC0 ) /* Hz clk gen */ -#define configPBA_CLOCK_HZ ( FOSC0 ) -#define configTICK_RATE_HZ ( ( portTickType ) 1000 ) -#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 8 ) -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 ) -/* configTOTAL_HEAP_SIZE is not used when heap_3.c is used. */ -#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 1024*25 ) ) -#define configMAX_TASK_NAME_LEN ( 16 ) -#define configUSE_TRACE_FACILITY 0 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 1 - -/* Co-routine definitions. */ -#define configUSE_CO_ROUTINES 0 -#define configMAX_CO_ROUTINE_PRIORITIES ( 0 ) - -/* 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_xTaskGetCurrentTaskHandle 0 -#define INCLUDE_xTaskGetSchedulerState 1 - -/* configTICK_USE_TC is a boolean indicating whether to use a Timer Counter - for the tick generation. Timer Counter will generate an accurate Tick; - otherwise the CPU will generate a tick but with time drift. - configTICK_TC_CHANNEL is the TC channel. */ -#define configTICK_USE_TC 1 -#define configTICK_TC_CHANNEL 2 - -/* configHEAP_INIT is a boolean indicating whether to initialize the heap with - 0xA5 in order to be able to determine the maximal heap consumption. */ -#define configHEAP_INIT 0 - -/* Debug trace configuration. - configDBG is a boolean indicating whether to activate the debug trace. */ -#if BOARD == EVK1100 -#define configDBG 1 -#define configDBG_USART (&AVR32_USART1) -#define configDBG_USART_RX_PIN AVR32_USART1_RXD_0_PIN -#define configDBG_USART_RX_FUNCTION AVR32_USART1_RXD_0_FUNCTION -#define configDBG_USART_TX_PIN AVR32_USART1_TXD_0_PIN -#define configDBG_USART_TX_FUNCTION AVR32_USART1_TXD_0_FUNCTION -#define configDBG_USART_BAUDRATE 57600 -#define serialPORT_USART (&AVR32_USART0) -#define serialPORT_USART_RX_PIN AVR32_USART0_RXD_0_PIN -#define serialPORT_USART_RX_FUNCTION AVR32_USART0_RXD_0_FUNCTION -#define serialPORT_USART_TX_PIN AVR32_USART0_TXD_0_PIN -#define serialPORT_USART_TX_FUNCTION AVR32_USART0_TXD_0_FUNCTION -#define serialPORT_USART_IRQ AVR32_USART0_IRQ -#define serialPORT_USART_BAUDRATE 57600 -#elif BOARD == EVK1101 -#define configDBG 1 -#define configDBG_USART (&AVR32_USART1) -#define configDBG_USART_RX_PIN AVR32_USART1_RXD_0_0_PIN -#define configDBG_USART_RX_FUNCTION AVR32_USART1_RXD_0_0_FUNCTION -#define configDBG_USART_TX_PIN AVR32_USART1_TXD_0_0_PIN -#define configDBG_USART_TX_FUNCTION AVR32_USART1_TXD_0_0_FUNCTION -#define configDBG_USART_BAUDRATE 57600 -#define serialPORT_USART (&AVR32_USART1) -#define serialPORT_USART_RX_PIN AVR32_USART1_RXD_0_0_PIN -#define serialPORT_USART_RX_FUNCTION AVR32_USART1_RXD_0_0_FUNCTION -#define serialPORT_USART_TX_PIN AVR32_USART1_TXD_0_0_PIN -#define serialPORT_USART_TX_FUNCTION AVR32_USART1_TXD_0_0_FUNCTION -#define serialPORT_USART_IRQ AVR32_USART1_IRQ -#define serialPORT_USART_BAUDRATE 57600 -#endif - - -#endif /* FREERTOS_CONFIG_H */ diff --git a/Demo/AVR32_UC3/documentation.h b/Demo/AVR32_UC3/documentation.h deleted file mode 100644 index aefc799be..000000000 --- a/Demo/AVR32_UC3/documentation.h +++ /dev/null @@ -1,72 +0,0 @@ -/*This file is prepared for Doxygen automatic documentation generation.*/ -/*! \file ********************************************************************* - * - * \brief FreeRTOS application example for AVR32 UC3. - * - * - Compiler: IAR EWAVR32 and GNU GCC for AVR32 - * - Supported devices: All AVR32 devices can be used. - * - AppNote: - * - * \author Atmel Corporation: http://www.atmel.com \n - * Support and FAQ: http://support.atmel.no/ - * - ******************************************************************************/ - -/*! \mainpage - * \section intro Introduction - * - * This is the documentation for the data structures, functions, variables, - * defines, enums, and typedefs for the FreeRTOS application. - * - * \image html freertos.gif - * - * FreeRTOS.orgTM is a portable, open source, mini Real Time Kernel - a - * free to download and royalty free RTOS that can be used in commercial - * applications (see license text). This site shows how a complete embedded - * real time system can be created from a Windows host using quality open - * source development tools (where available). See the FreeRTOS.org features - * summary. - * Highlights include: - * - Free RTOS kernel - preemptive, cooperative and hybrid configuration options. - * - Designed to be small, simple and easy to use. - * - Very portable code structure predominantly written in C. - * - Supports both tasks and co-routines. - * - No software restriction on the number of tasks that can be created. - * - No software restriction on the number of priorities that can be used. - * - No restrictions imposed on priority assignment - more than one task can be assigned the same priority. - * - Queues and semaphores for communication and synchronisation between tasks, or between tasks and interrupts. - * - Free embedded software source code. - * - Royalty free. - * - Cross development from a standard Windows host. - * - Pre-configured demo applications for selected single board computers allowing 'out of the box' operation and fast learning curve. - * - Compile time configuration allows small FLASH footprint - * - The SafeRTOS derivative product provides a high level of confidence in the code integrity. - * - * \section files Main Files - * - main.c : FreeRTOS example - * - * \section compilinfo Compilation Information - * This software is written for GNU GCC for AVR32 and for IAR Embedded Workbench - * for Atmel AVR32. Other compilers may or may not work. - * - * \section deviceinfo Device Information - * All AVR32 devices can be used. - * - * \section configinfo Configuration Information - * This example has been tested with the following configuration: - * - EVK1100 evaluation kit; - * - CPU clock: 12 MHz; - * - USART0 connected to a PC serial port via a standard RS232 DB9 cable; - * - PC terminal settings: - * - 57600 bps, - * - 8 data bits, - * - no parity bit, - * - 1 stop bit, - * - no flow control. - * - * \section contactinfo Contact Information - * For further information, visit - * Atmel AVR32. and - * FreeRTOS home page.\n - * Support and FAQ: http://support.atmel.no/ - */ diff --git a/Demo/AVR32_UC3/doxyfile.doxygen b/Demo/AVR32_UC3/doxyfile.doxygen deleted file mode 100644 index 17d8679e9..000000000 --- a/Demo/AVR32_UC3/doxyfile.doxygen +++ /dev/null @@ -1,231 +0,0 @@ -# Doxyfile 1.4.7 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = "AVR32 UC3 - FreeRTOS Real Time Kernel" -PROJECT_NUMBER = -OUTPUT_DIRECTORY = -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = YES -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = NO -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = YES -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = YES -INHERIT_DOCS = YES -SEPARATE_MEMBER_PAGES = NO -TAB_SIZE = 4 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = YES -OPTIMIZE_OUTPUT_JAVA = NO -BUILTIN_STL_SUPPORT = NO -DISTRIBUTE_GROUP_DOC = NO -SUBGROUPING = YES -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = NO -EXTRACT_STATIC = YES -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = YES -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = YES -SORT_BY_SCOPE_NAME = NO -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = NO -SHOW_DIRECTORIES = NO -FILE_VERSION_FILTER = -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = YES -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = ./ ./../../Source ./../Common/include ./../Common/Minimal -FILE_PATTERNS = *.c \ - *.h -RECURSIVE = YES -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = ./ -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = YES -INLINE_SOURCES = YES -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES -REFERENCES_LINK_SOURCE = YES -USE_HTAGS = NO -VERBATIM_HEADERS = YES -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = NO -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = DOC -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = YES -TREEVIEW_WIDTH = 250 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = NO -USE_PDFLATEX = NO -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = RTF -COMPACT_RTF = NO -RTF_HYPERLINKS = YES -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = YES -EXPAND_ONLY_PREDEF = YES -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = __GNUC__=4 \ - __attribute__()= \ - __AVR32__=1 \ - __AVR32_UC3A0512__=1 \ - __AVR32_ABI_COMPILER__ \ - BOARD=EVK1100 -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = NO -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = NO -CLASS_GRAPH = NO -COLLABORATION_GRAPH = NO -GROUP_GRAPHS = NO -UML_LOOK = YES -TEMPLATE_RELATIONS = YES -INCLUDE_GRAPH = NO -INCLUDED_BY_GRAPH = NO -CALL_GRAPH = NO -CALLER_GRAPH = NO -GRAPHICAL_HIERARCHY = NO -DIRECTORY_GRAPH = NO -DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = -MAX_DOT_GRAPH_WIDTH = 1024 -MAX_DOT_GRAPH_HEIGHT = 1024 -MAX_DOT_GRAPH_DEPTH = 0 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = YES -DOT_CLEANUP = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO diff --git a/Demo/AVR32_UC3/freertos.gif b/Demo/AVR32_UC3/freertos.gif deleted file mode 100644 index 1ca6d2ec43cbd6a84c6c0d788cb5e987d8135b5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5741 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 wi~cMZtB7vzkqDrP%CCtkibR!dqAI?qCPU -#include -#include - -/* Environment header files. */ -#include "pm.h" - -/* Scheduler header files. */ -#include "FreeRTOS.h" -#include "task.h" - -/* Demo file headers. */ -#include "partest.h" -#include "serial.h" -#include "integer.h" -#include "comtest.h" -#include "flash.h" -#include "PollQ.h" -#include "semtest.h" -#include "dynamic.h" -#include "BlockQ.h" -#include "death.h" -#include "flop.h" - -/*! \name Priority definitions for most of the tasks in the demo application. - * Some tasks just use the idle priority. - */ -//! @{ -#define mainLED_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) -#define mainCOM_TEST_PRIORITY ( tskIDLE_PRIORITY + 2 ) -#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 2 ) -#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 ) -#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 3 ) -#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 4 ) -#define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 ) -//! @} - -//! Baud rate used by the serial port tasks. -#define mainCOM_TEST_BAUD_RATE ( ( unsigned portLONG ) 57600 ) - -//! LED used by the serial port tasks. This is toggled on each character Tx, -//! and mainCOM_TEST_LED + 1 is toggled on each character Rx. -#define mainCOM_TEST_LED ( 3 ) - -//! LED that is toggled by the check task. The check task periodically checks -//! that all the other tasks are operating without error. If no errors are found -//! the LED is toggled. If an error is found at any time the LED toggles faster. -#define mainCHECK_TASK_LED ( 6 ) - -//! LED that is set upon error. -#define mainERROR_LED ( 7 ) - -//! The period between executions of the check task. -#define mainCHECK_PERIOD ( ( portTickType ) 3000 / portTICK_RATE_MS ) - -//! If an error is detected in a task, the vErrorChecks task will enter in an -//! infinite loop flashing the LED at this rate. -#define mainERROR_FLASH_RATE ( (portTickType) 500 / portTICK_RATE_MS ) - -/*! \name Constants used by the vMemCheckTask() task. - */ -//! @{ -#define mainCOUNT_INITIAL_VALUE ( ( unsigned portLONG ) 0 ) -#define mainNO_TASK ( 0 ) -//! @} - -/*! \name The size of the memory blocks allocated by the vMemCheckTask() task. - */ -//! @{ -#define mainMEM_CHECK_SIZE_1 ( ( size_t ) 51 ) -#define mainMEM_CHECK_SIZE_2 ( ( size_t ) 52 ) -#define mainMEM_CHECK_SIZE_3 ( ( size_t ) 15 ) -//! @} - - -/*-----------------------------------------------------------*/ - -/* - * The task that executes at the highest priority and calls - * prvCheckOtherTasksAreStillRunning(). See the description at the top - * of the file. - */ -static void vErrorChecks( void *pvParameters ); - -/* - * Checks that all the demo application tasks are still executing without error - * - as described at the top of the file. - */ -static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void ); - -/* - * A task that exercises the memory allocator. - */ -static void vMemCheckTask( void *pvParameters ); - -/* - * Called by the check task following the detection of an error to set the - * LEDs into a state that shows an error has beeen found. - */ -static void prvIndicateError( void ); - -/*-----------------------------------------------------------*/ - -int main( void ) -{ - /* Start the crystal oscillator 0 and switch the main clock to it. */ - pm_switch_to_osc0(&AVR32_PM, FOSC0, OSC0_STARTUP); - - portDBG_TRACE("Starting the FreeRTOS AVR32 UC3 Demo..."); - - /* Setup the LED's for output. */ - vParTestInitialise(); - - /* Start the standard demo tasks. See the WEB documentation for more - information. */ - vStartLEDFlashTasks( mainLED_TASK_PRIORITY ); - vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainCOM_TEST_BAUD_RATE, mainCOM_TEST_LED ); - vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY ); - vStartIntegerMathTasks( tskIDLE_PRIORITY ); - vStartSemaphoreTasks( mainSEM_TEST_PRIORITY ); - vStartDynamicPriorityTasks(); - vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY ); - vStartMathTasks( tskIDLE_PRIORITY ); - - /* Start the demo tasks defined within this file, specifically the check - task as described at the top of this file. */ - xTaskCreate( - vErrorChecks - , (const signed portCHAR *)"ErrCheck" - , configMINIMAL_STACK_SIZE - , NULL - , mainCHECK_TASK_PRIORITY - , NULL ); - - /* Start the scheduler. */ - vTaskStartScheduler(); - - /* Will only get here if there was insufficient memory to create the idle - task. */ - - return 0; -} -/*-----------------------------------------------------------*/ - -/*! - * \brief The task function for the "Check" task. - */ -static void vErrorChecks( void *pvParameters ) -{ -static volatile unsigned portLONG ulDummyVariable = 3UL; -unsigned portLONG ulMemCheckTaskRunningCount; -xTaskHandle xCreatedTask; -portBASE_TYPE bSuicidalTask = 0; - - /* The parameters are not used. Prevent compiler warnings. */ - ( void ) pvParameters; - - /* Cycle for ever, delaying then checking all the other tasks are still - operating without error. - - In addition to the standard tests the memory allocator is tested through - the dynamic creation and deletion of a task each cycle. Each time the - task is created memory must be allocated for its stack. When the task is - deleted this memory is returned to the heap. If the task cannot be created - then it is likely that the memory allocation failed. */ - - for( ;; ) - { - /* Do this only once. */ - if( bSuicidalTask == 0 ) - { - bSuicidalTask++; - - /* This task has to be created last as it keeps account of the number of - tasks it expects to see running. However its implementation expects - to be called before vTaskStartScheduler(). We're in the case here where - vTaskStartScheduler() has already been called (thus the hidden IDLE task - has already been spawned). Since vCreateSuicidalTask() supposes that the - IDLE task isn't included in the response from uxTaskGetNumberOfTasks(), - let the MEM_CHECK task play that role. => this is why vCreateSuicidalTasks() - is not called as the last task. */ - vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY ); - } - - /* Reset xCreatedTask. This is modified by the task about to be - created so we can tell if it is executing correctly or not. */ - xCreatedTask = mainNO_TASK; - - /* Dynamically create a task - passing ulMemCheckTaskRunningCount as a - parameter. */ - ulMemCheckTaskRunningCount = mainCOUNT_INITIAL_VALUE; - - if( xTaskCreate( vMemCheckTask, - ( signed portCHAR * ) "MEM_CHECK", - configMINIMAL_STACK_SIZE, - ( void * ) &ulMemCheckTaskRunningCount, - tskIDLE_PRIORITY, &xCreatedTask ) != pdPASS ) - { - /* Could not create the task - we have probably run out of heap. - Don't go any further and flash the LED faster to provide visual - feedback of the error. */ - prvIndicateError(); - } - - /* Delay until it is time to execute again. */ - vTaskDelay( mainCHECK_PERIOD ); - - /* Delete the dynamically created task. */ - if( xCreatedTask != mainNO_TASK ) - { - vTaskDelete( xCreatedTask ); - } - - /* Perform a bit of 32bit maths to ensure the registers used by the - integer tasks get some exercise. The result here is not important - - see the demo application documentation for more info. */ - ulDummyVariable *= 3; - - /* Check all other tasks are still operating without error. - Check that vMemCheckTask did increment the counter. */ - if( ( prvCheckOtherTasksAreStillRunning() != pdFALSE ) - || ( ulMemCheckTaskRunningCount == mainCOUNT_INITIAL_VALUE ) ) - { - /* An error has occurred in one of the tasks. - Don't go any further and flash the LED faster to give visual - feedback of the error. */ - prvIndicateError(); - } - else - { - /* Toggle the LED if everything is okay. */ - vParTestToggleLED( mainCHECK_TASK_LED ); - } - } -} -/*-----------------------------------------------------------*/ - - -/*! - * \brief Checks that all the demo application tasks are still executing without error. - */ -static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void ) -{ -static portBASE_TYPE xErrorHasOccurred = pdFALSE; - - if( xAreComTestTasksStillRunning() != pdTRUE ) - { - xErrorHasOccurred = pdTRUE; - } - - if( xArePollingQueuesStillRunning() != pdTRUE ) - { - xErrorHasOccurred = pdTRUE; - } - - if( xAreIntegerMathsTaskStillRunning() != pdTRUE ) - { - xErrorHasOccurred = pdTRUE; - } - - if( xAreSemaphoreTasksStillRunning() != pdTRUE ) - { - xErrorHasOccurred = pdTRUE; - } - - if( xAreBlockingQueuesStillRunning() != pdTRUE ) - { - xErrorHasOccurred = pdTRUE; - } - - if( xAreDynamicPriorityTasksStillRunning() != pdTRUE ) - { - xErrorHasOccurred = pdTRUE; - } - - if( xAreMathsTaskStillRunning() != pdTRUE ) - { - xErrorHasOccurred = pdTRUE; - } - - if( xIsCreateTaskStillRunning() != pdTRUE ) - { - xErrorHasOccurred = pdTRUE; - } - - return ( xErrorHasOccurred ); -} -/*-----------------------------------------------------------*/ - - -/*! - * \brief Dynamically created and deleted during each cycle of the vErrorChecks() - * task. This is done to check the operation of the memory allocator. - * See the top of vErrorChecks for more details. - * - * \param *pvParameters Parameters for the task (can be of any kind) - */ -static void vMemCheckTask( void *pvParameters ) -{ -unsigned portLONG *pulMemCheckTaskRunningCounter; -void *pvMem1, *pvMem2, *pvMem3; -static portLONG lErrorOccurred = pdFALSE; - - /* This task is dynamically created then deleted during each cycle of the - vErrorChecks task to check the operation of the memory allocator. Each time - the task is created memory is allocated for the stack and TCB. Each time - the task is deleted this memory is returned to the heap. This task itself - exercises the allocator by allocating and freeing blocks. - - The task executes at the idle priority so does not require a delay. - - pulMemCheckTaskRunningCounter is incremented each cycle to indicate to the - vErrorChecks() task that this task is still executing without error. */ - - pulMemCheckTaskRunningCounter = ( unsigned portLONG * ) pvParameters; - - for( ;; ) - { - if( lErrorOccurred == pdFALSE ) - { - /* We have never seen an error so increment the counter. */ - ( *pulMemCheckTaskRunningCounter )++; - } - else - { - /* There has been an error so reset the counter so the check task - can tell that an error occurred. */ - *pulMemCheckTaskRunningCounter = mainCOUNT_INITIAL_VALUE; - } - - /* Allocate some memory - just to give the allocator some extra - exercise. This has to be in a critical section to ensure the - task does not get deleted while it has memory allocated. */ - - vTaskSuspendAll(); - { - pvMem1 = pvPortMalloc( mainMEM_CHECK_SIZE_1 ); - - if( pvMem1 == NULL ) - { - lErrorOccurred = pdTRUE; - } - else - { - memset( pvMem1, 0xaa, mainMEM_CHECK_SIZE_1 ); - vPortFree( pvMem1 ); - } - } - xTaskResumeAll(); - - /* Again - with a different size block. */ - vTaskSuspendAll(); - { - pvMem2 = pvPortMalloc( mainMEM_CHECK_SIZE_2 ); - - if( pvMem2 == NULL ) - { - lErrorOccurred = pdTRUE; - } - else - { - memset( pvMem2, 0xaa, mainMEM_CHECK_SIZE_2 ); - vPortFree( pvMem2 ); - } - } - xTaskResumeAll(); - - /* Again - with a different size block. */ - vTaskSuspendAll(); - { - pvMem3 = pvPortMalloc( mainMEM_CHECK_SIZE_3 ); - if( pvMem3 == NULL ) - { - lErrorOccurred = pdTRUE; - } - else - { - memset( pvMem3, 0xaa, mainMEM_CHECK_SIZE_3 ); - vPortFree( pvMem3 ); - } - } - xTaskResumeAll(); - } -} -/*-----------------------------------------------------------*/ - -static void prvIndicateError( void ) -{ - /* The check task has found an error in one of the other tasks. - Set the LEDs to a state that indicates this. */ - vParTestSetLED(mainERROR_LED,pdTRUE); - - for(;;) - { - #if( BOARD==EVK1100 ) - vParTestToggleLED( mainCHECK_TASK_LED ); - vTaskDelay( mainERROR_FLASH_RATE ); - #endif - #if ( BOARD==EVK1101 ) - vParTestSetLED( 0, pdTRUE ); - vParTestSetLED( 1, pdTRUE ); - vParTestSetLED( 2, pdTRUE ); - vParTestSetLED( 3, pdTRUE ); - #endif - } -} - -- 2.39.5