Ignore:
Timestamp:
May 22, 2019, 10:03:37 PM (5 years ago)
Author:
coas-nagasima
Message:

ビルドが通るよう更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • azure_iot_hub/trunk/asp3_dcre/target/gr_sakura_gcc/target_timer.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r388 r389  
    1414 *  Copyright (C) 2017      by Cores Co., Ltd. Japan
    1515 *
    16  *  上記著作権è€
    17 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    18  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    19  *  変・再é
    20 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    21  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    22  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    23  *      スコード中に含まれていること.
    24  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    25  *      用できる形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    27 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    28  *      è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    30  *      の無保証規定を掲載すること.
    31  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    32  *      用できない形で再é
    33 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    34  *      と.
    35  *    (a) 再é
    36 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    37 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    38  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    39  *    (b) 再é
    40 å¸ƒã®å½¢æ
    41 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    42  *        報告すること.
    43  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    44  *      害からも,上記著作権è€
    45 ãŠã‚ˆã³TOPPERSプロジェクトをå
    46 è²¬ã™ã‚‹ã“と.
    47  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    48  *      由に基づく請求からも,上記著作権è€
    49 ãŠã‚ˆã³TOPPERSプロジェクトを
    50  *      å
    51 è²¬ã™ã‚‹ã“と.
    52  *
    53  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    54 ãŠ
    55  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    56  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    57  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    58  *  の責任を負わない.
     16 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     17 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     18 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     19 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     20 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     21 *      スコード中に含まれていること.
     22 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     23 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     24 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     25 *      の無保証規定を掲載すること.
     26 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     27 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     28 *      と.
     29 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     30 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     31 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     32 *        報告すること.
     33 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     34 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     35 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     36 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     37 *      免責すること.
     38 *
     39 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     40 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     41 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     42 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     43 *  の責任を負わない.
    5944 *
    6045 *  @(#) $Id$
     
    6247
    6348/*
    64  *              タイマドライバ(GR-SAKURA用)
     49 *              タイマドライバ(GR-SAKURA用)
    6550 */
    6651 
     
    7358
    7459/*
    75  *  タイマ割込みハンドラ登録のための定数
    76  */
    77 #define INHNO_TIMER0    INT_CMT0_CMI                            /* 割込みハンドラ番号 */
    78 #define INTNO_TIMER0    INT_CMT0_CMI                            /* 割込み番号 */
    79 #define INTPRI_TIMER0   -5                                                      /* 割込み優å
    80 ˆåº¦ */
    81 #define INTATR_TIMER0   (TA_ENAINT | TA_EDGE)           /* 割込み属性 */
    82 
    83 #define INHNO_TIMER1    INT_CMT1_CMI                            /* 割込みハンドラ番号 */
    84 #define INTNO_TIMER1    INT_CMT1_CMI                            /* 割込み番号 */
    85 #define INTPRI_TIMER1   -5                                                      /* 割込み優å
    86 ˆåº¦ */
    87 #define INTATR_TIMER1   (TA_ENAINT | TA_EDGE)           /* 割込み属性 */
    88 
    89 /*
    90  *  オーバランタイマ割込みハンドラ登録のための定数
    91  */
    92 #define INHNO_TIMER2    INT_CMT2_CMI                            /* 割込みハンドラ番号 */
    93 #define INTNO_TIMER2    INT_CMT2_CMI                            /* 割込み番号 */
    94 #define INTPRI_TIMER2   -5                                                      /* 割込み優å
    95 ˆåº¦ */
    96 #define INTATR_TIMER2   (TA_ENAINT | TA_EDGE)           /* 割込み属性 */
    97 #define INTNO_OVR_BASE_TIMER    INTNO_TIMER1            /* 基本タイマに使うタイマ割込み番号 */
    98 #define INTNO_DUMMY_TIMER               255                                     /* ダミータイマ割込み番号 */
     60 *  タイマ割込みハンドラ登録のための定数
     61 */
     62#define INHNO_TIMER0    INT_CMT0_CMI                            /* 割込みハンドラ番号 */
     63#define INTNO_TIMER0    INT_CMT0_CMI                            /* 割込み番号 */
     64#define INTPRI_TIMER0   -5                                                      /* 割込み優先度 */
     65#define INTATR_TIMER0   (TA_ENAINT | TA_EDGE)           /* 割込み属性 */
     66
     67#define INHNO_TIMER1    INT_CMT1_CMI                            /* 割込みハンドラ番号 */
     68#define INTNO_TIMER1    INT_CMT1_CMI                            /* 割込み番号 */
     69#define INTPRI_TIMER1   -5                                                      /* 割込み優先度 */
     70#define INTATR_TIMER1   (TA_ENAINT | TA_EDGE)           /* 割込み属性 */
     71
     72/*
     73 *  オーバランタイマ割込みハンドラ登録のための定数
     74 */
     75#define INHNO_TIMER2    INT_CMT2_CMI                            /* 割込みハンドラ番号 */
     76#define INTNO_TIMER2    INT_CMT2_CMI                            /* 割込み番号 */
     77#define INTPRI_TIMER2   -5                                                      /* 割込み優先度 */
     78#define INTATR_TIMER2   (TA_ENAINT | TA_EDGE)           /* 割込み属性 */
     79#define INTNO_OVR_BASE_TIMER    INTNO_TIMER1            /* 基本タイマに使うタイマ割込み番号 */
     80#define INTNO_DUMMY_TIMER               255                                     /* ダミータイマ割込み番号 */
    9981
    10082#ifndef TOPPERS_MACRO_ONLY
    10183
    10284/*
    103  *  タイマ値のå†
    104 éƒ¨è¡¨ç¾ã®åž‹
     85 *  タイマ値の内部表現の型
    10586 */
    10687typedef uint16_t        CLOCK;
    10788
    10889/*
    109  *  タイマ値のå†
    110 éƒ¨è¡¨ç¾ã¨ãƒŸãƒªç§’単位との変換
    111  *
    112  *  1msのタイマー割り込みを使用するのでそのクロックを定義する.
    113  */
    114 #define TIMER_CLOCK                             (FREQ_PCLK / 8U)                /* PCLK/最低分周比8 = 6MHz */
     90 *  タイマ値の内部表現とミリ秒単位との変換
     91 *
     92 *  1msのタイマー割り込みを使用するのでそのクロックを定義する.
     93 */
     94#define TIMER_CLOCK                             (FREQ_PCLK / 8U)                /* PCLK/最低分周比8 = 6MHz */
    11595#define TO_CLOCK(nume, deno)    ((CLOCK)(TIMER_CLOCK * (nume) / (deno)))
    11696#define TO_USEC(clock)                  ((SYSUTM)((clock) * 1000U / TIMER_CLOCK))
    11797
    11898/*
    119  *  コンペアマッチタイマコンスタントレジスタ(CMCOR)
    120  *
    121  *  コンペアマッチ周期
    122  *  周辺モジュールクロック(PCLK)48MHzを8分周するので,
    123  *  6カウント = 1us : max 10922.667us
     99 *  コンペアマッチタイマコンスタントレジスタ(CMCOR)
     100 *
     101 *  コンペアマッチ周期
     102 *  周辺モジュールクロック(PCLK)48MHzを8分周するので,
     103 *  6カウント = 1us : max 10922.667us
    124104 */
    125105#define CMCOR_PERIOD    (0x10000U)
    126106
    127107/*
    128  * カウント < - > マイクロ秒 変換値
     108 * カウント < - > マイクロ秒 変換値
    129109 * 48MHz / 8 / 1000
    130110 */
     
    132112
    133113/*
    134  *  高分解能タイマのタイマ周期
     114 *  高分解能タイマのタイマ周期
    135115 *
    136116 *  2^32 / 6
     
    139119
    140120/*
    141  *  高分解能タイマのカウント値の進みå¹
    142 
     121 *  高分解能タイマのカウント値の進み幅
    143122 */
    144123#define TSTEP_HRTCNT    1U
    145124
    146125/*
    147  *  性能評価用システム時刻を取り出す際の処理時間の見積り値(単位はå†
    148 éƒ¨è¡¨ç¾ï¼‰
    149  */
    150 #define GET_TOLERANCE   (100U)  /* 処理é
    151 ã‚Œã®è¦‹ç©ã‚Šå€¤ï¼ˆå˜ä½ã¯å†
    152 éƒ¨è¡¨ç¾ï¼‰*/
     126 *  性能評価用システム時刻を取り出す際の処理時間の見積り値(単位は内部表現)
     127 */
     128#define GET_TOLERANCE   (100U)  /* 処理遅れの見積り値(単位は内部表現)*/
    153129#define BEFORE_IREQ(clock) \
    154130                ((clock) >= (TO_CLOCK(TIC_NUME, TIC_DENO) - GET_TOLERANCE))
    155131
    156132/*
    157  *  コンペアマッチタイマコントロールレジスタの設定値
    158  */
    159 /*
    160  *  クロック選択ビット
    161  *
    162  *  bit7は予約領域であり, 書込みは1固定
     133 *  コンペアマッチタイマコントロールレジスタの設定値
     134 */
     135/*
     136 *  クロック選択ビット
     137 *
     138 *  bit7は予約領域であり, 書込みは1固定
    163139 */
    164140#define CMT_PCLK_DIV_8                  (0x0080U)
     
    168144
    169145/*
    170  * コンペアマッチタイマ割り込み要求å
    171 ˆè¨­å®šãƒ¬ã‚¸ã‚¹ã‚¿i(ISELRi)(i= 割り込みベクタ番号)
     146 * コンペアマッチタイマ割り込み要求先設定レジスタi(ISELRi)(i= 割り込みベクタ番号)
    172147 */
    173148#define ICU_ISEL_CPU                    (0x00U)
    174149
    175150/*
    176  *  タイマの起動処理
    177  *
    178  *  タイマを初期化し,周期的なタイマ割込み要求を発生させる.
     151 *  タイマの起動処理
     152 *
     153 *  タイマを初期化し,周期的なタイマ割込み要求を発生させる.
    179154 */
    180155extern void     target_timer_initialize(intptr_t exinf);
    181156
    182157/*
    183  *  タイマの停止処理
    184  *
    185  *  タイマの動作を停止させる.
     158 *  タイマの停止処理
     159 *
     160 *  タイマの動作を停止させる.
    186161 */
    187162extern void     target_timer_terminate(intptr_t exinf);
    188163
    189164/*
    190  *  タイマレジスタ値の読み出し
     165 *  タイマレジスタ値の読み出し
    191166 */
    192167Inline uint16_t rx630_cmt_getcount(void)
     
    196171
    197172/*
    198  *  タイマレジスタ値の書き込み
     173 *  タイマレジスタ値の書き込み
    199174 */
    200175Inline void rx630_cmt_setcount(uint16_t count)
     
    204179
    205180/*
    206  *  タイマの現在値の読出し
     181 *  タイマの現在値の読出し
    207182 */
    208183Inline CLOCK
    209184target_timer_get_current(void)
    210185{
    211         /* アップカウントのためタイマレジスタ値をそのまま返す  */
     186        /* アップカウントのためタイマレジスタ値をそのまま返す    */
    212187        return (rx630_cmt_getcount());
    213188}
    214189
    215190/*
    216  *  タイマ割込み要求のチェック
     191 *  タイマ割込み要求のチェック
    217192 */
    218193Inline bool_t
     
    223198
    224199/*
    225  *  タイマ割込みハンドラ
     200 *  タイマ割込みハンドラ
    226201 */
    227202extern void     target_lower_timer_handler(void);
     
    229204
    230205/*
    231  *  割込みタイミングに指定する最大値
     206 *  割込みタイミングに指定する最大値
    232207 */
    233208#define HRTCNT_BOUND    100000002U
    234209
    235210/*
    236  *  高分解能タイマへの割込みタイミングの設定
    237  *
    238  *  高分解能タイマを,hrtcntで指定した値カウントアップしたら割込みを発
    239  *  生させるように設定する.
     211 *  高分解能タイマへの割込みタイミングの設定
     212 *
     213 *  高分解能タイマを,hrtcntで指定した値カウントアップしたら割込みを発
     214 *  生させるように設定する.
    240215 */
    241216extern void target_hrt_set_event(HRTCNT hrtcnt);
    242217
    243218/*
    244  *  高分解能タイマ割込みの要求
     219 *  高分解能タイマ割込みの要求
    245220 */
    246221extern  void target_hrt_raise_event(void);
    247222
    248223/*
    249  *  高分解能タイマの現在のカウント値の読出し å†
    250 éƒ¨å‡¦ç†
     224 *  高分解能タイマの現在のカウント値の読出し 内部処理
    251225 */
    252226extern HRTCNT target_hrt_get_current_convert(void);
    253227
    254228/*
    255  *  高分解能タイマの現在のカウント値の読出し
     229 *  高分解能タイマの現在のカウント値の読出し
    256230 */
    257231Inline HRTCNT
     
    264238
    265239/*
    266  *  オーバランタイマの初期化処理
     240 *  オーバランタイマの初期化処理
    267241 */
    268242extern void target_ovrtimer_initialize(intptr_t exinf);
    269243
    270244/*
    271  *  オーバランタイマの停止処理
     245 *  オーバランタイマの停止処理
    272246 */
    273247extern void target_ovrtimer_terminate(intptr_t exinf);
    274248
    275249/*
    276  *  オーバランタイマの動作開始
     250 *  オーバランタイマの動作開始
    277251 */
    278252extern void target_ovrtimer_start(PRCTIM ovrtim);
    279253
    280254/*
    281  *  オーバランタイマの停止
     255 *  オーバランタイマの停止
    282256 */
    283257extern PRCTIM target_ovrtimer_stop(uint_t int_num);
    284258
    285259/*
    286  *  オーバランタイマの現在値の読出し
     260 *  オーバランタイマの現在値の読出し
    287261 */
    288262extern PRCTIM target_ovrtimer_get_current(void);
    289263
    290264/*
    291  *  オーバランタイマの割込みの要求
     265 *  オーバランタイマの割込みの要求
    292266 */
    293267extern  void target_ovrtimer_raise_event(void);
    294268
    295269/*
    296  *  オーバランタイマ割込みハンドラ
     270 *  オーバランタイマ割込みハンドラ
    297271 */
    298272extern void     target_ovrtimer_handler(void);
Note: See TracChangeset for help on using the changeset viewer.