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

📄 vea_oea_emb.h

📁 toppers操作系统源码
💻 H
字号:
/* *  TOPPERS/JSP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Just Standard Profile Kernel *  *  Copyright (C) 2000-2004 by Embedded and Real-Time Systems Laboratory *                              Toyohashi Univ. of Technology, JAPAN *  Copyright (C) 2001-2004 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プロジェクトは·塑ソフトウェアに簇して·その努脱材墙拉も *  崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェアの网脱により木 *  儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·その勒扦を砷わないˉ *  *  @(#) $Id: vea_oea_emb.h,v 1.2 2004/10/07 17:10:56 honda Exp $ *//*   *   PowerPCア〖キテクチャVEA,OEA巴赂の年盗 *    The IBM PowerPC Embedded Environmentの眷圭 *     IBM废PowerPC40xファミリこちらに澈碰する。 *     *    PowerPCア〖キテクチャの年盗は笆布の3つのレベルから喇る *    ˇUSIA:User Instruction Set Architecture *    ˇVEA: Virtual Environment Architecture *    ˇOEA: Operating Environment Architecture *     *    USIAについては链怠硷鼎奶であるが、VEAとOEAについては *    オリジナルのPowerPCア〖キテクチャとThe IBM PowerPC  *    Embedded Environmentそれぞれ侍に年盗されているため、 *    VEAとOEAの年盗はファイルを尸けて、それをインクル〖ド *    している。 */   #ifndef _VEA_OEA_EMB_H_#define _VEA_OEA_EMB_H_/*   *  レジスタ戎规の年盗 */   /* *  Special Purpose Registerのレジスタ戎规 *    (*)磅¨傅のPowerPCア〖キテクチャでは年盗されていないレジスタ *//* *  毋嘲借妄に簇するレジスタ */#define SRR0	  26	/* Save/Restore Register0  */#define SRR1	  27	/* Save/Restore Register1  */#define SRR2	 990	/* Save/Restore Register2(*)  */#define SRR3	 991	/* Save/Restore Register3(*)  */#define ESR	 980	/* Exception Syndrome Register(*)  */#define DEAR	 981	/* Data Exception Address Register(*)  */#define EVPR	 982	/* Exception Vector Prefix Register(*)  */#define SPRG0	 272	/* SPR General 0  */#define SPRG1	 273	/* SPR General 1  */#define SPRG2	 274	/* SPR General 2  */#define SPRG3	 275	/* SPR General 3  *//* *  その戮のレジスタ */#define DAC	1014	/* Data Address Compare(*) */#define DBCR	1010	/* Debug Control Register(*) */#define DBSR	1008	/* Debug Status Register(*) */#define DCCR	1018	/* Data Cache Cacheability Register(*) */#define DCWR	 954	/* Data Cache Write-thru Register(*) */#define IAC	1012	/* Instruction Address Compare(*) */#define ICCR	1019	/* Instruction Cache Cacheability Register(*) */#define PID	 945	/* Process ID Register  */#define PIT	 987	/* Programmable Interval Timer(*) */#define PVR	 287	/* Processor Version Register  */#define SGR	 953	/* Storage Guarded Register(*) */#define SLER	 955	/* Storage Little-Endian Register(*) */#define SMR	 952	/* Storage Memory-Coherent Register(*) *//*  VEA  */#define TBL	 268	/* Time Base Lower(for read)  */#define TBU	 269	/* Time Base Upper(for read)  *//*  OEA  */#define TBLw	 284	/* Time Base Lower(for write)  */#define TBUw	 285	/* Time Base Upper(for write)  */#define TCR	 986	/* Timer Control Registe(*) */#define TSR	 984	/* Timer Status Register(*) */#define ZPR	 944	/* Zone Protection Register(*) *//* *  MSRのビット芹误 *//*  0-10:Reserved  */#define MSR_APE	BIT11_32	/* Auxiliary Processor Exception Enable */#define MSR_APA	BIT12_32	/* Auxiliary Processor Available */#define MSR_WE	BIT13_32	/* Wait State Enable */#define MSR_CE	BIT14_32	/* Critical Enable */#define MSR_ILE	BIT15_32	/* Interrupt Little Endian */#define MSR_EE	BIT16_32	/* External Enable */#define MSR_PR	BIT17_32	/* Problem State */#define MSR_FP	BIT18_32	/* Floating Point Available */#define MSR_ME	BIT19_32	/* Machine Check Enable */#define MSR_FE0	BIT20_32	/* Floating Point Exception Mode 0 *//*  21:Reserved  */#define MSR_DE	BIT22_32	/* Debug Interrupts Enable */#define MSR_FE1	BIT23_32	/* Floating Point Exception Mode 1 *//*  23-25:Reserved  */#define MSR_IR	BIT26_32	/* Instruction Relocate */#define MSR_DR	BIT27_32	/* Data Relocate *//*  28-30:Reserved  */#define MSR_LE	BIT31_32	/* Little Endian *//* *  ESR(Exception Syndrome Register)のビット芹误 */#define ESR_PIL	BIT4_32	 /* Program - Illegal Instruction exception */#define ESR_PPR	BIT5_32	 /* Program - Privileged Instruction exception */#define ESR_PTR	BIT6_32	 /* Program - Trap exception */#define ESR_PFE	BIT7_32	 /* Program - Floating Point Enabled exception */#define ESR_DST	BIT8_32	 /* Data Storage / Data TLB Miss - Store Operations */#define ESR_DIZ	BIT9_32	 /* Data / Instruction Storage - Zone exception */	/* Program - Auxiliary Processor Unavailable exception */#define ESR_PAU	BIT12_32	/* Program - Floating Point Enabled but Unimplemented exception */#define ESR_PFEU BIT13_32	/* Program - Auxiliary Processor Enabled exception */#define ESR_PAE	BIT14_32/*   *   CPU毋嘲妥傍の年盗 *    戎规が稍息鲁なのでCPU毋嘲导击ベクタテ〖ブルに办婶痰绿が掐るが、 *    PowerPCア〖キテクチャの年盗に圭わせる数を庭黎した。 */   #define EXC_NO_CRITICAL_INPUT           	0x1#define EXC_NO_MACHINE_CHECK            	0x2#define EXC_NO_DATA_STORAGE             	0x3#define EXC_NO_INSTRUCTION_STORAGE      	0x4#define EXC_NO_EXTERNAL_INTERRUPT       	0x5   /*  嘲婶充哈み  */#define EXC_NO_ALIGNMENT                	0x6			/*  プログラム毋嘲∈妥傍7硷∷*/#define EXC_NO_PROGRAM                  	0x7#define EXC_NO_FLOATING_POINT_UNAVAILABLE 	0x8/*  ∈APUを积つPowerPC405、440のみ∷  *//*  0x900¨Reserved  *//*  0xa00¨Reserved  *//*  0xb00¨Reserved  */#define EXC_NO_SYSTEM_CALL              	0xc	/*  システムコ〖ル  *//*  0xd00¨Reserved  *//*  0xe00¨Reserved  *//*  0xe10-0xff0¨Reserved  *//* 0x1000¨Programmable Interval Timer  *//* 0x1010¨Fixed Interval Timer  *//* 0x1020¨Watchdog Timer  *//* 0x1030-0x10f0¨Reserved  *//* 0x1100¨Data TLB miss  *//* 0x1110-0x11f0¨Reserved  *//* 0x1200¨Instruction TLB miss  *//* 0x1210-0x1ff0¨Reserved  *//* 0x2000¨Debug∈妥傍7硷∷   *//* 0x2010-0x2ff0¨Implementation Specific  *//*   *   毋嘲の硷侍眶 *    嘲婶充哈みも1つと眶える *     0戎は踏蝗脱 *      ˇ毋嘲ベクタのオフセットと滦炳 *      ˇ嘲婶充り哈みも1つと眶える *      ˇ芹误离咐のため、+1している */   #define TMAX_EXCNO       ( 0x20 + 1 + NUM_IMPLEMENT_EXCEPTION )/* *  DCRへのアクセス *     DCR:Device Control Register *     笆布のル〖チンはデバイスドライバ羹けに侯喇している。 *     DCRの恶挛弄な叹疚や怠墙はデバイス巴赂である。 *      *     洒雇 *      mfdcr,mtdcr炭吾はDCRの戎规を绕脱レジスタではなく、 *      篓猛で回年するため、インライン簇眶にできない。 *//* *  DCRの附哼猛の粕叫し *     reg:レジスタ戎规∈腊眶年眶∷ *     val:粕み叫した猛を呈羌する恃眶∈UW房∷ */#define _sil_rew_dcr(reg, val)	Asm("mfdcr %0," #reg : "=r"(val))#define sil_rew_dcr(reg, val)	_sil_rew_dcr(reg, val)/* *  DCRの附哼猛の恃构 *     reg:レジスタ戎规∈腊眶年眶∷ *     val:肋年する猛が呈羌された恃眶∈UW房∷ */#define _sil_wrw_dcr(reg, val)	Asm("mtdcr "#reg",%0" : : "r"(val) )#define sil_wrw_dcr(reg, val)	_sil_wrw_dcr(reg, val)#endif /* _VEA_OEA_EMB_H_ *//*  end of file  */

⌨️ 快捷键说明

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