From 633c646ab36368caf6eaeedd326d9f1835196afd Mon Sep 17 00:00:00 2001 From: henryk Date: Tue, 6 Nov 2007 20:26:48 +0000 Subject: Initial import of FreeRTOS code for OpenPICC git-svn-id: https://svn.openpcd.org:2342/trunk@311 6dc7ffe9-61d6-0310-9af1-9938baff3ed1 --- openpicc/config/FreeRTOSConfig.h | 82 ++++++++++++++++++++++++++++++++++++++++ openpicc/config/atmel-rom.ld | 53 ++++++++++++++++++++++++++ openpicc/config/board.h | 78 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 213 insertions(+) create mode 100644 openpicc/config/FreeRTOSConfig.h create mode 100644 openpicc/config/atmel-rom.ld create mode 100644 openpicc/config/board.h (limited to 'openpicc/config') diff --git a/openpicc/config/FreeRTOSConfig.h b/openpicc/config/FreeRTOSConfig.h new file mode 100644 index 0000000..e4de597 --- /dev/null +++ b/openpicc/config/FreeRTOSConfig.h @@ -0,0 +1,82 @@ +/* + FreeRTOS.org V4.2.1 - Copyright (C) 2003-2007 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. + + *************************************************************************** + See http://www.FreeRTOS.org for documentation, latest information, license + and contact details. Please ensure to read the configuration and relevant + port sections of the online documentation. + + Also see http://www.SafeRTOS.com for an IEC 61508 compliant version along + with commercial development and support options. + *************************************************************************** +*/ + +#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. + *----------------------------------------------------------*/ + +/* The SWI is used by the scheduler. */ +#define vPortYieldProcessor swi_handler + + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 1 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 47923200 ) +#define configTICK_RATE_HZ ( ( portTickType ) 1000 ) +#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 ) +#define configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 110 ) +#define configTOTAL_HEAP_SIZE ( ( size_t ) 1024*16 ) +#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 ( 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_xTaskGetCurrentTaskHandle 1 + +#endif /* FREERTOS_CONFIG_H */ diff --git a/openpicc/config/atmel-rom.ld b/openpicc/config/atmel-rom.ld new file mode 100644 index 0000000..9a74420 --- /dev/null +++ b/openpicc/config/atmel-rom.ld @@ -0,0 +1,53 @@ +MEMORY +{ + flash : ORIGIN = 0x00100000, LENGTH = 256K - 1K /* save 1K for environment on top of flash */ + ram : ORIGIN = 0x00200000, LENGTH = 64K +} + +__stack_end__ = 0x00200000 + 64K - 4; + +SECTIONS +{ + . = 0; + startup : { *(.startup)} >flash + + prog : + { + *(.text) + *(.text.*) + *(.rodata) + *(.rodata*) + *(.glue_7) + *(.glue_7t) + } >flash + + __end_of_text__ = .; + + .data : + { + __data_beg__ = .; + __data_beg_src__ = __end_of_text__; + *(.data) + *(.data.*) + *(.ramfunc) + __data_end__ = .; + } >ram AT>flash + + .bss : + { + __bss_beg__ = .; + *(.bss) + *(.bss.*) + } >ram + + /* Align here to ensure that the .bss section occupies space up to + _end. Align after .bss to ensure correct alignment even if the + .bss section disappears because there are no input sections. */ + . = ALIGN(32 / 8); +} + . = ALIGN(32 / 8); + _end = .; + _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; + PROVIDE (end = .); + + diff --git a/openpicc/config/board.h b/openpicc/config/board.h new file mode 100644 index 0000000..5a56155 --- /dev/null +++ b/openpicc/config/board.h @@ -0,0 +1,78 @@ +/*************************************************************** + * + * OpenBeacon.org - board specific configuration + * + * Copyright 2007 Milosch Meriac + * + * change this file to reflect hardware design changes + * + *************************************************************** + + This program 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; version 2. + + This program 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 this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +*/ +#ifndef Board_h +#define Board_h + +#include "lib_AT91SAM7.h" + +#define RAMFUNC __attribute__ ((long_call, section (".ramfunc"))) +#define IRQFUNC __attribute__ ((interrupt("IRQ"))) +#define FIQFUNC __attribute__ ((interrupt("FIQ"))) + +#define true -1 +#define false 0 + +/*-------------------------------*/ +/* SAM7Board Memories Definition */ +/*-------------------------------*/ + +#define ENVIRONMENT_SIZE 1024 +#define FLASH_PAGE_NB AT91C_IFLASH_NB_OF_PAGES-(ENVIRONMENT_SIZE/AT91C_IFLASH_PAGE_SIZE) + +/*-----------------*/ +/* Master Clock */ +/*-----------------*/ + +#define EXT_OC 18432000 // Exetrnal ocilator MAINCK +#define MCK 47923200 // MCK (PLLRC div by 2) +#define MCKKHz (MCK/1000) // + +/*-----------------*/ +/* LED declaration */ +/*-----------------*/ + +//#define LED_GREEN (1L<<23) +#define LED_GREEN AT91C_PIO_PA25 +//#define LED_RED (1L<<20) +#define LED_RED AT91C_PIO_PA12 +#define LED_MASK (LED_GREEN|LED_RED) + +/*-----------------*/ +/* task priorities */ +/*-----------------*/ + +#define TASK_BEACON_PRIORITY ( tskIDLE_PRIORITY ) +#define TASK_BEACON_STACK ( 512 ) + +#define TASK_CMD_PRIORITY ( tskIDLE_PRIORITY + 1 ) +#define TASK_CMD_STACK ( 512 ) + +#define TASK_USB_PRIORITY ( tskIDLE_PRIORITY + 2 ) +#define TASK_USB_STACK ( 512 ) + +#define TASK_NRF_PRIORITY ( tskIDLE_PRIORITY + 3 ) +#define TASK_NRF_STACK ( 512 ) + +#endif /* Board_h */ -- cgit v1.2.3