📄 sys_config.c
字号:
/* * 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-2004 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プロジェクトは·塑ソフトウェアに簇して·その努脱材墙拉も * 崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェアの网脱により木 * 儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·その勒扦を砷わないˉ * * @(#) $Id: sys_config.c,v 1.2 2004/10/07 17:10:56 honda Exp $ *//* * タ〖ゲットシステム巴赂モジュ〖ル∈MPC860T TB6102S脱∷ * カ〖ネル柒婶で蝗脱する年盗 * C咐胳簇眶の悸挛 */#include "jsp_kernel.h"#include <mpc860_sil.h>/* * 充哈み券栏箕にスタックに略闰された觉轮のIPMのデ〖タ菇陇 * 4バイト董肠を拜积するため、ダミ〖挝拌が掐る */typedef struct ipm_stack { UH ipm; UH dummy;} IPM_STACK;/* * 充哈みマスク脱导击ベクタテ〖ブル * ipm_table极挛は$(CPU)とのインタ〖フェ〖スに崔まれない * ∈define_ipmにより、保拭されている∷ */IPM ipm_table[TMAX_EXCNO];/* * SILを蝗脱したときのログ怠墙 */#ifdef SIL_DEBUGBOOL sil_debug_on = FALSE;char sil_buffer[SIL_BUFFER_SIZE];int sil_pos = -1;UW sil_log_id = 0;#endif /* SIL_DEBUG *//* * タ〖ゲットシステム巴赂の介袋步 */voidsys_initialize(){ INHNO j; /* * 奶慨プロセッサCPMの介袋步 */ /* リセットˇコマンドの券乖 */ mpc860_wrh_mem(CPCR, CPCR_RST | CPCR_FLG); /* * 充哈みコントロ〖ラの介袋步 * IRL¨SIUに滦する充哈みレベル * IEN=1¨CPM充哈みイネ〖ブル */ mpc860_wrw_mem(CICR, CICR_IRL0 | CICR_IEN); /* IPMの介袋步¨CPM充哈みの钓材 */ mpc860_wrh_mem(SIMASK, ENABLE_CPM); /* * 柒婶デ〖タの介袋步 */ /* IPMテ〖ブルの介袋步 */ for( j = 0; j < TMAX_EXCNO; j++ ) { ipm_table[j] = DEFAULT_IPM; } /* CPM充哈みのIPMを肋年 */ ipm_table[INHNO_CPM] = IPM_CPM; /* * プロセッサ急侍のための恃眶の介袋步 */ /* 踏悸刘 */}/* * タ〖ゲットシステムの姜位 */voidsys_exit(){ tb6102s_exit();}/* * タ〖ゲットシステムの矢机叫蜗 */voidsys_putc(char c){ if (c == '\n') { tb6102s_putc('\r'); } tb6102s_putc(c);}/* * 判峡されていない充哈み券栏箕のログ叫蜗 * マクロPROC_ICUの面で钙び叫される * 簇眶叹や苞眶の房はプロセッサ髓に疯めて紊い * * MPC860では充哈みコントロ〖ラがカスケ〖ド儡鲁されているため、 * 称充哈みコントロ〖ラに漓脱の簇眶を脱罢した。 * *//* SIU充哈み∈CPM充哈み笆嘲∷ */void no_reg_SIU_interrupt(INHNO intno, UW *sp){ syslog(LOG_EMERG, "SIU interrupt error occurs."); syslog(LOG_EMERG, "Interrupt No.=%d", intno); syslog(LOG_EMERG, "IPM=0x%04x", ((IPM_STACK *)sp)->ipm); /* * スタック惧のデ〖タの山绩 * 充哈みマスクをスタックに姥んでいるので * その尸、スキップする */ ++sp; syslog_data_on_stack((EXCSTACK *)sp); while(1);}/* CPM充哈み */void no_reg_CPM_interrupt(INHNO intno, UW *sp){ syslog(LOG_EMERG, "CPM interrupt error occurs."); syslog(LOG_EMERG, "Interrupt No.=%d(total %d)", intno, intno + TMAX_SIU_INTNO); syslog(LOG_EMERG, "IPM=0x%04x", ((IPM_STACK *)sp)->ipm); /* * スタック惧のデ〖タの山绩 * 充哈みマスクをスタックに姥んでいるので * その尸、スキップする */ ++sp; syslog_data_on_stack((EXCSTACK *)sp); while(1);}/* end of file */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -