⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 evaluator7t.h

📁 嵌入式系统开发 TOPPERS and JSP Kernel Release 1.3 TOPPERS = Toyohashi Open Platform for Embedded Real-Tim
💻 H
字号:
/* *  TOPPERS/JSP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Just Standard Profile Kernel *  *  Copyright (C) 2000,2001 by Embedded and Real-Time Systems Laboratory *                              Toyohashi Univ. of Technology, JAPAN *  *  惧淡螟侯涪荚は·Free Software Foundation によって给山されている  *  GNU General Public License の Version 2 に淡揭されている掘凤か·笆 *  布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ *  アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ *      ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱 *      に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩· *      この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥 *      み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ *    (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯 *        涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する *        ことˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚を倘勒することˉ *  *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は· *  塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ *  ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい *  かなる禄巢に簇しても·その勒扦を砷わないˉ *  *  @(#) $Id: evaluator7t.h,v 1.5 2002/04/05 07:43:51 honda Exp $ */#ifndef _EVALUATOR7T_H_#define _EVALUATOR7T_H_#include "arm7tdmi.h"/* *  KS32C50100 */#define SYSCFG_BASE     0x03ff0000#define SYSCFG          ((LIOREG *)(SYSCFG_BASE)) /* 1K byte *//* *  Cash */#define CASH_TAG_RAM ((LIOREG *)0x11000000)#ifndef _MACRO_ONLYInline voidcach_on(void){    *SYSCFG = (*SYSCFG & 0xffffffcd) | 0x12;}Inline voidcach_off(void){    *SYSCFG &= 0xfffffffd;}Inline voidcach_purge(void){    int i;    for(i = 0; i < 256; i++)        *(CASH_TAG_RAM + i) &= 0x3fffffff;}#endif /* _MACRO_ONLY *//* * Interrupt controller */#define INTMOD         ((LIOREG *)(SYSCFG_BASE + 0x4000)) #define INTPND         ((LIOREG *)(SYSCFG_BASE + 0x4004))#define INTMSK         ((LIOREG *)(SYSCFG_BASE + 0x4008)) #define INTPRI0        ((LIOREG *)(SYSCFG_BASE + 0x400C))#define INTPRI1        ((LIOREG *)(SYSCFG_BASE + 0x4010))#define INTPRI2        ((LIOREG *)(SYSCFG_BASE + 0x4014))#define INTPRI3        ((LIOREG *)(SYSCFG_BASE + 0x4018))#define INTPRI4        ((LIOREG *)(SYSCFG_BASE + 0x401C))#define INTPRI5        ((LIOREG *)(SYSCFG_BASE + 0x4020))/* inter source << 2  */#define INTOFFSET      ((LIOREG *)(SYSCFG_BASE + 0x4024)) #define INTOFFSET_FIQ  ((LIOREG *)(SYSCFG_BASE + 0x4030)) #define INTOFFSET_IRQ  ((LIOREG *)(SYSCFG_BASE + 0x4034)) #define INTPNDPRI      ((LIOREG *)(SYSCFG_BASE + 0x4028)) #define INT_GLOBAL             21#define IRQ_NUMBER_I2C         20#define IRQ_NUMBER_ETH_MAC_RX  19#define IRQ_NUMBER_ETH_MAC_TX  18#define IRQ_NUMBER_ETH_BDMA_RX 17#define IRQ_NUMBER_ETH_BDMA_TX 16#define IRQ_NUMBER_HDLCB_RX    15#define IRQ_NUMBER_HDLCB_TX    14#define IRQ_NUMBER_HDLCA_RX    13#define IRQ_NUMBER_HDLCA_TX    12#define IRQ_NUMBER_TMU1        11#define IRQ_NUMBER_TMU0        10#define IRQ_NUMBER_GDMA1        9#define IRQ_NUMBER_GDMA0        8#define IRQ_NUMBER_UART1_RX     7#define IRQ_NUMBER_UART1_TX     6#define IRQ_NUMBER_UART0_RX     5#define IRQ_NUMBER_UART0_TX     4#define IRQ_NUMBER_EXI3         3#define IRQ_NUMBER_EXI2         2#define IRQ_NUMBER_EXI1         1#define IRQ_NUMBER_EXI0         0#define IRQ_BIT_I2C         (1<<IRQ_NUMBER_I2C)#define IRQ_BIT_ETH_MAC_RX  (1<<IRQ_NUMBER_ETH_MAC_RX)#define IRQ_BIT_ETH_MAC_TX  (1<<IRQ_NUMBER_ETH_MAC_TX)#define IRQ_BIT_ETH_BDMA_RX (1<<IRQ_NUMBER_ETH_BDMA_RX)#define IRQ_BIT_ETH_BDMA_TX (1<<IRQ_NUMBER_ETH_BDMA_TX)#define IRQ_BIT_HDLCB_RX    (1<<IRQ_NUMBER_HDLCB_RX)#define IRQ_BIT_HDLCB_TX    (1<<IRQ_NUMBER_HDLCB_TX)#define IRQ_BIT_HDLCA_RX    (1<<IRQ_NUMBER_HDLCA_RX)#define IRQ_BIT_HDLCA_TX    (1<<IRQ_NUMBER_HDLCA_TX)#define IRQ_BIT_TMU1        (1<<IRQ_NUMBER_TMU1)#define IRQ_BIT_TMU0        (1<<IRQ_NUMBER_TMU0)#define IRQ_BIT_GDMA1       (1<<IRQ_NUMBER_GDMA1)#define IRQ_BIT_GDMA0       (1<<IRQ_NUMBER_GDMA0)#define IRQ_BIT_UART1_RX    (1<<IRQ_NUMBER_UART1_RX)#define IRQ_BIT_UART1_TX    (1<<IRQ_NUMBER_UART1_TX)#define IRQ_BIT_UART0_RX    (1<<IRQ_NUMBER_UART0_RX)#define IRQ_BIT_UART0_TX    (1<<IRQ_NUMBER_UART0_TX)#define IRQ_BIT_EXI3        (1<<IRQ_NUMBER_EXI3)#define IRQ_BIT_EXI2        (1<<IRQ_NUMBER_EXI2)#define IRQ_BIT_EXI1        (1<<IRQ_NUMBER_EXI1)#define IRQ_BIT_EXI0        (1<<IRQ_NUMBER_EXI0)/* *  I/Oレジスタ */#define IOPMOD          ((LIOREG *)(SYSCFG_BASE+0x5000))#define IOPCON          ((LIOREG *)(SYSCFG_BASE+0x5004))#define IOPDATA         ((LIOREG *)(SYSCFG_BASE+0x5008))/* *  SCI0 Control Register */#ifndef _MACRO_ONLYtypedef struct{    LIOREG ULCON;  /* Line control register      */    LIOREG UCON;   /* Control register           */    LIOREG USTAT;  /* Status register            */    LIOREG UTXBUF; /* Transmit holding register  */    LIOREG URXBUF; /* Receive buffer register    */    LIOREG UBRDIV; /* Baud rate divisor register */    LIOREG BRDCNT; /* Baud rate count register   */    LIOREG RBDCLK; /* Baud rate clock monitor    */        } uart;#endif  /* _MACRO_ONLY */#define UART0  (*(volatile uart *)(SYSCFG_BASE + 0xD000))/* bit[1:0] */#define ULCON_WL_5BIT  0x00#define ULCON_WL_6BIT  0x01#define ULCON_WL_7BIT  0x02#define ULCON_WL_8BIT  0x03/* bit[2] */#define ULCON_STOP_1   0x00#define ULCON_STOP_2   0x04/* bit[5:3] */#define ULCON_PMD_NO   0x04#define ULCON_PMD_ODD  0x20#define ULCON_PMD_EVEN 0x28#define ULCON_PMD_F1   0x30#define ULCON_PMD_F0   0x38/* bit[6] */#define ULCON_SCS_IN   0x00#define ULCON_SCS_EX   0x40/* bit[7] */#define ULCON_IR       0x80/* UCON  *//* bit[1:0] */#define UCON_RxM_MASK  0x02#define UCON_RxM_DIS   0x00#define UCON_RxM_INT   0x01#define UCON_RxM_GDMA0 0x02#define UCON_RxM_GDMA1 0x03/* bit[2] */#define UCON_RxSI_EN   0x04/* bit[4:3] */#define UCON_TxM_MASK  0x18#define UCON_TxM_DIS   0x00#define UCON_TxM_INT   0x08#define UCON_TxM_GDMA0 0x10#define UCON_TxM_GDMA1 0x18/* bit[5] */#define UCON_DST_EN    0x20/* bit[6] */#define UCON_SBK_EN    0x40/* bit[7] */#define UCON_LPM_EN    0x80/*  USTAT  *//* bit[0] */#define USTAT_OV     0x01#define USTAT_PE     0x02#define USTAT_FE     0x04#define USTAT_BKD    0x08#define USTAT_DTR    0x10#define USTAT_RDR    0x20#define USTAT_TBE    0x40#define USTAT_TC     0x80/*  Baud rate  */#define UBRDIV_9600   (162<<4)#define UBRDIV_19200  (80<<4)#define UBRDIV_38400  (40<<4)#define UBRDIV_57600  (26<<4)/* *   TM controller */#define TMOD         ((LIOREG *)(SYSCFG_BASE + 0x6000))#define TDATA0       ((LIOREG *)(SYSCFG_BASE + 0x6004))#define TDATA1       ((LIOREG *)(SYSCFG_BASE + 0x6008))#define TCNT0        ((LIOREG *)(SYSCFG_BASE + 0x600C))#define TCNT1        ((LIOREG *)(SYSCFG_BASE + 0x6010)) #define TM_TE0   0x01#define TM_TMD0  0x02#define TM_TCLR0 0x04#define TM_TE1   0x08#define TM_TMD1  0x10#define TM_TCLR1 0x20/* *  Evaluator-7T depend *//* *  LED */#define LED_MASK        (0xf0)#define LED_D4          (0x80)#define LED_D3          (0x40)#define LED_D2          (0x20)#define LED_D1          (0x10)#define LED_OFF         (0x00)#ifndef _MACRO_ONLYInline voidled_init(void){    *IOPMOD  |= LED_MASK;     /* To Outpu */    *IOPDATA &= ~LED_MASK;    /* Clear */    }Inlinevoid led_set(unsigned data){    *IOPDATA        &= ~LED_MASK;    /* Clear */    *IOPDATA        |= data;         /* Set   */}#endif /* _MACRO_ONLY *//* *   7Segment LED */#define SEG_MASK        (0x1fc00)#define SEG_A           (1<<10)#define SEG_B           (1<<11)#define SEG_C           (1<<12)#define SEG_D           (1<<13)#define SEG_E           (1<<14)#define SEG_F           (1<<16)#define SEG_G           (1<<15)#define DISP_0          (SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F)#define DISP_1          (SEG_B|SEG_C)#define DISP_2          (SEG_A|SEG_B|SEG_D|SEG_E|SEG_G)#define DISP_3          (SEG_A|SEG_B|SEG_C|SEG_D|SEG_G)#define DISP_4          (SEG_B|SEG_C|SEG_F|SEG_G)#define DISP_5          (SEG_A|SEG_C|SEG_D|SEG_F|SEG_G)#define DISP_6          (SEG_A|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G)#define DISP_7          (SEG_A|SEG_B|SEG_C)#define DISP_8          (SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G)#define DISP_9          (SEG_A|SEG_B|SEG_C|SEG_D|SEG_F|SEG_G)#define DISP_A          (SEG_A|SEG_B|SEG_C|SEG_E|SEG_F|SEG_G)#define DISP_B          (SEG_C|SEG_D|SEG_E|SEG_F|SEG_G)#define DISP_C          (SEG_A|SEG_D|SEG_E|SEG_F)#define DISP_D          (SEG_B|SEG_C|SEG_D|SEG_E|SEG_G)#define DISP_E          (SEG_A|SEG_D|SEG_E|SEG_F|SEG_G)#define DISP_F          (SEG_A|SEG_E|SEG_F|SEG_G)#ifndef _MACRO_ONLYInline voidseg_init(void){    *IOPMOD  |= SEG_MASK;      *IOPDATA &= ~SEG_MASK;}Inline voidseg_setdisplay (unsigned data){    *IOPDATA        &= ~SEG_MASK;  /* Clear */    *IOPDATA        |= data;       /* Set   */}#endif /* _MACRO_ONLY *//* * User interrupt switch */#define INT_SW3_MASK        (1)#define IO_ENABLE_INT0      (1<<4)#define IO_ACTIVE_HIGH_INT0 (1<<3)#define IO_RISING_EDGE_INT0 (1)#endif  /*  _EVALUATOR7T_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -