git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1438 35acf78f-673a-0410-8e92-d51de3d6d3f4
parent
975e69edff
commit
b07970d18c
|
@ -44,25 +44,26 @@ LDSCRIPT = ch.ld
|
|||
|
||||
# Imported source files
|
||||
CHIBIOS = ../..
|
||||
include ${CHIBIOS}/os/hal/hal.mk
|
||||
include ${CHIBIOS}/os/hal/platforms/LPC214x/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_LPC_P2148/board.mk
|
||||
include $(CHIBIOS)/os/hal/platforms/LPC214x/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} \
|
||||
${CHIBIOS}/os/various/evtimer.c \
|
||||
board.c
|
||||
CSRC = $(PORTSRC) \
|
||||
$(KERNSRC) \
|
||||
$(TESTSRC) \
|
||||
$(HALSRC) \
|
||||
$(PLATFORMSRC) \
|
||||
$(BOARDSRC) \
|
||||
$(CHIBIOS)/os/various/evtimer.c
|
||||
|
||||
# C++ sources that can be compiled in ARM or THUMB mode depending on the global
|
||||
# setting.
|
||||
CPPSRC = ${CHIBIOS}/os/various/ch.cpp main.cpp
|
||||
CPPSRC = $(CHIBIOS)/os/various/ch.cpp main.cpp
|
||||
|
||||
# C sources to be compiled in ARM mode regardless of the global setting.
|
||||
# NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
|
||||
|
@ -86,11 +87,12 @@ TCPPSRC =
|
|||
|
||||
# List ASM source files here
|
||||
ASMSRC = $(PORTASM) \
|
||||
${CHIBIOS}/os/ports/GCC/ARM7/LPC214x/vectors.s
|
||||
$(CHIBIOS)/os/ports/GCC/ARM7/LPC214x/vectors.s
|
||||
|
||||
INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) $(HALINC) $(PLATFORMINC) \
|
||||
${CHIBIOS}/os/various \
|
||||
${CHIBIOS}/os/ports/GCC/ARM7/LPC214x
|
||||
INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \
|
||||
$(HALINC) $(PLATFORMINC) $(BOARDINC) \
|
||||
$(CHIBIOS)/os/various \
|
||||
$(CHIBIOS)/os/ports/GCC/ARM7/LPC214x
|
||||
|
||||
#
|
||||
# Project, sources and paths
|
||||
|
@ -178,4 +180,4 @@ ULIBS =
|
|||
# End of user defines
|
||||
##############################################################################
|
||||
|
||||
include ${CHIBIOS}/os/ports/GCC/ARM/rules.mk
|
||||
include $(CHIBIOS)/os/ports/GCC/ARM/rules.mk
|
||||
|
|
|
@ -1,90 +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"
|
||||
|
||||
//#include "lpc214x_ssp.h"
|
||||
//#include "mmcsd.h"
|
||||
//#include "buzzer.h"
|
||||
|
||||
#define VAL_TC0_PRESCALER 0
|
||||
|
||||
/*
|
||||
* Timer 0 IRQ handling here.
|
||||
*/
|
||||
static CH_IRQ_HANDLER(T0IrqHandler) {
|
||||
|
||||
CH_IRQ_PROLOGUE();
|
||||
T0IR = 1; /* Clear interrupt on match MR0. */
|
||||
|
||||
chSysLockFromIsr();
|
||||
chSysTimerHandlerI();
|
||||
chSysUnlockFromIsr();
|
||||
|
||||
VICVectAddr = 0;
|
||||
CH_IRQ_EPILOGUE();
|
||||
}
|
||||
|
||||
/*
|
||||
* Early initialization code.
|
||||
* This initialization is performed just after reset before BSS and DATA
|
||||
* segments initialization.
|
||||
*/
|
||||
void hwinit0(void) {
|
||||
|
||||
lpc214x_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();
|
||||
|
||||
/*
|
||||
* System Timer initialization, 1ms intervals.
|
||||
*/
|
||||
SetVICVector(T0IrqHandler, 0, SOURCE_Timer0);
|
||||
VICIntEnable = INTMASK(SOURCE_Timer0);
|
||||
TC *timer = T0Base;
|
||||
timer->TC_PR = VAL_TC0_PRESCALER;
|
||||
timer->TC_MR0 = (PCLK / CH_FREQUENCY) / (VAL_TC0_PRESCALER + 1);
|
||||
timer->TC_MCR = 3; /* Interrupt and clear TC on match MR0. */
|
||||
timer->TC_TCR = 2; /* Reset counter and prescaler. */
|
||||
timer->TC_TCR = 1; /* Timer enabled. */
|
||||
|
||||
/*
|
||||
* Other subsystems.
|
||||
*/
|
||||
// ssp_init();
|
||||
// InitMMC();
|
||||
// InitBuzzer();
|
||||
|
||||
/*
|
||||
* ChibiOS/RT initialization.
|
||||
*/
|
||||
chSysInit();
|
||||
}
|
|
@ -1,77 +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_
|
||||
|
||||
#define BOARD_OLIMEX_LCP_P2148
|
||||
|
||||
/*
|
||||
* The following values are implementation dependent. You may change them in
|
||||
* order to match your HW.
|
||||
*/
|
||||
#define FOSC 12000000
|
||||
#define CCLK 48000000
|
||||
#define PCLK 12000000
|
||||
|
||||
/*
|
||||
* Pins configuration for Olimex LPC-P2148.
|
||||
*
|
||||
* PINSEL0
|
||||
* P0 P0 P0 P0 P0 P0 RXD TXD SSE MOS MIS SCK SDA SCL RXD TXD
|
||||
* 15 14 13 12 11 10 1 1 L0 I0 O0 0 0 0 0 0
|
||||
* 00 00 00 00 00 00 01 01 01 01 01 01 01 01 01 01
|
||||
* IN IN OUT OUT OUT OUT -- -- -- -- -- -- -- -- -- --
|
||||
* 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0
|
||||
*
|
||||
* PINSEL1
|
||||
* P0 AD P0 P0 -- -- AO -- VB P0 P0 P0 MOS MIS SCK P0
|
||||
* 31 03 29 28 -- -- UT -- US 22 21 20 I1 O1 1 16
|
||||
* 00 01 00 00 00 00 10 00 01 00 00 00 10 10 10 00
|
||||
* OUT -- OUT OUT -- -- -- -- -- OUT OUT OUT -- -- -- IN
|
||||
* 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0
|
||||
*
|
||||
* PINSEL2
|
||||
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- GP DBG --
|
||||
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- IO --
|
||||
* 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 1 00
|
||||
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- IN -- --
|
||||
*/
|
||||
#define VAL_PINSEL0 0x00055555
|
||||
#define VAL_PINSEL1 0x100840A8
|
||||
#define VAL_PINSEL2 0x00000004
|
||||
#define VAL_FIO0DIR 0xB0703C00
|
||||
#define VAL_FIO1DIR 0x00000000
|
||||
#define VAL_FIO0PIN 0xFFFFFFFF
|
||||
#define VAL_FIO1PIN 0xFFFFFFFF
|
||||
|
||||
#define PA_LED1 10
|
||||
#define PA_LED2 11
|
||||
#define PA_BUZZ1 12
|
||||
#define PA_BUZZ2 13
|
||||
#define PA_BSL 14
|
||||
#define PA_BUTTON1 15
|
||||
#define PA_BUTTON2 16
|
||||
#define PA_SSEL1 20
|
||||
#define PA_LEDUSB 31
|
||||
|
||||
#define PB_WP1 24
|
||||
#define PB_CP1 25
|
||||
|
||||
#endif /* _BOARD_H_ */
|
|
@ -44,20 +44,22 @@ LDSCRIPT = ch.ld
|
|||
|
||||
# Imported source files
|
||||
CHIBIOS = ../..
|
||||
include ${CHIBIOS}/os/hal/hal.mk
|
||||
include ${CHIBIOS}/os/hal/platforms/LPC214x/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_LPC_P2148/board.mk
|
||||
include $(CHIBIOS)/os/hal/platforms/LPC214x/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/LPC214x/vectors.s
|
||||
$(CHIBIOS)/os/ports/GCC/ARM7/LPC214x/vectors.s
|
||||
|
||||
INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) $(HALINC) $(PLATFORMINC) \
|
||||
${CHIBIOS}/os/various \
|
||||
${CHIBIOS}/os/ports/GCC/ARM7/LPC214x
|
||||
INCDIR = $(PORTINC) $(KERNINC) $(TESTINC) \
|
||||
$(HALINC) $(PLATFORMINC) $(BOARDINC) \
|
||||
$(CHIBIOS)/os/various \
|
||||
$(CHIBIOS)/os/ports/GCC/ARM7/LPC214x
|
||||
|
||||
#
|
||||
# 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
|
||||
|
|
|
@ -1,90 +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"
|
||||
|
||||
//#include "lpc214x_ssp.h"
|
||||
//#include "mmcsd.h"
|
||||
//#include "buzzer.h"
|
||||
|
||||
#define VAL_TC0_PRESCALER 0
|
||||
|
||||
/*
|
||||
* Timer 0 IRQ handling here.
|
||||
*/
|
||||
static CH_IRQ_HANDLER(T0IrqHandler) {
|
||||
|
||||
CH_IRQ_PROLOGUE();
|
||||
T0IR = 1; /* Clear interrupt on match MR0. */
|
||||
|
||||
chSysLockFromIsr();
|
||||
chSysTimerHandlerI();
|
||||
chSysUnlockFromIsr();
|
||||
|
||||
VICVectAddr = 0;
|
||||
CH_IRQ_EPILOGUE();
|
||||
}
|
||||
|
||||
/*
|
||||
* Early initialization code.
|
||||
* This initialization is performed just after reset before BSS and DATA
|
||||
* segments initialization.
|
||||
*/
|
||||
void hwinit0(void) {
|
||||
|
||||
lpc214x_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();
|
||||
|
||||
/*
|
||||
* System Timer initialization, 1ms intervals.
|
||||
*/
|
||||
SetVICVector(T0IrqHandler, 0, SOURCE_Timer0);
|
||||
VICIntEnable = INTMASK(SOURCE_Timer0);
|
||||
TC *timer = T0Base;
|
||||
timer->TC_PR = VAL_TC0_PRESCALER;
|
||||
timer->TC_MR0 = (PCLK / CH_FREQUENCY) / (VAL_TC0_PRESCALER + 1);
|
||||
timer->TC_MCR = 3; /* Interrupt and clear TC on match MR0. */
|
||||
timer->TC_TCR = 2; /* Reset counter and prescaler. */
|
||||
timer->TC_TCR = 1; /* Timer enabled. */
|
||||
|
||||
/*
|
||||
* Other subsystems.
|
||||
*/
|
||||
// ssp_init();
|
||||
// InitMMC();
|
||||
// InitBuzzer();
|
||||
|
||||
/*
|
||||
* ChibiOS/RT initialization.
|
||||
*/
|
||||
chSysInit();
|
||||
}
|
|
@ -1,77 +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_
|
||||
|
||||
#define BOARD_OLIMEX_LCP_P2148
|
||||
|
||||
/*
|
||||
* The following values are implementation dependent. You may change them in
|
||||
* order to match your HW.
|
||||
*/
|
||||
#define FOSC 12000000
|
||||
#define CCLK 48000000
|
||||
#define PCLK 12000000
|
||||
|
||||
/*
|
||||
* Pins configuration for Olimex LPC-P2148.
|
||||
*
|
||||
* PINSEL0
|
||||
* P0 P0 P0 P0 P0 P0 RXD TXD SSE MOS MIS SCK SDA SCL RXD TXD
|
||||
* 15 14 13 12 11 10 1 1 L0 I0 O0 0 0 0 0 0
|
||||
* 00 00 00 00 00 00 01 01 01 01 01 01 01 01 01 01
|
||||
* IN IN OUT OUT OUT OUT -- -- -- -- -- -- -- -- -- --
|
||||
* 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0
|
||||
*
|
||||
* PINSEL1
|
||||
* P0 AD P0 P0 -- -- AO -- VB P0 P0 P0 MOS MIS SCK P0
|
||||
* 31 03 29 28 -- -- UT -- US 22 21 20 I1 O1 1 16
|
||||
* 00 01 00 00 00 00 10 00 01 00 00 00 10 10 10 00
|
||||
* OUT -- OUT OUT -- -- -- -- -- OUT OUT OUT -- -- -- IN
|
||||
* 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0
|
||||
*
|
||||
* PINSEL2
|
||||
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- GP DBG --
|
||||
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- IO --
|
||||
* 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 1 00
|
||||
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- IN -- --
|
||||
*/
|
||||
#define VAL_PINSEL0 0x00055555
|
||||
#define VAL_PINSEL1 0x100840A8
|
||||
#define VAL_PINSEL2 0x00000004
|
||||
#define VAL_FIO0DIR 0xB0703C00
|
||||
#define VAL_FIO1DIR 0x00000000
|
||||
#define VAL_FIO0PIN 0xFFFFFFFF
|
||||
#define VAL_FIO1PIN 0xFFFFFFFF
|
||||
|
||||
#define PA_LED1 10
|
||||
#define PA_LED2 11
|
||||
#define PA_BUZZ1 12
|
||||
#define PA_BUZZ2 13
|
||||
#define PA_BSL 14
|
||||
#define PA_BUTTON1 15
|
||||
#define PA_BUTTON2 16
|
||||
#define PA_SSEL1 20
|
||||
#define PA_LEDUSB 31
|
||||
|
||||
#define PB_WP1 24
|
||||
#define PB_CP1 25
|
||||
|
||||
#endif /* _BOARD_H_ */
|
Loading…
Reference in New Issue