00001 /* 00002 * TOPPERS/ASP Kernel 00003 * Toyohashi Open Platform for Embedded Real-Time Systems/ 00004 * Advanced Standard Profile Kernel 00005 * 00006 * Copyright (C) 2005,2006 by Embedded and Real-Time Systems Laboratory 00007 * Graduate School of Information Science, Nagoya Univ., JAPAN 00008 * 00009 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 00010 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 00011 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 00012 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 00013 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 00014 * スコード中に含まれていること. 00015 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 00016 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 00017 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 00018 * の無保証規定を掲載すること. 00019 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 00020 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 00021 * と. 00022 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 00023 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 00024 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 00025 * 報告すること. 00026 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 00027 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 00028 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 00029 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 00030 * 免責すること. 00031 * 00032 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 00033 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 00034 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 00035 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 00036 * の責任を負わない. 00037 * 00038 * @(#) $Id: target_timer.c 264 2007-07-12 08:23:10Z hiro $ 00039 */ 00040 00041 /* 00042 * タイマドライバ(DVE68K/40用) 00043 */ 00044 00045 #include "kernel_impl.h" 00046 #include "time_event.h" 00047 #include <sil.h> 00048 #include "target_timer.h" 00049 00050 /* 00051 * タイマの起動処理 00052 */ 00053 void 00054 target_timer_initialize(intptr_t exinf) 00055 { 00056 CLOCK cyc = TO_CLOCK(TIC_NUME, TIC_DENO); 00057 00058 /* 00059 * タイマ周期を設定し,タイマの動作を開始する. 00060 */ 00061 assert(cyc <= MAX_CLOCK); 00062 dga_write((void *) TADR_DGA_CSR12, CSR12_START | cyc); 00063 00064 /* 00065 * タイマ割込み要求をクリアする. 00066 */ 00067 x_clear_int(INTNO_TIMER); 00068 } 00069 00070 /* 00071 * タイマの停止処理 00072 */ 00073 void 00074 target_timer_terminate(intptr_t exinf) 00075 { 00076 /* 00077 * タイマの動作を停止する. 00078 */ 00079 dga_write((void *) TADR_DGA_CSR12, CSR12_STOP); 00080 } 00081 00082 /* 00083 * タイマ割込みハンドラ 00084 */ 00085 void 00086 target_timer_handler(void) 00087 { 00088 i_begin_int(INTNO_TIMER); 00089 signal_time(); /* タイムティックの供給 */ 00090 i_end_int(INTNO_TIMER); 00091 }
Copyright © 2008 by Kijineko Inc.