cpu_config.c

来自「toppers操作系统源码」· C语言 代码 · 共 132 行

C
132
字号
/* *  TOPPERS/JSP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Just Standard Profile Kernel *  *  Copyright (C) 2000-2005 by Embedded and Real-Time Systems Laboratory *                              Toyohashi Univ. of Technology, JAPAN *  *  惧淡螟侯涪荚は·笆布の (1)×(4) の掘凤か·Free Software Foundation  *  によって给山されている GNU General Public License の Version 2 に淡 *  揭されている掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェア *  を猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを·ライブラリ妨及など·戮のソフトウェア倡券に蝗 *      脱できる妨で浩芹邵する眷圭には·浩芹邵に燃うドキュメント∈网脱 *      荚マニュアルなど∷に·惧淡の螟侯涪山绩·この网脱掘凤および布淡 *      の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを·怠达に寥み哈むなど·戮のソフトウェア倡券に蝗 *      脱できない妨で浩芹邵する眷圭には·肌のいずれかの掘凤を塔たすこ *      とˉ *    (a) 浩芹邵に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟 *        侯涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 浩芹邵の妨轮を·侍に年める数恕によって·TOPPERSプロジェクトに *        鼠桂することˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚およびTOPPERSプロジェクトを倘勒することˉ *  *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚お *  よびTOPPERSプロジェクトは·塑ソフトウェアに簇して·その努脱材墙拉も *  崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェアの网脱により木 *  儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·その勒扦を砷わないˉ *  *//* *  プロセッサ巴赂モジュ〖ル∈Xstormy16脱∷ */#include "jsp_kernel.h"#include <s_services.h>#include <hw_timer.h>#include <hw_serial.h>#include <cpu_sfrs.h>/* *  タイムティックの件袋 */UINT _kernel_tic_nume = 1u ;/* *  プロセッサ巴赂の介袋步 */voidcpu_initialize(void){                                /*                                 *  毋嘲の钓材                                 */    __UNLOCK_EXCP() ;               /* unlock writing EXCPL/EXCPH */    __SFR_BITSET( __EXCPL, 0 ) ;    /* enable invalid instruction exception */    __SFR_BITSET( __EXCPL, 2 ) ;    /* enable odd/word access exception */    __SFR_BITSET( __EXCPL, 4 ) ;    /* enable outrange access exception */    __LOCK_EXCP() ;                 /* lock writing EXCPL/EXCPH */                                /*                                 *  カ〖ネルタイマ〖の弹瓢                                 */    hw_timer_initialize() ;}/* *  プロセッサ巴赂の姜位借妄 */voidcpu_terminate(void){                                /*                                 *  カ〖ネルタイマ〖の匿贿                                 */    hw_timer_terminate() ;                                /*                                 *  毋嘲の敦贿                                 */    __UNLOCK_EXCP() ;               /* unlock writing EXCPL/EXCPH */    __SFR_BITCLR( __EXCPL, 0 ) ;    /* disable invalid instruction exception */    __SFR_BITCLR( __EXCPL, 2 ) ;    /* disable odd/word access exception */    __SFR_BITCLR( __EXCPL, 4 ) ;    /* disable outrange access exception */    __LOCK_EXCP() ;                 /* lock writing EXCPL/EXCPH */}/* *  充り哈みハンドラの判峡 */void _kernel_define_inh(INHNO inhno, FP inthdr){    extern FP _kernel_ih_table[TNUM_INTERRUPT] ;    if ( inhno < TNUM_INTERRUPT ) {        _kernel_ih_table[inhno] = inthdr ;    }}/* *  毋嘲ハンドラの判峡 */void _kernel_define_exc(EXCNO excno, FP exchdr){    extern FP _kernel_eh_table[TNUM_EXCEPTION] ;    if ( excno < TNUM_EXCEPTION ) {        _kernel_eh_table[excno] = exchdr ;    }}/* *  タ〖ゲットシステムの矢机叫蜗 */void sys_putc(char c){    sio_asnd_chr( (INT)c ) ;}/* *  腮警箕粗略ち */void sil_dly_nse( UINT dlytim ){    UINT n ;    for ( n = 3 ; n < dlytim ; n++ ) __asm__ volatile ( "nop" ) ;}

⌨️ 快捷键说明

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