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