📄 bsp.h.svn-base
字号:
/* * File : bsp.h * This file is part of RT-Thread RTOS * COPYRIGHT (C) 2006, RT-Thread Develop Team * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://openlab.rt-thread.com/license/LICENSE * * Change Logs: * Date Author Notes * 2006-09-15 QiuYi the first version */#ifndef __BSP_H_#define __BSP_H_#include <i386.h>/*******************************************************************//* Timer Register *//*******************************************************************/#define TIMER_CNTR0 (IO_TIMER1 + 0) /* timer 0 counter port */#define TIMER_CNTR1 (IO_TIMER1 + 1) /* timer 1 counter port */#define TIMER_CNTR2 (IO_TIMER1 + 2) /* timer 2 counter port */#define TIMER_MODE (IO_TIMER1 + 3) /* timer mode port */#define TIMER_SEL0 0x00 /* select counter 0 */#define TIMER_SEL1 0x40 /* select counter 1 */#define TIMER_INTTC 0x00 /* mode 0, intr on terminal cnt */#define TIMER_ONESHOT 0x02 /* mode 1, one shot */#define TIMER_RATEGEN 0x04 /* mode 2, rate generator */#define TIMER_SQWAVE 0x06 /* mode 3, square wave */#define TIMER_SWSTROBE 0x08 /* mode 4, s/w triggered strobe */#define TIMER_HWSTROBE 0x0a /* mode 5, h/w triggered strobe */#define TIMER_LATCH 0x00 /* latch counter for reading */#define TIMER_LSB 0x10 /* r/w counter LSB */#define TIMER_MSB 0x20 /* r/w counter MSB */#define TIMER_16BIT 0x30 /* r/w counter 16 bits, LSB first */#define TIMER_BCD 0x01 /* count in BCD */#define TIMER_FREQ 1193182#define TIMER_DIV(x) ((TIMER_FREQ+(x)/2)/(x))#define IO_TIMER1 0x040 /* 8253 Timer #1 *//*******************************************************************//* Interrupt Controller *//*******************************************************************//* these are processor defined */#define T_DIVIDE 0 /* divide error */#define T_DEBUG 1 /* debug exception */#define T_NMI 2 /* non-maskable interrupt */#define T_BRKPT 3 /* breakpoint */#define T_OFLOW 4 /* overflow */#define T_BOUND 5 /* bounds check */#define T_ILLOP 6 /* illegal opcode */#define T_DEVICE 7 /* device not available */#define T_DBLFLT 8 /* double fault *//* 9 is reserved */#define T_TSS 10 /* invalid task switch segment */#define T_SEGNP 11 /* segment not present */#define T_STACK 12 /* stack exception */#define T_GPFLT 13 /* genernal protection fault */#define T_PGFLT 14 /* page fault *//* 15 is reserved */#define T_FPERR 16 /* floating point error */#define T_ALIGN 17 /* aligment check */#define T_MCHK 18 /* machine check */#define T_DEFAULT 500 /* catchall */#define INTTIMER0 0#define INTKEYBOARD 1#define INTUART0_RX 4/* I/O Addresses of the two 8259A programmable interrupt controllers */#define IO_PIC1 0x20 /* Master(IRQs 0-7) */#define IO_PIC2 0xa0 /* Slave(IRQs 8-15) */#define IRQ_SLAVE 0x2 /* IRQ at which slave connects to master */#define IRQ_OFFSET 0x20 /* IRQ 0 corresponds to int IRQ_OFFSET */#define MAX_HANDLERS 16 /*max number of isr handler*//*******************************************************************//* CRT Register *//*******************************************************************/#define MONO_BASE 0x3b4#define MONO_BUF 0xb0000#define CGA_BASE 0x3d4#define CGA_BUF 0xb8000#define CRT_ROWS 25#define CRT_COLS 80#define CRT_SIZE (CRT_ROWS * CRT_COLS)/*******************************************************************//* Keyboard Register *//*******************************************************************/#define KBSTATP 0x64 /* kbd controller status port(I) */#define KBS_DIB 0x01 /* kbd data in buffer */#define KBDATAP 0x60 /* kbd data port(I) *//*******************************************************************//* Serial Register *//*******************************************************************//*Serial I/O code */#define COM1 0x3F8#define COMSTATUS 5#define COMDATA 0x01#define COMREAD 0#define COMWRITE 0/* Bits definition of the Line Status Register (LSR)*/#define DR 0x01 /* Data Ready */#define OE 0x02 /* Overrun Error */#define PE 0x04 /* Parity Error */#define FE 0x08 /* Framing Error */#define BI 0x10 /* Break Interrupt */#define THRE 0x20 /* Transmitter Holding Register Empty */#define TEMT 0x40 /* Transmitter Empty */#define ERFIFO 0x80 /* Error receive Fifo */#ifdef __cplusplus}#endif#endif /* __BSP_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -