c54x.h

来自「嵌入式系统开发 TOPPERS and JSP Kernel Release 」· C头文件 代码 · 共 316 行

H
316
字号
/* *  TOPPERS/JSP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Just Standard Profile Kernel *  *  Copyright (C) 2000-2002 by Embedded and Real-Time Systems Laboratory *                              Toyohashi Univ. of Technology, JAPAN *  *  惧淡螟侯涪荚は·Free Software Foundation によって给山されている  *  GNU General Public License の Version 2 に淡揭されている掘凤か·笆 *  布の掘凤のいずれかを塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ *  アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ *      ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱 *      に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩· *      この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥 *      み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ *    (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯 *        涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する *        ことˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚を倘勒することˉ *  *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は· *  塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ *  ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい *  かなる禄巢に簇しても·その勒扦を砷わないˉ *  *  @(#) $Id: c54x.h,v 1.3 2002/04/14 14:19:50 reiji Exp $ */#ifndef _C54X_H_#define _C54X_H_#ifndef _MACRO_ONLYtypedef unsigned char byte;typedef unsigned int  word;typedef volatile word  HIOREG;#endif/****************************************** *  CPU メモリˇマップドˇレジスタ ******************************************/#define IMR  (*(HIOREG *)0x0)#define IFR  (*(HIOREG *)0x1)#define ST0  (*(HIOREG *)0x6)#define ST1  (*(HIOREG *)0x7)#define AL   (*(HIOREG *)0x8)#define AH   (*(HIOREG *)0x9)#define AG   (*(HIOREG *)0xA)#define BL   (*(HIOREG *)0xB)#define BH   (*(HIOREG *)0xC)#define BG   (*(HIOREG *)0xD)#define T    (*(HIOREG *)0xE)#define TRN  (*(HIOREG *)0xF)#define AR0  (*(HIOREG *)0x10)#define AR1  (*(HIOREG *)0x11)#define AR2  (*(HIOREG *)0x12)#define AR3  (*(HIOREG *)0x13)#define AR4  (*(HIOREG *)0x14)#define AR5  (*(HIOREG *)0x15)#define AR6  (*(HIOREG *)0x16)#define AR7  (*(HIOREG *)0x17)#define SP   (*(HIOREG *)0x18)#define BK   (*(HIOREG *)0x19)#define BRC  (*(HIOREG *)0x1A)#define RSA  (*(HIOREG *)0x1B)#define REA  (*(HIOREG *)0x1C)#define PMST (*(HIOREG *)0x1D)#define XPC  (*(HIOREG *)0x1E)/******************************************** *   ペリフェラル メモリˇマップドˇレジスタ *******************************************//* * タイマ〖レジスタ */#ifndef _MACRO_ONLYtypedef struct{  HIOREG TIM;  HIOREG PRD;  HIOREG TCR;}tmu;#endif#define TMU0 (*(volatile tmu *)0x24)#define TMU1 (*(volatile tmu *)0x30)#define TCR_TSS 0x0010#define TCR_TRB 0x0020/*********************************************** *  I/O  メモリˇマップドˇレジスタ            ************************************************//* *  complex Programmable Logic Device (CPLD)   * *  I/O メモリˇマップドˇレジスタ                 * *//*  レジスタ アドレス */#ifndef _MACRO_ONLYvolatile ioport word port0;volatile ioport word port1;volatile ioport word port2;volatile ioport word port3;volatile ioport word port4;volatile ioport word port5;volatile ioport word port6;#endif/*  CPLD レジスタ */#define CPLD_CTRL1            port0#define CPLD_STAT             port1#define CPLD_DMCTRL           port2#define CPLD_DBIO             port3#define CPLD_CTRL2            port4#define CPLD_SEM0             port5#define CPLD_SEM1             port6/* *  UART I/O メモリˇマップドˇレジスタ * *//*  レジスタ アドレス */#ifndef _MACRO_ONLYvolatile ioport word   port4000;volatile ioport word   port4001;volatile ioport word   port4002;volatile ioport word   port4003;volatile ioport word   port4004;volatile ioport word   port4005;volatile ioport word   port4006;volatile ioport word   port4007;#endif/*  UART レジスタ  */#define UART_RBR  port4000#define UART_THR  port4000#define UART_IER  port4001#define UART_IIR  port4002#define UART_FCR  port4002#define UART_LCR  port4003#define UART_MCR  port4004#define UART_LSR  port4005#define UART_MSR  port4006#define UART_SCR  port4007/*  笆布のレジスタにアクセスする涟に、 *   DLAB=1 (b7 of LCR) をセットする涩妥がある */#define UART_DLL  port4000#define UART_DLM  port4001/* *  ビットフィ〖ルドの年盗  */#define FCR_FIFO  0x01#define FCR_RFRST 0x02#define FCR_TFRST 0x04#define FIFO_TRIG      0x00#define LCR_DLAB  0x80/* 减慨流慨充り哈みの年盗 */#define IER_ERBI      0x01  /* 减慨充り哈み */#define IER_RIE   IER_ERBI #define IER_ETBEI     0x02  /* 流慨充り哈み */#define IER_TIE   IER_ETBEI#define LSR_DR   0x01#define LSR_THRE 0x20/* *   充り哈みマスクレジスタ(IMR)ビットフィ〖ルド */#define INT0           0#define INT1           1#define INT2           2#define TINT0          3#define RINT0          4#define XINT0          5#define TINT1          7#define INT3           8#define HPINT          9#define RINT1         10#define XINT1         11#define DMAC0         6#define DMAC1         7#define DMAC2         10#define DMAC3         11#define DMAC4         12#define DMAC5         13/* *  充り哈みハンドラ戎规 INHNO */#define RESET_VEC             0#define NMI_VEC	              1#define SINT17_VEC            2#define SINT18_VEC            3#define SINT19_VEC           4#define SINT20_VEC        5#define SINT21_VEC        6#define SINT22_VEC        7#define SINT23_VEC        8#define SINT24_VEC        9#define SINT25_VEC        10#define SINT26_VEC        11#define SINT27_VEC        12#define SINT28_VEC        13#define SINT29_VEC        14#define SINT30_VEC        15#define INT0_VEC        16#define INT1_VEC        17#define INT2_VEC        18#define TINT0_VEC        19#define RINT0_VEC        20#define XINT0_VEC        21#define DMAC0_VEC        22#define TINT1_VEC        23#define INT3_VEC        24#define HPI_VEC            25#define RINT1_VEC        26#define XINT1_VEC        27#define DMAC2_VEC        26#define DMAC3_VEC        27#define DMAC4_VEC        28#define DMAC5_VEC        29/* *  TRAP戎规 */#define RS_TRAP           0#define NMI_TRAP       1#define INT0_TRAP       16#define INT1_TRAP       17#define INT2_TRAP       18#define TINT_TRAP       19#define RINT0_TRAP       20#define XINT0_TRAP       21#define DMAC0_TRAP       22#define DMAC1_TRAP       23#define INT3_TRAP       24#define HPINT_TRAP       25#define RINT1_TRAP       26#define DMAC2_TRAP       26#define XINT1_TRAP       27#define DMAC3_TRAP       27#define DMAC4_TRAP       28#define DMAC5_TRAP       29#define SINTR        0#define SINT16        1#define SINT17        2#define SINT18        3#define SINT19        4#define SINT20        5#define SINT21        6#define SINT22        7#define SINT23        8#define SINT24        9#define SINT25        10#define SINT26        11#define SINT27        12#define SINT28        13#define SINT29        14#define SINT30        15#define SINT0        16#define SINT1        17#define SINT2        18#define SINT3        19#define SINT4        20#define SINT5        21#define SINT6        22#define SINT7        23#define SINT8        24#define SINT9        25#define SINT10        26#define SINT11        27#define SINT12          28#define SINT13          29/*  sys_putcにuart_putcの洛わりにprintfを *  脱いる眷圭PRINTFを年盗する。またその *  眷圭はライブラリrts.libをインクル〖ドする *///#define PRINTF#ifndef PRINTF/* ポ〖リングでシリアルに流慨 */#ifndef _MACRO_ONLYInline charuart_putc(char c){  while((UART_LSR & LSR_THRE) == 0);      /*  流慨レジスタが鄂かどうか  */  UART_THR = c;  return(c);}#endif /* _MACRO_ONLY */#endif /* PRINTF */#endif

⌨️ 快捷键说明

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