|
|
dve68k.h説明を見る。00001 /* 00002 * TOPPERS/JSP Kernel 00003 * Toyohashi Open Platform for Embedded Real-Time Systems/ 00004 * Just Standard Profile Kernel 00005 * 00006 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory 00007 * Toyohashi Univ. of Technology, JAPAN 00008 * 00009 * 上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation 00010 * によって公表されている GNU General Public License の Version 2 に記 00011 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 00012 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 00013 * 利用と呼ぶ)することを無償で許諾する. 00014 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 00015 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 00016 * スコード中に含まれていること. 00017 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 00018 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 00019 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 00020 * の無保証規定を掲載すること. 00021 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 00022 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 00023 * と. 00024 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 00025 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 00026 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 00027 * 報告すること. 00028 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 00029 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 00030 * 00031 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 00032 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 00033 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 00034 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 00035 * 00036 * @(#) $Id: dve68k.h,v 1.8 2003/06/18 12:40:08 hiro Exp $ 00037 */ 00038 00039 /* 00040 * DVE68K/40 CPUボードのハードウェア資源の定義 00041 */ 00042 00043 #ifndef _DVE68K_H_ 00044 #define _DVE68K_H_ 00045 00046 /* 00047 * 割込みベクトルの定義 00048 */ 00049 #define TVEC_G0I 0x40u /* グループ0 割込みベクトル */ 00050 #define TVEC_SQR 0x42u /* SQR 割込みベクトル */ 00051 #define TVEC_ABT 0x46u /* アボート割込みベクトル */ 00052 00053 #define TVEC_G1I 0x48u /* グループ1 割込みベクトル */ 00054 #define TVEC_GP0 0x48u /* シリアルI/O 割込みベクトル */ 00055 #define TVEC_TT0 0x4cu /* タイマ0 割込みベクトル */ 00056 00057 #define TVEC_SWI 0X50u /* ソフトウェア割込みベクトル */ 00058 #define TVEC_SPRI 0x40u /* スプリアス割込みベクトル */ 00059 00060 /* 00061 * CPUボード上のレジスタ 00062 */ 00063 #define TADR_BOARD_REG0 0xfff48000 00064 #define TADR_BOARD_REG1 0xfff48004 00065 #define TADR_BOARD_REG2 0xfff48008 00066 00067 /* 00068 * DGA-001のレジスタのアドレス 00069 */ 00070 #define TADR_DGA_CSR0 0xfff44000 00071 #define TADR_DGA_CSR1 0xfff44004 00072 #define TADR_DGA_CSR3 0xfff4400c 00073 #define TADR_DGA_CSR4 0xfff44010 00074 #define TADR_DGA_CSR5 0xfff44014 00075 #define TADR_DGA_CSR12 0xfff44030 00076 #define TADR_DGA_CSR13 0xfff44034 00077 #define TADR_DGA_CSR19 0xfff4404c 00078 #define TADR_DGA_CSR20 0xfff44050 00079 #define TADR_DGA_CSR21 0xfff44054 00080 #define TADR_DGA_CSR23 0xfff4405c 00081 #define TADR_DGA_CSR24 0xfff44060 00082 #define TADR_DGA_CSR25 0xfff44064 00083 #define TADR_DGA_IFR0 0xfff44070 00084 #define TADR_DGA_IFR3 0xfff4407c 00085 00086 /* 00087 * DGAへのアクセス関数 00088 */ 00089 #define dga_rew_reg(addr) sil_rew_mem(addr) 00090 #define dga_wrw_reg(addr, val) sil_wrw_mem(addr, val) 00091 00092 /* 00093 * μPD72001(MPSC)のレジスタのアドレス 00094 */ 00095 #define TADR_UPD72001_DATAA 0xfff45003 00096 #define TADR_UPD72001_CTRLA 0xfff45007 00097 #define TADR_UPD72001_DATAB 0xfff4500b 00098 #define TADR_UPD72001_CTRLB 0xfff4500f 00099 00100 /* 00101 * μPD72001へのアクセス関数 00102 */ 00103 #define upd72001_reb_reg(addr) sil_reb_mem(addr) 00104 #define upd72001_wrb_reg(addr, val) sil_wrb_mem(addr, val) 00105 00106 /* 00107 * GDB STUB呼出しルーチン 00108 */ 00109 #ifndef _MACRO_ONLY 00110 #ifdef GDB_STUB 00111 00112 Inline void 00113 dve68k_exit() 00114 { 00115 Asm("trap #2"); 00116 } 00117 00118 Inline void 00119 dve68k_putc(char c) 00120 { 00121 Asm("move.l %0, %%d1; trap #3" 00122 : /* no output */ 00123 : "g"((INT) c) 00124 : "d0", "d1", "d2", "d6", "d7"); 00125 } 00126 00127 /* 00128 * モニタ呼出しルーチン 00129 */ 00130 #else /* GDB_STUB */ 00131 00132 Inline void 00133 dve68k_exit() 00134 { 00135 Asm("clr.l %%d0; trap #3" 00136 : /* no output */ 00137 : /* no input */ 00138 : "d0", "d1", "d2", "d6", "d7"); 00139 } 00140 00141 Inline char 00142 dve68k_getc() 00143 { 00144 INT c; 00145 00146 Asm("moveq.l #3, %%d0; trap #3; move.l %%d0, %0" 00147 : "=g"(c) 00148 : /* no input */ 00149 : "d0", "d1", "d2", "d6", "d7"); 00150 return((char) c); 00151 } 00152 00153 Inline void 00154 dve68k_putc(char c) 00155 { 00156 Asm("moveq.l #5, %%d0; move.l %0, %%d1; trap #3" 00157 : /* no output */ 00158 : "g"((INT) c) 00159 : "d0", "d1", "d2", "d6", "d7"); 00160 } 00161 00162 #endif /* GDB_STUB */ 00163 #endif /* _MACRO_ONLY */ 00164 #endif /* _DVE68K_H_ */ 00165 Copyright © 2006 by TAKAGI Nobuhisa. Copyright © 2006 by Kijineko Inc.. このページは Mon Dec 18 17:18:38 2006 に Doxygen によって生成されました。 データ入力からプログラム開発まで!様々なスキルを持ったメンバーが登録しています【@SOHO】 |