Ignore:
Timestamp:
Aug 3, 2017, 10:46:41 PM (7 years ago)
Author:
coas-nagasima
Message:

プロパティの文字コードにUTF-8を追加、キーワードを削除

Location:
asp3_gr_sakura/trunk/arch
Files:
29 edited

Legend:

Unmodified
Added
Removed
  • asp3_gr_sakura/trunk/arch/gcc/tool_stddef.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r317 r318  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
    46  *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
     32 *
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              t_stddef.hの開発環境依存部(GCC用)
     43 *              t_stddef.hの開発環境依存部(GCC用)
    5944 */
    6045
     
    6348
    6449/*
    65  *  コンパイラの拡張機能のためのマクロ定義
    66  */
    67 #ifndef __cplusplus                                     /* C++にはinline がある */
     50 *  コンパイラの拡張機能のためのマクロ定義
     51 */
     52#ifndef __cplusplus                                     /* C++にはinline がある */
    6853#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L
    69                                                                         /* C99にはinline がある */
    70 #define inline  __inline__                      /* インライン関数 */
     54                                                                        /* C99にはinline がある */
     55#define inline  __inline__                      /* インライン関数 */
    7156#endif /* !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L */
    7257#endif /* __cplusplus */
    7358
    74 #define Inline  static inline           /* インライン関数 */
    75 
    76 #ifndef __cplusplus                                     /* C++にはasmがある */
    77 #define asm             __asm__                         /* インラインアセンブラ */
     59#define Inline  static inline           /* インライン関数 */
     60
     61#ifndef __cplusplus                                     /* C++にはasmがある */
     62#define asm             __asm__                         /* インラインアセンブラ */
    7863#endif /* __cplusplus */
    7964
    80 #define Asm             __asm__ volatile        /* インラインアセンブラ(最適化抑止)*/
     65#define Asm             __asm__ volatile        /* インラインアセンブラ(最適化抑止)*/
    8166
    8267#define NoReturn        __attribute__((__noreturn__))
    83                                                                         /* リターンしない関数 */
    84 
    85 /*
    86  *  開発環境の標準インクルードファイルの利用
    87  *
    88  *  NULLの定義をstddef.hから,INT_MAX,INT_MIN,UINT_MAX,LONG_MAX,
    89  *  LONG_MIN,ULONG_MAX,CHAR_BITの定義をlimits.hから取り込む.
    90  *
    91  *  C++/EC++では,標準仕様上はこれらのインクルードファイルが用意されて
    92  *  いるとは限らないので注意がå¿
    93 è¦ã§ã‚る(ほとんどの開発環境で用意され
    94  *  ている).
     68                                                                        /* リターンしない関数 */
     69
     70/*
     71 *  開発環境の標準インクルードファイルの利用
     72 *
     73 *  NULLの定義をstddef.hから,INT_MAX,INT_MIN,UINT_MAX,LONG_MAX,
     74 *  LONG_MIN,ULONG_MAX,CHAR_BITの定義をlimits.hから取り込む.
     75 *
     76 *  C++/EC++では,標準仕様上はこれらのインクルードファイルが用意されて
     77 *  いるとは限らないので注意が必要である(ほとんどの開発環境で用意され
     78 *  ている).
    9579 */
    9680#ifndef TOPPERS_MACRO_ONLY
     
    10084
    10185/*
    102  *  stdint.hの代用となる定義
    103  *
    104  *  開発環境にstdint.hが用意されておらず,各整数型のサイズがあるパター
    105  *  ンに当てはまる場合に,stdint.hの代用となる定義を与える.
    106  *
    107  *  TOPPERS_STDINT_TYPE1: char/short/int/long longのビット長がそれぞれ
    108  *                        8/16/32/64ビットで,ポインタのビット長がlong
    109  *                        のビット長と一致する場合
     86 *  stdint.hの代用となる定義
     87 *
     88 *  開発環境にstdint.hが用意されておらず,各整数型のサイズがあるパター
     89 *  ンに当てはまる場合に,stdint.hの代用となる定義を与える.
     90 *
     91 *  TOPPERS_STDINT_TYPE1: char/short/int/long longのビット長がそれぞれ
     92 *                        8/16/32/64ビットで,ポインタのビット長がlong
     93 *                        のビット長と一致する場合
    11094 */
    11195#ifdef TOPPERS_STDINT_TYPE1
    11296
    11397/*
    114  *  コンパイラ依存のデータ型の定義
     98 *  コンパイラ依存のデータ型の定義
    11599 */
    116100#ifndef TOPPERS_MACRO_ONLY
    117101
    118 typedef signed char                     int8_t;         /* 符号付き8ビット整数 */
    119 typedef unsigned char           uint8_t;        /* 符号無し8ビット整数 */
    120 
    121 typedef signed short            int16_t;        /* 符号付き16ビット整数 */
    122 typedef unsigned short          uint16_t;       /* 符号無し16ビット整数 */
    123 
    124 typedef signed int                      int32_t;        /* 符号付き32ビット整数 */
    125 typedef unsigned int            uint32_t;       /* 符号無し32ビット整数 */
    126 
    127 typedef signed long long        int64_t;        /* 符号付き64ビット整数 */
    128 typedef unsigned long long      uint64_t;       /* 符号無し64ビット整数 */
    129 
    130 typedef int8_t                          int_least8_t;   /* 8ビット以上の符号付き整数 */
    131 typedef uint8_t                         uint_least8_t;  /* 8ビット以上の符号無し整数 */
    132 
    133 typedef long                            intptr_t;       /* ポインタを格納できる符号付き整数 */
    134 typedef unsigned long           uintptr_t;      /* ポインタを格納できる符号無し整数 */
     102typedef signed char                     int8_t;         /* 符号付き8ビット整数 */
     103typedef unsigned char           uint8_t;        /* 符号無し8ビット整数 */
     104
     105typedef signed short            int16_t;        /* 符号付き16ビット整数 */
     106typedef unsigned short          uint16_t;       /* 符号無し16ビット整数 */
     107
     108typedef signed int                      int32_t;        /* 符号付き32ビット整数 */
     109typedef unsigned int            uint32_t;       /* 符号無し32ビット整数 */
     110
     111typedef signed long long        int64_t;        /* 符号付き64ビット整数 */
     112typedef unsigned long long      uint64_t;       /* 符号無し64ビット整数 */
     113
     114typedef int8_t                          int_least8_t;   /* 8ビット以上の符号付き整数 */
     115typedef uint8_t                         uint_least8_t;  /* 8ビット以上の符号無し整数 */
     116
     117typedef long                            intptr_t;       /* ポインタを格納できる符号付き整数 */
     118typedef unsigned long           uintptr_t;      /* ポインタを格納できる符号無し整数 */
    135119
    136120#endif /* TOPPERS_MACRO_ONLY */
    137121
    138122/*
    139  *  コンパイラ依存のデータ型の整数定数を作るマクロ
     123 *  コンパイラ依存のデータ型の整数定数を作るマクロ
    140124 */
    141125#ifndef INT8_C
     
    172156
    173157/*
    174  *  コンパイラ依存のデータ型に格納できる最大値と最小値の定義
     158 *  コンパイラ依存のデータ型に格納できる最大値と最小値の定義
    175159 */
    176160#define INT8_MAX                        SCHAR_MAX
     
    197181
    198182/*
    199  *  浮動小数点型に関する定義
    200  *
    201  *  TOPPERS_STDFLOAT_TYPE1: floatがIEEE754準拠の単精度浮動小数点数,
    202  *                                                      doubleが倍精度浮動小数点数の場合
     183 *  浮動小数点型に関する定義
     184 *
     185 *  TOPPERS_STDFLOAT_TYPE1: floatがIEEE754準拠の単精度浮動小数点数,
     186 *                                                      doubleが倍精度浮動小数点数の場合
    203187 */
    204188#ifdef TOPPERS_STDFLOAT_TYPE1
    205189#ifndef TOPPERS_MACRO_ONLY
    206190
    207 typedef float           float32_t;                      /* IEEE754準拠の単精度浮動小数点数 */
    208 typedef double          double64_t;                     /* IEEE754準拠の倍精度浮動小数点数 */
     191typedef float           float32_t;                      /* IEEE754準拠の単精度浮動小数点数 */
     192typedef double          double64_t;                     /* IEEE754準拠の倍精度浮動小数点数 */
    209193
    210194#endif /* TOPPERS_MACRO_ONLY */
  • asp3_gr_sakura/trunk/arch/rx630_gcc/Makefile.prc

    • Property svn:mime-type changed from text/x-makefile to text/x-makefile; charset=UTF-8
    r317 r318  
    11#
    2 #               Makefileのプロセッサ依存部(M68040用)
     2#               Makefileのプロセッサ依存部(M68040用)
    33#
    44
    55#
    6 #  GNU開発環境のターゲットアーキテクチャの定義
     6#  GNU開発環境のターゲットアーキテクチャの定義
    77#
    88GCC_TARGET = rx-elf
    99
    1010#
    11 ãƒ—ロセッサ依存部ディレクトリ名の定義
     11プロセッサ依存部ディレクトリ名の定義
    1212#
    1313PRCDIR = $(SRCDIR)/arch/$(PRC)_$(TOOL)
    1414
    1515#
    16 ãƒ„ール依存部ディレクトリ名の定義
     16ツール依存部ディレクトリ名の定義
    1717#
    1818TOOLDIR = $(SRCDIR)/arch/$(TOOL)
    1919
    2020#
    21 ã‚³ãƒ³ãƒ‘イルオプション
     21コンパイルオプション
    2222#
    2323INCLUDES := $(INCLUDES) -I$(TOOLDIR) -I$(PRCDIR)
     
    2626
    2727#
    28 ã‚«ãƒ¼ãƒãƒ«ã«é–¢ã™ã‚‹å®šç¾©
     28カーネルに関する定義
    2929#
    3030KERNEL_DIRS := $(KERNEL_DIRS) $(PRCDIR)
     
    3333
    3434#
    35 ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚¿é–¢ä¿‚の変数の定義
     35コンフィギュレータ関係の変数の定義
    3636#
    3737CFG_TABS := $(CFG_TABS) --symval-table $(PRCDIR)/prc_sym.def
    3838
    3939#
    40 ã‚ªãƒ•ã‚»ãƒƒãƒˆãƒ•ã‚¡ã‚¤ãƒ«ç”Ÿæˆã®ãŸã‚ã®å®šç¾©
     40オフセットファイル生成のための定義
    4141#
    4242TARGET_OFFSET_TRB = $(PRCDIR)/prc_offset.trb
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_cfg1_out.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r317 r318  
    11/*
    2  *              cfg1_out.cのリンクにå¿
    3 è¦ãªã‚¹ã‚¿ãƒ–の定義
     2 *              cfg1_out.cのリンクに必要なスタブの定義
    43 */
    54
     
    2120
    2221/*
    23  *  オフセットファイルを生成するための定義
     22 *  オフセットファイルを生成するための定義
    2423 */
    2524const uint8_t   MAGIC_1 = 0x12;
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_check.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r317 r318  
    11# -*- coding: utf-8 -*-
    22#
    3 #               ãƒ‘ス3の生成スクリプトのコア依存部(ARM用)
     3#               パス3の生成スクリプトのコア依存部(ARM用)
    44#
    5 #  $Id: core_check.trb 730 2016-04-03 02:04:52Z ertl-hiro $
     5#  $Id$
    66#
    77
    88#
    9 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆéžä¾å­˜éƒ¨ã®ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰
     9ターゲット非依存部のインクルード
    1010#
    1111IncludeTrb("kernel/kernel_check.trb")
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_insn.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r317 r318  
    1010 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    1111 *
    12  *  上記著作権è€
    13 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    14  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    15  *  変・再é
    16 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    17  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    18  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    19  *      スコード中に含まれていること.
    20  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    21  *      用できる形で再é
    22 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    23 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    24  *      è€
    25 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    26  *      の無保証規定を掲載すること.
    27  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    28  *      用できない形で再é
    29 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    30  *      と.
    31  *    (a) 再é
    32 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    33 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    34  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    35  *    (b) 再é
    36 å¸ƒã®å½¢æ
    37 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    38  *        報告すること.
    39  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    40  *      害からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトをå
    42 è²¬ã™ã‚‹ã“と.
    43  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    44  *      由に基づく請求からも,上記著作権è€
    45 ãŠã‚ˆã³TOPPERSプロジェクトを
    46  *      å
    47 è²¬ã™ã‚‹ã“と.
     12 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     13 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17 *      スコード中に含まれていること.
     18 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21 *      の無保証規定を掲載すること.
     22 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24 *      と.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28 *        報告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33 *      免責すること.
    4834 *
    49  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    50 ãŠ
    51  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    52  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    53  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    54  *  の責任を負わない.
     35 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39 *  の責任を負わない.
    5540 *
    5641 *  @(#) $Id$
     
    5843
    5944/*
    60  *              プロセッサの特殊命令のインライン関数定義(RX630用)
     45 *              プロセッサの特殊命令のインライン関数定義(RX630用)
    6146 */
    6247
     
    7661
    7762/*
    78  *  Iフラグ, IPLを取得するためのマクロ定義
     63 *  Iフラグ, IPLを取得するためのマクロ定義
    7964 */
    8065#define PSW_I_MASK              ( 0x00010000UL )
     
    8469
    8570/*
    86  *  Iフラグ, IPLを取得するためのマクロ定義
     71 *  Iフラグ, IPLを取得するためのマクロ定義
    8772 */
    8873#define PSW_I_MASK              ( 0x00010000 )
     
    9479
    9580/*
    96  *  プロセッサステータスレジスタ(PSW)の現在値の読出し
     81 *  プロセッサステータスレジスタ(PSW)の現在値の読出し
    9782 */
    9883static uint32_t
     
    10691
    10792/*
    108  *  プロセッサステータスレジスタ(PSW)へ設定
     93 *  プロセッサステータスレジスタ(PSW)へ設定
    10994 */
    11095static void
     
    116101
    117102/*
    118  *  IPLの現在値の読出し
     103 *  IPLの現在値の読出し
    119104 */
    120105Inline uint32_t
     
    126111
    127112/*
    128  *  IPLへ設定
     113 *  IPLへ設定
    129114 */
    130115Inline void
     
    136121
    137122/*
    138  *  NMIを除くすべての割込みの禁止
     123 *  NMIを除くすべての割込みの禁止
    139124 */
    140125static void
     
    146131
    147132/*
    148  *  NMIを除くすべての割込みの許可
     133 *  NMIを除くすべての割込みの許可
    149134 */
    150135static void
     
    156141
    157142/*
    158  *  エンディアン変換 16bit
     143 *  エンディアン変換 16bit
    159144 */
    160145static uint16_t
     
    166151
    167152/*
    168  *  エンディアン変換 32bit
     153 *  エンディアン変換 32bit
    169154 */
    170155static uint32_t
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_kernel.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r317 r318  
    66 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  @(#) $Id$
     
    5439
    5540/*
    56  *              kernel.hのプロセッサ依存部(RX630用)
     41 *              kernel.hのプロセッサ依存部(RX630用)
    5742 *
    58  *  このインクルードファイルは,target_kernel.h(または,そこからインク
    59  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    60  *  直接インクルードしてはならない.
     43 *  このインクルードファイルは,target_kernel.h(または,そこからインク
     44 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     45 *  直接インクルードしてはならない.
    6146 */
    6247
     
    6550
    6651/*
    67  *  カーネル本体をコンパイルするためのマクロ定義
     52 *  カーネル本体をコンパイルするためのマクロ定義
    6853 */
    6954//#define ALLFUNC
     
    7156
    7257/*
    73  *  サポートする機能の定義
     58 *  サポートする機能の定義
    7459 */
    75 #define TOPPERS_TARGET_SUPPORT_DIS_INT          /* dis_intをサポートする */
    76 #define TOPPERS_TARGET_SUPPORT_ENA_INT          /* ena_intをサポートする */
    77 #define TOPPERS_TARGET_SUPPORT_CLR_INT          /* clr_intをサポートする */
    78 #define TOPPERS_TARGET_SUPPORT_RAS_INT          /* ras_intをサポートする */
    79 #define TOPPERS_TARGET_SUPPORT_PRB_INT          /* prb_intをサポートする */
     60#define TOPPERS_TARGET_SUPPORT_DIS_INT          /* dis_intをサポートする */
     61#define TOPPERS_TARGET_SUPPORT_ENA_INT          /* ena_intをサポートする */
     62#define TOPPERS_TARGET_SUPPORT_CLR_INT          /* clr_intをサポートする */
     63#define TOPPERS_TARGET_SUPPORT_RAS_INT          /* ras_intをサポートする */
     64#define TOPPERS_TARGET_SUPPORT_PRB_INT          /* prb_intをサポートする */
    8065
    8166/*
    82  *  カーネル管理の割込み優å
    83 ˆåº¦ã®ç¯„囲
     67 *  カーネル管理の割込み優先度の範囲
    8468 *
    85  *  TMIN_INTPRIの定義を変更することで,どのレベルよりも高い割込み優å
    86 ˆåº¦
    87  *  を持つものをカーネル管理外の割込みとするかを変更できる.
     69 *  TMIN_INTPRIの定義を変更することで,どのレベルよりも高い割込み優先度
     70 *  を持つものをカーネル管理外の割込みとするかを変更できる.
    8871 *
    89  *  TMIN_INTPRIに設定できる値は,-15~-1の範囲である.例えばTMIN_INTPRI
    90  *  を-14に設定すると,NMIに加えてレベル7の割込みがカーネル管理外となる.
    91  *  TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
    92  *  設けないことになる.
     72 *  TMIN_INTPRIに設定できる値は,-15~-1の範囲である.例えばTMIN_INTPRI
     73 *  を-14に設定すると,NMIに加えてレベル7の割込みがカーネル管理外となる.
     74 *  TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
     75 *  設けないことになる.
    9376 */
    9477#ifndef TMIN_INTPRI
    95 #define TMIN_INTPRI             ( -15 )         /* 割込み優å
    96 ˆåº¦ã®æœ€å°å€¤ï¼ˆæœ€é«˜å€¤ï¼‰*/
     78#define TMIN_INTPRI             ( -15 )         /* 割込み優先度の最小値(最高値)*/
    9779#endif /* TMIN_INTPRI */
    98 #define TMAX_INTPRI             ( -1 )          /* 割込み優å
    99 ˆåº¦ã®æœ€å¤§å€¤ï¼ˆæœ€ä½Žå€¤ï¼‰ */
     80#define TMAX_INTPRI             ( -1 )          /* 割込み優先度の最大値(最低値) */
    10081
    10182
    10283/*
    103  *  割込み属性の定義
     84 *  割込み属性の定義
    10485 */
    105 #define TA_POSEDGE              TA_EDGE                 /* ポジティブエッジトリガ */
    106 #define TA_NEGEDGE              UINT_C( 0x04 )  /* ネガティブエッジトリガ */
    107 #define TA_BOTHEDGE             UINT_C( 0x08 )  /* 両エッジトリガ */
     86#define TA_POSEDGE              TA_EDGE                 /* ポジティブエッジトリガ */
     87#define TA_NEGEDGE              UINT_C( 0x04 )  /* ネガティブエッジトリガ */
     88#define TA_BOTHEDGE             UINT_C( 0x08 )  /* 両エッジトリガ */
    10889
    109 #define TA_LOWLEVEL             UINT_C( 0x10 )  /* Lレベル */
     90#define TA_LOWLEVEL             UINT_C( 0x10 )  /* Lレベル */
    11091
    11192
    11293/*
    113  *  デフォルトの割込み/例外ハンドラの有無
     94 *  デフォルトの割込み/例外ハンドラの有無
    11495 */
    11596/*#define       OMIT_DEFAULT_INT_HANDLER*/
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_kernel.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r317 r318  
    99#               Graduate School of Information Science, Nagoya Univ., JAPAN
    1010#
    11 #   ä¸Šè¨˜è‘—作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    14 #   å¤‰ãƒ»å†é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    18 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    19 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23 #       è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    26 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27 #       ç”¨ã§ããªã„形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29 #       ã¨ï¼Ž
    30 #     (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    34 #     (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37 #         å ±å‘Šã™ã‚‹ã“と.
    38 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    43 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45 #       å
    46 è²¬ã™ã‚‹ã“と.
    47 #
    48 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    49 ãŠ
    50 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    52 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    53 #   ã®è²¬ä»»ã‚’負わない.
    54 #
    55 #   $Id: core_kernel.trb 662 2016-02-27 02:33:51Z ertl-hiro $
    56 #
    57 
    58 #
    59 #               ãƒ‘ス2の生成スクリプトのコア依存部(RX用)
    60 #
    61 
    62 #
    63 #  割込み番号と割込みハンドラ番号の定義
    64 #
    65 #  RX630では割込み番号と割込みハンドラ番号が1対1で対応する.
     11#   上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16#       スコード中に含まれていること.
     17#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20#       の無保証規定を掲載すること.
     21#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23#       と.
     24#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     26#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27#         報告すること.
     28#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32#       免責すること.
     33#
     34#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38#   の責任を負わない.
     39#
     40#   $Id$
     41#
     42
     43#
     44#               パス2の生成スクリプトのコア依存部(RX用)
     45#
     46
     47#
     48#  割込み番号と割込みハンドラ番号の定義
     49#
     50#  RX630では割込み番号と割込みハンドラ番号が1対1で対応する.
    6651#
    6752$INTNO_VALID = [ 16, 21, 23, *(27..59), 62, *(64..79), 90, 91, 92, 93, 98, 102, *(106..112), 114, *(122..167), *(170..203), *(214..253) ]
     
    6954
    7055#
    71 ä¾‹å¤–番号の定義
    72 #
    73 å›ºå®šãƒ™ã‚¯ã‚¿ãƒ†ãƒ¼ãƒ–ルのベクタテーブルアドレスの小さい順番に例外番号を割振る.
    74 #  (予約領域も含む)
     56例外番号の定義
     57#
     58固定ベクタテーブルのベクタテーブルアドレスの小さい順番に例外番号を割振る.
     59#  (予約領域も含む)
    7560#
    7661
     
    7863
    7964#
    80 #  INT割込みの番号
     65#  INT割込みの番号
    8166#
    8267
     
    8469
    8570#
    86 å‰²è¾¼ã¿ç•ªå·ï¼Œå‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ç•ªå·ï¼Œä¾‹å¤–番号の範囲
    87 #
    88 # (予約領域も含む)
     71割込み番号,割込みハンドラ番号,例外番号の範囲
     72#
     73# (予約領域も含む)
    8974#
    9075
     
    9479
    9580#
    96 #  ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号
     81#  ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号
    9782#
    9883
     
    10287
    10388#
    104 #  DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号
     89#  DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号
    10590#
    10691
     
    11095
    11196#
    112 #  CFG_INTで使用できる割込み番号と割込み優å
    113 ˆåº¦
     97#  CFG_INTで使用できる割込み番号と割込み優先度
    11498#
    11599
     
    119103
    120104#
    121 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆéžä¾å­˜éƒ¨ã«å«ã¾ã‚Œã‚‹æ¨™æº–の割込み管理機能/例外管理機能の初期化処理を使用する
     105ターゲット非依存部に含まれる標準の割込み管理機能/例外管理機能の初期化処理を使用する
    122106#
    123107
     
    127111
    128112#
    129 ã‚¹ã‚¿ãƒƒã‚¯ã‚µã‚¤ã‚ºã®ãƒã‚§ãƒƒã‚¯æ–¹æ³•æŒ‡å®š
     113スタックサイズのチェック方法指定
    130114#
    131115
     
    134118
    135119#
    136 #  タスクスタックサイズの最小値
    137 #
    138 #  タスク起動時に4byte,
    139 #  割込みå
    140 ¥å£å‡¦ç†ã«ã¦48byte, CPU例外å
    141 ¥å£å‡¦ç†ã«ã¦84byte,
    142 #  であるため, 最小値は88byteとする.
     120#  タスクスタックサイズの最小値
     121#
     122#  タスク起動時に4byte,
     123#  割込み入口処理にて48byte, CPU例外入口処理にて84byte,
     124#  であるため, 最小値は88byteとする.
    143125#
    144126
     
    146128
    147129#
    148 å®šæ•°å®šç¾©
     130定数定義
    149131#
    150132
     
    152134
    153135#
    154 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆå®šç¾©ã®å‰²è¾¼ã¿è¦æ±‚ライン属性
     136ターゲット定義の割込み要求ライン属性
    155137#
    156138$TARGET_INTATR = $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE|$TA_LOWLEVEL
    157139
    158140#
    159 # ターゲット依存の割込みハンドラ属性の定義
     141# ターゲット依存の割込みハンドラ属性の定義
    160142#
    161143
     
    164146
    165147#
    166 # カーネル管理外割込みハンドラは固定させないため,
     148# カーネル管理外割込みハンドラは固定させないため,
    167149# INTNO_FIX_KERNEL
    168150# INHNO_FIX_KERNEL
    169151# INHNO_FIX_NONKERNEL
    170152# INHNO_FIX_NONKERNEL
    171 # を定義しない.
     153# を定義しない.
    172154#
    173155
     
    176158
    177159#
    178 æ¨™æº–テンプレートファイルのインクルード
     160標準テンプレートファイルのインクルード
    179161#
    180162IncludeTrb("kernel/kernel.trb")
    181163
    182164#
    183 #  割込み番号から割込み優å
    184 ˆåº¦åŠã³å±žæ€§ã‚’取り出すテーブル
     165#  割込み番号から割込み優先度及び属性を取り出すテーブル
    185166#
    186167$kernelCfgC.comment_header("Interrupt Level and Attribute Table")
     
    201182
    202183#
    203 å‰²è¾¼ã¿ãƒ™ã‚¯ã‚¿åŠã³å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©å®šç¾©
     184割込みベクタ及び割込みハンドラ定義
    204185#
    205186$kernelCfgAsm.add(<<EOS)
    206187;
    207 ;  RX630アーキテクチャ依存出力ファイル
    208 ;
    209 å‰²è¾¼ã¿ãƒ™ã‚¯ã‚¿åŠã³å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©å®šç¾©
     188;  RX630アーキテクチャ依存出力ファイル
     189;
     190割込みベクタ及び割込みハンドラ定義
    210191;
    211192
     
    277258$kernelCfgAsm.append(<<EOS)
    278259;
    279 å¯å¤‰ãƒ™ã‚¯ã‚¿ãƒ†ãƒ¼ãƒ–ル
     260可変ベクタテーブル
    280261;
    281262
     
    305286$kernelCfgAsm.append(<<EOS)
    306287;
    307 å›ºå®šãƒ™ã‚¯ã‚¿ãƒ†ãƒ¼ãƒ–ル
     288固定ベクタテーブル
    308289;
    309290
     
    318299         .word   0FFFFFFFFH      ; OFS0
    319300         .space  010H
    320          .word   0FFFFFFFFH      ; 制御コード, IDコード1 - 3
    321          .word   0FFFFFFFFH      ; IDコード4 - 7
    322          .word   0FFFFFFFFH      ; IDコード8 - 11
    323          .word   0FFFFFFFFH      ; IDコード12 - 15
     301         .word   0FFFFFFFFH      ; 制御コード, IDコード1 - 3
     302         .word   0FFFFFFFFH      ; IDコード4 - 7
     303         .word   0FFFFFFFFH      ; IDコード8 - 11
     304         .word   0FFFFFFFFH      ; IDコード12 - 15
    324305EOS
    325306(12..30).each do |excnoVal|
     
    338319
    339320#
    340 å‰²è¾¼ã¿è¦æ±‚ライン属性に関するターゲット依存のエラーチェック
     321割込み要求ライン属性に関するターゲット依存のエラーチェック
    341322#
    342323$cfgData[:CFG_INT].each do |key, params|
    343   # IRQ割込み番号かどうかをチェック
     324  # IRQ割込み番号かどうかをチェック
    344325  if $INTNO_INT.include?(key)
    345     # TA_POSEDGEとTA_NEGEDGEが同時に設定されている場合
     326    # TA_POSEDGEとTA_NEGEDGEが同時に設定されている場合
    346327    if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE) == $TA_POSEDGE|$TA_NEGEDGE
    347328      error_illegal_sym("E_RSATR", params, :intatr, :intno)
    348329    end
    349     # TA_POSEDGEとTA_BOTHEDGEが同時に設定されている場合
     330    # TA_POSEDGEとTA_BOTHEDGEが同時に設定されている場合
    350331    if (params[:intatr].val & $TA_POSEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_BOTHEDGE
    351332      error_illegal_sym("E_RSATR", params, :intatr, :intno)
    352333    end
    353     # TA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
     334    # TA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
    354335    if (params[:intatr].val & $TA_NEGEDGE|$TA_BOTHEDGE) == $TA_NEGEDGE|$TA_BOTHEDGE
    355336      error_illegal_sym("E_RSATR", params, :intatr, :intno)
    356337    end
    357     # TA_POSEDGEとTA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
     338    # TA_POSEDGEとTA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
    358339    if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE
    359340      error_illegal_sym("E_RSATR", params, :intatr, :intno)
    360341    end
    361342  else
    362     # IRQ割込み以外の割込みに対して割込み属性が指定されている場合
     343    # IRQ割込み以外の割込みに対して割込み属性が指定されている場合
    363344    if (params[:intatr].val & (~($TA_ENAINT|$TA_EDGE))) != 0
    364345      error_illegal_sym("E_RSATR", params, :intatr, :intno)
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_kernel_impl.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r317 r318  
    1010 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    1111 *
    12  *  上記著作権è€
    13 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    14  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    15  *  変・再é
    16 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    17  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    18  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    19  *      スコード中に含まれていること.
    20  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    21  *      用できる形で再é
    22 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    23 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    24  *      è€
    25 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    26  *      の無保証規定を掲載すること.
    27  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    28  *      用できない形で再é
    29 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    30  *      と.
    31  *    (a) 再é
    32 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    33 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    34  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    35  *    (b) 再é
    36 å¸ƒã®å½¢æ
    37 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    38  *        報告すること.
    39  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    40  *      害からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトをå
    42 è²¬ã™ã‚‹ã“と.
    43  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    44  *      由に基づく請求からも,上記著作権è€
    45 ãŠã‚ˆã³TOPPERSプロジェクトを
    46  *      å
    47 è²¬ã™ã‚‹ã“と.
    48  *
    49  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    50 ãŠ
    51  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    52  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    53  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    54  *  の責任を負わない.
     12 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     13 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17 *      スコード中に含まれていること.
     18 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21 *      の無保証規定を掲載すること.
     22 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24 *      と.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28 *        報告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33 *      免責すること.
     34 *
     35 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39 *  の責任を負わない.
    5540 *
    5641 *  @(#) $Id$
     
    5843
    5944/*
    60  *              プロセッサ依存モジュール(RX630用)
     45 *              プロセッサ依存モジュール(RX630用)
    6146 */
    6247
     
    6651
    6752/*
    68  *  割込み発生回数を保存する変数
     53 *  割込み発生回数を保存する変数
    6954 */
    7055uint16_t        intnest;
    7156
    7257/*
    73  *  CPUロックフラグ実現のための変数
     58 *  CPUロックフラグ実現のための変数
    7459 */
    7560#if TIPM_LOCK != -15
    76 bool_t          lock_flag;              /* CPUロックフラグの値を保持する変数 */
    77 uint32_t        saved_ipl;              /* 割込み優å
    78 ˆåº¦ãƒ¬ãƒ™ãƒ«ã‚’保存する変数 */
     61bool_t          lock_flag;              /* CPUロックフラグの値を保持する変数 */
     62uint32_t        saved_ipl;              /* 割込み優先度レベルを保存する変数 */
    7963#endif  /* TIPM_LOCK != -15     */
    8064
    8165
    8266/*
    83  *  プロセッサ依存の初期化
     67 *  プロセッサ依存の初期化
    8468 */
    8569void
     
    8771{
    8872        /*
    89          *  割込み発生回数の初期化
    90          *
    91          *  スタートアップはå
    92 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    93 ‹ & 非タスクコンテキスト
    94          *  にて動作するため, 非タスクコンテキストに偽è£
    95 ã™ã‚‹.
     73         *  割込み発生回数の初期化
     74         *
     75         *  スタートアップは全割込みロック状態 & 非タスクコンテキスト
     76         *  にて動作するため, 非タスクコンテキストに偽装する.
    9677         */
    9778        intnest = 1U;
     
    9980#if TIPM_LOCK != -15
    10081        /*
    101          *  CPUロックフラグ実現のための変数の初期化
     82         *  CPUロックフラグ実現のための変数の初期化
    10283         */
    10384        lock_flag = true;
     
    10889
    10990/*
    110  *  プロセッサ依存の終了処理
     91 *  プロセッサ依存の終了処理
    11192 */
    11293void
     
    11495{
    11596        /*
    116          *  特にå¿
    117 è¦ãªå‡¦ç†ã¯ãªã„
    118          */
    119 }
    120 
    121 
    122 /*
    123  *  CPU例外の発生状況のログ出力
     97         *  特に必要な処理はない
     98         */
     99}
     100
     101
     102/*
     103 *  CPU例外の発生状況のログ出力
    124104 *
    125  *  CPU例外ハンドラの中から,CPU例外æƒ
    126 å ±ãƒã‚¤ãƒ³ã‚¿ï¼ˆp_excinf)を引数とし
    127  *  て呼び出すことで,CPU例外の発生状況をシステムログに出力する.
     105 *  CPU例外ハンドラの中から,CPU例外情報ポインタ(p_excinf)を引数とし
     106 *  て呼び出すことで,CPU例外の発生状況をシステムログに出力する.
    128107 */
    129108#ifdef SUPPORT_XLOG_SYS
     
    156135
    157136/*
    158  *  割込み要求ラインの属性の設定
     137 *  割込み要求ラインの属性の設定
    159138 *
    160  *  ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ
    161  *  クしている.cfg_intサービスコールを設ける場合には,エラーを返すよう
    162  *  にすべきであろう.
     139 *  ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ
     140 *  クしている.cfg_intサービスコールを設ける場合には,エラーを返すよう
     141 *  にすべきであろう.
    163142 */
    164143void
     
    181160
    182161        /*
    183          *  割込みのマスク
    184          *
    185          *  割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割
    186          *  込み優å
    187 ˆåº¦ã®è¨­å®šã‚’行うのは危険なため,割込み属性にかかわらず,
    188          *  一旦マスクする.
     162         *  割込みのマスク
     163         *
     164         *  割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割
     165         *  込み優先度の設定を行うのは危険なため,割込み属性にかかわらず,
     166         *  一旦マスクする.
    189167         */
    190168        ( void )disable_int( intno );
    191169
    192170        /*
    193          *  レベルトリガ/エッジトリガの設定
    194          *
    195          *  IRQのみサポートする
     171         *  レベルトリガ/エッジトリガの設定
     172         *
     173         *  IRQのみサポートする
    196174         */
    197175        if( INTNO_IRQ( intno ) != 0U ){
     
    212190                else{
    213191                        /*
    214                          *  コンフィギュレータにてチェックしているため,
    215                          *  ここへくることはありえない.
     192                         *  コンフィギュレータにてチェックしているため,
     193                         *  ここへくることはありえない.
    216194                         */
    217195                        irq_val = 0U;
     
    222200
    223201        /*
    224          *  割込みレベルの設定
    225          *
    226          *  割込み番号に対応したIPR値を設定する.
     202         *  割込みレベルの設定
     203         *
     204         *  割込み番号に対応したIPR値を設定する.
    227205         */
    228206        sil_wrb_mem((uint8_t *)ipr_reg_addr[intno], cfg_int_table[intno].intpri);
    229207
    230208        /*
    231          *  割込みのマスク解除
     209         *  割込みのマスク解除
    232210         */
    233211        if( ( intatr & TA_ENAINT ) != 0U ){
     
    239217#ifndef OMIT_DEFAULT_INT_HANDLER
    240218/*
    241  *  未登録の割込みが発生した場合に呼び出される
     219 *  未登録の割込みが発生した場合に呼び出される
    242220 */
    243221void
     
    250228#ifndef OMIT_DEFAULT_EXC_HANDLER
    251229/*
    252  *  未登録の例外が発生した場合に呼び出される
     230 *  未登録の例外が発生した場合に呼び出される
    253231 */
    254232void
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_kernel_impl.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r317 r318  
    1111 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    1212 *
    13  *  上記著作権è€
    14 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    15  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    16  *  変・再é
    17 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    18  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    19  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    20  *      スコード中に含まれていること.
    21  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    22  *      用できる形で再é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    24 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    25  *      è€
    26 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    27  *      の無保証規定を掲載すること.
    28  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    29  *      用できない形で再é
    30 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    31  *      と.
    32  *    (a) 再é
    33 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    34 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    35  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    36  *    (b) 再é
    37 å¸ƒã®å½¢æ
    38 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    39  *        報告すること.
    40  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    41  *      害からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトをå
    43 è²¬ã™ã‚‹ã“と.
    44  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    45  *      由に基づく請求からも,上記著作権è€
    46 ãŠã‚ˆã³TOPPERSプロジェクトを
    47  *      å
    48 è²¬ã™ã‚‹ã“と.
     13 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     14 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     15 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     16 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     17 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     18 *      スコード中に含まれていること.
     19 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     20 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     21 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     22 *      の無保証規定を掲載すること.
     23 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     24 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     25 *      と.
     26 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     27 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     28 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     29 *        報告すること.
     30 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     31 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     32 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     33 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     34 *      免責すること.
    4935 *
    50  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    51 ãŠ
    52  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    53  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    54  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    55  *  の責任を負わない.
     36 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     37 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     38 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     39 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     40 *  の責任を負わない.
    5641 *
    5742 *  @(#) $Id$
     
    5944
    6045/*
    61  *              プロセッサ依存モジュール(RX630用)
    62  *
    63  *  このインクルードファイルは,target_kernel_impl.h(または,そこからインク
    64  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    65  *  直接インクルードしてはならない.
     46 *              プロセッサ依存モジュール(RX630用)
     47 *
     48 *  このインクルードファイルは,target_kernel_impl.h(または,そこからインク
     49 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     50 *  直接インクルードしてはならない.
    6651 */
    6752
     
    7055
    7156/*
    72  *  プロセッサの特殊命令のインライン関数定義
     57 *  プロセッサの特殊命令のインライン関数定義
    7358 */
    7459#include "prc_insn.h"
     
    7863
    7964/*
    80  *  非タスクコンテキスト用のスタック初期値
     65 *  非タスクコンテキスト用のスタック初期値
    8166 */
    8267
     
    8469
    8570/*
    86  *  タスクコンテキストブロックの定義
     71 *  タスクコンテキストブロックの定義
    8772 */
    8873typedef struct task_context_block {
    89         void    *sp;            /* スタックポインタ */
    90         FP              pc;                     /* プログラムカウンタ */
     74        void    *sp;            /* スタックポインタ */
     75        FP              pc;                     /* プログラムカウンタ */
    9176} TSKCTXB;
    9277
    9378
    9479/*
    95  *  割込み発生回数を保存する変数
     80 *  割込み発生回数を保存する変数
    9681 */
    9782extern uint16_t intnest;
     
    10085
    10186/*
    102  *  CPUロック状æ
    103 ‹ã§ã®å‰²è¾¼ã¿å„ªå
    104 ˆåº¦ãƒžã‚¹ã‚¯
    105  *
    106  *  TIPM_LOCKは,CPUロック状æ
    107 ‹ã§ã®å‰²è¾¼ã¿å„ªå
    108 ˆåº¦ãƒžã‚¹ã‚¯ï¼Œã™ãªã‚ã¡ï¼Œã‚«ãƒ¼ãƒ
    109  *  ル管理外のものを除くすべての割込み要求をマスクする値に定義する.
    110  *
    111  *  TMIN_INTPRI変更することで管理外割込みの有無を決定する.
    112  *  例えばTMIN_INTPRIを-14に設定すると,レベル15の割込みがカーネル管理外と
    113  *  なる.TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
    114  *  設けないことになる(この場合には-15に設定することを推奨する).
     87 *  CPUロック状態での割込み優先度マスク
     88 *
     89 *  TIPM_LOCKは,CPUロック状態での割込み優先度マスク,すなわち,カーネ
     90 *  ル管理外のものを除くすべての割込み要求をマスクする値に定義する.
     91 *
     92 *  TMIN_INTPRI変更することで管理外割込みの有無を決定する.
     93 *  例えばTMIN_INTPRIを-14に設定すると,レベル15の割込みがカーネル管理外と
     94 *  なる.TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
     95 *  設けないことになる(この場合には-15に設定することを推奨する).
    11596 */
    11697#ifndef TIPM_LOCK
     
    121102
    122103/*
    123  *  TOPPERS標準割込み処理モデルの実現
    124  */
    125 /*
    126  *  コンテキストの参ç
    127 §
    128  *
    129  *  RXでは,割込みの戻りå
    130 ˆãŒã‚¿ã‚¹ã‚¯ã‹ã©ã†ã‹ã‚’判断するために intnest
    131  *  を使用している.これを用いてコンテキストを判断する.
     104 *  TOPPERS標準割込み処理モデルの実現
     105 */
     106/*
     107 *  コンテキストの参照
     108 *
     109 *  RXでは,割込みの戻り先がタスクかどうかを判断するために intnest
     110 *  を使用している.これを用いてコンテキストを判断する.
    132111 */
    133112Inline bool_t
    134113sense_context( void )
    135114{
    136         /*  ネストカウンタ0より大なら非タスクコンテキスト  */
     115        /*  ネストカウンタ0より大なら非タスクコンテキスト  */
    137116        return ( intnest > 0U );
    138117}
     
    140119
    141120/*
    142  *  CPUロックフラグ実現のための変数
    143  *
    144  *  これらの変数は,CPUロック状æ
    145 ‹ã®æ™‚のみ書き換えてよいものとする.
     121 *  CPUロックフラグ実現のための変数
     122 *
     123 *  これらの変数は,CPUロック状態の時のみ書き換えてよいものとする.
    146124 */
    147125#if TIPM_LOCK != -15
    148 extern bool_t   lock_flag;              /* CPUロックフラグの値を保持する変数 */
    149 extern uint32_t saved_ipl;              /* 割込み優å
    150 ˆåº¦ãƒ¬ãƒ™ãƒ«ã‚’保存する変数 */
     126extern bool_t   lock_flag;              /* CPUロックフラグの値を保持する変数 */
     127extern uint32_t saved_ipl;              /* 割込み優先度レベルを保存する変数 */
    151128#endif  /* TIPM_LOCK != -15     */
    152129
     
    155132
    156133/*
    157  *  割込み優å
    158 ˆåº¦ãƒžã‚¹ã‚¯ã®å¤–部表現とå†
    159 éƒ¨è¡¨ç¾ã®å¤‰æ›
    160  *
    161  *  RX630では,プロセッサステータスワードレジスタ(PSW)の下から
    162  *  24~27ビット目の4ビットに割込み優å
    163 ˆåº¦ãƒ¬ãƒ™ãƒ«ï¼ˆIPL)が置かれている.
    164  *  カーネル管理外割込みを実è£
    165 ã™ã‚‹å ´åˆã«IPLを使用した制御を行う.
    166  *  カーネルは割込み優å
    167 ˆåº¦ãƒžã‚¹ã‚¯ï¼ˆ-1から連続した負の値)で管理されて
    168  *  いるためIPLとの変換がå¿
    169 è¦ã¨ãªã‚‹ï¼Ž
    170  */
    171 #define IPL_TO_IPM( ipl )       (-(( PRI )(( ipl ) >> 24U )))           /* IPLをIPMに */
    172 #define IPM_TO_IPL( ipm )       ((( uint32_t )(-( ipm ))) << 24U )      /* IPMをIPLに */
    173 
    174 
    175 /*
    176  *  CPUロック状æ
    177 ‹ã§ã®å‰²è¾¼ã¿å„ªå
    178 ˆåº¦ãƒžã‚¹ã‚¯ã®IPL
     134 *  割込み優先度マスクの外部表現と内部表現の変換
     135 *
     136 *  RX630では,プロセッサステータスワードレジスタ(PSW)の下から
     137 *  24~27ビット目の4ビットに割込み優先度レベル(IPL)が置かれている.
     138 *  カーネル管理外割込みを実装する場合にIPLを使用した制御を行う.
     139 *  カーネルは割込み優先度マスク(-1から連続した負の値)で管理されて
     140 *  いるためIPLとの変換が必要となる.
     141 */
     142#define IPL_TO_IPM( ipl )       (-(( PRI )(( ipl ) >> 24U )))           /* IPLをIPMに     */
     143#define IPM_TO_IPL( ipm )       ((( uint32_t )(-( ipm ))) << 24U )      /* IPMをIPLに     */
     144
     145
     146/*
     147 *  CPUロック状態での割込み優先度マスクのIPL
    179148 */
    180149#define IPL_LOCK                ( IPM_TO_IPL( TIPM_LOCK ) )
    181150
    182151/*
    183  *  TIPM_ENAALL(割込み優å
    184 ˆåº¦ãƒžã‚¹ã‚¯å
    185 ¨è§£é™¤ï¼‰ã®IPL
     152 *  TIPM_ENAALL(割込み優先度マスク全解除)のIPL
    186153 */
    187154#define IPL_ENAALL              ( IPM_TO_IPL( TIPM_ENAALL ) )
     
    191158
    192159/*
    193  *  割込み要因毎のレベル & 属性定義テーブル
    194  *  (テンプレートファイルによる出力)
     160 *  割込み要因毎のレベル & 属性定義テーブル
     161 *  (テンプレートファイルによる出力)
    195162 */
    196163typedef struct cfg_int_info {
     
    203170
    204171/*
    205  *  割込み番号の範囲の判定
    206  *
    207  *  割込み番号が有効な値か厳密にチェックするため,
    208  *  コンフィギュレータ出力テーブルを参ç
    209 §ã™ã‚‹.
     172 *  割込み番号の範囲の判定
     173 *
     174 *  割込み番号が有効な値か厳密にチェックするため,
     175 *  コンフィギュレータ出力テーブルを参照する.
    210176 */
    211177#define VALID_INTNO( intno )    \
     
    214180#define VALID_INTNO_CFGINT( intno )     VALID_INTNO( intno )
    215181
    216 /* cre_intで有効な割込み番号の指定  */
     182/* cre_intで有効な割込み番号の指定  */
    217183#define VALID_INTNO_CREINT          VALID_INTNO_CFGINT((intno))
    218184
    219 /* cre_isrで有効な割込み番号の指定  */
     185/* cre_isrで有効な割込み番号の指定  */
    220186#define VALID_INTNO_CREISR(intno)       VALID_INTNO_CFGINT((intno))
    221187
    222188
    223189/*
    224  *  割込み制御レジスタ関連の定義
     190 *  割込み制御レジスタ関連の定義
    225191 */
    226192#define IRQ_POSEDGE                     ( 0x08U )
     
    231197
    232198/*
    233  *  CPUロック状æ
    234 ‹ã¸ã®ç§»è¡Œ
    235  *
    236  *  IPM(ハードウェアの割込み優å
    237 ˆåº¦ãƒžã‚¹ã‚¯ï¼‰ã‚’,saved_iipmに保存し,カー
    238  *  ネル管理外のものを除くすべての割込み要求をマスクする値(TIPM_LOCK)
    239  *  に設定する.また,lock_flagをTRUEにする.
    240  *
    241  *  IPMが,最初からTIPM_LOCKと同じかそれより高い場合には,それを
    242  *  saved_iipmに保存するのみで,TIPM_LOCKには設定しない.これは,モデル
    243  *  上の割込み優å
    244 ˆåº¦ãƒžã‚¹ã‚¯ãŒï¼ŒTIPM_LOCKと同じかそれより高いレベルに設定
    245  *  されている状æ
    246 ‹ã«ã‚たる.
    247  *
    248  *  この関数は,CPUロック状æ
    249 ‹ï¼ˆlock_flagがTRUEの状æ
    250 ‹ï¼‰ã§å‘¼ã°ã‚Œã‚‹ã“とは
    251  *  ないものと想定している.
     199 *  CPUロック状態への移行
     200 *
     201 *  IPM(ハードウェアの割込み優先度マスク)を,saved_iipmに保存し,カー
     202 *  ネル管理外のものを除くすべての割込み要求をマスクする値(TIPM_LOCK)
     203 *  に設定する.また,lock_flagをTRUEにする.
     204 *
     205 *  IPMが,最初からTIPM_LOCKと同じかそれより高い場合には,それを
     206 *  saved_iipmに保存するのみで,TIPM_LOCKには設定しない.これは,モデル
     207 *  上の割込み優先度マスクが,TIPM_LOCKと同じかそれより高いレベルに設定
     208 *  されている状態にあたる.
     209 *
     210 *  この関数は,CPUロック状態(lock_flagがTRUEの状態)で呼ばれることは
     211 *  ないものと想定している.
    252212 */
    253213Inline void
     
    260220
    261221        /*
    262          *  current_ipl()の返り値を直接saved_iplに保存せず,一時変数ipl
    263          *  を用いているのは,current_ipl()を呼んだ直後に割込みが発生し,
    264          *  起動された割込み処理でsaved_iplが変更される可能性があるためで
    265          *  ある.
     222         *  current_ipl()の返り値を直接saved_iplに保存せず,一時変数ipl
     223         *  を用いているのは,current_ipl()を呼んだ直後に割込みが発生し,
     224         *  起動された割込み処理でsaved_iplが変更される可能性があるためで
     225         *  ある.
    266226         */
    267227        ipl = current_ipl();
     
    278238
    279239/*
    280  *  CPUロック状æ
    281 ‹ã®è§£é™¤
    282  *
    283  *  lock_flagをFALSEにし,IPM(ハードウェアの割込み優å
    284 ˆåº¦ãƒžã‚¹ã‚¯ï¼‰ã‚’,
    285  *  saved_iipmに保存した値に戻す.
    286  *
    287  *  この関数は,CPUロック状æ
    288 ‹ï¼ˆlock_flagがtrueの状æ
    289 ‹ï¼‰ã§ã®ã¿å‘¼ã°ã‚Œã‚‹ã‚‚
    290  *  のと想定している.
     240 *  CPUロック状態の解除
     241 *
     242 *  lock_flagをFALSEにし,IPM(ハードウェアの割込み優先度マスク)を,
     243 *  saved_iipmに保存した値に戻す.
     244 *
     245 *  この関数は,CPUロック状態(lock_flagがtrueの状態)でのみ呼ばれるも
     246 *  のと想定している.
    291247 */
    292248Inline void
     
    304260
    305261/*
    306  *  CPUロック状æ
    307 ‹ã®å‚ç
    308 §
     262 *  CPUロック状態の参照
    309263 */
    310264Inline bool_t
     
    320274
    321275/*
    322  *  割込み属性の設定のチェック
     276 *  割込み属性の設定のチェック
    323277 */
    324278Inline bool_t
     
    329283
    330284/*
    331  * (モデル上の)割込み優å
    332 ˆåº¦ãƒžã‚¹ã‚¯ã®è¨­å®š
    333  *
    334  *  CPUロックフラグがクリアされている時は,ハードウェアの割込み優å
    335 ˆåº¦ãƒž
    336  *  スクを設定する.CPUロックフラグがセットされている時は,saved_iipm
    337  *  を設定し,さらに,ハードウェアの割込み優å
    338 ˆåº¦ãƒžã‚¹ã‚¯ã‚’,設定しようと
    339  *  した(モデル上の)割込み優å
    340 ˆåº¦ãƒžã‚¹ã‚¯ã¨TIPM_LOCKの高い方に設定する.
     285 * (モデル上の)割込み優先度マスクの設定
     286 *
     287 *  CPUロックフラグがクリアされている時は,ハードウェアの割込み優先度マ
     288 *  スクを設定する.CPUロックフラグがセットされている時は,saved_iipm
     289 *  を設定し,さらに,ハードウェアの割込み優先度マスクを,設定しようと
     290 *  した(モデル上の)割込み優先度マスクとTIPM_LOCKの高い方に設定する.
    341291 */
    342292Inline void
     
    360310
    361311/*
    362  * (モデル上の)割込み優å
    363 ˆåº¦ãƒžã‚¹ã‚¯ã®å‚ç
    364 §
    365  *
    366  *  CPUロックフラグがクリアされている時はハードウェアの割込み優å
    367 ˆåº¦ãƒž
    368  *  スクを,セットされている時はsaved_iipmを参ç
    369 §ã™ã‚‹ï¼Ž
     312 * (モデル上の)割込み優先度マスクの参照
     313 *
     314 *  CPUロックフラグがクリアされている時はハードウェアの割込み優先度マ
     315 *  スクを,セットされている時はsaved_iipmを参照する.
    370316 */
    371317Inline PRI
     
    389335
    390336/*
    391  *  割込み要求禁止フラグのセット
    392  *
    393  *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
    394  *  フラグをセットしようとした場合には,FALSEを返す.
     337 *  割込み要求禁止フラグのセット
     338 *
     339 *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
     340 *  フラグをセットしようとした場合には,FALSEを返す.
    395341 */
    396342Inline bool_t
     
    398344{
    399345        /*
    400          *  レベル定義が0である場合はCFG_INTされていない
     346         *  レベル定義が0である場合はCFG_INTされていない
    401347         */
    402348        if( cfg_int_table[intno].intpri == 0 ){
     
    411357
    412358/*
    413  *  割込み要求禁止フラグのクリア
    414  *
    415  *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
    416  *  フラグをクリアしようとした場合には,FALSEを返す.
     359 *  割込み要求禁止フラグのクリア
     360 *
     361 *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
     362 *  フラグをクリアしようとした場合には,FALSEを返す.
    417363 */
    418364Inline bool_t
     
    420366{
    421367        /*
    422          *  レベル定義が0である場合はCFG_INTされていない
     368         *  レベル定義が0である場合はCFG_INTされていない
    423369         */
    424370        if( cfg_int_table[intno].intpri == 0 ){
     
    433379
    434380/*
    435  *  割込み要求がクリアできる状æ
    436 ‹ã‹ï¼Ÿ
     381 *  割込み要求がクリアできる状態か?
    437382 */
    438383Inline bool_t
     
    443388
    444389/*
    445  *  割込み要求のクリア
     390 *  割込み要求のクリア
    446391 */
    447392Inline void
     
    453398
    454399/*
    455  *  割込みが要求できる状æ
    456 ‹ã‹ï¼Ÿ
     400 *  割込みが要求できる状態か?
    457401 */
    458402Inline bool_t
     
    463407
    464408/*
    465  * 割込みの要求
    466  * 注意:チップでサポートされていない操作
     409 * 割込みの要求
     410 * 注意:チップでサポートされていない操作
    467411 */
    468412Inline void
     
    473417
    474418/*
    475  *  割込み要求のチェック
     419 *  割込み要求のチェック
    476420 */
    477421Inline bool_t
     
    479423{
    480424        /*
    481          *  割込み要求レジスタは0 or 1でしかないため,
    482          *  そのままの値を返す.
     425         *  割込み要求レジスタは0 or 1でしかないため,
     426         *  そのままの値を返す.
    483427         */
    484428        return ( *IR_REG(intno) );
     
    486430
    487431/*
    488  *  割込み要求ラインの属性の設定
     432 *  割込み要求ラインの属性の設定
    489433 */
    490434extern void     config_int( INTNO intno, ATR intatr, PRI intpri );
    491435
    492436/*
    493  *  割込みを受け付けるためのé
    494 å»¶å‡¦ç†
     437 *  割込みを受け付けるための遅延処理
    495438 */
    496439Inline void
     
    500443
    501444/*
    502  *  最高優å
    503 ˆé †ä½ã‚¿ã‚¹ã‚¯ã¸ã®ãƒ‡ã‚£ã‚¹ãƒ‘ッチ(prc_support.a30)
    504  *
    505  *  dispatchは,タスクコンテキストから呼び出されたサービスコール処理か
    506  *  ら呼び出すべきもので,タスクコンテキスト・CPUロック状æ
    507 ‹ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッ
    508  *  チ許可状æ
    509 ‹ãƒ»ï¼ˆãƒ¢ãƒ‡ãƒ«ä¸Šã®ï¼‰å‰²è¾¼ã¿å„ªå
    510 ˆåº¦ãƒžã‚¹ã‚¯å
    511 ¨è§£é™¤çŠ¶æ
    512 ‹ã§å‘¼ã³å‡ºã•ãª
    513  *  ければならない.
     445 *  最高優先順位タスクへのディスパッチ(prc_support.a30)
     446 *
     447 *  dispatchは,タスクコンテキストから呼び出されたサービスコール処理か
     448 *  ら呼び出すべきもので,タスクコンテキスト・CPUロック状態・ディスパッ
     449 *  チ許可状態・(モデル上の)割込み優先度マスク全解除状態で呼び出さな
     450 *  ければならない.
    514451 */
    515452extern void     dispatch( void );
    516453
    517454/*
    518  *  非タスクコンテキストからのディスパッチ要求
     455 *  非タスクコンテキストからのディスパッチ要求
    519456 */
    520457#define request_dispatch()
    521458
    522459/*
    523  *  ディスパッチャの動作開始(prc_support.a30)
    524  *
    525  *  start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込
    526  *  みを禁止した状æ
    527 ‹ï¼ˆå
    528 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    529 ‹ã¨åŒç­‰ã®çŠ¶æ
    530 ‹ï¼‰ã§å‘¼ã³å‡ºã•ãªã‘れば
    531  *  ならない.
     460 *  ディスパッチャの動作開始(prc_support.a30)
     461 *
     462 *  start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込
     463 *  みを禁止した状態(全割込みロック状態と同等の状態)で呼び出さなければ
     464 *  ならない.
    532465 */
    533466extern void     start_dispatch( void ) NoReturn;
    534467
    535468/*
    536  *  現在のコンテキストを捨ててディスパッチ(prc_support.a30)
    537  *
    538  *  exit_and_dispatchは,ext_tskから呼び出すべきもので,タスクコンテキ
    539  *  スト・CPUロック状æ
    540 ‹ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチ許可状æ
    541 ‹ãƒ»ï¼ˆãƒ¢ãƒ‡ãƒ«ä¸Šã®ï¼‰å‰²è¾¼ã¿å„ªå
    542 ˆ
    543  *  度マスクå
    544 ¨è§£é™¤çŠ¶æ
    545 ‹ã§å‘¼ã³å‡ºã•ãªã‘ればならない.
     469 *  現在のコンテキストを捨ててディスパッチ(prc_support.a30)
     470 *
     471 *  exit_and_dispatchは,ext_tskから呼び出すべきもので,タスクコンテキ
     472 *  スト・CPUロック状態・ディスパッチ許可状態・(モデル上の)割込み優先
     473 *  度マスク全解除状態で呼び出さなければならない.
    546474 */
    547475#define _kernel_exit_and_dispatch();    \
     
    552480
    553481/*
    554  *  カーネルの終了処理の呼出し(prc_support.a30)
    555  *
    556  *  call_exit_kernelは,カーネルの終了時に呼び出すべきもので,非タスク
    557  *  コンテキストに切り換えて,カーネルの終了処理(exit_kernel)を呼び出
    558  *  す.
     482 *  カーネルの終了処理の呼出し(prc_support.a30)
     483 *
     484 *  call_exit_kernelは,カーネルの終了時に呼び出すべきもので,非タスク
     485 *  コンテキストに切り換えて,カーネルの終了処理(exit_kernel)を呼び出
     486 *  す.
    559487 */
    560488extern void call_exit_kernel( void ) NoReturn;
    561489
    562490/*
    563  *  タスクコンテキストの初期化
    564  *
    565  *  タスクが休止状æ
    566 ‹ã‹ã‚‰å®Ÿè¡Œã§ãã‚‹çŠ¶æ
    567 ‹ã«ç§»è¡Œã™ã‚‹æ™‚に呼ばれる.この時点
    568  *  でスタック領域を使ってはならない.
    569  *
    570  *  activate_contextを,インライン関数ではなくマクロ定義としているのは,
    571  *  この時点ではTCBが定義されていないためである.
     491 *  タスクコンテキストの初期化
     492 *
     493 *  タスクが休止状態から実行できる状態に移行する時に呼ばれる.この時点
     494 *  でスタック領域を使ってはならない.
     495 *
     496 *  activate_contextを,インライン関数ではなくマクロ定義としているのは,
     497 *  この時点ではTCBが定義されていないためである.
    572498 */
    573499extern void     start_r( void );
     
    577503        {                                                                                                                                                                       \
    578504                                                                                                                                                                                \
    579                 /*  スタックポインタ初期値の設定  */                                                                                      \
     505                /*  スタックポインタ初期値の設定  */                                                                                  \
    580506                ( p_tcb )->tskctxb.sp = ( void * )((( uint32_t ) ( p_tcb )->p_tinib->stk ) +    \
    581507                                                                ( p_tcb )->p_tinib->stksz );                                                    \
    582                 /* 起動番地の設定 */                                                                                                                     \
     508                /* 起動番地の設定 */                                                                                                                   \
    583509                ( p_tcb )->tskctxb.pc = ( FP ) start_r;                                                                                 \
    584510        }                                                                                                                                                                       \
     
    587513
    588514/*
    589  *  calltexは使用しない
     515 *  calltexは使用しない
    590516 */
    591517#define OMIT_CALLTEX
     
    593519
    594520/*
    595  *  割込みハンドラの設定
    596  *
    597  *  RX630はROMに割込みベクタをé
    598 ç½®ã™ã‚‹ãŸã‚ï¼Œæœ¬é–¢æ•°ã¯ç©ºé–¢æ•°ã§å®Ÿè£
    599 ã™ã‚‹ï¼Ž
     521 *  割込みハンドラの設定
     522 *
     523 *  RX630はROMに割込みベクタを配置するため,本関数は空関数で実装する.
    600524 */
    601525Inline void
     
    605529
    606530/*
    607  *  CPU例外ハンドラの設定
    608  *
    609  *  RX630はROMに例外ベクタをé
    610 ç½®ã™ã‚‹ãŸã‚ï¼Œæœ¬é–¢æ•°ã¯ç©ºé–¢æ•°ã§å®Ÿè£
    611 ã™ã‚‹ï¼Ž
     531 *  CPU例外ハンドラの設定
     532 *
     533 *  RX630はROMに例外ベクタを配置するため,本関数は空関数で実装する.
    612534 */
    613535Inline void
     
    617539
    618540/*
    619  *  割込み/例外ハンドラのå
    620 ¥å£å‡¦ç†ã®ç”Ÿæˆãƒžã‚¯ãƒ­
    621  *
    622  *  テンプレートファイルにより生成するため空マクロとする.
     541 *  割込み/例外ハンドラの入口処理の生成マクロ
     542 *
     543 *  テンプレートファイルにより生成するため空マクロとする.
    623544 */
    624545#define HDR_ENTRY(hdr, intexc_num , tobejmp)
    625546
    626547/*
    627  *  割込みハンドラのå
    628 ¥å£å‡¦ç†ã®ç”Ÿæˆãƒžã‚¯ãƒ­
     548 *  割込みハンドラの入口処理の生成マクロ
    629549 */
    630550#define _INT_ENTRY(inhno, inthdr)                               _kernel_##inthdr##_##inhno##_entry
     
    637557
    638558/*
    639  *  CPU例外ハンドラのå
    640 ¥å£å‡¦ç†ã®ç”Ÿæˆãƒžã‚¯ãƒ­
     559 *  CPU例外ハンドラの入口処理の生成マクロ
    641560 */
    642561#define _EXC_ENTRY(excno , exchdr)                                      _kernel_##exchdr##_##excno##_entry
     
    649568
    650569/*
    651  *  CPU例外の発生した時のコンテキストの参ç
    652 §
    653  *
    654  *  CPU例外の発生した時のコンテキストが,タスクコンテキストの時にFALSE,
    655  *  そうでない時にtrueを返す.
     570 *  CPU例外の発生した時のコンテキストの参照
     571 *
     572 *  CPU例外の発生した時のコンテキストが,タスクコンテキストの時にFALSE,
     573 *  そうでない時にtrueを返す.
    656574 */
    657575Inline bool_t
     
    659577{
    660578        /*
    661          *  ネストカウンタが1より大なら非タスクコンテキスト
     579         *  ネストカウンタが1より大なら非タスクコンテキスト
    662580         */
    663581        return( intnest > 1U );
     
    667585
    668586/*
    669  *  CPU例外æƒ
    670 å ± p_excinf から PSW の値を取得するためのオフセット値
    671  *  EXCNO + ACC + FPSW + R1~R15 + PC
     587 *  CPU例外情報 p_excinf から PSW の値を取得するためのオフセット値
     588 *  EXCNO + ACC + FPSW + R1~R15 + PC
    672589 */
    673590#define EXC_GET_PSW_OFFSET      (4+8+4+60+4)
     
    676593
    677594/*
    678  *  CPU例外の発生した時のIPLの参ç
    679 §
     595 *  CPU例外の発生した時のIPLの参照
    680596 */
    681597Inline uint32_t
     
    695611
    696612/*
    697  *  CPU例外の発生した時のコンテキストと割込みのマスク状æ
    698 ‹ã®å‚ç
    699 §
    700  *
    701  *  CPU例外の発生した時のシステム状æ
    702 ‹ãŒï¼Œã‚«ãƒ¼ãƒãƒ«å®Ÿè¡Œä¸­ã§ãªãï¼Œã‚¿ã‚¹ã‚¯ã‚³
    703  *  ンテキストであり,å
    704 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    705 ‹ã§ãªãï¼ŒCPUロック状æ
    706 ‹ã§ãªãï¼Œï¼ˆãƒ¢
    707  *  デル上の)割込み優å
    708 ˆåº¦ãƒžã‚¹ã‚¯å
    709 ¨è§£é™¤çŠ¶æ
    710 ‹ã§ã‚る時にtrue,そうでない時
    711  *  にFALSEを返す(CPU例外がカーネル管理外の割込み処理中で発生した場合
    712  *  にもFALSEを返す).
     613 *  CPU例外の発生した時のコンテキストと割込みのマスク状態の参照
     614 *
     615 *  CPU例外の発生した時のシステム状態が,カーネル実行中でなく,タスクコ
     616 *  ンテキストであり,全割込みロック状態でなく,CPUロック状態でなく,(モ
     617 *  デル上の)割込み優先度マスク全解除状態である時にtrue,そうでない時
     618 *  にFALSEを返す(CPU例外がカーネル管理外の割込み処理中で発生した場合
     619 *  にもFALSEを返す).
    713620 * 
    714  *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
     621 *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
    715622 *                         (else)           IPL < IPL_LOCK
    716  *  タスクコンテキストである→intnest == 0
    717  *  å
    718 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯ã§ãªã„→ Iフラグ == 1
    719  *  割込み優å
    720 ˆåº¦ãƒžã‚¹ã‚¯ãŒå
    721 ¨è§£é™¤â†’IPL == 0
     623 *  タスクコンテキストである→intnest == 0
     624 *  全割込みロックでない→ Iフラグ == 1
     625 *  割込み優先度マスクが全解除→IPL == 0
    722626 * 
    723627 * 
     
    732636
    733637/*
    734  *  CPU例外の発生した時のコンテキストと割込み/CPUロック状æ
    735 ‹ã®å‚ç
    736 §
    737  *
    738  *  CPU例外の発生した時のシステム状æ
    739 ‹ãŒï¼Œã‚«ãƒ¼ãƒãƒ«å®Ÿè¡Œä¸­ã§ãªãï¼Œã‚¿ã‚¹ã‚¯ã‚³
    740  *  ンテキストであり,å
    741 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    742 ‹ã§ãªãï¼ŒCPUロック状æ
    743 ‹ã§ãªã„時に
    744  *  true,そうでない時にfalseを返す(CPU例外がカーネル管理外の割込み処
    745  *  理中で発生した場合にもfalseを返す).
     638 *  CPU例外の発生した時のコンテキストと割込み/CPUロック状態の参照
     639 *
     640 *  CPU例外の発生した時のシステム状態が,カーネル実行中でなく,タスクコ
     641 *  ンテキストであり,全割込みロック状態でなく,CPUロック状態でない時に
     642 *  true,そうでない時にfalseを返す(CPU例外がカーネル管理外の割込み処
     643 *  理中で発生した場合にもfalseを返す).
    746644 * 
    747  *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
     645 *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
    748646 *                         (else)           IPL < TIPM_LOCK
    749  *  タスクコンテキストである→intnest < 1
    750  *  å
    751 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯ã§ãªã„→ Iフラグ == 1
    752  *  CPUロック状æ
    753 ‹ã§ãªã„→(TIPM_LOCK== -15) Iフラグ == 1
     647 *  タスクコンテキストである→intnest < 1
     648 *  全割込みロックでない→ Iフラグ == 1
     649 *  CPUロック状態でない→(TIPM_LOCK== -15) Iフラグ == 1
    754650 *                         (else)           IPL < TIPM_LOCK
    755651 */
     
    769665
    770666/*
    771  *  プロセッサ依存の初期化
     667 *  プロセッサ依存の初期化
    772668 */
    773669extern void     prc_initialize( void );
    774670
    775671/*
    776  *  プロセッサ依存の終了時処理
     672 *  プロセッサ依存の終了時処理
    777673 */
    778674extern void     prc_terminate( void );
     
    781677#ifndef OMIT_DEFAULT_INT_HANDLER
    782678/*
    783  *  未登録の割込みが発生した場合に呼び出される
     679 *  未登録の割込みが発生した場合に呼び出される
    784680 */
    785681void default_int_handler( void );
     
    788684#ifndef OMIT_DEFAULT_EXC_HANDLER
    789685/*
    790  *  未登録の例外が発生した場合に呼び出される
     686 *  未登録の例外が発生した場合に呼び出される
    791687 */
    792688void default_exc_handler( void );
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_offset.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r317 r318  
    11# -*- coding: utf-8 -*-
    22#
    3 #               ã‚ªãƒ•ã‚»ãƒƒãƒˆãƒ•ã‚¡ã‚¤ãƒ«ç”Ÿæˆç”¨Rubyテンプレート(ARM用)
     3#               オフセットファイル生成用Rubyテンプレート(ARM用)
    44#
    5 #  $Id: core_offset.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     5#  $Id$
    66#
    77
    88#
    9 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆéžä¾å­˜éƒ¨ã®ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰
     9ターゲット非依存部のインクルード
    1010#
    1111IncludeTrb("kernel/genoffset.trb")
    1212
    1313#
    14 ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆã®å®šç¾©ã®ç”Ÿæˆ
     14フィールドのオフセットの定義の生成
    1515#
    1616GenerateDefine("TCB_p_tinib", $offsetof_TCB_p_tinib)
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_rename.def

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain; charset=UTF-8
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_rename.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_sil.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r317 r318  
    55 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    66 *
    7  *  上記著作権è€
    8 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    9  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    10  *  変・再é
    11 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    12  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    13  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    14  *      スコード中に含まれていること.
    15  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    16  *      用できる形で再é
    17 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    18 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    19  *      è€
    20 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    21  *      の無保証規定を掲載すること.
    22  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    23  *      用できない形で再é
    24 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    25  *      と.
    26  *    (a) 再é
    27 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    28 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    29  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    30  *    (b) 再é
    31 å¸ƒã®å½¢æ
    32 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    33  *        報告すること.
    34  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    35  *      害からも,上記著作権è€
    36 ãŠã‚ˆã³TOPPERSプロジェクトをå
    37 è²¬ã™ã‚‹ã“と.
    38  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    39  *      由に基づく請求からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトを
    41  *      å
    42 è²¬ã™ã‚‹ã“と.
    43  *
    44  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    45 ãŠ
    46  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    47  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    48  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    49  *  の責任を負わない.
     7 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12 *      スコード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16 *      の無保証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19 *      と.
     20 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23 *        報告すること.
     24 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28 *      免責すること.
     29 *
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    5035 *
    5136 *  @(#) $Id$
     
    5338
    5439/*
    55  *              sil.hのプロセッサ依存部(RX630用)
     40 *              sil.hのプロセッサ依存部(RX630用)
    5641 */
    5742
     
    6550
    6651/*
    67  *  å
    68 ¨å‰²è¾¼ã¿ç¦æ­¢
     52 *  全割込み禁止
    6953 */
    7054Inline uint32_t
     
    8165
    8266/*
    83  *  å
    84 ¨å‰²è¾¼ã¿è¨±å¯
     67 *  全割込み許可
    8568 */
    8669Inline void
     
    9477
    9578/*
    96  *  å
    97 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    98 ‹ã®åˆ¶å¾¡
     79 *  全割込みロック状態の制御
    9980 */
    10081#define SIL_PRE_LOC             uint32_t TOPPERS_i_psw;
     
    10485
    10586/*
    106  *  エンディアンの反転
     87 *  エンディアンの反転
    10788 *
    108  *  本開発環境ではエンディアン変換命令が存在するため,
    109  *  アーキテクチャ依存部にてマクロを上書きする.
     89 *  本開発環境ではエンディアン変換命令が存在するため,
     90 *  アーキテクチャ依存部にてマクロを上書きする.
    11091 */
    11192#define TOPPERS_SIL_REV_ENDIAN_UINT16( data )   \
     
    11697
    11798/*
    118  *  微少時間å¾
    119 ã¡
     99 *  微少時間待ち
    120100 */
    121101extern void sil_dly_nse( ulong_t dlytim ) throw();
     
    125105
    126106/*
    127  *  プロセッサのエンディアン
    128  */
    129 #define SIL_ENDIAN_LITTLE                       /* リトルエンディアン */
     107 *  プロセッサのエンディアン
     108 */
     109#define SIL_ENDIAN_LITTLE                       /* リトルエンディアン */
    130110
    131111#ifndef TOPPERS_MACRO_ONLY
    132112
    133113/*
    134  *  メモリ空間アクセス関数
     114 *  メモリ空間アクセス関数
    135115 */
    136116#define TOPPERS_OMIT_SIL_ACCESS
    137117
    138118/*
    139  *  8ビット単位の読出し/書込み
     119 *  8ビット単位の読出し/書込み
    140120 */
    141121#ifdef UINT8_MAX
     
    159139
    160140/*
    161  *  16ビット単位の読出し/書込み
     141 *  16ビット単位の読出し/書込み
    162142 */
    163143
     
    177157}
    178158
    179 #ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
     159#ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
    180160
    181161#define sil_reh_bem(mem)                sil_reh_mem(mem)
     
    204184#endif /* TOPPERS_OMIT_SIL_WRH_LEM */
    205185#else /* SIL_ENDIAN_BIG */
    206 #ifdef SIL_ENDIAN_LITTLE                /* リトルエンディアンプロセッサ */
     186#ifdef SIL_ENDIAN_LITTLE                /* リトルエンディアンプロセッサ */
    207187
    208188#define sil_reh_lem(mem)                sil_reh_mem(mem)
     
    238218
    239219/*
    240  *  32ビット単位の読出し/書込み
     220 *  32ビット単位の読出し/書込み
    241221 */
    242222
     
    256236}
    257237
    258 #ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
     238#ifdef SIL_ENDIAN_BIG                   /* ビッグエンディアンプロセッサ */
    259239
    260240#define sil_rew_bem(mem)                sil_rew_mem(mem)
     
    282262
    283263#endif /* TOPPERS_OMIT_SIL_WRW_LEM */
    284 #else /* SIL_ENDIAN_BIG */              /* リトルエンディアンプロセッサ */
     264#else /* SIL_ENDIAN_BIG */              /* リトルエンディアンプロセッサ */
    285265
    286266#define sil_rew_lem(mem)                sil_rew_mem(mem)
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_stddef.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r317 r318  
    55 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    66 *
    7  *  上記著作権è€
    8 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    9  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    10  *  変・再é
    11 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    12  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    13  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    14  *      スコード中に含まれていること.
    15  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    16  *      用できる形で再é
    17 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    18 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    19  *      è€
    20 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    21  *      の無保証規定を掲載すること.
    22  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    23  *      用できない形で再é
    24 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    25  *      と.
    26  *    (a) 再é
    27 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    28 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    29  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    30  *    (b) 再é
    31 å¸ƒã®å½¢æ
    32 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    33  *        報告すること.
    34  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    35  *      害からも,上記著作権è€
    36 ãŠã‚ˆã³TOPPERSプロジェクトをå
    37 è²¬ã™ã‚‹ã“と.
    38  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    39  *      由に基づく請求からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトを
    41  *      å
    42 è²¬ã™ã‚‹ã“と.
     7 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     8 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     9 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     10 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     11 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     12 *      スコード中に含まれていること.
     13 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     14 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     15 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     16 *      の無保証規定を掲載すること.
     17 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     18 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     19 *      と.
     20 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     21 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     22 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     23 *        報告すること.
     24 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     26 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     27 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     28 *      免責すること.
    4329 *
    44  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    45 ãŠ
    46  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    47  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    48  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    49  *  の責任を負わない.
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    5035 *
    5136 *  @(#) $Id$
     
    5338
    5439/*
    55  *              t_stddef.hのプロセッサ依存部(RX630用)
     40 *              t_stddef.hのプロセッサ依存部(RX630用)
    5641 *
    57  *  このインクルードファイルは,target_stddef.h(または,そこからインク
    58  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    59  *  直接インクルードしてはならない.
     42 *  このインクルードファイルは,target_stddef.h(または,そこからインク
     43 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     44 *  直接インクルードしてはならない.
    6045 */
    6146
     
    6449
    6550/*
    66  *  ターゲットを識別するためのマクロの定義
     51 *  ターゲットを識別するためのマクロの定義
    6752 */
    68 #define TOPPERS_RX630                           /* プロセッサ略称 */
     53#define TOPPERS_RX630                           /* プロセッサ略称 */
    6954
    7055#endif /* TOPPERS_PRC_STDDEF_H */
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_support.S

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain; charset=UTF-8
    r317 r318  
    1212;   Copyright (C) 2017      by Cores Co., Ltd. Japan
    1313
    14 ;   ä¸Šè¨˜è‘—作権è€
    15 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    16 ;   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    17 ;   å¤‰ãƒ»å†é
    18 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    19 ;   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    20 ;       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    21 ;       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    22 ;   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    23 ;       ç”¨ã§ãã‚‹å½¢ã§å†é
    24 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    25 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    26 ;       è€
    27 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    28 ;       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    29 ;   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    30 ;       ç”¨ã§ããªã„形で再é
    31 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    32 ;       ã¨ï¼Ž
    33 ;     (a) 再é
    34 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    35 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    36 ;         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    37 ;     (b) 再é
    38 å¸ƒã®å½¢æ
    39 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    40 ;         å ±å‘Šã™ã‚‹ã“と.
    41 ;   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    42 ;       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトをå
    44 è²¬ã™ã‚‹ã“と.
    45 ;       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    46 ;       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    47 ãŠã‚ˆã³TOPPERSプロジェクトを
    48 ;       å
    49 è²¬ã™ã‚‹ã“と.
     14;   上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     15;   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     16;   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     17;   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     18;       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     19;       スコード中に含まれていること.
     20;   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     21;       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     22;       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     23;       の無保証規定を掲載すること.
     24;   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     25;       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     26;       と.
     27;     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     28;         作権表示,この利用条件および下記の無保証規定を掲載すること.
     29;     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     30;         報告すること.
     31;   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     32;       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     33;       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     34;       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     35;       免責すること.
    5036
    51 ;   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    52 ãŠ
    53 ;   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    54 ;   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    55 ;   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    56 ;   ã®è²¬ä»»ã‚’負わない.
     37;   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     38;   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     39;   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     40;   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     41;   の責任を負わない.
    5742
    5843;  @(#) $Id$
     
    6045
    6146;
    62 ãƒ—ロセッサ依存モジュール アセンブリ言語部(RX630用)
     47プロセッサ依存モジュール アセンブリ言語部(RX630用)
    6348;
    6449#define TOPPERS_MACRO_ONLY
    65 #define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
    66 #define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
    67 #define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
     50#define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
     51#define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
     52#define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
    6853#include "kernel_impl.h"
    6954
    7055;
    71 ;  ディスパッチャおよび割込み(CPU例外)出å
    72 ¥ã‚Šå£ã®ãƒ«ãƒ¼ãƒ«:
    73 ;       å‹•ä½œãƒ¢ãƒ¼ãƒ‰ã‚’以下のように定義する.
    74 ;               ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード:
    75 ;                       CPUロック状æ
    76 ‹, 割込み優å
    77 ˆåº¦ãƒžã‚¹ã‚¯å
    78 ¨è§£é™¤çŠ¶æ
    79 ‹,
    80 ;                       ã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆ(intnest = 0), タスクスタック
    81 ;               å‰²è¾¼ã¿(CPU例外)処理モード
    82 ;                       å
    83 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    84 ‹(PSWレジスタIビット = 0),
    85 ;                       å‰²è¾¼ã¿å„ªå
    86 ˆåº¦ãƒžã‚¹ã‚¯å
    87 ¨è§£é™¤ã§ãªã„状æ
    88 ‹(IPL != 0)
    89 ;                       å‰²è¾¼ã¿ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆ(intnest != 0), 割込みスタック
    90 ;
    91 ;       ã‚«ãƒ¼ãƒãƒ«ç®¡ç†å¤–割込みのサポート有無と, CPUロック状æ
    92 ‹, 割込み優å
    93 ˆåº¦
    94 ;       ãƒžã‚¹ã‚¯å
    95 ¨è§£é™¤çŠ¶æ
    96 ‹ã®é–¢ä¿‚は以下の通りである.
    97 ;               ã‚«ãƒ¼ãƒãƒ«ç®¡ç†å¤–割込み未サポート時:
    98 ;                       CPUロック状æ
    99 ‹(PSWレジスタIビット = 0)
    100 ;                       å‰²è¾¼ã¿å„ªå
    101 ˆåº¦ãƒžã‚¹ã‚¯å
    102 ¨è§£é™¤çŠ¶æ
    103 ‹(IPL = 0)
    104 ;               ã‚«ãƒ¼ãƒãƒ«ç®¡ç†å¤–割込みサポート時:
    105 ;                       CPUロック状æ
    106 ‹
    107 ;                               (PSWレジスタIビット = 0, IPL = IPL_LOCK, lock_flag = true)
    108 ;                       å‰²è¾¼ã¿å„ªå
    109 ˆåº¦ãƒžã‚¹ã‚¯å
    110 ¨è§£é™¤çŠ¶æ
    111 ‹(saved_ipl = 0)
    112 ;
    113 ;       å„構造体ポインタを以下のように各レジスタにアサインする.
    114 ;               r15 = p_runtsk  ただしディスパッチャの各出口では無効
    115 ;               r14 = *p_runtsk dispatcher の中では p_runtsk 確定時に再取得する
    116 ;       å„å
    117 ¥ã‚Šå£ã‹ã‚‰æœ€åˆã«å¤‰æ•°ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã¨ãã«ä¸Šè¨˜ãƒ¬ã‚¸ã‚¹ã‚¿ã«ä¿å­˜ã™ã‚‹.
    118 ;
    119 ;       æ§‹é€ ä½“アライメントへの対応
    120 ;               æ§‹é€ ä½“アライメントが4Byte(アンパック)の場合:
    121 ;                       ä¸€èˆ¬çš„なレジスタ相対アドレッシングが可能
    122 ;                               ä¾‹:    mov.l   #__kernel_p_runtsk, r15
     56;  ディスパッチャおよび割込み(CPU例外)出入り口のルール:
     57;       動作モードを以下のように定義する.
     58;               ディスパッチャモード:
     59;                       CPUロック状態, 割込み優先度マスク全解除状態,
     60;                       タスクコンテキスト(intnest = 0), タスクスタック
     61;               割込み(CPU例外)処理モード
     62;                       全割込みロック状態(PSWレジスタIビット = 0),
     63;                       割込み優先度マスク全解除でない状態(IPL != 0)
     64;                       割込みコンテキスト(intnest != 0), 割込みスタック
     65;
     66;       カーネル管理外割込みのサポート有無と, CPUロック状態, 割込み優先度
     67;       マスク全解除状態の関係は以下の通りである.
     68;               カーネル管理外割込み未サポート時:
     69;                       CPUロック状態(PSWレジスタIビット = 0)
     70;                       割込み優先度マスク全解除状態(IPL = 0)
     71;               カーネル管理外割込みサポート時:
     72;                       CPUロック状態
     73;                               (PSWレジスタIビット = 0, IPL = IPL_LOCK, lock_flag = true)
     74;                       割込み優先度マスク全解除状態(saved_ipl = 0)
     75;
     76;       各構造体ポインタを以下のように各レジスタにアサインする.
     77;               r15 = p_runtsk  ただしディスパッチャの各出口では無効
     78;               r14 = *p_runtsk dispatcher の中では p_runtsk 確定時に再取得する
     79;       各入り口から最初に変数アクセスするときに上記レジスタに保存する.
     80;
     81;       構造体アライメントへの対応
     82;               構造体アライメントが4Byte(アンパック)の場合:
     83;                       一般的なレジスタ相対アドレッシングが可能
     84;                               例:      mov.l   #__kernel_p_runtsk, r15
    12385;                                       mov.l   r0, TCB_sp[r15]
    124 ;               æ§‹é€ ä½“アライメントが4Byteではない(パック)の場合:
    125 ;                       mov.lのようにロングサイズ指定の場合、相対値は4の倍数のみ有効
    126 ;                       ã“のため, 一度対象アドレスを求めてからアクセスするå¿
    127 è¦ãŒã‚ã‚‹
    128 ;                               ä¾‹:    mov.l   #__kernel_p_runtsk, r15
     86;               構造体アライメントが4Byteではない(パック)の場合:
     87;                       mov.lのようにロングサイズ指定の場合、相対値は4の倍数のみ有効
     88;                       このため, 一度対象アドレスを求めてからアクセスする必要がある
     89;                               例:      mov.l   #__kernel_p_runtsk, r15
    12990;                                       add             #TCB_sp, r15, r5
    13091;                                       mov.l   r0, [r5]
    131 ;               å„オフセット値を判断し, 条件アセンブルによりコードを切り替える
    132 ;
    133 
    134 ;
    135 æ§‹é€ ä½“アクセスのオフセット定義
     92;               各オフセット値を判断し, 条件アセンブルによりコードを切り替える
     93;
     94
     95;
     96構造体アクセスのオフセット定義
    13697;
    13798#include "offset.h"
    13899
    139100;
    140 å„種EQU定義(Hファイルの#define定義)
     101各種EQU定義(Hファイルの#define定義)
    141102;
    142103#include "target_kernel_impl.h"
     
    194155
    195156;
    196 ;  TCB_sp への書込みマクロ
     157;  TCB_sp への書込みマクロ
    197158;
    198159.macro  st_TCB_sp       src, tcb, tmp
     
    206167
    207168;
    208 ;  TCB_sp からの読出しマクロ
     169;  TCB_sp からの読出しマクロ
    209170;
    210171.macro  ld_TCB_sp       dst, tcb, tmp
     
    218179
    219180;
    220 ;  TCB_pc への書込みマクロ
     181;  TCB_pc への書込みマクロ
    221182;
    222183.macro  st_TCB_pc       src, tcb, tmp
     
    230191
    231192;
    232 ;  TCB_pc からの読出しマクロ
     193;  TCB_pc からの読出しマクロ
    233194;
    234195.macro  ld_TCB_pc       dst, tcb, tmp
     
    242203
    243204;
    244 ;  TCB_texptn からの読出しマクロ
     205;  TCB_texptn からの読出しマクロ
    245206;
    246207.macro  ld_TCB_texptn   dst, tcb, tmp
     
    254215
    255216;
    256 ;  TCB_p_tinib からの読出しマクロ
     217;  TCB_p_tinib からの読出しマクロ
    257218;
    258219.macro  ld_TCB_p_tinib  dst, tcb, tmp
     
    266227
    267228;
    268 ;  TINIB_exinf からの読出しマクロ
     229;  TINIB_exinf からの読出しマクロ
    269230;
    270231.macro  ld_TINIB_exinf  dst, tinib, tmp
     
    278239
    279240;
    280 ;  TINIB_task からの読出しマクロ
     241;  TINIB_task からの読出しマクロ
    281242;
    282243.macro  ld_TINIB_task   dst, tinib, tmp
     
    293254
    294255;
    295 ;  APIからのタスクディスパッチャå
    296 ¥å£
    297 ;
    298 ;  呼び出し条件:
    299 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    300 §)
    301 ;
    302 ;  ここでは, コンテキストの退避と, 実行再開番地の設定をする.
     256;  APIからのタスクディスパッチャ入口
     257;
     258;  呼び出し条件:
     259;       ・ディスパッチャモード(ファイルヘッダ参照)
     260;
     261;  ここでは, コンテキストの退避と, 実行再開番地の設定をする.
    303262;
    304263__kernel_dispatch:
    305264#ifdef TOPPERS_SUPPORT_OVRHDR /* (6-5-3-1) */
    306         mov.l   #255, r1                                        ; r1にダミー割込み番号
     265        mov.l   #255, r1                                        ; r1にダミー割込み番号
    307266        bsr             __kernel_ovrtimer_stop
    308267#endif /* TOPPERS_SUPPORT_OVRHDR */
    309         pushm   r6-r13                                          ; 非スクラッチレジスタ保存
     268        pushm   r6-r13                                          ; 非スクラッチレジスタ保存
    310269        mov.l   #__kernel_p_runtsk, r15
    311270        mov.l   [r15], r14
    312         st_TCB_sp       r0, r14, r5                             ; スタックポインタをTCBに保存
    313         st_TCB_pc       #dispatch_r, r14, r5    ; 実行再開番地をTCBに保存
     271        st_TCB_sp       r0, r14, r5                             ; スタックポインタをTCBに保存
     272        st_TCB_pc       #dispatch_r, r14, r5    ; 実行再開番地をTCBに保存
    314273        bra             dispatcher
    315274
    316275;
    317 ;  APIへのタスクディスパッチャ出口
    318 ;
    319 ;  呼び出し条件:
    320 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    321 §)
    322 ;
    323 ;  ここでは, タスク例外ハンドラ呼出しと, コンテキストの復帰をする.
     276;  APIへのタスクディスパッチャ出口
     277;
     278;  呼び出し条件:
     279;       ・ディスパッチャモード(ファイルヘッダ参照)
     280;
     281;  ここでは, タスク例外ハンドラ呼出しと, コンテキストの復帰をする.
    324282;
    325283dispatch_r:
    326284dispatch_r_rts:
    327         popm    r6-r13                                          ; 非スクラッチレジスタ復帰
     285        popm    r6-r13                                          ; 非スクラッチレジスタ復帰
    328286#ifdef TOPPERS_SUPPORT_OVRHDR /* (6-5-3-2) */
    329287        bsr             __kernel_ovrtimer_start
    330288#endif /* TOPPERS_SUPPORT_OVRHDR */
    331         rts                                     ; dispatch 呼び出しå
    332 ƒã¸æˆ»ã‚‹.
    333 
    334 ;
    335 ;  タスク起動処理(タスクå
    336 ˆé ­ã¸ã®ã‚¿ã‚¹ã‚¯ãƒ‡ã‚£ã‚¹ãƒ‘ッチャ出口)
    337 ;
    338 ;  呼び出し条件:
    339 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    340 §)
    341 ;
    342 ;  ここでは, CPUロック解除状æ
    343 ‹ã«ã—, タスクを起動する.
     289        rts                                     ; dispatch 呼び出し元へ戻る.
     290
     291;
     292;  タスク起動処理(タスク先頭へのタスクディスパッチャ出口)
     293;
     294;  呼び出し条件:
     295;       ・ディスパッチャモード(ファイルヘッダ参照)
     296;
     297;  ここでは, CPUロック解除状態にし, タスクを起動する.
    344298;
    345299__kernel_start_r:
     
    350304#endif /* TOPPERS_SUPPORT_OVRHDR */
    351305        mov.l   #_ext_tsk, r5
    352         push.l  r5                                                      ; 戻り番地をスタックに積む
     306        push.l  r5                                                      ; 戻り番地をスタックに積む
    353307        ld_TCB_p_tinib  r5, r14, r4
    354         ld_TINIB_exinf  r1, r5, r4                      ; 拡張æƒ
    355 å ±ã‚’第一引数に設定
    356         ld_TINIB_task   r5, r5, r4                      ; タスクの起動番地を取得
     308        ld_TINIB_exinf  r1, r5, r4                      ; 拡張情報を第一引数に設定
     309        ld_TINIB_task   r5, r5, r4                      ; タスクの起動番地を取得
    357310.if     TIPM_LOCK == -15
    358         setpsw  i                                                       ; 割込み許可(CPUロック解除状æ
    359 ‹)
     311        setpsw  i                                                       ; 割込み許可(CPUロック解除状態)
    360312.else
    361         mov.l   #__kernel_lock_flag, r4         ; CPUロック解除状æ
    362 ‹ã¸
    363         mov.l   #0, [r4]                                        ; ここに来るときはå¿
    364 ãš saved_ipl の
    365         mvtc    #00010000H, psw                         ; 値は 0 のため, 直値を設定する.
    366                                                                 ; å
    367 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯è§£é™¤çŠ¶æ
    368 ‹( I = 1 )
    369                                                                 ; 割込み優å
    370 ˆåº¦ãƒžã‚¹ã‚¯å
    371 ¨è§£é™¤çŠ¶æ
    372 ‹( IPL = 0 )
     313        mov.l   #__kernel_lock_flag, r4         ; CPUロック解除状態へ
     314        mov.l   #0, [r4]                                        ; ここに来るときは必ず saved_ipl の
     315        mvtc    #00010000H, psw                         ; 値は 0 のため, 直値を設定する.
     316                                                                ; 全割込みロック解除状態( I = 1 )
     317                                                                ; 割込み優先度マスク全解除状態( IPL = 0 )
    373318.endif
    374319        jmp             r5
    375320
    376321;
    377 ;  カーネル起動からのタスクディスパッチャå
    378 ¥å£
    379 ;
    380 ;  このルーチンは,カーネル起動時に,すべての割込みを禁止した状æ
    381 ‹
    382 ; (割込みロック状æ
    383 ‹ã¨åŒç­‰ï¼‰ã§å‘¼ã³å‡ºã•ã‚Œã‚‹ï¼Žã¾ãŸï¼Œå‰²è¾¼ã¿ãƒ¢ãƒ¼ãƒ‰ï¼ˆéž
    384 ;  タスクコンテキストと同等)で呼び出されることを想定している.
    385 ;
    386 ;  呼び出し条件:
    387 ;       ãƒ»å‰²è¾¼ã¿(CPU例外)処理モード(ファイルヘッダ参ç
    388 §)
    389 ;
    390 ;  ここでは, ディスパッチャモードに変更する.
     322;  カーネル起動からのタスクディスパッチャ入口
     323;
     324;  このルーチンは,カーネル起動時に,すべての割込みを禁止した状態
     325; (割込みロック状態と同等)で呼び出される.また,割込みモード(非
     326;  タスクコンテキストと同等)で呼び出されることを想定している.
     327;
     328;  呼び出し条件:
     329;       ・割込み(CPU例外)処理モード(ファイルヘッダ参照)
     330;
     331;  ここでは, ディスパッチャモードに変更する.
    391332;
    392333__kernel_start_dispatch:
    393334        mov.l   #__kernel_intnest, r5
    394         mov.w   #0, [r5]                                        ; タスクコンテキストに切換え
     335        mov.w   #0, [r5]                                        ; タスクコンテキストに切換え
    395336#if     TIPM_LOCK != -15
    396         mvtc    #(IPL_LOCK | 00010000H), psw    ; å
    397 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯è§£é™¤çŠ¶æ
    398 ‹
    399                                                                                 ; 割込み優å
    400 ˆåº¦ãƒžã‚¹ã‚¯å
    401 ¨è§£é™¤ã§ãªã„状æ
    402 ‹
    403 #endif
    404 
    405 ;
    406 ; タスク終了(現在のコンテキストを捨てる)からのタスクディスパッチャå
    407 ¥å£
    408 ;
    409 ;  呼び出し条件:
    410 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    411 §)
    412 ;
    413 ;  ここでは, 何もすることはない.
    414 ;  なお, p_runtsk のアドレス取得だけは行なう.
     337        mvtc    #(IPL_LOCK | 00010000H), psw    ; 全割込みロック解除状態
     338                                                                                ; 割込み優先度マスク全解除でない状態
     339#endif
     340
     341;
     342; タスク終了(現在のコンテキストを捨てる)からのタスクディスパッチャ入口
     343;
     344;  呼び出し条件:
     345;       ・ディスパッチャモード(ファイルヘッダ参照)
     346;
     347;  ここでは, 何もすることはない.
     348;  なお, p_runtsk のアドレス取得だけは行なう.
    415349;
    416350__exit_and_dispatch:
     
    420354.endif
    421355;
    422 ; ディスパッチャ本体
    423 ;
    424 å‘¼ã³å‡ºã—条件:
    425 ;       ãƒ»ã™ã¹ã¦ã®ã‚¿ã‚¹ã‚¯ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã¯ä¿å­˜ã•ã‚Œã¦ã„ã‚‹.
    426 ;
    427 ;  dispatcher 呼出時のスタック:
    428 ;       ãƒ»__kernel_dispatch からきた場合                 : タスクスタック
    429 ;       ãƒ»exit_and_dispatch からきた場合:
    430 ;               exit_task からきた場合                                    : タスクスタック
    431 ;               ã‚«ãƒ¼ãƒãƒ«èµ·å‹•æ™‚(__kernel_start_dispatch)  : 割込みスタック
    432 ;       ãƒ»ret_int からきた場合                                           : タスクスタック
    433 ;       ãƒ»dispatcher_idle_loop からきた場合                      : 割込みスタック
     356; ディスパッチャ本体
     357;
     358呼び出し条件:
     359;       ・すべてのタスクのコンテキストは保存されている.
     360;
     361;  dispatcher 呼出時のスタック:
     362;       ・__kernel_dispatch からきた場合                       : タスクスタック
     363;       ・exit_and_dispatch からきた場合:
     364;               exit_task からきた場合                                        : タスクスタック
     365;               カーネル起動時(__kernel_start_dispatch)        : 割込みスタック
     366;       ・ret_int からきた場合                                         : タスクスタック
     367;       ・dispatcher_idle_loop からきた場合                    : 割込みスタック
    434368;
    435369dispatcher:
    436370.if     LOG_DSP_ENTER == 1
    437371        push.l  r15
    438         mov.l   r14, r1                                         ; 引数(ディスパッチå
    439 ƒTCB)を設定
     372        mov.l   r14, r1                                         ; 引数(ディスパッチ元TCB)を設定
    440373        bsr             __kernel_log_dsp_enter
    441374        pop             r15
    442375.endif
    443376        mov.l   #__kernel_p_schedtsk, r5     
    444         mov.l   [r5], [r15]                                     ; p_schedtsk を p_runtsk に
     377        mov.l   [r5], [r15]                                     ; p_schedtsk を p_runtsk に
    445378        mov.l   [r15], r14
    446379        cmp             #0, r14
    447         bz              dispatcher_pre_idle                     ; schedtsk がなければアイドルループへ
    448         ld_TCB_sp       r0, r14, r5                             ; タスクスタックポインタを復帰
     380        bz              dispatcher_pre_idle                     ; schedtsk がなければアイドルループへ
     381        ld_TCB_sp       r0, r14, r5                             ; タスクスタックポインタを復帰
    449382.if     LOG_DSP_LEAVE == 1
    450383        push.l  r14
    451         mov.l   r14, r1                                         ; 引数(ディスパッチå
    452 ˆTCB)を設定
     384        mov.l   r14, r1                                         ; 引数(ディスパッチ先TCB)を設定
    453385        bsr             __kernel_log_dsp_leave
    454386        pop             r14
    455387.endif
    456388        ld_TCB_pc       r5, r14, r4
    457         jmp             r5                                      ; 実行再開番地へジャンプ
    458 
    459 ;
    460 ;  schdedtskがNULLの場合はアイドルループにå
    461 ¥ã‚‹
    462 ;  アイドルループは割込み処理モードで動作させる
    463 ;
    464 ;  ここで割込みモードに切り換えるのは,ここで発生する割込み処理に
    465 ;  どのスタックを使うかという問題の解決と,割込みハンドラå†
    466 ã§ã®ã‚¿
    467 ;  スクディスパッチの防止という2つの意味がある.
     389        jmp             r5                                      ; 実行再開番地へジャンプ
     390
     391;
     392;  schdedtskがNULLの場合はアイドルループに入る
     393;  アイドルループは割込み処理モードで動作させる
     394;
     395;  ここで割込みモードに切り換えるのは,ここで発生する割込み処理に
     396;  どのスタックを使うかという問題の解決と,割込みハンドラ内でのタ
     397;  スクディスパッチの防止という2つの意味がある.
    468398;
    469399dispatcher_pre_idle:
    470400        mov.l   #__kernel_istkpt,r5
    471         mov.l   [r5], r0                                        ; 割込み用のスタックへ切替え
     401        mov.l   [r5], r0                                        ; 割込み用のスタックへ切替え
    472402        mov.l   #__kernel_intnest, r5
    473         mov.w   #1, [r5]                                        ; 非タスクコンテキストに切換え
     403        mov.w   #1, [r5]                                        ; 非タスクコンテキストに切換え
    474404#if     TIPM_LOCK != -15
    475         mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状æ
    476 ‹ã¸
     405        mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状態へ
    477406        mov.l   #0, [r5]
    478         mvtc    #0, psw                                         ; 優å
    479 ˆåº¦0の割込み処理中を偽è£
    480 
     407        mvtc    #0, psw                                         ; 優先度0の割込み処理中を偽装
    481408#endif
    482409
    483410dispatcher_idle_loop:
    484         setpsw  i                                                       ; å
    485 ¨å‰²è¾¼ã¿è¨±å¯
    486         clrpsw  i                                                       ; å
    487 ¨å‰²è¾¼ã¿ç¦æ­¢
     411        setpsw  i                                                       ; 全割込み許可
     412        clrpsw  i                                                       ; 全割込み禁止
    488413
    489414        mov.l   #__kernel_p_schedtsk, r4
     
    491416        mov.l   #__kernel_p_runtsk, r5
    492417        mov.l   [r5], r5                                        ; p_runtsk -> r5
    493         cmp             r4, r5                                          ; p_schedtsk と p_runtsk が同じでディスパッチ要求無しなら
    494         beq             dispatcher_idle_loop            ; アイドルループを繰り返す
    495         mov.l   #0, [r5]                                        ; reqflgがtrueならfalseにする
     418        cmp             r4, r5                                          ; p_schedtsk と p_runtsk が同じでディスパッチ要求無しなら
     419        beq             dispatcher_idle_loop            ; アイドルループを繰り返す
     420        mov.l   #0, [r5]                                        ; reqflgがtrueならfalseにする
    496421        mov.l   #__kernel_intnest, r5
    497         mov.w   #0, [r5]                                        ; タスクコンテキストに切換え
     422        mov.w   #0, [r5]                                        ; タスクコンテキストに切換え
    498423#if     TIPM_LOCK != -15
    499         mov.l   #__kernel_lock_flag, r5         ; CPUロック状æ
    500 ‹ã¸
     424        mov.l   #__kernel_lock_flag, r5         ; CPUロック状態へ
    501425        mov.l   #1, [r5]
    502426        mov.l   #__kernel_saved_ipl, r5
    503427        mov.l   #0, [r5]
    504         mvtc    #(IPL_LOCK | PSW_I_MASK), psw   ; å
    505 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯è§£é™¤çŠ¶æ
    506 ‹
    507                                                                                 ; 割込み優å
    508 ˆåº¦ãƒžã‚¹ã‚¯å
    509 ¨è§£é™¤ã§ãªã„状æ
    510 ‹
    511 #endif
    512         bra             dispatcher                                      ; dispatcher へ戻る
    513 
    514 
    515 ;
    516 ; カーネルの終了処理の呼出し
    517 ;
    518 ; モードとスタックを非タスクコンテキスト用に切り替え.
     428        mvtc    #(IPL_LOCK | PSW_I_MASK), psw   ; 全割込みロック解除状態
     429                                                                                ; 割込み優先度マスク全解除でない状態
     430#endif
     431        bra             dispatcher                                      ; dispatcher へ戻る
     432
     433
     434;
     435; カーネルの終了処理の呼出し
     436;
     437; モードとスタックを非タスクコンテキスト用に切り替え.
    519438;
    520439        .global __kernel_call_exit_kernel
    521440__kernel_call_exit_kernel:
    522441#if     TIPM_LOCK != -15
    523         clrpsw  i                                                       ; å
    524 ¨å‰²è¾¼ã¿ç¦æ­¢
    525         mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状æ
    526 ‹ã¸
     442        clrpsw  i                                                       ; 全割込み禁止
     443        mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状態へ
    527444        mov.l   #0, [r5]
    528445#endif
    529446        mov.l   #__kernel_istkpt, r5
    530         mov.l   [r5], r0                                        ; 割込み用のスタックへ切替え
     447        mov.l   [r5], r0                                        ; 割込み用のスタックへ切替え
    531448        mov.l   #__kernel_intnest, r5
    532         mov.w   #1, [r5]                                        ; 非タスクコンテキストに切換え
     449        mov.w   #1, [r5]                                        ; 非タスクコンテキストに切換え
    533450        bsr             __kernel_exit_kernel
    534451        bra             __kernel_call_exit_kernel
     
    536453
    537454;
    538 ;  割込み(CPU例外)からのタスクディスパッチャå
    539 ¥å£
    540 ;
    541 ;       å‘¼å‡ºã—条件:
    542 ;       ãƒ»å
    543 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    544 ‹(PSWレジスタIビット = 0)
    545 ;       ãƒ»å‰²è¾¼ã¿å„ªå
    546 ˆåº¦ãƒžã‚¹ã‚¯å
    547 ¨è§£é™¤ã§ãªã„状æ
    548 ‹(IPL != 0)
    549 ;       ãƒ»ã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆ(intnest=0)
    550 ;       ãƒ»ä½¿ç”¨ã‚¹ã‚¿ãƒƒã‚¯ã¯ã‚¿ã‚¹ã‚¯ã‚¹ã‚¿ãƒƒã‚¯
    551 ;       ãƒ»reqflg = true
    552 ;
    553 ;  ここでは, ディスパッチャモードに変更し, reqflgをOFFにしてから,
    554 ;  é
    555 å»¶ãƒ‡ã‚£ã‚¹ãƒ‘ッチの有無を判断する.
    556 ;
    557 
    558 ;
    559 ;  ret_intå
    560 ˆé ­ã§ã‚¹ã‚¿ãƒƒã‚¯ã«ç©ã¾ã‚Œã¦ã„ã‚‹PSWレジスタへのオフセット
     455;  割込み(CPU例外)からのタスクディスパッチャ入口
     456;
     457;       呼出し条件:
     458;       ・全割込みロック状態(PSWレジスタIビット = 0)
     459;       ・割込み優先度マスク全解除でない状態(IPL != 0)
     460;       ・タスクコンテキスト(intnest=0)
     461;       ・使用スタックはタスクスタック
     462;       ・reqflg = true
     463;
     464;  ここでは, ディスパッチャモードに変更し, reqflgをOFFにしてから,
     465;  遅延ディスパッチの有無を判断する.
     466;
     467
     468;
     469;  ret_int先頭でスタックに積まれているPSWレジスタへのオフセット
    561470;  ACC + FPSW + R14--R15 + R1--R5 + PC
    562471;
     
    565474ret_int:
    566475.if     TIPM_LOCK == -15
    567         mov.l   RET_INT_GET_PSW_OFFSET[r0], r5  ; 割込み/CPU例外発生前のIPL値取得
     476        mov.l   RET_INT_GET_PSW_OFFSET[r0], r5  ; 割込み/CPU例外発生前のIPL値取得
    568477        and             #PSW_IPL_MASK, r5
    569         mvtc    r5, psw                                         ; å
    570 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯(CPUロック)状æ
    571 ‹
    572                                                                                 ; 割込み/CPU例外発生前の割込み優å
    573 ˆåº¦
     478        mvtc    r5, psw                                         ; 全割込みロック(CPUロック)状態
     479                                                                                ; 割込み/CPU例外発生前の割込み優先度
    574480.else
    575         mov.l   #__kernel_lock_flag, r5         ; CPUロック状æ
    576 ‹ã¸
     481        mov.l   #__kernel_lock_flag, r5         ; CPUロック状態へ
    577482        mov.l   #1, [r5]
    578         mov.l   RET_INT_GET_PSW_OFFSET[r0], r5  ; 割込み/CPU例外発生前のIPL値取得
     483        mov.l   RET_INT_GET_PSW_OFFSET[r0], r5  ; 割込み/CPU例外発生前のIPL値取得
    579484        and             #PSW_IPL_MASK, r5
    580485        mov.l   #__kernel_saved_ipl, r4
    581486        mov.l   r5, [r4]
    582         mvtc    #(IPL_LOCK | PSW_I_MASK), psw   ; å
    583 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯è§£é™¤çŠ¶æ
    584 ‹
    585                                                                                 ; 割込み優å
    586 ˆåº¦ãƒžã‚¹ã‚¯å
    587 ¨è§£é™¤ã§ãªã„状æ
    588 ‹
     487        mvtc    #(IPL_LOCK | PSW_I_MASK), psw   ; 全割込みロック解除状態
     488                                                                                ; 割込み優先度マスク全解除でない状態
    589489.endif
    590490        mov.l   #__kernel_p_runtsk, r15     
     
    592492        mov.l   #__kernel_p_schedtsk, r5
    593493        mov.l   [r5], r5
    594         cmp             r5, r14                                         ; p_schedtsk と p_runtsk が同じなら
    595         beq     ret_int_r_call_tex                      ; ret_int_r_call_tex へ
    596         pushm   r6-r13                                          ; 非スクラッチレジスタ保存
    597         st_TCB_sp       r0, r14, r5                             ; スタックポインタをTCBに保存
    598         st_TCB_pc       #ret_int_r, r14, r5             ; 実行再開番地をTCBに保存
     494        cmp             r5, r14                                         ; p_schedtsk と p_runtsk が同じなら
     495        beq     ret_int_r_call_tex                      ; ret_int_r_call_tex
     496        pushm   r6-r13                                          ; 非スクラッチレジスタ保存
     497        st_TCB_sp       r0, r14, r5                             ; スタックポインタをTCBに保存
     498        st_TCB_pc       #ret_int_r, r14, r5             ; 実行再開番地をTCBに保存
    599499        bra             dispatcher
    600500
    601501;
    602 ;  割込み(CPU例外)へのタスクディスパッチャ出口
    603 ;
    604 ;  呼び出し条件:
    605 ;       ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチャモード(ファイルヘッダ参ç
    606 §)
    607 ;
    608 ;  ここでは, タスク例外ハンドラ呼出しと, 割込み(CPU例外)処理モードへの
    609 ;  変更と, コンテキストの復帰を行い, 割込み(CUP例外)発生å
    610 ƒã¸æˆ»ã‚‹.
    611 ;
    612 __kernel_break_wait:                                    ;タスクモニタ用ラベル
     502;  割込み(CPU例外)へのタスクディスパッチャ出口
     503;
     504;  呼び出し条件:
     505;       ・ディスパッチャモード(ファイルヘッダ参照)
     506;
     507;  ここでは, タスク例外ハンドラ呼出しと, 割込み(CPU例外)処理モードへの
     508;  変更と, コンテキストの復帰を行い, 割込み(CUP例外)発生元へ戻る.
     509;
     510__kernel_break_wait:                                    ;タスクモニタ用ラベル
    613511ret_int_r:
    614         popm    r6-r13                                          ; 非スクラッチレジスタ復帰
     512        popm    r6-r13                                          ; 非スクラッチレジスタ復帰
    615513ret_int_r_call_tex:
    616514#ifdef TOPPERS_SUPPORT_OVRHDR /* 6.6.1 & 6.7.1 */
     
    621519ret_int_r_rte:
    622520#if     TIPM_LOCK != -15
    623         clrpsw  i                                                       ; å
    624 ¨å‰²è¾¼ã¿ç¦æ­¢
    625         mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状æ
    626 ‹ã¸
     521        clrpsw  i                                                       ; 全割込み禁止
     522        mov.l   #__kernel_lock_flag, r5         ; CPUロック解除状態へ
    627523        mov.l   #0, [r5]
    628524#endif
    629         popm    r4-r5                                           ; アキュムレータ復帰
    630         mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
     525        popm    r4-r5                                           ; アキュムレータ復帰
     526        mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
    631527        mvtachi r4
    632         popc    fpsw                                            ; FPUステータスレジスタ復帰
    633         popm    r14-r15                                         ; レジスタ復帰
     528        popc    fpsw                                            ; FPUステータスレジスタ復帰
     529        popm    r14-r15                                         ; レジスタ復帰
    634530        popm    r1-r5
    635         rte                                                                     ; 割込み前の処理に戻る
    636 
    637 
    638 ;
    639 ;  割込みの出å
    640 ¥å£å‡¦ç†(アセンブリ言語記述部分)
    641 ;
    642 ;  呼出し条件:
    643 ;  ・割込み発生時のH/W処理により, PSWレジスタのIビット=0, IPLは受付け
    644 ;    た割込みのIPL.
    645 ;  ・スタックは多重割り込みなら割込みスタック, そうでなければ
    646 ;    タスクスタック
    647 ;  ・割込み発生時のH/W処理により,スタックに割込みからの復帰PCとPSWが
    648 ;    保存されている.
    649 ;  ・ベクタテーブルに登録された個別のå
    650 ¥ã‚Šå£å‡¦ç†ã«ã‚ˆã‚Š, スタックに
    651 ;    スクラッチレジスタ(R1-R5)が保存されている.
    652 ;
    653 ;  引数:
    654 ;  ・r1:割込み要因番号
    655 ;  ・r2:割込みハンドラのアドレス
    656 ;
    657 ;  レジスタがスタック上にどのように保存されているかを以下に示す.
    658 ;  この図では上が低位, 下が高位のアドレスで, スタックは下から
    659 ;  上方向に向かって積み上げられるものとする.
     531        rte                                                                     ; 割込み前の処理に戻る
     532
     533
     534;
     535;  割込みの出入口処理(アセンブリ言語記述部分)
     536;
     537;  呼出し条件:
     538;  ・割込み発生時のH/W処理により, PSWレジスタのIビット=0, IPLは受付け
     539;    た割込みのIPL.
     540;  ・スタックは多重割り込みなら割込みスタック, そうでなければ
     541;    タスクスタック
     542;  ・割込み発生時のH/W処理により,スタックに割込みからの復帰PCとPSWが
     543;    保存されている.
     544;  ・ベクタテーブルに登録された個別の入り口処理により, スタックに
     545;    スクラッチレジスタ(R1-R5)が保存されている.
     546;
     547;  引数:
     548;  ・r1:割込み要因番号
     549;  ・r2:割込みハンドラのアドレス
     550;
     551;  レジスタがスタック上にどのように保存されているかを以下に示す.
     552;  この図では上が低位, 下が高位のアドレスで, スタックは下から
     553;  上方向に向かって積み上げられるものとする.
    660554;
    661555;       -------------------------
     
    685579;       -------------------------(SP + 44)
    686580;
    687 ;  ここでは, 割込み処理モードに変更してハンドラを実行する.
    688 ;
    689 ;  ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が
    690 ;  TRUE になった時に,ret_int へ分岐(é
    691 å»¶ãƒ‡ã‚£ã‚¹ãƒ‘ッチ)する.
    692 ;
    693 ;  多重割込みかどうかは割込みネストカウンタの値で判定する.
    694 ;  intnest != 0 ならば多重割込みであると判定する.
    695 ;
    696 ;  reqflg はCPUロック状æ
    697 ‹ã§ãƒã‚§ãƒƒã‚¯ã™ã‚‹. そうでないと,
    698 ;  reqflg チェック後に起動された割込みハンドラå†
    699 ã§
    700 ;  ディスパッチが要求された場合に,ディスパッチされない.
     581;  ここでは, 割込み処理モードに変更してハンドラを実行する.
     582;
     583;  ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が
     584;  TRUE になった時に,ret_int へ分岐(遅延ディスパッチ)する.
     585;
     586;  多重割込みかどうかは割込みネストカウンタの値で判定する.
     587;  intnest != 0 ならば多重割込みであると判定する.
     588;
     589;  reqflg はCPUロック状態でチェックする. そうでないと,
     590;  reqflg チェック後に起動された割込みハンドラ内で
     591;  ディスパッチが要求された場合に,ディスパッチされない.
    701592;
    702593_kernel_interrupt:
    703         pushm   r14-r15                                         ; スクラッチレジスタを退避
    704         pushc   fpsw                                            ; FPUステータスレジスタ退避
     594        pushm   r14-r15                                         ; スクラッチレジスタを退避
     595        pushc   fpsw                                            ; FPUステータスレジスタ退避
    705596        mvfacmi r5
    706         shll    #16, r5                                         ; ACC最下位16bitは0とする
     597        shll    #16, r5                                         ; ACC最下位16bitは0とする
    707598        mvfachi r4
    708         pushm   r4-r5                                           ; アキュムレータ退避
     599        pushm   r4-r5                                           ; アキュムレータ退避
    709600        mov.l   #__kernel_intnest, r5
    710601        mov.w   [r5], r4
    711         add             #1, r4                                          ; ネスト回数をインクリメント
     602        add             #1, r4                                          ; ネスト回数をインクリメント
    712603        mov.w   r4, [r5]
    713         cmp             #1, r4                                          ; 多重割り込みかどうか
    714         bnz             interrupt_from_int                      ; 加算前が0でなければ多重割込み
    715                                                 ; 初段の割込み
     604        cmp             #1, r4                                          ; 多重割り込みかどうか
     605        bnz             interrupt_from_int                      ; 加算前が0でなければ多重割込み
     606                                                ; 初段の割込み
    716607#ifdef TOPPERS_SUPPORT_OVRHDR /* 6.6.1 */
    717608        pushm   r1-r5
    718         bsr             __kernel_ovrtimer_stop          ; r1に割込み番号
     609        bsr             __kernel_ovrtimer_stop          ; r1に割込み番号
    719610        popm    r1-r5
    720611#endif /* TOPPERS_SUPPORT_OVRHDR */
    721         mov.l   r0, r3                                          ; スタックポインタを取り出し
    722         mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
     612        mov.l   r0, r3                                          ; スタックポインタを取り出し
     613        mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
    723614        mov.l   [r5], r0
    724         push.l  r3                                                      ; タスクスタックを保持
    725 interrupt_from_int:             ; 多重割込み
    726         setpsw  i                                                       ; 割込み許可(CPUロック解除状æ
    727 ‹)
     615        push.l  r3                                                      ; タスクスタックを保持
     616interrupt_from_int:             ; 多重割込み
     617        setpsw  i                                                       ; 割込み許可(CPUロック解除状態)
    728618
    729619.if     LOG_INH_LEAVE == 1
    730         push.l  r1                                                      ; ログトレースの引数を保持
     620        push.l  r1                                                      ; ログトレースの引数を保持
    731621.endif
    732622
    733623.if     LOG_INH_ENTER == 1
    734624        push.l  r2
    735         bsr             __kernel_log_inh_enter          ; ログトレース関数の呼出し
    736                                                         ; 引数の割込み要因番号は既にr1にå
    737 ¥ã£ã¦ã„ã‚‹
     625        bsr             __kernel_log_inh_enter          ; ログトレース関数の呼出し
     626                                                        ; 引数の割込み要因番号は既にr1に入っている
    738627        pop             r2
    739628.endif
    740629
    741         jsr     r2                                                      ; Cルーチン呼び出し
     630        jsr     r2                                                      ; Cルーチン呼び出し
    742631
    743632.if     LOG_INH_LEAVE == 1
    744         pop             r1                                                      ; 引数に割込み要因番号を設定
    745         bsr             __kernel_log_inh_leave          ; ログトレース関数の呼出し
     633        pop             r1                                                      ; 引数に割込み要因番号を設定
     634        bsr             __kernel_log_inh_leave          ; ログトレース関数の呼出し
    746635.endif
    747636
    748         clrpsw  i                                                       ; 割込み禁止(CPUロック状æ
    749 ‹)
     637        clrpsw  i                                                       ; 割込み禁止(CPUロック状態)
    750638        mov.l   #__kernel_intnest, r5
    751639        mov.w   [r5], r4
    752         sub             #1, r4                                          ; ネスト回数をデクリメント
     640        sub             #1, r4                                          ; ネスト回数をデクリメント
    753641        mov.w   r4, [r5]
    754         cmp             #0, r4                                          ; 多重割り込みかどうか
    755         bnz             interrupt_return                        ; 多重割り込みならリターン
    756         ; 初段の割込み
    757         pop             r0                                                      ; タスクのスタックに戻す
     642        cmp             #0, r4                                          ; 多重割り込みかどうか
     643        bnz             interrupt_return                        ; 多重割り込みならリターン
     644        ; 初段の割込み
     645        pop             r0                                                      ; タスクのスタックに戻す
    758646        mov.l   #__kernel_p_schedtsk, r4
    759647        mov.l   [r4], r4                                        ; p_schedtsk -> r4
    760648        mov.l   #__kernel_p_runtsk, r5
    761649        mov.l   [r5], r5                                        ; p_runtsk -> r5
    762         cmp             r4, r5                                          ; p_schedtsk と p_runtsk が異なりディスパッチ要求有りなら
    763         bne             ret_int                                         ; ret_int へジャンプ
     650        cmp             r4, r5                                          ; p_schedtsk と p_runtsk が異なりディスパッチ要求有りなら
     651        bne             ret_int                                         ; ret_int へジャンプ
    764652#ifdef TOPPERS_SUPPORT_OVRHDR /* 6.6.1 */
    765653        mov.l   #__kernel_p_runtsk, r5
     
    770658#endif /* TOPPERS_SUPPORT_OVRHDR */
    771659interrupt_return:
    772         popm    r4-r5                                           ; アキュムレータ復帰
    773         mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
     660        popm    r4-r5                                           ; アキュムレータ復帰
     661        mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
    774662        mvtachi r4
    775         popc    fpsw                                            ; FPUステータスレジスタ復帰
    776         popm    r14-r15                                         ; レジスタ復帰
     663        popc    fpsw                                            ; FPUステータスレジスタ復帰
     664        popm    r14-r15                                         ; レジスタ復帰
    777665        popm    r1-r5
    778         rte                                                                     ; 割込み前の処理に戻る
    779 
    780 
    781 ;
    782 ;  CPU例外の出å
    783 ¥å£å‡¦ç†(アセンブリ言語記述部分)
    784 ;
    785 ;  呼出し条件:
    786 ;  ・CPU例外発生時のH/W処理により, PSWレジスタのIビット=0, IPL=0.
    787 ;  ・スタックは多重割り込みなら割込みスタック, そうでなければ
    788 ;    タスクスタック
    789 ;  ・CPU例外発生時のH/W処理により,スタックにCPU例外からの復帰PCと
    790 ;    PSWが保存されている.
    791 ;  ・ベクタテーブルに登録された個別のå
    792 ¥ã‚Šå£å‡¦ç†ã«ã‚ˆã‚Š, スタックに
    793 ;    スクラッチレジスタ(R1-R5)が保存されている.
    794 ;
    795 ;  引数:
    796 ;  ・r1:CPU例外要因番号
    797 ;  ・r2:CPU例外ハンドラのアドレス
    798 ;
    799 ;  レジスタがスタック上にどのように保存されているかを以下に示す.
    800 ;  この図では上が低位, 下が高位のアドレスで, スタックは下から
    801 ;  上方向に向かって積み上げられるものとする.
    802 ;  なお, CPU例外要因番号とR6-R13はCPU例外ハンドラå†
    803 ã§æƒ
    804 å ±ã‚’取得
    805 ;  する目的で退避しており, 出口処理では保存å†
    806 å®¹ã‚’破棄すればよい.
     666        rte                                                                     ; 割込み前の処理に戻る
     667
     668
     669;
     670;  CPU例外の出入口処理(アセンブリ言語記述部分)
     671;
     672;  呼出し条件:
     673;  ・CPU例外発生時のH/W処理により, PSWレジスタのIビット=0, IPL=0.
     674;  ・スタックは多重割り込みなら割込みスタック, そうでなければ
     675;    タスクスタック
     676;  ・CPU例外発生時のH/W処理により,スタックにCPU例外からの復帰PCと
     677;    PSWが保存されている.
     678;  ・ベクタテーブルに登録された個別の入り口処理により, スタックに
     679;    スクラッチレジスタ(R1-R5)が保存されている.
     680;
     681;  引数:
     682;  ・r1:CPU例外要因番号
     683;  ・r2:CPU例外ハンドラのアドレス
     684;
     685;  レジスタがスタック上にどのように保存されているかを以下に示す.
     686;  この図では上が低位, 下が高位のアドレスで, スタックは下から
     687;  上方向に向かって積み上げられるものとする.
     688;  なお, CPU例外要因番号とR6-R13はCPU例外ハンドラ内で情報を取得
     689;  する目的で退避しており, 出口処理では保存内容を破棄すればよい.
    807690;
    808691;       -------------------------
    809 ;       |    CPU例外要因番号    | <----- p_excinf
     692;       |    CPU例外要因番号    | <----- p_excinf
    810693;       ------------------------- (intptr_t)(p_excinf + 0)
    811694;       |       R6(4byte)       |
     
    850733;       ------------------------- (intptr_t)(p_excinf + 80)
    851734;
    852 ;  ここでは, 割込み処理モードに変更してハンドラを実行する.
    853 ;  CPU例外ハンドラに渡すVP型の変数 p_excinf としてISPの値渡す.
    854 ;
    855 ;  ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が
    856 ;  TRUE になった時に,ret_int へ分岐(é
    857 å»¶ãƒ‡ã‚£ã‚¹ãƒ‘ッチ)する.
    858 ;
    859 ;  多重割込みかどうかは割込みネストカウンタの値で判定する.
    860 ;  intnest != 0 ならば多重割込みであると判定する.
    861 ;
    862 ;  reqflg はCPUロック状æ
    863 ‹ã§ãƒã‚§ãƒƒã‚¯ã™ã‚‹. そうでないと,
    864 ;  reqflg チェック後に起動された割込みハンドラå†
    865 ã§
    866 ;  ディスパッチが要求された場合に,ディスパッチされない.
    867 ;
    868 ;
    869 ;  CPU例外å
    870 ¥å£å‡¦ç†
    871 ;
    872 ;  ここでは, 割込み処理モードに変更してハンドラを実行する.
    873 ;
    874 
    875 ;
    876 ;  CPU例外ハンドラ呼出し後に不要となるスタックæƒ
    877 å ±ã®ã‚µã‚¤ã‚º
     735;  ここでは, 割込み処理モードに変更してハンドラを実行する.
     736;  CPU例外ハンドラに渡すVP型の変数 p_excinf としてISPの値渡す.
     737;
     738;  ハンドラからリターンした後は, 多重割込みでなく, かつ reqflg が
     739;  TRUE になった時に,ret_int へ分岐(遅延ディスパッチ)する.
     740;
     741;  多重割込みかどうかは割込みネストカウンタの値で判定する.
     742;  intnest != 0 ならば多重割込みであると判定する.
     743;
     744;  reqflg はCPUロック状態でチェックする. そうでないと,
     745;  reqflg チェック後に起動された割込みハンドラ内で
     746;  ディスパッチが要求された場合に,ディスパッチされない.
     747;
     748;
     749;  CPU例外入口処理
     750;
     751;  ここでは, 割込み処理モードに変更してハンドラを実行する.
     752;
     753
     754;
     755;  CPU例外ハンドラ呼出し後に不要となるスタック情報のサイズ
    878756;  EXCNO + R6--R13
    879757;
     
    881759
    882760_kernel_exception:
    883         pushm   r14-r15                                         ; スクラッチレジスタを退避
     761        pushm   r14-r15                                         ; スクラッチレジスタを退避
    884762        pushc   fpsw
    885763        mvfacmi r5
    886         shll    #16, r5                                         ; ACC最下位16bitは0とする
     764        shll    #16, r5                                         ; ACC最下位16bitは0とする
    887765        mvfachi r4
    888         pushm   r4-r5                                           ; アキュムレータ退避
    889         pushm   r6-r13                                          ; 非スクラッチレジスタ保存
    890         push.l  r1                                                      ; CPU例外要因番号を保持
    891         mov.l   r0, r3                                          ; スタックポインタを取り出し
     766        pushm   r4-r5                                           ; アキュムレータ退避
     767        pushm   r6-r13                                          ; 非スクラッチレジスタ保存
     768        push.l  r1                                                      ; CPU例外要因番号を保持
     769        mov.l   r0, r3                                          ; スタックポインタを取り出し
    892770        mov.l   EXC_GET_PSW_OFFSET[r3], r5
    893771        and             #PSW_I_MASK, r5
    894         bz              exception_nonkernel                     ; å
    895 ¨å‰²è¾¼ã¿ç¦æ­¢(CPUロック)状æ
    896 ‹ãªã‚‰ç®¡ç†å¤–
     772        bz              exception_nonkernel                     ; 全割込み禁止(CPUロック)状態なら管理外
    897773#if     TIPM_LOCK != -15
    898774        mov.l   EXC_GET_PSW_OFFSET[r3], r5
    899775        and             #PSW_IPL_MASK, r5
    900776        cmp             #IPL_LOCK, r5
    901         bgt     exception_nonkernel                     ; IPLがCPUロックレベル以上なら管理外
     777        bgt     exception_nonkernel                     ; IPLがCPUロックレベル以上なら管理外
    902778#endif
    903779        mov.l   #__kernel_intnest, r5
    904780        mov.w   [r5], r4
    905         add             #1, r4                                          ; ネスト回数をインクリメント
     781        add             #1, r4                                          ; ネスト回数をインクリメント
    906782        mov.w   r4, [r5]
    907         cmp             #1, r4                                          ; 多重割り込みかどうか
    908         bnz             exception_from_int                      ; 加算前が0でなければ多重割込み
    909                                                 ; 初段の割込み
     783        cmp             #1, r4                                          ; 多重割り込みかどうか
     784        bnz             exception_from_int                      ; 加算前が0でなければ多重割込み
     785                                                ; 初段の割込み
    910786#ifdef TOPPERS_SUPPORT_OVRHDR /* 6.7.1 */
    911787        pushm   r1-r5
    912         mov.l   #255, r1                                        ; r1にダミー割込み番号
     788        mov.l   #255, r1                                        ; r1にダミー割込み番号
    913789        bsr             __kernel_ovrtimer_stop
    914790        popm    r1-r5
    915791#endif /* TOPPERS_SUPPORT_OVRHDR */
    916         mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
     792        mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
    917793        mov.l   [r5], r0
    918         push.l  r3                                                      ; タスクスタックを保持
    919 exception_from_int:             ; 多重割込み
     794        push.l  r3                                                      ; タスクスタックを保持
     795exception_from_int:             ; 多重割込み
    920796        mov.l   EXC_GET_PSW_OFFSET[r3], r5
    921         mvtc    r5, psw                                         ; CPU例外発生前の状æ
    922 ‹ã«æˆ»ã™
     797        mvtc    r5, psw                                         ; CPU例外発生前の状態に戻す
    923798#if     LOG_EXC_LEAVE == 1
    924         push.l  r1                                                      ; ログトレースの引数を保持
     799        push.l  r1                                                      ; ログトレースの引数を保持
    925800#endif
    926801
    927802#if     LOG_EXC_ENTER == 1
    928803        pushm   r2-r3
    929         bsr             __kernel_log_exc_enter          ; ログトレース関数の呼出し
    930                                                         ; 引数の割込み要因番号は既にr1にå
    931 ¥ã£ã¦ã„ã‚‹
     804        bsr             __kernel_log_exc_enter          ; ログトレース関数の呼出し
     805                                                        ; 引数の割込み要因番号は既にr1に入っている
    932806        popm    r2-r3
    933807#endif
    934808
    935         mov.l   r3, r1                                          ; 引数のp_excinfを設定
    936         jsr     r2                                                      ; Cルーチン呼び出し
     809        mov.l   r3, r1                                          ; 引数のp_excinfを設定
     810        jsr     r2                                                      ; Cルーチン呼び出し
    937811
    938812.if     LOG_EXC_LEAVE == 1
    939         pop             r1                                                      ; 引数に割込み要因番号を設定
    940         bsr             __kernel_log_exc_leave          ; ログトレース関数の呼出し
     813        pop             r1                                                      ; 引数に割込み要因番号を設定
     814        bsr             __kernel_log_exc_leave          ; ログトレース関数の呼出し
    941815.endif
    942816
    943         clrpsw  i                                                       ; ここからはå¿
    944 ãšå‰²è¾¼ã¿ç¦æ­¢
     817        clrpsw  i                                                       ; ここからは必ず割込み禁止
    945818        mov.l   #__kernel_intnest, r5
    946819        mov.w   [r5], r4
    947         sub             #1, r4                                          ; ネスト回数をデクリメント
     820        sub             #1, r4                                          ; ネスト回数をデクリメント
    948821        mov.w   r4, [r5]
    949         cmp             #0, r4                                          ; 多重割り込みかどうか
    950         bnz             exception_return                        ; 多重割り込みならリターン
    951         ; 初段の割込み
    952         pop             r0                                                      ; タスクのスタックに戻す
     822        cmp             #0, r4                                          ; 多重割り込みかどうか
     823        bnz             exception_return                        ; 多重割り込みならリターン
     824        ; 初段の割込み
     825        pop             r0                                                      ; タスクのスタックに戻す
    953826        mov.l   #__kernel_p_schedtsk, r4
    954827        mov.l   [r4], r4                                        ; p_schedtsk -> r4
    955828        mov.l   #__kernel_p_runtsk, r5
    956829        mov.l   [r5], r5                                        ; p_runtsk -> r5
    957         cmp             r4, r5                                          ; p_schedtsk と p_runtsk が同じでディスパッチ要求無しか
     830        cmp             r4, r5                                          ; p_schedtsk と p_runtsk が同じでディスパッチ要求無しか
    958831#ifndef TOPPERS_SUPPORT_OVRHDR /* 6.7.1 */
    959         beq             exception_return                        ; なければリターン
    960         add             #EXCINF_REG_SIZE, r0            ; CPU例外æƒ
    961 å ±ã®ç ´æ£„
    962         bra             ret_int                                         ; あれば ret_int へジャンプ
     832        beq             exception_return                        ; なければリターン
     833        add             #EXCINF_REG_SIZE, r0            ; CPU例外情報の破棄
     834        bra             ret_int                                         ; あれば ret_int へジャンプ
    963835#else /* TOPPERS_SUPPORT_OVRHDR */
    964         beq             exception_return_ovr            ; なければリターン
    965         add             #EXCINF_REG_SIZE, r0            ; CPU例外æƒ
    966 å ±ã®ç ´æ£„
    967         bra             ret_int                                         ; あれば ret_int へジャンプ
     836        beq             exception_return_ovr            ; なければリターン
     837        add             #EXCINF_REG_SIZE, r0            ; CPU例外情報の破棄
     838        bra             ret_int                                         ; あれば ret_int へジャンプ
    968839exception_return_ovr:
    969840        mov.l   #__kernel_p_runtsk, r5
     
    978849        mov.l   #__kernel_intnest, r5
    979850        mov.w   [r5], r4
    980         add             #1, r4                                          ; ネスト回数をインクリメント
     851        add             #1, r4                                          ; ネスト回数をインクリメント
    981852        mov.w   r4, [r5]
    982         cmp             #1, r4                                          ; 多重割り込みかどうか
    983         bnz             exception_from_nonkernelint     ; 加算前が0でなければ多重割込み
    984                                                 ; 初段の割込み
    985         mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
     853        cmp             #1, r4                                          ; 多重割り込みかどうか
     854        bnz             exception_from_nonkernelint     ; 加算前が0でなければ多重割込み
     855                                                ; 初段の割込み
     856        mov.l   #__kernel_istkpt, r5            ; 割込み用のスタックへ切替える
    986857        mov.l   [r5], r0
    987         push.l  r3                                                      ; タスクスタックを保持
    988 exception_from_nonkernelint:    ; 多重割込み
     858        push.l  r3                                                      ; タスクスタックを保持
     859exception_from_nonkernelint:    ; 多重割込み
    989860        mov.l   EXC_GET_PSW_OFFSET[r3], r5
    990         mvtc    r5, psw                                         ; CPU例外発生前の状æ
    991 ‹ã«æˆ»ã™
    992 
    993         mov.l   r3, r1                                          ; 引数のp_excinfを設定
    994         jsr     r2                                                      ; Cルーチン呼び出し
    995 
    996         clrpsw  i                                                       ; ここからはå¿
    997 ãšå‰²è¾¼ã¿ç¦æ­¢
     861        mvtc    r5, psw                                         ; CPU例外発生前の状態に戻す
     862
     863        mov.l   r3, r1                                          ; 引数のp_excinfを設定
     864        jsr     r2                                                      ; Cルーチン呼び出し
     865
     866        clrpsw  i                                                       ; ここからは必ず割込み禁止
    998867        mov.l   #__kernel_intnest, r5
    999868        mov.w   [r5], r4
    1000         sub             #1, r4                                          ; ネスト回数をデクリメント
     869        sub             #1, r4                                          ; ネスト回数をデクリメント
    1001870        mov.w   r4, [r5]
    1002         cmp             #0, r4                                          ; 多重割り込みかどうか
    1003         bnz             exception_return                        ; 多重割り込みならリターン
    1004         ; 初段の割込み
    1005         pop             r0                                                      ; タスクのスタックに戻す
     871        cmp             #0, r4                                          ; 多重割り込みかどうか
     872        bnz             exception_return                        ; 多重割り込みならリターン
     873        ; 初段の割込み
     874        pop             r0                                                      ; タスクのスタックに戻す
    1006875
    1007876exception_return:
    1008         add             #EXCINF_REG_SIZE, r0            ; CPU例外æƒ
    1009 å ±ã®ç ´æ£„
    1010         popm    r4-r5                                           ; アキュムレータ復帰
    1011         mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
     877        add             #EXCINF_REG_SIZE, r0            ; CPU例外情報の破棄
     878        popm    r4-r5                                           ; アキュムレータ復帰
     879        mvtaclo r5                                                      ; ACC最下位16bitは0で復帰
    1012880        mvtachi r4
    1013         popc    fpsw                                            ; FPUステータスレジスタ復帰
    1014         popm    r14-r15                                         ; レジスタ復帰
     881        popc    fpsw                                            ; FPUステータスレジスタ復帰
     882        popm    r14-r15                                         ; レジスタ復帰
    1015883        popm    r1-r5
    1016         rte                                                                     ; 割込み前の処理に戻る
    1017 
    1018 
    1019 ;
    1020 ;  微少時間å¾
    1021 ã¡
     884        rte                                                                     ; 割込み前の処理に戻る
     885
     886
     887;
     888;  微少時間待ち
    1022889;
    1023890_sil_dly_nse:
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_sym.def

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain; charset=UTF-8
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_syssvc.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r317 r318  
    77 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
    4531 *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  @(#) $Id$
     
    5540
    5641/*
    57  *              テストプログラムのターゲット依存定義(RX630用)
     42 *              テストプログラムのターゲット依存定義(RX630用)
    5843 */
    5944
     
    6247
    6348/*
    64  *  起動メッセージにターゲット依存部の著作権表示を
    65  *  追加するためのマクロ.
     49 *  起動メッセージにターゲット依存部の著作権表示を
     50 *  追加するためのマクロ.
    6651 */
    6752#define PRC_COPYRIGHT                                                                           \
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_test.S

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain; charset=UTF-8
    r317 r318  
    66;*  Copyright (C) 2010 by Witz Corporation, JAPAN
    77;*
    8 ;*  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10 ;*  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11 ;*  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13 ;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14 ;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15 ;*      スコード中に含まれていること.
    16 ;*  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17 ;*      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20 ;*      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22 ;*      の無保証規定を掲載すること.
    23 ;*  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24 ;*      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26 ;*      と.
    27 ;*    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30 ;*        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31 ;*    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34 ;*        報告すること.
    35 ;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36 ;*      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39 ;*      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40 ;*      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42 ;*      å
    43 è²¬ã™ã‚‹ã“と.
     8;*  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9;*  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10;*  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13;*      スコード中に含まれていること.
     14;*  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15;*      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16;*      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17;*      の無保証規定を掲載すること.
     18;*  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19;*      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20;*      と.
     21;*    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22;*        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23;*    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24;*        報告すること.
     25;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26;*      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27;*      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28;*      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29;*      免責すること.
    4430;*
    45 ;*  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47 ;*  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48 ;*  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49 ;*  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50 ;*  の責任を負わない.
     31;*  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32;*  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33;*  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34;*  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35;*  の責任を負わない.
    5136;*
    5237;*  @(#) $Id$
     
    5944_trigger_cpu_exception:
    6045        ;
    61         ;  CPU例外の発生
     46        ;  CPU例外の発生
    6247        ;
    63         ;  ゼロ割り算を行うことで, 浮動小数点例外を
    64         ;  発生させる.
     48        ;  ゼロ割り算を行うことで, 浮動小数点例外を
     49        ;  発生させる.
    6550        ;
    6651        mvtc    #00001000H, fpsw
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_test.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r317 r318  
    66 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  @(#) $Id$
     
    5439
    5540/*
    56  *              テストプログラムのターゲット依存定義(RX630用)
     41 *              テストプログラムのターゲット依存定義(RX630用)
    5742 */
    5843
     
    6045#define TOPPERS_PRC_TEST_H
    6146
    62 #define CPUEXC1                                 25              /* 浮動小数点例外 */
     47#define CPUEXC1                                 25              /* 浮動小数点例外 */
    6348#define RAISE_CPU_EXCEPTION             trigger_cpu_exception()
    6449
  • asp3_gr_sakura/trunk/arch/rx630_gcc/prc_unrename.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
  • asp3_gr_sakura/trunk/arch/rx630_gcc/rx630.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r317 r318  
    77 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
    4531 *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  @(#) $Id$
     
    5540
    5641/*
    57  *  RX630に依存する定義
     42 *  RX630に依存する定義
    5843 */
    5944#ifndef TOPPERS_RX630_H
     
    6348
    6449/*
    65  *  CPU例外ハンドラ番号の定義(固定ベクタテーブル)
     50 *  CPU例外ハンドラ番号の定義(固定ベクタテーブル)
    6651 *
    67  *  番号の範囲は0 - 31
    68  */
    69 #define INT_PRIVILEGED_INSTRUNCTION             20              /* 特権命令例外 */
    70 #define INT_UNDEF_INSTRUNCTION                  23              /* 未定義命令例外 */
    71 #define INT_FLOATINGPOINT_INSTRUCTION   25              /* 浮動小数点例外 */
    72 #define INT_NMI                                                 30              /* ノンマスカブル割り込み */
    73 #define INT_RESET                                               31              /* リセット */
    74 
    75 /*
    76  *  割込み番号の定義(可変ベクタテーブル)
     52 *  番号の範囲は0 - 31
     53 */
     54#define INT_PRIVILEGED_INSTRUNCTION             20              /* 特権命令例外 */
     55#define INT_UNDEF_INSTRUNCTION                  23              /* 未定義命令例外 */
     56#define INT_FLOATINGPOINT_INSTRUCTION   25              /* 浮動小数点例外 */
     57#define INT_NMI                                                 30              /* ノンマスカブル割り込み */
     58#define INT_RESET                                               31              /* リセット */
     59
     60/*
     61 *  割込み番号の定義(可変ベクタテーブル)
    7762 */
    7863#define INT_BUSERR                      16
     
    263248
    264249/*
    265  *  各モジュールのレジスタ及び設定ビットæƒ
    266 å ±
     250 *  各モジュールのレジスタ及び設定ビット情報
    267251 */
    268252
     
    270254
    271255/*
    272  * モジュールストップコントロールレジスタA(MSTPCRA)
     256 * モジュールストップコントロールレジスタA(MSTPCRA)
    273257 */
    274258#define SYSTEM_MSTPCRA_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080010 )
     
    308292
    309293/*
    310  * モジュールストップコントロールレジスタB(MSTPCRB)
     294 * モジュールストップコントロールレジスタB(MSTPCRB)
    311295 */
    312296#define SYSTEM_MSTPCRB_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080014 )
     
    345329
    346330/*
    347  * モジュールストップコントロールレジスタC(MSTPCRC)
     331 * モジュールストップコントロールレジスタC(MSTPCRC)
    348332 */
    349333#define SYSTEM_MSTPCRC_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080018 )
     
    382366
    383367/*
    384  * クロック発生回路
     368 * クロック発生回路
    385369 */
    386370#define SYSTEM_SCKCR_ADDR                       ( ( volatile uint32_t __evenaccess * )0x00080020 )
     
    402386
    403387/*
    404  * プロテクトレジスタ
     388 * プロテクトレジスタ
    405389 */
    406390#define SYSTEM_PRCR_ADDR                ( ( volatile uint16_t __evenaccess * )0x000803FE )
    407391
    408392/*
    409  * 割り込み要求レジスタ
     393 * 割り込み要求レジスタ
    410394 */
    411395#define ICU_IR000_ADDR                  ( ( volatile uint8_t __evenaccess * )0x00087000 )
     
    668652
    669653/*
    670  * 割り込み要求å
    671 ˆè¨­å®šãƒ¬ã‚¸ã‚¹ã‚¿
     654 * 割り込み要求先設定レジスタ
    672655 */
    673656#define ICU_ISELR000_ADDR               ( ( volatile uint8_t __evenaccess * )0x00087100 )
     
    930913
    931914/*
    932  * 割り込み要求許可レジスタ
     915 * 割り込み要求許可レジスタ
    933916 */
    934917#define ICU_IER02_ADDR                  ( ( volatile uint8_t __evenaccess * )0x00087202 )
     
    971954
    972955/*
    973  * 割り込み要因プライオリティレジスタi(i=0~253)の設定
     956 * 割り込み要因プライオリティレジスタi(i=0~253)の設定
    974957 */
    975958#define ICU_IPR000_ADDR                 ( ( volatile uint8_t __evenaccess * )0x00087300 )
     
    12331216
    12341217/*
    1235  *  IRQコントロールレジスタ
     1218 *  IRQコントロールレジスタ
    12361219 */
    12371220#define ICU_IRQ0_ADDR                   ( ( volatile uint8_t __evenaccess * )0x00087500 )
     
    12551238
    12561239/*
    1257  *  各チャンネルのレジスタ及び設定ビットæƒ
    1258 å ±
     1240 *  各チャンネルのレジスタ及び設定ビット情報
    12591241 */
    12601242#define CMT_CMSTR0_ADDR                 ( ( volatile uint16_t __evenaccess * )0x00088000 )
     
    13651347
    13661348/*
    1367  *  I/Oポートのレジスタ及び設定ビットæƒ
    1368 å ±
     1349 *  I/Oポートのレジスタ及び設定ビット情報
    13691350 */
    13701351#define PORT0_PDR_ADDR                  ( ( volatile uint8_t __evenaccess * )0x0008C000 )
     
    15361517
    15371518/*
    1538  *  マルチファンクションピンコントローラのレジスタæƒ
    1539 å ±
     1519 *  マルチファンクションピンコントローラのレジスタ情報
    15401520 */
    15411521#define MPC_PFUSB0_ADDR                 ( ( volatile uint8_t __evenaccess * )0x0008C114 )
     
    16761656
    16771657/*
    1678  * リアルタイムクロック
     1658 * リアルタイムクロック
    16791659 */
    16801660#define RTC_R64CNT_ADDR                 ( ( volatile uint8_t __evenaccess * )0x0008C400 )
     
    16881668
    16891669/*
    1690  * 12 ビットA/D コンバータ
     1670 * 12 ビットA/D コンバータ
    16911671 */
    16921672#define S12AD_ADCSR_ADDR                ( ( volatile uint8_t __evenaccess * )0x00089000 )
     
    19171897
    19181898/*
    1919  *  UART関連の定義
     1899 *  UART関連の定義
    19201900 *
    1921  *  pdicのrx600/rx630_uart.cで使用する.
    1922  */
    1923 /*
    1924  *  シリアルI/Oの個数
     1901 *  pdicのrx600/rx630_uart.cで使用する.
     1902 */
     1903/*
     1904 *  シリアルI/Oの個数
    19251905 */
    19261906#define TNUM_SIOP       ( 2 )
  • asp3_gr_sakura/trunk/arch/rx630_gcc/rx630_kernel_impl.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r317 r318  
    77 *  Copyright (C) 2013 by Mitsuhiro Matsuura
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
    4531 *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  @(#) $Id$
     
    5540
    5641/*
    57  *              プロセッサ依存モジュール(RX630用)
     42 *              プロセッサ依存モジュール(RX630用)
    5843 */
    5944
     
    6247
    6348/*
    64  *  割込み要因プライオリティレジスタアドレステーブル
     49 *  割込み要因プライオリティレジスタアドレステーブル
    6550 */
    6651volatile uint8_t __evenaccess * const ipr_reg_addr[ INHNO_MAX ] = {
    67         NULL,                                                   /* No.0  予約 */
    68         NULL,                                                   /* No.1  予約 */
    69         NULL,                                                   /* No.2  予約 */
    70         NULL,                                                   /* No.3  予約 */
    71         NULL,                                                   /* No.4  予約 */
    72         NULL,                                                   /* No.5  予約 */
    73         NULL,                                                   /* No.6  予約 */
    74         NULL,                                                   /* No.7  予約 */
    75         NULL,                                                   /* No.8  予約 */
    76         NULL,                                                   /* No.9  予約 */
    77         NULL,                                                   /* No.10  予約 */
    78         NULL,                                                   /* No.11  予約 */
    79         NULL,                                                   /* No.12  予約 */
    80         NULL,                                                   /* No.13  予約 */
    81         NULL,                                                   /* No.14  予約 */
    82         NULL,                                                   /* No.15  予約 */
    83         ICU_IPR000_ADDR,                                /* No.16  バスエラー BUSERR */
    84         NULL,                                                   /* No.17  予約 */
    85         NULL,                                                   /* No.18  予約 */
    86         NULL,                                                   /* No.19  予約 */
    87         NULL,                                                   /* No.20  予約 */
     52        NULL,                                                   /* No.0  予約 */
     53        NULL,                                                   /* No.1  予約 */
     54        NULL,                                                   /* No.2  予約 */
     55        NULL,                                                   /* No.3  予約 */
     56        NULL,                                                   /* No.4  予約 */
     57        NULL,                                                   /* No.5  予約 */
     58        NULL,                                                   /* No.6  予約 */
     59        NULL,                                                   /* No.7  予約 */
     60        NULL,                                                   /* No.8  予約 */
     61        NULL,                                                   /* No.9  予約 */
     62        NULL,                                                   /* No.10  予約 */
     63        NULL,                                                   /* No.11  予約 */
     64        NULL,                                                   /* No.12  予約 */
     65        NULL,                                                   /* No.13  予約 */
     66        NULL,                                                   /* No.14  予約 */
     67        NULL,                                                   /* No.15  予約 */
     68        ICU_IPR000_ADDR,                                /* No.16  バスエラー BUSERR */
     69        NULL,                                                   /* No.17  予約 */
     70        NULL,                                                   /* No.18  予約 */
     71        NULL,                                                   /* No.19  予約 */
     72        NULL,                                                   /* No.20  予約 */
    8873        ICU_IPR001_ADDR,                                /* No.21  FCU FIFERR */
    89         NULL,                                                   /* No.22  予約 */
     74        NULL,                                                   /* No.22  予約 */
    9075        ICU_IPR002_ADDR,                                /* No.23  FCU FRDYI */
    91         NULL,                                                   /* No.24  予約 */
    92         NULL,                                                   /* No.25  予約 */
    93         NULL,                                                   /* No.26  予約 */
     76        NULL,                                                   /* No.24  予約 */
     77        NULL,                                                   /* No.25  予約 */
     78        NULL,                                                   /* No.26  予約 */
    9479        ICU_IPR003_ADDR,                                /* No.27  SWINT */
    95         ICU_IPR004_ADDR,                                /* No.28  CMTユニット0 CMT0 */
    96         ICU_IPR005_ADDR,                                /* No.29  CMTユニット0 CMT1 */
    97         ICU_IPR006_ADDR,                                /* No.30  CMTユニット1 CMT2 */
    98         ICU_IPR007_ADDR,                                /* No.31  CMTユニット1 CMT3 */
     80        ICU_IPR004_ADDR,                                /* No.28  CMTユニット0 CMT0 */
     81        ICU_IPR005_ADDR,                                /* No.29  CMTユニット0 CMT1 */
     82        ICU_IPR006_ADDR,                                /* No.30  CMTユニット1 CMT2 */
     83        ICU_IPR007_ADDR,                                /* No.31  CMTユニット1 CMT3 */
    9984        ICU_IPR032_ADDR,                                /* No.32  ETHER */
    10085        ICU_IPR033_ADDR,                                /* No.33  USB0 D0FIFO0 */
     
    125110        ICU_IPR056_ADDR,                                /* No.58  CAN RXM2 */
    126111        ICU_IPR056_ADDR,                                /* No.59  CAN TXM2 */
    127         NULL,                                                   /* No.60  予約 */
    128         NULL,                                                   /* No.61  予約 */
     112        NULL,                                                   /* No.60  予約 */
     113        NULL,                                                   /* No.61  予約 */
    129114        ICU_IPR062_ADDR,                                /* No.62  RTC PRD */
    130         NULL,                                                   /* No.63  予約 */
    131         ICU_IPR064_ADDR,                                /* No.64  外部端子 IRQ0 */
    132         ICU_IPR065_ADDR,                                /* No.65  外部端子 IRQ1 */
    133         ICU_IPR066_ADDR,                                /* No.66  外部端子 IRQ2 */
    134         ICU_IPR067_ADDR,                                /* No.67  外部端子 IRQ3 */
    135         ICU_IPR068_ADDR,                                /* No.68  外部端子 IRQ4 */
    136         ICU_IPR069_ADDR,                                /* No.69  外部端子 IRQ5 */
    137         ICU_IPR070_ADDR,                                /* No.70  外部端子 IRQ6 */
    138         ICU_IPR071_ADDR,                                /* No.71  外部端子 IRQ7 */
    139         ICU_IPR072_ADDR,                                /* No.72  外部端子 IRQ8 */
    140         ICU_IPR073_ADDR,                                /* No.73  外部端子 IRQ9 */
    141         ICU_IPR074_ADDR,                                /* No.74  外部端子 IRQ10 */
    142         ICU_IPR075_ADDR,                                /* No.75  外部端子 IRQ11 */
    143         ICU_IPR076_ADDR,                                /* No.76  外部端子 IRQ12 */
    144         ICU_IPR077_ADDR,                                /* No.77  外部端子 IRQ13 */
    145         ICU_IPR078_ADDR,                                /* No.78  外部端子 IRQ14 */
    146         ICU_IPR079_ADDR,                                /* No.79  外部端子 IRQ15 */
    147         NULL,                                                   /* No.80  予約 */
    148         NULL,                                                   /* No.81  予約 */
    149         NULL,                                                   /* No.82  予約 */
    150         NULL,                                                   /* No.83  予約 */
    151         NULL,                                                   /* No.84  予約 */
    152         NULL,                                                   /* No.85  予約 */
    153         NULL,                                                   /* No.86  予約 */
    154         NULL,                                                   /* No.87  予約 */
    155         NULL,                                                   /* No.88  予約 */
    156         NULL,                                                   /* No.89  予約 */
     115        NULL,                                                   /* No.63  予約 */
     116        ICU_IPR064_ADDR,                                /* No.64  外部端子 IRQ0 */
     117        ICU_IPR065_ADDR,                                /* No.65  外部端子 IRQ1 */
     118        ICU_IPR066_ADDR,                                /* No.66  外部端子 IRQ2 */
     119        ICU_IPR067_ADDR,                                /* No.67  外部端子 IRQ3 */
     120        ICU_IPR068_ADDR,                                /* No.68  外部端子 IRQ4 */
     121        ICU_IPR069_ADDR,                                /* No.69  外部端子 IRQ5 */
     122        ICU_IPR070_ADDR,                                /* No.70  外部端子 IRQ6 */
     123        ICU_IPR071_ADDR,                                /* No.71  外部端子 IRQ7 */
     124        ICU_IPR072_ADDR,                                /* No.72  外部端子 IRQ8 */
     125        ICU_IPR073_ADDR,                                /* No.73  外部端子 IRQ9 */
     126        ICU_IPR074_ADDR,                                /* No.74  外部端子 IRQ10 */
     127        ICU_IPR075_ADDR,                                /* No.75  外部端子 IRQ11 */
     128        ICU_IPR076_ADDR,                                /* No.76  外部端子 IRQ12 */
     129        ICU_IPR077_ADDR,                                /* No.77  外部端子 IRQ13 */
     130        ICU_IPR078_ADDR,                                /* No.78  外部端子 IRQ14 */
     131        ICU_IPR079_ADDR,                                /* No.79  外部端子 IRQ15 */
     132        NULL,                                                   /* No.80  予約 */
     133        NULL,                                                   /* No.81  予約 */
     134        NULL,                                                   /* No.82  予約 */
     135        NULL,                                                   /* No.83  予約 */
     136        NULL,                                                   /* No.84  予約 */
     137        NULL,                                                   /* No.85  予約 */
     138        NULL,                                                   /* No.86  予約 */
     139        NULL,                                                   /* No.87  予約 */
     140        NULL,                                                   /* No.88  予約 */
     141        NULL,                                                   /* No.89  予約 */
    157142        ICU_IPR090_ADDR,                                /* No.90  USBR0 */
    158143        ICU_IPR091_ADDR,                                /* No.91  USBR1 */
    159144        ICU_IPR092_ADDR,                                /* No.92  RTC ALM */
    160145        ICU_IPR093_ADDR,                                /* No.93  RTC PRD */
    161         NULL,                                                   /* No.94  予約 */
    162         NULL,                                                   /* No.95  予約 */
    163         NULL,                                                   /* No.96  予約 */
    164         NULL,                                                   /* No.97  予約 */
     146        NULL,                                                   /* No.94  予約 */
     147        NULL,                                                   /* No.95  予約 */
     148        NULL,                                                   /* No.96  予約 */
     149        NULL,                                                   /* No.97  予約 */
    165150        ICU_IPR098_ADDR,                                /* No.98  AD ADI0 */
    166         NULL,                                                   /* No.99  予約 */
    167         NULL,                                                   /* No.100  予約 */
    168         NULL,                                                   /* No.101  予約 */
     151        NULL,                                                   /* No.99  予約 */
     152        NULL,                                                   /* No.100  予約 */
     153        NULL,                                                   /* No.101  予約 */
    169154        ICU_IPR102_ADDR,                                /* No.102 S12AD S12ADIO */
    170         NULL,                                                   /* No.103  予約 */
    171         NULL,                                                   /* No.104  予約 */
    172         NULL,                                                   /* No.105  予約 */
     155        NULL,                                                   /* No.103  予約 */
     156        NULL,                                                   /* No.104  予約 */
     157        NULL,                                                   /* No.105  予約 */
    173158        ICU_IPR106_ADDR,                                /* No.106 ICU GROUP0 */
    174159        ICU_IPR107_ADDR,                                /* No.107 ICU GROUP1 */
     
    178163        ICU_IPR111_ADDR,                                /* No.111 ICU GROUP5 */
    179164        ICU_IPR112_ADDR,                                /* No.112 ICU GROUP6 */
    180         NULL,                                                   /* No.113  予約 */
     165        NULL,                                                   /* No.113  予約 */
    181166        ICU_IPR114_ADDR,                                /* No.114 ICU GROUP12 */
    182         NULL,                                                   /* No.115  予約 */
    183         NULL,                                                   /* No.116  予約 */
    184         NULL,                                                   /* No.117  予約 */
    185         NULL,                                                   /* No.118  予約 */
    186         NULL,                                                   /* No.119  予約 */
    187         NULL,                                                   /* No.120  予約 */
    188         NULL,                                                   /* No.121  予約 */
     167        NULL,                                                   /* No.115  予約 */
     168        NULL,                                                   /* No.116  予約 */
     169        NULL,                                                   /* No.117  予約 */
     170        NULL,                                                   /* No.118  予約 */
     171        NULL,                                                   /* No.119  予約 */
     172        NULL,                                                   /* No.120  予約 */
     173        NULL,                                                   /* No.121  予約 */
    189174        ICU_IPR122_ADDR,                                /* No.122 SCI12 SCIX0 */
    190175        ICU_IPR123_ADDR,                                /* No.123 SCI12 SCIX1 */
     
    233218        ICU_IPR167_ADDR,                                /* No.166 POE OEI1 */
    234219        ICU_IPR167_ADDR,                                /* No.167 POE OEI2 */
    235         NULL,                                                   /* No.168  予約 */
    236         NULL,                                                   /* No.169  予約 */
     220        NULL,                                                   /* No.168  予約 */
     221        NULL,                                                   /* No.169  予約 */
    237222        ICU_IPR170_ADDR,                                /* No.170 TMR0 CMIA0 */
    238223        ICU_IPR170_ADDR,                                /* No.171 TMR0 CMIB0 */
     
    269254        ICU_IPR202_ADDR,                                /* No.202 EXDMAC EXDMACI0 */
    270255        ICU_IPR203_ADDR,                                /* No.203 EXDMAC EXDMACI1 */
    271         NULL,                                                   /* No.204  予約 */
    272         NULL,                                                   /* No.205  予約 */
    273         NULL,                                                   /* No.206  予約 */
    274         NULL,                                                   /* No.207  予約 */
    275         NULL,                                                   /* No.208  予約 */
    276         NULL,                                                   /* No.209  予約 */
    277         NULL,                                                   /* No.210  予約 */
    278         NULL,                                                   /* No.211  予約 */
    279         NULL,                                                   /* No.212  予約 */
    280         NULL,                                                   /* No.213  予約 */
     256        NULL,                                                   /* No.204  予約 */
     257        NULL,                                                   /* No.205  予約 */
     258        NULL,                                                   /* No.206  予約 */
     259        NULL,                                                   /* No.207  予約 */
     260        NULL,                                                   /* No.208  予約 */
     261        NULL,                                                   /* No.209  予約 */
     262        NULL,                                                   /* No.210  予約 */
     263        NULL,                                                   /* No.211  予約 */
     264        NULL,                                                   /* No.212  予約 */
     265        NULL,                                                   /* No.213  予約 */
    281266        ICU_IPR214_ADDR,                                /* No.214 SCI0 RXI0 */
    282267        ICU_IPR214_ADDR,                                /* No.215 SCI0 TXI0 */
     
    319304        ICU_IPR250_ADDR,                                /* No.252 SCI12 TEI12 */
    320305        ICU_IPR253_ADDR,                                /* No.253 IEB IEBINT */
    321         NULL,                                                   /* No.254  予約 */
    322         NULL,                                                   /* No.255  予約 */
     306        NULL,                                                   /* No.254  予約 */
     307        NULL,                                                   /* No.255  予約 */
    323308};
    324309
    325310
    326311/*
    327  *  割込み要求許可レジスタアドレステーブル
     312 *  割込み要求許可レジスタアドレステーブル
    328313 */
    329314const IER_INFO ier_reg_addr[ INHNO_MAX ] = {
    330         { NULL, INVALID_OFFSET },                       /* No.0   äºˆç´„ */
    331         { NULL, INVALID_OFFSET },                       /* No.1   äºˆç´„ */
    332         { NULL, INVALID_OFFSET },                       /* No.2   äºˆç´„ */
    333         { NULL, INVALID_OFFSET },                       /* No.3   äºˆç´„ */
    334         { NULL, INVALID_OFFSET },                       /* No.4   äºˆç´„ */
    335         { NULL, INVALID_OFFSET },                       /* No.5   äºˆç´„ */
    336         { NULL, INVALID_OFFSET },                       /* No.6   äºˆç´„ */
    337         { NULL, INVALID_OFFSET },                       /* No.7   äºˆç´„ */
    338         { NULL, INVALID_OFFSET },                       /* No.8   äºˆç´„ */
    339         { NULL, INVALID_OFFSET },                       /* No.9   äºˆç´„ */
    340         { NULL, INVALID_OFFSET },                       /* No.10  予約 */
    341         { NULL, INVALID_OFFSET },                       /* No.11  予約 */
    342         { NULL, INVALID_OFFSET },                       /* No.12  予約 */
    343         { NULL, INVALID_OFFSET },                       /* No.13  予約 */
    344         { NULL, INVALID_OFFSET },                       /* No.14  予約 */
    345         { NULL, INVALID_OFFSET },                       /* No.15  予約 */
    346         { ICU_IER02_ADDR, ICU_IEN0_BIT },       /* No.16  バスエラー BUSERR */
    347         { NULL, INVALID_OFFSET },                       /* No.17  予約 */
    348         { NULL, INVALID_OFFSET },                       /* No.18  予約 */
    349         { NULL, INVALID_OFFSET },                       /* No.19  予約 */
    350         { NULL, INVALID_OFFSET },                       /* No.20  予約 */
     315        { NULL, INVALID_OFFSET },                       /* No.0   予約 */
     316        { NULL, INVALID_OFFSET },                       /* No.1   予約 */
     317        { NULL, INVALID_OFFSET },                       /* No.2   予約 */
     318        { NULL, INVALID_OFFSET },                       /* No.3   予約 */
     319        { NULL, INVALID_OFFSET },                       /* No.4   予約 */
     320        { NULL, INVALID_OFFSET },                       /* No.5   予約 */
     321        { NULL, INVALID_OFFSET },                       /* No.6   予約 */
     322        { NULL, INVALID_OFFSET },                       /* No.7   予約 */
     323        { NULL, INVALID_OFFSET },                       /* No.8   予約 */
     324        { NULL, INVALID_OFFSET },                       /* No.9   予約 */
     325        { NULL, INVALID_OFFSET },                       /* No.10  予約 */
     326        { NULL, INVALID_OFFSET },                       /* No.11  予約 */
     327        { NULL, INVALID_OFFSET },                       /* No.12  予約 */
     328        { NULL, INVALID_OFFSET },                       /* No.13  予約 */
     329        { NULL, INVALID_OFFSET },                       /* No.14  予約 */
     330        { NULL, INVALID_OFFSET },                       /* No.15  予約 */
     331        { ICU_IER02_ADDR, ICU_IEN0_BIT },       /* No.16  バスエラー BUSERR */
     332        { NULL, INVALID_OFFSET },                       /* No.17  予約 */
     333        { NULL, INVALID_OFFSET },                       /* No.18  予約 */
     334        { NULL, INVALID_OFFSET },                       /* No.19  予約 */
     335        { NULL, INVALID_OFFSET },                       /* No.20  予約 */
    351336        { ICU_IER02_ADDR, ICU_IEN5_BIT },       /* No.21  FCU FIFERR */
    352         { NULL, INVALID_OFFSET },                       /* No.22  予約 */
     337        { NULL, INVALID_OFFSET },                       /* No.22  予約 */
    353338        { ICU_IER02_ADDR, ICU_IEN7_BIT },       /* No.23  FCU FRDYI */
    354         { NULL, INVALID_OFFSET },                       /* No.24  予約 */
    355         { NULL, INVALID_OFFSET },                       /* No.25  予約 */
    356         { NULL, INVALID_OFFSET },                       /* No.26  予約 */
     339        { NULL, INVALID_OFFSET },                       /* No.24  予約 */
     340        { NULL, INVALID_OFFSET },                       /* No.25  予約 */
     341        { NULL, INVALID_OFFSET },                       /* No.26  予約 */
    357342        { ICU_IER03_ADDR, ICU_IEN3_BIT },       /* No.27  SWINT */
    358         { ICU_IER03_ADDR, ICU_IEN4_BIT },       /* No.28  CMTユニット0 CMT0 */
    359         { ICU_IER03_ADDR, ICU_IEN5_BIT },       /* No.29  CMTユニット0 CMT1 */
    360         { ICU_IER03_ADDR, ICU_IEN6_BIT },       /* No.30  CMTユニット1 CMT2 */
    361         { ICU_IER03_ADDR, ICU_IEN7_BIT },       /* No.31  CMTユニット1 CMT3 */
     343        { ICU_IER03_ADDR, ICU_IEN4_BIT },       /* No.28  CMTユニット0 CMT0 */
     344        { ICU_IER03_ADDR, ICU_IEN5_BIT },       /* No.29  CMTユニット0 CMT1 */
     345        { ICU_IER03_ADDR, ICU_IEN6_BIT },       /* No.30  CMTユニット1 CMT2 */
     346        { ICU_IER03_ADDR, ICU_IEN7_BIT },       /* No.31  CMTユニット1 CMT3 */
    362347        { ICU_IER04_ADDR, ICU_IEN0_BIT },       /* No.32  ETHER */
    363348        { ICU_IER04_ADDR, ICU_IEN1_BIT },       /* No.33  USB0 D0FIFO0 */
     
    388373        { ICU_IER07_ADDR, ICU_IEN2_BIT },       /* No.58  CAN2 RXM2 */
    389374        { ICU_IER07_ADDR, ICU_IEN3_BIT },       /* No.59  CAN2 TXM2 */
    390         { NULL, INVALID_OFFSET },                       /* No.60  予約 */
    391         { NULL, INVALID_OFFSET },                       /* No.61  予約 */
     375        { NULL, INVALID_OFFSET },                       /* No.60  予約 */
     376        { NULL, INVALID_OFFSET },                       /* No.61  予約 */
    392377        { ICU_IER07_ADDR, ICU_IEN6_BIT },       /* No.62  RTC PRD */
    393         { NULL, INVALID_OFFSET },                       /* No.63  予約 */
    394         { ICU_IER08_ADDR, ICU_IEN0_BIT },       /* No.64  外部端子 IRQ0 */
    395         { ICU_IER08_ADDR, ICU_IEN1_BIT },       /* No.65  外部端子 IRQ1 */
    396         { ICU_IER08_ADDR, ICU_IEN2_BIT },       /* No.66  外部端子 IRQ2 */
    397         { ICU_IER08_ADDR, ICU_IEN3_BIT },       /* No.67  外部端子 IRQ3 */
    398         { ICU_IER08_ADDR, ICU_IEN4_BIT },       /* No.68  外部端子 IRQ4 */
    399         { ICU_IER08_ADDR, ICU_IEN5_BIT },       /* No.69  外部端子 IRQ5 */
    400         { ICU_IER08_ADDR, ICU_IEN6_BIT },       /* No.70  外部端子 IRQ6 */
    401         { ICU_IER08_ADDR, ICU_IEN7_BIT },       /* No.71  外部端子 IRQ7 */
    402         { ICU_IER09_ADDR, ICU_IEN0_BIT },       /* No.72  外部端子 IRQ8 */
    403         { ICU_IER09_ADDR, ICU_IEN1_BIT },       /* No.73  外部端子 IRQ9 */
    404         { ICU_IER09_ADDR, ICU_IEN2_BIT },       /* No.74  外部端子 IRQ10 */
    405         { ICU_IER09_ADDR, ICU_IEN3_BIT },       /* No.75  外部端子 IRQ11 */
    406         { ICU_IER09_ADDR, ICU_IEN4_BIT },       /* No.76  外部端子 IRQ12 */
    407         { ICU_IER09_ADDR, ICU_IEN5_BIT },       /* No.77  外部端子 IRQ13 */
    408         { ICU_IER09_ADDR, ICU_IEN6_BIT },       /* No.78  外部端子 IRQ14 */
    409         { ICU_IER09_ADDR, ICU_IEN7_BIT },       /* No.79  外部端子 IRQ15 */
    410         { NULL, INVALID_OFFSET },                       /* No.80  予約 */
    411         { NULL, INVALID_OFFSET },                       /* No.81  予約 */
    412         { NULL, INVALID_OFFSET },                       /* No.82  予約 */
    413         { NULL, INVALID_OFFSET },                       /* No.83  予約 */
    414         { NULL, INVALID_OFFSET },                       /* No.84  予約 */
    415         { NULL, INVALID_OFFSET },                       /* No.85  予約 */
    416         { NULL, INVALID_OFFSET },                       /* No.86  予約 */
    417         { NULL, INVALID_OFFSET },                       /* No.87  予約 */
    418         { NULL, INVALID_OFFSET },                       /* No.88  予約 */
    419         { NULL, INVALID_OFFSET },                       /* No.89  予約 */
     378        { NULL, INVALID_OFFSET },                       /* No.63  予約 */
     379        { ICU_IER08_ADDR, ICU_IEN0_BIT },       /* No.64  外部端子 IRQ0 */
     380        { ICU_IER08_ADDR, ICU_IEN1_BIT },       /* No.65  外部端子 IRQ1 */
     381        { ICU_IER08_ADDR, ICU_IEN2_BIT },       /* No.66  外部端子 IRQ2 */
     382        { ICU_IER08_ADDR, ICU_IEN3_BIT },       /* No.67  外部端子 IRQ3 */
     383        { ICU_IER08_ADDR, ICU_IEN4_BIT },       /* No.68  外部端子 IRQ4 */
     384        { ICU_IER08_ADDR, ICU_IEN5_BIT },       /* No.69  外部端子 IRQ5 */
     385        { ICU_IER08_ADDR, ICU_IEN6_BIT },       /* No.70  外部端子 IRQ6 */
     386        { ICU_IER08_ADDR, ICU_IEN7_BIT },       /* No.71  外部端子 IRQ7 */
     387        { ICU_IER09_ADDR, ICU_IEN0_BIT },       /* No.72  外部端子 IRQ8 */
     388        { ICU_IER09_ADDR, ICU_IEN1_BIT },       /* No.73  外部端子 IRQ9 */
     389        { ICU_IER09_ADDR, ICU_IEN2_BIT },       /* No.74  外部端子 IRQ10 */
     390        { ICU_IER09_ADDR, ICU_IEN3_BIT },       /* No.75  外部端子 IRQ11 */
     391        { ICU_IER09_ADDR, ICU_IEN4_BIT },       /* No.76  外部端子 IRQ12 */
     392        { ICU_IER09_ADDR, ICU_IEN5_BIT },       /* No.77  外部端子 IRQ13 */
     393        { ICU_IER09_ADDR, ICU_IEN6_BIT },       /* No.78  外部端子 IRQ14 */
     394        { ICU_IER09_ADDR, ICU_IEN7_BIT },       /* No.79  外部端子 IRQ15 */
     395        { NULL, INVALID_OFFSET },                       /* No.80  予約 */
     396        { NULL, INVALID_OFFSET },                       /* No.81  予約 */
     397        { NULL, INVALID_OFFSET },                       /* No.82  予約 */
     398        { NULL, INVALID_OFFSET },                       /* No.83  予約 */
     399        { NULL, INVALID_OFFSET },                       /* No.84  予約 */
     400        { NULL, INVALID_OFFSET },                       /* No.85  予約 */
     401        { NULL, INVALID_OFFSET },                       /* No.86  予約 */
     402        { NULL, INVALID_OFFSET },                       /* No.87  予約 */
     403        { NULL, INVALID_OFFSET },                       /* No.88  予約 */
     404        { NULL, INVALID_OFFSET },                       /* No.89  予約 */
    420405        { ICU_IER0B_ADDR, ICU_IEN2_BIT },       /* No.90  USBR0 */
    421406        { ICU_IER0B_ADDR, ICU_IEN3_BIT },       /* No.91  USBR1 */
    422407        { ICU_IER0B_ADDR, ICU_IEN4_BIT },       /* No.92  RTC ALM */
    423408        { ICU_IER0B_ADDR, ICU_IEN5_BIT },       /* No.92  RTC PRD */
    424         { NULL, INVALID_OFFSET },                       /* No.94  予約 */
    425         { NULL, INVALID_OFFSET },                       /* No.95  予約 */
    426         { NULL, INVALID_OFFSET },                       /* No.96  予約 */
    427         { NULL, INVALID_OFFSET },                       /* No.97  予約 */
     409        { NULL, INVALID_OFFSET },                       /* No.94  予約 */
     410        { NULL, INVALID_OFFSET },                       /* No.95  予約 */
     411        { NULL, INVALID_OFFSET },                       /* No.96  予約 */
     412        { NULL, INVALID_OFFSET },                       /* No.97  予約 */
    428413        { ICU_IER0C_ADDR, ICU_IEN2_BIT },       /* No.98  AD0 ADI0 */
    429         { NULL, INVALID_OFFSET },                       /* No.99  予約 */
    430         { NULL, INVALID_OFFSET },                       /* No.100 予約 */
    431         { NULL, INVALID_OFFSET },                       /* No.101 予約 */
     414        { NULL, INVALID_OFFSET },                       /* No.99  予約 */
     415        { NULL, INVALID_OFFSET },                       /* No.100 予約 */
     416        { NULL, INVALID_OFFSET },                       /* No.101 予約 */
    432417        { ICU_IER0C_ADDR, ICU_IEN6_BIT },       /* No.102 S12AD S12ADI00 */
    433         { NULL, INVALID_OFFSET },                       /* No.103 予約 */
    434         { NULL, INVALID_OFFSET },                       /* No.104 予約 */
    435         { NULL, INVALID_OFFSET },                       /* No.105 予約 */
     418        { NULL, INVALID_OFFSET },                       /* No.103 予約 */
     419        { NULL, INVALID_OFFSET },                       /* No.104 予約 */
     420        { NULL, INVALID_OFFSET },                       /* No.105 予約 */
    436421        { ICU_IER0D_ADDR, ICU_IEN2_BIT },       /* No.106 ICU GROUP0 */
    437422        { ICU_IER0D_ADDR, ICU_IEN3_BIT },       /* No.107 ICU GROUP1 */
     
    441426        { ICU_IER0D_ADDR, ICU_IEN7_BIT },       /* No.111 ICU GROUP5 */
    442427        { ICU_IER0E_ADDR, ICU_IEN0_BIT },       /* No.112 ICU GROUP6 */
    443         { NULL, INVALID_OFFSET },                       /* No.113 予約 */
     428        { NULL, INVALID_OFFSET },                       /* No.113 予約 */
    444429        { ICU_IER0E_ADDR, ICU_IEN1_BIT },       /* No.114 ICU GROUP12 */
    445         { NULL, INVALID_OFFSET },                       /* No.115 予約 */
    446         { NULL, INVALID_OFFSET },                       /* No.116 予約 */
    447         { NULL, INVALID_OFFSET },                       /* No.117 予約 */
    448         { NULL, INVALID_OFFSET },                       /* No.118 予約 */
    449         { NULL, INVALID_OFFSET },                       /* No.119 予約 */
    450         { NULL, INVALID_OFFSET },                       /* No.120 予約 */
    451         { NULL, INVALID_OFFSET },                       /* No.121 予約 */
     430        { NULL, INVALID_OFFSET },                       /* No.115 予約 */
     431        { NULL, INVALID_OFFSET },                       /* No.116 予約 */
     432        { NULL, INVALID_OFFSET },                       /* No.117 予約 */
     433        { NULL, INVALID_OFFSET },                       /* No.118 予約 */
     434        { NULL, INVALID_OFFSET },                       /* No.119 予約 */
     435        { NULL, INVALID_OFFSET },                       /* No.120 予約 */
     436        { NULL, INVALID_OFFSET },                       /* No.121 予約 */
    452437        { ICU_IER0F_ADDR, ICU_IEN2_BIT },       /* No.122 SCI12 SCIX0 */
    453438        { ICU_IER0F_ADDR, ICU_IEN3_BIT },       /* No.123 SCI12 SCIX1 */
     
    496481        { ICU_IER14_ADDR, ICU_IEN6_BIT },       /* No.166 POE OEI1 */
    497482        { ICU_IER14_ADDR, ICU_IEN7_BIT },       /* No.167 POE OEI2 */
    498         { NULL, INVALID_OFFSET },                       /* No.168 予約 */
    499         { NULL, INVALID_OFFSET },                       /* No.169 予約 */
     483        { NULL, INVALID_OFFSET },                       /* No.168 予約 */
     484        { NULL, INVALID_OFFSET },                       /* No.169 予約 */
    500485        { ICU_IER15_ADDR, ICU_IEN2_BIT },       /* No.170 TMR0 CMIA0 */
    501486        { ICU_IER15_ADDR, ICU_IEN3_BIT },       /* No.171 TMR0 CMIB0 */
     
    532517        { ICU_IER19_ADDR, ICU_IEN2_BIT },       /* No.202 EXDMAC EXDMAC0I */
    533518        { ICU_IER19_ADDR, ICU_IEN3_BIT },       /* No.203 EXDMAC EXDMAC1I */
    534         { NULL, INVALID_OFFSET },                       /* No.204 予約 */
    535         { NULL, INVALID_OFFSET },                       /* No.205 予約 */
    536         { NULL, INVALID_OFFSET },                       /* No.206 予約 */
    537         { NULL, INVALID_OFFSET },                       /* No.207 予約 */
    538         { NULL, INVALID_OFFSET },                       /* No.208 予約 */
    539         { NULL, INVALID_OFFSET },                       /* No.209 予約 */
    540         { NULL, INVALID_OFFSET },                       /* No.210 予約 */
    541         { NULL, INVALID_OFFSET },                       /* No.211 予約 */
    542         { NULL, INVALID_OFFSET },                       /* No.212 予約 */
    543         { NULL, INVALID_OFFSET },                       /* No.213 予約 */
     519        { NULL, INVALID_OFFSET },                       /* No.204 予約 */
     520        { NULL, INVALID_OFFSET },                       /* No.205 予約 */
     521        { NULL, INVALID_OFFSET },                       /* No.206 予約 */
     522        { NULL, INVALID_OFFSET },                       /* No.207 予約 */
     523        { NULL, INVALID_OFFSET },                       /* No.208 予約 */
     524        { NULL, INVALID_OFFSET },                       /* No.209 予約 */
     525        { NULL, INVALID_OFFSET },                       /* No.210 予約 */
     526        { NULL, INVALID_OFFSET },                       /* No.211 予約 */
     527        { NULL, INVALID_OFFSET },                       /* No.212 予約 */
     528        { NULL, INVALID_OFFSET },                       /* No.213 予約 */
    544529        { ICU_IER1A_ADDR, ICU_IEN6_BIT },       /* No.214 SCI0 RXI0 */
    545530        { ICU_IER1A_ADDR, ICU_IEN7_BIT },       /* No.215 SCI0 TXI0 */
     
    582567        { ICU_IER1F_ADDR, ICU_IEN4_BIT },       /* No.252 SCI12 TEI12 */
    583568        { ICU_IER1F_ADDR, ICU_IEN5_BIT },       /* No.253 IEB IEBINT */
    584         { NULL, INVALID_OFFSET },                       /* No.254 予約 */
    585         { NULL, INVALID_OFFSET },                       /* No.255 予約 */
     569        { NULL, INVALID_OFFSET },                       /* No.254 予約 */
     570        { NULL, INVALID_OFFSET },                       /* No.255 予約 */
    586571};
    587572
    588573
    589574/*
    590  *  IRQコントロールレジスタアドレステーブル
     575 *  IRQコントロールレジスタアドレステーブル
    591576 */
    592577volatile uint8_t __evenaccess * const irqcr_reg_addr[ IRQ_MAX ] = {
  • asp3_gr_sakura/trunk/arch/rx630_gcc/rx630_kernel_impl.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r317 r318  
    77 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
    4531 *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  @(#) $Id$
     
    5540
    5641/*
    57  *              プロセッサ依存モジュール(RX630用)
     42 *              プロセッサ依存モジュール(RX630用)
    5843 *
    59  *  このインクルードファイルは,target_kernel_impl.h(または,そこからインク
    60  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    61  *  直接インクルードしてはならない.
     44 *  このインクルードファイルは,target_kernel_impl.h(または,そこからインク
     45 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     46 *  直接インクルードしてはならない.
    6247 */
    6348
     
    6853
    6954/*
    70  *  割込み要因数
     55 *  割込み要因数
    7156 */
    7257#define INHNO_MAX       UINT_C( 256 )
     
    7560
    7661/*
    77  *  割込み制御用型定義
     62 *  割込み制御用型定義
    7863 */
    7964typedef struct ier_info {
     
    8570
    8671/*
    87  *  割込み制御用定義
     72 *  割込み制御用定義
    8873 */
    8974#define INVALID_OFFSET                          ( 0xFFU )
     
    9883
    9984/*
    100  *  割込み制御用テーブル
     85 *  割込み制御用テーブル
    10186 */
    10287
    103 /* 割込み要因プライオリティレジスタアドレス */
     88/* 割込み要因プライオリティレジスタアドレス */
    10489extern volatile uint8_t __evenaccess * const ipr_reg_addr[];
    105 /* 割込み要求許可レジスタアドレス */
     90/* 割込み要求許可レジスタアドレス */
    10691extern const IER_INFO ier_reg_addr[];
    107 /* 割込み要求レジスタアドレス */
     92/* 割込み要求レジスタアドレス */
    10893extern volatile uint8_t __evenaccess * const ir_reg_addr[];
    109 /* IRQコントロールレジスタアドレス */
     94/* IRQコントロールレジスタアドレス */
    11095extern volatile uint8_t __evenaccess * const irqcr_reg_addr[];
    11196
     
    11398
    11499/*
    115  *  プロセッサ依存モジュール(RX630用)
     100 *  プロセッサ依存モジュール(RX630用)
    116101 */
    117102#include "prc_kernel_impl.h"
  • asp3_gr_sakura/trunk/arch/rx630_gcc/scif.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r317 r318  
    1010 *  Copyright (C) 2017      by Cores Co., Ltd. Japan
    1111 *
    12  *  上記著作権è€
    13 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    14  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    15  *  変・再é
    16 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    17  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    18  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    19  *      スコード中に含まれていること.
    20  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    21  *      用できる形で再é
    22 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    23 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    24  *      è€
    25 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    26  *      の無保証規定を掲載すること.
    27  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    28  *      用できない形で再é
    29 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    30  *      と.
    31  *    (a) 再é
    32 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    33 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    34  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    35  *    (b) 再é
    36 å¸ƒã®å½¢æ
    37 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    38  *        報告すること.
    39  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    40  *      害からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトをå
    42 è²¬ã™ã‚‹ã“と.
    43  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    44  *      由に基づく請求からも,上記著作権è€
    45 ãŠã‚ˆã³TOPPERSプロジェクトを
    46  *      å
    47 è²¬ã™ã‚‹ã“と.
     12 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     13 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17 *      スコード中に含まれていること.
     18 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21 *      の無保証規定を掲載すること.
     22 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24 *      と.
     25 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28 *        報告すること.
     29 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33 *      免責すること.
    4834 *
    49  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    50 ãŠ
    51  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    52  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    53  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    54  *  の責任を負わない.
     35 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39 *  の責任を負わない.
    5540 *
    5641 *  $Id$
     
    5843
    5944/*
    60  *              FIFOå†
    61 è”µã‚·ãƒªã‚¢ãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã«é–¢ã™ã‚‹å®šç¾©
     45 *              FIFO内蔵シリアルコミュニケーションインタフェースに関する定義
    6246 */
    6347
     
    6650
    6751/*
    68  *  SCIレジスタのベース番地の定義
     52 *  SCIレジスタのベース番地の定義
    6953 */
    7054#define SCI0_BASE       ((uint32_t)(SCI0_SMR_ADDR))
     
    7660#define SCI6_BASE       ((uint32_t)(SCI6_SMR_ADDR))
    7761
    78 /* モジュールストップコントロールレジスタB bit */
     62/* モジュールストップコントロールレジスタB bit */
    7963#define SCI_NUM(base)   ((base - SCI0_BASE) / 0x20)
    8064#define SCI_MSTPCRB_BIT(base)   (1 << (31 - SCI_NUM(base)))
    8165
    82 /* 指定可能なクロックソース */
     66/* 指定可能なクロックソース */
    8367#define CLK_F1  UINT_C(0x00)
    8468#define CLK_F4  UINT_C(0x01)
     
    8670#define CLK_F64 UINT_C(0x03)
    8771
    88 /* シリアルモードレジスタ(SMR) */
     72/* シリアルモードレジスタ(SMR) */
    8973#define CKS                     UINT_C(0x03)
    9074#define STOP            UINT_C(0x08)
     
    9680#define ASYNC_8BIT      UINT_C(0x40)
    9781
    98 /* シリアルコントロールレジスタ(SCR) */
     82/* シリアルコントロールレジスタ(SCR) */
    9983#define CKE                     UINT_C(0x03)
    10084#define TEIE            UINT_C(0x04)
     
    10488#define TIE                     UINT_C(0x80)
    10589
    106 /* シリアルステータスレジスタ(SSR) */
     90/* シリアルステータスレジスタ(SSR) */
    10791#define TEND            UINT_C(0x04)
    10892#define PER                     UINT_C(0x08)
     
    11094#define ORER            UINT_C(0x20)
    11195
    112 /* シリアル拡張モードレジスタ(SEMR) */
     96/* シリアル拡張モードレジスタ(SEMR) */
    11397#define ACS0            UINT_C(0x01)
    11498#define ABCS            UINT_C(0x10)
     
    118102
    119103/*
    120  *  SCIレジスタの番地の定義
     104 *  SCIレジスタの番地の定義
    121105 */
    122106#define SCI_SMR(base)           ((uint8_t *)(base + 0x00U))
     
    133117
    134118/*
    135  *  コールバックルーチンの識別番号
     119 *  コールバックルーチンの識別番号
    136120 */
    137 #define SIO_RDY_SND    (1U)        /* 送信可能コールバック */
    138 #define SIO_RDY_RCV    (2U)        /* 受信通知コールバック */
     121#define SIO_RDY_SND    (1U)        /* 送信可能コールバック */
     122#define SIO_RDY_RCV    (2U)        /* 受信通知コールバック */
    139123
    140124#endif /* TOPPERS_MACRO_ONLY */
  • asp3_gr_sakura/trunk/arch/rx630_gcc/sectrx.inc

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain; charset=UTF-8
    r317 r318  
    66;*  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    77;*
    8 ;*  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10 ;*  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11 ;*  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13 ;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14 ;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15 ;*      スコード中に含まれていること.
    16 ;*  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17 ;*      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20 ;*      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22 ;*      の無保証規定を掲載すること.
    23 ;*  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24 ;*      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26 ;*      と.
    27 ;*    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30 ;*        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31 ;*    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34 ;*        報告すること.
    35 ;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36 ;*      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39 ;*      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40 ;*      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42 ;*      å
    43 è²¬ã™ã‚‹ã“と.
     8;*  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9;*  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10;*  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13;*      スコード中に含まれていること.
     14;*  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15;*      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16;*      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17;*      の無保証規定を掲載すること.
     18;*  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19;*      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20;*      と.
     21;*    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22;*        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23;*    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24;*        報告すること.
     25;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26;*      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27;*      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28;*      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29;*      免責すること.
    4430;*
    45 ;*  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47 ;*  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48 ;*  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49 ;*  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50 ;*  の責任を負わない.
     31;*  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32;*  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33;*  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34;*  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35;*  の責任を負わない.
    5136;*
    5237;*  @(#) $Id$
     
    5439
    5540;
    56 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã‚·ã‚¹ãƒ†ãƒ ä¾å­˜ã‚»ã‚¯ã‚·ãƒ§ãƒ³å®šç¾©ãƒ•ã‚¡ã‚¤ãƒ«(スターターキット用)
     41ターゲットシステム依存セクション定義ファイル(スターターキット用)
    5742;
    5843
    5944;
    60 ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®å®šç¾©
     45セクションの定義
    6146;
    62 ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®ã‚¢ãƒ‰ãƒ¬ã‚¹å®šç¾©ã¯HEW上の最適化リンカの
    63 ã‚ªãƒ—ションにて実施する.
     47セクションのアドレス定義はHEW上の最適化リンカの
     48オプションにて実施する.
    6449;
    6550
    6651        ;
    67         ;  初期値有りデータ領域のセクション
     52        ;  初期値有りデータ領域のセクション
    6853        ;
    6954        ;  00000000h - 00020000h
     
    7560
    7661        ;
    77         ;  初期値無しデータ領域のセクション
     62        ;  初期値無しデータ領域のセクション
    7863        ;
    7964        ;  00000000h - 00020000h
     
    8873
    8974        ;
    90         ;  カーネルスタック領域のセクション
     75        ;  カーネルスタック領域のセクション
    9176        ;
    9277        ;  00000000h - 00020000h
    9378        ;
    94         ;  以下.blkb命令で確保しているカーネルスタック領域のサイズを
    95         ;  変更する場合は, target_kernel_impl.hのDEFAULT_ISTKSZの値を, 同じ
    96         ;  値に変更すること.
     79        ;  以下.blkb命令で確保しているカーネルスタック領域のサイズを
     80        ;  変更する場合は, target_kernel_impl.hのDEFAULT_ISTKSZの値を, 同じ
     81        ;  値に変更すること.
    9782        ;
    9883;       .section        SI, DATA, ALIGN = 4
     
    10489
    10590        ;
    106         ;  定数領域のセクション
     91        ;  定数領域のセクション
    10792        ;
    10893        ;  00100000h - 00107FFFh
     
    11398
    11499        ;
    115         ;  初期値有りデータ領域の初期値
     100        ;  初期値有りデータ領域の初期値
    116101        ;
    117102        ;  00100000h - 00107FFFh
     
    122107
    123108        ;
    124         ;  可変ベクタテーブル領域のセクション
     109        ;  可変ベクタテーブル領域のセクション
    125110        ;
    126111        ;  00100000h - 00107FFFh
     
    131116
    132117        ;
    133         ;  プログラム領域のセクション
     118        ;  プログラム領域のセクション
    134119        ;
    135120        ;  FFE80000h - FFFFFF7Fh
     
    138123
    139124        ;
    140         ;  固定ベクタテーブル領域のセクション
     125        ;  固定ベクタテーブル領域のセクション
    141126        ;
    142127        ;  FFFFFF80h - FFFFFFFFh
  • asp3_gr_sakura/trunk/arch/rx630_gcc/start.S

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain; charset=UTF-8
    r317 r318  
    1010;*  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    1111;*
    12 ;*  上記著作権è€
    13 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    14 ;*  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    15 ;*  変・再é
    16 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    17 ;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    18 ;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    19 ;*      スコード中に含まれていること.
    20 ;*  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    21 ;*      用できる形で再é
    22 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    23 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    24 ;*      è€
    25 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    26 ;*      の無保証規定を掲載すること.
    27 ;*  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    28 ;*      用できない形で再é
    29 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    30 ;*      と.
    31 ;*    (a) 再é
    32 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    33 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    34 ;*        作権表示,この利用条件および下記の無保証規定を掲載すること.
    35 ;*    (b) 再é
    36 å¸ƒã®å½¢æ
    37 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    38 ;*        報告すること.
    39 ;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    40 ;*      害からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトをå
    42 è²¬ã™ã‚‹ã“と.
    43 ;*      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    44 ;*      由に基づく請求からも,上記著作権è€
    45 ãŠã‚ˆã³TOPPERSプロジェクトを
    46 ;*      å
    47 è²¬ã™ã‚‹ã“と.
     12;*  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     13;*  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     14;*  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     15;*  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     16;*      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     17;*      スコード中に含まれていること.
     18;*  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     19;*      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     20;*      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     21;*      の無保証規定を掲載すること.
     22;*  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     23;*      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     24;*      と.
     25;*    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     26;*        作権表示,この利用条件および下記の無保証規定を掲載すること.
     27;*    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     28;*        報告すること.
     29;*  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     30;*      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     31;*      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     32;*      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     33;*      免責すること.
    4834;*
    49 ;*  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    50 ãŠ
    51 ;*  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    52 ;*  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    53 ;*  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    54 ;*  の責任を負わない.
     35;*  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     36;*  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     37;*  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     38;*  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     39;*  の責任を負わない.
    5540;*
    5641;*  @(#) $Id$
     
    5843
    5944#define TOPPERS_MACRO_ONLY
    60 #define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
    61 #define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
    62 #define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
     45#define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
     46#define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
     47#define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
    6348#include "kernel_impl.h"
    6449#include "sectrx.inc"
    6550
    6651        ;
    67         ;  メモリマップの定義(ターゲット依存部)
     52        ;  メモリマップの定義(ターゲット依存部)
    6853        ;
    6954
    70 .equ    DFLRE,                          007FC440H               ; DFLREレジスタ
     55.equ    DFLRE,                          007FC440H               ; DFLREレジスタ
    7156
    7257.equ    DB_BLOCK_ENABLE,        02D0FH
    7358
    7459;
    75 åˆæœŸåŒ–ルーチン
     60初期化ルーチン
    7661;
    7762        .section        P, CODE
     
    8671_start:
    8772        ;
    88         ;  電源投å
    89 ¥å¾Œã¯ãƒ¬ãƒ™ãƒ«0, å
    90 ¨å‰²è¾¼ã¿ç¦æ­¢çŠ¶æ
    91 ‹ã§ã‚ã‚‹.
    92         ;  カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV
    93         ;  の初期化は行わない.
     73        ;  電源投入後はレベル0, 全割込み禁止状態である.
     74        ;  カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV
     75        ;  の初期化は行わない.
    9476        ;
    9577
    9678        ;
    97         ;  å†
    98 è”µROM(データフラッシュ)領域の設定
     79        ;  内蔵ROM(データフラッシュ)領域の設定
    9980        ;
    100         ;  リセット後, データフラッシュ領域は読み出し禁止となっている
    101         ;  ため, 読み出し許可に設定する.
     81        ;  リセット後, データフラッシュ領域は読み出し禁止となっている
     82        ;  ため, 読み出し許可に設定する.
    10283        ;
    10384        mov.l   #DFLRE, r5
     
    10586       
    10687        ;
    107         ;  スタックポインタの設定
     88        ;  スタックポインタの設定
    10889        ;
    109         ;  ユーザにて非タスクコンテキスト用スタック領域を用意した場合,
    110         ;  ユーザ領域を設定する.
    111         ;  kernel_cfg.cにて"_kernel_istkpt"の値を決定する.
     90        ;  ユーザにて非タスクコンテキスト用スタック領域を用意した場合,
     91        ;  ユーザ領域を設定する.
     92        ;  kernel_cfg.cにて"_kernel_istkpt"の値を決定する.
    11293        ;
    11394        mov.l   #__kernel_istkpt, r5
    114         mov.l   [r5], r0                        ; 非タスクコンテキスト用スタック領域を設定
     95        mov.l   [r5], r0                        ; 非タスクコンテキスト用スタック領域を設定
    11596
    11697        ;
    117         ;  可変ベクタテーブルの設定
     98        ;  可変ベクタテーブルの設定
    11899        ;
    119         ; mvtc  #VVECTOR_TOP, intb      ; ベクタテーブルの設定
    120         mvtc    #_vvector_table, intb   ; ベクタテーブルの設定
     100        ; mvtc  #VVECTOR_TOP, intb      ; ベクタテーブルの設定
     101        mvtc    #_vvector_table, intb   ; ベクタテーブルの設定
    121102
    122103        ;
    123         ;  ハードウェア固有の初期化ルーチンの呼出し
     104        ;  ハードウェア固有の初期化ルーチンの呼出し
    124105        ;
    125106        mov.l   #_hardware_init_hook, r5
     
    129110
    130111        ;
    131         ;  初期値あり変数領域の初期化
     112        ;  初期値あり変数領域の初期化
    132113        ;
    133114init_D:
    134115        mov.l   #(_edata - _data), r3
    135116        cmp             #0, r3
    136         beq.b   clear_B                                         ; サイズ0なら初期化å¿
    137 è¦ãªã—
     117        beq.b   clear_B                                         ; サイズ0なら初期化必要なし
    138118        mov.l   #(_data), r1
    139119        mov.l   #(_mdata), r2
     
    141121
    142122        ;
    143         ;  初期値なし変数領域の初期化
     123        ;  初期値なし変数領域の初期化
    144124        ;
    145125clear_B:
     
    150130
    151131        ;
    152         ;  software_init_hook を呼出し(0 でない場合)
     132        ;  software_init_hook を呼出し(0 でない場合)
    153133        ;
    154         ;  ソフトウェア環境(特にライブラリ)に依存してå¿
    155 è¦ãªåˆæœŸåŒ–処理
    156         ;  がある場合は,software_init_hook という関数を用意すればよい.
     134        ;  ソフトウェア環境(特にライブラリ)に依存して必要な初期化処理
     135        ;  がある場合は,software_init_hook という関数を用意すればよい.
    157136        ;
    158137        mov.l   #_software_init_hook, r5
     
    162141
    163142        ;
    164         ;  カーネルスタート
     143        ;  カーネルスタート
    165144        ;
    166145kernel_link:
  • asp3_gr_sakura/trunk/arch/rx630_gcc/tSCIF.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r317 r318  
    88 *  Copyright (C) 2017      by Cores Co., Ltd. Japan
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    4632 *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              FIFOå†
    59 è”µã‚·ãƒªã‚¢ãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ç”¨ 簡易SIOドライバ
     43 *              FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドライバ
    6044 */
    6145
     
    6549
    6650/*
    67  *  プリミティブな送信/受信関数
    68  */
    69 
    70 /*
    71  *  受信バッファに文字があるか?
     51 *  プリミティブな送信/受信関数
     52 */
     53
     54/*
     55 *  受信バッファに文字があるか?
    7256 */
    7357Inline bool_t
     
    7559{
    7660        /*
    77          *  受信フラグがONのときのみ受信バッファから文字を取得する.
    78          *  これは, ポーリング受信に対応するためである.
    79          *  しかし, RX600シリーズでは受信フラグがないこと, システムサービス
    80          *  では受信割込みの中からしかデータを受信しに来ないことから, 常に
    81          *  受信バッファから文字を取得する.
     61         *  受信フラグがONのときのみ受信バッファから文字を取得する.
     62         *  これは, ポーリング受信に対応するためである.
     63         *  しかし, RX600シリーズでは受信フラグがないこと, システムサービス
     64         *  では受信割込みの中からしかデータを受信しに来ないことから, 常に
     65         *  受信バッファから文字を取得する.
    8266         */
    8367        return true;
     
    8569
    8670/*
    87  *  送信バッファに空きがあるか?
     71 *  送信バッファに空きがあるか?
    8872 */
    8973Inline bool_t
     
    9781
    9882/*
    99  *  送信する文字の書込み
     83 *  送信する文字の書込み
    10084 */
    10185Inline void
     
    10690
    10791/*
    108  *  シリアルI/Oポートのオープン
     92 *  シリアルI/Oポートのオープン
    10993 */
    11094void
     
    117101        if (VAR_initialized) {
    118102                /*
    119                  *  既に初期化している場合は、二重に初期化しない.
     103                 *  既に初期化している場合は、二重に初期化しない.
    120104                 */
    121105                return;
     
    138122
    139123        /*
    140          *  SCIドライバの初期化ルーチン
    141          */
    142 
    143         /*
    144          *  割り込み要求å
    145 ˆãƒ¬ã‚¸ã‚¹ã‚¿ã®è¨­å®š(ISELRi)
     124         *  SCIドライバの初期化ルーチン
     125         */
     126
     127        /*
     128         *  割り込み要求先レジスタの設定(ISELRi)
    146129         *
    147          *  リセット値と同じ値を設定することになるため,
    148          *  処理は省略する.
    149          */
    150 
    151         /*
    152          *  モジュールストップ機能の設定
    153          */
    154         sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA502);        /* 書込み許可 */
     130         *  リセット値と同じ値を設定することになるため,
     131         *  処理は省略する.
     132         */
     133
     134        /*
     135         *  モジュールストップ機能の設定
     136         */
     137        sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA502);        /* 書込み許可 */
    155138        sil_wrw_mem(SYSTEM_MSTPCRB_ADDR,
    156139                sil_rew_mem(SYSTEM_MSTPCRB_ADDR) & ~SCI_MSTPCRB_BIT(ATTR_baseAddress));
    157         sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA500);        /* 書込み禁止 */
    158 
    159         /* 送受信禁止, SCKn端子はå
    160 ¥å‡ºåŠ›ãƒãƒ¼ãƒˆã¨ã—て使用 */
     140        sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA500);        /* 書込み禁止 */
     141
     142        /* 送受信禁止, SCKn端子は入出力ポートとして使用 */
    161143        sil_wrb_mem(SCI_SCR(ATTR_baseAddress), 0x00U);
    162144
    163         /* クロック選択ビット(SMR.CKS[1:0]ビットを設定) */
     145        /* クロック選択ビット(SMR.CKS[1:0]ビットを設定) */
    164146        sil_wrb_mem(SCI_SMR(ATTR_baseAddress),
    165147                (sil_reb_mem(SCI_SMR(ATTR_baseAddress)) & ~0x03) | clk);
    166148
    167         /* SMRに送信/ 受信フォーマットを設定) */
     149        /* SMRに送信/ 受信フォーマットを設定) */
    168150        sil_wrb_mem(SCI_SMR(ATTR_baseAddress),
    169151                        sil_reb_mem(SCI_SMR(ATTR_baseAddress)) & (~SCI_SMR_FLG_ENABLE));
    170152
    171         /* ビットレートを設定 */
     153        /* ビットレートを設定 */
    172154        sil_wrb_mem(SCI_BRR(ATTR_baseAddress), brr);
    173155
    174         /* ビット期間(基本クロック16サイクルの期間が1ビット期間となる) */
     156        /* ビット期間(基本クロック16サイクルの期間が1ビット期間となる) */
    175157        for(i = 0; i < 16; i++) { }
    176158
    177         /* 送受信許可 */
     159        /* 送受信許可 */
    178160        sil_wrb_mem(SCI_SCR(ATTR_baseAddress),
    179161                        (sil_reb_mem(SCI_SCR(ATTR_baseAddress)) | SCI_SCR_FLG_ENABLE));
     
    183165
    184166/*
    185  *  シリアルI/Oポートのクローズ
     167 *  シリアルI/Oポートのクローズ
    186168 */
    187169void
     
    191173
    192174        /*
    193          *  UART停止
     175         *  UART停止
    194176         */
    195177        sil_wrb_mem(SCI_SCR(ATTR_baseAddress), 0x00U);
     
    197179
    198180/*
    199  *  シリアルI/Oポートへの文字送信
     181 *  シリアルI/Oポートへの文字送信
    200182 */
    201183bool_t
     
    212194
    213195/*
    214  *  シリアルI/Oポートからの文字受信
     196 *  シリアルI/Oポートからの文字受信
    215197 */
    216198int_t
     
    221203        int_t c = -1;
    222204
    223         /* オーバランエラーチェック */ /* ZZZ */
     205        /* オーバランエラーチェック */ /* ZZZ */
    224206        reg = sil_reb_mem(SCI_SSR(ATTR_baseAddress));
    225207        while((reg & SCI_SSR_ORER_BIT) != 0) {
     
    229211
    230212        /*
    231          *  受信フラグがONのときのみ受信バッファから文字を取得する.
    232          *  これは, ポーリング受信に対応するためである.
    233          *  しかし, RX600シリーズでは受信フラグがないこと, システムサービス
    234          *  では受信割込みの中からしかデータを受信しに来ないことから, 常に
    235          *  受信バッファから文字を取得する.
     213         *  受信フラグがONのときのみ受信バッファから文字を取得する.
     214         *  これは, ポーリング受信に対応するためである.
     215         *  しかし, RX600シリーズでは受信フラグがないこと, システムサービス
     216         *  では受信割込みの中からしかデータを受信しに来ないことから, 常に
     217         *  受信バッファから文字を取得する.
    236218         */
    237219        c = (int)(sil_reb_mem(SCI_RDR(ATTR_baseAddress)));
     
    241223
    242224/*
    243  *  シリアルI/Oポートからのコールバックの許可
     225 *  シリアルI/Oポートからのコールバックの許可
    244226 */
    245227void
     
    264246
    265247/*
    266  *  シリアルI/Oポートからのコールバックの禁止
     248 *  シリアルI/Oポートからのコールバックの禁止
    267249 */
    268250void
     
    287269
    288270/*
    289  *  シリアルI/Oポートに対する受信割込み処理
     271 *  シリアルI/Oポートに対する受信割込み処理
    290272 */
    291273void
     
    296278        if (scif_getready(p_cellcb)) {
    297279                /*
    298                  *  受信通知コールバックルーチンを呼び出す.
     280                 *  受信通知コールバックルーチンを呼び出す.
    299281                 */
    300282                ciSIOCBR_readyReceive();
     
    303285
    304286/*
    305  *  シリアルI/Oポートに対する送信割込み処理
     287 *  シリアルI/Oポートに対する送信割込み処理
    306288 */
    307289void
     
    312294        if (scif_putready(p_cellcb)) {
    313295                /*
    314                  *  送信可能コールバックルーチンを呼び出す.
     296                 *  送信可能コールバックルーチンを呼び出す.
    315297                 */
    316298                ciSIOCBR_readySend();
  • asp3_gr_sakura/trunk/arch/tracelog/tTraceLog.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r317 r318  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    4632 *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              トレースログ機能
     43 *              トレースログ機能
    5944 */
    6045
     
    6853
    6954/*
    70  *  トレース時刻の取り出し
     55 *  トレース時刻の取り出し
    7156 *
    72  *  デフォルトでは,ログ時刻として,高分解能タイマのカウント値を用いて
    73  *  いる.ターゲット依存で変更する場合には,SYSLOG_GET_LOGTIMに,ログ時
    74  *  刻を取り出すマクロを定義する.
     57 *  デフォルトでは,ログ時刻として,高分解能タイマのカウント値を用いて
     58 *  いる.ターゲット依存で変更する場合には,SYSLOG_GET_LOGTIMに,ログ時
     59 *  刻を取り出すマクロを定義する.
    7560 */
    7661#ifndef SYSLOG_GET_LOGTIM
     
    8065
    8166/*
    82  *  トレースログの開始
     67 *  トレースログの開始
    8368 */
    8469ER
     
    9681
    9782/*
    98  *  トレースログの書込み
     83 *  トレースログの書込み
    9984 */
    10085ER
     
    10792
    10893                /*
    109                  *  トレース時刻の設定
     94                 *  トレース時刻の設定
    11095                 */
    11196                SYSLOG_GET_LOGTIM(&(((SYSLOG *) p_trace)->logtim));
    11297
    11398                /*
    114                  *  トレースバッファに記録
     99                 *  トレースバッファに記録
    115100                 */
    116101                VAR_logBuffer[VAR_tail] = *p_trace;
     
    136121
    137122/*
    138  *  トレースログの読出し
     123 *  トレースログの読出し
    139124 */
    140125ER
     
    147132
    148133        /*
    149          *  トレースログバッファからの取出し
     134         *  トレースログバッファからの取出し
    150135         */
    151136        if (VAR_count > 0U) {
     
    167152
    168153/*
    169  *  アセンブリ言語で記述されるコードからトレースログを出力するための関
    170  *  数
     154 *  アセンブリ言語で記述されるコードからトレースログを出力するための関
     155 * 
    171156 */
    172157
     
    208193
    209194/*
    210  *  カーネルæƒ
    211 å ±ã®å–出し
     195 *  カーネル情報の取出し
    212196 */
    213197static intptr_t
     
    257241
    258242/*
    259  *  トレースログの表示
     243 *  トレースログの表示
    260244 */
    261245static void
     
    321305
    322306/*
    323  *  低レベル出力の呼出し関数
     307 *  低レベル出力の呼出し関数
    324308 */
    325309static void
     
    330314
    331315/*
    332  *  トレースログのダンプ
     316 *  トレースログのダンプ
    333317 */
    334318void
     
    343327
    344328/*
    345  *  トレースログのダンプ(受け口関数)
     329 *  トレースログのダンプ(受け口関数)
    346330 */
    347331void
  • asp3_gr_sakura/trunk/arch/tracelog/trace_log.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r317 r318  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
    46  *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
     32 *
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              トレースログに関する設定
    59  *
    60  *  このインクルードファイルは,target_kernel_impl.hおよび
    61  *  target_syssvc.hのみからインクルードされる.また,トレースログ機能の
    62  *  初期化や記録の開始/停止,トレースログのダンプを行うプログラムから
    63  *  インクルードすることを想定している.
     43 *              トレースログに関する設定
     44 *
     45 *  このインクルードファイルは,target_kernel_impl.hおよび
     46 *  target_syssvc.hのみからインクルードされる.また,トレースログ機能の
     47 *  初期化や記録の開始/停止,トレースログのダンプを行うプログラムから
     48 *  インクルードすることを想定している.
    6449 */
    6550
     
    6853
    6954/*
    70  *  トレースログのデータ構造
    71  *
    72  *  システムログ機能のログæƒ
    73 å ±ã®ãƒ‡ãƒ¼ã‚¿æ§‹é€ ã¨åŒã˜ã‚‚のを用いる.
     55 *  トレースログのデータ構造
     56 *
     57 *  システムログ機能のログ情報のデータ構造と同じものを用いる.
    7458 */
    7559#ifndef TOPPERS_MACRO_ONLY
     
    8165
    8266/*
    83  *  トレースモードの定義
    84  */
    85 #define TRACE_STOP                      UINT_C(0x00)    /* トレース停止 */
    86 #define TRACE_RINGBUF           UINT_C(0x01)    /* リングバッファモード */
    87 #define TRACE_AUTOSTOP          UINT_C(0x02)    /* 自動停止モード */
    88 #define TRACE_CLEAR                     UINT_C(0x04)    /* トレースログのクリア */
     67 *  トレースモードの定義
     68 */
     69#define TRACE_STOP                      UINT_C(0x00)    /* トレース停止 */
     70#define TRACE_RINGBUF           UINT_C(0x01)    /* リングバッファモード */
     71#define TRACE_AUTOSTOP          UINT_C(0x02)    /* 自動停止モード */
     72#define TRACE_CLEAR                     UINT_C(0x04)    /* トレースログのクリア */
    8973
    9074#ifndef TOPPERS_MACRO_ONLY
    9175
    9276/*
    93  *  TECSで記述されたテストプログラム用のサービスを直接呼び出すための定義
    94  *
    95  *  C言語で記述されたアプリケーションから,TECSで記述されたトレースログ
    96  *  機能を呼び出すためには,アダプタを用いるのが正当な方法であるが,ト
    97  *  レースログ機能がシングルトンであることを利用して直接呼び出す.
     77 *  TECSで記述されたテストプログラム用のサービスを直接呼び出すための定義
     78 *
     79 *  C言語で記述されたアプリケーションから,TECSで記述されたトレースログ
     80 *  機能を呼び出すためには,アダプタを用いるのが正当な方法であるが,ト
     81 *  レースログ機能がシングルトンであることを利用して直接呼び出す.
    9882 */
    9983extern ER       tTraceLog_eTraceLog_start(MODE mode);
     
    10387
    10488/*
    105  *  トレースログの開始
    106  *
    107  *  トレースログの記録を開始/停止する.引数により次の動作を行う.
    108  *
    109  *  TRACE_STOP:トレースを停止.
    110  *  TRACE_RINGBUF:リングバッファモードでトレースを開始.
    111  *  TRACE_AUTOSTOP:自動停止モードでトレースを開始.
    112  *  TRACE_CLEAR:トレースログをクリア.
     89 *  トレースログの開始
     90 *
     91 *  トレースログの記録を開始/停止する.引数により次の動作を行う.
     92 *
     93 *  TRACE_STOP:トレースを停止.
     94 *  TRACE_RINGBUF:リングバッファモードでトレースを開始.
     95 *  TRACE_AUTOSTOP:自動停止モードでトレースを開始.
     96 *  TRACE_CLEAR:トレースログをクリア.
    11397 */
    11498Inline ER
     
    119103
    120104/*
    121  *  トレースログの書込み
     105 *  トレースログの書込み
    122106 */
    123107Inline ER
     
    128112
    129113/*
    130  *  トレースログの読出し
     114 *  トレースログの読出し
    131115 */
    132116Inline ER
     
    137121
    138122/*
    139  *  トレースログを出力するためのライブラリ関数
     123 *  トレースログを出力するためのライブラリ関数
    140124 */
    141125
     
    183167                                                                                                               
    184168/*
    185  *  トレースログを出力するためのマクロ
     169 *  トレースログを出力するためのマクロ
    186170 */
    187171
     
    200184
    201185/*
    202  *  トレースログのダンプ
    203  *
    204  *  トレースログをダンプする.終了処理ルーチンとして登録することも想定
    205  *  している.引数として,ダンプå
    206 ˆã¨ãªã‚‹æ–‡å­—出力関数へのポインタを渡す.
    207  *  ターゲット依存の低レベル文字出力を利用する場合には,target_putcを渡
    208  *  す.
     186 *  トレースログのダンプ
     187 *
     188 *  トレースログをダンプする.終了処理ルーチンとして登録することも想定
     189 *  している.引数として,ダンプ先となる文字出力関数へのポインタを渡す.
     190 *  ターゲット依存の低レベル文字出力を利用する場合には,target_putcを渡
     191 *  す.
    209192 */
    210193Inline void
     
    217200
    218201/*
    219  *  トレースログ方法の設定
     202 *  トレースログ方法の設定
    220203 */
    221204#define LOG_TSKSTAT(p_tcb)              trace_2(LOG_TYPE_TSKSTAT, p_tcb, p_tcb->tstat)
Note: See TracChangeset for help on using the changeset viewer.