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

📄 dve68k.h

📁 嵌入式系统开发 TOPPERS and JSP Kernel Release 1.3 TOPPERS = Toyohashi Open Platform for Embedded Real-Tim
💻 H
字号:
/* *  TOPPERS/JSP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Just Standard Profile Kernel *  *  Copyright (C) 2000 by Embedded and Real-Time Systems Laboratory *                              Toyohashi Univ. of Technology, JAPAN *  *  惧淡螟侯涪荚は·Free Software Foundation によって给山されている  *  GNU General Public License の Version 2 に淡揭されている掘凤か·笆 *  布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ *  アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ *      ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱 *      に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩· *      この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥 *      み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ *    (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯 *        涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する *        ことˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚を倘勒することˉ *  *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は· *  塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ *  ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい *  かなる禄巢に簇しても·その勒扦を砷わないˉ *  *  @(#) $Id: dve68k.h,v 1.3 2002/04/10 11:08:33 hiro Exp $ *//* *	DVE68K/40 CPUボ〖ドのハ〖ドウェア获富の年盗 */#ifndef _DVE68K_H_#define _DVE68K_H_typedef	unsigned char	byte;typedef volatile byte	IOREG;		/* I/Oレジスタの房 */typedef volatile int	LIOREG;/* *  你庐の I/Oデバイスを拎侯するための簇眶 */Inline voidcpu_wait_io(void){	Asm("nop");	Asm("nop");	Asm("nop");	Asm("nop");}Inline byteio_read(IOREG *addr){	byte	val;	val = *addr;	cpu_wait_io();	return(val);}Inline voidio_write(IOREG *addr, byte val){	*addr = val;	cpu_wait_io();}/* *  CPUボ〖ド惧のレジスタ */#define BOARD_REG0	((LIOREG *) 0xfff48000)#define BOARD_REG1	((LIOREG *) 0xfff48004)#define BOARD_REG2	((LIOREG *) 0xfff48008)/* *  DGA-001 のレジスタ */#define DGA_CSR0_1	((IOREG *) 0xfff44001)#define DGA_CSR1	((LIOREG *) 0xfff44004)#define DGA_CSR3	((LIOREG *) 0xfff4400c)#define DGA_CSR4	((LIOREG *) 0xfff44010)#define DGA_CSR5	((LIOREG *) 0xfff44014)#define DGA_CSR12	((LIOREG *) 0xfff44030)#define DGA_CSR13	((LIOREG *) 0xfff44034)#define	DGA_CSR19	((LIOREG *) 0xfff4404c)#define	DGA_CSR20	((LIOREG *) 0xfff44050)#define	DGA_CSR21	((LIOREG *) 0xfff44054)#define DGA_CSR23	((LIOREG *) 0xfff4405c)#define DGA_CSR24	((LIOREG *) 0xfff44060)#define	DGA_CSR25	((LIOREG *) 0xfff44064)#define	DGA_IFR0	((LIOREG *) 0xfff44070)#define DGA_IFR3	((LIOREG *) 0xfff4407c)/* *  DGA の充哈みレベル肋年のための年盗 */#define	IRQ_NMI		(0x7)		/* ノンマスカブル充哈み */#define	IRQ_LEVEL6	(0x6)		/* 充哈みレベル6 */#define	IRQ_LEVEL5	(0x5)		/* 充哈みレベル5 */#define	IRQ_LEVEL4	(0x4)		/* 充哈みレベル4 */#define	IRQ_LEVEL3	(0x3)		/* 充哈みレベル3 */#define	IRQ_LEVEL2	(0x2)		/* 充哈みレベル2 */#define	IRQ_LEVEL1	(0x1)		/* 充哈みレベル1 */#define ABTIL_BIT	(24)		/* アボ〖ト充哈み */#define SQRIL_BIT	(8)		/* SRQ 充哈み */#define TT0IL_BIT	(16)		/* タイマ0 充哈み */#define GP0IL_BIT	(0)		/* シリアルI/O 充哈み */Inline voiddga_set_ilv(LIOREG *addr, int shift, int val){	*addr = (*addr & ~(0x07 << shift)) | (val << shift);} /* *  充哈みベクトルの年盗 */#define	G0I_VEC		(0x40)		/* グル〖プ0 充哈みベクトル */#define	G1I_VEC		(0x48)		/* グル〖プ1 充哈みベクトル */#define	SWI_VEC		(0X50)		/* ソフトウェア充哈みベクトル */#define	SPRI_VEC	(0x40)		/* スプリアス充哈みベクトル */#define ABT_VEC		(G0I_VEC + 6)	/* アボ〖ト充哈みベクトル */#define SQR_VEC		(G0I_VEC + 2)	/* SQR 充哈みベクトル */#define	TT0_VEC		(G1I_VEC + 4)	/* タイマ0 充哈みベクトル */#define	GP0_VEC		(G1I_VEC + 0)	/* シリアルI/O 充哈みベクトル *//* *  充哈み扩告ビットの年盗 */#define ABT_BIT		(0x40000000)	/* アボ〖ト充哈みビット */#define SQR_BIT		(0x04000000)	/* SQR 充哈みビット */#define	TT0_BIT		(0x00100000)	/* タイマ0 充哈みビット */#define	GP0_BIT		(0x00010000)	/* シリアルI/O 充哈みビット *//* *  MPSC (μPD72001-11) のレジスタ */#define	MPSC_DATAA	((IOREG *) 0xfff45003)#define	MPSC_CNTRLA	((IOREG *) 0xfff45007)#define	MPSC_DATAB	((IOREG *) 0xfff4500b)#define	MPSC_CNTRLB	((IOREG *) 0xfff4500f)#define	MPSC_CR0	0x00		/* MPSC コントロ〖ルレジスタ */#define	MPSC_CR1	0x01#define	MPSC_CR2	0x02#define	MPSC_CR3	0x03#define	MPSC_CR4	0x04#define	MPSC_CR5	0x05#define	MPSC_CR10	0x0a#define	MPSC_CR12	0x0c#define	MPSC_CR14	0x0e#define	MPSC_CR15	0x0f#define	MPSC_SR0	0x00		/* MPSC ステ〖タスレジスタ */Inline bytempsc_read(IOREG *addr, int reg){	io_write(addr, reg);	return(io_read(addr));}Inline voidmpsc_write(IOREG *addr, int reg, int val){	io_write(addr, reg);	io_write(addr, val);}Inline voidmpsc_write_brg(IOREG *addr, int reg, int val, int brg2, int brg1){	io_write(addr, reg);	io_write(addr, val);	io_write(addr, brg2);	io_write(addr, brg1);	(void) io_read(addr);		/* ダミ〖リ〖ド */}/* *  モニタ钙び叫しル〖チン */Inline voiddve68k_exit(void){	Asm("clr.l %%d0; trap #3"	  : /* no output */	  : /* no input */	  : "d0", "d1", "d2", "d6", "d7");}Inline intdve68k_getc(void){	int	c;	Asm("moveq.l #3, %%d0; trap #3; move.l %%d0, %0"	  : "=g"(c)	  : /* no input */	  : "d0", "d1", "d2", "d6", "d7");	  return(c);}Inline intdve68k_putc(int c){	Asm("moveq.l #5, %%d0; move.l %0, %%d1; trap #3"	  : /* no output */	  : "g"(c)	  : "d0", "d1", "d2", "d6", "d7");	  return(c);}#endif /* _DVE68K_H_ */

⌨️ 快捷键说明

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