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

📄 sys_config.h

📁 符合日本著名的ITRON规范的开源操作系统。 TOPPERS/JSP内核就是TOPPERS工程按μITRON4.0研发的第一个 软件
💻 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-2005 by Industrial Technology Institute, *                              Miyagi Prefectural Government, JAPAN *  Copyright (C) 2001-2004 by Dep. of Computer Science and Engineering *                   Tomakomai National College of Technology, JAPAN *  Copyright (C) 2001-2004 by Kunihiko Ohnaka *  *  惧淡螟侯涪荚は·笆布の (1)×(4) の掘凤か·Free Software Foundation  *  によって给山されている GNU General Public License の Version 2 に淡 *  揭されている掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェア *  を猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを·ライブラリ妨及など·戮のソフトウェア倡券に蝗 *      脱できる妨で浩芹邵する眷圭には·浩芹邵に燃うドキュメント∈网脱 *      荚マニュアルなど∷に·惧淡の螟侯涪山绩·この网脱掘凤および布淡 *      の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを·怠达に寥み哈むなど·戮のソフトウェア倡券に蝗 *      脱できない妨で浩芹邵する眷圭には·肌のいずれかの掘凤を塔たすこ *      とˉ *    (a) 浩芹邵に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟 *        侯涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 浩芹邵の妨轮を·侍に年める数恕によって·TOPPERSプロジェクトに *        鼠桂することˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚およびTOPPERSプロジェクトを倘勒することˉ * *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚お *  よびTOPPERSプロジェクトは·塑ソフトウェアに簇して·その努脱材墙拉も *  崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェアの网脱により木 *  儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·その勒扦を砷わないˉ *  *  @(#) $Id: sys_config.h,v 1.15 2005/11/24 12:03:40 honda Exp $ *//* * タ〖ゲットシステム巴赂モジュ〖ル * *  このインクル〖ドファイルは·t_config.h のみからインクル〖ドされるˉ *  戮のファイルから木儡インクル〖ドしてはならないˉ */#ifndef _SYS_CONFIG_H_#define _SYS_CONFIG_H_/* *  カ〖ネルの柒婶急侍叹のリネ〖ム */#include <sys_rename.h>/* *  タ〖ゲットシステムのハ〖ドウェア获富の年盗 */#include <h8.h>#include <h8_3069f.h>/* *  弹瓢メッセ〖ジのタ〖ゲット叹 */#define	TARGET_NAME	"AKI-H8/3069F"/* *  chg_ipmをサポ〖トするかどうかの年盗 */#define SUPPORT_CHG_IPM/* *  vxget_tim をサポ〖トするかどうかの年盗 */#define	SUPPORT_VXGET_TIM/* *   スタック挝拌の年盗 */			/* 润タスクコンテキスト脱スタックの介袋猛 */#ifdef REDBOOT#define STACKTOP    	(0x50fff0)#else	/*  REDBOOT  */#define STACKTOP    	(H8IN_RAM_BASE + H8IN_RAM_SIZE)#endif	/*  #ifdef REDBOOT  */#define str_STACKTOP	_TO_STRING(STACKTOP)/* RedbootがRAM惧に积つベクタテ〖ブルの黎片アドレス */#define VECTOR_TABLE_ADDR 	0x00fffd20#ifndef _MACRO_ONLY/* *  タ〖ゲットシステム巴赂の介袋步 */extern void	sys_initialize(void);/* *  タ〖ゲットシステムの姜位 * *  システムを姜位する箕に蝗うˉROMモニタ钙叫しで悸附することを鳞年し *  ているˉ */extern void	sys_exit(void);/* *  タ〖ゲットシステムの矢机叫蜗 * *  システムの你レベルの矢机叫蜗ル〖チンˉROMモニタ钙叫しで悸附するこ *  とを鳞年しているˉ */extern void cpu_putc(char c);Inline voidsys_putc(char c){	cpu_putc(c);};#endif /* _MACRO_ONLY *//* *  (1) シリアルポ〖トの肋年 *  (2) タイマ〖の肋年 *  (3) 嘲婶アドレス鄂粗扩告 *//* *  サポ〖トするシリアルディバイスの眶は呵络 3。 *  ただし、附哼は1まで年盗している。 *   *  サンプルプログラムを瓢かす眷圭は *  sys_defs.hにあるTASK_PORTIDの年盗にも庙罢 */#define TNUM_PORT	1#define	CONSOLE_PORTID		SYSTEM_PORTID	/* コンソ〖ルに脱いるシリアルポ〖ト戎规     */#define	LOGTASK_PORTID		SYSTEM_PORTID	/* システムログを叫蜗するシリアルポ〖ト戎规 */#define H8_MIN_BAUD_RATE	9600		/* SCI をクロ〖ズする涟の略ち箕粗の纷换に蝗脱する。*//* エラ〖充り哈みを、掐蜗充り哈みと侍に拎侯する眷圭はコメントをはずす。*/#if 0#define H8_CFG_SCI_ERR_HANDLER#endif/* *  SYSTEM 脱 SCI の肋年猛 */#define SYSTEM_SCI		H8SCI1#define SYSTEM_SCI_IPR		H8IPRB#define SYSTEM_SCI_IP_BIT	H8IPR_SCI1_BIT#define SYSTEM_SCI_SMR		0			/* 流减慨フォ〖マット			*/	     		/* 拇殊票袋及				*/	     		/* キャラクタレングス¨8ビット		*/	     		/* パリティなし				*/	     		/* ストップビットレングス¨1		*/	     		/* クロックセレクト∈尸件孺∷:1		*/#define SYSTEM_BAUD_RATE	38400			/* bps	*/#if TNUM_PORT == 1#define	SYSTEM_PORTID		1#define INHNO_SERIAL_IN		IRQ_RXI1#define INHNO_SERIAL_OUT	IRQ_TXI1#define INHNO_SERIAL_ERR	IRQ_ERI1#elif TNUM_PORT == 2	/* of #if TNUM_PORT == 1 */#define USER_SCI		H8SCI0#define USER_SCI_IPR		H8IPRB#define USER_SCI_IP_BIT		H8IPR_SCI0_BIT#define USER_SCI_SMR		0			/* 流减慨フォ〖マット			*/	     		/* 拇殊票袋及				*/	     		/* キャラクタレングス¨8ビット		*/	     		/* パリティなし				*/	     		/* ストップビットレングス¨1		*/	     		/* クロックセレクト∈尸件孺∷:1		*/#define USER_BAUD_RATE		38400			/* bps	*/#define	USER_PORTID		1#define	SYSTEM_PORTID		2#define INHNO_SERIAL_IN		IRQ_RXI0#define INHNO_SERIAL_OUT	IRQ_TXI0#define INHNO_SERIAL_ERR	IRQ_ERI0#define INHNO_SERIAL2_IN	IRQ_RXI1#define INHNO_SERIAL2_OUT	IRQ_TXI1#define INHNO_SERIAL2_ERR	IRQ_ERI1#else	/* of #if TNUM_PORT == 1 */#error TNUM_PORT <= 2#endif	/* of #if TNUM_PORT == 1 *//*  プライオリティレベル肋年脱のデ〖タ  *//*  充哈み妥滇のレベル肋年  */#define SYSTEM_SCI_IPM			IPM_LEVEL0#define USER_SCI_IPM			IPM_LEVEL0/*   * 充哈みハンドラ悸乖面の充哈みマスクの猛 *   戮の充哈みをマスクするための肋年   *   极尸と票じレベルの充哈み妥滇をブロックするため、 *   惧淡の充哈み妥滇レベルより1つ光いレベルに肋年する。 */#if TNUM_PORT == 1	/*  ポ〖ト1¨システムˇポ〖ト  *//*  システムˇポ〖ト  */#if SYSTEM_SCI_IPM == IPM_LEVEL0#define sio_in_handler_intmask		IPM_LEVEL1#elif SYSTEM_SCI_IPM == IPM_LEVEL1#define sio_in_handler_intmask		IPM_LEVEL2#endif 	/* SYSTEM_SCI_IPM == IPM_LEVEL0 */#elif TNUM_PORT == 2	/* of #if TNUM_PORT == 1 */			/*  ポ〖ト1¨ユ〖ザ〖ˇポ〖ト  */			/*  ポ〖ト2¨システムˇポ〖ト  *//*  ユ〖ザ〖ˇポ〖ト  */#if USER_SCI_IPM == IPM_LEVEL0#define sio_in_handler_intmask		IPM_LEVEL1#elif USER_SCI_IPM == IPM_LEVEL1#define sio_in_handler_intmask		IPM_LEVEL2#endif 	/* USER_SCI_IPM == IPM_LEVEL0 *//*  システムˇポ〖ト  */#if SYSTEM_SCI_IPM == IPM_LEVEL0#define sio_in2_handler_intmask		IPM_LEVEL1#elif SYSTEM_SCI_IPM == IPM_LEVEL1#define sio_in2_handler_intmask		IPM_LEVEL2#endif 	/* SYSTEM_SCI_IPM == IPM_LEVEL0 */#endif	/* of #if TNUM_PORT == 1 */#define sio_out_handler_intmask		sio_in_handler_intmask#define sio_err_handler_intmask		sio_in_handler_intmask#define sio_out2_handler_intmask	sio_in2_handler_intmask#define sio_err2_handler_intmask	sio_in2_handler_intmask/* *  タイマの肋年 */#define SYSTEM_TIMER		H816TU0#define SYSTEM_TIMER_CNT	(SYSTEM_TIMER + H8TCNT)#define SYSTEM_TIMER_TCR	(SYSTEM_TIMER + H8TCR)#define SYSTEM_TIMER_TIOR	(SYSTEM_TIMER + H8TIOR)#define SYSTEM_TIMER_IER	H816TU_TISRA#define SYSTEM_TIMER_IFR	H816TU_TISRA#define SYSTEM_TIMER_TSTR	H816TU_TSTR#define SYSTEM_TIMER_GR		(SYSTEM_TIMER + H8GRA)#define SYSTEM_TIMER_STR	H8TSTR_STR0#define SYSTEM_TIMER_STR_BIT	H8TSTR_STR0_BIT#define SYSTEM_TIMER_IE		H8TISRA_IMIEA0		/* interrupt mask */#define SYSTEM_TIMER_IE_BIT	H8TISRA_IMIEA0_BIT#define SYSTEM_TIMER_IF		H8TISRA_IMFA0		/* match flag */#define SYSTEM_TIMER_IF_BIT	H8TISRA_IMFA0_BIT#define INHNO_TIMER		IRQ_IMIA0#define SYSTEM_TIMER_TCR_BIT	(H8TCR_CCLR0 | H8TCR_TPSC1 | H8TCR_TPSC0)#define SYSTEM_TIMER_TIOR_BIT	(0)#define TIMER_CLOCK		((CPU_CLOCK)/8000)					/* 20MHz / 8 = 2.5MHz = 2500KHz *//*  プライオリティレベル肋年脱のデ〖タ  *//*  充哈み妥滇のレベル肋年  */#define SYSTEM_TIMER_IPR                H8IPRA#define SYSTEM_TIMER_IP_BIT             H8IPR_ITU0_BIT#define SYSTEM_TIMER_IPM                IPM_LEVEL1/*   * 充哈みハンドラ悸乖面の充哈みマスクの猛 *   戮の充哈みをマスクするための肋年   *   极尸と票じレベルの充哈み妥滇をブロックするため、 *   惧淡の充哈み妥滇レベルより1つ光いレベルに肋年する。 */#if SYSTEM_TIMER_IPM == IPM_LEVEL0#define timer_handler_intmask		IPM_LEVEL1#elif SYSTEM_TIMER_IPM == IPM_LEVEL1#define timer_handler_intmask		IPM_LEVEL2#endif 	/* SYSTEM_TIMER_IPM == IPM_LEVEL0 *//* *  嘲婶アドレス鄂粗扩告 */#define	ENABLE_P8_CS	(H8P8DDR_CS0|H8P8DDR_CS1|H8P8DDR_CS2|H8P8DDR_CS3)#if 0#define	ENABLE_LOWER_DATA#define	ENABLE_PB_CS	(H8PADDR_CS4|H8PADDR_CS5|H8PADDR_CS6|H8PBDDR_CS7)#endif	/* of #if 0 *//* *  腮警箕粗略ちのための年盗 */#if defined(ROM)/*  ROM步∈嘲婶RAM蝗脱∷  */#define	SIL_DLY_TIM1	 6880#define	SIL_DLY_TIM2	  546#elif defined(INMEM_ONLY)/*  ROM步∈柒垄メモリのみ蝗脱∷ */#define	SIL_DLY_TIM1	 2800#define	SIL_DLY_TIM2	  521#else	/* of #if defined(ROM) *//*  词白モニタ∈ユ〖ザ〖プログラムは嘲婶RAM惧にダウンロ〖ド∷  */#define	SIL_DLY_TIM1	16150#define	SIL_DLY_TIM2	 3161#endif	/* of #if defined(ROM) *//* *  DDRの介袋猛の年盗 */#ifdef INMEM_ONLY	/*  ROM步かつ嘲婶DRAMなし  *//*  モ〖ドによってはDDRの介袋猛が佰なるので、庙罢  */#define	H8P1DDR0        0x00				/*  ポ〖ト1  */#define	H8P2DDR0        0x00				/*  ポ〖ト2  */#define	H8P3DDR0        0x00				/*  ポ〖ト3  */#define	H8P4DDR0        0x00				/*  ポ〖ト4  */#define	H8P5DDR0        0x00				/*  ポ〖ト5  */#define	H8P6DDR0        0x00				/*  ポ〖ト6  *//*  ポ〖ト7は掐蜗漓脱でDDRレジスタがないため、臼维している。  */#ifdef SUPPORT_ETHER#define	H8P8DDR0        (H8P8DDR_CS1 | H8P8DDR_CS2)	/*  ポ〖ト8  */#else 	/* SUPPORT_ETHER */#define	H8P8DDR0        0x00				/*  ポ〖ト8  */#endif 	/* SUPPORT_ETHER */#define	H8P9DDR0        0x00				/*  ポ〖ト9  */#define	H8PADDR0        0x00				/*  ポ〖トA  */#define	H8PBDDR0        0x00				/*  ポ〖トB  */#else 	/*  of #ifdef INMEM_ONLY  */#define	H8P1DDR0        0xff				/*  ポ〖ト1  */#define	H8P2DDR0        0xff				/*  ポ〖ト2  */#define	H8P3DDR0        0xff				/*  ポ〖ト3  */#define	H8P4DDR0        DUMMY				/*  ポ〖ト4  */#define	H8P5DDR0        H8P5DDR_A16			/*  ポ〖ト5  */#define	H8P6DDR0        DUMMY				/*  ポ〖ト6  *//*  ポ〖ト7は掐蜗漓脱でDDRレジスタがないため、臼维している。  */#define	H8P8DDR0        (H8P8DDR_CS1 | H8P8DDR_CS2)	/*  ポ〖ト8  */#define	H8P9DDR0        DUMMY				/*  ポ〖ト9  */#define	H8PADDR0        DUMMY				/*  ポ〖トA  */#define	H8PBDDR0        H8PBDDR_UCAS			/*  ポ〖トB  */#endif 	/*  of #ifdef INMEM_ONLY  */#endif /* _SYS_CONFIG_H_ */

⌨️ 快捷键说明

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