📄 tkdev_init.c
字号:
/* *---------------------------------------------------------------------- * T-Kernel * * Copyright (C) 2004 by Ken Sakamura. All rights reserved. * T-Kernel is distributed under the T-License. *---------------------------------------------------------------------- * * Version: 1.01.00 * Released by T-Engine Forum(http://www.t-engine.org) at 2004/6/28. * *---------------------------------------------------------------------- *//* * tkdev_init.c (MC9328) * T-Kernel Device-Dependent Initialization/Finalization */#include "kernel.h"#include <tk/sysdef.h>#include <tk/syslib.h>#include <tm/tmonitor.h>EXPORT UW TimerClkDiv; /* Dividing rate of timer clock *//* * Target system-dependant initialization */EXPORT ER tkdev_initialize( void ){ /* Disable all interrupt */ out_w(INTENABLEH, 0); /* IRQ */ out_w(INTENABLEL, 0); out_w(INTTYPEH, 0); /* Set interrupt type to IRQ */ out_w(INTTYPEL, 0); out_w(IMR_A, 0); /* GPIO */ out_w(IMR_B, 0); out_w(IMR_C, 0); out_w(IMR_D, 0); out_w(ISR_A, 0xffffffff); /* Clear GPIO interrupt */ out_w(ISR_B, 0xffffffff); out_w(ISR_C, 0xffffffff); out_w(ISR_D, 0xffffffff); out_b(IRQ_MASK1, 0); /* FPGA IRQ_STR1 */ /* Disable FPGA IRQ_STR2 (except for abort/power switch) Abort/power switch is used by T-Monitor */ out_b(IRQ_MASK2, in_b(IRQ_MASK2) & 0x05); /* IRQ mask level */ SetIntLevel(-1); /* Enable cascade connection */ EnableInt(VECNO_GPIOA, 7); EnableInt(VECNO_GPIOB, 7); EnableInt(VECNO_GPIOC, 7); EnableInt(VECNO_GPIOD, 7); SetIntMode(VECNO_FPGA, IM_LEVEL|IM_HI); EnableInt(VECNO_FPGA, 0); return E_OK;}/* * Target system-dependant finalization * Normally jump to ROM monitor. * No return from this function. */EXPORT void tkdev_exit( void ){ disint(); tm_exit(0); /* Turn off power and exit */ /* Not suppose to return from 'tm_exit,' but just in case */ for ( ;; ) tm_monitor(); /* To T-Monitor */}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -