target_timer.c

説明を見る。
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.

ホームページ制作