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

📄 vr4131_dsiu.h

📁 uItron 4.0 Toppers实现源码1.4版
💻 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_DSIU_H_#define _VR4131_DSIU_H_#include <t_config.h>/* *  VR4131柒垄デバッグシリアルインタフェ〖スユニット(DSIU)簇息の年盗 *  (词白NS16550) *//* DSIUレジスタのアドレス */#define DSIURB		(BASE_ADDR + 0x0f000820)	/* 减慨バッファレジスタ(リ〖ド箕) */#define DSIUTH		(BASE_ADDR + 0x0f000820)	/* 流慨瘦积レジスタ(ライト箕) */#define DSIUDLL		(BASE_ADDR + 0x0f000820)	/* 尸件孺布疤レジスタ */#define DSIUIE		(BASE_ADDR + 0x0f000821)	/* 充哈み钓材レジスタ */#define DSIUDLM		(BASE_ADDR + 0x0f000821)	/* 尸件孺惧疤レジスタ */#define DSIUIID		(BASE_ADDR + 0x0f000822)	/* 充哈み山绩レジスタ(リ〖ド箕) */#define DSIUFC		(BASE_ADDR + 0x0f000822)	/* FIFO 扩告レジスタ(ライト箕) */#define DSIULC		(BASE_ADDR + 0x0f000823)	/* ライン扩告レジスタ */#define DSIUMC		(BASE_ADDR + 0x0f000824)	/* モデム扩告レジスタ */#define DSIULS		(BASE_ADDR + 0x0f000825)	/* ライン觉轮レジスタ */#define DSIUMS		(BASE_ADDR + 0x0f000826)	/* モデム觉轮レジスタ */#define DSIUSC		(BASE_ADDR + 0x0f000827)	/* スクラッチレジスタ *//* for DSIULC */#define	WORD_LENGTH_8		BIT1 | BIT0#define	STOP_BITS_1		0		/* BIT2 */#define	PARITY_NON		0		/* BIT3, 4 *//* BIT5,6 臼维 */#define	DIVISOR_LATCH_ACC	BIT7/* for DSIUIE */#define	DIS_INT			0#define	RECEIVE_DATA_AVAILABLE	BIT0#define	TRANS_REG_EMPTY		BIT1#define RECEIVE_LINE_STATUS	BIT2#define MODEM_STATUS		BIT3/* for DSIUMC */#define	DTR			BIT0#define	RTS			BIT1/* for DSIUFC */#define	FIFO_ENABLE		BIT0#define	RECEIVE_FIFO_RESET	BIT1#define	TRANS_FIFO_RESET	BIT2#define RECEIVE_TRIG_1_BYTE	0	/* BIT6, 7 */#define RECEIVE_TRIG_4_BYTE	BIT6#define	RECEIVE_TRIG_8_BYTE	BIT7#define	RECEIVE_TRIG_14_BYTE	BIT6 | BIT7/* for DSIUIID */#define	INT_MASK		0x0e#define	INT_RECEIVE_DATA	BIT2#define INT_CHAR_TIME_OUT	BIT3 | BIT2#define	INT_TRANS_EMPTY		BIT1/* ボ〖レ〖ト年盗簇犯 */#define	DIVISOR			XIN_CLOCK / (16 * DEVIDE_RATIO)/* *  シリアルI/Oポ〖ト介袋步ブロック */typedef struct sio_port_control_block	SIOPCB;/* *  コ〖ルバックル〖チンの急侍戎规 */#define SIO_ERDY_SND	1u		/* 流慨材墙コ〖ルバック */#define SIO_ERDY_RCV	2u		/* 减慨奶梦コ〖ルバック *//* *  SIOドライバの介袋步ル〖チン */extern void	vr4131_dsiu_initialize(void);/* *  オ〖プンしているポ〖トがあるか々 */extern BOOL	vr4131_dsiu_openflag(void);/* *  シリアルI/Oポ〖トのオ〖プン */extern SIOPCB	*vr4131_dsiu_opn_por(ID siopid, VP_INT exinf);/* *  シリアルI/Oポ〖トのクロ〖ズ */extern void	vr4131_dsiu_cls_por(SIOPCB *siopcb);/* *  シリアルI/Oポ〖トへの矢机流慨 */extern BOOL	vr4131_dsiu_snd_chr(SIOPCB *siopcb, char c);/* *  シリアルI/Oポ〖トからの矢机减慨 */extern INT	vr4131_dsiu_rcv_chr(SIOPCB *siopcb);/* *  シリアルI/Oポ〖トからのコ〖ルバックの钓材 */extern void	vr4131_dsiu_ena_cbr(SIOPCB *siopcb, UINT cbrtn);/* *  シリアルI/Oポ〖トからのコ〖ルバックの敦贿 */extern void	vr4131_dsiu_dis_cbr(SIOPCB *siopcb, UINT cbrtn);/* *  SIOの充哈みサ〖ビスル〖チン */extern void	vr4131_dsiu_dsiu_isr(void);/* *  シリアルI/Oポ〖トからの流慨材墙コ〖ルバック */extern void	vr4131_dsiu_ierdy_snd(VP_INT exinf);/* *  シリアルI/Oポ〖トからの减慨奶梦コ〖ルバック */extern void	vr4131_dsiu_ierdy_rcv(VP_INT exinf);/*============================================================================*//* 笆布は、塑碰はvr4131_dsiu_sil.hというファイルに掐るべきだと蛔う。 *//* *  デバイスレジスタのアクセス粗持箕粗∈nsec帽疤∷ */#define	VR4131_DSIU_DELAY	100u		/* 猛に含凋はない *//* *  デバイスレジスタのアクセス粗持箕粗∈ポ〖リング叫蜗羹け〃nsec帽疤∷ * *  ˇ脱庞毋¨弹瓢箕のバナ〖叫蜗 *  ˇ猛は、kseg1(キャッシュ铜跟箕)での瓢侯箕に、矢机を皖とさない镍刨に肋年 *  ˇkseg0(キャッシュ痰跟箕)での瓢侯箕は、 *      VR4131_DSIU_DELAY_POR = 1000000u 镍刨に肋年すると、ちょうど紊い。 */#define	VR4131_DSIU_DELAY_POR	100000000u/* *  デバイスレジスタへのアクセス簇眶 */Inline UB vr4131_dsiu_read_reg( VP reg ) {	UB	val;	/* ここで、regの认跋チェックを掐れらればうれしいな。 */	val = sil_reb_mem( reg );	sil_dly_nse( VR4131_DSIU_DELAY );	return( val );}Inline void vr4131_dsiu_write_reg( VP reg, UB val) {	/* ここで、regの认跋チェックを掐れらればうれしいな。 */	sil_wrb_mem( reg, (VB) (val & 0x000000ff) );	sil_dly_nse( VR4131_DSIU_DELAY );}/* ポ〖リング叫蜗 sys_putc(c) 羹け */Inline void vr4131_dsiu_write_por( VP reg, UB val) {	/* ここで、regの认跋チェックを掐れらればうれしいな。 */	sil_wrb_mem( reg, (VB) (val & 0x000000ff) );	sil_dly_nse( VR4131_DSIU_DELAY_POR );}/*============================================================================*//* sys_config.c羹け(ポ〖リング叫蜗箕脱の呵你嘎の)シリアルコントロ〖ラの介袋步 */#define scc_init							\	vr4131_dsiu_write_reg( (VP) DSIUIE,  DIS_INT );			\	vr4131_dsiu_write_reg( (VP) DSIULC,  WORD_LENGTH_8 | STOP_BITS_1 | PARITY_NON | DIVISOR_LATCH_ACC ); \	vr4131_dsiu_write_reg( (VP) DSIUDLL, LO8(DIVISOR) );		\	vr4131_dsiu_write_reg( (VP) DSIUDLM, HI8(DIVISOR) );		\	vr4131_dsiu_write_reg( (VP) DSIULC,  WORD_LENGTH_8 | STOP_BITS_1 | PARITY_NON ); \	vr4131_dsiu_write_reg( (VP) DSIUIE,  RECEIVE_DATA_AVAILABLE)#endif /* _VR4131_DSIU_H_ */

⌨️ 快捷键说明

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