52 lines
1.6 KiB
C
52 lines
1.6 KiB
C
/*
|
|
cpulib: Routines for CPU initialization and configuration.
|
|
|
|
Target : iSYSTEM LPC2138-M minitarget board (ARM7TDMI)
|
|
Source : iSYSTEM iF-DEV-LPC kit
|
|
Changes : Tidorum Ltd (N. Holsti)
|
|
|
|
$Id: cpulib.h,v 1.1 2008/04/08 09:44:55 niklas Exp $
|
|
*/
|
|
|
|
|
|
#ifndef CPULIB_H
|
|
#define CPULIB_H
|
|
|
|
#define REG(x) (*((volatile unsigned int *)(x)))
|
|
#define IO0DIR REG(0xE0028008) // I/O direction control
|
|
#define IO0CLR REG(0xE002800C) // output clear
|
|
#define IO0SET REG(0xE0028004) // output set
|
|
#define PLLCFG REG(0xE01FC084) // PLL Config Reg.
|
|
#define PLLCON REG(0xE01FC080) // PLL Control Reg.
|
|
#define PLLFEED REG(0xE01FC08C) // PLL-Feed 0xAA, 0x55
|
|
#define PLLSTAT REG(0xE01FC088) // PLL-Status register
|
|
#define MAMCR REG(0xE01FC000) // MAM Control register
|
|
#define MAMTIM REG(0xE01FC004) // MAM Timing register
|
|
|
|
|
|
#define IO_LED 0x00000001
|
|
// The LED is connected to pin P0.0.
|
|
|
|
|
|
void cpulib_init_cpu ( void );
|
|
// Initializes the processor (in addition to crt0 actions).
|
|
// Defines the LED control pin (P0.0) as output and emits a "1"
|
|
// to turn off the LED.
|
|
|
|
void cpulib_go_fast ( unsigned int mode );
|
|
// Sets the PLL to run the processor at 60 MHz.
|
|
// Does not alter the MAM mode (because of the LPC2138 errata).
|
|
|
|
void cpulib_set_led ( int state );
|
|
// Turns the LED on if state != 0, off if state = 0.
|
|
|
|
void cpulib_flash_led ( void );
|
|
// Turns the LED on for a brief time, then off.
|
|
// Useful only if the LED is initially off.
|
|
|
|
void cpulib_blink_led ( void );
|
|
// Turns the LED off for short time, then on
|
|
// for a shorter time, then off again.
|
|
|
|
#endif
|