From 93fc8b57778f698cbe7e0e202e33b5d56ce09039 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Tue, 8 Dec 2009 10:36:29 +0000 Subject: HAL implemented for LPC214x. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1392 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- demos/ARM7-LPC214x-G++/board.c | 78 ++++-------------------------------------- 1 file changed, 6 insertions(+), 72 deletions(-) (limited to 'demos/ARM7-LPC214x-G++/board.c') diff --git a/demos/ARM7-LPC214x-G++/board.c b/demos/ARM7-LPC214x-G++/board.c index eba3f59e3..539adabee 100644 --- a/demos/ARM7-LPC214x-G++/board.c +++ b/demos/ARM7-LPC214x-G++/board.c @@ -17,30 +17,14 @@ along with this program. If not, see . */ -#include -#include -#include +#include "ch.h" +#include "hal.h" -#include "lpc214x.h" -#include "vic.h" //#include "lpc214x_ssp.h" - -#include "board.h" //#include "mmcsd.h" //#include "buzzer.h" -/* - * Non-vectored IRQs handling here. - */ -static CH_IRQ_HANDLER(IrqHandler) { - - CH_IRQ_PROLOGUE(); - - /* nothing */ - - VICVectAddr = 0; - CH_IRQ_EPILOGUE(); -} +#define VAL_TC0_PRESCALER 0 /* * Timer 0 IRQ handling here. @@ -58,18 +42,6 @@ static CH_IRQ_HANDLER(T0IrqHandler) { CH_IRQ_EPILOGUE(); } -/* - * Digital I/O ports static configuration as defined in @p board.h. - */ -static const LPC214xFIOConfig config = -{ - VAL_PINSEL0, - VAL_PINSEL1, - VAL_PINSEL2, - {VAL_FIO0PIN, VAL_FIO0DIR}, - {VAL_FIO1PIN, VAL_FIO1DIR} -}; - /* * Early initialization code. * This initialization is performed just after reset before BSS and DATA @@ -77,43 +49,7 @@ static const LPC214xFIOConfig config = */ void hwinit0(void) { - /* - * All peripherals clock disabled by default in order to save power. - */ - PCONP = PCRTC | PCTIM0; - - /* - * MAM setup. - */ - MAMTIM = 0x3; /* 3 cycles for flash accesses. */ - MAMCR = 0x2; /* MAM fully enabled. */ - - /* - * PLL setup for Fosc=12MHz and CCLK=48MHz. - * P=2 M=3. - */ - PLL *pll = PLL0Base; - pll->PLL_CFG = 0x23; /* P and M values. */ - pll->PLL_CON = 0x1; /* Enables the PLL 0. */ - pll->PLL_FEED = 0xAA; - pll->PLL_FEED = 0x55; - while (!(pll->PLL_STAT & 0x400)) - ; /* Wait for PLL lock. */ - - pll->PLL_CON = 0x3; /* Connects the PLL. */ - pll->PLL_FEED = 0xAA; - pll->PLL_FEED = 0x55; - - /* - * VPB setup. - * PCLK = CCLK / 4. - */ - VPBDIV = VPD_D4; - - /* - * I/O pins configuration. - */ - palInit(&config); + lpc214x_clock_init(); } /* @@ -124,10 +60,9 @@ void hwinit0(void) { void hwinit1(void) { /* - * Interrupt vectors assignment. + * HAL initialization. */ - vic_init(); - VICDefVectAddr = (IOREG32)IrqHandler; + halInit(); /* * System Timer initialization, 1ms intervals. @@ -144,7 +79,6 @@ void hwinit1(void) { /* * Other subsystems. */ - sdInit(); // ssp_init(); // InitMMC(); // InitBuzzer(); -- cgit v1.2.3