📄 mips3.h
字号:
/* * TOPPERS/JSP Kernel * Toyohashi Open Platform for Embedded Real-Time Systems/ * Just Standard Profile Kernel * * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory * Toyohashi Univ. of Technology, JAPAN * Copyright (C) 2000-2003 by Industrial Technology Institute, * Miyagi Prefectural Government, JAPAN * * 惧淡螟侯涪荚は·笆布の (1)×(4) の掘凤か·Free Software Foundation * によって给山されている GNU General Public License の Version 2 に淡 * 揭されている掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェア * を猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· * 网脱と钙ぶ∷することを痰浸で钓满するˉ * (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 * 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 * スコ〖ド面に崔まれていることˉ * (2) 塑ソフトウェアを·ライブラリ妨及など·戮のソフトウェア倡券に蝗 * 脱できる妨で浩芹邵する眷圭には·浩芹邵に燃うドキュメント∈网脱 * 荚マニュアルなど∷に·惧淡の螟侯涪山绩·この网脱掘凤および布淡 * の痰瘦沮惮年を非很することˉ * (3) 塑ソフトウェアを·怠达に寥み哈むなど·戮のソフトウェア倡券に蝗 * 脱できない妨で浩芹邵する眷圭には·肌のいずれかの掘凤を塔たすこ * とˉ * (a) 浩芹邵に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟 * 侯涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ * (b) 浩芹邵の妨轮を·侍に年める数恕によって·TOPPERSプロジェクトに * 鼠桂することˉ * (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 * 巢からも·惧淡螟侯涪荚およびTOPPERSプロジェクトを倘勒することˉ * * 塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚お * よびTOPPERSプロジェクトは·塑ソフトウェアに簇して·その努脱材墙拉も * 崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェアの网脱により木 * 儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·その勒扦を砷わないˉ */#ifndef _MIPS3_H_#define _MIPS3_H_#include <util.h>/* * MIPS3 脱年盗 *//* CPUコアの柒婶レジスタの叹疚 */#define zero $0 /* 撅箕ゼロ */#define at $1 /* アセンブラのテンポラリ */#define v0 $2 /* 簇眶の提り猛 */#define v1 $3#define a0 $4 /* 簇眶の苞眶 */#define a1 $5#define a2 $6#define a3 $7#define t0 $8 /* テンポラリレジスタ tx (x=0-9)¨簇眶钙び叫しで撬蝉 */#define t1 $9#define t2 $10#define t3 $11#define t4 $12#define t5 $13#define t6 $14#define t7 $15#define s0 $16 /* sx (x=0-7) : 簇眶钙び叫しで稍恃なレジスタ */#define s1 $17#define s2 $18#define s3 $19#define s4 $20#define s5 $21#define s6 $22#define s7 $23#define t8 $24 /* テンポラリレジスタ tx (x=0-9)¨簇眶钙び叫しで撬蝉 */#define t9 $25#define k0 $26 /* OS脱に徒腆貉み */#define kt0 $26#define k1 $27#define kt1 $27#define gp $28 /* 络拌恃眶挝拌のベ〖スアドレス */#define sp $29 /* スタックポインタ */#define fp $30 /* フレ〖ムポインタ *//* もしくは */#define s8 $30 /* s8 : 簇眶钙び叫しで稍恃なレジスタ */#define ra $31 /* 簇眶からの提りアドレス *//* CP0の柒婶レジスタの叹疚 */#define Index $0#define Random $1#define EntryLo0 $2#define EntryLo1 $3#define Context $4#define PageMask $5#define Wired $6#define Error $7#define BadVAddr $8#define Count $9#define EntryHi $10#define Compare $11#define Status $12#define Cause $13#define EPC $14#define PRId $15#define Config $16#define LLAddr $17#define WatchLo $18#define WatchHi $19#define XContext $20/* $21-$24 - 徒腆 */#define Performance $25#define ParityErr $26#define CacheErr $27#define TagLo $28#define TagHi $29#define ErrorEPC $30/* $31 - 徒腆 *//* インラインアセンブラ柒で蝗う眷圭の年盗 */#define str_k0 "$26"#define str_Status "$12"/* ステ〖タスレジスタ簇犯 */#define SR_IE BIT0 /* IEビット */#define SR_EXL BIT1 /* EXLビット */#define SR_ERL BIT2 /* ERLビット */#define SR_EXL_IE (SR_EXL | SR_IE) /* EXL,IEビット */#define SR_ERL_EXL (SR_ERL | SR_EXL) /* ERL,EXLビット */#define SR_ERL_EXL_IE (SR_ERL_EXL | SR_IE) /* ERL,EXL,IEビット */#define SR_IM 0xff00 /* IMビットを艰り叫すマスク */#define SR_UX BIT5 /* UXビット */#define SR_SX BIT6 /* SXビット */#define SR_KX BIT7 /* SXビット */#define SR_DE BIT16 /* DEビット */#define SR_SR BIT20 /* SRビット */#define SR_BEV BIT22 /* BEVビット */#define SR_RE BIT25 /* REビット */#define SR_CU0 BIT28 /* CU0ビット */#define SR_CU1 BIT29 /* CU1ビット */#define SR_CU2 BIT30 /* CU2ビット */#define SR_XX BIT31 /* XXビット *//* 付傍レジスタ簇犯 */#define Cause_IP0 BIT8 /* IP0ビット */#define Cause_IP1 BIT9 /* IP1ビット */#define Cause_IP2 BIT10 /* IP2ビット */#define Cause_IP3 BIT11 /* IP3ビット */#define Cause_IP4 BIT12 /* IP4ビット */#define Cause_IP5 BIT13 /* IP5ビット */#define Cause_IP6 BIT14 /* IP6ビット */#define Cause_IP7 BIT15 /* IP7ビット *//* 嘲婶充り哈みに滦するIPビットの侍叹 */#define Cause_Int0 Cause_IP2 /* Int0妥滇ビット */#define Cause_Int1 Cause_IP3 /* Int1妥滇ビット */#define Cause_Int2 Cause_IP4 /* Int2妥滇ビット */#define Cause_Int3 Cause_IP5 /* Int3妥滇ビット */#define Cause_Int4 Cause_IP6 /* Int4妥滇ビット *//* 付傍レジスタから付傍コ〖ドを艰り叫すマスク */#define ExcCode_mask 0x7c/* 毋嘲コ〖ド */#define Int 0 /* 充り哈み毋嘲 */#define Mod 1 /* TLB恃构毋嘲 */#define TLBL 2 /* TLB稍办米毋嘲 (ロ〖ドまたは炭吾フェッチ) */#define TLBS 3 /* TLB稍办米毋嘲 (ストア) */#define AdEL 4 /* アドレスエラ〖毋嘲 (ロ〖ドまたは炭吾フェッチ) */#define AdES 5 /* アドレスエラ〖毋嘲 (ストア) */#define IBE 6 /* バスエラ〖毋嘲 (炭吾フェッチ) */#define DBE 7 /* バスエラ〖毋嘲 (デ〖タのロ〖ドまたはストア) */#define Sys 8 /* システムコ〖ル毋嘲 */#define Bp 9 /* ブレイクポイント毋嘲 */#define RI 10 /* 徒腆炭吾毋嘲 */#define CpU 11 /* コプロセッサ蝗脱稍材毋嘲 */#define Ov 12 /* 遍换オ〖バ〖フロ〖毋嘲 */#define Tr 13 /* トラップ毋嘲 *//* 14 - 徒腆 */#define FPE 15 /* 赦瓢井眶爬毋嘲 *//* 16-22 - 徒腆 */#define WATCH 23 /* ウォッチ毋嘲 *//* 24-31 - 徒腆 *//* 充哈み妥傍戎规 */#define INTNO_IP0 0#define INTNO_IP1 1#define INTNO_IP2 2#define INTNO_IP3 3#define INTNO_IP4 4#define INTNO_IP5 5#define INTNO_IP6 6#define INTNO_IP7 7/* コアの充哈みの塑眶∈ソフトウェア充哈みを崔む∷ */#define TMAX_CORE_INTNO 8/* * MIPS3コアのステ〖タスレジスタに肋年材墙な呵光充哈み钓材ビットパタ〖ン */#define MAX_IPM 0xff/* * MIPS3コアに肋年する充哈みマスクのチェック */#define CHECK_CORE_IPM(ipm) CHECK_PAR(0 <= (ipm) && (ipm) <= MAX_IPM)/* * CPU毋嘲の硷梧眶 */#define TMAX_CORE_EXCNO 32u/* * ログ叫蜗箕のスタック菇陇の年盗 * cpu_config.hにおけるcpu_experr簇眶、cpu_support.Sを徊救のこと。 */#ifndef _MACRO_ONLYtypedef struct exc_stack { /* レジスタ凡の年盗 */ UW sp; UW at; UW v0; UW v1; UW a0; UW a1; UW a2; UW a3; UW t0; UW t1; UW t2; UW t3; UW t4; UW t5; UW t6; UW t7; UW t8; UW t9; UW gp; UW fp; UW ra; UW CP0_Status; UW CP0_EPC; UW hi; UW lo;} EXCSTACK;#endif /* _MACRO_ONLY */#endif /* _MIPS3_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -