📄 sh1.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 + -