aboutsummaryrefslogtreecommitdiffstats
path: root/demos/ARM7-AT91SAM7X-GCC
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-12-18 14:36:43 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2009-12-18 14:36:43 +0000
commit0b598c6990b28aba2eede3ca1208c30fe4dc62fe (patch)
tree96e3d2df1891861bff22c2d91f27f3285e20616f /demos/ARM7-AT91SAM7X-GCC
parentd844d13504de6523f6a5f77cd9ec8604584bdefe (diff)
downloadChibiOS-0b598c6990b28aba2eede3ca1208c30fe4dc62fe.tar.gz
ChibiOS-0b598c6990b28aba2eede3ca1208c30fe4dc62fe.tar.bz2
ChibiOS-0b598c6990b28aba2eede3ca1208c30fe4dc62fe.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1434 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'demos/ARM7-AT91SAM7X-GCC')
-rw-r--r--demos/ARM7-AT91SAM7X-GCC/Makefile35
-rw-r--r--demos/ARM7-AT91SAM7X-GCC/board.c112
-rw-r--r--demos/ARM7-AT91SAM7X-GCC/board.h85
3 files changed, 19 insertions, 213 deletions
diff --git a/demos/ARM7-AT91SAM7X-GCC/Makefile b/demos/ARM7-AT91SAM7X-GCC/Makefile
index 0dd999e7a..e43fdf7e8 100644
--- a/demos/ARM7-AT91SAM7X-GCC/Makefile
+++ b/demos/ARM7-AT91SAM7X-GCC/Makefile
@@ -44,20 +44,22 @@ LDSCRIPT= ch.ld
# Imported source files
CHIBIOS = ../..
-include ${CHIBIOS}/os/hal/hal.mk
-include ${CHIBIOS}/os/hal/platforms/AT91SAM7/platform.mk
-include ${CHIBIOS}/os/ports/GCC/ARM7/port.mk
-include ${CHIBIOS}/os/kernel/kernel.mk
-include ${CHIBIOS}/test/test.mk
+include $(CHIBIOS)/boards/OLIMEX_SAM7_EX256/board.mk
+include $(CHIBIOS)/os/hal/platforms/AT91SAM7/platform.mk
+include $(CHIBIOS)/os/hal/hal.mk
+include $(CHIBIOS)/os/ports/GCC/ARM7/port.mk
+include $(CHIBIOS)/os/kernel/kernel.mk
+include $(CHIBIOS)/test/test.mk
# C sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
-CSRC = ${PORTSRC} \
- ${KERNSRC} \
- ${TESTSRC} \
- ${HALSRC} \
- ${PLATFORMSRC} \
- board.c main.c
+CSRC = $(PORTSRC) \
+ $(KERNSRC) \
+ $(TESTSRC) \
+ $(HALSRC) \
+ $(PLATFORMSRC) \
+ $(BOARDSRC) \
+ main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting.
@@ -85,11 +87,12 @@ TCPPSRC =
# List ASM source files here
ASMSRC = $(PORTASM) \
- ${CHIBIOS}/os/ports/GCC/ARM7/AT91SAM7/vectors.s
+ $(CHIBIOS)/os/ports/GCC/ARM7/AT91SAM7/vectors.s
-INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) $(HALINC) $(PLATFORMINC) \
- ${CHIBIOS}/os/various \
- ${CHIBIOS}/os/ports/GCC/ARM7/AT91SAM7
+INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \
+ $(HALINC) $(PLATFORMINC) $(BOARDINC) \
+ $(CHIBIOS)/os/various \
+ $(CHIBIOS)/os/ports/GCC/ARM7/AT91SAM7
#
# Project, sources and paths
@@ -177,4 +180,4 @@ ULIBS =
# End of user defines
##############################################################################
-include ${CHIBIOS}/os/ports/GCC/ARM/rules.mk
+include $(CHIBIOS)/os/ports/GCC/ARM/rules.mk
diff --git a/demos/ARM7-AT91SAM7X-GCC/board.c b/demos/ARM7-AT91SAM7X-GCC/board.c
deleted file mode 100644
index fab8b0338..000000000
--- a/demos/ARM7-AT91SAM7X-GCC/board.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio.
-
- This file is part of ChibiOS/RT.
-
- ChibiOS/RT 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 3 of the License, or
- (at your option) any later version.
-
- ChibiOS/RT 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, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "ch.h"
-#include "hal.h"
-
-/*
- * SYS IRQ handling here.
- */
-static CH_IRQ_HANDLER(SYSIrqHandler) {
-
- CH_IRQ_PROLOGUE();
-
- if (AT91C_BASE_PITC->PITC_PISR & AT91C_PITC_PITS) {
- (void) AT91C_BASE_PITC->PITC_PIVR;
- chSysLockFromIsr();
- chSysTimerHandlerI();
- chSysUnlockFromIsr();
- }
- AT91C_BASE_AIC->AIC_EOICR = 0;
-
- CH_IRQ_EPILOGUE();
-}
-
-/*
- * Early initialization code.
- * This initialization is performed just after reset before BSS and DATA
- * segments initialization.
- */
-void hwinit0(void) {
-
- /* Watchdog disabled.*/
- AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS;
-
- at91sam7_clock_init();
-}
-
-/*
- * Late initialization code.
- * This initialization is performed after BSS and DATA segments initialization
- * and before invoking the main() function.
- */
-void hwinit1(void) {
-
- /*
- * HAL initialization.
- */
- halInit();
-
- /*
- * LCD pins setup.
- */
- palClearPad(IOPORT2, PIOB_LCD_BL);
- palSetPadMode(IOPORT2, PIOB_LCD_BL, PAL_MODE_OUTPUT_PUSHPULL);
-
- palSetPad(IOPORT1, PIOA_LCD_RESET);
- palSetPadMode(IOPORT1, PIOA_LCD_RESET, PAL_MODE_OUTPUT_PUSHPULL);
-
- /*
- * Joystick and buttons setup.
- */
- palSetGroupMode(IOPORT1,
- PIOA_B1_MASK | PIOA_B2_MASK | PIOA_B3_MASK |
- PIOA_B4_MASK | PIOA_B5_MASK,
- PAL_MODE_INPUT);
- palSetGroupMode(IOPORT2, PIOB_SW1_MASK | PIOB_SW2_MASK, PAL_MODE_INPUT);
-
- /*
- * MMC/SD slot setup.
- */
- palSetGroupMode(IOPORT2,
- PIOB_MMC_WP_MASK | PIOB_MMC_CP_MASK,
- PAL_MODE_INPUT);
-
- /*
- * PIT Initialization.
- */
- AIC_ConfigureIT(AT91C_ID_SYS,
- AT91C_AIC_SRCTYPE_HIGH_LEVEL | (AT91C_AIC_PRIOR_HIGHEST - 1),
- SYSIrqHandler);
- AIC_EnableIT(AT91C_ID_SYS);
- AT91C_BASE_PITC->PITC_PIMR = (MCK / 16 / CH_FREQUENCY) - 1;
- AT91C_BASE_PITC->PITC_PIMR |= AT91C_PITC_PITEN | AT91C_PITC_PITIEN;
-
- /*
- * RTS/CTS pins enabled for USART0 only.
- */
- AT91C_BASE_PIOA->PIO_PDR = AT91C_PA3_RTS0 | AT91C_PA4_CTS0;
- AT91C_BASE_PIOA->PIO_ASR = AT91C_PIO_PA3 | AT91C_PIO_PA4;
- AT91C_BASE_PIOA->PIO_PPUDR = AT91C_PIO_PA3 | AT91C_PIO_PA4;
-
- /*
- * ChibiOS/RT initialization.
- */
- chSysInit();
-}
diff --git a/demos/ARM7-AT91SAM7X-GCC/board.h b/demos/ARM7-AT91SAM7X-GCC/board.h
deleted file mode 100644
index c0b428561..000000000
--- a/demos/ARM7-AT91SAM7X-GCC/board.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio.
-
- This file is part of ChibiOS/RT.
-
- ChibiOS/RT 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 3 of the License, or
- (at your option) any later version.
-
- ChibiOS/RT 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, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _BOARD_H_
-#define _BOARD_H_
-
-/*
- * Select your platform by modifying the following line.
- */
-#if !defined(SAM7_PLATFORM)
-#define SAM7_PLATFORM SAM7X256
-#endif
-
-#include "at91sam7.h"
-
-#define BOARD_OLIMEX_SAM7_EX256
-
-#define CLK 18432000
-#define MCK 48054857
-
-/*
- * Initial I/O setup.
- */
-#define VAL_PIOA_ODSR 0x00000000 /* Output data. */
-#define VAL_PIOA_OSR 0x00000000 /* Direction. */
-#define VAL_PIOA_PUSR 0xFFFFFFFF /* Pull-up. */
-
-#define VAL_PIOB_ODSR 0x00000000 /* Output data. */
-#define VAL_PIOB_OSR 0x00000000 /* Direction. */
-#define VAL_PIOB_PUSR 0xFFFFFFFF /* Pull-up. */
-
-/*
- * I/O definitions.
- */
-#define PIOA_LCD_RESET 2
-#define PIOA_LCD_RESET_MASK (1 << PIOA_LCD_RESET)
-#define PIOA_B1 7
-#define PIOA_B1_MASK (1 << PIOA_B1)
-#define PIOA_B2 8
-#define PIOA_B2_MASK (1 << PIOA_B2)
-#define PIOA_B3 9
-#define PIOA_B3_MASK (1 << PIOA_B3)
-#define PIOA_B4 14
-#define PIOA_B4_MASK (1 << PIOA_B4)
-#define PIOA_B5 15
-#define PIOA_B5_MASK (1 << PIOA_B5)
-#define PIOA_USB_PUP 25
-#define PIOA_USB_PUP_MASK (1 << PIOA_USB_PUP)
-#define PIOA_USB_PR 26
-#define PIOA_USB_PR_MASK (1 << PIOA_USB_PR)
-
-#define PIOB_PHY_PD 18
-#define PIOB_PHY_PD_MASK (1 << PIOB_PHY_PD)
-#define PIOB_AUDIO_OUT 19
-#define PIOB_AUDIO_OUT_MASK (1 << PIOB_AUDIO_OUT)
-#define PIOB_LCD_BL 20
-#define PIOB_LCD_BL_MASK (1 << PIOB_LCD_BL)
-#define PIOB_MMC_WP 22
-#define PIOB_MMC_WP_MASK (1 << PIOB_MMC_WP)
-#define PIOB_MMC_CP 23
-#define PIOB_MMC_CP_MASK (1 << PIOB_MMC_CP)
-#define PIOB_SW1 24
-#define PIOB_SW1_MASK (1 << PIOB_SW1)
-#define PIOB_SW2 25
-#define PIOB_SW2_MASK (1 << PIOB_SW2)
-#define PIOB_PHY_IRQ 26
-#define PIOB_PHY_IRQ_MASK (1 << PIOB_PHY_IRQ)
-
-#endif /* _BOARD_H_ */