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