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/application/main.c | 93 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 openpicc/application/main.c (limited to 'openpicc/application/main.c') diff --git a/openpicc/application/main.c b/openpicc/application/main.c new file mode 100644 index 0000000..6dc9637 --- /dev/null +++ b/openpicc/application/main.c @@ -0,0 +1,93 @@ +/*************************************************************** + * + * OpenBeacon.org - main entry for 2.4GHz RFID USB reader + * + * Copyright 2007 Milosch Meriac + * + * basically starts the USB task, initializes all IO ports + * and introduces idle application hook to handle the HF traffic + * from the nRF24L01 chip + * + *************************************************************** + + 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. + +*/ +/* Library includes. */ +#include +#include + +#include +#include +#include +#include + +#include "openpicc.h" +#include "board.h" +#include "led.h" +#include "env.h" +#include "cmd.h" + +/**********************************************************************/ +static inline void prvSetupHardware (void) +{ + /* When using the JTAG debugger the hardware is not always initialised to + the correct default state. This line just ensures that this does not + cause all interrupts to be masked at the start. */ + AT91C_BASE_AIC->AIC_EOICR = 0; + + /* Enable the peripheral clock. */ + AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOA; + AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOB; + + /* initialize environment variables */ + env_init(); + if(!env_load()) + { + env.e.mode=0; + env.e.reader_id=255; + env_store(); + } +} + +/**********************************************************************/ +void vApplicationIdleHook(void) +{ + static char disabled_green = 0; + /* Restart watchdog, has been enabled in Cstartup_SAM7.c */ + AT91F_WDTRestart(AT91C_BASE_WDTC); + if(!disabled_green) { + //vLedSetGreen(0); + disabled_green = 1; + } +} + +/**********************************************************************/ +int main (void) +{ + prvSetupHardware (); + + vLedInit(); + + xTaskCreate (vUSBCDCTask, (signed portCHAR *) "USB", TASK_USB_STACK, + NULL, TASK_USB_PRIORITY, NULL); + + vCmdInit(); + + vLedSetGreen(1); + + vTaskStartScheduler (); + + return 0; +} -- cgit v1.2.3