📄 vr4131.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 _VR4131_H_#define _VR4131_H_/* CP0ハザ〖ドのための箕粗苍ぎ NOP_FOR_CP0_HAZARD *//* VR4131ではmtc0炭吾の木稿から充哈み敦贿になっているのでnop炭吾を赁掐しなくても 络炬勺 */#define NOP_FOR_CP0_HAZARD/* Configレジスタ */#define BP BIT16 /* 尸呆徒卢の肋年 *//* TLB のエントリの呵络猛 */#define TMAX_TLB 31/* TLBマスク猛 */#define TLB_VPN2 0x800/* キャッシュ炭吾 */#define Index_Invalidate_I 0x0+0x0#define Index_Store_Tag_I 0x8+0x0#define Index_Store_Tag_D 0x8+0x1/* キャッシュのラインサイズ(バイト帽疤) */#define D_CACHE_LINE_SIZE 0x10 /* 16バイト */#define I_CACHE_LINE_SIZE 0x10 /* 16バイト *//*============================================================================*//* * GDB STUB / PARTNER-Jシステムコ〖ル / 木儡钙叫し コンソ〖ル钙叫しル〖チン * (GDB_STUB, PARTNER-J はテストしていません。) *//* * gdb stub によるコンソ〖ル叫蜗 *//* a0($4) = 0xfe00, a1($5) = 叫蜗したいキャラクタ を洛掐して、 SYSCALL 毋嘲を券栏させる。 */#ifndef _MACRO_ONLY/* この簇眶を钙び叫す箕には、ステ〖タスレジスタのEXLビット = 0 で钙び叫すこと。 なお、附哼、カ〖ネルでは、バナ〖山绩箕、シリアル叫蜗箕に钙叫を乖っている。*/Inline void stub_putc(int c) { Asm(" move $5, %0; \ li $4, 0xfe00; \ syscall; \ nop" :: "r"(c) : "$4","$5" );}#endif /* _MACRO_ONLY */#ifdef GDB_STUB#define vr4131_putc(c) stub_putc(c)#else /* GDB_STUB */#define vr4131_putc(c) vr4131_dsiu_write_por( (VP) DSIUTH, (UB) c )#endif /* GDB_STUB *//* * PARTNER-J のシステムコ〖ルによるコンソ〖ル叫蜗∈テストしていません。∷ */#ifndef _MACRO_ONLYInline void partner_putc(int c) { Asm(" move $2, %0; \ li $1, 0xfe00; \ jal SYSCALL; \ nop" :: "r"(c) : "$1","$2" );}#endif /* _MACRO_ONLY */#ifdef PARTNER_J /* PARTNER_J の眷圭 *#define vr4131_putc(c) partner_putc(c)#else /* GDB_STUB */#define vr4131_putc(c) vr4131_dsiu_write_por( (VP) DSIUTH, (UB) c )#endif /* GDB_STUB */#ifndef _MACRO_ONLYInline voidvr4131_exit() { /* GDB_STUB 蝗脱箕には、STUBの片に若ぶ借妄が涩妥かも。 */}#endif /* _MACRO_ONLY *//*============================================================================*//* 笆布の年盗は、称ユニットごとに、vr4131_xxx.hとしてまとめることも涩妥かも。 *//* * クロックマスクユニット(CMU)簇犯の年盗 */#define CMUCLKMSK (BASE_ADDR + 0x0f000060)#define MSKSIU BIT1 /* SIU, DSIUへのTClock丁惦の扩告 */#define MSKSSIU BIT8 /* SIUへの18.432MHzクロック丁惦の扩告 */#define MSKDSIU BIT11 /* DSIUへの18.432MHzクロック丁惦の扩告 *//* * パワ〖マネ〖ジメントユニット(PMU)簇犯の年盗 */#define PMUINTREG (BASE_ADDR + 0x0f0000c0) /* PMU 充哈み】ステ〖タスレジスタ */#define PMUCNTREG (BASE_ADDR + 0x0f0000c2) /* PMU コントロ〖ルレジスタ */#define PMUTCLKDIVREG (BASE_ADDR + 0x0f0000cc)/* for PMUINTREG */#define TIMOUTRST BIT5 /* HALTimerリセット浮叫 *//* for PMUCNTREG */#define HALTIMERRST BIT2 /* HALTimerリセット*//* for PMUTCLKDIVREG */#define VTDIV_3 BIT1 | BIT0/* * バスコントロ〖ルユニット(BCU)簇犯の年盗 */#define BCUCNTREG1 (BASE_ADDR + 0x0f000000)#define ROMSIZEREG (BASE_ADDR + 0x0f000004)#define ROMSPEEDREG (BASE_ADDR + 0x0f000006)#define IO0SPEEDREG (BASE_ADDR + 0x0f000008)#define IO1SPEEDREG (BASE_ADDR + 0x0f00000a)#define BCUCNTREG3 (BASE_ADDR + 0x0f000016)/* for ROMSIZEREG */#define SIZE3_4 BIT12#define SIZE2_4 BIT8#define SIZE1_4 BIT4#define SIZE0_4 BIT0/* for ROMSPEEDREG */#define ROM4_WAIT_5VTClock BIT13 | BIT12#define ROM2_WAIT_8VTClock BIT2 | BIT0/* for IO0SPEEDREG */#define IO0_1_WAIT_4 BIT1 | BIT0/* for IO1SPEEDREG */#define IO1_3_WAIT_11 BIT11/* for BCUCNTREG3 */#define EXT_ROMCS_3ROM_2ROM BIT13 | BIT12#define IO32 BIT7#define LCDSEL1_BUFFER BIT1#define LCDSEL0_BUFFER BIT0/* * SDRAMコントロ〖ルユニット(SDRAMU)簇犯の年盗 */#define SDRAMMODEREG (BASE_ADDR + 0x0f000400)#define SDRAMCNTREG (BASE_ADDR + 0x0f000402)#define BCURFCNTREG (BASE_ADDR + 0x0f000404)#define BCURFCOUNTREG (BASE_ADDR + 0x0f000406)#define RAMSIZEREG (BASE_ADDR + 0x0f000408)/* for SDRAMMODEREG */#define SCLK BIT15#define LTMODE_2 BIT5/* for SDRAMCNTREG */#define TRC_3VTClock BIT9 | BIT8#define TDAL_2VTClock BIT5#define TRCD_2VTClock BIT1/* for RAMSIZEREG */#define SIZE3_64 BIT14 | BIT12#define SIZE2_64 BIT10 | BIT8#define SIZE1_64 BIT6 | BIT4#define SIZE0_64 BIT2 | BIT0/* * シリアルインタフェ〖スユニット(SIU)簇犯の年盗 */#define SIURESET (BASE_ADDR + 0x0f000809)/* for RESET */#define DSIURESET BIT1 /* DSIUをリセットするフラグ */#endif /* _VR4131_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -