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

📄 chip_config.h

📁 μITRON4.0 source code for ARM
💻 H
字号:
/* *  TOPPERS/ASP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Advanced Standard Profile Kernel *  *  Copyright (C) 2006 by GJ Business Division RICOH COMPANY,LTD. JAPAN *  Copyright (C) 2007-2008 by Embedded and Real-Time Systems Laboratory *              Graduate School of Information Science, Nagoya Univ., JAPAN *  *  惧淡螟侯涪荚は·笆布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェ *  ア∈塑ソフトウェアを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖 *  恃ˇ浩芹邵∈笆布·网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを·ライブラリ妨及など·戮のソフトウェア倡券に蝗 *      脱できる妨で浩芹邵する眷圭には·浩芹邵に燃うドキュメント∈网脱 *      荚マニュアルなど∷に·惧淡の螟侯涪山绩·この网脱掘凤および布淡 *      の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを·怠达に寥み哈むなど·戮のソフトウェア倡券に蝗 *      脱できない妨で浩芹邵する眷圭には·肌のいずれかの掘凤を塔たすこ *      とˉ *    (a) 浩芹邵に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟 *        侯涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 浩芹邵の妨轮を·侍に年める数恕によって·TOPPERSプロジェクトに *        鼠桂することˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚およびTOPPERSプロジェクトを倘勒することˉ *      また·塑ソフトウェアのユ〖ザまたはエンドユ〖ザからのいかなる妄 *      统に答づく懒滇からも·惧淡螟侯涪荚およびTOPPERSプロジェクトを *      倘勒することˉ *  *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚お *  よびTOPPERSプロジェクトは·塑ソフトウェアに簇して·泼年の蝗脱誊弄 *  に滦する努圭拉も崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェ *  アの网脱により木儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·そ *  の勒扦を砷わないˉ *  *  @(#) $Id: chip_config.h 948 2008-04-14 08:34:27Z ertl-honda $ *//* *  チップ巴赂モジュ〖ル∈AT91SAM7S脱∷ * *  カ〖ネルのチップ巴赂婶のインクル〖ドファイルˉkernel_impl.hのタ〖 *  ゲット巴赂婶の疤弥烧けとなるˉ */#ifndef TOPPERS_CHIP_CONFIG_H#define TOPPERS_CHIP_CONFIG_H/* *  チップシステムのハ〖ドウェア获富の年盗 */#include "at91sam7s.h"/* *  ベクタ〖ル〖チンをカ〖ネルで积つかの年盗 */#define VECTOR_KERNEL/* *  ベクタ〖ル〖チンを积たない眷圭のベクタ〖アドレスの黎片戎孟 */ #define VECTOR_START  0x00/* * 充哈み略ち炭吾 */#define ASM_TARGET_WAIT_INTERRUPT nop/* *  ASPカ〖ネル瓢侯箕のメモリマップと簇息する年盗 */#define RAM_START       SRAM_BASE_ADDRESSS#define RAM_SIZE        SRAM_SIZE#define FIQ_DATA_SIZE   256U/* *  デフォルトの润タスクコンテキスト脱のスタック挝拌の年盗 */#define DEFAULT_ISTKSZ      0x1000U   /* 4KB */#define DEFAULT_ISTK        (void *)(RAM_START+RAM_SIZE-FIQ_DATA_SIZE - DEFAULT_ISTKSZ)                                                   /* *  腮警箕粗略ちのための年盗∈塑丸はSILのタ〖ゲット巴赂婶∷ */#define SIL_DLY_TIM1    420#define SIL_DLY_TIM2    195/* *  充哈みハンドラ戎规に簇する年盗 */ #define TMIN_INHNO 0U#define TMAX_INHNO 31U#define TNUM_INH   32U/* *  充哈み戎规に簇する年盗 */ #define TMIN_INTNO 0U#define TMAX_INTNO 31U#define TNUM_INT   32U#ifndef TOPPERS_MACRO_ONLY/* *  充哈み戎规の认跋の冉年 * *  ビットパタ〖ンを滇めるのを推白にするために·8は风戎になっているˉ */#define VALID_INTNO(intno) (TMIN_INTNO <= (intno) && (intno) <= TMAX_INTNO)#define VALID_INTNO_DISINT(intno)	VALID_INTNO(intno)#define VALID_INTNO_CFGINT(intno)	VALID_INTNO(intno)#define VALID_INTNO_ATTISR(intno)   VALID_INTNO(intno)/* *  充哈みハンドラの判峡脱テ〖ブル *   悸轮はコンフィギュレ〖タで栏喇する  */extern const FP inh_tbl[TNUM_INH];/* *  充哈みハンドラの肋年 */Inline voidx_define_inh(INHNO inhno, FP int_entry){}/* *  充哈みハンドラの叫掐庚借妄の栏喇マクロ * */#define INT_ENTRY(inhno, inthdr)    inthdr#define INTHDR_ENTRY(inhno, inhno_num, inthdr) extern void inthdr(void);/* *  TOPPERS筛洁充哈み借妄モデルの悸附 *//* * 称充哈みの充哈み妥滇敦贿フラグの觉轮 */extern uint32_t idf;/* *  充哈み庭黎刨マスク拎侯ライブラリ * *  AT91SAM7Sは充哈み庭黎刨マスクをIRC柒でハ〖ドウェア弄に积つが· *  ソフトウェア娄から猛を粕み今きできないため·充哈み妥滇敦贿フラ *  グにより充哈み庭黎刨マスクを悸附する *//* *  附哼の充哈み庭黎刨マスクの猛 */extern PRI ipm;/* *  充哈み庭黎刨マスク髓にセットする·充哈み妥滇敦贿フラグの猛 *  のテ〖ブル */extern const uint32_t ipm_mask_tbl[8];#endif /* TOPPERS_MACRO_ONLY */  /* *  IPMをimp_mask_tblのインデックスに恃垂するマクロ */#define INDEX_IPM(ipm)  (-(ipm))#ifndef TOPPERS_MACRO_ONLY/* *  (モデル惧の)充哈み庭黎刨マスクの肋年 *  *  回年された庭黎刨に肋年された充哈み妥滇敦贿フラグのテ〖ブルの猛と∈モデ *  ル惧の∷称充哈みの充哈み妥滇敦贿フラグの觉轮を瘦积した恃眶の猛との *  ORをIRCの充哈み妥滇敦贿フラグにセットし·肋年した庭黎刨を柒婶恃眶 *  ipmに瘦赂するˉ */Inline voidx_set_ipm(PRI intpri){    uint32_t ipm_mask = ipm_mask_tbl[INDEX_IPM(intpri)];    /*     *  AT91SAM7Sの充哈みコントロ〖ラはイネ〖ブルレジスタと     *  クリア〖レジスタがあるため·办枚链ての充哈みを敦贿してから·     *  泼年の充哈みのみ钓材する涩妥がある     */    /* 链充哈み敦贿 */    at91sam7s_disable_int(~0U);    /* マスク回年されていない充哈みのみ钓材 */    at91sam7s_enable_int(~(ipm_mask|idf));    ipm = intpri;}#define t_set_ipm(intpri) x_set_ipm(intpri)#define i_set_ipm(intpri) x_set_ipm(intpri)/* *  (モデル惧の)充哈み庭黎刨マスクの徊救 * *  ipmの猛を手す */Inline PRIx_get_ipm(void){    return(ipm);}#define t_get_ipm() x_get_ipm()#define i_get_ipm() x_get_ipm()/* *  充哈み掳拉が肋年されているかを冉侍するための恃眶 */extern uint32_t	bitpat_cfgint;/* * ∈モデル惧の∷充哈み妥滇敦贿フラグのセット * *  回年された·充哈み戎规の充哈み妥滇敦贿フラグのセットして·充哈みを *  敦贿するˉまた·∈モデル惧の∷充哈み妥滇敦贿フラグを瓷妄するidfの滦 *  炳するビットををセットするˉ *  充哈み妥滇をマスクする怠墙をサポ〖トしていない眷圭には·falseを手す */Inline bool_tx_disable_int(INTNO intno){    if ((bitpat_cfgint & INTNO_BITPAT(intno)) == 0U) {        return(false);    }    at91sam7s_disable_int(INTNO_BITPAT(intno));    idf |= INTNO_BITPAT(intno);    return(true);}#define t_disable_int(intno)  x_disable_int(intno)#define i_disable_int(intno)  t_disable_int(intno)/*  * (モデル惧の)充り妥滇敦贿フラグの豺近 * * 回年された·充哈み戎规の充哈み妥滇敦贿フラグのクリアして·充哈みを * 钓材するˉまた·∈モデル惧の∷充哈み妥滇敦贿フラグを瓷妄するidfの滦 * 炳するビットををクリアするˉ * 充哈み妥滇をマスクする怠墙をサポ〖トしていない眷圭には·falseを手す */Inline bool_tx_enable_int(INTNO intno){    if ((bitpat_cfgint & INTNO_BITPAT(intno)) == 0U) {        return(false);    }        at91sam7s_enable_int(INTNO_BITPAT(intno));    idf &= ~INTNO_BITPAT(intno);    return(true);}#define t_enable_int(intno) x_enable_int(intno)#define i_enable_int(intno) x_enable_int(intno)/* * 充哈み妥滇のクリア */Inline voidx_clear_int(INTNO intno){    at91sam7s_clear_int(INTNO_BITPAT(intno));}#define t_clear_int(intno) x_clear_int(intno) #define i_clear_int(intno) x_clear_int(intno) /* *  充哈み妥滇のチェック */Inline bool_tx_probe_int(INTNO intno){    return(at91sam7s_probe_int(INTNO_BITPAT(intno)));}#define t_probe_int(intno) x_probe_int(intno)#define i_probe_int(intno) x_probe_int(intno)/* *  充哈み妥滇ラインの掳拉の肋年 * */extern void    x_config_int(INTNO intno, ATR intatr, PRI intpri);/* *  充哈みハンドラの掐り庚で涩妥なIRC拎侯 * *  AT91SAM7Sでは·涩妥な借妄はない */Inline voidi_begin_int(INTNO intno){    }/* *  充哈みハンドラの叫庚で涩妥なIRC拎侯 * *  AT91SAM7Sでは·涩妥な借妄はない */Inline voidi_end_int(INTNO intno){    }/* *  タ〖ゲットシステム巴赂の介袋步 */extern void target_initialize(void);/* *  タ〖ゲットシステムの姜位 * *  システムを姜位する箕に蝗うˉ */extern void target_exit(void) NoReturn;/* *  atexitの借妄とデストラクタの悸乖 */Inline voidcall_atexit(void){    extern void    software_term_hook(void);    void (*volatile fp)(void) = software_term_hook;    /*     *  software_term_hookへのポインタを·办枚volatile回年のあるfpに洛     *  掐してから蝗うのは·0との孺秤が呵努步で猴近されないようにするた     *  めであるˉ     */    if (fp != 0) {        (*fp)();    }}/* *  充哈みハンドラ∈chip_support.S∷ */extern void interrupt_handler(void);/* *  踏年盗の充哈みが掐った眷圭の借妄 */extern void default_int_handler(void);#endif /* TOPPERS_MACRO_ONLY *//* *  コア巴赂モジュ〖ル∈ARM脱∷ */#include "arm_gcc/common/core_config.h"#endif /* TOPPERS_CHIP_CONFIG_H */

⌨️ 快捷键说明

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