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

📄 sh1.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-2002 by Embedded and Real-Time Systems Laboratory *                              Toyohashi Univ. of Technology, JAPAN *  Copyright (C) 2001,2002 by Industrial Technology Institute, *                              Miyagi Prefectural Government, JAPAN * *  惧淡螟侯涪荚は·Free Software Foundation によって给山されている *  GNU General Public License の Version 2 に淡揭されている掘凤か·笆 *  布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ *  アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ *      ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱 *      に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩· *      この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥 *      み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ *    (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯 *        涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する *        ことˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚を倘勒することˉ * *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は· *  塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ *  ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい *  かなる禄巢に簇しても·その勒扦を砷わないˉ * *  @(#) $Id: sh1.h,v 1.4 2002/04/11 11:30:20 imai Exp $ */#ifndef _SH1_H_#define _SH1_H_/* *  眶猛デ〖タ矢机误步脱マクロ */#define TO_STRING(arg)	#arg#define _TO_STRING(arg)	TO_STRING(arg)/* *  充哈みのベクタ戎规年盗 */#define GII	 4	/*  办忍稍碰炭吾:General Illegal Instruction  */#define SII	 6	/*  スロット稍碰炭吾:Slot Illegal Instruction */#define CAE	 9	/*  CPUアドレスエラ〖:CPU Address Error       */#define DAE	10	/*  DMAアドレスエラ〖:DMA Address Error       */#define NMI	11	/*  NMI  		*/#define USBK	12	/*  ユ〖ザ〖ブレ〖ク  	*/#define IRQ0	64	/*  嘲婶充哈み妥滇  	*/#define IRQ1	65#define IRQ2	66#define IRQ3	67#define IRQ4	68#define IRQ5	69#define IRQ6	70#define IRQ7	71	/*  DMAC:ダイレクトメモリアクセスコントロ〖ラ  */#define DEI0	72	/*  DMAC0  */#define DEI1	74	/*  DMAC1  */#define DEI2	76	/*  DMAC2  */#define DEI3	78	/*  DMAC3  */	/*  ITU:インテクレ〖テッドタイマパルスユニット  */#define IMIA0	80	/*  ITU0  */#define IMIB0	81#define OVI0	82#define IMIA1	84	/*  ITU1  */#define IMIB1	85#define OVI1	86#define IMIA2	88	/*  ITU2  */#define IMIB2	89#define OVI2	90#define IMIA3	92	/*  ITU3  */#define IMIB3	93#define OVI3	94#define IMIA4	96	/*  ITU4  */#define IMIB4	97#define OVI4	98	/*  SCI:シリアルコミュニケ〖ションインタ〖フェ〖ス  */#define ERI0	100	/*  SCI0  */#define RXI0	101#define TXI0	102#define TEI0	103#define ERI1	104	/*  SCI1  */#define RXI1	105#define TXI1	106#define TEI1	107#define PEI	108	/*  PRT:バスコントロ〖ラのパリティ扩告  */#define ADI	109	/*  A/Dコンバ〖タ  			*/#define ITI	112	/*  WDT:ウォッチドックタイマ  		*/#define CMI	113	/*  REF:DRAMリフレッシュ扩告  		*/#ifndef _MACRO_ONLY/* *  SH1の柒婶レジスタ年盗 */typedef unsigned char   byte;typedef volatile byte   IOREG;typedef unsigned short  word;typedef volatile word   HIOREG;typedef volatile int    LIOREG;/* *   バスステ〖トコントロ〖ラ */#define	WCR1	((HIOREG *)0x5ffffa2)	/*  ウェイトコントロ〖ルレジスタ1 */#define	WCR2	((HIOREG *)0x5ffffa4)	/*  ウェイトコントロ〖ルレジスタ2 */#define	WCR3	((HIOREG *)0x5ffffa6)	/*  ウェイトコントロ〖ルレジスタ3 */			/*  エリア7¨リ〖ドサイクルでWAIT慨规による  	*/			/*  ウェ〖トステ〖ト赁掐あり  			*/#define    WCR1_RW7		0x8000			/*  エリア3¨リ〖ドサイクルでWAIT慨规による  	*/			/*  ウェ〖トステ〖ト赁掐あり  			*/#define    WCR1_RW3		0x800			/*  エリア0¨リ〖ドサイクルでWAIT慨规による  	*/			/*  ウェ〖トステ〖ト赁掐あり  			*/#define    WCR1_RW0		0x100			/*  エリア0,2¨1ステ〖トロングウェイト  	*/#define    WCR3_A02LW_MASK	~0x6000/* * ピンファンクションコントロ〖ラ */#define	PAIOR	((HIOREG *)0x5ffffc4)	/*  ポ〖トA I/Oレジスタ  	  */#define	PACR1	((HIOREG *)0x5ffffc8)	/*  ポ〖トA コントロ〖ルレジスタ1 */#define	PACR2	((HIOREG *)0x5ffffca)	/*  ポ〖トA コントロ〖ルレジスタ2 */#define	PBIOR	((HIOREG *)0x5ffffc6)	/*  ポ〖トB I/Oレジスタ  	  */#define	PBCR1	((HIOREG *)0x5ffffcc)	/*  ポ〖トB コントロ〖ルレジスタ1 */#define	PBCR2	((HIOREG *)0x5ffffce)	/*  ポ〖トB コントロ〖ルレジスタ2 */#define	PADR	((HIOREG *)0x5ffffc0)	/*  ポ〖トA デ〖タレジスタ  	  */#define PBCR1_TD0_RD0_MASK 	~0xf	/*  TxD0,RxD0眉灰肋年脱マスク	*/#define PBCR1_TD0 		 0x8	/*  TxD0眉灰肋年脱マクロ  	*/#define PBCR1_RD0 		 0x2	/*  RxD0眉灰肋年脱マクロ  	*//* * 充り哈みコントロ〖ラレジスタ */#define	IPRA	((HIOREG *)0x5ffff84)	/*  充哈みレベル肋年レジスタ  */#define	IPRB	((HIOREG *)0x5ffff86)#define	IPRC	((HIOREG *)0x5ffff88)#define	IPRD	((HIOREG *)0x5ffff8a)#define	IPRE	((HIOREG *)0x5ffff8c)#define	ICR	((HIOREG *)0x5ffff8e)	/*  充哈みコントロ〖ルレジスタ  *//* * タイマ〖レジスタ *  ITU:インテグレ〖テッド帴タイマ帴パルスˇユニット */typedef struct{    	/*  鼎奶  */    IOREG  TSTR;	/*  タイマスタ〖トレジスタ  			*/    IOREG  TSNC;	/*  タイマシンクロレジスタ  			*/    IOREG  TMDR;	/*  タイマモ〖ドレジスタ  			*/    IOREG  TFCR;	/*  タイマファンクションコントロ〖ルレジスタ  	*/	/*  庙罢  */    	/*  タイマアウトプットコントロ〖ルレジスタTOCRはここではない  	*/	/*  ITU0  */    IOREG  TCR0;	/*  タイマコントロ〖ルレジスタ0			*/    IOREG  TIOR0;	/*  タイマI/Oコントロ〖ルレジスタ0		*/    IOREG  TIER0;	/*  タイマインタラプトイネ〖ブルレジスタ0	*/    IOREG  TSR0;	/*  タイマステ〖タスレジスタ0			*/    HIOREG TCNT0;	/*  タイマカウンタ0		 	 	*/    HIOREG GRA0;	/*  ジェネラルレジスタA0	 	 	*/    HIOREG GRB0;	/*  ジェネラルレジスタB0	 	 	*/	/*  ITU1  */    IOREG  TCR1;	/*  タイマコントロ〖ルレジスタ1			*/    IOREG  TIOR1;	/*  タイマI/Oコントロ〖ルレジスタ1		*/    IOREG  TIER1;	/*  タイマインタラプトイネ〖ブルレジスタ1	*/    IOREG  TSR1;	/*  タイマステ〖タスレジスタ1			*/    HIOREG TCNT1;	/*  タイマカウンタ1		 	 	*/    HIOREG GRA1;	/*  ジェネラルレジスタA1	 	 	*/    HIOREG GRB1;	/*  ジェネラルレジスタB1	 	 	*/	/*  ITU2  */    IOREG  TCR2;	/*  タイマコントロ〖ルレジスタ2			*/    IOREG  TIOR2;	/*  タイマI/Oコントロ〖ルレジスタ2		*/    IOREG  TIER2;	/*  タイマインタラプトイネ〖ブルレジスタ2	*/    IOREG  TSR2;	/*  タイマステ〖タスレジスタ2			*/    HIOREG TCNT2;	/*  タイマカウンタ2		 	 	*/    HIOREG GRA2;	/*  ジェネラルレジスタA2	 	 	*/    HIOREG GRB2;	/*  ジェネラルレジスタB2	 	 	*/	/*  ITU3  */    IOREG  TCR3;	/*  タイマコントロ〖ルレジスタ3			*/    IOREG  TIOR3;	/*  タイマI/Oコントロ〖ルレジスタ3		*/    IOREG  TIER3;	/*  タイマインタラプトイネ〖ブルレジスタ3	*/    IOREG  TSR3;	/*  タイマステ〖タスレジスタ3			*/    HIOREG TCNT3;	/*  タイマカウンタ3		 	 	*/    HIOREG GRA3;	/*  ジェネラルレジスタA3	 	 	*/    HIOREG GRB3;	/*  ジェネラルレジスタB3	 	 	*/    HIOREG BRA3;	/*  バッファレジスタA3	 	 		*/    HIOREG BRB3;	/*  バッファレジスタB3	 	 		*/    	/*  鼎奶  */    char   dummy;	/*  アラインメント拇腊  			*/    IOREG  TOCR;	/*  タイマアウトプットコントロ〖ルレジスタ  	*/	/*  ITU4  */    IOREG  TCR4;	/*  タイマコントロ〖ルレジスタ4			*/    IOREG  TIOR4;	/*  タイマI/Oコントロ〖ルレジスタ4		*/    IOREG  TIER4;	/*  タイマインタラプトイネ〖ブルレジスタ4	*/    IOREG  TSR4;	/*  タイマステ〖タスレジスタ4			*/    HIOREG TCNT4;	/*  タイマカウンタ4		 	 	*/    HIOREG GRA4;	/*  ジェネラルレジスタA4	 	 	*/    HIOREG GRB4;	/*  ジェネラルレジスタB4	 	 	*/    HIOREG BRA4;	/*  バッファレジスタA4	 	 		*/    HIOREG BRB4;	/*  バッファレジスタB4	 	 		*/} tmu;#define ITU  (*(volatile tmu *)0x5ffff00)#define TSR_IMFA	0x1	/*  GRAコンペアマッチフラグ  		*/#define TSTR_STR0	0x1	/*  タイマスタ〖トビット  		*/#define TCR_CCLR_GRA	0x20	/*  GRAコンペアマッチでカウンタをクリア */#define TIER_RESERVE	0x78	/*  TIERレジスタの徒腆ビット  		*/#define TIER_IMIEA	0x1	/*  GRAコンペアマッチによる充哈み妥滇を钓材 */#define TIOR_RESERVE	0x8	/*  TIORレジスタの徒腆ビット  		*/#define TIOR_IOA	0x0	/*  GRAコンペアマッチによる眉灰叫蜗敦贿 *//* *  シリアルコミュニケ〖ションインタ〖フェ〖ス(SCI) */typedef struct{	/*  チャネル0  */    IOREG  SMR0;	/*  シリアルモ〖ドレジスタ  			*/    IOREG  BRR0;	/*  ビットレ〖トレジスタ  			*/    IOREG  SCR0;	/*  シリアルコントロ〖ルレジスタ		*/    IOREG  TDR0;	/*  トランスミットデ〖タレジスタ  		*/    IOREG  SSR0;	/*  シリアルステ〖タスレジスタ  		*/    IOREG  RDR0;	/*  レシ〖ブデ〖タレジスタ  			*/    char   dummy1;	/*  アラインメント拇腊  			*/    char   dummy2;	/*  アラインメント拇腊  			*/	/*  チャネル1  */    IOREG  SMR1;	/*  シリアルモ〖ドレジスタ  			*/    IOREG  BRR1;	/*  ビットレ〖トレジスタ  			*/    IOREG  SCR1;	/*  シリアルコントロ〖ルレジスタ		*/    IOREG  TDR1;	/*  トランスミットデ〖タレジスタ  		*/    IOREG  SSR1;	/*  シリアルステ〖タスレジスタ  		*/    IOREG  RDR1;	/*  レシ〖ブデ〖タレジスタ  			*/} sci;#define SCI (*(volatile sci *)0x5fffec0)/*  シリアルステ〖タスレジスタSSRの称ビット  */#define SSR_TDRE	0x80	/* トランスミットデ〖タレジスタエンプティ */#define SSR_RDRF	0x40	/* レシ〖ブデ〖タレジスタフル 		*/#define SSR_ORER	0x20	/* オ〖バ〖ランエラ〖 			*/#define SSR_FER		0x10	/* フレ〖ミングエラ〖 			*/#define SSR_PER		0x08	/* パリティエラ〖 			*/#define SSR_TEND	0x04	/* トランスミットエンド 		*/#define SSR_MPB		0x02	/* マルチプロセッサビット 		*/#define SSR_MPBT	0x01	/* マルチプロセッサビットトランスファ 	*//*  シリアルコントロ〖ルレジスタSCRの称ビット  */#define SCR_TIE		0x80	/* トランスミットインタラプトイネ〖ブル */#define SCR_RIE		0x40	/* レシ〖ブインタラプトイネ〖ブル 	*/#define SCR_TE		0x20	/* トランスミットイネ〖ブル 		*/#define SCR_RE		0x10	/* レシ〖ブイネ〖ブル 			*/#define SCR_MPIE	0x08	/* マルチプロセッサインタラプトイネ〖ブル */				/* トランスミットエンドインタラプト	*/#define SCR_TEIE	0x04	/* イネ〖ブル 				*/#define SCR_CKE_MASK	0x03	/* クロックソ〖ス联买脱マスク		*/#define SCR_CKE		0x00	/* クロックイネ〖ブル			*/				/*   拇殊票袋及のとき  			*/				/*   	柒婶クロック蝗脱  		*/				/*   	叫蜗なし  			*//*  シリアルモ〖ドジスタSMRの称ビット  */				/* コミュニケ〖ションモ〖ド 	*/#define SMR_CA_CLOCK	0x80	/* 	クロック票袋及 		*/#define SMR_CA_ASYNC	0x00	/* 	拇殊票袋及奶 		*/	/*  拇殊票袋及奶慨数¨Asynchronous Communication method */				/* キャラクタレングス 		*/#define SMR_CHR8	0x00	/* 	8ビット 		*/#define SMR_CHR7	0x40	/* 	7ビット 		*/				/* パリティイネ〖ブル 		*/#define SMR_PE		0x20	/* 	パリティあり 		*/#define SMR_PE_NON	0x00	/* 	パリティなし 		*/#define SMR_OE_ODD	0x10	/* パリティモ〖ド∈瘩眶パリティ∷*/#define SMR_STOP2	0x08	/* ストップビットレングス¨2 	*/#define SMR_STOP1	0x00	/* ストップビットレングス¨1 	*/#define SMR_MP		0x04	/* マルチプロセッサモ〖ド 	*//*  クロックの尸件孺はボ〖ド巴赂∈sys_config.h∷  *//* *  gdb stubによる叫蜗	庙罢¨スタブ窗喇稿に蝗脱 */Inline intstub_putc(int c){  Asm("mov #0x00,r0; mov %0,r4; trapa #0x3f"               : /* no output */               : "r"(c)               : "r0","r4");  return(c);}/* *  SCIによる叫蜗	庙罢 */Inline intsci_putc(int c){    return(c);}/* *  メモリブロック拎侯ライブラリ *	(ItIsからの萎脱) * *  簇眶の慌屯は·ANSI C ライブラリの慌屯と票じˉ筛洁ライブラリのものを *  蝗った数が跟唯が紊い材墙拉があるˉ * */VP _dummy_memcpy(VP dest, VP src, UINT len);VP memcpy(VP dest, VP src, UINT len);#endif /* _MACRO_ONLY */#endif /* _SH1_H_ */

⌨️ 快捷键说明

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