/* * TOPPERS/SSP Kernel * Smallest Set Profile Kernel * * Copyright (C) 2008 by Witz Corporation, JAPAN * Copyright (C) 2010-2014 by Naoki Saito * Nagoya Municipal Industrial Research Institute, JAPAN * * 上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・ * 再配布(以下,利用と呼ぶ)することを無償で許諾する. * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権 * 表示,この利用条件および下記の無保証規定が,そのままの形でソース * コード中に含まれていること. * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用 * できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ * ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保 * 証規定を掲載すること. * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用 * できない形で再配布する場合には,次のいずれかの条件を満たすこと. * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作 * 権表示,この利用条件および下記の無保証規定を掲載すること. * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報 * 告すること. * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害 * からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また, * 本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ * く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること. * * 本ソフトウェアは,無保証で提供されているものである.上記著作権者およ * びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す * る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用 * により直接的または間接的に生じたいかなる損害に関しても,その責任を負 * わない. * */ /* * RL78/G13に依存する定義 */ #ifndef TOPPERS_RL78G13_H #define TOPPERS_RL78G13_H /* * CPU例外ハンドラ番号の定義 */ #define EXCNO_BRK 0 /* ソフトウェアベクタ割込み命令 */ /* * 割込み番号の定義(デフォルトプライオリティの値を割込み番号とする) */ #define INTNO_INTWDTI 0 /* ウォッチドッグ・タイマ */ #define INTNO_INTLV1 1 /* 電圧検出 */ #define INTNO_INTP0 2 /* 端子入力エッジ検出 */ #define INTNO_INTP1 3 /* 端子入力エッジ検出 */ #define INTNO_INTP2 4 /* 端子入力エッジ検出 */ #define INTNO_INTP3 5 /* 端子入力エッジ検出 */ #define INTNO_INTP4 6 /* 端子入力エッジ検出 */ #define INTNO_INTP5 7 /* 端子入力エッジ検出 */ #define INTNO_INTST2 8 /* UART2 送信の転送完了,バッファ空き割込み */ #define INTNO_INTCSI20 8 /* CSI20 の転送完了,バッファ空き割込み */ #define INTNO_IIC20 8 /* IIC20 の転送完了 */ #define INTNO_INTSR2 9 /* UART2 受信の転送完了 */ #define INTNO_INTSCI21 9 /* CSI21 の転送完了 */ #define INTNO_INTIIC21 9 /* IIC21 の転送完了 */ #define INTNO_SRE2 10 /* UART2 受信の通信エラー発生 */ #define INTNO_INTTM11H 10 /* タイマ・チャネル11のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */ #define INTNO_INTDMA0 11 /* DMA0 の転送完了 */ #define INTNO_INTDMA1 12 /* DMA1 の転送完了 */ #define INTNO_INTST0 13 /* UART0 送信の転送完了,バッファ空き割込み */ #define INTNO_INTCSI00 13 /* CSI00 の転送完了, バッファ空き割込み */ #define INTNO_INTIIC00 13 /* IIC00 の転送完了 */ #define INTNO_INTSR0 14 /* UART0 受信の転送完了,バッファ空き割込み */ #define INTNO_INTCSI01 14 /* CSI01 の転送完了, バッファ空き割込み */ #define INTNO_INTIIC01 14 /* IIC01 の転送完了 */ #define INTNO_SRE0 15 /* UART0 受信の通信エラー発生 */ #define INTNO_INTTM01H 15 /* タイマ・チャネル01のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */ #define INTNO_INTST1 16 /* UART1 送信の転送完了,バッファ空き割込み */ #define INTNO_INTCSI10 16 /* CSI10 の転送完了, バッファ空き割込み */ #define INTNO_INTIIC10 16 /* IIC10 の転送完了 */ #define INTNO_INTSR1 17 /* UART1 受信の転送完了,バッファ空き割込み */ #define INTNO_INTCSI11 17 /* CSI11 の転送完了, バッファ空き割込み */ #define INTNO_INTIIC11 17 /* IIC11 の転送完了 */ #define INTNO_SRE1 18 /* UART1 受信の通信エラー発生 */ #define INTNO_INTTM03H 18 /* タイマ・チャネル03のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */ #define INTNO_INTIICA0 19 /* IICA0 通信完了 */ #define INTNO_INTTM00 20 /* タイマ・チャネル00のカウント完了またはキャプチャ完了 */ #define INTNO_INTTM01 21 /* タイマ・チャネル01のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */ #define INTNO_INTTM02 22 /* タイマ・チャネル02のカウント完了またはキャプチャ完了 */ #define INTNO_INTTM03 23 /* タイマ・チャネル03のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */ #define INTNO_INTAD 24 /* A/D変換完了 */ #define INTNO_INTRTC 25 /* リアルタイム・クロックの定周期信号/アラーム一致検出 */ #define INTNO_INTIT 26 /* 12ビット・インターバル・タイマのインターバル信号検出 */ #define INTNO_INTKR 27 /* キー・リターン・信号検出 */ #define INTNO_INTST3 28 /* UART3 送信の転送完了,バッファ空き割込み */ #define INTNO_INTCSI30 28 /* CSI30 の転送完了, バッファ空き割込み */ #define INTNO_INTIIC30 28 /* IIC30 の転送完了 */ #define INTNO_INTSR3 29 /* UART3 受信の転送完了,バッファ空き割込み */ #define INTNO_INTCSI31 29 /* CSI31 の転送完了, バッファ空き割込み */ #define INTNO_INTIIC31 29 /* IIC31 の転送完了 */ #define INTNO_INTTM13 30 /* タイマ・チャネル13のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */ #define INTNO_INTTM04 31 /* タイマ・チャネル04のカウント完了またはキャプチャ完了 */ #define INTNO_INTTM05 32 /* タイマ・チャネル05のカウント完了またはキャプチャ完了 */ #define INTNO_INTTM06 33 /* タイマ・チャネル06のカウント完了またはキャプチャ完了 */ #define INTNO_INTTM07 34 /* タイマ・チャネル07のカウント完了またはキャプチャ完了 */ #define INTNO_INTP6 35 /* 端子入力エッジ検出 */ #define INTNO_INTP7 36 /* 端子入力エッジ検出 */ #define INTNO_INTP8 37 /* 端子入力エッジ検出 */ #define INTNO_INTP9 38 /* 端子入力エッジ検出 */ #define INTNO_INTP10 39 /* 端子入力エッジ検出 */ #define INTNO_INTP11 40 /* 端子入力エッジ検出 */ #define INTNO_INTTM10 41 /* タイマ・チャネル10のカウント完了またはキャプチャ完了 */ #define INTNO_INTTM11 42 /* タイマ・チャネル11のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */ #define INTNO_INTTM12 43 /* タイマ・チャネル12のカウント完了またはキャプチャ完了 */ #define INTNO_SRE3 44 /* UART3 受信の通信エラー発生 */ #define INTNO_INTTM13H 44 /* タイマ・チャネル13のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */ #define INTNO_INTMD 45 /* 除算命令終了/積和演算結果のオーバーフロー発生 */ #define INTNO_INTIICA1 46 /* IICA1 通信完了 */ #define INTNO_INTFL 47 /* 予約 */ #define INTNO_INTDMA2 48 /* DMA2の転送完了 */ #define INTNO_INTDMA3 49 /* DMA3の転送完了 */ #define INTNO_INTTM14 50 /* タイマ・チャネル14のカウント完了またはキャプチャ完了 */ #define INTNO_INTTM15 51 /* タイマ・チャネル15のカウント完了またはキャプチャ完了 */ #define INTNO_INTTM16 52 /* タイマ・チャネル16のカウント完了またはキャプチャ完了 */ #define INTNO_INTTM17 53 /* タイマ・チャネル17のカウント完了またはキャプチャ完了 */ /* * 割込みハンドラ番号の定義 */ #define INHNO_INTWDTI INTNO_INTWDTI /* ウォッチドッグ・タイマ */ #define INHNO_INTLV1 INTNO_INTLV1 /* 電圧検出 */ #define INHNO_INTP0 INTNO_INTP0 /* 端子入力エッジ検出 */ #define INHNO_INTP1 INTNO_INTP1 /* 端子入力エッジ検出 */ #define INHNO_INTP2 INTNO_INTP2 /* 端子入力エッジ検出 */ #define INHNO_INTP3 INTNO_INTP3 /* 端子入力エッジ検出 */ #define INHNO_INTP4 INTNO_INTP4 /* 端子入力エッジ検出 */ #define INHNO_INTP5 INTNO_INTP5 /* 端子入力エッジ検出 */ #define INHNO_INTST2 INTNO_INTST2 /* UART2 送信の転送完了,バッファ空き割込み */ #define INHNO_INTCSI20 INTNO_INTCSI20 /* CSI20 の転送完了,バッファ空き割込み */ #define INHNO_IIC20 INTNO_IIC20 /* IIC20 の転送完了 */ #define INHNO_INTSR2 INTNO_INTSR2 /* UART2 受信の転送完了 */ #define INHNO_INTSCI21 INTNO_INTSCI21 /* CSI21 の転送完了 */ #define INHNO_INTIIC21 INTNO_INTIIC21 /* IIC21 の転送完了 */ #define INHNO_SRE2 INTNO_SRE2 /* UART2 受信の通信エラー発生 */ #define INHNO_INTTM11H INTNO_INTTM11H /* タイマ・チャネル11のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */ #define INHNO_INTDMA0 INTNO_INTDMA0 /* DMA0 の転送完了 */ #define INHNO_INTDMA1 INTNO_INTDMA1 /* DMA1 の転送完了 */ #define INHNO_INTST0 INTNO_INTST0 /* UART0 送信の転送完了,バッファ空き割込み */ #define INHNO_INTCSI00 INTNO_INTCSI00 /* CSI00 の転送完了, バッファ空き割込み */ #define INHNO_INTIIC00 INTNO_INTIIC00 /* IIC00 の転送完了 */ #define INHNO_INTSR0 INTNO_INTSR0 /* UART0 受信の転送完了,バッファ空き割込み */ #define INHNO_INTCSI01 INTNO_INTCSI01 /* CSI01 の転送完了, バッファ空き割込み */ #define INHNO_INTIIC01 INTNO_INTIIC01 /* IIC01 の転送完了 */ #define INHNO_SRE0 INTNO_SRE0 /* UART0 受信の通信エラー発生 */ #define INHNO_INTTM01H INTNO_INTTM01H /* タイマ・チャネル01のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */ #define INHNO_INTST1 INTNO_INTST1 /* UART1 送信の転送完了,バッファ空き割込み */ #define INHNO_INTCSI10 INTNO_INTCSI10 /* CSI10 の転送完了, バッファ空き割込み */ #define INHNO_INTIIC10 INTNO_INTIIC10 /* IIC10 の転送完了 */ #define INHNO_INTSR1 INTNO_INTSR1 /* UART1 受信の転送完了,バッファ空き割込み */ #define INHNO_INTCSI11 INTNO_INTCSI11 /* CSI11 の転送完了, バッファ空き割込み */ #define INHNO_INTIIC11 INTNO_INTIIC11 /* IIC11 の転送完了 */ #define INHNO_SRE1 INTNO_SRE1 /* UART1 受信の通信エラー発生 */ #define INHNO_INTTM03H INTNO_INTTM03H /* タイマ・チャネル03のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */ #define INHNO_INTIICA0 INTNO_INTIICA0 /* IICA0 通信完了 */ #define INHNO_INTTM00 INTNO_INTTM00 /* タイマ・チャネル00のカウント完了またはキャプチャ完了 */ #define INHNO_INTTM01 INTNO_INTTM01 /* タイマ・チャネル01のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */ #define INHNO_INTTM02 INTNO_INTTM02 /* タイマ・チャネル02のカウント完了またはキャプチャ完了 */ #define INHNO_INTTM03 INTNO_INTTM03 /* タイマ・チャネル03のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */ #define INHNO_INTAD INTNO_INTAD /* A/D変換完了 */ #define INHNO_INTRTC INTNO_INTRTC /* リアルタイム・クロックの定周期信号/アラーム一致検出 */ #define INHNO_INTIT INTNO_INTIT /* 12ビット・インターバル・タイマのインターバル信号検出 */ #define INHNO_INTKR INTNO_INTKR /* キー・リターン・信号検出 */ #define INHNO_INTST3 INTNO_INTST3 /* UART3 送信の転送完了,バッファ空き割込み */ #define INHNO_INTCSI30 INTNO_INTCSI30 /* CSI30 の転送完了, バッファ空き割込み */ #define INHNO_INTIIC30 INTNO_INTIIC30 /* IIC30 の転送完了 */ #define INHNO_INTSR3 INTNO_INTSR3 /* UART3 受信の転送完了,バッファ空き割込み */ #define INHNO_INTCSI31 INTNO_INTCSI31 /* CSI31 の転送完了, バッファ空き割込み */ #define INHNO_INTIIC31 INTNO_INTIIC31 /* IIC31 の転送完了 */ #define INHNO_INTTM13 INTNO_INTTM13 /* タイマ・チャネル13のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */ #define INHNO_INTTM04 INTNO_INTTM04 /* タイマ・チャネル04のカウント完了またはキャプチャ完了 */ #define INHNO_INTTM05 INTNO_INTTM05 /* タイマ・チャネル05のカウント完了またはキャプチャ完了 */ #define INHNO_INTTM06 INTNO_INTTM06 /* タイマ・チャネル06のカウント完了またはキャプチャ完了 */ #define INHNO_INTTM07 INTNO_INTTM07 /* タイマ・チャネル07のカウント完了またはキャプチャ完了 */ #define INHNO_INTP6 INTNO_INTP6 /* 端子入力エッジ検出 */ #define INHNO_INTP7 INTNO_INTP7 /* 端子入力エッジ検出 */ #define INHNO_INTP8 INTNO_INTP8 /* 端子入力エッジ検出 */ #define INHNO_INTP9 INTNO_INTP9 /* 端子入力エッジ検出 */ #define INHNO_INTP10 INTNO_INTP10 /* 端子入力エッジ検出 */ #define INHNO_INTP11 INTNO_INTP11 /* 端子入力エッジ検出 */ #define INHNO_INTTM10 INTNO_INTTM10 /* タイマ・チャネル10のカウント完了またはキャプチャ完了 */ #define INHNO_INTTM11 INTNO_INTTM11 /* タイマ・チャネル11のカウント完了またはキャプチャ完了(16ビット/下位8ビットタイマ動作時) */ #define INHNO_INTTM12 INTNO_INTTM12 /* タイマ・チャネル12のカウント完了またはキャプチャ完了 */ #define INHNO_SRE3 INTNO_SRE3 /* UART3 受信の通信エラー発生 */ #define INHNO_INTTM13H INTNO_INTTM13H /* タイマ・チャネル13のカウント完了またはキャプチャ完了(8ビットタイマ動作時) */ #define INHNO_INTMD INTNO_INTMD /* 除算命令終了/積和演算結果のオーバーフロー発生 */ #define INHNO_INTIICA1 INTNO_INTIICA1 /* IICA1 通信完了 */ #define INHNO_INTFL INTNO_INTFL /* 予約 */ #define INHNO_INTDMA2 INTNO_INTDMA2 /* DMA2の転送完了 */ #define INHNO_INTDMA3 INTNO_INTDMA3 /* DMA3の転送完了 */ #define INHNO_INTTM14 INTNO_INTTM14 /* タイマ・チャネル14のカウント完了またはキャプチャ完了 */ #define INHNO_INTTM15 INTNO_INTTM15 /* タイマ・チャネル15のカウント完了またはキャプチャ完了 */ #define INHNO_INTTM16 INTNO_INTTM16 /* タイマ・チャネル16のカウント完了またはキャプチャ完了 */ #define INHNO_INTTM17 INTNO_INTTM17 /* タイマ・チャネル17のカウント完了またはキャプチャ完了 */ /* * 割込み制御レジスタ定義 */ #define TADR_IF0L 0xfffe0 // 割込み要求フラグ・レジスタ #define TADR_IF2L 0xfffd0 // 割込み要求フラグ・レジスタ #define TADR_MK0L 0xfffe4 // 割込みマスク・フラグ・レジスタ #define TADR_MK2L 0xfffd4 // 割込みマスク・フラグ・レジスタ #define TADR_PR00L 0xfffe8 // 優先順位指定フラグ・レジスタ #define TADR_PR02L 0xfffd8 // 優先順位指定フラグ・レジスタ #define TADR_EGP0 0xfff38 // 外部割込み立ち上がりエッジ許可レジスタ #define TADR_EGP1 0xfff3a // 外部割込み立ち上がりエッジ許可レジスタ #define TADR_PER0 0xf00f0 // 周辺イネーブルレジスタ0 #define TBIT_PER0_TAU0EN UINT8_C(0x01) // タイマ・アレイ・ユニット0の入力クロック制御 #define TBIT_PER0_SAU0EN UINT8_C(0x04) // シリアル・アレイ・ユニット0の入力クロック制御 /* * クロック発生回路 */ #define TADR_CMC 0xfffa0 // クロック動作モード制御レジスタ #define TADR_CKC 0xfffa4 // クロック動作モード制御レジスタ #define TADR_CSC 0xfffa1 // クロック動作ステータス制御レジスタ #define TADR_OSTC 0xfffa2 // 発振安定時間カウンタ状態レジスタ /* * タイマ・アレイ関連レジスタ(システムティック用) */ #define TADR_TPS0 0xf01b6 // タイマ・クロック選択レジスタ0 #define TADR_TMR00 0xf0190 // タイマ・モード・レジスタ00 #define TADR_TDR00 0xfff18 // タイマ・データ・レジスタ00 #define TADR_TS0 0xf01b2 // タイマ・チャネル停止レジスタ0 #define TADR_TT0 0xf01b4 // タイマ・チャネル停止レジスタ0 #define TBIT_TTm_TTm0 UINT16_C(0x0001) #define TBIT_TSm_TSm0 UINT16_C(0x0001) #define TBIT_TTmL_TTm0 UINT8_C(0x01) #define TBIT_TSmL_TSm0 UINT8_C(0x01) /* * シリアル・アレイ関連レジスタ */ #define TADR_SPS0 0xf0126 // シリアルクロック選択レジスタ #define TADR_SMR00 0xf0110 // シリアルモードレジスタ #define TADR_SMR01 0xf0112 // シリアルモードレジスタ #define TADR_SCR00 0xf0118 // シリアル通信動作設定レジスタ #define TADR_SCR01 0xf011a // シリアル通信動作設定レジスタ #define TADR_SDR00 0xfff10 // シリアルデータレジスタ0 #define TADR_SDR01 0xfff12 // シリアルデータレジスタ0 #define TADR_SOL0 0xf0134 // シリアル出力レベルレジスタ0 #define TADR_SO0 0xf0128 // シリアル出力レジスタ0 #define TADR_SOE0 0xf012a // シリアル出力許可レジスタ0 #define TADR_SSR00 0xf0100 // シリアルステータスレジスタ00 #define TADR_SSR01 0xf0102 // シリアルステータスレジスタ01 #define TADR_SS0 0xf0122 // シリアルチャネル開始レジスタ0 #define TADR_ST0 0xf0124 // シリアルチャネル停止レジスタ0 #define TADR_SIR01 0xf010a // シリアル・フラグ・クリア・トリガ・レジスタ01 #define TADR_NFEN0 0xf0070 // ノイズ・フィルタ許可レジスタ0 #define TBIT_SSRmn_BFF UINT16_C(0x0020) // チャネルnのバッファレジスタ状態表示フラグ #define TBIT_SSRmn_TSF UINT16_C(0x0040) // チャネルnの通信状態表示フラグ #define TBIT_SSRmnL_BFF UINT8_C(0x20) // チャネルnのバッファレジスタ状態表示フラグ #define TBIT_SSRmnL_TSF UINT8_C(0x40) // チャネルnの通信状態表示フラグ #define TBIT_SCRmn_TXEmn UINT16_C(0x8000) // チャネルnの動作モード(送信) #define TBIT_SCRmn_RXEmn UINT16_C(0x4000) // チャネルnの動作モード(受信) /* * I/Oポート */ #define TADR_PU0 0xf0030 #define TADR_POM0 0xf0050 #define TADR_PMC0 0xf0060 #define TADR_PM0 0xfff20 #define TADR_PM1 0xfff21 #define TADR_P0 0xfff00 #define TADR_P1 0xfff01 #define TADR_POM1 0xf0051 #define TADR_PIOR 0xf0077 #define TBIT_PIOR_PIOR1 UINT8_C(0x02) /* * 汎用ポートレジスタ */ #define TBIT_BIT0 0x01 #define TBIT_BIT1 0x02 #define TBIT_BIT2 0x04 #define TBIT_BIT3 0x08 #define TBIT_BIT4 0x10 #define TBIT_BIT5 0x20 #define TBIT_BIT6 0x40 #define TBIT_BIT7 0x80 #endif /* TOPPERS_RL78G13_H */