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 + -
显示快捷键?