Ignore:
Timestamp:
Jun 10, 2015, 8:40:31 PM (9 years ago)
Author:
coas-nagasima
Message:

SHIFT_JISのコードにcharsetプロパティを付けた

Location:
uKadecot/trunk/ssp/arch
Files:
20 edited

Legend:

Unmodified
Added
Removed
  • uKadecot/trunk/ssp/arch/ccrx/tool_stddef.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *  Copyright (C) 2007-2010 by Witz Corporation, JAPAN
    1010 *
    11  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    12  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    13  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    14  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    15  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    16  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    17  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    21 ƒƒ“ƒgi—˜—p
    22  *      ŽÒƒ}ƒjƒ
    23 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    24  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    25  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     11 *  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
     12 *  によって公表されている GNU General Public License の Version 2 に記
     13 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     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プロジェクトを免責すること.
    3632 *
    37  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    38  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚à
    39  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    40  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     35 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     36 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4137 *
    4238 */
    4339
    4440/*
    45  *  t_stddef.h‚ÌŠJ”­ŠÂ‹«ˆË‘¶•”iƒ‹ƒlƒTƒX RXƒc[ƒ‹ƒ`ƒFƒCƒ“—pj
     41 *  t_stddef.hの開発環境依存部(ルネサス RXツールチェイン用)
    4642 *
    47  *  ‚±‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚́Ct_stddef.h ‚̐擪‚ŃCƒ“ƒNƒ‹[ƒh‚³‚ê‚éD
    48  *  ‘¼‚̃tƒ@ƒCƒ‹‚©‚ç‚Í’¼ÚƒCƒ“ƒNƒ‹[ƒh‚·‚邱‚Æ‚Í‚È‚¢D‘¼‚̃Cƒ“ƒNƒ‹[ƒh
    49  *  ƒtƒ@ƒCƒ‹‚ɐ旧‚Á‚ďˆ—‚³‚ê‚邽‚߁C‘¼‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚Ɉˑ¶‚µ
    50  *  ‚Ä‚Í‚È‚ç‚È‚¢D
     43 *  このインクルードファイルは,t_stddef.h の先頭でインクルードされる.
     44 *  他のファイルからは直接インクルードすることはない.他のインクルード
     45 *  ファイルに先立って処理されるため,他のインクルードファイルに依存し
     46 *  てはならない.
    5147 */
    5248
     
    5551
    5652/*
    57  *  ƒRƒ“ƒpƒCƒ‰‚ÌŠg’£‹@”\‚Ì‚½‚߂̃}ƒNƒ’è‹`
     53 *  コンパイラの拡張機能のためのマクロ定義
    5854 */
    5955/*
    60  *  inline Ž¯•ÊŽq‚ÍŠO•”’è‹`‚𐶐¬‚µ‚È‚¢.
     56 *  inline 識別子は外部定義を生成しない.
    6157 */
    6258#define Inline          static inline
    6359
    6460/*
    65  *  ƒCƒ“ƒ‰ƒCƒ“ƒAƒZƒ“ƒuƒ‰‚Í–{ƒRƒ“ƒpƒCƒ‰‚Å‚Í
    66  *  #pragma inline_asm‚݂̂̃Tƒ|[ƒg‚ƂȂ邽‚ß,
    67  *  asm/Asm’è‹`‚͍s‚í‚È‚¢.
     61 *  インラインアセンブラは本コンパイラでは
     62 *  #pragma inline_asmのみのサポートとなるため,
     63 *  asm/Asm定義は行わない.
    6864 */
    6965
    7066/*
    71  *  NoReturn / alignof‚Í–{ƒRƒ“ƒpƒCƒ‰‚ł̓Tƒ|[ƒg‚³‚ê‚È‚¢.
    72  *  offsetof‚Ístddef.h‚Ì’è‹`‚ð—˜—p‚·‚é.
     67 *  NoReturn / alignofは本コンパイラではサポートされない.
     68 *  offsetofはstddef.hの定義を利用する.
    7369 */
    7470#define NoReturn
     
    7672
    7773/*
    78  *  ŠJ”­ŠÂ‹«‚Ì•W€ƒCƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚Ì—˜—p
     74 *  開発環境の標準インクルードファイルの利用
    7975 *
    80  *  NULL‚Ì’è‹`‚ðstddef.h‚©‚çCINT_MAXCINT_MINCUINT_MAXCLONG_MAXC
    81  *  LONG_MINCULONG_MAXCCHAR_BIT‚Ì’è‹`‚ðlimits.h‚©‚çŽæ‚荞‚ށD
     76 *  NULLの定義をstddef.hから,INT_MAX,INT_MIN,UINT_MAX,LONG_MAX,
     77 *  LONG_MIN,ULONG_MAX,CHAR_BITの定義をlimits.hから取り込む.
    8278 *
    83  *  C++/EC++‚ł́C•W€Žd—lã‚Í‚±‚ê‚ç‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚ª—pˆÓ‚³‚ê‚Ä
    84  *  ‚¢‚é‚Æ‚ÍŒÀ‚ç‚È‚¢‚Ì‚Å’ˆÓ‚ª•K—v‚Å‚ ‚éi‚Ù‚Æ‚ñ‚Ç‚ÌŠJ”­ŠÂ‹«‚Å—pˆÓ‚³‚ê
    85  *  ‚Ä‚¢‚éjD
     79 *  C++/EC++では,標準仕様上はこれらのインクルードファイルが用意されて
     80 *  いるとは限らないので注意が必要である(ほとんどの開発環境で用意され
     81 *  ている).
    8682 */
    8783#ifndef TOPPERS_MACRO_ONLY
     
    9288
    9389/*
    94  *  ƒRƒ“ƒpƒCƒ‰ˆË‘¶‚̃f[ƒ^Œ^‚Ì’è‹`
     90 *  コンパイラ依存のデータ型の定義
    9591 *
    96  *  stdint.h‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚é
     92 *  stdint.hをインクルードする
    9793 */
    9894#ifndef TOPPERS_MACRO_ONLY
     
    10298
    10399/*
    104  *  •‚“®¬”“_Œ^‚ÉŠÖ‚·‚é’è‹`
     100 *  浮動小数点型に関する定義
    105101 *
    106  *  ‰º‹L‚Ì’è‹`‚Ídbl_size = 8ƒIƒvƒVƒ‡ƒ“‚ðŽw’肵‚½ê‡‚Ì‚Ý—LŒø‚Æ‚·‚邱‚Æ.
     102 *  下記の定義はdbl_size = 8オプションを指定した場合のみ有効とすること.
    107103 */
    108104#ifndef TOPPERS_MACRO_ONLY
    109 typedef float           float32_t;                      /* IEEE754€‹’‚Ì’P¸“x•‚“®¬”“_” */
    110 typedef double          double64_t;                     /* IEEE754€‹’‚Ì”{¸“x•‚“®¬”“_” */
     105typedef float           float32_t;                      /* IEEE754準拠の単精度浮動小数点数 */
     106typedef double          double64_t;                     /* IEEE754準拠の倍精度浮動小数点数 */
    111107#endif /* TOPPERS_MACRO_ONLY */
    112108
     
    118114
    119115/*
    120  *  ‹óƒ‰ƒxƒ‹‚Ì’è‹`
     116 *  空ラベルの定義
    121117 *
    122  *  –{ƒRƒ“ƒpƒCƒ‰‚Å‚Í‘å‚«‚³ƒ[ƒ‚Ì”z—ñ‚̓Rƒ“ƒpƒCƒ‹ƒGƒ‰[‚ɂȂ邽‚ß,
    123  *  ƒTƒCƒY1‚É‚Ä’è‹`‚·‚é.
     118 *  本コンパイラでは大きさゼロの配列はコンパイルエラーになるため,
     119 *  サイズ1にて定義する.
    124120 */
    125121#define TOPPERS_EMPTY_LABEL( type, symbol )             type symbol[ 1 ]
  • uKadecot/trunk/ssp/arch/rx630_ccrx/makeoffset.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    77 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    88 *
    9  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    10  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    11  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    12  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    13  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    14  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    15  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    16  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    17  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    18  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    19 ƒƒ“ƒgi—˜—p
    20  *      ŽÒƒ}ƒjƒ
    21 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    22  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    23  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    24  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    25  *      ‚ƁD
    26  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    27 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    28 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    29  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    30  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    31  *        •ñ‚·‚邱‚ƁD
    32  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    33  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    34  *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚à
    37  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    38  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
     9 *  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
     10 *  によって公表されている GNU General Public License の Version 2 に記
     11 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     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 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     33 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     34 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    3935 *
    4036 */
     
    4238
    4339/*
    44  *      offset.inc (‚à‚µ‚­‚Í offset.h) ‚ɂ‚¢‚Ä
    45  *
    46  *        offset.inc ‚͍\‘¢‘Ì‚Ì“Á’è‚Ì—v‘f‚ª\‘¢‘̂̐擪‚©‚牽ƒoƒCƒg–Ú‚É
    47  *      ‘¶Ý‚·‚é‚©‚Æ‚¢‚¤‚±‚Æ‚â, “Á’è‚̃rƒbƒgƒtƒB[ƒ‹ƒh‚ªæ“ª‚©‚ç
    48  *      ‰½ƒoƒCƒgæ‚̉½ƒrƒbƒg–Ú‚É‘¶Ý‚·‚é‚©, ‚Æ‚¢‚¤î•ñ‚ð
    49  *      ƒAƒZƒ“ƒuƒŠŒ¾Œêƒtƒ@ƒCƒ‹‚É—^‚¦‚邽‚ß‚É‘¶Ý‚µ‚Ä‚¢‚é.
    50  *
    51  *        offset.inc ƒtƒ@ƒCƒ‹‚Ì’†g‚Í, ’P‚È‚éƒVƒ“ƒ{ƒ‹’è‹`ƒtƒ@ƒCƒ‹‚Å‚ ‚é.
    52  *      ƒVƒ“ƒ{ƒ‹‚Æ‚¢‚Á‚Ä‚à’è‹`‚·‚éƒVƒ“ƒ{ƒ‹‚Ì–¼Ì‚ɂ̓pƒ^[ƒ“‚ª‚ ‚è,
    53  *      ‘å‚«‚­•ª‚¯‚ÄŽŸ‚Ì3Ží—Þ‚É•ª—Þ‚Å‚«‚é.
    54  *
    55  *      <\‘¢‘Ì–¼>_<—v‘f–¼>     (—á) TCB_sp, TCB_pc, TCB_enatex ‚È‚Ç
    56  *      <\‘¢‘Ì–¼>_<—v‘f–¼>_bit (—á) TCB_enatex_bit ‚È‚Ç
    57  *      <\‘¢‘Ì–¼>_<—v‘f–¼>_mask (—á) TCB_enatex_mask ‚È‚Ç
    58  *
    59  *      (—á)
     40 *      offset.inc (もしくは offset.h) について
     41 *
     42 *        offset.inc は構造体の特定の要素が構造体の先頭から何バイト目に
     43 *      存在するかということや, 特定のビットフィールドが先頭から
     44 *      何バイト先の何ビット目に存在するか, という情報を
     45 *      アセンブリ言語ファイルに与えるために存在している.
     46 *
     47 *        offset.inc ファイルの中身は, 単なるシンボル定義ファイルである.
     48 *      シンボルといっても定義するシンボルの名称にはパターンがあり,
     49 *      大きく分けて次の3種類に分類できる.
     50 *
     51 *      <構造体名>_<要素名>    (例) TCB_sp, TCB_pc, TCB_enatex など
     52 *      <構造体名>_<要素名>_bit        (例) TCB_enatex_bit など
     53 *      <構造体名>_<要素名>_mask (例) TCB_enatex_mask など
     54 *
     55 *      ()
    6056 *              TCB_texptn              .equ    14
    6157 *              TCB_sp                  .equ    20
     
    6561 *              TCB_enatex_mask         .equ    0040H
    6662 *
    67  *        ˆê”Ô‚Í‚¶‚ß‚Í“Á’è‚Ì—v‘f‚ª\‘¢‘̂̐擪‚©‚牽ƒoƒCƒgæ‚É‚ ‚é‚©
    68  *      ‚Æ‚¢‚¤‚±‚Æ‚ðŽ¦‚·”’l‚ɂ‚¯‚郉ƒxƒ‹‚Ì–¼Ì.
    69  *        “ñ”Ô–Ú‚Í“Á’è‚̃rƒbƒgƒtƒB[ƒ‹ƒh’†‚̃rƒbƒg‚ª, ‰ºˆÊ‚©‚琔‚¦‚Ä
    70  *      ‰½ƒrƒbƒg–Ú‚É‚ ‚é‚©‚Æ‚¢‚¤‚±‚Æ‚ðŽ¦‚·”’l‚ɂ‚¯‚郉ƒxƒ‹‚Ì–¼Ì.
    71  *      0‚©‚çŽn‚܂鐔’l‚Å•\Œ»‚·‚é. Å‚à‰ºˆÊ‚̃rƒbƒg‚Í‘æ0ƒrƒbƒg‚Å‚ ‚é.
    72  *        ŽO”Ԗڂ͐æ‚Ù‚Ç‚Ì <\‘¢‘Ì–¼>_<—v‘f–¼>_bit ‚Æ‚àŠÖ˜A‚·‚邪,
    73  *      “Á’è‚̃rƒbƒgƒtƒB[ƒ‹ƒh’†‚̃rƒbƒg‚̃}ƒXƒN’l‚Ì–¼Ì.
    74  *      _bit ‚Æ *_mask ‚Ì’l‚ÌŠÔ‚É‚ÍŽŸ‚ÌŠÖŒW‚ª‚ ‚é.
     63 *        一番はじめは特定の要素が構造体の先頭から何バイト先にあるか
     64 *      ということを示す数値につけるラベルの名称.
     65 *        二番目は特定のビットフィールド中のビットが, 下位から数えて
     66 *      何ビット目にあるかということを示す数値につけるラベルの名称.
     67 *      0から始まる数値で表現する. 最も下位のビットは第0ビットである.
     68 *        三番目は先ほどの <構造体名>_<要素名>_bit とも関連するが,
     69 *      特定のビットフィールド中のビットのマスク値の名称.
     70 *      _bit と *_mask の値の間には次の関係がある.
    7571 *              (*_mask) == (1 << *_bit)
    76  * *    (—á) TCB_enatex_bit ‚ª 6 ‚ÌŽž, TCB_enatex_mask ‚Í 40H
    77  *
    78  *        ‚¿‚È‚Ý‚ÉM32CˆË‘¶•”‚ÌŽÀ‘•‚Å‚Í, “Á’èƒrƒbƒg‚̃`ƒFƒbƒN‚È‚Ç‚É
    79  *      ƒrƒbƒg–½—߃AƒhƒŒƒbƒVƒ“ƒO‚ðŽg—p‚µ‚Ä‚¢‚é‚Ì‚Å *_mask ‚Æ‚¢‚¤ƒ‰ƒxƒ‹‚Í
    80  *      Žg—p‚µ‚Ä‚¢‚È‚¢.
     72 * *    (例) TCB_enatex_bit が 6 の時, TCB_enatex_mask は 40H
     73 *
     74 *        ちなみにM32C依存部の実装では, 特定ビットのチェックなどに
     75 *      ビット命令アドレッシングを使用しているので *_mask というラベルは
     76 *      使用していない.
    8177 */
    8278
    8379/*
    84  *      offset.inc ‚̍ì‚è•û(M32Cƒ^[ƒQƒbƒgˆË‘¶•”Œü‚¯)
    85  *
    86  *        GNU CƒRƒ“ƒpƒCƒ‰‚ð—p‚¢‚Ä‚¢‚éƒ^[ƒQƒbƒgˆË‘¶•”‚ɂ‚¢‚Ä‚Í,
    87  *      ƒJ[ƒlƒ‹‚̃gƒbƒvƒfƒBƒŒƒNƒgƒŠ‚̉º‚É‚ ‚é util ‚Æ‚¢‚¤ƒfƒBƒŒƒNƒgƒŠ‚Ì
    88  *      ‰º‚É genoffset ‚Æ‚¢‚¤ perl ƒXƒNƒŠƒvƒg‚ª—pˆÓ‚³‚ê‚Ä‚¢‚é‚Ì‚Å,
    89  *      “Á‚ÉŽè“®‚Å offset.h ‚ðì¬‚·‚é•K—v‚Í‚È‚¢.
    90  *        genoffset ‚Í GNU ŠJ”­ŠÂ‹«‚ð‘z’肵‚č쐬‚³‚ê‚Ä‚¢‚é‚Ì‚Å,
    91  *      ¶¬‚³‚ê‚éƒAƒZƒ“ƒuƒŠŒ¾Œê‹^Ž—–½—߂␶¬‹K‘¥‚̈قȂ鑼‚Ì
    92  *      CƒRƒ“ƒpƒCƒ‰‚É‚Í‚»‚Ì‚Ü‚Ü“K—p‚Å‚«‚È‚¢‰Â”\«‚ª‚ ‚é.
    93  *        ‚»‚±‚Å, ‚±‚±‚Å‚ÍWindowsŠÂ‹« Œü‚¯‚Ì genoffset ‚ð—pˆÓ‚¹‚¸,
    94  *      ì‚è•û‚ð‚±‚±‚É‹L‚µ, Žèì‹Æ‚Å offset.inc ‚ðì¬‚µ‚Ä‚à‚炤‚±‚Æ‚Æ
    95  *      ‚·‚é. ˆÈ‰º‚É‚»‚Ì•û–@‚ðŽ¦‚·. ‚È‚¨, ‚±‚Ì•û–@‚ÍM32C‚ÌŠJ”­ŠÂ‹«‚â
    96  *      –½—߃Zƒbƒg‚Ɉˑ¶‚µ‚Ä‚¢‚邽‚ß, ‘¼‚̃^[ƒQƒbƒg‚ðŽg—p‚µ‚Ä‚¢‚éê‡‚Í
    97  *      ‚»‚Ì‚Ü‚Ü“K—p‚Å‚«‚È‚¢.
    98  *
    99  *  1.  makeoffset.c ‚Æ‚¢‚¤ƒtƒ@ƒCƒ‹‚©‚çCƒRƒ“ƒpƒCƒ‰‚ðŽg—p‚µ‚Ä
    100  *      ƒAƒZƒ“ƒuƒŠŒ¾Œêƒtƒ@ƒCƒ‹ makeoffset.a30 ‚𐶐¬‚·‚é.
    101  *      ƒRƒ“ƒpƒCƒ‹ƒIƒvƒVƒ‡ƒ“‚̓J[ƒlƒ‹ƒR[ƒh‚É—^‚¦‚é‚à‚Ì‚Æ“¯‚¶
    102  *      ‚à‚Ì‚ð—^‚¦‚é.
    103  *      ƒ‹ƒlƒTƒX»ƒc[ƒ‹ TM ‚ðŽg—p‚µ‚Ä‚¢‚éê‡‚Í, ƒvƒƒWƒFƒNƒgƒGƒfƒBƒ^‚Ì
    104  *      ¶¬Žè‡ƒrƒ
    105 [‚©‚ç makeoffset.a30 ‚ð‘I‚Ñ, ‰EƒNƒŠƒbƒNƒƒjƒ
    106 [‚Ì
    107  *      ¢•”•ªƒrƒ‹ƒh£‚ð‘I‘ð‚·‚é‚±‚ƂŐ¶¬‚Å‚«‚é.
    108  *      ‚à‚µ‚­‚̓Rƒ}ƒ“ƒhƒvƒƒ“ƒvƒg‚сƒCƒNƒtƒ@ƒCƒ‹‚Æ“¯‚¶ƒfƒBƒŒƒNƒgƒŠ‚É
    109  *      ˆÚ“®‚µ, "make -f ƒƒCƒNƒtƒ@ƒCƒ‹–¼ makeoffset.a30" ‚ð
    110  *      ŽÀs‚µ‚Ä‚à“¯—l‚ÌŒ‹‰Ê‚ª“¾‚ç‚ê‚é. (ƒƒCƒNƒtƒ@ƒCƒ‹‚ÍTM‚ªŽg—p‚µ‚Ä
    111  *      ‚¢‚é‚à‚Ì‚Æ“¯‚¶ƒtƒ@ƒCƒ‹‚ðŽw’è‰Â”\)
    112  *
    113  *  2.  æ‚Ù‚Ç‚Ì 1. ‚̍ì‹Æ‚Å“¾‚ç‚ꂽ, makeoffset.a30 ƒtƒ@ƒCƒ‹‚©‚ç
    114  *      "! BEGIN XXXX"  ‚Å‚Í‚¶‚Ü‚è "! END" ‚ŏI‚í‚Á‚Ä‚¢‚é•”•ª‚ð’T‚·.
    115  *
    116  *      4‰ÓŠ‚ ‚è, ‚»‚ꂼ‚ꏭ‚µ‚¸‚ˆقȂé‚̂ŏ‡‚Éà–¾‚·‚é.
    117  *      (ˆÈ‰º, à–¾’†‚ł̓AƒZƒ“ƒuƒŠŒ¾Œêƒtƒ@ƒCƒ‹‚̃Rƒƒ“ƒgs‚͏Ȃ­)
    118  *
    119  * (1)  \‘¢‘̂̐擪‚©‚烁ƒ“ƒo‚ւ̃IƒtƒZƒbƒg
     80 *      offset.inc の作り方(M32Cターゲット依存部向け)
     81 *
     82 *        GNU Cコンパイラを用いているターゲット依存部については,
     83 *      カーネルのトップディレクトリの下にある util というディレクトリの
     84 *      下に genoffset という perl スクリプトが用意されているので,
     85 *      特に手動で offset.h を作成する必要はない.
     86 *        genoffset は GNU 開発環境を想定して作成されているので,
     87 *      生成されるアセンブリ言語疑似命令や生成規則の異なる他の
     88 *      Cコンパイラにはそのまま適用できない可能性がある.
     89 *        そこで, ここではWindows環境 向けの genoffset を用意せず,
     90 *      作り方をここに記し, 手作業で offset.inc を作成してもらうことと
     91 *      する. 以下にその方法を示す. なお, この方法はM32Cの開発環境や
     92 *      命令セットに依存しているため, 他のターゲットを使用している場合は
     93 *      そのまま適用できない.
     94 *
     95 *  1.  makeoffset.c というファイルからCコンパイラを使用して
     96 *      アセンブリ言語ファイル makeoffset.a30 を生成する.
     97 *      コンパイルオプションはカーネルコードに与えるものと同じ
     98 *      ものを与える.
     99 *      ルネサス製ツール TM を使用している場合は, プロジェクトエディタの
     100 *      生成手順ビューから makeoffset.a30 を選び, 右クリックメニューの
     101 *      「部分ビルド」を選択することで生成できる.
     102 *      もしくはコマンドプロンプトでメイクファイルと同じディレクトリに
     103 *      移動し, "make -f メイクファイル名 makeoffset.a30" を
     104 *      実行しても同様の結果が得られる. (メイクファイルはTMが使用して
     105 *      いるものと同じファイルを指定可能)
     106 *
     107 *  2.  先ほどの 1. の作業で得られた, makeoffset.a30 ファイルから
     108 *      "! BEGIN XXXX"  ではじまり "! END" で終わっている部分を探す.
     109 *
     110 *      4箇所あり, それぞれ少しずつ異なるので順に説明する.
     111 *      (以下, 説明中ではアセンブリ言語ファイルのコメント行は省く)
     112 *
     113 * (1)  構造体の先頭からメンバへのオフセット
    120114 *
    121115 *      ! BEGIN TCB_texptn
     
    123117 *      ! END
    124118 *
    125  *      ã‹L"! BEGIN"‚ÌŒã‚ë‚Ì•¶Žš—ñ‚ªoffset.inc‚Å’è‹`‚·‚éƒVƒ“ƒ{ƒ‹–¼‚Æ‚È‚é.
    126  *      ‚»‚̃Vƒ“ƒ{ƒ‹‚Ì’l‚Í, ŽŸs‚Ìbset–½—ß‚Ì‘æ2ƒIƒyƒ‰ƒ“ƒh‚Ì’l‚Å‚ ‚é
    127  *      0000000eH‚ª‚»‚ê‚É‘Š“–‚·‚é. ‚±‚ꂪ\‘¢‘̂̐擪‚©‚çtexptn‚Ü‚Å‚Ì
    128  *      ƒIƒtƒZƒbƒg’l‚Æ‚È‚é. ‚µ‚½‚ª‚Á‚Ä‚±‚̏ꍇ, offset.inc ‚É‚Í
     119 *      上記"! BEGIN"の後ろの文字列がoffset.incで定義するシンボル名となる.
     120 *      そのシンボルの値は, 次行のbset命令の第2オペランドの値である
     121 *      0000000eHがそれに相当する. これが構造体の先頭からtexptnまでの
     122 *      オフセット値となる. したがってこの場合, offset.inc には
    129123 *      TCB_texptn      .equ    14
    130  *      ‚Æ‚¢‚¤s‚ð‹Lq‚·‚é.
    131  *
    132  * (2)  \‘¢‘̂̃ƒ“ƒo‚ª\‘¢‘Ì‚Å, ‚»‚Ì’†‚̃ƒ“ƒo‚ɑ΂·‚éƒIƒtƒZƒbƒg
    133  *
    134  *      TCB_sp ‚ɂ‚¢‚Ä‚à‚Ù‚Ú“¯—l‚¾‚ª, sp ‚ÍTCB\‘¢‘Ì‚Ì’¼Ú‚Ì
    135  *      ƒƒ“ƒo‚Å‚È‚­TCB\‘¢‘̂̃ƒ“ƒo‚Å‚ ‚éTSKCTXB\‘¢‘̂̃ƒ“ƒo‚Å
    136  *      ‚ ‚é“_‚ªˆÙ‚È‚é. ‚»‚ê‚Å‚à’è‹`‚·‚éƒVƒ“ƒ{ƒ‹–¼‚Æ‚µ‚Ä‚Í
    137  *      TCB_sp ‚̂悤‚É•\Œ»‚·‚é. ƒAƒZƒ“ƒuƒŠŒ¾Œêƒtƒ@ƒCƒ‹‚Å‚Í
     124 *      という行を記述する.
     125 *
     126 * (2)  構造体のメンバが構造体で, その中のメンバに対するオフセット
     127 *
     128 *      TCB_sp についてもほぼ同様だが, sp はTCB構造体の直接の
     129 *      メンバでなくTCB構造体のメンバであるTSKCTXB構造体のメンバで
     130 *      ある点が異なる. それでも定義するシンボル名としては
     131 *      TCB_sp のように表現する. アセンブリ言語ファイルでは
    138132 *
    139133 *      ! BEGIN TCB_sp
     
    145139 *      ! END *
    146140 *
    147  *      ‚̂悤‚É‚È‚è,14H(=20) ‚ª‹‚ß‚é’l‚È‚Ì‚Åoffset.inc ‚É‚ÍŽŸ‚̂悤‚É
    148  *      ‹Lq‚·‚é.
     141 *      のようになり,14H(=20) が求める値なのでoffset.inc には次のように
     142 *      記述する.
    149143 *
    150144 *      TCB_sp  .equ    20
    151145 *
    152  * (3)  ƒƒ“ƒo‚ªŠÖ”‚ւ̃|ƒCƒ“ƒ^‚Å‚ ‚Á‚½ê‡
    153  *
    154  *      ŽŸ‚Í TCB_pc ‚̏ꍇ.
     146 * (3)  メンバが関数へのポインタであった場合
     147 *
     148 *      次は TCB_pc の場合.
    155149 *
    156150 *      ! BEGIN TCB_pc
     
    159153 *      ! END
    160154 *
    161  *      pc ‚à sp ‚Æ“¯‚¶‚­, TCB\‘¢‘Ì‚Ì’¼Ú‚̃ƒ“ƒo‚Å‚Í‚È‚¢‚ª
    162  *      TCB_pc ‚Æ•\Œ»‚µ‚Ä‚¢‚é. ‚±‚ê‚͊֐”‚̃AƒhƒŒƒX‚ðŠi”[‚·‚é•Ï”‚È‚Ì‚Å,
     155 *      pc も sp と同じく, TCB構造体の直接のメンバではないが
     156 *      TCB_pc と表現している. これは関数のアドレスを格納する変数なので,
    163157 *      (((TCB *)0)->tskctxb.pc)();
    164  *      ‚Æ‚µ‚Ċ֐”ŒÄ‚яo‚µ‚̂悤‚É‹Lq‚·‚é‚Əã‹L‚̂悤‚ȃAƒZƒ“ƒuƒŠŒ¾Œê
    165  *      ƒR[ƒh‚ðo—Í‚·‚é. ƒVƒ“ƒ{ƒ‹’è‹`‚·‚éÛ‚̃Vƒ“ƒ{ƒ‹–¼‚͍¡‚Ü‚Å‚Æ
    166  *      “¯‚¶‚­, TCB_pc ‚Æ‚·‚é.
    167  *      ‹‚ß‚é’l‚͍\‘¢‘Ì‚©‚çŠÖ”ƒ|ƒCƒ“ƒ^‚܂ł̃IƒtƒZƒbƒg‚Å‚ ‚è, ã‚Ìmov.l
    168  *      –½—ß‚ÌŒ‹‰Ê‚©‚ç  00000018H(=24) ‚Æ‚È‚é.
    169  *      ‚µ‚½‚ª‚Á‚Ä, offset.inc ‚É‚ÍŽŸ‚̂悤‚É‹Lq‚·‚é.
     158 *      として関数呼び出しのように記述すると上記のようなアセンブリ言語
     159 *      コードを出力する. シンボル定義する際のシンボル名は今までと
     160 *      同じく, TCB_pc とする.
     161 *      求める値は構造体から関数ポインタまでのオフセットであり, 上のmov.l
     162 *      命令の結果から         00000018H(=24) となる.
     163 *      したがって, offset.inc には次のように記述する.
    170164 *
    171165 *      TCB_pc  .equ    24
    172166 *
    173  * (4)  \‘¢‘̂̃ƒ“ƒo‚ªƒrƒbƒgƒtƒB[ƒ‹ƒh‚Å‚»‚̃rƒbƒgˆÊ’u‚à’m‚肽‚¢ê‡
     167 * (4)  構造体のメンバがビットフィールドでそのビット位置も知りたい場合
    174168 *
    175169 *      ! BEGIN TCB_enatex
     
    177171 *      ! END
    178172 *
    179  *      ¡‚Ü‚Å‚Æ“¯—l, BEGIN ‚ÌŒã‚Ì•¶Žš—ñ‚ðƒVƒ“ƒ{ƒ‹–¼‚Æ‚·‚é.
    180  *      ‚±‚±‚Å‚ÌTCB_enatex‚Ì’l‚͍\‘¢‘̂̐擪‚©‚çƒrƒbƒgƒtƒB[ƒ‹ƒh‚ðŠÜ‚Þƒo
    181  *      ƒCƒg‚܂ł̃IƒtƒZƒbƒg‚Å, M32C‚̃rƒbƒg–½—߃AƒhƒŒƒbƒVƒ“ƒO‚ÍŽw’è‚Å‚«
    182  *      ‚éƒrƒbƒgˆÊ’u‚ª0‚©‚ç7‚ÌŠÔ‚ÉŽû‚Ü‚é‚悤‚ɃAƒNƒZƒX‚·‚éƒAƒhƒŒƒX‚É“K“–
    183  *      ”‚ª‰Á‚¦‚ç‚ê‚é‚Ì‚Å cH+1(=13) ‚Æ‚È‚Á‚Ä‚¢‚é. ‚Ü‚½, ƒrƒbƒgƒtƒB[ƒ‹ƒh
    184  *      ’†‚̍ʼnºˆÊƒrƒbƒg‚©‚ç‚̃rƒbƒgˆÊ’u‚Í 6‚Æ‚È‚é.
    185  *      ˆÈã‚æ‚莟‚̂悤‚ɏ‘‚­‚±‚Æ‚ª‚Å‚«‚é.
     173 *      今までと同様, BEGIN の後の文字列をシンボル名とする.
     174 *      ここでのTCB_enatexの値は構造体の先頭からビットフィールドを含むバ
     175 *      イトまでのオフセットで, M32Cのビット命令アドレッシングは指定でき
     176 *      るビット位置が0から7の間に収まるようにアクセスするアドレスに適当
     177 *      数が加えられるので cH+1(=13) となっている. また, ビットフィールド
     178 *      中の最下位ビットからのビット位置は 6となる.
     179 *      以上より次のように書くことができる.
    186180 *
    187181 *              TCB_enatex      .equ    13
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66$  Copyright (C) 2013      by Mitsuhiro Matsuura
    77$
    8 $  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    9 $  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    10 $  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    11 $  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    12 $      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13 $      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14 $  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15 $      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    16 ƒƒ“ƒgi—˜—p
    17 $      ŽÒƒ}ƒjƒ
    18 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    19 $      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    20 $  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    21 $      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22 $      ‚ƁD
    23 $    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    24 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    25 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    26 $        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    27 $    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    28 $        •ñ‚·‚邱‚ƁD
    29 $  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30 $      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31 $      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32 $      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33 $      –Ɛӂ·‚邱‚ƁD
    34 $
    35 $  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36 $  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37 $  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38 $  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39 $  ‚̐ӔC‚𕉂í‚È‚¢D
    40 $
    41 $
    42 
    43 $
    44 $  ƒA[ƒLƒeƒNƒ`ƒƒˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiRX630—pj
    45 $
    46 
    47 
    48 
    49 $
    50 $  ATT_ISR‚ÅŽg—p‚Å‚«‚銄ž‚ݔԍ†‚Æ‚»‚ê‚ɑΉž‚·‚銄ž‚݃nƒ“ƒhƒ‰”ԍ†
     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$      免責すること.
     30$
     31$  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32$  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33$  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34$  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35$  の責任を負わない.
     36$
     37$
     38
     39$
     40$  アーキテクチャ依存テンプレート(RX630用)
     41$
     42
     43
     44
     45$
     46$  ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号
    5147$
    5248
     
    5652
    5753$
    58 $  DEF_INT^DEF_EXC‚ÅŽg—p‚Å‚«‚銄ž‚݃nƒ“ƒhƒ‰”ԍ†^CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†
     54$  DEF_INT/DEF_EXCで使用できる割込みハンドラ番号/CPU例外ハンドラ番号
    5955$
    6056
     
    6460
    6561$
    66 $  CFG_INT‚ÅŽg—p‚Å‚«‚銄ž‚ݔԍ†‚ÆŠ„ž‚Ý—Dæ“x
     62$  CFG_INTで使用できる割込み番号と割込み優先度
    6763$
    6864
     
    7268
    7369$
    74 ƒ^[ƒQƒbƒg”ñˆË‘¶•”‚ÉŠÜ‚Ü‚ê‚é•W€‚ÌŠ„ž‚ÝŠÇ—‹@”\/—áŠOŠÇ—‹@”\‚̏‰Šú‰»ˆ—‚ðŽg—p‚·‚é
     70ターゲット非依存部に含まれる標準の割込み管理機能/例外管理機能の初期化処理を使用する
    7571$
    7672
     
    8076
    8177$
    82 ƒXƒ^ƒbƒNƒTƒCƒY‚̃`ƒFƒbƒN•û–@Žw’è
     78スタックサイズのチェック方法指定
    8379$
    8480
     
    8783
    8884$
    89 ƒ^ƒXƒNƒXƒ^ƒbƒNƒTƒCƒY‚̍ŏ¬’l
    90 $
    91 ƒ^ƒXƒN‹N“®Žž‚É4byte,
    92 Š„ž‚Ý“üŒûˆ—‚É‚Ä48byte, CPU—áŠO“üŒûˆ—‚É‚Ä84byte,
    93 ‚Å‚ ‚邽‚ß, Å¬’l‚Í88byte‚Æ‚·‚é.
     85タスクスタックサイズの最小値
     86$
     87タスク起動時に4byte,
     88割込み入口処理にて48byte, CPU例外入口処理にて84byte,
     89であるため, 最小値は88byteとする.
    9490$
    9591
     
    9894
    9995$
    100 ’萔’è‹`
     96定数定義
    10197$
    10298
     
    105101
    106102$
    107 $ ƒ^[ƒQƒbƒgˆË‘¶‚ÌŠ„ž‚Ý‘®«‚Ì’è‹`
     103$ ターゲット依存の割込み属性の定義
    108104$
    109105
     
    112108
    113109$
    114 $ ƒ^[ƒQƒbƒgˆË‘¶‚ÌŠ„ž‚݃nƒ“ƒhƒ‰‘®«‚Ì’è‹`
     110$ ターゲット依存の割込みハンドラ属性の定義
    115111$
    116112
     
    119115
    120116$
    121 $ ƒJ[ƒlƒ‹ŠÇ—ŠOŠ„ž‚݃nƒ“ƒhƒ‰‚͌Œ肳‚¹‚È‚¢‚½‚ß,
     117$ カーネル管理外割込みハンドラは固定させないため,
    122118$ INTNO_FIX_KERNEL
    123119$ INHNO_FIX_KERNEL
    124120$ INHNO_FIX_NONKERNEL
    125121$ INHNO_FIX_NONKERNEL
    126 $ ‚ð’è‹`‚µ‚È‚¢.
    127 $
    128 
    129 
    130 $
    131 •W€ƒeƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚̃Cƒ“ƒNƒ‹[ƒh
     122$ を定義しない.
     123$
     124
     125
     126$
     127標準テンプレートファイルのインクルード
    132128$
    133129$INCLUDE "kernel.tf"$
     
    136132
    137133$
    138 $  CFG_INT‚̃^[ƒQƒbƒgˆË‘¶‚̃Gƒ‰[ƒ`ƒFƒbƒN
     134$  CFG_INTのターゲット依存のエラーチェック
    139135$
    140136
    141137$FOREACH intno INT.ORDER_LIST$
    142 $ IRQŠ„ž‚ݔԍ†‚©‚Ç‚¤‚©‚ðƒ`ƒFƒbƒN
     138$ IRQ割込み番号かどうかをチェック
    143139        $IF ( LENGTH( FIND( INTNO_INT, INT.INTNO[intno] ) ) != 0 )$
    144140
    145 $   TA_POSEDGE‚ÆTA_NEGEDGE‚ª“¯Žž‚ɐݒ肳‚ê‚Ä‚¢‚éê‡
     141$   TA_POSEDGEとTA_NEGEDGEが同時に設定されている場合
    146142                $IF ((INT.INTATR[intno] & ( TA_POSEDGE | TA_NEGEDGE )) == ( TA_POSEDGE | TA_NEGEDGE ))$
    147143                        $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$
    148144                $END$
    149145
    150 $   TA_POSEDGE‚ÆTA_BOTHEDGE‚ª“¯Žž‚ɐݒ肳‚ê‚Ä‚¢‚éê‡
     146$   TA_POSEDGEとTA_BOTHEDGEが同時に設定されている場合
    151147                $IF ((INT.INTATR[intno] & ( TA_POSEDGE | TA_BOTHEDGE )) == ( TA_POSEDGE | TA_BOTHEDGE ))$
    152148                        $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$
    153149                $END$
    154150
    155 $   TA_NEGEDGE‚ÆTA_BOTHEDGE‚ª“¯Žž‚ɐݒ肳‚ê‚Ä‚¢‚éê‡
     151$   TA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
    156152                $IF ((INT.INTATR[intno] & ( TA_NEGEDGE | TA_BOTHEDGE )) == ( TA_NEGEDGE | TA_BOTHEDGE ))$
    157153                        $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$
    158154                $END$
    159155
    160 $   TA_POSEDGE‚ÆTA_NEGEDGE‚ÆTA_BOTHEDGE‚ª“¯Žž‚ɐݒ肳‚ê‚Ä‚¢‚éê‡
     156$   TA_POSEDGEとTA_NEGEDGEとTA_BOTHEDGEが同時に設定されている場合
    161157                $IF ((INT.INTATR[intno] & ( TA_POSEDGE | TA_NEGEDGE | TA_BOTHEDGE )) == ( TA_POSEDGE | TA_NEGEDGE | TA_BOTHEDGE ))$
    162158                        $ERROR$ INT.TEXT_LINE[intno]:$FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$
     
    165161        $ELSE$
    166162
    167 $   IRQŠ„ž‚݈ȊO‚ÌŠ„ž‚݂ɑ΂µ‚ÄŠ„ž‚Ý‘®«‚ªŽw’肳‚ê‚Ä‚¢‚éê‡
     163$   IRQ割込み以外の割込みに対して割込み属性が指定されている場合
    168164                $IF (INT.INTATR[intno] & (~( TA_ENAINT | TA_EDGE ))) != 0$
    169165                        $ERROR$ INT.TEXT_LINE[intno]: $FORMAT(_("illegal %1% `%2%\' of `%3%\' in %4%"), "intatr", INT.INTATR[intno], INT.INTNO[intno], "CFG_INT")$$END$
     
    177173
    178174$
    179 $ Š„ž‚ݔԍ†‚©‚犄ž‚Ý—Dæ“x‹y‚Ñ‘®«‚ðŽæ‚èo‚·ƒe[ƒuƒ‹
     175$ 割込み番号から割込み優先度及び属性を取り出すテーブル
    180176$
    181177
     
    185181const CFG_INT_INFO _kernel_cfg_int_table[$LENGTH(INTNO_RANGE)$] = {$NL$
    186182$FOREACH intno INTNO_RANGE$
    187 $ Š„ž‚Ý—Dæ“x‚ðŽæ“¾
     183$ 割込み優先度を取得
    188184        $IF LENGTH(INT.INTNO[intno])$
    189185                $intpri = -INT.INTPRI[intno]$
     
    194190        $END$
    195191
    196 $ ƒe[ƒuƒ‹‚Ì’†g‚ðo—Í
     192$ テーブルの中身を出力
    197193        $TAB$$FORMAT("{ %2d, %08x }, /* %02u */", intpri, intatr, +intno)$$NL$
    198194$END$
     
    201197
    202198$
    203 ƒAƒZƒ“ƒuƒ‰o—̓tƒ@ƒCƒ‹
     199アセンブラ出力ファイル
    204200$
    205201
     
    207203
    208204;$NL$
    209 ;  RX630ƒA[ƒLƒeƒNƒ`ƒƒˆË‘¶o—̓tƒ@ƒCƒ‹$NL$
    210 ;$NL$
    211 Š„ž‚݃xƒNƒ^‹y‚ÑŠ„ž‚݃nƒ“ƒhƒ‰’è‹`$NL$
     205;  RX630アーキテクチャ依存出力ファイル$NL$
     206;$NL$
     207割込みベクタ及び割込みハンドラ定義$NL$
    212208;$NL$
    213209$NL$$NL$
     
    215211
    216212$
    217 Š„ž‚Ý“üŒûˆ—
    218 $
    219 
    220 $
    221 ‹¤’ʊ֐”‚̐錾
     213割込み入口処理
     214$
     215
     216$
     217共通関数の宣言
    222218$
    223219
     
    229225
    230226$
    231 Š„ž‚݃nƒ“ƒhƒ‰‚̏o—Í
     227割込みハンドラの出力
    232228$
    233229
     
    238234                        $TAB$.glb       __kernel_$INH.INTHDR[inhno]$_$+INH.INHNO[inhno]$_entry$NL$
    239235                        __kernel_$INH.INTHDR[inhno]$_$+INH.INHNO[inhno]$_entry:$NL$
    240                         $TAB$pushm      r1-r5                                           ; ƒXƒNƒ‰ƒbƒ`ƒŒƒWƒXƒ^‚ðƒ^ƒXƒNƒXƒ^ƒbƒN‚Ö‘Þ”ð $NL$
    241                         $TAB$mov.l      #$+INH.INHNO[inhno]$, r1        ; Š„ž‚݃nƒ“ƒhƒ‰”ԍ†‚ðr1‚Ö $NL$
    242                         $TAB$mov.l      #_$INH.INTHDR[inhno]$, r2       ; ƒnƒ“ƒhƒ‰‚̃AƒhƒŒƒX‚ðr2‚Ö $NL$
    243                         $TAB$bra.a      _kernel_interrupt                       ; ‹¤’ʃ‹[ƒ`ƒ“‚Ö $NL$$NL$$NL$
    244                 $END$
    245         $END$
    246 $END$
    247 
    248 
    249 $ –¢“o˜^Š„ž‚݃nƒ“ƒhƒ‰“üŒûˆ—
     236                        $TAB$pushm      r1-r5                                           ; スクラッチレジスタをタスクスタックへ退避 $NL$
     237                        $TAB$mov.l      #$+INH.INHNO[inhno]$, r1        ; 割込みハンドラ番号をr1へ $NL$
     238                        $TAB$mov.l      #_$INH.INTHDR[inhno]$, r2       ; ハンドラのアドレスをr2へ $NL$
     239                        $TAB$bra.a      _kernel_interrupt                       ; 共通ルーチンへ $NL$$NL$$NL$
     240                $END$
     241        $END$
     242$END$
     243
     244
     245$ 未登録割込みハンドラ入口処理
    250246$TAB$.glb$TAB$__kernel_default_int_handler_entry$NL$
    251247__kernel_default_int_handler_entry:$NL$
    252 $TAB$pushm      r1-r5                                                           ; ƒXƒNƒ‰ƒbƒ`ƒŒƒWƒXƒ^‚ðƒ^ƒXƒNƒXƒ^ƒbƒN‚Ö‘Þ”ð $NL$
    253 $TAB$mov.l      #0FFFFFFFFH, r1                                         ; Š„ž‚݃nƒ“ƒhƒ‰”ԍ†‚ðr1‚Ö $NL$
    254 $TAB$mov.l      #__kernel_default_int_handler, r2       ; ƒnƒ“ƒhƒ‰‚̃AƒhƒŒƒX‚ðr2‚Ö $NL$
    255 $TAB$bra.a      _kernel_interrupt                                       ; ‹¤’ʃ‹[ƒ`ƒ“‚Ö $NL$$NL$$NL$
    256 
    257 
    258 $
    259 $  CPU—áŠOƒnƒ“ƒhƒ‰“üŒûˆ—
     248$TAB$pushm      r1-r5                                                           ; スクラッチレジスタをタスクスタックへ退避 $NL$
     249$TAB$mov.l      #0FFFFFFFFH, r1                                         ; 割込みハンドラ番号をr1へ $NL$
     250$TAB$mov.l      #__kernel_default_int_handler, r2       ; ハンドラのアドレスをr2へ $NL$
     251$TAB$bra.a      _kernel_interrupt                                       ; 共通ルーチンへ $NL$$NL$$NL$
     252
     253
     254$
     255$  CPU例外ハンドラ入口処理
    260256$
    261257
     
    267263                $TAB$.glb       __kernel_$EXC.EXCHDR[excno]$_$+EXC.EXCNO[excno]$_entry$NL$
    268264                __kernel_$EXC.EXCHDR[excno]$_$+EXC.EXCNO[excno]$_entry:$NL$
    269                 $TAB$pushm      r1-r5                                           ; ƒXƒNƒ‰ƒbƒ`ƒŒƒWƒXƒ^‚ðƒ^ƒXƒNƒXƒ^ƒbƒN‚Ö‘Þ”ð $NL$
    270                 $TAB$mov.l      #$+EXC.EXCNO[excno]$, r1        ; CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†‚ðr1‚Ö $NL$
    271                 $TAB$mov.l      #_$EXC.EXCHDR[excno]$, r2       ; ƒnƒ“ƒhƒ‰‚̃AƒhƒŒƒX‚ðr2‚Ö $NL$
    272                 $TAB$bra.a      _kernel_exception                       ; ‹¤’ʃ‹[ƒ`ƒ“‚Ö $NL$$NL$$NL$
    273         $END$
    274 $END$
    275 
    276 
    277 $ –¢“o˜^CPU—áŠOƒnƒ“ƒhƒ‰“üŒûˆ—
     265                $TAB$pushm      r1-r5                                           ; スクラッチレジスタをタスクスタックへ退避 $NL$
     266                $TAB$mov.l      #$+EXC.EXCNO[excno]$, r1        ; CPU例外ハンドラ番号をr1へ $NL$
     267                $TAB$mov.l      #_$EXC.EXCHDR[excno]$, r2       ; ハンドラのアドレスをr2へ $NL$
     268                $TAB$bra.a      _kernel_exception                       ; 共通ルーチンへ $NL$$NL$$NL$
     269        $END$
     270$END$
     271
     272
     273$ 未登録CPU例外ハンドラ入口処理
    278274$TAB$.glb$TAB$__kernel_default_exc_handler_entry$NL$
    279275__kernel_default_exc_handler_entry:$NL$
    280 $TAB$pushm      r1-r5                                                           ; ƒXƒNƒ‰ƒbƒ`ƒŒƒWƒXƒ^‚ðƒ^ƒXƒNƒXƒ^ƒbƒN‚Ö‘Þ”ð $NL$
    281 $TAB$mov.l      #0FFFFFFFFH, r1                                         ; CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†‚ðr1‚Ö $NL$
    282 $TAB$mov.l      #__kernel_default_exc_handler, r2       ; ƒnƒ“ƒhƒ‰‚̃AƒhƒŒƒX‚ðr2‚Ö $NL$
    283 $TAB$bra.a      _kernel_exception                                       ; ‹¤’ʃ‹[ƒ`ƒ“‚Ö $NL$$NL$$NL$
    284 
    285 
    286 $
    287 ‰Â•ÏƒxƒNƒ^ƒe[ƒuƒ‹
    288 $
    289 
    290 ;$NL$
    291 ‰Â•ÏƒxƒNƒ^ƒe[ƒuƒ‹$NL$
     276$TAB$pushm      r1-r5                                                           ; スクラッチレジスタをタスクスタックへ退避 $NL$
     277$TAB$mov.l      #0FFFFFFFFH, r1                                         ; CPU例外ハンドラ番号をr1へ $NL$
     278$TAB$mov.l      #__kernel_default_exc_handler, r2       ; ハンドラのアドレスをr2へ $NL$
     279$TAB$bra.a      _kernel_exception                                       ; 共通ルーチンへ $NL$$NL$$NL$
     280
     281
     282$
     283可変ベクタテーブル
     284$
     285
     286;$NL$
     287可変ベクタテーブル$NL$
    292288;$NL$
    293289$NL$
     
    320316
    321317$
    322 ŒÅ’èƒxƒNƒ^ƒe[ƒuƒ‹
     318固定ベクタテーブル
    323319$
    324320$FOREACH excno EXCNO_RANGE$
     
    332328$NL$
    333329;$NL$
    334 ŒÅ’èƒxƒNƒ^ƒe[ƒuƒ‹$NL$
     330固定ベクタテーブル$NL$
    335331;$NL$
    336332$NL$
     
    341337
    342338$TAB$ .offset$TAB$ 020H$NL$
    343 $TAB$ .lword$TAB$ 00000000 $TAB$ ; §ŒäƒR[ƒh, IDƒR[ƒh1 - 3$NL$
    344 $TAB$ .lword$TAB$ 00000000 $TAB$ ; IDƒR[ƒh4 - 7$NL$
    345 $TAB$ .lword$TAB$ 00000000 $TAB$ ; IDƒR[ƒh8 - 11$NL$
    346 $TAB$ .lword$TAB$ 00000000 $TAB$ ; IDƒR[ƒh12 - 15$NL$$NL$
     339$TAB$ .lword$TAB$ 00000000 $TAB$ ; 制御コード, IDコード1 - 3$NL$
     340$TAB$ .lword$TAB$ 00000000 $TAB$ ; IDコード4 - 7$NL$
     341$TAB$ .lword$TAB$ 00000000 $TAB$ ; IDコード8 - 11$NL$
     342$TAB$ .lword$TAB$ 00000000 $TAB$ ; IDコード12 - 15$NL$$NL$
    347343
    348344$TAB$ .offset$TAB$ 050H$NL$
    349 $TAB$ .lword$TAB$ _$EXCHDR[20]$ $TAB$ $TAB$ ;$SPC$ 20:“ÁŒ –½—ß—áŠO $SPC$$NL$
     345$TAB$ .lword$TAB$ _$EXCHDR[20]$ $TAB$ $TAB$ ;$SPC$ 20:特権命令例外 $SPC$$NL$
    350346$TAB$ .offset$TAB$ 05CH$NL$
    351 $TAB$ .lword$TAB$ _$EXCHDR[23]$ $TAB$ $TAB$ ;$SPC$ 23:–¢’è‹`–½—ß—áŠO $SPC$$NL$
     347$TAB$ .lword$TAB$ _$EXCHDR[23]$ $TAB$ $TAB$ ;$SPC$ 23:未定義命令例外 $SPC$$NL$
    352348$TAB$ .offset$TAB$ 064H$NL$
    353 $TAB$ .lword$TAB$ _$EXCHDR[25]$ $TAB$ $TAB$ ;$SPC$ 25:•‚“®¬”“_—áŠO $SPC$$NL$
     349$TAB$ .lword$TAB$ _$EXCHDR[25]$ $TAB$ $TAB$ ;$SPC$ 25:浮動小数点例外 $SPC$$NL$
    354350$TAB$ .offset$TAB$ 078H$NL$
    355 $TAB$ .lword$TAB$ _$EXCHDR[30]$ $TAB$ $TAB$ ;$SPC$ 30:ƒmƒ“ƒ}ƒXƒJƒuƒ‹—áŠO $SPC$$NL$
    356 $TAB$ .lword$TAB$ _start $TAB$ $TAB$ $TAB$ $TAB$ ;$SPC$ 31:ƒŠƒZƒbƒg $SPC$$NL$
     351$TAB$ .lword$TAB$ _$EXCHDR[30]$ $TAB$ $TAB$ ;$SPC$ 30:ノンマスカブル例外 $SPC$$NL$
     352$TAB$ .lword$TAB$ _start $TAB$ $TAB$ $TAB$ $TAB$ ;$SPC$ 31:リセット $SPC$$NL$
    357353
    358354$NL$ $NL$
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_asm_config.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    11$
    2 $     asm_config.inc ¶¬—p
    3 $     ƒpƒX2‚̃A[ƒLƒeƒNƒ`ƒƒˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiRX630—pj
     2$     asm_config.inc 生成用
     3$     パス2のアーキテクチャ依存テンプレート(RX630用)
    44$
    55
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_cfg1_out.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    11/*
    2  *              cfg1_out.c‚̃Šƒ“ƒN‚É•K—v‚ȃXƒ^ƒu‚Ì’è‹`
     2 *              cfg1_out.cのリンクに必要なスタブの定義
    33 */
    44
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_check.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55$  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    66$
    7 $  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    8 $  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    9 $  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    10 $  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    11 $      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12 $      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13 $  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14 $      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    15 ƒƒ“ƒgi—˜—p
    16 $      ŽÒƒ}ƒjƒ
    17 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    18 $      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    19 $  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20 $      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21 $      ‚ƁD
    22 $    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    23 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    24 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    25 $        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    26 $    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    27 $        •ñ‚·‚邱‚ƁD
    28 $  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29 $      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30 $      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31 $      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32 $      –Ɛӂ·‚邱‚ƁD
     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$      免責すること.
    3329$
    34 –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    35 ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    36 ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    37 ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38 ‚̐ӔC‚𕉂í‚È‚¢D
     30本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34の責任を負わない.
    3935$
    4036
    4137$
    42 $               ƒpƒX3‚̃vƒƒZƒbƒTˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiRX630—pj
     38$               パス3のプロセッサ依存テンプレート(RX630用)
    4339$
    4440
    4541$
    46 ƒ`ƒFƒbƒN•û–@‚ÌŽw’è
     42チェック方法の指定
    4743$
    4844$CHECK_FUNC_ALIGN = 1$
     
    5450
    5551$
    56 •W€ƒeƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚̃Cƒ“ƒNƒ‹[ƒh
     52標準テンプレートファイルのインクルード
    5753$
    5854$INCLUDE "kernel/kernel_check.tf"$
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_config.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    1010 *
    11  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    12  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    13  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    14  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    15  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    16  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    17  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    21 ƒƒ“ƒgi—˜—p
    22  *      ŽÒƒ}ƒjƒ
    23 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    24  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    25  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    36  *
    37  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    38  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚à
    39  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    40  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
    41  *
    42  */
    43 
    44 /*
    45  *              ƒvƒƒZƒbƒTˆË‘¶ƒ‚ƒWƒ
    46 [ƒ‹iRX630—pj
     11 *  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
     12 *  によって公表されている GNU General Public License の Version 2 に記
     13 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     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 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     35 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     36 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     37 *
     38 */
     39
     40/*
     41 *              プロセッサ依存モジュール(RX630用)
    4742 */
    4843
     
    5247
    5348/*
    54  *  Š„ž‚Ý”­¶‰ñ”‚ð•Û‘¶‚·‚é•Ï”
     49 *  割込み発生回数を保存する変数
    5550 */
    5651uint16_t        intnest;
    5752
    5853/*
    59  *  CPUƒƒbƒNƒtƒ‰ƒOŽÀŒ»‚Ì‚½‚߂̕ϐ”
     54 *  CPUロックフラグ実現のための変数
    6055 */
    6156#if TIPM_LOCK != -15
    62 bool_t          lock_flag;              /* CPUƒƒbƒNƒtƒ‰ƒO‚Ì’l‚ð•ÛŽ‚·‚é•Ï” */
    63 uint32_t        saved_ipl;              /* Š„ž‚Ý—Dæ“xƒŒƒxƒ‹‚ð•Û‘¶‚·‚é•Ï” */
     57bool_t          lock_flag;              /* CPUロックフラグの値を保持する変数 */
     58uint32_t        saved_ipl;              /* 割込み優先度レベルを保存する変数 */
    6459#endif  /* TIPM_LOCK != -15     */
    6560
    6661
    6762/*
    68  *  ƒvƒƒZƒbƒTˆË‘¶‚̏‰Šú‰»
     63 *  プロセッサ依存の初期化
    6964 */
    7065void
     
    7267{
    7368        /*
    74          *  Š„ž‚Ý”­¶‰ñ”‚̏‰Šú‰»
    75          *
    76          *  ƒXƒ^[ƒgƒAƒbƒv‚Í‘SŠ„ž‚݃ƒbƒNó‘Ô & ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg
    77          *  ‚É‚Ä“®ì‚·‚邽‚ß, ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚É‹U‘•‚·‚é.
     69         *  割込み発生回数の初期化
     70         *
     71         *  スタートアップは全割込みロック状態 & 非タスクコンテキスト
     72         *  にて動作するため, 非タスクコンテキストに偽装する.
    7873         */
    7974        intnest = 1U;
     
    8176#if TIPM_LOCK != -15
    8277        /*
    83          *  CPUƒƒbƒNƒtƒ‰ƒOŽÀŒ»‚Ì‚½‚߂̕ϐ”‚̏‰Šú‰»
     78         *  CPUロックフラグ実現のための変数の初期化
    8479         */
    8580        lock_flag = true;
     
    9085
    9186/*
    92  *  ƒvƒƒZƒbƒTˆË‘¶‚̏I—¹ˆ—
     87 *  プロセッサ依存の終了処理
    9388 */
    9489void
     
    9691{
    9792        /*
    98          *  “Á‚É•K—v‚ȏˆ—‚Í‚È‚¢
    99          */
    100 }
    101 
    102 
    103 /*
    104  *  CPU—áŠO‚Ì”­¶ó‹µ‚̃ƒOo—Í
     93         *  特に必要な処理はない
     94         */
     95}
     96
     97
     98/*
     99 *  CPU例外の発生状況のログ出力
    105100 *
    106  *  CPU—áŠOƒnƒ“ƒhƒ‰‚Ì’†‚©‚çCCPU—áŠOî•ñƒ|ƒCƒ“ƒ^ip_excinfj‚ðˆø”‚Æ‚µ
    107  *  ‚ČĂяo‚·‚±‚ƂŁCCPU—áŠO‚Ì”­¶ó‹µ‚ðƒVƒXƒeƒ€ƒƒO‚ɏo—Í‚·‚éD
     101 *  CPU例外ハンドラの中から,CPU例外情報ポインタ(p_excinf)を引数とし
     102 *  て呼び出すことで,CPU例外の発生状況をシステムログに出力する.
    108103 */
    109104#ifdef SUPPORT_XLOG_SYS
     
    136131
    137132/*
    138  *  Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚Ì‘®«‚̐ݒè
     133 *  割込み要求ラインの属性の設定
    139134 *
    140  *  ASPƒJ[ƒlƒ‹‚Å‚Ì—˜—p‚ð‘z’肵‚āCƒpƒ‰ƒ[ƒ^ƒGƒ‰[‚̓AƒT[ƒVƒ‡ƒ“‚Ń`ƒFƒb
    141  *  ƒN‚µ‚Ä‚¢‚éDcfg_intƒT[ƒrƒXƒR[ƒ‹‚ðÝ‚¯‚éê‡‚ɂ́CƒGƒ‰[‚ð•Ô‚·‚悤
    142  *  ‚É‚·‚ׂ«‚Å‚ ‚낤D
     135 *  ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ
     136 *  クしている.cfg_intサービスコールを設ける場合には,エラーを返すよう
     137 *  にすべきであろう.
    143138 */
    144139void
     
    161156
    162157        /*
    163          *  Š„ž‚݂̃}ƒXƒN
    164          *
    165          *  Š„ž‚Ý‚ðŽó‚¯•t‚¯‚½‚܂܁CƒŒƒxƒ‹ƒgƒŠƒK^ƒGƒbƒWƒgƒŠƒK‚̐ݒè‚âCŠ„
    166          *  ž‚Ý—Dæ“x‚̐ݒè‚ðs‚¤‚̂͊댯‚È‚½‚߁CŠ„ž‚Ý‘®«‚É‚©‚©‚í‚炸C
    167          *  ˆê’Uƒ}ƒXƒN‚·‚éD
     158         *  割込みのマスク
     159         *
     160         *  割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割
     161         *  込み優先度の設定を行うのは危険なため,割込み属性にかかわらず,
     162         *  一旦マスクする.
    168163         */
    169164        ( void )x_disable_int( intno );
    170165
    171166        /*
    172          *  ƒŒƒxƒ‹ƒgƒŠƒK/ƒGƒbƒWƒgƒŠƒK‚̐ݒè
    173          *
    174          *  IRQ‚̂݃Tƒ|[ƒg‚·‚é
     167         *  レベルトリガ/エッジトリガの設定
     168         *
     169         *  IRQのみサポートする
    175170         */
    176171        if( INTNO_IRQ( intno ) != 0U ){
     
    191186                else{
    192187                        /*
    193                          *  ƒRƒ“ƒtƒBƒMƒ
    194 ƒŒ[ƒ^‚ɂă`ƒFƒbƒN‚µ‚Ä‚¢‚邽‚ß,
    195                          *  ‚±‚±‚Ö‚­‚邱‚Æ‚Í‚ ‚肦‚È‚¢.
     188                         *  コンフィギュレータにてチェックしているため,
     189                         *  ここへくることはありえない.
    196190                         */
    197191                        irq_val = 0U;
     
    202196
    203197        /*
    204          *  Š„ž‚݃Œƒxƒ‹‚̐ݒè
    205          *
    206          *  Š„ž‚ݔԍ†‚ɑΉž‚µ‚½IPR’l‚ðÝ’è‚·‚é.
     198         *  割込みレベルの設定
     199         *
     200         *  割込み番号に対応したIPR値を設定する.
    207201         */
    208202        sil_wrb_mem((uint8_t *)ipr_reg_addr[intno], cfg_int_table[intno].intpri);
    209203
    210204        /*
    211          *  Š„ž‚݂̃}ƒXƒN‰ðœ
     205         *  割込みのマスク解除
    212206         */
    213207        if( ( intatr & TA_ENAINT ) != 0U ){
     
    219213#ifndef OMIT_DEFAULT_INT_HANDLER
    220214/*
    221  *  –¢“o˜^‚ÌŠ„ž‚Ý‚ª”­¶‚µ‚½ê‡‚ɌĂяo‚³‚ê‚é
     215 *  未登録の割込みが発生した場合に呼び出される
    222216 */
    223217void
     
    230224#ifndef OMIT_DEFAULT_EXC_HANDLER
    231225/*
    232  *  –¢“o˜^‚Ì—áŠO‚ª”­¶‚µ‚½ê‡‚ɌĂяo‚³‚ê‚é
     226 *  未登録の例外が発生した場合に呼び出される
    233227 */
    234228void
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_config.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    1010 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    1111 *
    12  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    13  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    14  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    15  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    16  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    17  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    18  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    19  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    20  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    21  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    22 ƒƒ“ƒgi—˜—p
    23  *      ŽÒƒ}ƒjƒ
    24 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    25  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    26  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    27  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    28  *      ‚ƁD
    29  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    30 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    31 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    32  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    33  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    34  *        •ñ‚·‚邱‚ƁD
    35  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    36  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     12 *  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
     13 *  によって公表されている GNU General Public License の Version 2 に記
     14 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     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プロジェクトを免責すること.
    3733 *
    38  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    39  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚à
    40  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    41  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     36 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     37 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4238 *
    4339 */
    4440
    4541/*
    46  *              ƒvƒƒZƒbƒTˆË‘¶ƒ‚ƒWƒ
    47 [ƒ‹iRX630—pj
    48  *
    49  *  ‚±‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚́Ctarget_config.hi‚Ü‚½‚́C‚»‚±‚©‚çƒCƒ“ƒN
    50  *  ƒ‹[ƒh‚³‚ê‚éƒtƒ@ƒCƒ‹j‚Ì‚Ý‚©‚çƒCƒ“ƒNƒ‹[ƒh‚³‚ê‚éD‘¼‚̃tƒ@ƒCƒ‹‚©‚ç
    51  *  ’¼ÚƒCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚Í‚È‚ç‚È‚¢D
     42 *              プロセッサ依存モジュール(RX630用)
     43 *
     44 *  このインクルードファイルは,target_config.h(または,そこからインク
     45 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     46 *  直接インクルードしてはならない.
    5247 */
    5348
     
    5853
    5954/*
    60  *  ƒvƒƒZƒbƒT‚Ì“ÁŽê–½—߂̃Cƒ“ƒ‰ƒCƒ“ŠÖ”’è‹`
     55 *  プロセッサの特殊命令のインライン関数定義
    6156 */
    6257#include "prc_insn.h"
     
    6459
    6560/*
    66  *  ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p‚̃Xƒ^ƒbƒN‰Šú’l
     61 *  非タスクコンテキスト用のスタック初期値
    6762 */
    6863
     
    7166
    7267/*
    73  *  ƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒgƒuƒƒbƒN‚Ì’è‹`
     68 *  タスクコンテキストブロックの定義
    7469 */
    7570typedef struct task_context_block {
    76         void    *sp;            /* ƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^ */
    77         FP              pc;                     /* ƒvƒƒOƒ‰ƒ€ƒJƒEƒ“ƒ^ */
     71        void    *sp;            /* スタックポインタ */
     72        FP              pc;                     /* プログラムカウンタ */
    7873} TSKCTXB;
    7974
    8075
    8176/*
    82  *  Š„ž‚Ý”­¶‰ñ”‚ð•Û‘¶‚·‚é•Ï”
     77 *  割込み発生回数を保存する変数
    8378 */
    8479extern uint16_t intnest;
     
    8681
    8782/*
    88  *  CPUƒƒbƒNó‘Ô‚Å‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒN
    89  *
    90  *  TIPM_LOCK‚́CCPUƒƒbƒNó‘Ô‚Å‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒNC‚·‚È‚í‚¿CƒJ[ƒl
    91  *  ƒ‹ŠÇ—ŠO‚Ì‚à‚Ì‚ðœ‚­‚·‚ׂĂ̊„ž‚Ý—v‹‚ðƒ}ƒXƒN‚·‚é’l‚É’è‹`‚·‚éD
    92  *
    93  *  TMIN_INTPRI•ÏX‚·‚邱‚Æ‚ÅŠÇ—ŠOŠ„ž‚Ý‚Ì—L–³‚ðŒˆ’è‚·‚éD
    94  *  —Ⴆ‚ÎTMIN_INTPRI‚ð-14‚ɐݒ肷‚é‚ƁCƒŒƒxƒ‹15‚ÌŠ„ž‚Ý‚ªƒJ[ƒlƒ‹ŠÇ—ŠO‚Æ
    95  *  ‚È‚éDTMIN_INTPRI‚ð-15‚ɐݒ肷‚é‚ƁCNMIˆÈŠO‚ɃJ[ƒlƒ‹ŠÇ—ŠO‚ÌŠ„ž‚Ý‚ð
    96  *  Ý‚¯‚È‚¢‚±‚Æ‚É‚È‚éi‚±‚̏ꍇ‚É‚Í-15‚ɐݒ肷‚邱‚Ƃ𐄏§‚·‚éjD
     83 *  CPUロック状態での割込み優先度マスク
     84 *
     85 *  TIPM_LOCKは,CPUロック状態での割込み優先度マスク,すなわち,カーネ
     86 *  ル管理外のものを除くすべての割込み要求をマスクする値に定義する.
     87 *
     88 *  TMIN_INTPRI変更することで管理外割込みの有無を決定する.
     89 *  例えばTMIN_INTPRIを-14に設定すると,レベル15の割込みがカーネル管理外と
     90 *  なる.TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
     91 *  設けないことになる(この場合には-15に設定することを推奨する).
    9792 */
    9893#ifndef TIPM_LOCK
     
    10297
    10398/*
    104  *  TOPPERS•W€Š„ž‚ݏˆ—ƒ‚ƒfƒ‹‚ÌŽÀŒ»
    105  */
    106 /*
    107  *  ƒRƒ“ƒeƒLƒXƒg‚ÌŽQÆ
    108  *
    109  *  RX‚ł́CŠ„ž‚Ý‚Ì–ß‚èæ‚ªƒ^ƒXƒN‚©‚Ç‚¤‚©‚ð”»’f‚·‚邽‚ß‚É intnest
    110  *  ‚ðŽg—p‚µ‚Ä‚¢‚éD‚±‚ê‚ð—p‚¢‚ăRƒ“ƒeƒLƒXƒg‚ð”»’f‚·‚éD
     99 *  TOPPERS標準割込み処理モデルの実現
     100 */
     101/*
     102 *  コンテキストの参照
     103 *
     104 *  RXでは,割込みの戻り先がタスクかどうかを判断するために intnest
     105 *  を使用している.これを用いてコンテキストを判断する.
    111106 */
    112107Inline bool_t
    113108sense_context( void )
    114109{
    115         /*  ƒlƒXƒgƒJƒEƒ“ƒ^0‚æ‚è‘å‚È‚ç”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg  */
     110        /*  ネストカウンタ0より大なら非タスクコンテキスト  */
    116111        return ( intnest > 0U );
    117112}
     
    119114
    120115/*
    121  *  CPUƒƒbƒNƒtƒ‰ƒOŽÀŒ»‚Ì‚½‚߂̕ϐ”
    122  *
    123  *  ‚±‚ê‚ç‚̕ϐ”‚́CCPUƒƒbƒNó‘Ô‚ÌŽž‚̂ݏ‘‚«Š·‚¦‚Ä‚æ‚¢‚à‚Ì‚Æ‚·‚éD
     116 *  CPUロックフラグ実現のための変数
     117 *
     118 *  これらの変数は,CPUロック状態の時のみ書き換えてよいものとする.
    124119 */
    125120#if TIPM_LOCK != -15
    126 extern bool_t   lock_flag;              /* CPUƒƒbƒNƒtƒ‰ƒO‚Ì’l‚ð•ÛŽ‚·‚é•Ï” */
    127 extern uint32_t saved_ipl;              /* Š„ž‚Ý—Dæ“xƒŒƒxƒ‹‚ð•Û‘¶‚·‚é•Ï” */
     121extern bool_t   lock_flag;              /* CPUロックフラグの値を保持する変数 */
     122extern uint32_t saved_ipl;              /* 割込み優先度レベルを保存する変数 */
    128123#endif  /* TIPM_LOCK != -15     */
    129124
     
    132127
    133128/*
    134  *  Š„ž‚Ý—Dæ“xƒ}ƒXƒN‚ÌŠO•”•\Œ»‚Æ“à•”•\Œ»‚Ì•ÏŠ·
    135  *
    136  *  RX630‚ł́CƒvƒƒZƒbƒTƒXƒe[ƒ^ƒXƒ[ƒhƒŒƒWƒXƒ^iPSWj‚̉º‚©‚ç
    137  *  24`27ƒrƒbƒg–Ú‚Ì4ƒrƒbƒg‚ÉŠ„ž‚Ý—Dæ“xƒŒƒxƒ‹iIPLj‚ª’u‚©‚ê‚Ä‚¢‚éD
    138  *  ƒJ[ƒlƒ‹ŠÇ—ŠOŠ„ž‚Ý‚ðŽÀ‘•‚·‚éê‡‚ÉIPL‚ðŽg—p‚µ‚½§Œä‚ðs‚¤D
    139  *  ƒJ[ƒlƒ‹‚ÍŠ„ž‚Ý—Dæ“xƒ}ƒXƒNi-1‚©‚ç˜A‘±‚µ‚½•‰‚Ì’lj‚ÅŠÇ—‚³‚ê‚Ä
    140  *  ‚¢‚邽‚ßIPL‚Æ‚Ì•ÏŠ·‚ª•K—v‚Æ‚È‚éD
    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ƒƒbƒNó‘Ô‚Å‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚ÌIPL
     129 *  割込み優先度マスクの外部表現と内部表現の変換
     130 *
     131 *  RX630では,プロセッサステータスワードレジスタ(PSW)の下から
     132 *  24〜27ビット目の4ビットに割込み優先度レベル(IPL)が置かれている.
     133 *  カーネル管理外割込みを実装する場合にIPLを使用した制御を行う.
     134 *  カーネルは割込み優先度マスク(-1から連続した負の値)で管理されて
     135 *  いるためIPLとの変換が必要となる.
     136 */
     137#define IPL_TO_IPM( ipl )       (-(( PRI )(( ipl ) >> 24U )))           /* IPLをIPMに     */
     138#define IPM_TO_IPL( ipm )       ((( uint32_t )(-( ipm ))) << 24U )      /* IPMをIPLに     */
     139
     140
     141/*
     142 *  CPUロック状態での割込み優先度マスクのIPL
    148143 */
    149144#define IPL_LOCK                ( IPM_TO_IPL( TIPM_LOCK ) )
    150145
    151146/*
    152  *  TIPM_ENAALLiŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœj‚ÌIPL
     147 *  TIPM_ENAALL(割込み優先度マスク全解除)のIPL
    153148 */
    154149#define IPL_ENAALL              ( IPM_TO_IPL( TIPM_ENAALL ) )
     
    158153
    159154/*
    160  *  Š„ž‚Ý—vˆö–ˆ‚̃Œƒxƒ‹ & ‘®«’è‹`ƒe[ƒuƒ‹
    161  *  (ƒeƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚É‚æ‚éo—Í)
     155 *  割込み要因毎のレベル & 属性定義テーブル
     156 *  (テンプレートファイルによる出力)
    162157 */
    163158typedef struct cfg_int_info {
     
    170165
    171166/*
    172  *  Š„ž‚ݔԍ†‚͈̔͂̔»’è
    173  *
    174  *  Š„ž‚ݔԍ†‚ª—LŒø‚È’l‚©Œµ–§‚Ƀ`ƒFƒbƒN‚·‚邽‚ß,
    175  *  ƒRƒ“ƒtƒBƒMƒ
    176 ƒŒ[ƒ^o—̓e[ƒuƒ‹‚ðŽQÆ‚·‚é.
     167 *  割込み番号の範囲の判定
     168 *
     169 *  割込み番号が有効な値か厳密にチェックするため,
     170 *  コンフィギュレータ出力テーブルを参照する.
    177171 */
    178172#define VALID_INTNO( intno )    \
     
    181175#define VALID_INTNO_CFGINT( intno )     VALID_INTNO( intno )
    182176
    183 /* cre_int‚Å—LŒø‚ÈŠ„ž‚ݔԍ†‚ÌŽw’è  */
     177/* cre_intで有効な割込み番号の指定  */
    184178#define VALID_INTNO_CREINT          VALID_INTNO_CFGINT((intno))
    185179
    186 /* cre_isr‚Å—LŒø‚ÈŠ„ž‚ݔԍ†‚ÌŽw’è  */
     180/* cre_isrで有効な割込み番号の指定  */
    187181#define VALID_INTNO_CREISR(intno)       VALID_INTNO_CFGINT((intno))
    188182
    189183
    190184/*
    191  *  Š„ž‚ݐ§ŒäƒŒƒWƒXƒ^ŠÖ˜A‚Ì’è‹`
     185 *  割込み制御レジスタ関連の定義
    192186 */
    193187#define IRQ_POSEDGE                     ( 0x08U )
     
    198192
    199193/*
    200  *  CPUƒƒbƒNó‘Ԃւ̈ڍs
    201  *
    202  *  IPMiƒn[ƒhƒEƒFƒA‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒNj‚ðCsaved_iipm‚É•Û‘¶‚µCƒJ[
    203  *  ƒlƒ‹ŠÇ—ŠO‚Ì‚à‚Ì‚ðœ‚­‚·‚ׂĂ̊„ž‚Ý—v‹‚ðƒ}ƒXƒN‚·‚é’liTIPM_LOCKj
    204  *  ‚ɐݒ肷‚éD‚Ü‚½Clock_flag‚ðTRUE‚É‚·‚éD
    205  *
    206  *  IPM‚ªCÅ‰‚©‚çTIPM_LOCK‚Æ“¯‚¶‚©‚»‚ê‚æ‚荂‚¢ê‡‚ɂ́C‚»‚ê‚ð
    207  *  saved_iipm‚É•Û‘¶‚·‚é‚݂̂ŁCTIPM_LOCK‚ɂ͐ݒ肵‚È‚¢D‚±‚ê‚́Cƒ‚ƒfƒ‹
    208  *  ã‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚ªCTIPM_LOCK‚Æ“¯‚¶‚©‚»‚ê‚æ‚荂‚¢ƒŒƒxƒ‹‚ɐݒè
    209  *  ‚³‚ê‚Ä‚¢‚éó‘Ô‚É‚ ‚½‚éD
    210  *
    211  *  ‚±‚̊֐”‚́CCPUƒƒbƒNó‘ԁilock_flag‚ªTRUE‚̏ó‘ԁj‚ŌĂ΂ê‚邱‚Æ‚Í
    212  *  ‚È‚¢‚à‚Ì‚Æ‘z’肵‚Ä‚¢‚éD
     194 *  CPUロック状態への移行
     195 *
     196 *  IPM(ハードウェアの割込み優先度マスク)を,saved_iipmに保存し,カー
     197 *  ネル管理外のものを除くすべての割込み要求をマスクする値(TIPM_LOCK)
     198 *  に設定する.また,lock_flagをTRUEにする.
     199 *
     200 *  IPMが,最初からTIPM_LOCKと同じかそれより高い場合には,それを
     201 *  saved_iipmに保存するのみで,TIPM_LOCKには設定しない.これは,モデル
     202 *  上の割込み優先度マスクが,TIPM_LOCKと同じかそれより高いレベルに設定
     203 *  されている状態にあたる.
     204 *
     205 *  この関数は,CPUロック状態(lock_flagがTRUEの状態)で呼ばれることは
     206 *  ないものと想定している.
    213207 */
    214208Inline void
     
    221215
    222216        /*
    223          *  current_ipl()‚Ì•Ô‚è’l‚𒼐Úsaved_ipl‚É•Û‘¶‚¹‚¸CˆêŽž•Ï”ipl
    224          *  ‚ð—p‚¢‚Ä‚¢‚é‚̂́Ccurrent_ipl()‚ðŒÄ‚ñ‚¾’¼Œã‚ÉŠ„ž‚Ý‚ª”­¶‚µC
    225          *  ‹N“®‚³‚ꂽŠ„ž‚ݏˆ—‚Åsaved_ipl‚ª•ÏX‚³‚ê‚é‰Â”\«‚ª‚ ‚邽‚ß‚Å
    226          *  ‚ ‚éD
     217         *  current_ipl()の返り値を直接saved_iplに保存せず,一時変数ipl
     218         *  を用いているのは,current_ipl()を呼んだ直後に割込みが発生し,
     219         *  起動された割込み処理でsaved_iplが変更される可能性があるためで
     220         *  ある.
    227221         */
    228222        ipl = current_ipl();
     
    241235
    242236/*
    243  *  CPUƒƒbƒNó‘Ԃ̉ðœ
    244  *
    245  *  lock_flag‚ðFALSE‚É‚µCIPMiƒn[ƒhƒEƒFƒA‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒNj‚ðC
    246  *  saved_iipm‚É•Û‘¶‚µ‚½’l‚É–ß‚·D
    247  *
    248  *  ‚±‚̊֐”‚́CCPUƒƒbƒNó‘ԁilock_flag‚ªtrue‚̏ó‘ԁj‚ł̂݌Ă΂ê‚é‚à
    249  *  ‚Ì‚Æ‘z’肵‚Ä‚¢‚éD
     237 *  CPUロック状態の解除
     238 *
     239 *  lock_flagをFALSEにし,IPM(ハードウェアの割込み優先度マスク)を,
     240 *  saved_iipmに保存した値に戻す.
     241 *
     242 *  この関数は,CPUロック状態(lock_flagがtrueの状態)でのみ呼ばれるも
     243 *  のと想定している.
    250244 */
    251245Inline void
     
    265259
    266260/*
    267  *  CPUƒƒbƒNó‘Ô‚ÌŽQÆ
     261 *  CPUロック状態の参照
    268262 */
    269263Inline bool_t
     
    282276
    283277/*
    284  * iƒ‚ƒfƒ‹ã‚́jŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚̐ݒè
    285  *
    286  *  CPUƒƒbƒNƒtƒ‰ƒO‚ªƒNƒŠƒA‚³‚ê‚Ä‚¢‚鎞‚́Cƒn[ƒhƒEƒFƒA‚ÌŠ„ž‚Ý—Dæ“xƒ}
    287  *  ƒXƒN‚ðÝ’è‚·‚éDCPUƒƒbƒNƒtƒ‰ƒO‚ªƒZƒbƒg‚³‚ê‚Ä‚¢‚鎞‚́Csaved_iipm
    288  *  ‚ðÝ’肵C‚³‚ç‚ɁCƒn[ƒhƒEƒFƒA‚ÌŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚ðCÝ’肵‚悤‚Æ
    289  *  ‚µ‚½iƒ‚ƒfƒ‹ã‚́jŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚ÆTIPM_LOCK‚̍‚‚¢•û‚ɐݒ肷‚éD
     278 * (モデル上の)割込み優先度マスクの設定
     279 *
     280 *  CPUロックフラグがクリアされている時は,ハードウェアの割込み優先度マ
     281 *  スクを設定する.CPUロックフラグがセットされている時は,saved_iipm
     282 *  を設定し,さらに,ハードウェアの割込み優先度マスクを,設定しようと
     283 *  した(モデル上の)割込み優先度マスクとTIPM_LOCKの高い方に設定する.
    290284 */
    291285Inline void
     
    311305
    312306/*
    313  * iƒ‚ƒfƒ‹ã‚́jŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚ÌŽQÆ
    314  *
    315  *  CPUƒƒbƒNƒtƒ‰ƒO‚ªƒNƒŠƒA‚³‚ê‚Ä‚¢‚鎞‚̓n[ƒhƒEƒFƒA‚ÌŠ„ž‚Ý—Dæ“xƒ}
    316  *  ƒXƒN‚ðCƒZƒbƒg‚³‚ê‚Ä‚¢‚鎞‚Ísaved_iipm‚ðŽQÆ‚·‚éD
     307 * (モデル上の)割込み優先度マスクの参照
     308 *
     309 *  CPUロックフラグがクリアされている時はハードウェアの割込み優先度マ
     310 *  スクを,セットされている時はsaved_iipmを参照する.
    317311 */
    318312Inline PRI
     
    338332
    339333/*
    340  *  Š„ž‚Ý—v‹‹ÖŽ~ƒtƒ‰ƒO‚̃Zƒbƒg
    341  *
    342  *  Š„ž‚Ý‘®«‚ªÝ’肳‚ê‚Ä‚¢‚È‚¢Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚ɑ΂µ‚ÄŠ„ž‚Ý—v‹‹ÖŽ~
    343  *  ƒtƒ‰ƒO‚ðƒZƒbƒg‚µ‚悤‚Æ‚µ‚½ê‡‚ɂ́CFALSE‚ð•Ô‚·D
     334 *  割込み要求禁止フラグのセット
     335 *
     336 *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
     337 *  フラグをセットしようとした場合には,FALSEを返す.
    344338 */
    345339Inline bool_t
     
    347341{
    348342        /*
    349          *  ƒŒƒxƒ‹’è‹`‚ª0‚Å‚ ‚éê‡‚ÍCFG_INT‚³‚ê‚Ä‚¢‚È‚¢
     343         *  レベル定義が0である場合はCFG_INTされていない
    350344         */
    351345        if( cfg_int_table[intno].intpri == 0 ){
     
    363357
    364358/*
    365  *  Š„ž‚Ý—v‹‹ÖŽ~ƒtƒ‰ƒO‚̃NƒŠƒA
    366  *
    367  *  Š„ž‚Ý‘®«‚ªÝ’肳‚ê‚Ä‚¢‚È‚¢Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚ɑ΂µ‚ÄŠ„ž‚Ý—v‹‹ÖŽ~
    368  *  ƒtƒ‰ƒO‚ðƒNƒŠƒA‚µ‚悤‚Æ‚µ‚½ê‡‚ɂ́CFALSE‚ð•Ô‚·D
     359 *  割込み要求禁止フラグのクリア
     360 *
     361 *  割込み属性が設定されていない割込み要求ラインに対して割込み要求禁止
     362 *  フラグをクリアしようとした場合には,FALSEを返す.
    369363 */
    370364Inline bool_t
     
    372366{
    373367        /*
    374          *  ƒŒƒxƒ‹’è‹`‚ª0‚Å‚ ‚éê‡‚ÍCFG_INT‚³‚ê‚Ä‚¢‚È‚¢
     368         *  レベル定義が0である場合はCFG_INTされていない
    375369         */
    376370        if( cfg_int_table[intno].intpri == 0 ){
     
    388382
    389383/*
    390  *  Š„ž‚Ý—v‹‚̃NƒŠƒA
     384 *  割込み要求のクリア
    391385 */
    392386Inline void
     
    401395
    402396/*
    403  *  Š„ž‚Ý—v‹‚̃`ƒFƒbƒN
     397 *  割込み要求のチェック
    404398 */
    405399Inline bool_t
     
    407401{
    408402        /*
    409          *  Š„ž‚Ý—v‹ƒŒƒWƒXƒ^‚Í0 or 1‚Å‚µ‚©‚È‚¢‚½‚ß,
    410          *  ‚»‚Ì‚Ü‚Ü‚Ì’l‚ð•Ô‚·.
     403         *  割込み要求レジスタは0 or 1でしかないため,
     404         *  そのままの値を返す.
    411405         */
    412406        return ( *IR_REG(intno) );
     
    418412
    419413/*
    420  *  Š„ž‚Ý—v‹ƒ‰ƒCƒ“‚Ì‘®«‚̐ݒè
     414 *  割込み要求ラインの属性の設定
    421415 */
    422416extern void     x_config_int( INTNO intno, ATR intatr, PRI intpri );
     
    424418
    425419/*
    426  *  Š„ž‚݃nƒ“ƒhƒ‰‚Ì“üŒû‚Å•K—v‚ÈIRC‘€ì
     420 *  割込みハンドラの入口で必要なIRC操作
    427421 *
    428422 */
     
    433427
    434428        /*
    435          *  ƒŒƒxƒ‹ŒŸo‚ÌŠ„ž‚݂ɑ΂µ‚Ä‚ÍŠ„ž‚݃Xƒe[ƒ^ƒX
    436          *  ƒtƒ‰ƒO‚ðƒNƒŠƒA‚·‚é.
     429         *  レベル検出の割込みに対しては割込みステータス
     430         *  フラグをクリアする.
    437431         */
    438432        if( ( cfg_int_table[intno].intatr & TA_LOWLEVEL ) > 0 ){
    439433                if( *IR_REG(intno) > 0U ){
    440434                        /*
    441                          *  ŠO•”Š„ž‚݂̏ꍇ, IRQ’[Žq‚ªHigh‚É–ß‚Á‚Ä‚¢‚é
    442                          *  ‚±‚Æ‚ðŠm”F‚·‚éŽ|‚ª‹LÚ‚³‚ê‚Ä‚¢‚邪, È—ª‚·‚é.
     435                         *  外部割込みの場合, IRQ端子がHighに戻っている
     436                         *  ことを確認する旨が記載されているが, 省略する.
    443437                         */
    444438                //      *ir_reg_addr[intno] = 0U;
    445439
    446440                        /*
    447                          *  ƒn[ƒhƒEƒFƒAƒ}ƒjƒ
    448 ƒAƒ‹‚É0‚É‚È‚Á‚½‚±‚Æ‚ð
    449                          *  Šm”F‚·‚éŽ|‚ª‹LÚ‚ ‚邽‚ß, ƒŒƒWƒXƒ^’l‚ð“ǂݏo‚·.
     441                         *  ハードウェアマニュアルに0になったことを
     442                         *  確認する旨が記載あるため, レジスタ値を読み出す.
    450443                         */
    451444                //      reg = *ir_reg_addr[intno];
     
    456449
    457450/*
    458  *  Š„ž‚݃nƒ“ƒhƒ‰‚̏oŒû‚Å•K—v‚ÈIRC‘€ì
     451 *  割込みハンドラの出口で必要なIRC操作
    459452 *
    460453 */
     
    462455i_end_int( INTNO intno )
    463456{
    464         /* “Á‚ɍs‚¤‚ׂ«ˆ—‚Í‚È‚¢ */
    465 }
    466 
    467 
    468 /*
    469  *  Å‚—Dæ‡ˆÊƒ^ƒXƒN‚ւ̃fƒBƒXƒpƒbƒ`iprc_support.a30j
    470  *
    471  *  dispatch‚́Cƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚©‚çŒÄ‚яo‚³‚ꂽƒT[ƒrƒXƒR[ƒ‹ˆ—‚©
    472  *  ‚çŒÄ‚яo‚·‚ׂ«‚à‚̂ŁCƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒgECPUƒƒbƒNó‘ԁEƒfƒBƒXƒpƒb
    473  *  ƒ`‹–‰Âó‘ԁEiƒ‚ƒfƒ‹ã‚́jŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘ԂŌĂяo‚³‚È
    474  *  ‚¯‚ê‚΂Ȃç‚È‚¢D
     457        /* 特に行うべき処理はない */
     458}
     459
     460
     461/*
     462 *  最高優先順位タスクへのディスパッチ(prc_support.a30)
     463 *
     464 *  dispatchは,タスクコンテキストから呼び出されたサービスコール処理か
     465 *  ら呼び出すべきもので,タスクコンテキスト・CPUロック状態・ディスパッ
     466 *  チ許可状態・(モデル上の)割込み優先度マスク全解除状態で呼び出さな
     467 *  ければならない.
    475468 */
    476469extern void     dispatch( void );
    477470
    478471/*
    479  *  ƒfƒBƒXƒpƒbƒ`ƒƒ‚Ì“®ìŠJŽniprc_support.a30j
    480  *
    481  *  start_dispatch‚́CƒJ[ƒlƒ‹‹N“®Žž‚ɌĂяo‚·‚ׂ«‚à‚̂ŁC‚·‚ׂĂ̊„ž
    482  *  ‚Ý‚ð‹ÖŽ~‚µ‚½ó‘ԁi‘SŠ„ž‚݃ƒbƒNó‘Ô‚Æ“¯“™‚̏ó‘ԁj‚ŌĂяo‚³‚È‚¯‚ê‚Î
    483  *  ‚È‚ç‚È‚¢D
     472 *  ディスパッチャの動作開始(prc_support.a30)
     473 *
     474 *  start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込
     475 *  みを禁止した状態(全割込みロック状態と同等の状態)で呼び出さなければ
     476 *  ならない.
    484477 */
    485478extern void     start_dispatch( void ) NoReturn;
    486479
    487480/*
    488  *  Œ»Ý‚̃Rƒ“ƒeƒLƒXƒg‚ðŽÌ‚ĂăfƒBƒXƒpƒbƒ`iprc_support.a30j
    489  *
    490  *  exit_and_dispatch‚́Cext_tsk‚©‚çŒÄ‚яo‚·‚ׂ«‚à‚̂ŁCƒ^ƒXƒNƒRƒ“ƒeƒL
    491  *  ƒXƒgECPUƒƒbƒNó‘ԁEƒfƒBƒXƒpƒbƒ`‹–‰Âó‘ԁEiƒ‚ƒfƒ‹ã‚́jŠ„ž‚Ý—Dæ
    492  *  “xƒ}ƒXƒN‘S‰ðœó‘ԂŌĂяo‚³‚È‚¯‚ê‚΂Ȃç‚È‚¢D
     481 *  現在のコンテキストを捨ててディスパッチ(prc_support.a30)
     482 *
     483 *  exit_and_dispatchは,ext_tskから呼び出すべきもので,タスクコンテキ
     484 *  スト・CPUロック状態・ディスパッチ許可状態・(モデル上の)割込み優先
     485 *  度マスク全解除状態で呼び出さなければならない.
    493486 */
    494487#define _kernel_exit_and_dispatch();    \
     
    499492
    500493/*
    501  *  ƒJ[ƒlƒ‹‚̏I—¹ˆ—‚̌ďo‚µiprc_support.a30j
    502  *
    503  *  call_exit_kernel‚́CƒJ[ƒlƒ‹‚̏I—¹Žž‚ɌĂяo‚·‚ׂ«‚à‚̂ŁC”ñƒ^ƒXƒN
    504  *  ƒRƒ“ƒeƒLƒXƒg‚ɐ؂芷‚¦‚āCƒJ[ƒlƒ‹‚̏I—¹ˆ—iexit_kernelj‚ðŒÄ‚яo
    505  *  ‚·D
     494 *  カーネルの終了処理の呼出し(prc_support.a30)
     495 *
     496 *  call_exit_kernelは,カーネルの終了時に呼び出すべきもので,非タスク
     497 *  コンテキストに切り換えて,カーネルの終了処理(exit_kernel)を呼び出
     498 *  す.
    506499 */
    507500extern void call_exit_kernel( void ) NoReturn;
    508501
    509502/*
    510  *  ƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚̏‰Šú‰»
    511  *
    512  *  ƒ^ƒXƒN‚ª‹xŽ~ó‘Ô‚©‚çŽÀs‚Å‚«‚éó‘ԂɈڍs‚·‚鎞‚ɌĂ΂ê‚éD‚±‚ÌŽž“_
    513  *  ‚ŃXƒ^ƒbƒN—̈æ‚ðŽg‚Á‚Ä‚Í‚È‚ç‚È‚¢D
    514  *
    515  *  activate_context‚ðCƒCƒ“ƒ‰ƒCƒ“ŠÖ”‚Å‚Í‚È‚­ƒ}ƒNƒ’è‹`‚Æ‚µ‚Ä‚¢‚é‚̂́C
    516  *  ‚±‚ÌŽž“_‚Å‚ÍTCB‚ª’è‹`‚³‚ê‚Ä‚¢‚È‚¢‚½‚ß‚Å‚ ‚éD
     503 *  タスクコンテキストの初期化
     504 *
     505 *  タスクが休止状態から実行できる状態に移行する時に呼ばれる.この時点
     506 *  でスタック領域を使ってはならない.
     507 *
     508 *  activate_contextを,インライン関数ではなくマクロ定義としているのは,
     509 *  この時点ではTCBが定義されていないためである.
    517510 */
    518511extern void     start_r( void );
     
    522515        {                                                                                                                                                                       \
    523516                                                                                                                                                                                \
    524                 /*  ƒXƒ^ƒbƒNƒ|ƒCƒ“ƒ^‰Šú’l‚ÌÝ’è  */                                                                                    \
     517                /*  スタックポインタ初期値の設定  */                                                                                  \
    525518                ( p_tcb )->tskctxb.sp = ( void * )((( uint32_t ) ( p_tcb )->p_tinib->stk ) +    \
    526519                                                                ( p_tcb )->p_tinib->stksz );                                                    \
    527                 /* ‹N“®”Ô’n‚̐ݒè */                                                                                                                    \
     520                /* 起動番地の設定 */                                                                                                                   \
    528521                ( p_tcb )->tskctxb.pc = ( FP ) start_r;                                                                                 \
    529522        }                                                                                                                                                                       \
     
    532525
    533526/*
    534  *  calltex‚ÍŽg—p‚µ‚È‚¢
     527 *  calltexは使用しない
    535528 */
    536529#define OMIT_CALLTEX
     
    538531
    539532/*
    540  *  Š„ž‚݃nƒ“ƒhƒ‰‚̐ݒè
    541  *
    542  *  RX630‚ÍROM‚ÉŠ„ž‚݃xƒNƒ^‚ð”z’u‚·‚邽‚߁C–{ŠÖ”‚Í‹óŠÖ”‚ÅŽÀ‘•‚·‚éD
     533 *  割込みハンドラの設定
     534 *
     535 *  RX630はROMに割込みベクタを配置するため,本関数は空関数で実装する.
    543536 */
    544537Inline void
     
    549542
    550543/*
    551  *  CPU—áŠOƒnƒ“ƒhƒ‰‚̐ݒè
    552  *
    553  *  RX630‚ÍROM‚É—áŠOƒxƒNƒ^‚ð”z’u‚·‚邽‚߁C–{ŠÖ”‚Í‹óŠÖ”‚ÅŽÀ‘•‚·‚éD
     544 *  CPU例外ハンドラの設定
     545 *
     546 *  RX630はROMに例外ベクタを配置するため,本関数は空関数で実装する.
    554547 */
    555548Inline void
     
    560553
    561554/*
    562  *  Š„ž‚Ý/—áŠOƒnƒ“ƒhƒ‰‚Ì“üŒûˆ—‚̐¶¬ƒ}ƒNƒ
    563  *
    564  *  ƒeƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚É‚æ‚萶¬‚·‚邽‚ß‹óƒ}ƒNƒ‚Æ‚·‚éD
     555 *  割込み/例外ハンドラの入口処理の生成マクロ
     556 *
     557 *  テンプレートファイルにより生成するため空マクロとする.
    565558 */
    566559#define HDR_ENTRY(hdr, intexc_num , tobejmp)
    567560
    568561/*
    569  *  Š„ž‚݃nƒ“ƒhƒ‰‚Ì“üŒûˆ—‚̐¶¬ƒ}ƒNƒ
     562 *  割込みハンドラの入口処理の生成マクロ
    570563 */
    571564#define _INT_ENTRY(inhno, inthdr)                               _kernel_##inthdr##_##inhno##_entry
     
    578571
    579572/*
    580  *  CPU—áŠOƒnƒ“ƒhƒ‰‚Ì“üŒûˆ—‚̐¶¬ƒ}ƒNƒ
     573 *  CPU例外ハンドラの入口処理の生成マクロ
    581574 */
    582575#define _EXC_ENTRY(excno , exchdr)                                      _kernel_##exchdr##_##excno##_entry
     
    589582
    590583/*
    591  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚̃Rƒ“ƒeƒLƒXƒg‚ÌŽQÆ
    592  *
    593  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚̃Rƒ“ƒeƒLƒXƒg‚ªCƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚ÌŽž‚ÉFALSEC
    594  *  ‚»‚¤‚Å‚È‚¢Žž‚Étrue‚ð•Ô‚·D
     584 *  CPU例外の発生した時のコンテキストの参照
     585 *
     586 *  CPU例外の発生した時のコンテキストが,タスクコンテキストの時にFALSE,
     587 *  そうでない時にtrueを返す.
    595588 */
    596589Inline bool_t
     
    598591{
    599592        /*
    600          *  ƒlƒXƒgƒJƒEƒ“ƒ^‚ª1‚æ‚è‘å‚È‚ç”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg
     593         *  ネストカウンタが1より大なら非タスクコンテキスト
    601594         */
    602595        return( intnest > 1U );
     
    605598
    606599/*
    607  *  CPU—áŠOî•ñ p_excinf ‚©‚ç PSW ‚Ì’l‚ðŽæ“¾‚·‚邽‚߂̃IƒtƒZƒbƒg’l
    608  *  EXCNO + ACC + FPSW + R1`R15 + PC
     600 *  CPU例外情報 p_excinf から PSW の値を取得するためのオフセット値
     601 *  EXCNO + ACC + FPSW + R1R15 + PC
    609602 */
    610603#define EXC_GET_PSW_OFFSET      (4+8+4+60+4)
    611604
    612605/*
    613  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚ÌIPL‚ÌŽQÆ
     606 *  CPU例外の発生した時のIPLの参照
    614607 */
    615608Inline uint32_t
     
    629622
    630623/*
    631  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚̃Rƒ“ƒeƒLƒXƒg‚ÆŠ„ž‚݂̃}ƒXƒNó‘Ô‚ÌŽQÆ
    632  *
    633  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚̃VƒXƒeƒ€ó‘Ô‚ªCƒJ[ƒlƒ‹ŽÀs’†‚Å‚È‚­Cƒ^ƒXƒNƒR
    634  *  ƒ“ƒeƒLƒXƒg‚Å‚ ‚èC‘SŠ„ž‚݃ƒbƒNó‘Ô‚Å‚È‚­CCPUƒƒbƒNó‘Ô‚Å‚È‚­Ciƒ‚
    635  *  ƒfƒ‹ã‚́jŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘Ô‚Å‚ ‚鎞‚ÉtrueC‚»‚¤‚Å‚È‚¢Žž
    636  *  ‚ÉFALSE‚ð•Ô‚·iCPU—áŠO‚ªƒJ[ƒlƒ‹ŠÇ—ŠO‚ÌŠ„ž‚ݏˆ—’†‚Å”­¶‚µ‚½ê‡
    637  *  ‚É‚àFALSE‚ð•Ô‚·jD
     624 *  CPU例外の発生した時のコンテキストと割込みのマスク状態の参照
     625 *
     626 *  CPU例外の発生した時のシステム状態が,カーネル実行中でなく,タスクコ
     627 *  ンテキストであり,全割込みロック状態でなく,CPUロック状態でなく,(モ
     628 *  デル上の)割込み優先度マスク全解除状態である時にtrue,そうでない時
     629 *  にFALSEを返す(CPU例外がカーネル管理外の割込み処理中で発生した場合
     630 *  にもFALSEを返す).
    638631 * 
    639  *  ƒJ[ƒlƒ‹ŽÀs’†‚Å‚È‚¢¨ (TIPM_LOCK== -15) Iƒtƒ‰ƒO == 1
     632 *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
    640633 *                         (else)           IPL < IPL_LOCK
    641  *  ƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚Å‚ ‚遨intnest == 0
    642  *  ‘SŠ„ž‚݃ƒbƒN‚Å‚È‚¢¨ Iƒtƒ‰ƒO == 1
    643  *  Š„ž‚Ý—Dæ“xƒ}ƒXƒN‚ª‘S‰ðœ¨IPL == 0
     634 *  タスクコンテキストである→intnest == 0
     635 *  全割込みロックでない→ Iフラグ == 1
     636 *  割込み優先度マスクが全解除→IPL == 0
    644637 * 
    645638 * 
     
    654647
    655648/*
    656  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚̃Rƒ“ƒeƒLƒXƒg‚ÆŠ„ž‚݁^CPUƒƒbƒNó‘Ô‚ÌŽQÆ
    657  *
    658  *  CPU—áŠO‚Ì”­¶‚µ‚½Žž‚̃VƒXƒeƒ€ó‘Ô‚ªCƒJ[ƒlƒ‹ŽÀs’†‚Å‚È‚­Cƒ^ƒXƒNƒR
    659  *  ƒ“ƒeƒLƒXƒg‚Å‚ ‚èC‘SŠ„ž‚݃ƒbƒNó‘Ô‚Å‚È‚­CCPUƒƒbƒNó‘Ô‚Å‚È‚¢Žž‚É
    660  *  trueC‚»‚¤‚Å‚È‚¢Žž‚Éfalse‚ð•Ô‚·iCPU—áŠO‚ªƒJ[ƒlƒ‹ŠÇ—ŠO‚ÌŠ„ž‚ݏˆ
    661  *  —’†‚Å”­¶‚µ‚½ê‡‚É‚àfalse‚ð•Ô‚·jD
     649 *  CPU例外の発生した時のコンテキストと割込み/CPUロック状態の参照
     650 *
     651 *  CPU例外の発生した時のシステム状態が,カーネル実行中でなく,タスクコ
     652 *  ンテキストであり,全割込みロック状態でなく,CPUロック状態でない時に
     653 *  true,そうでない時にfalseを返す(CPU例外がカーネル管理外の割込み処
     654 *  理中で発生した場合にもfalseを返す).
    662655 * 
    663  *  ƒJ[ƒlƒ‹ŽÀs’†‚Å‚È‚¢¨ (TIPM_LOCK== -15) Iƒtƒ‰ƒO == 1
     656 *  カーネル実行中でない→ (TIPM_LOCK== -15) Iフラグ == 1
    664657 *                         (else)           IPL < TIPM_LOCK
    665  *  ƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg‚Å‚ ‚遨intnest < 1
    666  *  ‘SŠ„ž‚݃ƒbƒN‚Å‚È‚¢¨ Iƒtƒ‰ƒO == 1
    667  *  CPUƒƒbƒNó‘Ô‚Å‚È‚¢¨(TIPM_LOCK== -15) Iƒtƒ‰ƒO == 1
     658 *  タスクコンテキストである→intnest < 1
     659 *  全割込みロックでない→ Iフラグ == 1
     660 *  CPUロック状態でない→(TIPM_LOCK== -15) Iフラグ == 1
    668661 *                         (else)           IPL < TIPM_LOCK
    669662 */
     
    689682
    690683/*
    691  *  ƒvƒƒZƒbƒTˆË‘¶‚̏‰Šú‰»
     684 *  プロセッサ依存の初期化
    692685 */
    693686extern void     prc_initialize( void );
    694687
    695688/*
    696  *  ƒvƒƒZƒbƒTˆË‘¶‚̏I—¹Žžˆ—
     689 *  プロセッサ依存の終了時処理
    697690 */
    698691extern void     prc_terminate( void );
     
    701694#ifndef OMIT_DEFAULT_INT_HANDLER
    702695/*
    703  *  –¢“o˜^‚ÌŠ„ž‚Ý‚ª”­¶‚µ‚½ê‡‚ɌĂяo‚³‚ê‚é
     696 *  未登録の割込みが発生した場合に呼び出される
    704697 */
    705698void default_int_handler( void );
     
    708701#ifndef OMIT_DEFAULT_EXC_HANDLER
    709702/*
    710  *  –¢“o˜^‚Ì—áŠO‚ª”­¶‚µ‚½ê‡‚ɌĂяo‚³‚ê‚é
     703 *  未登録の例外が発生した場合に呼び出される
    711704 */
    712705void default_exc_handler( void );
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_insn.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    99 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    1010 *
    11  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    12  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    13  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    14  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    15  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    16  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    17  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    18  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    19  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    21 ƒƒ“ƒgi—˜—p
    22  *      ŽÒƒ}ƒjƒ
    23 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    24  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    25  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    26  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    27  *      ‚ƁD
    28  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    29 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    30 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    31  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    32  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    33  *        •ñ‚·‚邱‚ƁD
    34  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    35  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     11 *  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
     12 *  によって公表されている GNU General Public License の Version 2 に記
     13 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     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プロジェクトを免責すること.
    3632 *
    37  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    38  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚à
    39  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    40  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     35 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     36 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4137 *
    4238 */
    4339
    4440/*
    45  *              ƒvƒƒZƒbƒT‚Ì“ÁŽê–½—߂̃Cƒ“ƒ‰ƒCƒ“ŠÖ”’è‹`iRX630—pj
     41 *              プロセッサの特殊命令のインライン関数定義(RX630用)
    4642 */
    4743
     
    6157
    6258/*
    63  *  Iƒtƒ‰ƒO, IPL‚ðŽæ“¾‚·‚邽‚߂̃}ƒNƒ’è‹`
     59 *  Iフラグ, IPLを取得するためのマクロ定義
    6460 */
    6561#define PSW_I_MASK              ( 0x00010000UL )
     
    6864
    6965/*
    70  *  ƒvƒƒZƒbƒTƒXƒe[ƒ^ƒXƒŒƒWƒXƒ^(PSW)‚ÌŒ»Ý’l‚̓Ǐo‚µ
     66 *  プロセッサステータスレジスタ(PSW)の現在値の読出し
    7167 */
    7268#pragma inline_asm      current_psw
     
    7975
    8076/*
    81  *  ƒvƒƒZƒbƒTƒXƒe[ƒ^ƒXƒŒƒWƒXƒ^(PSW)‚֐ݒè
     77 *  プロセッサステータスレジスタ(PSW)へ設定
    8278 */
    8379#pragma inline_asm      set_psw
     
    9086
    9187/*
    92  *  IPL‚ÌŒ»Ý’l‚̓Ǐo‚µ
     88 *  IPLの現在値の読出し
    9389 */
    9490Inline uint32_t
     
    10096
    10197/*
    102  *  IPL‚֐ݒè
     98 *  IPLへ設定
    10399 */
    104100Inline void
     
    110106
    111107/*
    112  *  NMI‚ðœ‚­‚·‚ׂĂ̊„ž‚Ý‚Ì‹ÖŽ~
     108 *  NMIを除くすべての割込みの禁止
    113109 */
    114110#pragma inline_asm      disint
     
    121117
    122118/*
    123  *  NMI‚ðœ‚­‚·‚ׂĂ̊„ž‚Ý‚Ì‹–‰Â
     119 *  NMIを除くすべての割込みの許可
    124120 */
    125121#pragma inline_asm      enaint
     
    132128
    133129/*
    134  *  ƒGƒ“ƒfƒBƒAƒ“•ÏŠ· 16bit
     130 *  エンディアン変換 16bit
    135131 */
    136132#pragma inline_asm      rev_endian_uint16
     
    142138
    143139/*
    144  *  ƒGƒ“ƒfƒBƒAƒ“•ÏŠ· 32bit
     140 *  エンディアン変換 32bit
    145141 */
    146142#pragma inline_asm      rev_endian_uint32
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_kernel.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    66 *
    7  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    8  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    9  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    10  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    11  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    15 ƒƒ“ƒgi—˜—p
    16  *      ŽÒƒ}ƒjƒ
    17 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    18  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    19  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21  *      ‚ƁD
    22  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    23 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    24 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    25  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    26  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    27  *        •ñ‚·‚邱‚ƁD
    28  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3329 *
    34  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    35  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    36  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    37  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38  *  ‚̐ӔC‚𕉂í‚È‚¢D
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    3935 *
    4036 */
    4137
    4238/*
    43  *              kernel.h‚̃vƒƒZƒbƒTˆË‘¶•”iRX630—pj
     39 *              kernel.hのプロセッサ依存部(RX630用)
    4440 *
    45  *  ‚±‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚́Ctarget_kernel.hi‚Ü‚½‚́C‚»‚±‚©‚çƒCƒ“ƒN
    46  *  ƒ‹[ƒh‚³‚ê‚éƒtƒ@ƒCƒ‹j‚Ì‚Ý‚©‚çƒCƒ“ƒNƒ‹[ƒh‚³‚ê‚éD‘¼‚̃tƒ@ƒCƒ‹‚©‚ç
    47  *  ’¼ÚƒCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚Í‚È‚ç‚È‚¢D
     41 *  このインクルードファイルは,target_kernel.h(または,そこからインク
     42 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     43 *  直接インクルードしてはならない.
    4844 */
    4945
     
    5248
    5349/*
    54  *  ƒJ[ƒlƒ‹–{‘Ì‚ðƒRƒ“ƒpƒCƒ‹‚·‚邽‚߂̃}ƒNƒ’è‹`
     50 *  カーネル本体をコンパイルするためのマクロ定義
    5551 *
    56  *  –{ŠÂ‹«‚Å‚Í1ŠÖ”‚ð1ƒIƒuƒWƒFƒNƒgƒtƒ@ƒCƒ‹‚ɃRƒ“ƒpƒCƒ‹‚·‚邱‚Æ‚ª‚Å‚«‚È‚¢‚½‚߁C
    57  *  ALLFUNCƒ}ƒNƒ‚ð’è‹`‚·‚éD
     52 *  本環境では1関数を1オブジェクトファイルにコンパイルすることができないため,
     53 *  ALLFUNCマクロを定義する.
    5854 */
    5955#define ALLFUNC
     
    6157
    6258/*
    63  *  ƒTƒ|[ƒg‚·‚é‹@”\‚Ì’è‹`
     59 *  サポートする機能の定義
    6460 */
    65 #define TOPPERS_TARGET_SUPPORT_DIS_INT          /* dis_int‚ðƒTƒ|[ƒg‚·‚é */
    66 #define TOPPERS_TARGET_SUPPORT_ENA_INT          /* ena_int‚ðƒTƒ|[ƒg‚·‚é */
     61#define TOPPERS_TARGET_SUPPORT_DIS_INT          /* dis_intをサポートする */
     62#define TOPPERS_TARGET_SUPPORT_ENA_INT          /* ena_intをサポートする */
    6763
    6864
    6965/*
    70  *  ƒJ[ƒlƒ‹ŠÇ—‚ÌŠ„ž‚Ý—Dæ“x‚͈̔Í
     66 *  カーネル管理の割込み優先度の範囲
    7167 *
    72  *  TMIN_INTPRI‚Ì’è‹`‚ð•ÏX‚·‚邱‚ƂŁC‚ǂ̃Œƒxƒ‹‚æ‚è‚à‚‚¢Š„ž‚Ý—Dæ“x
    73  *  ‚ðŽ‚Â‚à‚Ì‚ðƒJ[ƒlƒ‹ŠÇ—ŠO‚ÌŠ„ž‚Ý‚Æ‚·‚é‚©‚ð•ÏX‚Å‚«‚éD
     68 *  TMIN_INTPRIの定義を変更することで,どのレベルよりも高い割込み優先度
     69 *  を持つものをカーネル管理外の割込みとするかを変更できる.
    7470 *
    75  *  TMIN_INTPRI‚ɐݒè‚Å‚«‚é’l‚́C-15`-1‚͈̔͂ł ‚éD—Ⴆ‚ÎTMIN_INTPRI
    76  *  ‚ð-14‚ɐݒ肷‚é‚ƁCNMI‚ɉÁ‚¦‚ăŒƒxƒ‹7‚ÌŠ„ž‚Ý‚ªƒJ[ƒlƒ‹ŠÇ—ŠO‚Æ‚È‚éD
    77  *  TMIN_INTPRI‚ð-15‚ɐݒ肷‚é‚ƁCNMIˆÈŠO‚ɃJ[ƒlƒ‹ŠÇ—ŠO‚ÌŠ„ž‚Ý‚ð
    78  *  Ý‚¯‚È‚¢‚±‚Æ‚É‚È‚éD
     71 *  TMIN_INTPRIに設定できる値は,-15〜-1の範囲である.例えばTMIN_INTPRI
     72 *  を-14に設定すると,NMIに加えてレベル7の割込みがカーネル管理外となる.
     73 *  TMIN_INTPRIを-15に設定すると,NMI以外にカーネル管理外の割込みを
     74 *  設けないことになる.
    7975 */
    8076#ifndef TMIN_INTPRI
    81 #define TMIN_INTPRI             ( -15 )         /* Š„ž‚Ý—Dæ“x‚̍ŏ¬’liÅ‚’lj*/
     77#define TMIN_INTPRI             ( -15 )         /* 割込み優先度の最小値(最高値)*/
    8278#endif /* TMIN_INTPRI */
    83 #define TMAX_INTPRI             ( -1 )          /* Š„ž‚Ý—Dæ“x‚̍őå’liÅ’á’lj */
     79#define TMAX_INTPRI             ( -1 )          /* 割込み優先度の最大値(最低値) */
    8480
    8581
    8682/*
    87  *  Š„ž‚Ý‘®«‚Ì’è‹`
     83 *  割込み属性の定義
    8884 */
    89 #define TA_POSEDGE              TA_EDGE                 /* ƒ|ƒWƒeƒBƒuƒGƒbƒWƒgƒŠƒK */
    90 #define TA_NEGEDGE              UINT_C( 0x04 )  /* ƒlƒKƒeƒBƒuƒGƒbƒWƒgƒŠƒK */
    91 #define TA_BOTHEDGE             UINT_C( 0x08 )  /* —¼ƒGƒbƒWƒgƒŠƒK */
     85#define TA_POSEDGE              TA_EDGE                 /* ポジティブエッジトリガ */
     86#define TA_NEGEDGE              UINT_C( 0x04 )  /* ネガティブエッジトリガ */
     87#define TA_BOTHEDGE             UINT_C( 0x08 )  /* 両エッジトリガ */
    9288
    93 #define TA_LOWLEVEL             UINT_C( 0x10 )  /* LƒŒƒxƒ‹ */
     89#define TA_LOWLEVEL             UINT_C( 0x10 )  /* Lレベル */
    9490
    9591
    9692/*
    97  *  ƒfƒtƒHƒ‹ƒg‚ÌŠ„ž‚Ý/—áŠOƒnƒ“ƒhƒ‰‚Ì—L–³
     93 *  デフォルトの割込み/例外ハンドラの有無
    9894 */
    9995/*#define       OMIT_DEFAULT_INT_HANDLER*/
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_rename.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_sil.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    66 *
    7  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    8  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    9  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    10  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    11  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    15 ƒƒ“ƒgi—˜—p
    16  *      ŽÒƒ}ƒjƒ
    17 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    18  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    19  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21  *      ‚ƁD
    22  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    23 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    24 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    25  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    26  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    27  *        •ñ‚·‚邱‚ƁD
    28  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3329 *
    34  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    35  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    36  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    37  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38  *  ‚̐ӔC‚𕉂í‚È‚¢D
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    3935 *
    4036 */
    4137
    4238/*
    43  *              sil.h‚̃vƒƒZƒbƒTˆË‘¶•”iRX630—pj
     39 *              sil.hのプロセッサ依存部(RX630用)
    4440 */
    4541
     
    5349
    5450/*
    55  *  ‘SŠ„ž‚Ý‹ÖŽ~
     51 *  全割込み禁止
    5652 */
    5753Inline uint32_t
     
    6864
    6965/*
    70  *  ‘SŠ„ž‚Ý‹–‰Â
     66 *  全割込み許可
    7167 */
    7268Inline void
     
    8076
    8177/*
    82  *  ‘SŠ„ž‚݃ƒbƒNó‘Ԃ̐§Œä
     78 *  全割込みロック状態の制御
    8379 */
    8480#define SIL_PRE_LOC             uint32_t TOPPERS_i_psw;
     
    8884
    8985/*
    90  *  ƒGƒ“ƒfƒBƒAƒ“‚Ì”½“]
     86 *  エンディアンの反転
    9187 *
    92  *  –{ŠJ”­ŠÂ‹«‚ł̓Gƒ“ƒfƒBƒAƒ“•ÏŠ·–½—ß‚ª‘¶Ý‚·‚邽‚ß,
    93  *  ƒA[ƒLƒeƒNƒ`ƒƒˆË‘¶•”‚ɂă}ƒNƒ‚ðã‘‚«‚·‚é.
     88 *  本開発環境ではエンディアン変換命令が存在するため,
     89 *  アーキテクチャ依存部にてマクロを上書きする.
    9490 */
    9591#define TOPPERS_SIL_REV_ENDIAN_UINT16( data )   \
     
    10096
    10197/*
    102  *  ”÷­ŽžŠÔ‘Ò‚¿
     98 *  微少時間待ち
    10399 */
    104100extern void sil_dly_nse( ulong_t dlytim );
     
    108104
    109105/*
    110  *  ƒvƒƒZƒbƒT‚̃Gƒ“ƒfƒBƒAƒ“
     106 *  プロセッサのエンディアン
    111107 */
    112 #define SIL_ENDIAN_LITTLE                       /* ƒŠƒgƒ‹ƒGƒ“ƒfƒBƒAƒ“ */
     108#define SIL_ENDIAN_LITTLE                       /* リトルエンディアン */
    113109
    114110
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_stddef.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    66 *
    7  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    8  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    9  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    10  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    11  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    15 ƒƒ“ƒgi—˜—p
    16  *      ŽÒƒ}ƒjƒ
    17 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    18  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    19  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21  *      ‚ƁD
    22  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    23 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    24 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    25  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    26  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    27  *        •ñ‚·‚邱‚ƁD
    28  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3329 *
    34  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    35  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    36  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    37  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38  *  ‚̐ӔC‚𕉂í‚È‚¢D
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    3935 *
    4036 */
    4137
    4238/*
    43  *              t_stddef.h‚̃vƒƒZƒbƒTˆË‘¶•”iRX630—pj
     39 *              t_stddef.hのプロセッサ依存部(RX630用)
    4440 *
    45  *  ‚±‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚́Ctarget_stddef.hi‚Ü‚½‚́C‚»‚±‚©‚çƒCƒ“ƒN
    46  *  ƒ‹[ƒh‚³‚ê‚éƒtƒ@ƒCƒ‹j‚Ì‚Ý‚©‚çƒCƒ“ƒNƒ‹[ƒh‚³‚ê‚éD‘¼‚̃tƒ@ƒCƒ‹‚©‚ç
    47  *  ’¼ÚƒCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚Í‚È‚ç‚È‚¢D
     41 *  このインクルードファイルは,target_stddef.h(または,そこからインク
     42 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     43 *  直接インクルードしてはならない.
    4844 */
    4945
     
    5248
    5349/*
    54  *  ƒ^[ƒQƒbƒg‚ðŽ¯•Ê‚·‚邽‚߂̃}ƒNƒ‚Ì’è‹`
     50 *  ターゲットを識別するためのマクロの定義
    5551 */
    56 #define TOPPERS_RX630                           /* ƒvƒƒZƒbƒT—ªÌ */
     52#define TOPPERS_RX630                           /* プロセッサ略称 */
    5753
    5854#endif /* TOPPERS_PRC_STDDEF_H */
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_syssvc.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    77 *
    8  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì (1)`(4) ‚ÌðŒ‚©CFree Software Foundation
    9  *  ‚É‚æ‚Á‚ÄŒö•\‚³‚ê‚Ä‚¢‚é GNU General Public License ‚Ì Version 2 ‚É‹L
    10  *  q‚³‚ê‚Ä‚¢‚éðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒFƒAi–{ƒ\ƒtƒgƒEƒFƒA
    11  *  ‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü•ÏEÄ”z•ziˆÈ‰ºC
    12  *  —˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    13  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    14  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    15  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    16  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    17  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    18 ƒƒ“ƒgi—˜—p
    19  *      ŽÒƒ}ƒjƒ
    20 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    21  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    22  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    23  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    24  *      ‚ƁD
    25  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    26 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    27 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    28  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    29  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    30  *        •ñ‚·‚邱‚ƁD
    31  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    32  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
     8 *  上記著作権者は,以下の (1)〜(4) の条件か,Free Software Foundation
     9 *  によって公表されている GNU General Public License の Version 2 に記
     10 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     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プロジェクトを免責すること.
    3329 *
    34  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    35  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC‚»‚Ì“K—p‰Â”\«‚à
    36  *  ŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼
    37  *  Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»‚̐ӔC‚𕉂í‚È‚¢D
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     32 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     33 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    3834 *
    3935 */
    4036
    4137/*
    42  *              ƒeƒXƒgƒvƒƒOƒ‰ƒ€‚̃^[ƒQƒbƒgˆË‘¶’è‹`iRX630—pj
     38 *              テストプログラムのターゲット依存定義(RX630用)
    4339 */
    4440
     
    4743
    4844/*
    49  *  ‹N“®ƒƒbƒZ[ƒW‚Ƀ^[ƒQƒbƒgˆË‘¶•”‚Ì’˜ìŒ •\Ž¦‚ð
    50  *  ’ljÁ‚·‚邽‚߂̃}ƒNƒD
     45 *  起動メッセージにターゲット依存部の著作権表示を
     46 *  追加するためのマクロ.
    5147 */
    5248#define PRC_COPYRIGHT                                                                           \
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_test.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    55 *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
    66 *
    7  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    8  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    9  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    10  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    11  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    12  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    13  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    14  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    15 ƒƒ“ƒgi—˜—p
    16  *      ŽÒƒ}ƒjƒ
    17 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    18  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    19  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    20  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    21  *      ‚ƁD
    22  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    23 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    24 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    25  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    26  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    27  *        •ñ‚·‚邱‚ƁD
    28  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    29  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    30  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    31  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    32  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3329 *
    34  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    35  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    36  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    37  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    38  *  ‚̐ӔC‚𕉂í‚È‚¢D
     30 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     31 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     32 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     33 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     34 *  の責任を負わない.
    3935 *
    4036 */
    4137
    4238/*
    43  *              ƒeƒXƒgƒvƒƒOƒ‰ƒ€‚̃^[ƒQƒbƒgˆË‘¶’è‹`iRX630—pj
     39 *              テストプログラムのターゲット依存定義(RX630用)
    4440 */
    4541
     
    4743#define TOPPERS_PRC_TEST_H
    4844
    49 #define CPUEXC1                                 25              /* •‚“®¬”“_—áŠO */
     45#define CPUEXC1                                 25              /* 浮動小数点例外 */
    5046#define RAISE_CPU_EXCEPTION             trigger_cpu_exception()
    5147
  • uKadecot/trunk/ssp/arch/rx630_ccrx/prc_unrename.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
  • uKadecot/trunk/ssp/arch/rx630_ccrx/rx630.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    77 *
    8  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    9  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    10  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    11  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    12  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    16 ƒƒ“ƒgi—˜—p
    17  *      ŽÒƒ}ƒjƒ
    18 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    19  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    20  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚ƁD
    23  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    24 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    25 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    26  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    27  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    28  *        •ñ‚·‚邱‚ƁD
    29  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 */
    4238
    4339/*
    44  *  RX630‚Ɉˑ¶‚·‚é’è‹`
     40 *  RX630に依存する定義
    4541 */
    4642#ifndef TOPPERS_RX630_H
     
    4844
    4945/*
    50  *  CPU—áŠOƒnƒ“ƒhƒ‰”ԍ†‚Ì’è‹`(ŒÅ’èƒxƒNƒ^ƒe[ƒuƒ‹)
     46 *  CPU例外ハンドラ番号の定義(固定ベクタテーブル)
    5147 *
    52  *  ”ԍ†‚͈̔͂Í0 - 31
    53  */
    54 #define INT_PRIVILEGED_INSTRUNCTION             20              /* “ÁŒ –½—ß—áŠO */
    55 #define INT_UNDEF_INSTRUNCTION                  23              /* –¢’è‹`–½—ß—áŠO */
    56 #define INT_FLOATINGPOINT_INSTRUCTION   25              /* •‚“®¬”“_—áŠO */
    57 #define INT_NMI                                                 30              /* ƒmƒ“ƒ}ƒXƒJƒuƒ‹Š„‚荞‚Ý */
    58 #define INT_RESET                                               31              /* ƒŠƒZƒbƒg */
    59 
    60 /*
    61  *  Š„ž‚ݔԍ†‚Ì’è‹`(‰Â•ÏƒxƒNƒ^ƒe[ƒuƒ‹)
     48 *  番号の範囲は0 - 31
     49 */
     50#define INT_PRIVILEGED_INSTRUNCTION             20              /* 特権命令例外 */
     51#define INT_UNDEF_INSTRUNCTION                  23              /* 未定義命令例外 */
     52#define INT_FLOATINGPOINT_INSTRUCTION   25              /* 浮動小数点例外 */
     53#define INT_NMI                                                 30              /* ノンマスカブル割り込み */
     54#define INT_RESET                                               31              /* リセット */
     55
     56/*
     57 *  割込み番号の定義(可変ベクタテーブル)
    6258 */
    6359#define INT_BUSERR                      16
     
    248244
    249245/*
    250  *  Šeƒ‚ƒWƒ
    251 [ƒ‹‚̃ŒƒWƒXƒ^‹y‚ѐݒèƒrƒbƒgî•ñ
     246 *  各モジュールのレジスタ及び設定ビット情報
    252247 */
    253248
     
    255250
    256251/*
    257  * ƒ‚ƒWƒ
    258 [ƒ‹ƒXƒgƒbƒvƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^AiMSTPCRAj
     252 * モジュールストップコントロールレジスタA(MSTPCRA)
    259253 */
    260254#define SYSTEM_MSTPCRA_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080010 )
     
    294288
    295289/*
    296  * ƒ‚ƒWƒ
    297 [ƒ‹ƒXƒgƒbƒvƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^BiMSTPCRBj
     290 * モジュールストップコントロールレジスタB(MSTPCRB)
    298291 */
    299292#define SYSTEM_MSTPCRB_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080014 )
     
    332325
    333326/*
    334  * ƒ‚ƒWƒ
    335 [ƒ‹ƒXƒgƒbƒvƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^CiMSTPCRCj
     327 * モジュールストップコントロールレジスタC(MSTPCRC)
    336328 */
    337329#define SYSTEM_MSTPCRC_ADDR                     ( ( volatile uint32_t __evenaccess * )0x00080018 )
     
    370362
    371363/*
    372  * ƒNƒƒbƒN”­¶‰ñ˜H
     364 * クロック発生回路
    373365 */
    374366#define SYSTEM_SCKCR_ADDR                       ( ( volatile uint32_t __evenaccess * )0x00080020 )
     
    390382
    391383/*
    392  * ƒvƒƒeƒNƒgƒŒƒWƒXƒ^
     384 * プロテクトレジスタ
    393385 */
    394386#define SYSTEM_PRCR_ADDR                ( ( volatile uint16_t __evenaccess * )0x000803FE )
    395387
    396388/*
    397  * Š„‚荞‚Ý—v‹ƒŒƒWƒXƒ^
     389 * 割り込み要求レジスタ
    398390 */
    399391#define ICU_IR000_ADDR                  ( ( volatile uint8_t __evenaccess * )0x00087000 )
     
    656648
    657649/*
    658  * Š„‚荞‚Ý—v‹æÝ’背ƒWƒXƒ^
     650 * 割り込み要求先設定レジスタ
    659651 */
    660652#define ICU_ISELR000_ADDR               ( ( volatile uint8_t __evenaccess * )0x00087100 )
     
    917909
    918910/*
    919  * Š„‚荞‚Ý—v‹‹–‰ÂƒŒƒWƒXƒ^
     911 * 割り込み要求許可レジスタ
    920912 */
    921913#define ICU_IER02_ADDR                  ( ( volatile uint8_t __evenaccess * )0x00087202 )
     
    958950
    959951/*
    960  * Š„‚荞‚Ý—vˆöƒvƒ‰ƒCƒIƒŠƒeƒBƒŒƒWƒXƒ^i(i=0`253)‚̐ݒè
     952 * 割り込み要因プライオリティレジスタi(i=0〜253)の設定
    961953 */
    962954#define ICU_IPR000_ADDR                 ( ( volatile uint8_t __evenaccess * )0x00087300 )
     
    12201212
    12211213/*
    1222  *  IRQƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^
     1214 *  IRQコントロールレジスタ
    12231215 */
    12241216#define ICU_IRQ0_ADDR                   ( ( volatile uint8_t __evenaccess * )0x00087500 )
     
    12421234
    12431235/*
    1244  *  Šeƒ`ƒƒƒ“ƒlƒ‹‚̃ŒƒWƒXƒ^‹y‚ѐݒèƒrƒbƒgî•ñ
     1236 *  各チャンネルのレジスタ及び設定ビット情報
    12451237 */
    12461238#define CMT_CMSTR0_ADDR                 ( ( volatile uint16_t __evenaccess * )0x00088000 )
     
    13511343
    13521344/*
    1353  *  I/Oƒ|[ƒg‚̃ŒƒWƒXƒ^‹y‚ѐݒèƒrƒbƒgî•ñ
     1345 *  I/Oポートのレジスタ及び設定ビット情報
    13541346 */
    13551347#define PORT0_PDR_ADDR                  ( ( volatile uint8_t __evenaccess * )0x0008C000 )
     
    14851477
    14861478/*
    1487  *  ƒ}ƒ‹ƒ`ƒtƒ@ƒ“ƒNƒVƒ‡ƒ“ƒsƒ“ƒRƒ“ƒgƒ[ƒ‰‚̃ŒƒWƒXƒ^î•ñ
     1479 *  マルチファンクションピンコントローラのレジスタ情報
    14881480 */
    14891481#define MPC_PFUSB0_ADDR                 ( ( volatile uint8_t __evenaccess * )0x0008C114 )
     
    16241616
    16251617/*
    1626  * ƒŠƒAƒ‹ƒ^ƒCƒ€ƒNƒƒbƒN
     1618 * リアルタイムクロック
    16271619 */
    16281620#define RTC_R64CNT_ADDR                 ( ( volatile uint8_t __evenaccess * )0x0008C400 )
     
    16361628
    16371629/*
    1638  * 12 ƒrƒbƒgA/D ƒRƒ“ƒo[ƒ^
     1630 * 12 ビットA/D コンバータ
    16391631 */
    16401632#define S12AD_ADCSR_ADDR                ( ( volatile uint8_t __evenaccess * )0x00089000 )
     
    17751767
    17761768/*
    1777  *  UARTŠÖ˜A‚Ì’è‹`
     1769 *  UART関連の定義
    17781770 *
    1779  *  pdic‚Ìrx600/rx630_uart.c‚ÅŽg—p‚·‚éD
    1780  */
    1781 /*
    1782  *  ƒVƒŠƒAƒ‹I/O‚̌”
     1771 *  pdicのrx600/rx630_uart.cで使用する.
     1772 */
     1773/*
     1774 *  シリアルI/Oの個数
    17831775 */
    17841776#define TNUM_SIOP       ( 2 )
  • uKadecot/trunk/ssp/arch/rx630_ccrx/rx630.tf

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    11$
    2 $               ƒA[ƒLƒeƒNƒ`ƒƒˆË‘¶ƒeƒ“ƒvƒŒ[ƒgiRX630—pj
     2$               アーキテクチャ依存テンプレート(RX630用)
    33$
    44
     
    1111
    1212$
    13 Š„ž‚ݔԍ†‚ÆŠ„ž‚݃nƒ“ƒhƒ‰”ԍ†‚Ì’è‹`
     13割込み番号と割込みハンドラ番号の定義
    1414$
    15 $  RX630‚Å‚ÍŠ„ž‚ݔԍ†‚ÆŠ„ž‚݃nƒ“ƒhƒ‰”ԍ†‚ª1‘Î1‚őΉž‚·‚éD
     15$  RX630では割込み番号と割込みハンドラ番号が1対1で対応する.
    1616$
    1717
     
    2020
    2121$
    22 —áŠO”ԍ†‚Ì’è‹`
     22例外番号の定義
    2323$
    24 ŒÅ’èƒxƒNƒ^ƒe[ƒuƒ‹‚̃xƒNƒ^ƒe[ƒuƒ‹ƒAƒhƒŒƒX‚̏¬‚³‚¢‡”Ô‚É—áŠO”ԍ†‚ðŠ„U‚éD
    25 $  (—\–ñ—̈æ‚àŠÜ‚Þ)
     24固定ベクタテーブルのベクタテーブルアドレスの小さい順番に例外番号を割振る.
     25$  (予約領域も含む)
    2626$
    2727
     
    2929
    3030$
    31 $  INTŠ„ž‚݂̔ԍ†
     31$  INT割込みの番号
    3232$
    3333
     
    3535
    3636$
    37 Š„ž‚ݔԍ†CŠ„ž‚݃nƒ“ƒhƒ‰”ԍ†C—áŠO”ԍ†‚͈̔Í
     37割込み番号,割込みハンドラ番号,例外番号の範囲
    3838$
    39 $ (—\–ñ—̈æ‚àŠÜ‚Þ)
     39$ (予約領域も含む)
    4040$
    4141
     
    4545
    4646$
    47 ƒvƒƒZƒbƒTˆË‘¶‚̃eƒ“ƒvƒŒ[ƒgƒtƒ@ƒCƒ‹‚̃Cƒ“ƒNƒ‹[ƒh
     47プロセッサ依存のテンプレートファイルのインクルード
    4848$
    4949
  • uKadecot/trunk/ssp/arch/rx630_ccrx/rx630_config.c

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2013 by Mitsuhiro Matsuura
    77 *
    8  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    9  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    10  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    11  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    12  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    16 ƒƒ“ƒgi—˜—p
    17  *      ŽÒƒ}ƒjƒ
    18 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    19  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    20  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚ƁD
    23  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    24 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    25 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    26  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    27  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    28  *        •ñ‚·‚邱‚ƁD
    29  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 */
    4238
    4339/*
    44  *              ƒvƒƒZƒbƒTˆË‘¶ƒ‚ƒWƒ
    45 [ƒ‹iRX630—pj
     40 *              プロセッサ依存モジュール(RX630用)
    4641 */
    4742
     
    5045
    5146/*
    52  *  Š„ž‚Ý—vˆöƒvƒ‰ƒCƒIƒŠƒeƒBƒŒƒWƒXƒ^ƒAƒhƒŒƒXƒe[ƒuƒ‹
     47 *  割込み要因プライオリティレジスタアドレステーブル
    5348 */
    5449volatile uint8_t __evenaccess * const ipr_reg_addr[ INHNO_MAX ] = {
    55         NULL,                                                   /* No.0  —\–ñ */
    56         NULL,                                                   /* No.1  —\–ñ */
    57         NULL,                                                   /* No.2  —\–ñ */
    58         NULL,                                                   /* No.3  —\–ñ */
    59         NULL,                                                   /* No.4  —\–ñ */
    60         NULL,                                                   /* No.5  —\–ñ */
    61         NULL,                                                   /* No.6  —\–ñ */
    62         NULL,                                                   /* No.7  —\–ñ */
    63         NULL,                                                   /* No.8  —\–ñ */
    64         NULL,                                                   /* No.9  —\–ñ */
    65         NULL,                                                   /* No.10  —\–ñ */
    66         NULL,                                                   /* No.11  —\–ñ */
    67         NULL,                                                   /* No.12  —\–ñ */
    68         NULL,                                                   /* No.13  —\–ñ */
    69         NULL,                                                   /* No.14  —\–ñ */
    70         NULL,                                                   /* No.15  —\–ñ */
    71         ICU_IPR000_ADDR,                                /* No.16  ƒoƒXƒGƒ‰[ BUSERR */
    72         NULL,                                                   /* No.17  —\–ñ */
    73         NULL,                                                   /* No.18  —\–ñ */
    74         NULL,                                                   /* No.19  —\–ñ */
    75         NULL,                                                   /* No.20  —\–ñ */
     50        NULL,                                                   /* No.0  予約 */
     51        NULL,                                                   /* No.1  予約 */
     52        NULL,                                                   /* No.2  予約 */
     53        NULL,                                                   /* No.3  予約 */
     54        NULL,                                                   /* No.4  予約 */
     55        NULL,                                                   /* No.5  予約 */
     56        NULL,                                                   /* No.6  予約 */
     57        NULL,                                                   /* No.7  予約 */
     58        NULL,                                                   /* No.8  予約 */
     59        NULL,                                                   /* No.9  予約 */
     60        NULL,                                                   /* No.10  予約 */
     61        NULL,                                                   /* No.11  予約 */
     62        NULL,                                                   /* No.12  予約 */
     63        NULL,                                                   /* No.13  予約 */
     64        NULL,                                                   /* No.14  予約 */
     65        NULL,                                                   /* No.15  予約 */
     66        ICU_IPR000_ADDR,                                /* No.16  バスエラー BUSERR */
     67        NULL,                                                   /* No.17  予約 */
     68        NULL,                                                   /* No.18  予約 */
     69        NULL,                                                   /* No.19  予約 */
     70        NULL,                                                   /* No.20  予約 */
    7671        ICU_IPR001_ADDR,                                /* No.21  FCU FIFERR */
    77         NULL,                                                   /* No.22  —\–ñ */
     72        NULL,                                                   /* No.22  予約 */
    7873        ICU_IPR002_ADDR,                                /* No.23  FCU FRDYI */
    79         NULL,                                                   /* No.24  —\–ñ */
    80         NULL,                                                   /* No.25  —\–ñ */
    81         NULL,                                                   /* No.26  —\–ñ */
     74        NULL,                                                   /* No.24  予約 */
     75        NULL,                                                   /* No.25  予約 */
     76        NULL,                                                   /* No.26  予約 */
    8277        ICU_IPR003_ADDR,                                /* No.27  SWINT */
    83         ICU_IPR004_ADDR,                                /* No.28  CMTƒ†ƒjƒbƒg0 CMT0 */
    84         ICU_IPR005_ADDR,                                /* No.29  CMTƒ†ƒjƒbƒg0 CMT1 */
    85         ICU_IPR006_ADDR,                                /* No.30  CMTƒ†ƒjƒbƒg1 CMT2 */
    86         ICU_IPR007_ADDR,                                /* No.31  CMTƒ†ƒjƒbƒg1 CMT3 */
     78        ICU_IPR004_ADDR,                                /* No.28  CMTユニット0 CMT0 */
     79        ICU_IPR005_ADDR,                                /* No.29  CMTユニット0 CMT1 */
     80        ICU_IPR006_ADDR,                                /* No.30  CMTユニット1 CMT2 */
     81        ICU_IPR007_ADDR,                                /* No.31  CMTユニット1 CMT3 */
    8782        ICU_IPR032_ADDR,                                /* No.32  ETHER */
    8883        ICU_IPR033_ADDR,                                /* No.33  USB0 D0FIFO0 */
     
    113108        ICU_IPR056_ADDR,                                /* No.58  CAN RXM2 */
    114109        ICU_IPR056_ADDR,                                /* No.59  CAN TXM2 */
    115         NULL,                                                   /* No.60  —\–ñ */
    116         NULL,                                                   /* No.61  —\–ñ */
     110        NULL,                                                   /* No.60  予約 */
     111        NULL,                                                   /* No.61  予約 */
    117112        ICU_IPR062_ADDR,                                /* No.62  RTC PRD */
    118         NULL,                                                   /* No.63  —\–ñ */
    119         ICU_IPR064_ADDR,                                /* No.64  ŠO•”’[Žq IRQ0 */
    120         ICU_IPR065_ADDR,                                /* No.65  ŠO•”’[Žq IRQ1 */
    121         ICU_IPR066_ADDR,                                /* No.66  ŠO•”’[Žq IRQ2 */
    122         ICU_IPR067_ADDR,                                /* No.67  ŠO•”’[Žq IRQ3 */
    123         ICU_IPR068_ADDR,                                /* No.68  ŠO•”’[Žq IRQ4 */
    124         ICU_IPR069_ADDR,                                /* No.69  ŠO•”’[Žq IRQ5 */
    125         ICU_IPR070_ADDR,                                /* No.70  ŠO•”’[Žq IRQ6 */
    126         ICU_IPR071_ADDR,                                /* No.71  ŠO•”’[Žq IRQ7 */
    127         ICU_IPR072_ADDR,                                /* No.72  ŠO•”’[Žq IRQ8 */
    128         ICU_IPR073_ADDR,                                /* No.73  ŠO•”’[Žq IRQ9 */
    129         ICU_IPR074_ADDR,                                /* No.74  ŠO•”’[Žq IRQ10 */
    130         ICU_IPR075_ADDR,                                /* No.75  ŠO•”’[Žq IRQ11 */
    131         ICU_IPR076_ADDR,                                /* No.76  ŠO•”’[Žq IRQ12 */
    132         ICU_IPR077_ADDR,                                /* No.77  ŠO•”’[Žq IRQ13 */
    133         ICU_IPR078_ADDR,                                /* No.78  ŠO•”’[Žq IRQ14 */
    134         ICU_IPR079_ADDR,                                /* No.79  ŠO•”’[Žq IRQ15 */
    135         NULL,                                                   /* No.80  —\–ñ */
    136         NULL,                                                   /* No.81  —\–ñ */
    137         NULL,                                                   /* No.82  —\–ñ */
    138         NULL,                                                   /* No.83  —\–ñ */
    139         NULL,                                                   /* No.84  —\–ñ */
    140         NULL,                                                   /* No.85  —\–ñ */
    141         NULL,                                                   /* No.86  —\–ñ */
    142         NULL,                                                   /* No.87  —\–ñ */
    143         NULL,                                                   /* No.88  —\–ñ */
    144         NULL,                                                   /* No.89  —\–ñ */
     113        NULL,                                                   /* No.63  予約 */
     114        ICU_IPR064_ADDR,                                /* No.64  外部端子 IRQ0 */
     115        ICU_IPR065_ADDR,                                /* No.65  外部端子 IRQ1 */
     116        ICU_IPR066_ADDR,                                /* No.66  外部端子 IRQ2 */
     117        ICU_IPR067_ADDR,                                /* No.67  外部端子 IRQ3 */
     118        ICU_IPR068_ADDR,                                /* No.68  外部端子 IRQ4 */
     119        ICU_IPR069_ADDR,                                /* No.69  外部端子 IRQ5 */
     120        ICU_IPR070_ADDR,                                /* No.70  外部端子 IRQ6 */
     121        ICU_IPR071_ADDR,                                /* No.71  外部端子 IRQ7 */
     122        ICU_IPR072_ADDR,                                /* No.72  外部端子 IRQ8 */
     123        ICU_IPR073_ADDR,                                /* No.73  外部端子 IRQ9 */
     124        ICU_IPR074_ADDR,                                /* No.74  外部端子 IRQ10 */
     125        ICU_IPR075_ADDR,                                /* No.75  外部端子 IRQ11 */
     126        ICU_IPR076_ADDR,                                /* No.76  外部端子 IRQ12 */
     127        ICU_IPR077_ADDR,                                /* No.77  外部端子 IRQ13 */
     128        ICU_IPR078_ADDR,                                /* No.78  外部端子 IRQ14 */
     129        ICU_IPR079_ADDR,                                /* No.79  外部端子 IRQ15 */
     130        NULL,                                                   /* No.80  予約 */
     131        NULL,                                                   /* No.81  予約 */
     132        NULL,                                                   /* No.82  予約 */
     133        NULL,                                                   /* No.83  予約 */
     134        NULL,                                                   /* No.84  予約 */
     135        NULL,                                                   /* No.85  予約 */
     136        NULL,                                                   /* No.86  予約 */
     137        NULL,                                                   /* No.87  予約 */
     138        NULL,                                                   /* No.88  予約 */
     139        NULL,                                                   /* No.89  予約 */
    145140        ICU_IPR090_ADDR,                                /* No.90  USBR0 */
    146141        ICU_IPR091_ADDR,                                /* No.91  USBR1 */
    147142        ICU_IPR092_ADDR,                                /* No.92  RTC ALM */
    148143        ICU_IPR093_ADDR,                                /* No.93  RTC PRD */
    149         NULL,                                                   /* No.94  —\–ñ */
    150         NULL,                                                   /* No.95  —\–ñ */
    151         NULL,                                                   /* No.96  —\–ñ */
    152         NULL,                                                   /* No.97  —\–ñ */
     144        NULL,                                                   /* No.94  予約 */
     145        NULL,                                                   /* No.95  予約 */
     146        NULL,                                                   /* No.96  予約 */
     147        NULL,                                                   /* No.97  予約 */
    153148        ICU_IPR098_ADDR,                                /* No.98  AD ADI0 */
    154         NULL,                                                   /* No.99  —\–ñ */
    155         NULL,                                                   /* No.100  —\–ñ */
    156         NULL,                                                   /* No.101  —\–ñ */
     149        NULL,                                                   /* No.99  予約 */
     150        NULL,                                                   /* No.100  予約 */
     151        NULL,                                                   /* No.101  予約 */
    157152        ICU_IPR102_ADDR,                                /* No.102 S12AD S12ADIO */
    158         NULL,                                                   /* No.103  —\–ñ */
    159         NULL,                                                   /* No.104  —\–ñ */
    160         NULL,                                                   /* No.105  —\–ñ */
     153        NULL,                                                   /* No.103  予約 */
     154        NULL,                                                   /* No.104  予約 */
     155        NULL,                                                   /* No.105  予約 */
    161156        ICU_IPR106_ADDR,                                /* No.106 ICU GROUP0 */
    162157        ICU_IPR107_ADDR,                                /* No.107 ICU GROUP1 */
     
    166161        ICU_IPR111_ADDR,                                /* No.111 ICU GROUP5 */
    167162        ICU_IPR112_ADDR,                                /* No.112 ICU GROUP6 */
    168         NULL,                                                   /* No.113  —\–ñ */
     163        NULL,                                                   /* No.113  予約 */
    169164        ICU_IPR114_ADDR,                                /* No.114 ICU GROUP12 */
    170         NULL,                                                   /* No.115  —\–ñ */
    171         NULL,                                                   /* No.116  —\–ñ */
    172         NULL,                                                   /* No.117  —\–ñ */
    173         NULL,                                                   /* No.118  —\–ñ */
    174         NULL,                                                   /* No.119  —\–ñ */
    175         NULL,                                                   /* No.120  —\–ñ */
    176         NULL,                                                   /* No.121  —\–ñ */
     165        NULL,                                                   /* No.115  予約 */
     166        NULL,                                                   /* No.116  予約 */
     167        NULL,                                                   /* No.117  予約 */
     168        NULL,                                                   /* No.118  予約 */
     169        NULL,                                                   /* No.119  予約 */
     170        NULL,                                                   /* No.120  予約 */
     171        NULL,                                                   /* No.121  予約 */
    177172        ICU_IPR122_ADDR,                                /* No.122 SCI12 SCIX0 */
    178173        ICU_IPR123_ADDR,                                /* No.123 SCI12 SCIX1 */
     
    221216        ICU_IPR167_ADDR,                                /* No.166 POE OEI1 */
    222217        ICU_IPR167_ADDR,                                /* No.167 POE OEI2 */
    223         NULL,                                                   /* No.168  —\–ñ */
    224         NULL,                                                   /* No.169  —\–ñ */
     218        NULL,                                                   /* No.168  予約 */
     219        NULL,                                                   /* No.169  予約 */
    225220        ICU_IPR170_ADDR,                                /* No.170 TMR0 CMIA0 */
    226221        ICU_IPR170_ADDR,                                /* No.171 TMR0 CMIB0 */
     
    257252        ICU_IPR202_ADDR,                                /* No.202 EXDMAC EXDMACI0 */
    258253        ICU_IPR203_ADDR,                                /* No.203 EXDMAC EXDMACI1 */
    259         NULL,                                                   /* No.204  —\–ñ */
    260         NULL,                                                   /* No.205  —\–ñ */
    261         NULL,                                                   /* No.206  —\–ñ */
    262         NULL,                                                   /* No.207  —\–ñ */
    263         NULL,                                                   /* No.208  —\–ñ */
    264         NULL,                                                   /* No.209  —\–ñ */
    265         NULL,                                                   /* No.210  —\–ñ */
    266         NULL,                                                   /* No.211  —\–ñ */
    267         NULL,                                                   /* No.212  —\–ñ */
    268         NULL,                                                   /* No.213  —\–ñ */
     254        NULL,                                                   /* No.204  予約 */
     255        NULL,                                                   /* No.205  予約 */
     256        NULL,                                                   /* No.206  予約 */
     257        NULL,                                                   /* No.207  予約 */
     258        NULL,                                                   /* No.208  予約 */
     259        NULL,                                                   /* No.209  予約 */
     260        NULL,                                                   /* No.210  予約 */
     261        NULL,                                                   /* No.211  予約 */
     262        NULL,                                                   /* No.212  予約 */
     263        NULL,                                                   /* No.213  予約 */
    269264        ICU_IPR214_ADDR,                                /* No.214 SCI0 RXI0 */
    270265        ICU_IPR214_ADDR,                                /* No.215 SCI0 TXI0 */
     
    307302        ICU_IPR250_ADDR,                                /* No.252 SCI12 TEI12 */
    308303        ICU_IPR253_ADDR,                                /* No.253 IEB IEBINT */
    309         NULL,                                                   /* No.254  —\–ñ */
    310         NULL,                                                   /* No.255  —\–ñ */
     304        NULL,                                                   /* No.254  予約 */
     305        NULL,                                                   /* No.255  予約 */
    311306};
    312307
    313308
    314309/*
    315  *  Š„ž‚Ý—v‹‹–‰ÂƒŒƒWƒXƒ^ƒAƒhƒŒƒXƒe[ƒuƒ‹
     310 *  割込み要求許可レジスタアドレステーブル
    316311 */
    317312const IER_INFO ier_reg_addr[ INHNO_MAX ] = {
    318         { NULL, INVALID_OFFSET },                       /* No.0   —\–ñ */
    319         { NULL, INVALID_OFFSET },                       /* No.1   —\–ñ */
    320         { NULL, INVALID_OFFSET },                       /* No.2   —\–ñ */
    321         { NULL, INVALID_OFFSET },                       /* No.3   —\–ñ */
    322         { NULL, INVALID_OFFSET },                       /* No.4   —\–ñ */
    323         { NULL, INVALID_OFFSET },                       /* No.5   —\–ñ */
    324         { NULL, INVALID_OFFSET },                       /* No.6   —\–ñ */
    325         { NULL, INVALID_OFFSET },                       /* No.7   —\–ñ */
    326         { NULL, INVALID_OFFSET },                       /* No.8   —\–ñ */
    327         { NULL, INVALID_OFFSET },                       /* No.9   —\–ñ */
    328         { NULL, INVALID_OFFSET },                       /* No.10  —\–ñ */
    329         { NULL, INVALID_OFFSET },                       /* No.11  —\–ñ */
    330         { NULL, INVALID_OFFSET },                       /* No.12  —\–ñ */
    331         { NULL, INVALID_OFFSET },                       /* No.13  —\–ñ */
    332         { NULL, INVALID_OFFSET },                       /* No.14  —\–ñ */
    333         { NULL, INVALID_OFFSET },                       /* No.15  —\–ñ */
    334         { ICU_IER02_ADDR, ICU_IEN0_BIT },       /* No.16  ƒoƒXƒGƒ‰[ BUSERR */
    335         { NULL, INVALID_OFFSET },                       /* No.17  —\–ñ */
    336         { NULL, INVALID_OFFSET },                       /* No.18  —\–ñ */
    337         { NULL, INVALID_OFFSET },                       /* No.19  —\–ñ */
    338         { NULL, INVALID_OFFSET },                       /* No.20  —\–ñ */
     313        { NULL, INVALID_OFFSET },                       /* No.0   予約 */
     314        { NULL, INVALID_OFFSET },                       /* No.1   予約 */
     315        { NULL, INVALID_OFFSET },                       /* No.2   予約 */
     316        { NULL, INVALID_OFFSET },                       /* No.3   予約 */
     317        { NULL, INVALID_OFFSET },                       /* No.4   予約 */
     318        { NULL, INVALID_OFFSET },                       /* No.5   予約 */
     319        { NULL, INVALID_OFFSET },                       /* No.6   予約 */
     320        { NULL, INVALID_OFFSET },                       /* No.7   予約 */
     321        { NULL, INVALID_OFFSET },                       /* No.8   予約 */
     322        { NULL, INVALID_OFFSET },                       /* No.9   予約 */
     323        { NULL, INVALID_OFFSET },                       /* No.10  予約 */
     324        { NULL, INVALID_OFFSET },                       /* No.11  予約 */
     325        { NULL, INVALID_OFFSET },                       /* No.12  予約 */
     326        { NULL, INVALID_OFFSET },                       /* No.13  予約 */
     327        { NULL, INVALID_OFFSET },                       /* No.14  予約 */
     328        { NULL, INVALID_OFFSET },                       /* No.15  予約 */
     329        { ICU_IER02_ADDR, ICU_IEN0_BIT },       /* No.16  バスエラー BUSERR */
     330        { NULL, INVALID_OFFSET },                       /* No.17  予約 */
     331        { NULL, INVALID_OFFSET },                       /* No.18  予約 */
     332        { NULL, INVALID_OFFSET },                       /* No.19  予約 */
     333        { NULL, INVALID_OFFSET },                       /* No.20  予約 */
    339334        { ICU_IER02_ADDR, ICU_IEN5_BIT },       /* No.21  FCU FIFERR */
    340         { NULL, INVALID_OFFSET },                       /* No.22  —\–ñ */
     335        { NULL, INVALID_OFFSET },                       /* No.22  予約 */
    341336        { ICU_IER02_ADDR, ICU_IEN7_BIT },       /* No.23  FCU FRDYI */
    342         { NULL, INVALID_OFFSET },                       /* No.24  —\–ñ */
    343         { NULL, INVALID_OFFSET },                       /* No.25  —\–ñ */
    344         { NULL, INVALID_OFFSET },                       /* No.26  —\–ñ */
     337        { NULL, INVALID_OFFSET },                       /* No.24  予約 */
     338        { NULL, INVALID_OFFSET },                       /* No.25  予約 */
     339        { NULL, INVALID_OFFSET },                       /* No.26  予約 */
    345340        { ICU_IER03_ADDR, ICU_IEN3_BIT },       /* No.27  SWINT */
    346         { ICU_IER03_ADDR, ICU_IEN4_BIT },       /* No.28  CMTƒ†ƒjƒbƒg0 CMT0 */
    347         { ICU_IER03_ADDR, ICU_IEN5_BIT },       /* No.29  CMTƒ†ƒjƒbƒg0 CMT1 */
    348         { ICU_IER03_ADDR, ICU_IEN6_BIT },       /* No.30  CMTƒ†ƒjƒbƒg1 CMT2 */
    349         { ICU_IER03_ADDR, ICU_IEN7_BIT },       /* No.31  CMTƒ†ƒjƒbƒg1 CMT3 */
     341        { ICU_IER03_ADDR, ICU_IEN4_BIT },       /* No.28  CMTユニット0 CMT0 */
     342        { ICU_IER03_ADDR, ICU_IEN5_BIT },       /* No.29  CMTユニット0 CMT1 */
     343        { ICU_IER03_ADDR, ICU_IEN6_BIT },       /* No.30  CMTユニット1 CMT2 */
     344        { ICU_IER03_ADDR, ICU_IEN7_BIT },       /* No.31  CMTユニット1 CMT3 */
    350345        { ICU_IER04_ADDR, ICU_IEN0_BIT },       /* No.32  ETHER */
    351346        { ICU_IER04_ADDR, ICU_IEN1_BIT },       /* No.33  USB0 D0FIFO0 */
     
    376371        { ICU_IER07_ADDR, ICU_IEN2_BIT },       /* No.58  CAN2 RXM2 */
    377372        { ICU_IER07_ADDR, ICU_IEN3_BIT },       /* No.59  CAN2 TXM2 */
    378         { NULL, INVALID_OFFSET },                       /* No.60  —\–ñ */
    379         { NULL, INVALID_OFFSET },                       /* No.61  —\–ñ */
     373        { NULL, INVALID_OFFSET },                       /* No.60  予約 */
     374        { NULL, INVALID_OFFSET },                       /* No.61  予約 */
    380375        { ICU_IER07_ADDR, ICU_IEN6_BIT },       /* No.62  RTC PRD */
    381         { NULL, INVALID_OFFSET },                       /* No.63  —\–ñ */
    382         { ICU_IER08_ADDR, ICU_IEN0_BIT },       /* No.64  ŠO•”’[Žq IRQ0 */
    383         { ICU_IER08_ADDR, ICU_IEN1_BIT },       /* No.65  ŠO•”’[Žq IRQ1 */
    384         { ICU_IER08_ADDR, ICU_IEN2_BIT },       /* No.66  ŠO•”’[Žq IRQ2 */
    385         { ICU_IER08_ADDR, ICU_IEN3_BIT },       /* No.67  ŠO•”’[Žq IRQ3 */
    386         { ICU_IER08_ADDR, ICU_IEN4_BIT },       /* No.68  ŠO•”’[Žq IRQ4 */
    387         { ICU_IER08_ADDR, ICU_IEN5_BIT },       /* No.69  ŠO•”’[Žq IRQ5 */
    388         { ICU_IER08_ADDR, ICU_IEN6_BIT },       /* No.70  ŠO•”’[Žq IRQ6 */
    389         { ICU_IER08_ADDR, ICU_IEN7_BIT },       /* No.71  ŠO•”’[Žq IRQ7 */
    390         { ICU_IER09_ADDR, ICU_IEN0_BIT },       /* No.72  ŠO•”’[Žq IRQ8 */
    391         { ICU_IER09_ADDR, ICU_IEN1_BIT },       /* No.73  ŠO•”’[Žq IRQ9 */
    392         { ICU_IER09_ADDR, ICU_IEN2_BIT },       /* No.74  ŠO•”’[Žq IRQ10 */
    393         { ICU_IER09_ADDR, ICU_IEN3_BIT },       /* No.75  ŠO•”’[Žq IRQ11 */
    394         { ICU_IER09_ADDR, ICU_IEN4_BIT },       /* No.76  ŠO•”’[Žq IRQ12 */
    395         { ICU_IER09_ADDR, ICU_IEN5_BIT },       /* No.77  ŠO•”’[Žq IRQ13 */
    396         { ICU_IER09_ADDR, ICU_IEN6_BIT },       /* No.78  ŠO•”’[Žq IRQ14 */
    397         { ICU_IER09_ADDR, ICU_IEN7_BIT },       /* No.79  ŠO•”’[Žq IRQ15 */
    398         { NULL, INVALID_OFFSET },                       /* No.80  —\–ñ */
    399         { NULL, INVALID_OFFSET },                       /* No.81  —\–ñ */
    400         { NULL, INVALID_OFFSET },                       /* No.82  —\–ñ */
    401         { NULL, INVALID_OFFSET },                       /* No.83  —\–ñ */
    402         { NULL, INVALID_OFFSET },                       /* No.84  —\–ñ */
    403         { NULL, INVALID_OFFSET },                       /* No.85  —\–ñ */
    404         { NULL, INVALID_OFFSET },                       /* No.86  —\–ñ */
    405         { NULL, INVALID_OFFSET },                       /* No.87  —\–ñ */
    406         { NULL, INVALID_OFFSET },                       /* No.88  —\–ñ */
    407         { NULL, INVALID_OFFSET },                       /* No.89  —\–ñ */
     376        { NULL, INVALID_OFFSET },                       /* No.63  予約 */
     377        { ICU_IER08_ADDR, ICU_IEN0_BIT },       /* No.64  外部端子 IRQ0 */
     378        { ICU_IER08_ADDR, ICU_IEN1_BIT },       /* No.65  外部端子 IRQ1 */
     379        { ICU_IER08_ADDR, ICU_IEN2_BIT },       /* No.66  外部端子 IRQ2 */
     380        { ICU_IER08_ADDR, ICU_IEN3_BIT },       /* No.67  外部端子 IRQ3 */
     381        { ICU_IER08_ADDR, ICU_IEN4_BIT },       /* No.68  外部端子 IRQ4 */
     382        { ICU_IER08_ADDR, ICU_IEN5_BIT },       /* No.69  外部端子 IRQ5 */
     383        { ICU_IER08_ADDR, ICU_IEN6_BIT },       /* No.70  外部端子 IRQ6 */
     384        { ICU_IER08_ADDR, ICU_IEN7_BIT },       /* No.71  外部端子 IRQ7 */
     385        { ICU_IER09_ADDR, ICU_IEN0_BIT },       /* No.72  外部端子 IRQ8 */
     386        { ICU_IER09_ADDR, ICU_IEN1_BIT },       /* No.73  外部端子 IRQ9 */
     387        { ICU_IER09_ADDR, ICU_IEN2_BIT },       /* No.74  外部端子 IRQ10 */
     388        { ICU_IER09_ADDR, ICU_IEN3_BIT },       /* No.75  外部端子 IRQ11 */
     389        { ICU_IER09_ADDR, ICU_IEN4_BIT },       /* No.76  外部端子 IRQ12 */
     390        { ICU_IER09_ADDR, ICU_IEN5_BIT },       /* No.77  外部端子 IRQ13 */
     391        { ICU_IER09_ADDR, ICU_IEN6_BIT },       /* No.78  外部端子 IRQ14 */
     392        { ICU_IER09_ADDR, ICU_IEN7_BIT },       /* No.79  外部端子 IRQ15 */
     393        { NULL, INVALID_OFFSET },                       /* No.80  予約 */
     394        { NULL, INVALID_OFFSET },                       /* No.81  予約 */
     395        { NULL, INVALID_OFFSET },                       /* No.82  予約 */
     396        { NULL, INVALID_OFFSET },                       /* No.83  予約 */
     397        { NULL, INVALID_OFFSET },                       /* No.84  予約 */
     398        { NULL, INVALID_OFFSET },                       /* No.85  予約 */
     399        { NULL, INVALID_OFFSET },                       /* No.86  予約 */
     400        { NULL, INVALID_OFFSET },                       /* No.87  予約 */
     401        { NULL, INVALID_OFFSET },                       /* No.88  予約 */
     402        { NULL, INVALID_OFFSET },                       /* No.89  予約 */
    408403        { ICU_IER0B_ADDR, ICU_IEN2_BIT },       /* No.90  USBR0 */
    409404        { ICU_IER0B_ADDR, ICU_IEN3_BIT },       /* No.91  USBR1 */
    410405        { ICU_IER0B_ADDR, ICU_IEN4_BIT },       /* No.92  RTC ALM */
    411406        { ICU_IER0B_ADDR, ICU_IEN5_BIT },       /* No.92  RTC PRD */
    412         { NULL, INVALID_OFFSET },                       /* No.94  —\–ñ */
    413         { NULL, INVALID_OFFSET },                       /* No.95  —\–ñ */
    414         { NULL, INVALID_OFFSET },                       /* No.96  —\–ñ */
    415         { NULL, INVALID_OFFSET },                       /* No.97  —\–ñ */
     407        { NULL, INVALID_OFFSET },                       /* No.94  予約 */
     408        { NULL, INVALID_OFFSET },                       /* No.95  予約 */
     409        { NULL, INVALID_OFFSET },                       /* No.96  予約 */
     410        { NULL, INVALID_OFFSET },                       /* No.97  予約 */
    416411        { ICU_IER0C_ADDR, ICU_IEN2_BIT },       /* No.98  AD0 ADI0 */
    417         { NULL, INVALID_OFFSET },                       /* No.99  —\–ñ */
    418         { NULL, INVALID_OFFSET },                       /* No.100 —\–ñ */
    419         { NULL, INVALID_OFFSET },                       /* No.101 —\–ñ */
     412        { NULL, INVALID_OFFSET },                       /* No.99  予約 */
     413        { NULL, INVALID_OFFSET },                       /* No.100 予約 */
     414        { NULL, INVALID_OFFSET },                       /* No.101 予約 */
    420415        { ICU_IER0C_ADDR, ICU_IEN6_BIT },       /* No.102 S12AD S12ADI00 */
    421         { NULL, INVALID_OFFSET },                       /* No.103 —\–ñ */
    422         { NULL, INVALID_OFFSET },                       /* No.104 —\–ñ */
    423         { NULL, INVALID_OFFSET },                       /* No.105 —\–ñ */
     416        { NULL, INVALID_OFFSET },                       /* No.103 予約 */
     417        { NULL, INVALID_OFFSET },                       /* No.104 予約 */
     418        { NULL, INVALID_OFFSET },                       /* No.105 予約 */
    424419        { ICU_IER0D_ADDR, ICU_IEN2_BIT },       /* No.106 ICU GROUP0 */
    425420        { ICU_IER0D_ADDR, ICU_IEN3_BIT },       /* No.107 ICU GROUP1 */
     
    429424        { ICU_IER0D_ADDR, ICU_IEN7_BIT },       /* No.111 ICU GROUP5 */
    430425        { ICU_IER0E_ADDR, ICU_IEN0_BIT },       /* No.112 ICU GROUP6 */
    431         { NULL, INVALID_OFFSET },                       /* No.113 —\–ñ */
     426        { NULL, INVALID_OFFSET },                       /* No.113 予約 */
    432427        { ICU_IER0E_ADDR, ICU_IEN1_BIT },       /* No.114 ICU GROUP12 */
    433         { NULL, INVALID_OFFSET },                       /* No.115 —\–ñ */
    434         { NULL, INVALID_OFFSET },                       /* No.116 —\–ñ */
    435         { NULL, INVALID_OFFSET },                       /* No.117 —\–ñ */
    436         { NULL, INVALID_OFFSET },                       /* No.118 —\–ñ */
    437         { NULL, INVALID_OFFSET },                       /* No.119 —\–ñ */
    438         { NULL, INVALID_OFFSET },                       /* No.120 —\–ñ */
    439         { NULL, INVALID_OFFSET },                       /* No.121 —\–ñ */
     428        { NULL, INVALID_OFFSET },                       /* No.115 予約 */
     429        { NULL, INVALID_OFFSET },                       /* No.116 予約 */
     430        { NULL, INVALID_OFFSET },                       /* No.117 予約 */
     431        { NULL, INVALID_OFFSET },                       /* No.118 予約 */
     432        { NULL, INVALID_OFFSET },                       /* No.119 予約 */
     433        { NULL, INVALID_OFFSET },                       /* No.120 予約 */
     434        { NULL, INVALID_OFFSET },                       /* No.121 予約 */
    440435        { ICU_IER0F_ADDR, ICU_IEN2_BIT },       /* No.122 SCI12 SCIX0 */
    441436        { ICU_IER0F_ADDR, ICU_IEN3_BIT },       /* No.123 SCI12 SCIX1 */
     
    484479        { ICU_IER14_ADDR, ICU_IEN6_BIT },       /* No.166 POE OEI1 */
    485480        { ICU_IER14_ADDR, ICU_IEN7_BIT },       /* No.167 POE OEI2 */
    486         { NULL, INVALID_OFFSET },                       /* No.168 —\–ñ */
    487         { NULL, INVALID_OFFSET },                       /* No.169 —\–ñ */
     481        { NULL, INVALID_OFFSET },                       /* No.168 予約 */
     482        { NULL, INVALID_OFFSET },                       /* No.169 予約 */
    488483        { ICU_IER15_ADDR, ICU_IEN2_BIT },       /* No.170 TMR0 CMIA0 */
    489484        { ICU_IER15_ADDR, ICU_IEN3_BIT },       /* No.171 TMR0 CMIB0 */
     
    520515        { ICU_IER19_ADDR, ICU_IEN2_BIT },       /* No.202 EXDMAC EXDMAC0I */
    521516        { ICU_IER19_ADDR, ICU_IEN3_BIT },       /* No.203 EXDMAC EXDMAC1I */
    522         { NULL, INVALID_OFFSET },                       /* No.204 —\–ñ */
    523         { NULL, INVALID_OFFSET },                       /* No.205 —\–ñ */
    524         { NULL, INVALID_OFFSET },                       /* No.206 —\–ñ */
    525         { NULL, INVALID_OFFSET },                       /* No.207 —\–ñ */
    526         { NULL, INVALID_OFFSET },                       /* No.208 —\–ñ */
    527         { NULL, INVALID_OFFSET },                       /* No.209 —\–ñ */
    528         { NULL, INVALID_OFFSET },                       /* No.210 —\–ñ */
    529         { NULL, INVALID_OFFSET },                       /* No.211 —\–ñ */
    530         { NULL, INVALID_OFFSET },                       /* No.212 —\–ñ */
    531         { NULL, INVALID_OFFSET },                       /* No.213 —\–ñ */
     517        { NULL, INVALID_OFFSET },                       /* No.204 予約 */
     518        { NULL, INVALID_OFFSET },                       /* No.205 予約 */
     519        { NULL, INVALID_OFFSET },                       /* No.206 予約 */
     520        { NULL, INVALID_OFFSET },                       /* No.207 予約 */
     521        { NULL, INVALID_OFFSET },                       /* No.208 予約 */
     522        { NULL, INVALID_OFFSET },                       /* No.209 予約 */
     523        { NULL, INVALID_OFFSET },                       /* No.210 予約 */
     524        { NULL, INVALID_OFFSET },                       /* No.211 予約 */
     525        { NULL, INVALID_OFFSET },                       /* No.212 予約 */
     526        { NULL, INVALID_OFFSET },                       /* No.213 予約 */
    532527        { ICU_IER1A_ADDR, ICU_IEN6_BIT },       /* No.214 SCI0 RXI0 */
    533528        { ICU_IER1A_ADDR, ICU_IEN7_BIT },       /* No.215 SCI0 TXI0 */
     
    570565        { ICU_IER1F_ADDR, ICU_IEN4_BIT },       /* No.252 SCI12 TEI12 */
    571566        { ICU_IER1F_ADDR, ICU_IEN5_BIT },       /* No.253 IEB IEBINT */
    572         { NULL, INVALID_OFFSET },                       /* No.254 —\–ñ */
    573         { NULL, INVALID_OFFSET },                       /* No.255 —\–ñ */
     567        { NULL, INVALID_OFFSET },                       /* No.254 予約 */
     568        { NULL, INVALID_OFFSET },                       /* No.255 予約 */
    574569};
    575570
    576571
    577572/*
    578  *  IRQƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^ƒAƒhƒŒƒXƒe[ƒuƒ‹
     573 *  IRQコントロールレジスタアドレステーブル
    579574 */
    580575volatile uint8_t __evenaccess * const irqcr_reg_addr[ IRQ_MAX ] = {
  • uKadecot/trunk/ssp/arch/rx630_ccrx/rx630_config.h

    • Property svn:mime-type changed from text/plain to text/plain; charset=SHIFT_JIS
    r101 r107  
    66 *  Copyright (C) 2013      by Mitsuhiro Matsuura
    77 *
    8  *  ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
    9  *  ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
    10  *  •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
    11  *  (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
    12  *      Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
    13  *      ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
    14  *  (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    15  *      —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ
    16 ƒƒ“ƒgi—˜—p
    17  *      ŽÒƒ}ƒjƒ
    18 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
    19  *      ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    20  *  (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
    21  *      —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
    22  *      ‚ƁD
    23  *    (a) Ä”z•z‚É”º‚¤ƒhƒLƒ
    24 ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ
    25 ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
    26  *        ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
    27  *    (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
    28  *        •ñ‚·‚邱‚ƁD
    29  *  (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
    30  *      ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
    31  *      ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
    32  *      —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
    33  *      –Ɛӂ·‚邱‚ƁD
     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 *      免責すること.
    3430 *
    35  *  –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
    36  *  ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
    37  *  ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
    38  *  ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
    39  *  ‚̐ӔC‚𕉂í‚È‚¢D
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    4036 *
    4137 */
    4238
    4339/*
    44  *              ƒvƒƒZƒbƒTˆË‘¶ƒ‚ƒWƒ
    45 [ƒ‹iRX630—pj
     40 *              プロセッサ依存モジュール(RX630用)
    4641 *
    47  *  ‚±‚̃Cƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚́Ctarget_config.hi‚Ü‚½‚́C‚»‚±‚©‚çƒCƒ“ƒN
    48  *  ƒ‹[ƒh‚³‚ê‚éƒtƒ@ƒCƒ‹j‚Ì‚Ý‚©‚çƒCƒ“ƒNƒ‹[ƒh‚³‚ê‚éD‘¼‚̃tƒ@ƒCƒ‹‚©‚ç
    49  *  ’¼ÚƒCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚Í‚È‚ç‚È‚¢D
     42 *  このインクルードファイルは,target_config.h(または,そこからインク
     43 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     44 *  直接インクルードしてはならない.
    5045 */
    5146
     
    5651
    5752/*
    58  *  Š„ž‚Ý—vˆö”
     53 *  割込み要因数
    5954 */
    6055#define INHNO_MAX       UINT_C( 256 )
     
    6257
    6358/*
    64  *  Š„ž‚ݐ§Œä—pŒ^’è‹`
     59 *  割込み制御用型定義
    6560 */
    6661typedef struct ier_info {
     
    7166
    7267/*
    73  *  Š„ž‚ݐ§Œä—p’è‹`
     68 *  割込み制御用定義
    7469 */
    7570#define INVALID_OFFSET                          ( 0xFFU )
     
    8277
    8378/*
    84  *  Š„ž‚ݐ§Œä—pƒe[ƒuƒ‹
     79 *  割込み制御用テーブル
    8580 */
    8681
    87 /* Š„ž‚Ý—vˆöƒvƒ‰ƒCƒIƒŠƒeƒBƒŒƒWƒXƒ^ƒAƒhƒŒƒX */
     82/* 割込み要因プライオリティレジスタアドレス */
    8883extern volatile uint8_t __evenaccess * const ipr_reg_addr[];
    89 /* Š„ž‚Ý—v‹‹–‰ÂƒŒƒWƒXƒ^ƒAƒhƒŒƒX */
     84/* 割込み要求許可レジスタアドレス */
    9085extern const IER_INFO ier_reg_addr[];
    91 /* Š„ž‚Ý—v‹ƒŒƒWƒXƒ^ƒAƒhƒŒƒX */
     86/* 割込み要求レジスタアドレス */
    9287extern volatile uint8_t __evenaccess * const ir_reg_addr[];
    93 /* IRQƒRƒ“ƒgƒ[ƒ‹ƒŒƒWƒXƒ^ƒAƒhƒŒƒX */
     88/* IRQコントロールレジスタアドレス */
    9489extern volatile uint8_t __evenaccess * const irqcr_reg_addr[];
    9590
    9691
    9792/*
    98  *  ƒvƒƒZƒbƒTˆË‘¶ƒ‚ƒWƒ
    99 [ƒ‹iRX630—pj
     93 *  プロセッサ依存モジュール(RX630用)
    10094 */
    10195#include "rx630_ccrx/prc_config.h"
Note: See TracChangeset for help on using the changeset viewer.