Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

Location:
EcnlProtoTool/trunk/asp3_dcre/arch
Files:
47 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/Makefile.core

    • Property svn:mime-type changed from text/x-makefile to text/x-makefile;charset=UTF-8
    r270 r321  
    11#
    2 #               Makefileのコア依存部(ARM用)
     2#               Makefileのコア依存部(ARM用)
    33#
    4 #  $Id: Makefile.core 572 2016-02-01 14:40:09Z ertl-hiro $
     4#  $Id$
    55#
    66
    77#
    8 ã‚³ã‚¢ä¾å­˜éƒ¨ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåã®å®šç¾©
     8コア依存部ディレクトリ名の定義
    99#
    1010COREDIR = $(SRCDIR)/arch/$(CORE)_$(TOOL)/common
    1111
    1212#
    13 ãƒ„ール依存部ディレクトリ名の定義
     13ツール依存部ディレクトリ名の定義
    1414#
    1515TOOLDIR = $(SRCDIR)/arch/$(TOOL)
    1616
    1717#
    18 #  GNU開発環境のターゲットアーキテクチャの定義
     18#  GNU開発環境のターゲットアーキテクチャの定義
    1919#
    2020ifndef GCC_TARGET
     
    2323
    2424#
    25 ã‚³ãƒ³ãƒ‘イルオプション
     25コンパイルオプション
    2626#
    2727INCLUDES := $(INCLUDES) -I$(COREDIR) -I$(TOOLDIR)
     
    2929
    3030#
    31 ã‚«ãƒ¼ãƒãƒ«ã«é–¢ã™ã‚‹å®šç¾©
     31カーネルに関する定義
    3232#
    3333KERNEL_DIRS := $(KERNEL_DIRS) $(COREDIR)
     
    3636
    3737#
    38 ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚¿é–¢ä¿‚の変数の定義
     38コンフィギュレータ関係の変数の定義
    3939#
    4040CFG_TABS := $(CFG_TABS) --symval-table $(COREDIR)/core_sym.def
    4141
    4242#
    43 ã‚ªãƒ•ã‚»ãƒƒãƒˆãƒ•ã‚¡ã‚¤ãƒ«ç”Ÿæˆã®ãŸã‚ã®å®šç¾©
     43オフセットファイル生成のための定義
    4444#
    4545TARGET_OFFSET_TRB = $(COREDIR)/core_offset.trb
    4646
    4747#
    48 ã‚¹ã‚¿ãƒ¼ãƒˆã‚¢ãƒƒãƒ—モジュールに関する定義
     48スタートアップモジュールに関する定義
    4949#
    50 #  START_OBJSをstart.oに設定し,LDFLAGSに-nostdlibを追加する.
     50#  START_OBJSをstart.oに設定し,LDFLAGSに-nostdlibを追加する.
    5151#
    5252START_OBJS = start.o
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    66 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  $Id$
     
    5439
    5540/*
    56  *              ARMコアサポートモジュール
     41 *              ARMコアサポートモジュール
    5742 */
    5843
     
    6045
    6146/*
    62  *  キャッシュの操作
     47 *  キャッシュの操作
    6348 */
    6449
    6550/*
    66  *  データキャッシュのイネーブル
     51 *  データキャッシュのイネーブル
    6752 */
    6853void
     
    8166
    8267/*
    83  *  データキャッシュのディスエーブル
     68 *  データキャッシュのディスエーブル
    8469 *
    85  *  データキャッシュが無効な状æ
    86 ‹ã§clean_and_invalidateを実行すると暴走
    87  *  する場合があるため,データキャッシュの状æ
    88 ‹ã‚’判断して,無効な場合は,
    89  *  無効化のみを行う.
     70 *  データキャッシュが無効な状態でclean_and_invalidateを実行すると暴走
     71 *  する場合があるため,データキャッシュの状態を判断して,無効な場合は,
     72 *  無効化のみを行う.
    9073 */
    9174void
     
    10790
    10891/*
    109  *  命令キャッシュのイネーブル
     92 *  命令キャッシュのイネーブル
    11093 */
    11194void
     
    124107
    125108/*
    126  *  命令キャッシュのディスエーブル
     109 *  命令キャッシュのディスエーブル
    127110 */
    128111void
     
    139122
    140123/*
    141  *  ARMv5におけるデータキャッシュのクリーンと無効化
     124 *  ARMv5におけるデータキャッシュのクリーンと無効化
    142125 */
    143126#if __TARGET_ARCH_ARM <= 5
     
    152135
    153136/*
    154  *  ARMv7におけるデータキャッシュの無効化
     137 *  ARMv7におけるデータキャッシュの無効化
    155138 *
    156  *  レベル0のキャッシュのみを無効化する.
     139 *  レベル0のキャッシュのみを無効化する.
    157140 */
    158141#if __TARGET_ARCH_ARM == 7
     
    183166
    184167/*
    185  *  ARMv7におけるデータキャッシュのクリーンと無効化
     168 *  ARMv7におけるデータキャッシュのクリーンと無効化
    186169 *
    187  *  レベル0のキャッシュのみをクリーンと無効化する.
     170 *  レベル0のキャッシュのみをクリーンと無効化する.
    188171 */
    189172#if __TARGET_ARCH_ARM == 7
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    4632 *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              ARMコアサポートモジュール
     43 *              ARMコアサポートモジュール
    5944 */
    6045
     
    6550
    6651/*
    67  *  ARMコアの特殊命令のインライン関数定義
     52 *  ARMコアの特殊命令のインライン関数定義
    6853 */
    6954#ifndef TOPPERS_MACRO_ONLY
    7055#ifndef TECSGEN
    71 #include "arm_insn.h"                           /* tecsgenが解釈できないためスキップ */
     56#include "arm_insn.h"                           /* tecsgenが解釈できないためスキップ */
    7257#endif /* TECSGEN */
    7358#endif /*  TOPPERS_MACRO_ONLY */
    7459
    7560/*
    76  *  ARM例外ベクタ
     61 *  ARM例外ベクタ
    7762 */
    7863#define RESET_VECTOR    UINT_C(0x00)
     
    8570
    8671/*
    87  *  ARM例外ベクタ番号
     72 *  ARM例外ベクタ番号
    8873 */
    8974#define RESET_NUMBER    UINT_C(0)
     
    9681
    9782/*
    98  *  CPSRの割込み禁止ビット
     83 *  CPSRの割込み禁止ビット
    9984 */
    10085#define CPSR_INT_MASK   UINT_C(0xc0)
     
    10388
    10489/*
    105  *  CPSRのThumbビット
     90 *  CPSRのThumbビット
    10691 */
    10792#define CPSR_THUMB_BIT  UINT_C(0x20)
    10893
    10994/*
    110  *  CPSRのモードビット
     95 *  CPSRのモードビット
    11196 */
    11297#define CPSR_MODE_MASK  UINT_C(0x1f)
     
    120105
    121106/*
    122  *  CP15のシステム制御レジスタ(SCTLR)の設定値
     107 *  CP15のシステム制御レジスタ(SCTLR)の設定値
    123108 *
    124  *  ARMv7では,CP15_SCTLR_EXTPAGEは常に1になっている.
     109 *  ARMv7では,CP15_SCTLR_EXTPAGEは常に1になっている.
    125110 */
    126111#if __TARGET_ARCH_ARM == 6
     
    134119
    135120/*
    136  *  CP15のフォールト状æ
    137 ‹ãƒ¬ã‚¸ã‚¹ã‚¿ã®å‚ç
    138 §å€¤
     121 *  CP15のフォールト状態レジスタの参照値
    139122 */
    140123#define CP15_FSR_FS_MASK                        UINT_C(0x0000040f)
     
    146129
    147130/*
    148  *  CP15のパフォーマンスモニタ制御レジスタ(PMCR)の設定値
     131 *  CP15のパフォーマンスモニタ制御レジスタ(PMCR)の設定値
    149132 */
    150133#define CP15_PMCR_ALLCNTR_ENABLE                UINT_C(0x01)
     
    152135
    153136/*
    154  *  CP15のパフォーマンスモニタカウントイネーブルセットレジスタ(PMCNTENSET)
    155  *  の設定値
     137 *  CP15のパフォーマンスモニタカウントイネーブルセットレジスタ(PMCNTENSET)
     138 *  の設定値
    156139 */
    157140#define CP15_PMCNTENSET_CCNTR_ENABLE    UINT_C(0x80000000)
    158141
    159142/*
    160  *  CP15の変換テーブルベースレジスタ(TTBR)の設定値
     143 *  CP15の変換テーブルベースレジスタ(TTBR)の設定値
    161144 */
    162145#define CP15_TTBR_RGN_SHAREABLE         UINT_C(0x00000002)
     
    175158
    176159/*
    177  *  MMU関連の定義(VMSA)
    178  */
    179 
    180 /*
    181  *  セクションとページのサイズ
     160 *  MMU関連の定義(VMSA)
     161 */
     162
     163/*
     164 *  セクションとページのサイズ
    182165 */
    183166#define ARM_SSECTION_SIZE                       UINT_C(0x1000000)
     
    187170
    188171/*
    189  *  セクションテーブルとページテーブルのサイズ
     172 *  セクションテーブルとページテーブルのサイズ
    190173 */
    191174#define ARM_SECTION_TABLE_SIZE          UINT_C(0x4000)
     
    198181
    199182/*
    200  *  第1レベルディスクリプタの設定値
    201  */
    202 #define ARM_MMU_DSCR1_FAULT                     0x00000U        /* フォルト */
    203 #define ARM_MMU_DSCR1_PAGETABLE         0x00001U        /* コアースページテーブル */
    204 #define ARM_MMU_DSCR1_SECTION           0x00002U        /* セクション */
    205 #define ARM_MMU_DSCR1_SSECTION          0x40002U        /* スーパーセクション */
    206 
    207 #define ARM_MMU_DSCR1_SHARED            0x10000U        /* プロセッサ間でå
    208 ±æœ‰ */
    209 #define ARM_MMU_DSCR1_TEX000            0x00000U        /* TEXビットが000 */
    210 #define ARM_MMU_DSCR1_TEX001            0x01000U        /* TEXビットが001 */
    211 #define ARM_MMU_DSCR1_TEX010            0x02000U        /* TEXビットが010 */
    212 #define ARM_MMU_DSCR1_TEX100            0x04000U        /* TEXビットが100 */
    213 #define ARM_MMU_DSCR1_AP01                      0x00400U        /* APビットが01 */
    214 #define ARM_MMU_DSCR1_AP10                      0x00800U        /* APビットが10 */
    215 #define ARM_MMU_DSCR1_AP11                      0x00c00U        /* APビットが11 */
    216 #define ARM_MMU_DSCR1_CB00                      0x00000U        /* Cビットが0,Bビットが0 */
    217 #define ARM_MMU_DSCR1_CB01                      0x00004U        /* Cビットが0,Bビットが1 */
    218 #define ARM_MMU_DSCR1_CB10                      0x00008U        /* Cビットが1,Bビットが0 */
    219 #define ARM_MMU_DSCR1_CB11                      0x0000cU        /* Cビットが1,Bビットが1 */
     183 *  第1レベルディスクリプタの設定値
     184 */
     185#define ARM_MMU_DSCR1_FAULT                     0x00000U        /* フォルト */
     186#define ARM_MMU_DSCR1_PAGETABLE         0x00001U        /* コアースページテーブル */
     187#define ARM_MMU_DSCR1_SECTION           0x00002U        /* セクション */
     188#define ARM_MMU_DSCR1_SSECTION          0x40002U        /* スーパーセクション */
     189
     190#define ARM_MMU_DSCR1_SHARED            0x10000U        /* プロセッサ間で共有 */
     191#define ARM_MMU_DSCR1_TEX000            0x00000U        /* TEXビットが000 */
     192#define ARM_MMU_DSCR1_TEX001            0x01000U        /* TEXビットが001 */
     193#define ARM_MMU_DSCR1_TEX010            0x02000U        /* TEXビットが010 */
     194#define ARM_MMU_DSCR1_TEX100            0x04000U        /* TEXビットが100 */
     195#define ARM_MMU_DSCR1_AP01                      0x00400U        /* APビットが01 */
     196#define ARM_MMU_DSCR1_AP10                      0x00800U        /* APビットが10 */
     197#define ARM_MMU_DSCR1_AP11                      0x00c00U        /* APビットが11 */
     198#define ARM_MMU_DSCR1_CB00                      0x00000U        /* Cビットが0,Bビットが0 */
     199#define ARM_MMU_DSCR1_CB01                      0x00004U        /* Cビットが0,Bビットが1 */
     200#define ARM_MMU_DSCR1_CB10                      0x00008U        /* Cビットが1,Bビットが0 */
     201#define ARM_MMU_DSCR1_CB11                      0x0000cU        /* Cビットが1,Bビットが1 */
    220202
    221203#if __TARGET_ARCH_ARM >= 6
    222 #define ARMV6_MMU_DSCR1_NONGLOBAL       0x20000U        /* グローバルでない */
    223 #define ARMV6_MMU_DSCR1_APX0            0x00000U        /* APXビットが0 */
    224 #define ARMV6_MMU_DSCR1_APX1            0x08000U        /* APXビットが1 */
    225 #define ARMV6_MMU_DSCR1_ECC                     0x00200U        /* ECCが有効(MPCore)*/
    226 #define ARMV6_MMU_DSCR1_NOEXEC          0x00010U        /* 実行不可 */
     204#define ARMV6_MMU_DSCR1_NONGLOBAL       0x20000U        /* グローバルでない */
     205#define ARMV6_MMU_DSCR1_APX0            0x00000U        /* APXビットが0 */
     206#define ARMV6_MMU_DSCR1_APX1            0x08000U        /* APXビットが1 */
     207#define ARMV6_MMU_DSCR1_ECC                     0x00200U        /* ECCが有効(MPCore)*/
     208#define ARMV6_MMU_DSCR1_NOEXEC          0x00010U        /* 実行不可 */
    227209#endif /* __TARGET_ARCH_ARM >= 6 */
    228210
    229211/*
    230  *  第2レベルディスクリプタの設定値
    231  */
    232 #define ARM_MMU_DSCR2_FAULT                     0x0000U         /* フォルト */
    233 #define ARM_MMU_DSCR2_LARGE                     0x0001U         /* ラージページ */
    234 #define ARM_MMU_DSCR2_SMALL                     0x0002U         /* スモールページ */
    235 
    236 #define ARM_MMU_DSCR2_CB00                      0x0000U         /* Cビットが0,Bビットが0 */
    237 #define ARM_MMU_DSCR2_CB01                      0x0004U         /* Cビットが0,Bビットが1 */
    238 #define ARM_MMU_DSCR2_CB10                      0x0008U         /* Cビットが1,Bビットが0 */
    239 #define ARM_MMU_DSCR2_CB11                      0x000cU         /* Cビットが1,Bビットが1 */
     212 *  第2レベルディスクリプタの設定値
     213 */
     214#define ARM_MMU_DSCR2_FAULT                     0x0000U         /* フォルト */
     215#define ARM_MMU_DSCR2_LARGE                     0x0001U         /* ラージページ */
     216#define ARM_MMU_DSCR2_SMALL                     0x0002U         /* スモールページ */
     217
     218#define ARM_MMU_DSCR2_CB00                      0x0000U         /* Cビットが0,Bビットが0 */
     219#define ARM_MMU_DSCR2_CB01                      0x0004U         /* Cビットが0,Bビットが1 */
     220#define ARM_MMU_DSCR2_CB10                      0x0008U         /* Cビットが1,Bビットが0 */
     221#define ARM_MMU_DSCR2_CB11                      0x000cU         /* Cビットが1,Bビットが1 */
    240222
    241223#if __TARGET_ARCH_ARM < 6
    242224
    243 #define ARMV5_MMU_DSCR2_AP01            0x0550U         /* AP[0-3]ビットが01 */
    244 #define ARMV5_MMU_DSCR2_AP10            0x0aa0U         /* AP[0-3]ビットが10 */
    245 #define ARMV5_MMU_DSCR2_AP11            0x0ff0U         /* AP[0-3]ビットが11 */
    246 
    247 /* ラージページのディスクリプタ用 */
    248 #define ARMV5_MMU_DSCR2L_TEX000         0x0000U         /* TEXビットが000 */
    249 #define ARMV5_MMU_DSCR2L_TEX001         0x1000U         /* TEXビットが001 */
    250 #define ARMV5_MMU_DSCR2L_TEX010         0x2000U         /* TEXビットが010 */
    251 #define ARMV5_MMU_DSCR2L_TEX100         0x4000U         /* TEXビットが100 */
     225#define ARMV5_MMU_DSCR2_AP01            0x0550U         /* AP[0-3]ビットが01 */
     226#define ARMV5_MMU_DSCR2_AP10            0x0aa0U         /* AP[0-3]ビットが10 */
     227#define ARMV5_MMU_DSCR2_AP11            0x0ff0U         /* AP[0-3]ビットが11 */
     228
     229/* ラージページのディスクリプタ用 */
     230#define ARMV5_MMU_DSCR2L_TEX000         0x0000U         /* TEXビットが000 */
     231#define ARMV5_MMU_DSCR2L_TEX001         0x1000U         /* TEXビットが001 */
     232#define ARMV5_MMU_DSCR2L_TEX010         0x2000U         /* TEXビットが010 */
     233#define ARMV5_MMU_DSCR2L_TEX100         0x4000U         /* TEXビットが100 */
    252234
    253235#else /* __TARGET_ARCH_ARM < 6 */
    254236
    255 #define ARMV6_MMU_DSCR2_NONGLOBAL       0x0800U         /* グローバルでない */
    256 #define ARMV6_MMU_DSCR2_SHARED          0x0400U         /* プロセッサ間でå
    257 ±æœ‰ */
    258 #define ARMV6_MMU_DSCR2_APX0            0x0000U         /* APXビットが0 */
    259 #define ARMV6_MMU_DSCR2_APX1            0x0200U         /* APXビットが1 */
    260 #define ARMV6_MMU_DSCR2_AP01            0x0010U         /* APビットが01 */
    261 #define ARMV6_MMU_DSCR2_AP10            0x0020U         /* APビットが10 */
    262 #define ARMV6_MMU_DSCR2_AP11            0x0030U         /* APビットが11 */
    263 
    264 /* ラージページのディスクリプタ用 */
    265 #define ARMV6_MMU_DSCR2L_TEX000         0x0000U         /* TEXビットが000 */
    266 #define ARMV6_MMU_DSCR2L_TEX001         0x1000U         /* TEXビットが001 */
    267 #define ARMV6_MMU_DSCR2L_TEX010         0x2000U         /* TEXビットが010 */
    268 #define ARMV6_MMU_DSCR2L_TEX100         0x4000U         /* TEXビットが100 */
    269 #define ARMV6_MMU_DSCR2L_NOEXEC         0x8000U         /* 実行不可 */
    270 
    271 /* スモールページのディスクリプタ用 */
    272 #define ARMV6_MMU_DSCR2S_TEX000         0x0000U         /* TEXビットが000 */
    273 #define ARMV6_MMU_DSCR2S_TEX001         0x0040U         /* TEXビットが001 */
    274 #define ARMV6_MMU_DSCR2S_TEX010         0x0080U         /* TEXビットが010 */
    275 #define ARMV6_MMU_DSCR2S_TEX100         0x0100U         /* TEXビットが100 */
    276 #define ARMV6_MMU_DSCR2S_NOEXEC         0x0001U         /* 実行不可 */
     237#define ARMV6_MMU_DSCR2_NONGLOBAL       0x0800U         /* グローバルでない */
     238#define ARMV6_MMU_DSCR2_SHARED          0x0400U         /* プロセッサ間で共有 */
     239#define ARMV6_MMU_DSCR2_APX0            0x0000U         /* APXビットが0 */
     240#define ARMV6_MMU_DSCR2_APX1            0x0200U         /* APXビットが1 */
     241#define ARMV6_MMU_DSCR2_AP01            0x0010U         /* APビットが01 */
     242#define ARMV6_MMU_DSCR2_AP10            0x0020U         /* APビットが10 */
     243#define ARMV6_MMU_DSCR2_AP11            0x0030U         /* APビットが11 */
     244
     245/* ラージページのディスクリプタ用 */
     246#define ARMV6_MMU_DSCR2L_TEX000         0x0000U         /* TEXビットが000 */
     247#define ARMV6_MMU_DSCR2L_TEX001         0x1000U         /* TEXビットが001 */
     248#define ARMV6_MMU_DSCR2L_TEX010         0x2000U         /* TEXビットが010 */
     249#define ARMV6_MMU_DSCR2L_TEX100         0x4000U         /* TEXビットが100 */
     250#define ARMV6_MMU_DSCR2L_NOEXEC         0x8000U         /* 実行不可 */
     251
     252/* スモールページのディスクリプタ用 */
     253#define ARMV6_MMU_DSCR2S_TEX000         0x0000U         /* TEXビットが000 */
     254#define ARMV6_MMU_DSCR2S_TEX001         0x0040U         /* TEXビットが001 */
     255#define ARMV6_MMU_DSCR2S_TEX010         0x0080U         /* TEXビットが010 */
     256#define ARMV6_MMU_DSCR2S_TEX100         0x0100U         /* TEXビットが100 */
     257#define ARMV6_MMU_DSCR2S_NOEXEC         0x0001U         /* 実行不可 */
    277258
    278259#endif /* __TARGET_ARCH_ARM < 6 */
     
    281262
    282263/*
    283  *      コプロセッサ15の操作関数
    284  */
    285 
    286 /*
    287  *  High exception vectorsを使うように設定
     264 *      コプロセッサ15の操作関数
     265 */
     266
     267/*
     268 *  High exception vectorsを使うように設定
    288269 */
    289270Inline void
     
    298279
    299280/*
    300  *  Low exception vectorsを使うように設定
     281 *  Low exception vectorsを使うように設定
    301282 */
    302283Inline void
     
    311292
    312293/*
    313  *  分岐予測をイネーブル
     294 *  分岐予測をイネーブル
    314295 */
    315296Inline void
     
    324305
    325306/*
    326  *  分岐予測をディスエーブル
     307 *  分岐予測をディスエーブル
    327308 */
    328309Inline void
     
    337318
    338319/*
    339  *  プロセッサ番号の取得
     320 *  プロセッサ番号の取得
    340321 *
    341  *  マルチプロセッサアフィニティレジスタを読んで,その下位8ビットを返す.
    342  *  ARMv6では,マルチプロセッサをサポートしている場合にのみ使用できる.
     322 *  マルチプロセッサアフィニティレジスタを読んで,その下位8ビットを返す.
     323 *  ARMv6では,マルチプロセッサをサポートしている場合にのみ使用できる.
    343324 */
    344325#if __TARGET_ARCH_ARM >= 6
     
    356337
    357338/*
    358  *  キャッシュの操作
    359  */
    360 
    361 /*
    362  *  命令/データキャッシュのイネーブル/ディスエーブル
     339 *  キャッシュの操作
     340 */
     341
     342/*
     343 *  命令/データキャッシュのイネーブル/ディスエーブル
    363344 */
    364345extern void arm_enable_icache(void);
     
    368349
    369350/*
    370  *  キャッシュのイネーブル
     351 *  キャッシュのイネーブル
    371352 */
    372353Inline void
     
    378359
    379360/*
    380  *  キャッシュのディスエーブル
     361 *  キャッシュのディスエーブル
    381362 */
    382363Inline void
     
    388369
    389370/*
    390  *  ARMv5におけるデータキャッシュの無効化/クリーン
     371 *  ARMv5におけるデータキャッシュの無効化/クリーン
    391372 */
    392373#if __TARGET_ARCH_ARM <= 5
     
    395376
    396377/*
    397  *  ARMv7におけるデータキャッシュの無効化/クリーン
     378 *  ARMv7におけるデータキャッシュの無効化/クリーン
    398379 */
    399380#if __TARGET_ARCH_ARM == 7
     
    403384
    404385/*
    405  *  データキャッシュと統合キャッシュの無効化
     386 *  データキャッシュと統合キャッシュの無効化
    406387 */
    407388Inline void
     
    417398
    418399/*
    419  *  データキャッシュと統合キャッシュのクリーンと無効化
     400 *  データキャッシュと統合キャッシュのクリーンと無効化
    420401 */
    421402Inline void
     
    433414
    434415/*
    435  *  命令キャッシュの無効化
     416 *  命令キャッシュの無効化
    436417 */
    437418Inline void
     
    442423
    443424/*
    444  *  分岐予測の無効化
     425 *  分岐予測の無効化
    445426 */
    446427Inline void
     
    453434
    454435/*
    455  *  TLBの無効化
     436 *  TLBの無効化
    456437 */
    457438Inline void
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm_insn.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    4632 *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              ARMコアの特殊命令のインライン関数定義
    59  *
    60  *  このヘッダファイルは,arm.hからインクルードされる.arm.hから分離し
    61  *  ているのは,コンパイラによるインラインアセンブラの記述方法の違いを
    62  *  吸収するために,このファイルのみを置き換えればよいようにするためで
    63  *  ある.
     43 *              ARMコアの特殊命令のインライン関数定義
     44 *
     45 *  このヘッダファイルは,arm.hからインクルードされる.arm.hから分離し
     46 *  ているのは,コンパイラによるインラインアセンブラの記述方法の違いを
     47 *  吸収するために,このファイルのみを置き換えればよいようにするためで
     48 *  ある.
    6449 */
    6550
     
    7055
    7156/*
    72  *  CLZ(Count Leading Zero)命令
     57 *  CLZ(Count Leading Zero)命令
    7358 */
    7459#if __TARGET_ARCH_ARM >= 6
     
    8671
    8772/*
    88  *  メモリが変更されることをコンパイラに伝えるためのマクロ
     73 *  メモリが変更されることをコンパイラに伝えるためのマクロ
    8974 */
    9075#define ARM_MEMORY_CHANGED      Asm("":::"memory")
    9176
    9277/*
    93  *  ステータスレジスタの操作関数
     78 *  ステータスレジスタの操作関数
    9479 */
    9580#ifndef __thumb__
    9681
    9782/*
    98  *  ステータスレジスタ(CPSR)の現在値の読出し
     83 *  ステータスレジスタ(CPSR)の現在値の読出し
    9984 */
    10085Inline uint32_t
     
    10893
    10994/*
    110  *  ステータスレジスタ(CPSR)の現在値の変更
     95 *  ステータスレジスタ(CPSR)の現在値の変更
    11196 */
    11297Inline void
     
    118103#else /* __thumb__ */
    119104/*
    120  *  Thumbモードではmrs/msr命令が使用できないため,関数として実現して,
    121  *  ARMモードに移行して実行する.
    122  */
    123 
    124 /*
    125  *  ステータスレジスタ(CPSR)の現在値の読出し
     105 *  Thumbモードではmrs/msr命令が使用できないため,関数として実現して,
     106 *  ARMモードに移行して実行する.
     107 */
     108
     109/*
     110 *  ステータスレジスタ(CPSR)の現在値の読出し
    126111 */
    127112extern uint32_t current_cpsr(void);
    128113
    129114/*
    130  *  ステータスレジスタ(CPSR)の現在値の変更
     115 *  ステータスレジスタ(CPSR)の現在値の変更
    131116 */
    132117extern void set_cpsr(uint32_t cpsr);
     
    135120
    136121/*
    137  *  割込み禁止/許可関数
    138  *
    139  *  ARMv6から追加されたシステム状æ
    140 ‹ã‚’変更する命令を使った割込み禁止/許
    141  *  可のための関数.
    142  */
    143 #if __TARGET_ARCH_ARM >= 6
    144 
    145 /*
    146  *  IRQの禁止
     122 *  割込み禁止/許可関数
     123 *
     124 *  ARMv6から追加されたシステム状態を変更する命令を使った割込み禁止/許
     125 *  可のための関数.
     126 */
     127#if __TARGET_ARCH_ARM >= 6
     128
     129/*
     130 *  IRQの禁止
    147131 */
    148132Inline void
     
    153137
    154138/*
    155  *  IRQの許可
     139 *  IRQの許可
    156140 */
    157141Inline void
     
    162146
    163147/*
    164  *  FIQの禁止
     148 *  FIQの禁止
    165149 */
    166150Inline void
     
    171155
    172156/*
    173  *  FIQの許可
     157 *  FIQの許可
    174158 */
    175159Inline void
     
    180164
    181165/*
    182  *  FIQとIRQの禁止
     166 *  FIQとIRQの禁止
    183167 */
    184168Inline void
     
    189173
    190174/*
    191  *  FIQとIRQの許可
     175 *  FIQとIRQの許可
    192176 */
    193177Inline void
     
    200184
    201185/*
    202  *  CP15のIDレジスタ操作マクロ
    203  */
    204 
    205 /* メインIDレジスタ */
     186 *  CP15のIDレジスタ操作マクロ
     187 */
     188
     189/* メインIDレジスタ */
    206190#define CP15_READ_MIDR(reg)             Asm("mrc p15, 0, %0, c0, c0, 0":"=r"(reg))
    207191
    208 /* マルチプロセッサアフィニティレジスタ(ARMv6以降)*/
     192/* マルチプロセッサアフィニティレジスタ(ARMv6以降)*/
    209193#if __TARGET_ARCH_ARM >= 6
    210194#define CP15_READ_MPIDR(reg)    Asm("mrc p15, 0, %0, c0, c0, 5":"=r"(reg))
    211195#endif /* __TARGET_ARCH_ARM >= 6 */
    212196
    213 /* キャッシュタイプレジスタ */
     197/* キャッシュタイプレジスタ */
    214198#define CP15_READ_CTR(reg)              Asm("mrc p15, 0, %0, c0, c0, 1":"=r"(reg))
    215199
    216200#if __TARGET_ARCH_ARM == 7
    217 /* キャッシュレベルIDレジスタ(ARMv7) */
     201/* キャッシュレベルIDレジスタ(ARMv7) */
    218202#define CP15_READ_CLIDR(reg)    Asm("mrc p15, 1, %0, c0, c0, 1":"=r"(reg))
    219203
    220 /* キャッシュサイズ選択レジスタ(ARMv7)*/
     204/* キャッシュサイズ選択レジスタ(ARMv7)*/
    221205#define CP15_WRITE_CSSELR(reg)  Asm("mcr p15, 2, %0, c0, c0, 0"::"r"(reg))
    222206
    223 /* キャッシュサイズIDレジスタ(ARMv7)*/
     207/* キャッシュサイズIDレジスタ(ARMv7)*/
    224208#define CP15_READ_CCSIDR(reg)   Asm("mrc p15, 1, %0, c0, c0, 0":"=r"(reg))
    225209#endif /* __TARGET_ARCH_ARM == 7 */
    226210
    227211/*
    228  *  CP15のシステム制御レジスタ操作マクロ
    229  */
    230 
    231 /* システム制御レジスタ */
     212 *  CP15のシステム制御レジスタ操作マクロ
     213 */
     214
     215/* システム制御レジスタ */
    232216#define CP15_READ_SCTLR(reg)    Asm("mrc p15, 0, %0, c1, c0, 0":"=r"(reg))
    233217#define CP15_WRITE_SCTLR(reg)   Asm("mcr p15, 0, %0, c1, c0, 0"::"r"(reg))
    234218
    235 /* 補助制御レジスタ(機能はチップ依存)*/
     219/* 補助制御レジスタ(機能はチップ依存)*/
    236220#define CP15_READ_ACTLR(reg)    Asm("mrc p15, 0, %0, c1, c0, 1":"=r"(reg))
    237221#define CP15_WRITE_ACTLR(reg)   Asm("mcr p15, 0, %0, c1, c0, 1"::"r"(reg))
    238222
    239223/*
    240  *  CP15によるキャッシュ操作マクロ
    241  */
    242 
    243 /* 命令キャッシュå
    244 ¨ä½“の無効化 */
     224 *  CP15によるキャッシュ操作マクロ
     225 */
     226
     227/* 命令キャッシュ全体の無効化 */
    245228#define CP15_INVALIDATE_ICACHE() \
    246229                                                                Asm("mcr p15, 0, %0, c7, c5, 0"::"r"(0))
    247230
    248 /* 分岐予測å
    249 ¨ä½“の無効化 */
     231/* 分岐予測全体の無効化 */
    250232#define CP15_INVALIDATE_BP()    Asm("mcr p15, 0, %0, c7, c5, 6"::"r"(0))
    251233
    252 /* データキャッシュå
    253 ¨ä½“の無効化(ARMv6以前)*/
     234/* データキャッシュ全体の無効化(ARMv6以前)*/
    254235#if __TARGET_ARCH_ARM <= 6
    255236#define CP15_INVALIDATE_DCACHE() Asm("mcr p15, 0, %0, c7, c6, 0"::"r"(0))
    256237#endif /* __TARGET_ARCH_ARM <= 6 */
    257238
    258 /* 統合キャッシュå
    259 ¨ä½“の無効化(ARMv6以前)*/
     239/* 統合キャッシュ全体の無効化(ARMv6以前)*/
    260240#if __TARGET_ARCH_ARM <= 6
    261241#define CP15_INVALIDATE_UCACHE() Asm("mcr p15, 0, %0, c7, c7, 0"::"r"(0))
    262242#endif /* __TARGET_ARCH_ARM <= 6 */
    263243
    264 /* データキャッシュå
    265 ¨ä½“のクリーンと無効化(ARMv5のみ)*/
     244/* データキャッシュ全体のクリーンと無効化(ARMv5のみ)*/
    266245#if __TARGET_ARCH_ARM <= 5
    267246#define ARMV5_CLEAN_AND_INVALIDATE_DCACHE() \
     
    269248#endif /* __TARGET_ARCH_ARM <= 5 */
    270249
    271 /* データキャッシュå
    272 ¨ä½“のクリーンと無効化(ARMv6のみ)*/
     250/* データキャッシュ全体のクリーンと無効化(ARMv6のみ)*/
    273251#if __TARGET_ARCH_ARM == 6
    274252#define CP15_CLEAN_AND_INVALIDATE_DCACHE() \
     
    276254#endif /* __TARGET_ARCH_ARM == 6 */
    277255
    278 /* 統合キャッシュå
    279 ¨ä½“のクリーンと無効化(ARMv6のみ)*/
     256/* 統合キャッシュ全体のクリーンと無効化(ARMv6のみ)*/
    280257#if __TARGET_ARCH_ARM == 6
    281258#define CP15_CLEAN_AND_INVALIDATE_UCACHE() \
     
    283260#endif /* __TARGET_ARCH_ARM == 6 */
    284261
    285 /* データキャッシュのセット/ウェイ単位の無効化 */
     262/* データキャッシュのセット/ウェイ単位の無効化 */
    286263#define CP15_WRITE_DCISW(reg)   Asm("mcr p15, 0, %0, c7, c6, 2"::"r"(reg))
    287264
    288 /* データキャッシュのセット/ウェイ単位のクリーンと無効化 */
     265/* データキャッシュのセット/ウェイ単位のクリーンと無効化 */
    289266#define CP15_WRITE_DCCISW(reg)  Asm("mcr p15, 0, %0, c7, c14, 2"::"r"(reg))
    290267
    291268/*
    292  *  CP15のフォールト状æ
    293 ‹ï¼ã‚¢ãƒ‰ãƒ¬ã‚¹ã®æ“ä½œãƒžã‚¯ãƒ­
     269 *  CP15のフォールト状態/アドレスの操作マクロ
    294270 */
    295271#if __TARGET_ARCH_ARM >= 6
     
    304280
    305281/*
    306  *  CP15によるMMUの操作マクロ(VMSA)
    307  */
    308 
    309 /* 変換テーブルベース制御レジスタ(ARMv6以降)*/
     282 *  CP15によるMMUの操作マクロ(VMSA)
     283 */
     284
     285/* 変換テーブルベース制御レジスタ(ARMv6以降)*/
    310286#if __TARGET_ARCH_ARM >= 6
    311287#define CP15_WRITE_TTBCR(reg)   Asm("mcr p15, 0, %0, c2, c0, 2"::"r"(reg))
    312288#endif /* __TARGET_ARCH_ARM >= 6 */
    313289
    314 /* 変換テーブルベースレジスタ0 */
     290/* 変換テーブルベースレジスタ0 */
    315291#define CP15_READ_TTBR0(reg)    Asm("mrc p15, 0, %0, c2, c0, 0":"=r"(reg))
    316292#define CP15_WRITE_TTBR0(reg)   Asm("mcr p15, 0, %0, c2, c0, 0"::"r"(reg))
    317293
    318 /* ドメインアクセス制御レジスタ */
     294/* ドメインアクセス制御レジスタ */
    319295#define CP15_WRITE_DACR(reg)    Asm("mcr p15, 0, %0, c3, c0, 0":: "r"(reg))
    320296
    321 /* コンテキストIDレジスタ(ARMv6以降)*/
     297/* コンテキストIDレジスタ(ARMv6以降)*/
    322298#if __TARGET_ARCH_ARM >= 6
    323299#define CP15_WRITE_CONTEXTIDR(reg) Asm("mcr p15, 0, %0, c13, c0, 1" ::"r"(reg))
     
    325301
    326302/*
    327  *  CP15によるTLB操作マクロ(VMSA)
    328  */
    329 
    330 /* TLBå
    331 ¨ä½“の無効化 */
     303 *  CP15によるTLB操作マクロ(VMSA)
     304 */
     305
     306/* TLB全体の無効化 */
    332307#define CP15_INVALIDATE_TLB()   Asm("mcr p15, 0, %0, c8, c7, 0"::"r"(0))
    333308
    334309/*
    335  *  CP15のパフォーマンスモニタ操作マクロ(ARMv7のみ)
     310 *  CP15のパフォーマンスモニタ操作マクロ(ARMv7のみ)
    336311 */
    337312#if __TARGET_ARCH_ARM == 7
    338313
    339 /* パフォーマンスモニタ制御レジスタ */
     314/* パフォーマンスモニタ制御レジスタ */
    340315#define CP15_READ_PMCR(reg)             Asm("mrc p15, 0, %0, c9, c12, 0":"=r"(reg))
    341316#define CP15_WRITE_PMCR(reg)    Asm("mcr p15, 0, %0, c9, c12, 0"::"r"(reg))
    342317
    343 /* パフォーマンスモニタカウントイネーブルセットレジスタ */
     318/* パフォーマンスモニタカウントイネーブルセットレジスタ */
    344319#define CP15_READ_PMCNTENSET(reg)  Asm("mrc p15, 0, %0, c9, c12, 1":"=r"(reg))
    345320#define CP15_WRITE_PMCNTENSET(reg) Asm("mcr p15, 0, %0, c9, c12, 1"::"r"(reg))
    346321
    347 /* パフォーマンスモニタカウンタサイクルレジスタ */
     322/* パフォーマンスモニタカウンタサイクルレジスタ */
    348323#define CP15_READ_PMCCNTR(reg)  Asm("mrc p15, 0, %0, c9, c13, 0":"=r"(reg))
    349324#define CP15_WRITE_PMCCNTR(reg) Asm("mcr p15, 0, %0, c9, c13, 0"::"r"(reg))
     
    352327
    353328/*
    354  *  CP15によるメモリバリア操作マクロ
     329 *  CP15によるメモリバリア操作マクロ
    355330 */
    356331#define CP15_INST_SYNC_BARRIER() \
     
    362337
    363338/*
    364  *  メモリバリア
    365  *
    366  *  ARMv6とARMv7が持つ3つのメモリバリア機能を使用するための関数.メモリ
    367  *  バリアは,ARMv7では専用命令,ARMv6ではCP15への書込みで実現される.
    368  *  ARMv7のメモリバリア命令は,同期を取る範囲を指定できるが,以下の関数
    369  *  では最大範囲(システムå
    370 ¨ä½“,リード/ライトの両方)で同期を取る.
    371  *
    372  *  ARMv5以前では,メモリバリア機能は実è£
    373 ä¾å­˜ã§ã‚るため,それぞれ,
    374  *  DATA_MEMORY_BARRIER,DATA_SYNC_BARRIER,INST_SYNC_BARRIERを定義する
    375  *  ことによって,関数のå†
    376 å®¹ã‚’å
    377 ¥ã‚Œæ›ãˆã‚‰ã‚Œã‚‹ã‚ˆã†ã«ã—ている.
    378  */
    379 
    380 /*
    381  *  データメモリバリア
    382  *
    383  *  このバリアの前後で,メモリアクセスの順序がå
    384 ¥ã‚Œæ›ã‚ã‚‰ãªã„ようにする.
    385  *  マルチコア(厳密にはマルチマスタ)での使用を想定した命令.
     339 *  メモリバリア
     340 *
     341 *  ARMv6とARMv7が持つ3つのメモリバリア機能を使用するための関数.メモリ
     342 *  バリアは,ARMv7では専用命令,ARMv6ではCP15への書込みで実現される.
     343 *  ARMv7のメモリバリア命令は,同期を取る範囲を指定できるが,以下の関数
     344 *  では最大範囲(システム全体,リード/ライトの両方)で同期を取る.
     345 *
     346 *  ARMv5以前では,メモリバリア機能は実装依存であるため,それぞれ,
     347 *  DATA_MEMORY_BARRIER,DATA_SYNC_BARRIER,INST_SYNC_BARRIERを定義する
     348 *  ことによって,関数の内容を入れ換えられるようにしている.
     349 */
     350
     351/*
     352 *  データメモリバリア
     353 *
     354 *  このバリアの前後で,メモリアクセスの順序が入れ換わらないようにする.
     355 *  マルチコア(厳密にはマルチマスタ)での使用を想定した命令.
    386356 */
    387357Inline void
     
    398368
    399369/*
    400  *  データ同期バリア
    401  *
    402  *  å
    403 ˆè¡Œã™ã‚‹ãƒ¡ãƒ¢ãƒªã‚¢ã‚¯ã‚»ã‚¹ãŒå®Œäº†ã™ã‚‹ã®ã‚’å¾
    404 ã¤ï¼Žãƒ¡ãƒ¢ãƒªã‚¢ã‚¯ã‚»ã‚¹ãŒå‰¯ä½œç”¨ã‚’
    405  *  持つ時に,その副作用が起こるのをå¾
    406 ã¤ãŸã‚ã®ä½¿ç”¨ã‚’想定した命令.
     370 *  データ同期バリア
     371 *
     372 *  先行するメモリアクセスが完了するのを待つ.メモリアクセスが副作用を
     373 *  持つ時に,その副作用が起こるのを待つための使用を想定した命令.
    407374 */
    408375Inline void
     
    419386
    420387/*
    421  *  命令同期バリア
    422  *
    423  *  プログラムが書き換えられた(または,システム状æ
    424 ‹ã®å¤‰åŒ–により実行す
    425  *  べきプログラムが変わった)時に,パイプラインをフラッシュするなど,
    426  *  新しいプログラムを読み込むようにする.ARMv6では,プリフェッチフラッ
    427  *  シュと呼ばれている.
     388 *  命令同期バリア
     389 *
     390 *  プログラムが書き換えられた(または,システム状態の変化により実行す
     391 *  べきプログラムが変わった)時に,パイプラインをフラッシュするなど,
     392 *  新しいプログラムを読み込むようにする.ARMv6では,プリフェッチフラッ
     393 *  シュと呼ばれている.
    428394 */
    429395Inline void
     
    440406
    441407/*
    442  *  CP15のセキュリティ拡張レジスタ操作マクロ(ARMv7のみ)
     408 *  CP15のセキュリティ拡張レジスタ操作マクロ(ARMv7のみ)
    443409 */
    444410#if __TARGET_ARCH_ARM == 7
    445411
    446 /* ベクタベースアドレスレジスタ */
     412/* ベクタベースアドレスレジスタ */
    447413#define CP15_READ_VBAR(reg)             Asm("mrc p15, 0, %0, c12, c0, 0":"=r"(reg))
    448414#define CP15_WRITE_VBAR(reg)    Asm("mcr p15, 0, %0, c12, c0, 0"::"r"(reg))
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_cfg1_out.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    11/*
    2  *              cfg1_out.cのリンクにå¿
    3 è¦ãªã‚¹ã‚¿ãƒ–の定義
     2 *              cfg1_out.cのリンクに必要なスタブの定義
    43 *
    54 *  $Id$
     
    76
    87/*
    9  *  cfg1_out.cのリンクにå¿
    10 è¦ãªå®šç¾©
     8 *  cfg1_out.cのリンクに必要な定義
    119 */
    1210
     
    1715
    1816/*
    19  *  offset.hを生成するための定義
     17 *  offset.hを生成するための定義
    2018 */
    2119const uint8_t   MAGIC_1 = 0x12;
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_check.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    11# -*- coding: utf-8 -*-
    22#
    3 #               ãƒ‘ス3の生成スクリプトのコア依存部(ARM用)
     3#               パス3の生成スクリプトのコア依存部(ARM用)
    44#
    5 #  $Id: core_check.trb 730 2016-04-03 02:04:52Z ertl-hiro $
     5#  $Id$
    66#
    77
    88#
    9 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆéžä¾å­˜éƒ¨ã®ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰
     9ターゲット非依存部のインクルード
    1010#
    1111IncludeTrb("kernel/kernel_check.trb")
    1212
    1313#
    14 å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ãƒ†ãƒ¼ãƒ–ルに関するチェック
     14割込みハンドラテーブルに関するチェック
    1515#
    16 # DEF_INHで登録した割込みハンドラのみチェックする.逆に言うと,コンフィ
    17 # ギュレータで生成した割込みハンドラや,default_int_handlerのチェックは
    18 # 行わない.
     16# DEF_INHで登録した割込みハンドラのみチェックする.逆に言うと,コンフィ
     17# ギュレータで生成した割込みハンドラや,default_int_handlerのチェックは
     18# 行わない.
    1919#
    2020inhTable = SYMBOL("_kernel_inh_table")
     
    2323  inthdr = PEEK(inhTable + offset + params[:inhno] * $sizeof_FP, $sizeof_FP)
    2424
    25   #     å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ã®å
    26 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI3056ï¼½
     25  #     割込みハンドラの先頭番地のチェック[NGKI3056]
    2726  if (inthdr & ($CHECK_FUNC_ALIGN - 1)) != 0
    2827    error_wrong_id("E_PAR", params, :inthdr, :inhno, "not aligned")
     
    3433
    3534#
    36 #  CPU例外ハンドラテーブルに関するチェック
     35#  CPU例外ハンドラテーブルに関するチェック
    3736#
    38 # DEF_EXCで登録したCPU例外ハンドラのみチェックする.逆に言うと,
    39 # default_exc_handlerのチェックは行わない.
     37# DEF_EXCで登録したCPU例外ハンドラのみチェックする.逆に言うと,
     38# default_exc_handlerのチェックは行わない.
    4039#
    4140excTable = SYMBOL("_kernel_exc_table")
     
    4342  exchdr = PEEK(excTable + params[:excno] * $sizeof_FP, $sizeof_FP)
    4443
    45   # CPU例外ハンドラのå
    46 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI3135ï¼½
     44  # CPU例外ハンドラの先頭番地のチェック[NGKI3135]
    4745  if (exchdr & ($CHECK_FUNC_ALIGN - 1)) != 0
    4846    error_wrong_id("E_PAR", params, :exchdr, :excno, "not aligned")
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     11 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20 *      の無保証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23 *      と.
     24 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     26 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27 *        報告すること.
     28 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              kernel.hのコア依存部(ARM用)
     44 *              kernel.hのコア依存部(ARM用)
    6045 *
    61  *  このヘッダファイルは,target_kernel.h(または,そこからインクルード
    62  *  されるファイル)のみからインクルードされる.他のファイルから直接イ
    63  *  ンクルードしてはならない.
     46 *  このヘッダファイルは,target_kernel.h(または,そこからインクルード
     47 *  されるファイル)のみからインクルードされる.他のファイルから直接イ
     48 *  ンクルードしてはならない.
    6449 */
    6550
     
    6853
    6954/*
    70  *  スタックの型
     55 *  スタックの型
    7156 *
    72  *  ARMでは,スタックを8バイト境界にé
    73 ç½®ã™ã‚‹å¿
    74 è¦ãŒã‚る.
     57 *  ARMでは,スタックを8バイト境界に配置する必要がある.
    7558 */
    7659#define TOPPERS_STK_T   long long
    7760
    7861/*
    79  *  CPU例外ハンドラ番号の数
     62 *  CPU例外ハンドラ番号の数
    8063 */ 
    8164#define TNUM_EXCNO              6
    8265
    8366/*
    84  *  CPU例外ハンドラ番号の定義
     67 *  CPU例外ハンドラ番号の定義
    8568 */
    8669#define EXCNO_UNDEF             0
     
    9477
    9578/*
    96  *  CPU例外のæƒ
    97 å ±ã‚’記憶しているメモリ領域の構造
     79 *  CPU例外の情報を記憶しているメモリ領域の構造
    9880 */
    9981#if __TARGET_ARCH_ARM < 6
    10082
    10183typedef struct t_excinf {
    102         uint32_t        nest_count;                             /* 例外ネストカウント */
    103         uint32_t        intpri;                                 /* 割込み優å
    104 ˆåº¦ãƒžã‚¹ã‚¯ */
    105         uint32_t        cpsr;                                   /* CPU例外発生時のCPSR */
     84        uint32_t        nest_count;                             /* 例外ネストカウント */
     85        uint32_t        intpri;                                 /* 割込み優先度マスク */
     86        uint32_t        cpsr;                                   /* CPU例外発生時のCPSR */
    10687        uint32_t        r0;
    10788        uint32_t        r1;
     
    11293        uint32_t        r12;
    11394        uint32_t        lr;
    114         uint32_t        pc;                                             /* 戻り番地 */
     95        uint32_t        pc;                                             /* 戻り番地 */
    11596} T_EXCINF;
    11697
     
    11899
    119100typedef struct t_excinf {
    120         uint32_t        nest_count;                             /* 例外ネストカウント */
    121         uint32_t        intpri;                                 /* 割込み優å
    122 ˆåº¦ãƒžã‚¹ã‚¯ */
     101        uint32_t        nest_count;                             /* 例外ネストカウント */
     102        uint32_t        intpri;                                 /* 割込み優先度マスク */
    123103        uint32_t        r0;
    124104        uint32_t        r1;
     
    129109        uint32_t        r12;
    130110        uint32_t        lr;
    131         uint32_t        pc;                                             /* 戻り番地 */
    132         uint32_t        cpsr;                                   /* CPU例外発生時のCPSR */
     111        uint32_t        pc;                                             /* 戻り番地 */
     112        uint32_t        cpsr;                                   /* CPU例外発生時のCPSR */
    133113} T_EXCINF;
    134114
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    99#               Graduate School of Information Science, Nagoya Univ., JAPAN
    1010#
    11 #   ä¸Šè¨˜è‘—作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    14 #   å¤‰ãƒ»å†é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    18 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    19 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23 #       è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    26 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27 #       ç”¨ã§ããªã„形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29 #       ã¨ï¼Ž
    30 #     (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    34 #     (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37 #         å ±å‘Šã™ã‚‹ã“と.
    38 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    43 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45 #       å
    46 è²¬ã™ã‚‹ã“と.
     11#   上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16#       スコード中に含まれていること.
     17#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20#       の無保証規定を掲載すること.
     21#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23#       と.
     24#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     26#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27#         報告すること.
     28#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32#       免責すること.
    4733#
    48 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    49 ãŠ
    50 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    52 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    53 #   ã®è²¬ä»»ã‚’負わない.
     34#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38#   の責任を負わない.
    5439#
    55 #   $Id: core_kernel.trb 662 2016-02-27 02:33:51Z ertl-hiro $
     40#   $Id$
    5641#
    5742
    5843#
    59 #               ãƒ‘ス2の生成スクリプトのコア依存部(ARM用)
     44#               パス2の生成スクリプトのコア依存部(ARM用)
    6045#
    6146
    6247#
    63 æœ‰åŠ¹ãªCPU例外ハンドラ番号
     48有効なCPU例外ハンドラ番号
    6449#
    6550$EXCNO_VALID = [ 0, 1, 2, 3, 4, 5 ]
    6651
    6752#
    68 #  DEF_EXCで使用できるCPU例外ハンドラ番号
     53#  DEF_EXCで使用できるCPU例外ハンドラ番号
    6954#
    7055$EXCNO_DEFEXC_VALID = [ 0, 1, 2, 3, 5 ]
    7156
    7257#
    73 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆéžä¾å­˜éƒ¨ã®ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰
     58ターゲット非依存部のインクルード
    7459#
    7560IncludeTrb("kernel/kernel.trb")
    7661
    7762#
    78 å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ãƒ†ãƒ¼ãƒ–ル
     63割込みハンドラテーブル
    7964#
    8065$kernelCfgC.comment_header("Interrupt Handler Table")
     
    9479
    9580#
    96 å‰²è¾¼ã¿è¦æ±‚ライン設定テーブル
     81割込み要求ライン設定テーブル
    9782#
    9883if $USE_INTCFG_TABLE
     
    11499
    115100#
    116 #  CPU例外ハンドラテーブル
     101#  CPU例外ハンドラテーブル
    117102#
    118103$kernelCfgC.comment_header("CPU Exception Handler Table")
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     11 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20 *      の無保証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23 *      と.
     24 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     26 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27 *        報告すること.
     28 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              カーネルのコア依存部(ARM用)
     44 *              カーネルのコア依存部(ARM用)
    6045 */
    6146
     
    6651
    6752/*
    68  *  コンテキスト参ç
    69 §ã®ãŸã‚ã®å¤‰æ•°
    70  */
    71 uint32_t        excpt_nest_count;               /* 例外ネストカウント */
    72 
    73 /*
    74  *  MMU関連の操作(VMSA)
     53 *  コンテキスト参照のための変数
     54 */
     55uint32_t        excpt_nest_count;               /* 例外ネストカウント */
     56
     57/*
     58 *  MMU関連の操作(VMSA)
    7559 */
    7660#ifdef USE_ARM_MMU
    7761
    78 #define CP15_DACR_D0_CLIENT     0x01U   /* 変換テーブルに従いドメイン0にアクセス */
    79 #define DEFAULT_ASID            1               /* 使用するASID */
    80 
    81 /*
    82  *  セクションテーブル
     62#define CP15_DACR_D0_CLIENT     0x01U   /* 変換テーブルに従いドメイン0にアクセス */
     63#define DEFAULT_ASID            1               /* 使用するASID */
     64
     65/*
     66 *  セクションテーブル
    8367 */
    8468static uint32_t section_table[ARM_SECTION_TABLE_ENTRY]
     
    8670
    8771/*
    88  *  MMUのセクションテーブルエントリの設定
     72 *  MMUのセクションテーブルエントリの設定
    8973 */
    9074Inline void
     
    121105
    122106/*
    123  *  MMUの初期化
     107 *  MMUの初期化
    124108 */
    125109void
     
    130114
    131115        /*
    132          *  MMUのセクションテーブルの設定
     116         *  MMUのセクションテーブルの設定
    133117         */
    134118        for (i = 0; i < ARM_SECTION_TABLE_ENTRY; i++) {
     
    140124
    141125        /*
    142          *  TTBR0を用いるように指定(ARMv6以降)
     126         *  TTBR0を用いるように指定(ARMv6以降)
    143127         */
    144128#if __TARGET_ARCH_ARM >= 6
     
    147131
    148132        /*
    149          *  変換テーブルとして,section_tableを使用する.
     133         *  変換テーブルとして,section_tableを使用する.
    150134         */
    151135        reg = ((uint32_t) &(section_table[0])) | TTBR_CONFIG;
     
    153137
    154138        /*
    155          * ドメインアクセス制御の設定
     139         * ドメインアクセス制御の設定
    156140         */
    157141        CP15_WRITE_DACR(CP15_DACR_D0_CLIENT);
    158142
    159143        /*
    160          *  ASIDの設定
     144         *  ASIDの設定
    161145         */
    162146#if __TARGET_ARCH_ARM >= 6
     
    165149
    166150        /*
    167          *  TLBå
    168 ¨ä½“の無効化
     151         *  TLB全体の無効化
    169152         */
    170153        arm_invalidate_tlb();
    171154
    172155        /*
    173          *  MMUを有効にする.ARMv6では,拡張ページテーブル設定を使う(サブ
    174          *  ページは使わない)ように設定する.
     156         *  MMUを有効にする.ARMv6では,拡張ページテーブル設定を使う(サブ
     157         *  ページは使わない)ように設定する.
    175158         */
    176159        CP15_READ_SCTLR(reg);
     
    187170
    188171/*
    189  *  コア依存の初期化
     172 *  コア依存の初期化
    190173 */
    191174void
     
    193176{
    194177        /*
    195          *  カーネル起動時は非タスクコンテキストとして動作させるために,例外
    196          *  のネスト回数を1に初期化する.
     178         *  カーネル起動時は非タスクコンテキストとして動作させるために,例外
     179         *  のネスト回数を1に初期化する.
    197180         */
    198181        excpt_nest_count = 1U;
    199182
    200183        /*
    201          *  MMUを有効に
     184         *  MMUを有効に
    202185         */
    203186#ifdef USE_ARM_MMU
     
    206189
    207190        /*
    208          *  パフォーマンスモニタの初期化
     191         *  パフォーマンスモニタの初期化
    209192         */
    210193#if defined(USE_ARM_PM_HIST) && __TARGET_ARCH_ARM == 7
     
    214197
    215198/*
    216  *  コア依存の終了処理
     199 *  コア依存の終了処理
    217200 */
    218201void
     
    222205
    223206/*
    224  *  CPU例外の発生状況のログ出力
     207 *  CPU例外の発生状況のログ出力
    225208 */
    226209#ifndef OMIT_XLOG_SYS
    227210
    228211/*
    229  *  CPU例外ハンドラの中から,CPU例外æƒ
    230 å ±ãƒã‚¤ãƒ³ã‚¿ï¼ˆp_excinf)を引数とし
    231  *  て呼び出すことで,CPU例外の発生状況をシステムログに出力する.
     212 *  CPU例外ハンドラの中から,CPU例外情報ポインタ(p_excinf)を引数とし
     213 *  て呼び出すことで,CPU例外の発生状況をシステムログに出力する.
    232214 */
    233215void
     
    246228
    247229/*
    248  *  プリフェッチ/データアボートが発生した状況(状æ
    249 ‹ã¨ã‚¢ãƒ‰ãƒ¬ã‚¹ï¼‰ã‚’シス
    250  *  テムログに出力する.
     230 *  プリフェッチ/データアボートが発生した状況(状態とアドレス)をシス
     231 *  テムログに出力する.
    251232 */
    252233void
     
    282263
    283264/*
    284  *  未定義の割込みがå
    285 ¥ã£ãŸå ´åˆã®å‡¦ç†
     265 *  未定義の割込みが入った場合の処理
    286266 */
    287267#ifndef OMIT_DEFAULT_INT_HANDLER
     
    297277
    298278/*
    299  *  未定義の例外がå
    300 ¥ã£ãŸå ´åˆã®å‡¦ç†
     279 *  未定義の例外が入った場合の処理
    301280 */
    302281#ifndef OMIT_DEFAULT_EXC_HANDLER
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
    47  *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     11 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20 *      の無保証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23 *      と.
     24 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     26 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27 *        報告すること.
     28 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32 *      免責すること.
     33 *
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              kernel_impl.hのコア依存部(ARM用)
    60  *
    61  *  このヘッダファイルは,target_kernel_impl.h(または,そこからインク
    62  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    63  *  直接インクルードしてはならない.
     44 *              kernel_impl.hのコア依存部(ARM用)
     45 *
     46 *  このヘッダファイルは,target_kernel_impl.h(または,そこからインク
     47 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     48 *  直接インクルードしてはならない.
    6449 */
    6550
     
    7055
    7156/*
    72  *  エラーチェック方法の指定
    73  */
    74 #define CHECK_STKSZ_ALIGN       8               /* スタックサイズのアライン単位 */
    75 #define CHECK_INTPTR_ALIGN      4               /* intptr_t型の変数のアライン単位 */
    76 #define CHECK_INTPTR_NONNULL            /* intptr_t型の変数の非NULLチェック */
     57 *  エラーチェック方法の指定
     58 */
     59#define CHECK_STKSZ_ALIGN       8               /* スタックサイズのアライン単位 */
     60#define CHECK_INTPTR_ALIGN      4               /* intptr_t型の変数のアライン単位 */
     61#define CHECK_INTPTR_NONNULL            /* intptr_t型の変数の非NULLチェック */
    7762#ifndef  __thumb__
    78 #define CHECK_FUNC_ALIGN        4               /* 関数のアライン単位 */
     63#define CHECK_FUNC_ALIGN        4               /* 関数のアライン単位 */
    7964#endif /* __thumb__ */
    80 #define CHECK_FUNC_NONNULL                      /* 関数の非NULLチェック */
    81 #define CHECK_STACK_ALIGN       8               /* スタック領域のアライン単位 */
    82 #define CHECK_STACK_NONNULL                     /* スタック領域の非NULLチェック */
    83 #define CHECK_MPF_ALIGN         4               /* 固定長メモリプール領域のアライン単位 */
    84 #define CHECK_MPF_NONNULL                       /* 固定長メモリプール領域の非NULLチェック */
    85 #define CHECK_MB_ALIGN          4               /* 管理領域のアライン単位 */
     65#define CHECK_FUNC_NONNULL                      /* 関数の非NULLチェック */
     66#define CHECK_STACK_ALIGN       8               /* スタック領域のアライン単位 */
     67#define CHECK_STACK_NONNULL                     /* スタック領域の非NULLチェック */
     68#define CHECK_MPF_ALIGN         4               /* 固定長メモリプール領域のアライン単位 */
     69#define CHECK_MPF_NONNULL                       /* 固定長メモリプール領域の非NULLチェック */
     70#define CHECK_MB_ALIGN          4               /* 管理領域のアライン単位 */
    8671
    8772#ifndef TOPPERS_MACRO_ONLY
    8873
    8974/*
    90  *  レディキューサーチのためのビットマップサーチ関数
    91  *
    92  *  CLZ命令は最上位ビットからサーチするため,最上位ビットを最高優å
    93 ˆåº¦ã«
    94  *  対応させる.
     75 *  レディキューサーチのためのビットマップサーチ関数
     76 *
     77 *  CLZ命令は最上位ビットからサーチするため,最上位ビットを最高優先度に
     78 *  対応させる.
    9579 */
    9680#if __TARGET_ARCH_ARM >= 6
     
    10892
    10993/*
    110  *  コンテキストの参ç
    111 §
    112  *
    113  *  ARM依存部では,タスクコンテキストと非タスクコンテキストの両方をスー
    114  *  パバイザモードで動作させるため,プロセッサモードで判断することがで
    115  *  きない.そのため,割込みハンドラ/CPU例外ハンドラのネスト段数(これ
    116  *  を,例外ネストカウントと呼ぶ)で管理し,例外ネストカウントが0の時に
    117  *  タスクコンテキスト,0より大きい場合に非タスクコンテキストであると判
    118  *  断する.
    119  */
    120 extern uint32_t excpt_nest_count;               /* 例外ネストカウント */
     94 *  コンテキストの参照
     95 *
     96 *  ARM依存部では,タスクコンテキストと非タスクコンテキストの両方をスー
     97 *  パバイザモードで動作させるため,プロセッサモードで判断することがで
     98 *  きない.そのため,割込みハンドラ/CPU例外ハンドラのネスト段数(これ
     99 *  を,例外ネストカウントと呼ぶ)で管理し,例外ネストカウントが0の時に
     100 *  タスクコンテキスト,0より大きい場合に非タスクコンテキストであると判
     101 *  断する.
     102 */
     103extern uint32_t excpt_nest_count;               /* 例外ネストカウント */
    121104
    122105Inline bool_t
     
    129112
    130113/*
    131  *  TOPPERS標準割込み処理モデルの実現
    132  *
    133  *  ARMコア依存部では,割込みの扱いに関して,次の2つの方法をサポートす
    134  *  る.
    135  *
    136  *  (1) カーネルを単体で使用する場合やSafeGのノンセキュアモードで使用す
    137  *  る場合:IRQをカーネル管理の割込み,FIQをカーネル管理外の割込みとす
    138  *  る.デフォルトでは,この方法が使用される.
    139  *
    140  *  (2) SafeGのセキュアモードで使用する場合:FIQをカーネル管理の割込み
    141  *  とし,カーネルの動作中はIRQを常にマスクする.この方法を使用する場合
    142  *  には,TOPPERS_SAFEG_SECUREをマクロ定義する.
    143  *
    144  *  TOPPERS標準割込み処理モデルの中で,割込み優å
    145 ˆåº¦ãƒžã‚¹ã‚¯ã¨å‰²è¾¼ã¿è¦æ±‚禁
    146  *  止フラグに関しては,割込みコントローラによって実現方法が異なるため,
    147  *  ARMコア依存部では扱わない.
    148  */
    149 
    150 /*
    151  *  FIQとIRQの両方を禁止するCPSRのビットパターン
     114 *  TOPPERS標準割込み処理モデルの実現
     115 *
     116 *  ARMコア依存部では,割込みの扱いに関して,次の2つの方法をサポートす
     117 *  る.
     118 *
     119 *  (1) カーネルを単体で使用する場合やSafeGのノンセキュアモードで使用す
     120 *  る場合:IRQをカーネル管理の割込み,FIQをカーネル管理外の割込みとす
     121 *  る.デフォルトでは,この方法が使用される.
     122 *
     123 *  (2) SafeGのセキュアモードで使用する場合:FIQをカーネル管理の割込み
     124 *  とし,カーネルの動作中はIRQを常にマスクする.この方法を使用する場合
     125 *  には,TOPPERS_SAFEG_SECUREをマクロ定義する.
     126 *
     127 *  TOPPERS標準割込み処理モデルの中で,割込み優先度マスクと割込み要求禁
     128 *  止フラグに関しては,割込みコントローラによって実現方法が異なるため,
     129 *  ARMコア依存部では扱わない.
     130 */
     131
     132/*
     133 *  FIQとIRQの両方を禁止するCPSRのビットパターン
    152134 */
    153135#ifndef TOPPERS_MACRO_ONLY
     
    158140
    159141/*
    160  *  CPUロック・割込みロックでない状æ
    161 ‹ã§ã®CPSRのビットパターン
     142 *  CPUロック・割込みロックでない状態でのCPSRのビットパターン
    162143 */
    163144#ifndef TOPPERS_SAFEG_SECURE
     
    168149
    169150/*
    170  *  CPUロック状æ
    171 ‹ã§ã®CPSRのビットパターン
     151 *  CPUロック状態でのCPSRのビットパターン
    172152 */
    173153#ifndef TOPPERS_SAFEG_SECURE
     
    178158
    179159/*
    180  *  割込みロック状æ
    181 ‹ã§ã®CPSRのビットパターン
     160 *  割込みロック状態でのCPSRのビットパターン
    182161 */
    183162#define CPSR_INTLOCK            CPSR_FIQ_IRQ_BIT
     
    186165
    187166/*
    188  *  CPUロック状æ
    189 ‹ã¸ã®é·ç§»
     167 *  CPUロック状態への遷移
    190168 */
    191169Inline void
     
    203181
    204182        /*
    205          *  メモリ参ç
    206 §ãŒï¼Œã“の関数をè¶
    207 ãˆã¦æœ€é©åŒ–されることを抑止
     183         *  メモリ参照が,この関数を超えて最適化されることを抑止
    208184         */
    209185        ARM_MEMORY_CHANGED;
     
    211187
    212188/*
    213  *  CPUロック状æ
    214 ‹ã¸ã®ç§»è¡Œï¼ˆãƒ‡ã‚£ã‚¹ãƒ‘ッチできる状æ
    215 ‹ï¼‰
     189 *  CPUロック状態への移行(ディスパッチできる状態)
    216190 */
    217191#define lock_cpu_dsp()          lock_cpu()
    218192
    219193/*
    220  *  CPUロック状æ
    221 ‹ã®è§£é™¤
     194 *  CPUロック状態の解除
    222195 */
    223196Inline void
     
    225198{
    226199        /*
    227          *  メモリ参ç
    228 §ãŒï¼Œã“の関数をè¶
    229 ãˆã¦æœ€é©åŒ–されることを抑止
     200         *  メモリ参照が,この関数を超えて最適化されることを抑止
    230201         */
    231202        ARM_MEMORY_CHANGED;
     
    243214
    244215/*
    245  *  CPUロック状æ
    246 ‹ã®è§£é™¤ï¼ˆãƒ‡ã‚£ã‚¹ãƒ‘ッチできる状æ
    247 ‹ï¼‰
     216 *  CPUロック状態の解除(ディスパッチできる状態)
    248217 */
    249218#define unlock_cpu_dsp()        unlock_cpu()
    250219
    251220/*
    252  *  CPUロック状æ
    253 ‹ã®å‚ç
    254 §
     221 *  CPUロック状態の参照
    255222 */
    256223Inline bool_t
     
    265232
    266233/*
    267  *  割込みを受け付けるためのé
    268 å»¶å‡¦ç†
     234 *  割込みを受け付けるための遅延処理
    269235 */
    270236Inline void
     
    274240
    275241/*
    276  *  非タスクコンテキスト用のスタック初期値
     242 *  非タスクコンテキスト用のスタック初期値
    277243 */
    278244#define TOPPERS_ISTKPT(istk, istksz)    ((STK_T *)((char *)(istk) + (istksz)))
    279245
    280246/*
    281  *  タスクコンテキストブロックの定義
     247 *  タスクコンテキストブロックの定義
    282248 */
    283249typedef struct task_context_block {
    284         void    *sp;            /* スタックポインタ */
    285         FP              pc;                     /* 実行再開番地 */
     250        void    *sp;            /* スタックポインタ */
     251        FP              pc;                     /* 実行再開番地 */
    286252} TSKCTXB;
    287253
    288254/*
    289  *  タスクディスパッチャ
    290  */
    291 
    292 /*
    293  *  最高優å
    294 ˆé †ä½ã‚¿ã‚¹ã‚¯ã¸ã®ãƒ‡ã‚£ã‚¹ãƒ‘ッチ(core_support.S)
    295  *
    296  *  dispatchは,タスクコンテキストから呼び出されたサービスコール処理か
    297  *  ら呼び出すべきもので,タスクコンテキスト・CPUロック状æ
    298 ‹ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッ
    299  *  チ許可状æ
    300 ‹ãƒ»ï¼ˆãƒ¢ãƒ‡ãƒ«ä¸Šã®ï¼‰å‰²è¾¼ã¿å„ªå
    301 ˆåº¦ãƒžã‚¹ã‚¯å
    302 ¨è§£é™¤çŠ¶æ
    303 ‹ã§å‘¼ã³å‡ºã•ãª
    304  *  ければならない.
     255 *  タスクディスパッチャ
     256 */
     257
     258/*
     259 *  最高優先順位タスクへのディスパッチ(core_support.S)
     260 *
     261 *  dispatchは,タスクコンテキストから呼び出されたサービスコール処理か
     262 *  ら呼び出すべきもので,タスクコンテキスト・CPUロック状態・ディスパッ
     263 *  チ許可状態・(モデル上の)割込み優先度マスク全解除状態で呼び出さな
     264 *  ければならない.
    305265 */
    306266extern void dispatch(void);
    307267
    308268/*
    309  *  非タスクコンテキストからのディスパッチ要求
     269 *  非タスクコンテキストからのディスパッチ要求
    310270 */
    311271#define request_dispatch()
    312272
    313273/*
    314  *  ディスパッチャの動作開始(core_support.S)
    315  *
    316  *  start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込
    317  *  みを禁止した状æ
    318 ‹ï¼ˆå‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    319 ‹ã¨åŒç­‰ã®çŠ¶æ
    320 ‹ï¼‰ã§å‘¼ã³å‡ºã•ãªã‘れば
    321  *  ならない.
     274 *  ディスパッチャの動作開始(core_support.S)
     275 *
     276 *  start_dispatchは,カーネル起動時に呼び出すべきもので,すべての割込
     277 *  みを禁止した状態(割込みロック状態と同等の状態)で呼び出さなければ
     278 *  ならない.
    322279 */
    323280extern void start_dispatch(void) NoReturn;
    324281
    325282/*
    326  *  現在のコンテキストを捨ててディスパッチ(core_support.S)
    327  *
    328  *  exit_and_dispatchは,ext_tskから呼び出すべきもので,タスクコンテキ
    329  *  スト・CPUロック状æ
    330 ‹ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチ許可状æ
    331 ‹ãƒ»ï¼ˆãƒ¢ãƒ‡ãƒ«ä¸Šã®ï¼‰å‰²è¾¼ã¿å„ªå
    332 ˆ
    333  *  度マスクå
    334 ¨è§£é™¤çŠ¶æ
    335 ‹ã§å‘¼ã³å‡ºã•ãªã‘ればならない.
     283 *  現在のコンテキストを捨ててディスパッチ(core_support.S)
     284 *
     285 *  exit_and_dispatchは,ext_tskから呼び出すべきもので,タスクコンテキ
     286 *  スト・CPUロック状態・ディスパッチ許可状態・(モデル上の)割込み優先
     287 *  度マスク全解除状態で呼び出さなければならない.
    336288 */
    337289extern void exit_and_dispatch(void) NoReturn;
    338290
    339291/*
    340  *  カーネルの終了処理の呼出し(core_support.S)
    341  *
    342  *  call_exit_kernelは,カーネルの終了時に呼び出すべきもので,非タスク
    343  *  コンテキストに切り換えて,カーネルの終了処理(exit_kernel)を呼び出
    344  *  す.
     292 *  カーネルの終了処理の呼出し(core_support.S)
     293 *
     294 *  call_exit_kernelは,カーネルの終了時に呼び出すべきもので,非タスク
     295 *  コンテキストに切り換えて,カーネルの終了処理(exit_kernel)を呼び出
     296 *  す.
    345297 */
    346298extern void call_exit_kernel(void) NoReturn;
    347299     
    348300/*
    349  *  タスクコンテキストの初期化
    350  *
    351  *  タスクが休止状æ
    352 ‹ã‹ã‚‰å®Ÿè¡Œã§ãã‚‹çŠ¶æ
    353 ‹ã«é·ç§»ã™ã‚‹æ™‚に呼ばれる.この時点
    354  *  でスタック領域を使ってはならない.
    355  *
    356  *  activate_contextを,インライン関数ではなくマクロ定義としているのは,
    357  *  この時点ではTCBが定義されていないためである.
     301 *  タスクコンテキストの初期化
     302 *
     303 *  タスクが休止状態から実行できる状態に遷移する時に呼ばれる.この時点
     304 *  でスタック領域を使ってはならない.
     305 *
     306 *  activate_contextを,インライン関数ではなくマクロ定義としているのは,
     307 *  この時点ではTCBが定義されていないためである.
    358308 */
    359309extern void start_r(void);
     
    367317
    368318/*
    369  *  標準の割込み管理機能の初期化処理を用いない
     319 *  標準の割込み管理機能の初期化処理を用いない
    370320 */
    371321#define OMIT_INITIALIZE_INTERRUPT
    372322
    373323/*
    374  *  割込みハンドラテーブル(kernel_cfg.c)
     324 *  割込みハンドラテーブル(kernel_cfg.c)
    375325 */
    376326extern FP inh_table[TNUM_INHNO];
    377327
    378328/*
    379  *  割込み要求ライン設定テーブル(kernel_cfg.c)
    380  *
    381  *  割込み要求ラインに対して割込み属性が設定されていれば1,設定されてい
    382  *  なければ0を保持するテーブル.
     329 *  割込み要求ライン設定テーブル(kernel_cfg.c)
     330 *
     331 *  割込み要求ラインに対して割込み属性が設定されていれば1,設定されてい
     332 *  なければ0を保持するテーブル.
    383333 */
    384334#ifdef USE_INTCFG_TABLE
     
    387337
    388338/*
    389  *  標準の例外管理機能の初期化処理を用いない
     339 *  標準の例外管理機能の初期化処理を用いない
    390340 */
    391341#define OMIT_INITIALIZE_EXCEPTION
    392342
    393343/*
    394  *  CPU例外ハンドラテーブル(kernel_cfg.c)
     344 *  CPU例外ハンドラテーブル(kernel_cfg.c)
    395345 */
    396346extern const FP exc_table[TNUM_EXCNO];
    397347
    398348/*
    399  *  CPU例外ハンドラの初期化
     349 *  CPU例外ハンドラの初期化
    400350 */
    401351Inline void
     
    405355
    406356/*
    407  *  CPU例外の発生した時のコンテキストの参ç
    408 §
    409  *
    410  *  CPU例外の発生した時のコンテキストが,タスクコンテキストの時にfalse,
    411  *  そうでない時にtrueを返す.
     357 *  CPU例外の発生した時のコンテキストの参照
     358 *
     359 *  CPU例外の発生した時のコンテキストが,タスクコンテキストの時にfalse,
     360 *  そうでない時にtrueを返す.
    412361 */
    413362Inline bool_t
     
    418367
    419368/*
    420  *  CPU例外の発生した時の割込み優å
    421 ˆåº¦ãƒžã‚¹ã‚¯ã®å‚ç
    422 §
     369 *  CPU例外の発生した時の割込み優先度マスクの参照
    423370 */
    424371Inline PRI
     
    429376
    430377/*
    431  *  CPUロック状æ
    432 ‹ã¾ãŸã¯å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    433 ‹ã‹ã®å‚ç
    434 §
     378 *  CPUロック状態または割込みロック状態かの参照
    435379 */
    436380Inline bool_t
     
    446390
    447391/*
    448  *  CPU例外の発生した時のコンテキストと割込みのマスク状æ
    449 ‹ã®å‚ç
    450 §
    451  *
    452  *  CPU例外の発生した時のシステム状æ
    453 ‹ãŒï¼Œã‚«ãƒ¼ãƒãƒ«å®Ÿè¡Œä¸­ã§ãªãï¼Œã‚¿ã‚¹ã‚¯ã‚³
    454  *  ンテキストであり,å
    455 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    456 ‹ã§ãªãï¼ŒCPUロック状æ
    457 ‹ã§ãªãï¼Œå‰²
    458  *  込み優å
    459 ˆåº¦ãƒžã‚¹ã‚¯å
    460 ¨è§£é™¤çŠ¶æ
    461 ‹ã§ã‚る時にtrue,そうでない時にfalseを返す
    462  *  (CPU例外がカーネル管理外の割込み処理中で発生した場合にもfalseを返
    463  *  す).
     392 *  CPU例外の発生した時のコンテキストと割込みのマスク状態の参照
     393 *
     394 *  CPU例外の発生した時のシステム状態が,カーネル実行中でなく,タスクコ
     395 *  ンテキストであり,全割込みロック状態でなく,CPUロック状態でなく,割
     396 *  込み優先度マスク全解除状態である時にtrue,そうでない時にfalseを返す
     397 *  (CPU例外がカーネル管理外の割込み処理中で発生した場合にもfalseを返
     398 *  す).
    464399 *
    465400 */
     
    475410
    476411/*
    477  *  MMU関連の操作(VMSA)
     412 *  MMU関連の操作(VMSA)
    478413 */
    479414#ifdef USE_ARM_MMU
    480415
    481416/*
    482  *  変換テーブルベースレジスタ(TTBR)の設定値
     417 *  変換テーブルベースレジスタ(TTBR)の設定値
    483418 */
    484419#if __TARGET_ARCH_ARM < 6
     
    495430
    496431/*
    497  *  MMUの設定æƒ
    498 å ±ã®ãƒ‡ãƒ¼ã‚¿åž‹
     432 *  MMUの設定情報のデータ型
    499433 */
    500434typedef struct arm_mmu_config {
    501         uint32_t        vaddr;                  /* 仮想アドレス */
    502         uint32_t        paddr;                  /* 物理アドレス */
    503         uint32_t        size;                   /* サイズ */
    504         uint32_t        attr;                   /* セクション属性 */
     435        uint32_t        vaddr;                  /* 仮想アドレス */
     436        uint32_t        paddr;                  /* 物理アドレス */
     437        uint32_t        size;                   /* サイズ */
     438        uint32_t        attr;                   /* セクション属性 */
    505439} ARM_MMU_CONFIG;
    506440
    507441/*
    508  *  MMUの設定æƒ
    509 å ±ã®æ•°ï¼ˆãƒ¡ãƒ¢ãƒªã‚¨ãƒªã‚¢ã®æ•°ï¼‰ï¼ˆtarget_kernel_impl.c)
     442 *  MMUの設定情報の数(メモリエリアの数)(target_kernel_impl.c)
    510443 */
    511444extern const uint_t arm_tnum_memory_area;
    512445
    513446/*
    514  *  MMUの設定æƒ
    515 å ±ï¼ˆãƒ¡ãƒ¢ãƒªã‚¨ãƒªã‚¢ã®æƒ
    516 å ±ï¼‰ï¼ˆtarget_kernel_impl.c)
     447 *  MMUの設定情報(メモリエリアの情報)(target_kernel_impl.c)
    517448 */
    518449extern ARM_MMU_CONFIG arm_memory_area[];
    519450
    520451/*
    521  *  MMUの初期化
     452 *  MMUの初期化
    522453 */
    523454extern void arm_mmu_initialize(void);
     
    529460
    530461/*
    531  *  コア依存の初期化
     462 *  コア依存の初期化
    532463 */
    533464extern void core_initialize(void);
    534465
    535466/*
    536  *  コア依存の終了処理
     467 *  コア依存の終了処理
    537468 */
    538469extern void core_terminate(void);
    539470
    540471/*
    541  *  CPU例外の発生状況のログ出力
     472 *  CPU例外の発生状況のログ出力
    542473 */
    543474#ifndef OMIT_XLOG_SYS
     
    547478
    548479/*
    549  *  未定義の割込みがå
    550 ¥ã£ãŸå ´åˆã®å‡¦ç†
     480 *  未定義の割込みが入った場合の処理
    551481 */
    552482extern void default_int_handler(void);
    553483
    554484/*
    555  *  未定義の例外がå
    556 ¥ã£ãŸå ´åˆã®å‡¦ç†
     485 *  未定義の例外が入った場合の処理
    557486 */
    558487extern void default_exc_handler(void *p_excinf, EXCNO excno);
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_offset.trb

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

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    66 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  $Id$
     
    5439
    5540/*
    56  *              L2キャッシュコントローラ(PL310)の操作ライブラリ
     41 *              L2キャッシュコントローラ(PL310)の操作ライブラリ
    5742 */
    5843
     
    6752        aux = sil_rew_mem(PL310_AUX_CTRL);
    6853        if ((aux & PL310_AUX_CTRL_ASSOCIATIVITY) != 0U) {
    69                 /* 16ウェイ */
     54                /* 16ウェイ */
    7055                return(0x0000ffffU);
    7156        }
    7257        else {
    73                 /* 8ウェイ */
     58                /* 8ウェイ */
    7459                return(0x000000ffU);
    7560        }
     
    8772        uint32_t        way_mask = get_way_mask();
    8873
    89         /* すべてのウェイを無効化する */
     74        /* すべてのウェイを無効化する */
    9075        sil_wrw_mem(PL310_INV_WAY, 0xffff);
    9176        while ((sil_rew_mem(PL310_INV_WAY) & way_mask) != 0U) ;
     
    10085
    10186/*
    102  *  PL310の初期化
     87 *  PL310の初期化
    10388 */
    10489void
     
    10994        uint32_t        prefetch_val = 0U;
    11095
    111         /* L2キャッシュがディスエーブルの場合のみ初期化を行う */
     96        /* L2キャッシュがディスエーブルの場合のみ初期化を行う */
    11297        if ((sil_rew_mem(PL310_CTRL) & 0x01) == 0U) {
    113                 /* å
    114 ±æœ‰å±žæ€§ã‚’無視する */
     98                /* 共有属性を無視する */
    11599                aux_val |= PL310_AUX_CTRL_IGNORE_SHARE;
    116100
    117                 /* 命令プリフェッチをイネーブル */
     101                /* 命令プリフェッチをイネーブル */
    118102                aux_val |= PL310_AUX_CTRL_INST_PREFETCH;
    119103                prefetch_val |= PL310_AUX_CTRL_INST_PREFETCH;
    120104
    121                 /* データプリフェッチをイネーブル */
     105                /* データプリフェッチをイネーブル */
    122106                aux_val |= PL310_AUX_CTRL_DATA_PREFETCH;
    123107                prefetch_val |= PL310_AUX_CTRL_DATA_PREFETCH;
    124108
    125                 /* ダブルラインフィルをイネーブル */
     109                /* ダブルラインフィルをイネーブル */
    126110                prefetch_val |= PL310_PREFETCH_CTRL_DLINEFILL;
    127111                prefetch_val |= PL310_PREFETCH_CTRL_INCR_DLINEFILL;
    128112               
    129                 /* 補助制御レジスタを設定 */
     113                /* 補助制御レジスタを設定 */
    130114                aux = sil_rew_mem(PL310_AUX_CTRL);
    131115                sil_wrw_mem(PL310_AUX_CTRL, ((aux & aux_mask) | aux_val));
    132116
    133                 /* プリフェッチ制御レジスタを設定 */
     117                /* プリフェッチ制御レジスタを設定 */
    134118                prefetch = sil_rew_mem(PL310_PREFETCH_CTRL);
    135119                sil_wrw_mem(PL310_PREFETCH_CTRL, (prefetch | prefetch_val));
    136120
    137                 /* L2キャッシュのå
    138 ¨ä½“の無効化 */
     121                /* L2キャッシュの全体の無効化 */
    139122                pl310_inv_all();
    140123       
    141                 /* クロックゲーティングとスタンバイモードをイネーブル */
     124                /* クロックゲーティングとスタンバイモードをイネーブル */
    142125                sil_wrw_mem(PL310_POWER_CTRL, 0x03);
    143126       
    144                 /* L2キャッシュのイネーブル */
     127                /* L2キャッシュのイネーブル */
    145128                sil_wrw_mem(PL310_CTRL, 0x01);
    146129        }   
     
    148131
    149132/*
    150  *  L2キャッシュのディスエーブル
     133 *  L2キャッシュのディスエーブル
    151134 */
    152135void
     
    158141
    159142/*
    160  *  L2キャッシュå
    161 ¨ä½“の無効化(書き戻さない)
     143 *  L2キャッシュ全体の無効化(書き戻さない)
    162144 */
    163145void
     
    170152
    171153/*
    172  *  L2キャッシュå
    173 ¨ä½“のクリーンと無効化
     154 *  L2キャッシュ全体のクリーンと無効化
    174155 */
    175156void
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_pl310.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    66 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  $Id$
     
    5439
    5540/*
    56  *              L2キャッシュコントローラ(PL310)に関する定義
     41 *              L2キャッシュコントローラ(PL310)に関する定義
    5742 */
    5843
     
    6146
    6247/*
    63  *  型キャストを行うマクロの定義
     48 *  型キャストを行うマクロの定義
    6449 */
    6550#ifndef CAST
     
    6853
    6954/*
    70  *  PL310のレジスタの番地の定義
     55 *  PL310のレジスタの番地の定義
    7156 */
    7257#define PL310_CACHE_ID                  CAST(uint32_t *, PL310_BASE + 0x000)
     
    10186
    10287/*
    103  *  キャッシュ補助制御レジスタ(PL310_AUX_CTRL)の設定値
     88 *  キャッシュ補助制御レジスタ(PL310_AUX_CTRL)の設定値
    10489 */
    10590#define PL310_AUX_CTRL_ASSOCIATIVITY            0x00010000
     
    11499
    115100/*
    116  *  プリフェッチ制御レジスタ(PL310_PREFETCH_CTRL)の設定値
     101 *  プリフェッチ制御レジスタ(PL310_PREFETCH_CTRL)の設定値
    117102 */
    118103#define PL310_PREFETCH_CTRL_INCR_DLINEFILL      0x00800000
     
    124109
    125110/*
    126  *  L2キャッシュの初期化とイネーブル
     111 *  L2キャッシュの初期化とイネーブル
    127112 */
    128113extern void pl310_initialize(uint32_t aux_val, uint32_t aux_mask);
    129114
    130115/*
    131  *  L2キャッシュのディスエーブル
     116 *  L2キャッシュのディスエーブル
    132117 */
    133118extern void pl310_disable(void);
    134119
    135120/*
    136  *  L2キャッシュå
    137 ¨ä½“の無効化(書き戻さない)
     121 *  L2キャッシュ全体の無効化(書き戻さない)
    138122 */
    139123extern void pl310_invalidate_all(void);
    140124
    141125/*
    142  *  L2キャッシュå
    143 ¨ä½“のクリーンと無効化
     126 *  L2キャッシュ全体のクリーンと無効化
    144127 */
    145128extern void pl310_clean_and_invalidate_all(void);
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_rename.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_sil.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    4632 *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              sil.hのコア依存部(ARM用)
     43 *              sil.hのコア依存部(ARM用)
    5944 *
    60  *  このヘッダファイルは,target_sil.h(または,そこからインクルードさ
    61  *  れるファイル)のみからインクルードされる.他のファイルから直接イン
    62  *  クルードしてはならない.
     45 *  このヘッダファイルは,target_sil.h(または,そこからインクルードさ
     46 *  れるファイル)のみからインクルードされる.他のファイルから直接イン
     47 *  クルードしてはならない.
    6348 */
    6449
     
    7257
    7358/*
    74  *  ステータスレジスタ(CPSR)の現在値の読出し
     59 *  ステータスレジスタ(CPSR)の現在値の読出し
    7560 */
    7661Inline uint32_t
     
    8469
    8570/*
    86  *  ステータスレジスタ(CPSR)の現在値の変更
     71 *  ステータスレジスタ(CPSR)の現在値の変更
    8772 */
    8873Inline void
     
    9479#else /* __thumb__ */
    9580/*
    96  *  Thumbモードではmrs/msr命令が使用できないため,関数として実現して,
    97  *  ARMモードに移行して実行する.
     81 *  Thumbモードではmrs/msr命令が使用できないため,関数として実現して,
     82 *  ARMモードに移行して実行する.
    9883 */
    9984
    10085/*
    101  *  ステータスレジスタ(CPSR)の現在値の読出し
     86 *  ステータスレジスタ(CPSR)の現在値の読出し
    10287 */
    10388extern uint32_t current_cpsr(void);
     
    10590
    10691/*
    107  *  ステータスレジスタ(CPSR)の現在値の変更
     92 *  ステータスレジスタ(CPSR)の現在値の変更
    10893 */
    10994extern void set_cpsr(uint32_t cpsr);
     
    11398
    11499/*
    115  *  すべての割込み(FIQとIRQ)の禁止
     100 *  すべての割込み(FIQとIRQ)の禁止
    116101 */
    117102Inline uint32_t
     
    133118
    134119/*
    135  *  FIQとIRQの禁止ビットの復帰
     120 *  FIQとIRQの禁止ビットの復帰
    136121 */
    137122Inline void
     
    147132
    148133/*
    149  *  å
    150 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    151 ‹ã®åˆ¶å¾¡
     134 *  全割込みロック状態の制御
    152135 */
    153136#define SIL_PRE_LOC             uint32_t TOPPERS_fiq_irq_mask
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_stddef.h

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

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;charset=UTF-8
    r279 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     11 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20 *      の無保証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23 *      と.
     24 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     26 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27 *        報告すること.
     28 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              カーネルのコア依存部のアセンブリ言語部(ARM用)
     44 *              カーネルのコア依存部のアセンブリ言語部(ARM用)
    6045 */
    6146
    6247#define TOPPERS_MACRO_ONLY
    6348#define TOPPERS_ASM_MACRO
    64 #define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
    65 #define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
    66 #define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
     49#define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
     50#define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
     51#define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
    6752#include "kernel_impl.h"
    6853#include "offset.h"
     
    7055
    7156/*
    72  *  例外ベクタ
     57 *  例外ベクタ
    7358 */
    7459        ASECTION(.vector)
     
    7661        AGLOBAL(vector_table)
    7762ALABEL(vector_table)
    78         ldr             pc, reset_vector                /* リセット */
    79         ldr             pc, undef_vector                /* 未定義命令 */
    80         ldr             pc, svc_vector                  /* ソフトウェア割込み */
    81         ldr             pc, pabort_vector               /* プリフェッチアボート */
    82         ldr             pc, dabort_vector               /* データアボート */
    83         ldr             pc, reset_vector                /* 未使用 */
     63        ldr             pc, reset_vector                /* リセット */
     64        ldr             pc, undef_vector                /* 未定義命令 */
     65        ldr             pc, svc_vector                  /* ソフトウェア割込み */
     66        ldr             pc, pabort_vector               /* プリフェッチアボート */
     67        ldr             pc, dabort_vector               /* データアボート */
     68        ldr             pc, reset_vector                /* 未使用 */
    8469        ldr             pc, irq_vector                  /* IRQ */
    8570        ldr             pc, fiq_vector                  /* FIQ */
    8671
    8772/*
    88  *  例外ベクタの命令から参ç
    89 §ã•ã‚Œã‚‹ã‚¸ãƒ£ãƒ³ãƒ—å
    90 ˆã‚¢ãƒ‰ãƒ¬ã‚¹
     73 *  例外ベクタの命令から参照されるジャンプ先アドレス
    9174 */
    9275        AGLOBAL(vector_ref_table)
     
    10891
    10992/*
    110  *  タスクディスパッチャ
     93 *  タスクディスパッチャ
    11194 */
    11295        ATEXT
     
    11598ALABEL(dispatch)
    11699        /*
    117          *  このルーチンは,タスクコンテキスト・CPUロック状æ
    118 ‹ãƒ»å‰²è¾¼ã¿å„ªå
    119 ˆåº¦
    120          *  マスクå
    121 ¨è§£é™¤çŠ¶æ
    122 ‹ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチ許可状æ
    123 ‹ã§å‘¼ã³å‡ºã•ã‚Œã‚‹ï¼Ž
    124          */
    125         push    {r12,lr}                                /* 戻り番地を保存,r12はダミー */
     100         *  このルーチンは,タスクコンテキスト・CPUロック状態・割込み優先度
     101         *  マスク全解除状態・ディスパッチ許可状態で呼び出される.
     102         */
     103        push    {r12,lr}                                /* 戻り番地を保存,r12はダミー */
    126104#ifdef TOPPERS_SUPPORT_OVRHDR
    127105        bl              ovrtimer_stop
    128106#endif /* TOPPERS_SUPPORT_OVRHDR */
    129         stmfd   sp!, {r4-r11}                   /* 非スクラッチレジスタの保存 */
    130         ldr             r0, =p_runtsk                   /* p_runtsk → r0 */
     107        stmfd   sp!, {r4-r11}                   /* 非スクラッチレジスタの保存 */
     108        ldr             r0, =p_runtsk                   /* p_runtsk r0 */
    131109        ldr             r0, [r0]
    132         str             sp, [r0,#TCB_sp]                /* スタックポインタを保存 */
     110        str             sp, [r0,#TCB_sp]                /* スタックポインタを保存 */
    133111        adr             r1, dispatch_r
    134         str             r1, [r0,#TCB_pc]                /* 実行再開番地を保存 */
    135         b               dispatcher                              /* r0にはp_runtskが格納されている */
     112        str             r1, [r0,#TCB_pc]                /* 実行再開番地を保存 */
     113        b               dispatcher                              /* r0にはp_runtskが格納されている */
    136114
    137115ALABEL(dispatch_r)
    138         ldmfd   sp!, {r4-r11}                   /* 非スクラッチレジスタの復帰 */
     116        ldmfd   sp!, {r4-r11}                   /* 非スクラッチレジスタの復帰 */
    139117#ifdef TOPPERS_SUPPORT_OVRHDR
    140118        bl              ovrtimer_start
    141119#endif /* TOPPERS_SUPPORT_OVRHDR */
    142         pop             {r12,lr}                                /* 戻り番地を復帰 */
     120        pop             {r12,lr}                                /* 戻り番地を復帰 */
    143121        bx              lr
    144122
    145123/*
    146  *  ディスパッチャの動作開始
     124 *  ディスパッチャの動作開始
    147125 */
    148126        AGLOBAL(start_dispatch)
    149127ALABEL(start_dispatch)
    150128        /*
    151          *  このルーチンは,カーネル起動時に,非タスクコンテキストで,NMIを
    152          *  除くすべての割込みを禁止した状æ
    153 ‹ï¼ˆå
    154 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    155 ‹ã¨åŒç­‰ï¼‰ã§
    156          *  呼び出される.
     129         *  このルーチンは,カーネル起動時に,非タスクコンテキストで,NMIを
     130         *  除くすべての割込みを禁止した状態(全割込みロック状態と同等)で
     131         *  呼び出される.
    157132         *
    158          *  dispatcher_0へ分岐する前に,タスクコンテキスト・CPUロック状æ
    159 ‹ãƒ»
    160          *  割込み優å
    161 ˆåº¦ãƒžã‚¹ã‚¯å
    162 ¨è§£é™¤çŠ¶æ
    163 ‹ã«ã—,使用するスタックを,IDが1のタ
    164          *  スクのスタック領域に切り換えなければならない.
    165          */
    166 
    167         /*
    168          *      タスクコンテキストに切り換える.
    169          */
    170         ldr             r2, =excpt_nest_count   /* 例外ネストカウントを0に */
     133         *  dispatcher_0へ分岐する前に,タスクコンテキスト・CPUロック状態・
     134         *  割込み優先度マスク全解除状態にし,使用するスタックを,IDが1のタ
     135         *  スクのスタック領域に切り換えなければならない.
     136         */
     137
     138        /*
     139         *      タスクコンテキストに切り換える.
     140         */
     141        ldr             r2, =excpt_nest_count   /* 例外ネストカウントを0に */
    171142        mov             r0, #0
    172143        str             r0, [r2]
    173144
    174145        /*
    175          *  IDが1のタスクのスタック領域に切り換える.
    176          */
    177         ldr             r0, =tcb_table                  /* tcb_table[0] → r0 */
    178         ldr             r2, [r0,#TCB_p_tinib]   /* tcb_table[0].p_tinib → r2 */
     146         *  IDが1のタスクのスタック領域に切り換える.
     147         */
     148        ldr             r0, =tcb_table                  /* tcb_table[0] r0 */
     149        ldr             r2, [r0,#TCB_p_tinib]   /* tcb_table[0].p_tinib r2 */
    179150        ldr             r0, [r2,#TINIB_stk]
    180151        ldr             r1, [r2,#TINIB_stksz]
     
    182153
    183154        /*
    184          *  CPUロック状æ
    185 ‹ã«ã—て,ディスパッチャ本体へ分岐する.
     155         *  CPUロック状態にして,ディスパッチャ本体へ分岐する.
    186156         */
    187157        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_CPULOCK)
     
    189159
    190160/*
    191  *  現在のコンテキストを捨ててディスパッチ
     161 *  現在のコンテキストを捨ててディスパッチ
    192162 */
    193163        AGLOBAL(exit_and_dispatch)
    194164ALABEL(exit_and_dispatch)
    195165        /*
    196          *  このルーチンは,タスクコンテキスト・CPUロック状æ
    197 ‹ãƒ»å‰²è¾¼ã¿å„ªå
    198 ˆåº¦
    199          *  マスクå
    200 ¨è§£é™¤çŠ¶æ
    201 ‹ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチ許可状æ
    202 ‹ã§å‘¼ã³å‡ºã•ã‚Œã‚‹ï¼Ž
     166         *  このルーチンは,タスクコンテキスト・CPUロック状態・割込み優先度
     167         *  マスク全解除状態・ディスパッチ許可状態で呼び出される.
    203168         */
    204169#ifdef LOG_DSP_ENTER
    205         ldr             r0, =p_runtsk                   /* p_runtsk → r0 */
     170        ldr             r0, =p_runtsk                   /* p_runtsk r0 */
    206171        ldr             r0, [r0]
    207172#endif /* LOG_DSP_ENTER */
    208         /* ディスパッチャ本体(dispatcher)へ */
    209 
    210 /*
    211  *  ディスパッチャ本体
     173        /* ディスパッチャ本体(dispatcher)へ */
     174
     175/*
     176 *  ディスパッチャ本体
    212177 */
    213178ALABEL(dispatcher)
    214179#ifdef LOG_DSP_ENTER
    215180        /*
    216          * 【この時点のレジスタ状æ
    217 ‹ã€‘
    218          *  r0:p_runtsk(タスク切換え前)
     181         * 【この時点のレジスタ状態】
     182         *  r0:p_runtsk(タスク切換え前)
    219183         */
    220184        bl              log_dsp_enter
     
    223187ALABEL(dispatcher_0)
    224188        /*
    225          *  このルーチンは,タスクコンテキスト・CPUロック状æ
    226 ‹ãƒ»å‰²è¾¼ã¿å„ªå
    227 ˆåº¦
    228          *  マスクå
    229 ¨è§£é™¤çŠ¶æ
    230 ‹ãƒ»ãƒ‡ã‚£ã‚¹ãƒ‘ッチ許可状æ
    231 ‹ã§å‘¼ã³å‡ºã•ã‚Œã‚‹ï¼Žå®Ÿè¡Œå†é–‹ç•ª
    232          *  地へもこの状æ
    233 ‹ã®ã¾ã¾åˆ†å²ã™ã‚‹ï¼Ž
    234          */
    235         ldr             r0, =p_schedtsk         /* p_schedtsk → r4 → p_runtsk */
     189         *  このルーチンは,タスクコンテキスト・CPUロック状態・割込み優先度
     190         *  マスク全解除状態・ディスパッチ許可状態で呼び出される.実行再開番
     191         *  地へもこの状態のまま分岐する.
     192         */
     193        ldr             r0, =p_schedtsk         /* p_schedtsk → r4 → p_runtsk */
    236194        ldr             r4, [r0]
    237195        ldr             r1, =p_runtsk
    238196        str             r4, [r1]
    239         tst             r4, r4                          /* p_runtskがNULLならdispatcher_1へ */
     197        tst             r4, r4                          /* p_runtskがNULLならdispatcher_1へ */
    240198        beq             dispatcher_1
    241         ldr             sp, [r4,#TCB_sp]        /* タスクスタックを復帰 */
     199        ldr             sp, [r4,#TCB_sp]        /* タスクスタックを復帰 */
    242200#ifdef LOG_DSP_LEAVE
    243         mov             r0, r4                          /* p_runtskをパラメータに渡す */
     201        mov             r0, r4                          /* p_runtskをパラメータに渡す */
    244202        bl              log_dsp_leave
    245203#endif /* LOG_DSP_LEAVE */
    246         ldr             r0, [r4,#TCB_pc]        /* 実行再開番地を復帰 */
    247         bx              r0                                      /* p_runtskをr4にå
    248 ¥ã‚ŒãŸçŠ¶æ
    249 ‹ã§åˆ†å²ã™ã‚‹ */
    250 
    251         /*
    252          *  アイドル処理
     204        ldr             r0, [r4,#TCB_pc]        /* 実行再開番地を復帰 */
     205        bx              r0                                      /* p_runtskをr4に入れた状態で分岐する */
     206
     207        /*
     208         *  アイドル処理
    253209         *
    254          *  割込みをすべて許可し,CPUロック解除状æ
    255 ‹ã«ã—て割込みをå¾
    256 ã¤ï¼Ž
     210         *  割込みをすべて許可し,CPUロック解除状態にして割込みを待つ.
    257211         *
    258          *  ターゲットによっては,省電力モード等に移行するため,標準の方法
    259          *  と異なる手順がå¿
    260 è¦ãªå ´åˆãŒã‚る.そのようなターゲットでは,ター
    261          *  ゲット依存部でTOPPERS_CUSTOM_IDLEを定義し,アセンブラマクロとし
    262          *  て,toppers_asm_custom_idleを用意すればよい.
     212         *  ターゲットによっては,省電力モード等に移行するため,標準の方法
     213         *  と異なる手順が必要な場合がある.そのようなターゲットでは,ター
     214         *  ゲット依存部でTOPPERS_CUSTOM_IDLEを定義し,アセンブラマクロとし
     215         *  て,toppers_asm_custom_idleを用意すればよい.
    263216         */
    264217ALABEL(dispatcher_1)
     
    266219        toppers_asm_custom_idle
    267220#else /* TOPPERS_CUSTOM_IDLE */
    268         msr             cpsr_c, #CPSR_SVC_MODE  /* 割込みを許可(スーパバイザモード)*/
     221        msr             cpsr_c, #CPSR_SVC_MODE  /* 割込みを許可(スーパバイザモード)*/
    269222#endif /* TOPPERS_CUSTOM_IDLE */
    270         b               dispatcher_1                    /* 割込みå¾
    271 ã¡ */
    272 
    273 /*
    274  *  カーネルの終了処理の呼出し
     223        b               dispatcher_1                    /* 割込み待ち */
     224
     225/*
     226 *  カーネルの終了処理の呼出し
    275227 *
    276  *  割込みロック状æ
    277 ‹ã«ã—,使用するスタックを非タスクコンテキスト用のスタッ
    278  *  ク領域に切り替え,exit_kernelを呼び出す.
     228 *  割込みロック状態にし,使用するスタックを非タスクコンテキスト用のスタッ
     229 *  ク領域に切り替え,exit_kernelを呼び出す.
    279230 */
    280231        AGLOBAL(call_exit_kernel)
    281232ALABEL(call_exit_kernel)
    282233        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_INTLOCK)
    283         ldr             r0, =istkpt                             /* 非タスクコンテキストのスタックへ */
     234        ldr             r0, =istkpt                             /* 非タスクコンテキストのスタックへ */
    284235        ldr             sp, [r0]
    285236        b               exit_kernel
    286237
    287238/*
    288  *  タスクの実行開始時処理
     239 *  タスクの実行開始時処理
    289240 */
    290241        ATEXT
     
    292243        AGLOBAL(start_r)
    293244        /*
    294          *  ディスパッチャ本体から呼び出されるため,p_runtskはr4にå
    295 ¥ã£ã¦ã„る.
     245         *  ディスパッチャ本体から呼び出されるため,p_runtskはr4に入っている.
    296246         */
    297247ALABEL(start_r)
     
    300250#endif /* TOPPERS_SUPPORT_OVRHDR */
    301251        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_UNLOCK)
    302                                                                         /* CPUロック解除状æ
    303 ‹ã« */
    304         ldr             lr, =ext_tsk                    /* タスク本体からの戻り番地を設定 */
    305         ldr             r2, [r4,#TCB_p_tinib]   /* p_runtsk->p_tinib → r2 */
    306         ldr             r0, [r2,#TINIB_exinf]   /* exinfをパラメータに */
    307         ldr             r1, [r2,#TINIB_task]    /* タスク起動番地にジャンプ */
     252                                                                        /* CPUロック解除状態に */
     253        ldr             lr, =ext_tsk                    /* タスク本体からの戻り番地を設定 */
     254        ldr             r2, [r4,#TCB_p_tinib]   /* p_runtsk->p_tinib → r2 */
     255        ldr             r0, [r2,#TINIB_exinf]   /* exinfをパラメータに */
     256        ldr             r1, [r2,#TINIB_task]    /* タスク起動番地にジャンプ */
    308257        bx              r1
    309258
    310259/*
    311  *  割込みハンドラの出å
    312 ¥å£å‡¦ç†
     260 *  割込みハンドラの出入口処理
    313261 */
    314262#ifndef OMIT_IRQ_HANDLER
     
    318266ALABEL(irq_handler)
    319267        /*
    320          *  ここには,IRQモードで分岐してくる.
    321          */
    322 #if __TARGET_ARCH_ARM < 6
    323         /*
    324          *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
     268         *  ここには,IRQモードで分岐してくる.
     269         */
     270#if __TARGET_ARCH_ARM < 6
     271        /*
     272         *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
    325273         */
    326274        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_IRQ_BIT)
    327         stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
    328 
    329         /*
    330          *  IRQモードに戻して,戻り番地とspsr(戻りå
    331 ˆã®cpsr)を取得する.
     275        stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
     276
     277        /*
     278         *  IRQモードに戻して,戻り番地とspsr(戻り先のcpsr)を取得する.
    332279         */
    333280        msr             cpsr_c, #(CPSR_IRQ_MODE AOR CPSR_IRQ_BIT)
     
    336283
    337284        /*
    338          *  スーパバイザモードに切り換え,戻り番地とspsrを保存する.
     285         *  スーパバイザモードに切り換え,戻り番地とspsrを保存する.
    339286         */
    340287        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_IRQ_BIT)
    341         str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
    342         push    {r1}                                    /* spsrをスタックに保存 */
    343 #else /* __TARGET_ARCH_ARM < 6 */
    344         /*
    345          *  戻りå
    346 ˆï¼ˆlr)とspsr(cpsr_svc)をスーパバイザモードのスタックに
    347          *  保存する.
    348          */
    349         sub             lr, lr, #4                              /* 戻り番地の算出 */
     288        str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
     289        push    {r1}                                    /* spsrをスタックに保存 */
     290#else /* __TARGET_ARCH_ARM < 6 */
     291        /*
     292         *  戻り先(lr)とspsr(cpsr_svc)をスーパバイザモードのスタックに
     293         *  保存する.
     294         */
     295        sub             lr, lr, #4                              /* 戻り番地の算出 */
    350296        srsfd   #CPSR_SVC_MODE!
    351297
    352298        /*
    353          *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
     299         *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
    354300         */
    355301        cps             #CPSR_SVC_MODE
     
    358304
    359305        /*
    360          *  スタックポインタの調整
     306         *  スタックポインタの調整
    361307         */
    362308        and             r1, sp, #4
    363309        sub             sp, sp, r1
    364         push    {r0,r1}                                 /* r0はスペース確保のため */
    365 
    366         /*
    367          *  例外ネストカウントをインクリメントする.割込みが非タスクコンテキ
    368          *  ストで発生した場合には,irq_handler_1へ分岐する.
     310        push    {r0,r1}                                 /* r0はスペース確保のため */
     311
     312        /*
     313         *  例外ネストカウントをインクリメントする.割込みが非タスクコンテキ
     314         *  ストで発生した場合には,irq_handler_1へ分岐する.
    369315         */
    370316        ldr             r2, =excpt_nest_count
     
    372318        add             r3, r3, #1
    373319        str             r3, [r2]
    374         teq             r3, #1                                  /* 割込みが非タスクコンテキストで発生 */
    375         bne             irq_handler_1                   /*                        ならirq_handler_1に分岐 */
     320        teq             r3, #1                                  /* 割込みが非タスクコンテキストで発生 */
     321        bne             irq_handler_1                   /*                        ならirq_handler_1に分岐 */
    376322
    377323#ifdef TOPPERS_SUPPORT_OVRHDR
    378324        /*
    379          *  オーバランタイマを停止する.
     325         *  オーバランタイマを停止する.
    380326         */
    381327        bl              ovrtimer_stop
     
    383329
    384330        /*
    385          *  非タスクコンテキスト用のスタックに切り換える.
    386          */
    387         mov             r3, sp                                  /* この時点のスタックポインタをr3に */
    388         ldr             r2, =istkpt                             /* 非タスクコンテキスト用のスタックに */
     331         *  非タスクコンテキスト用のスタックに切り換える.
     332         */
     333        mov             r3, sp                                  /* この時点のスタックポインタをr3に */
     334        ldr             r2, =istkpt                             /* 非タスクコンテキスト用のスタックに */
    389335        ldr             sp, [r2]
    390         push    {r0,r3}                                 /* 切換え前のスタックポインタを保存 */
    391                                                                         /* r0はスペース確保のため */
     336        push    {r0,r3}                                 /* 切換え前のスタックポインタを保存 */
     337                                                                        /* r0はスペース確保のため */
    392338ALABEL(irq_handler_1)
    393339        /*
    394          *  割込みコントローラを操作し,割込み番号を取得する.
     340         *  割込みコントローラを操作し,割込み番号を取得する.
    395341         */
    396342        bl              irc_begin_int
    397343#if TNUM_INHNO <= 256 || __TARGET_ARCH_ARM <= 6
    398         cmp             r4, #TNUM_INHNO                 /* TNUM_INHNOの値によってはエラーになる */
     344        cmp             r4, #TNUM_INHNO                 /* TNUM_INHNOの値によってはエラーになる */
    399345#else /* TNUM_INHNO <= 256 || __TARGET_ARCH_ARM <= 6 */
    400346        movw    r3, #TNUM_INHNO
    401347        cmp             r4, r3                 
    402348#endif /* TNUM_INHNO <= 256 || __TARGET_ARCH_ARM <= 6 */
    403         bhs             irq_handler_2                   /* スプリアス割込みなら */
    404                                                                         /*  irq_handler_2に分岐 */
    405         /*
    406          *  CPUロック解除状æ
    407 ‹ã«ã™ã‚‹ï¼Ž
     349        bhs             irq_handler_2                   /* スプリアス割込みなら */
     350                                                                        /*  irq_handler_2に分岐 */
     351        /*
     352         *  CPUロック解除状態にする.
    408353         */
    409354#if __TARGET_ARCH_ARM < 6
     
    419364#ifdef LOG_INH_ENTER
    420365        /*
    421          *  ログ出力の呼出し
    422          */
    423         mov             r0, r4                                  /* 割込み番号をパラメータに渡す */
     366         *  ログ出力の呼出し
     367         */
     368        mov             r0, r4                                  /* 割込み番号をパラメータに渡す */
    424369        bl              log_inh_enter
    425370#endif /* LOG_INH_ENTER */
    426371
    427372        /*
    428          *  割込みハンドラの呼出し
    429          */
    430         ldr             r2, =inh_table                  /* 割込みハンドラテーブルの読込み */
    431         ldr             r1, [r2,r4,lsl #2]              /* 割込みハンドラの番地 → r1 */
    432         mov             lr, pc                                  /* 割込みハンドラの呼出し */
     373         *  割込みハンドラの呼出し
     374         */
     375        ldr             r2, =inh_table                  /* 割込みハンドラテーブルの読込み */
     376        ldr             r1, [r2,r4,lsl #2]              /* 割込みハンドラの番地 → r1 */
     377        mov             lr, pc                                  /* 割込みハンドラの呼出し */
    433378        bx              r1
    434379
    435380#ifdef LOG_INH_LEAVE
    436381        /*
    437          *  ログ出力の呼出し
    438          */
    439         mov             r0, r4                                  /* 割込み番号をパラメータに渡す */
     382         *  ログ出力の呼出し
     383         */
     384        mov             r0, r4                                  /* 割込み番号をパラメータに渡す */
    440385        bl              log_inh_leave
    441386#endif /* LOG_INH_LEAVE */
    442387
    443388        /*
    444          *  カーネル管理の割込みを禁止する.
     389         *  カーネル管理の割込みを禁止する.
    445390         */
    446391#if __TARGET_ARCH_ARM < 6
     
    455400
    456401        /*
    457          *  割込みコントローラを操作する.
     402         *  割込みコントローラを操作する.
    458403         */
    459404ALABEL(irq_handler_2)
     
    461406
    462407        /*
    463          *  例外ネストカウントをデクリメントする.
     408         *  例外ネストカウントをデクリメントする.
    464409         */
    465410        ldr             r2, =excpt_nest_count
    466411        ldr             r3, [r2]
    467412        subs    r3, r3, #1
    468         str             r3, [r2]                                /* 戻りå
    469 ˆãŒéžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆãªã‚‰ */
    470         bne             irq_handler_5                   /*                              irq_handler_5に分岐 */
    471 
    472         /*
    473          *  タスク用のスタックに戻す.
     413        str             r3, [r2]                                /* 戻り先が非タスクコンテキストなら */
     414        bne             irq_handler_5                   /*                              irq_handler_5に分岐 */
     415
     416        /*
     417         *  タスク用のスタックに戻す.
    474418         */
    475419        pop             {r0,r3}
     
    477421
    478422        /*
    479          *  p_runtskがNULLか判定する.
    480          */
    481         ldr             r0, =p_runtsk                   /* p_runtsk → r0 */
     423         *  p_runtskがNULLか判定する.
     424         */
     425        ldr             r0, =p_runtsk                   /* p_runtsk r0 */
    482426        ldr             r0, [r0]
    483         tst             r0, r0                                  /* p_runtskがNULLでなければ */
    484         bne             irq_handler_3                   /*              irq_handler_3に分岐 */
    485 
    486         /*
    487          *  タスクのスタックに保存したスクラッチレジスタ等を捨てる.
    488          */
    489         pop             {r0,r1}                                 /* スタックポインタの調整をå
    490 ƒã«æˆ»ã™ */
     427        tst             r0, r0                                  /* p_runtskがNULLでなければ */
     428        bne             irq_handler_3                   /*              irq_handler_3に分岐 */
     429
     430        /*
     431         *  タスクのスタックに保存したスクラッチレジスタ等を捨てる.
     432         */
     433        pop             {r0,r1}                                 /* スタックポインタの調整を元に戻す */
    491434        add             sp, sp, r1
    492         add             sp, sp, #40                             /* スクラッチレジスタを捨てる */
     435        add             sp, sp, #40                             /* スクラッチレジスタを捨てる */
    493436        b               dispatcher_0
    494437
    495438        /*
    496          *  ディスパッチがå¿
    497 è¦ã‹åˆ¤å®šã™ã‚‹ï¼Ž
     439         *  ディスパッチが必要か判定する.
    498440         */
    499441ALABEL(irq_handler_3)
    500         ldr             r1, =p_schedtsk                 /* p_schedtsk → r1 */
     442        ldr             r1, =p_schedtsk                 /* p_schedtsk r1 */
    501443        ldr             r1, [r1]
    502         teq             r0, r1                                  /* p_runtskとp_schedtskが同じなら */
    503         beq             irq_handler_4                   /*                                irq_handler_4へ */
    504 
    505         /*
    506          *  コンテキストを保存する.
    507          */
    508         stmfd   sp!, {r6-r11}                   /* 非スクラッチレジスタの保存 */
    509         str             sp, [r0,#TCB_sp]                /* スタックポインタを保存 */
    510         adr             r1, ret_int_r                   /* 実行再開番地を保存 */
     444        teq             r0, r1                                  /* p_runtskとp_schedtskが同じなら */
     445        beq             irq_handler_4                   /*                                irq_handler_4 */
     446
     447        /*
     448         *  コンテキストを保存する.
     449         */
     450        stmfd   sp!, {r6-r11}                   /* 非スクラッチレジスタの保存 */
     451        str             sp, [r0,#TCB_sp]                /* スタックポインタを保存 */
     452        adr             r1, ret_int_r                   /* 実行再開番地を保存 */
    511453        str             r1, [r0,#TCB_pc]
    512         b               dispatcher                              /* r0にはp_runtskが格納されている */
     454        b               dispatcher                              /* r0にはp_runtskが格納されている */
    513455
    514456ALABEL(ret_int_r)
    515457        /*
    516          *  コンテキストを復帰する.
    517          */
    518         ldmfd   sp!, {r6-r11}                   /* 非スクラッチレジスタの復帰 */
     458         *  コンテキストを復帰する.
     459         */
     460        ldmfd   sp!, {r6-r11}                   /* 非スクラッチレジスタの復帰 */
    519461
    520462ALABEL(irq_handler_4)
    521463#ifdef TOPPERS_SUPPORT_OVRHDR
    522464        /*
    523          *  オーバランタイマを動作開始する.
     465         *  オーバランタイマを動作開始する.
    524466         */
    525467        bl              ovrtimer_start
     
    527469
    528470        /*
    529          *  割込み/CPU例外処理からのリターン
     471         *  割込み/CPU例外処理からのリターン
    530472         *
    531          *  割込み/CPU例外処理からのリターンにより,CPUロック解除状æ
    532 ‹ã«é·
    533          *  移するようにするå¿
    534 è¦ãŒã‚るが,ARMはCPSRのビットによってCPUロッ
    535          *  ク状æ
    536 ‹ã‚’表しているため,CPSRをå
    537 ƒã«æˆ»ã—てリターンすればよい.
     473         *  割込み/CPU例外処理からのリターンにより,CPUロック解除状態に遷
     474         *  移するようにする必要があるが,ARMはCPSRのビットによってCPUロッ
     475         *  ク状態を表しているため,CPSRを元に戻してリターンすればよい.
    538476         */
    539477ALABEL(irq_handler_5)
    540         pop             {r0,r1}                                 /* スタックポインタの調整をå
    541 ƒã«æˆ»ã™ */
     478        pop             {r0,r1}                                 /* スタックポインタの調整を元に戻す */
    542479        add             sp, sp, r1
    543480
    544481#if __TARGET_ARCH_ARM < 6
    545         ldmfd   sp!, {r0}                               /* 戻りå
    546 ˆã®cpsrをspsrに設定 */
     482        ldmfd   sp!, {r0}                               /* 戻り先のcpsrをspsrに設定 */
    547483        msr             spsr_cxsf, r0
    548         ldmfd   sp!, {r0-r5,r12,lr,pc}^ /* コンテキストの復帰 */
    549                                                                         /* ^付きなので,spsr → cpsr */
     484        ldmfd   sp!, {r0-r5,r12,lr,pc}^ /* コンテキストの復帰 */
     485                                                                        /* ^付きなので,spsr → cpsr */
    550486#else /* __TARGET_ARCH_ARM < 6 */
    551487        ldmfd   sp!, {r0-r5,r12,lr}
     
    555491
    556492/*
    557  *  CPU例外ハンドラ出å
    558 ¥å£å‡¦ç†
     493 *  CPU例外ハンドラ出入口処理
    559494 */
    560495ALABEL(start_exc_entry)
    561496
    562497/*
    563  *  未定義命令
     498 *  未定義命令
    564499 */
    565500#ifndef OMIT_UNDEF_HANDLER
     
    569504ALABEL(undef_handler)
    570505        /*
    571          *  ここには,未定義モードで分岐してくる.
    572          */
    573 #if __TARGET_ARCH_ARM < 6
    574         /*
    575          *  IビットとFビットをセットし,スーパバイザモードに切り換え,スク
    576          *  ラッチレジスタを保存する.
     506         *  ここには,未定義モードで分岐してくる.
     507         */
     508#if __TARGET_ARCH_ARM < 6
     509        /*
     510         *  IビットとFビットをセットし,スーパバイザモードに切り換え,スク
     511         *  ラッチレジスタを保存する.
    577512         */
    578513        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
    579         stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
    580 
    581         /*
    582          *  未定義モードに戻して,戻り番地とspsrを取得する.
     514        stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
     515
     516        /*
     517         *  未定義モードに戻して,戻り番地とspsrを取得する.
    583518         */
    584519        msr             cpsr_c, #(CPSR_UND_MODE AOR CPSR_FIQ_IRQ_BIT)
     
    587522
    588523        /*
    589          *  スーパバイザモードに切り換え,戻り番地とspsrを保存する.
     524         *  スーパバイザモードに切り換え,戻り番地とspsrを保存する.
    590525         */
    591526        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
    592         str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
    593         push    {r1}                                    /* spsrをスタックに保存 */
    594 #else /* __TARGET_ARCH_ARM < 6 */
    595         /*
    596          *  戻りå
    597 ˆï¼ˆlr)とspsr(cpsr_svc)をスーパバイザモードのスタックに
    598          *  保存する.
     527        str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
     528        push    {r1}                                    /* spsrをスタックに保存 */
     529#else /* __TARGET_ARCH_ARM < 6 */
     530        /*
     531         *  戻り先(lr)とspsr(cpsr_svc)をスーパバイザモードのスタックに
     532         *  保存する.
    599533         */
    600534        srsfd   #CPSR_SVC_MODE!
    601535
    602536        /*
    603          *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
     537         *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
    604538         */
    605539        cps             #CPSR_SVC_MODE
     
    611545
    612546/*
    613  *  スーパバイザコール
     547 *  スーパバイザコール
    614548 */
    615549#ifndef OMIT_SVC_HANDLER
     
    619553ALABEL(svc_handler)
    620554        /*
    621          *  ここには,スーパバイザモードで分岐してくる.
    622          */
    623 #if __TARGET_ARCH_ARM < 6
    624         /*
    625          *  IビットとFビットをセットし,スクラッチレジスタを保存する.
     555         *  ここには,スーパバイザモードで分岐してくる.
     556         */
     557#if __TARGET_ARCH_ARM < 6
     558        /*
     559         *  IビットとFビットをセットし,スクラッチレジスタを保存する.
    626560         */
    627561        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
    628         stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
    629 
    630         /*
    631          *  戻り番地とspsrを取得する.
     562        stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
     563
     564        /*
     565         *  戻り番地とspsrを取得する.
    632566         */
    633567        mov             r2, lr
     
    635569
    636570        /*
    637          *  戻り番地とspsrを保存する.
    638          */
    639         str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
    640         push    {r1}                                    /* spsrをスタックに保存 */
    641 #else /* __TARGET_ARCH_ARM < 6 */
    642         /*
    643          *  戻りå
    644 ˆï¼ˆlr)とspsr(cpsr_svc)をスーパバイザモードのスタックに
    645          *  保存する.
     571         *  戻り番地とspsrを保存する.
     572         */
     573        str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
     574        push    {r1}                                    /* spsrをスタックに保存 */
     575#else /* __TARGET_ARCH_ARM < 6 */
     576        /*
     577         *  戻り先(lr)とspsr(cpsr_svc)をスーパバイザモードのスタックに
     578         *  保存する.
    646579         */
    647580        srsfd   #CPSR_SVC_MODE!
    648581
    649582        /*
    650          *  スーパバイザモードで,スクラッチレジスタを保存する.
    651          */
    652         cps             #CPSR_SVC_MODE                  /* 不要と思われる */
     583         *  スーパバイザモードで,スクラッチレジスタを保存する.
     584         */
     585        cps             #CPSR_SVC_MODE                  /* 不要と思われる */
    653586        stmfd   sp!, {r0-r5,r12,lr}
    654587#endif /* __TARGET_ARCH_ARM < 6 */
     
    658591
    659592/*
    660  *  プリフェッチアボート
     593 *  プリフェッチアボート
    661594 */
    662595#ifndef OMIT_PABORT_HANDLER
     
    666599ALABEL(pabort_handler)
    667600        /*
    668          *  ここには,アボートモードで分岐してくる.
    669          */
    670 #if __TARGET_ARCH_ARM < 6
    671         /*
    672          *  IビットとFビットをセットし,スーパバイザモードに切り換え,スク
    673          *  ラッチレジスタを保存する.
     601         *  ここには,アボートモードで分岐してくる.
     602         */
     603#if __TARGET_ARCH_ARM < 6
     604        /*
     605         *  IビットとFビットをセットし,スーパバイザモードに切り換え,スク
     606         *  ラッチレジスタを保存する.
    674607         */
    675608        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
    676         stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
    677 
    678         /*
    679          *  アボートモードに戻して,戻り番地とspsrを取得する.
     609        stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
     610
     611        /*
     612         *  アボートモードに戻して,戻り番地とspsrを取得する.
    680613         */
    681614        msr             cpsr_c, #(CPSR_ABT_MODE AOR CPSR_FIQ_IRQ_BIT)
     
    684617
    685618        /*
    686          *  スーパバイザモードに切り換え,戻り番地とspsrを保存する.
     619         *  スーパバイザモードに切り換え,戻り番地とspsrを保存する.
    687620         */
    688621        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
    689         str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
    690         push    {r1}                                    /* spsrをスタックに保存 */
    691 #else /* __TARGET_ARCH_ARM < 6 */
    692         /*
    693          *  戻りå
    694 ˆï¼ˆlr)とspsr(cpsr_svc)をスーパバイザモードのスタックに
    695          *  保存する.
     622        str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
     623        push    {r1}                                    /* spsrをスタックに保存 */
     624#else /* __TARGET_ARCH_ARM < 6 */
     625        /*
     626         *  戻り先(lr)とspsr(cpsr_svc)をスーパバイザモードのスタックに
     627         *  保存する.
    696628         */
    697629        srsfd   #CPSR_SVC_MODE!
    698630
    699631        /*
    700          *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
     632         *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
    701633         */
    702634        cps             #CPSR_SVC_MODE
     
    708640
    709641/*
    710  *  データアボート
     642 *  データアボート
    711643 */
    712644#ifndef OMIT_DABORT_HANDLER
     
    716648ALABEL(dabort_handler)
    717649        /*
    718          *  ここには,アボートモードで分岐してくる.
     650         *  ここには,アボートモードで分岐してくる.
    719651         *
    720          *  データアボートが,CPU例外のå
    721 ¥å£ï¼ˆstart_exc_entryとend_exc_entry
    722          *  の間)で発生した場合には,fatal_dabort_handlerに分岐する.アボー
    723          *  トモードのspを汎用レジスタの代わりに使用する.
     652         *  データアボートが,CPU例外の入口(start_exc_entryとend_exc_entry
     653         *  の間)で発生した場合には,fatal_dabort_handlerに分岐する.アボー
     654         *  トモードのspを汎用レジスタの代わりに使用する.
    724655         */
    725656        ldr             sp, =start_exc_entry+8
     
    733664#if __TARGET_ARCH_ARM < 6
    734665        /*
    735          *  IビットとFビットをセットし,スーパバイザモードに切り換え,スク
    736          *  ラッチレジスタを保存する.
     666         *  IビットとFビットをセットし,スーパバイザモードに切り換え,スク
     667         *  ラッチレジスタを保存する.
    737668         */
    738669        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
    739         stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
    740 
    741         /*
    742          *  アボートモードに戻して,戻り番地とspsrを取得する.
     670        stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
     671
     672        /*
     673         *  アボートモードに戻して,戻り番地とspsrを取得する.
    743674         */
    744675        msr             cpsr_c, #(CPSR_ABT_MODE AOR CPSR_FIQ_IRQ_BIT)
     
    747678
    748679        /*
    749          *  スーパバイザモードに切り換え,戻り番地とspsrを保存する.
     680         *  スーパバイザモードに切り換え,戻り番地とspsrを保存する.
    750681         */
    751682        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
    752         str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
    753         push    {r1}                                    /* spsrをスタックに保存 */
    754 #else /* __TARGET_ARCH_ARM < 6 */
    755         /*
    756          *  戻りå
    757 ˆï¼ˆlr)とspsr(cpsr_svc)をスーパバイザモードのスタックに
    758          *  保存する.
     683        str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
     684        push    {r1}                                    /* spsrをスタックに保存 */
     685#else /* __TARGET_ARCH_ARM < 6 */
     686        /*
     687         *  戻り先(lr)とspsr(cpsr_svc)をスーパバイザモードのスタックに
     688         *  保存する.
    759689         */
    760690        srsfd   #CPSR_SVC_MODE!
    761691
    762692        /*
    763          *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
     693         *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
    764694         */
    765695        cps             #CPSR_SVC_MODE
     
    771701
    772702/*
    773  *  CPU例外のå
    774 ¥å£ã§ç™ºç”Ÿã—たデータアボート
     703 *  CPU例外の入口で発生したデータアボート
    775704 */
    776705ALABEL(fatal_dabort_handler)
    777706#if __TARGET_ARCH_ARM < 6
    778707        /*
    779          *  IビットとFビットをセットし,スーパバイザモードに切り換え,スタッ
    780          *  クポインタを初期化し,スクラッチレジスタを保存する.
     708         *  IビットとFビットをセットし,スーパバイザモードに切り換え,スタッ
     709         *  クポインタを初期化し,スクラッチレジスタを保存する.
    781710         */
    782711        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
    783712        ldr             sp, =istkpt
    784713        ldr             sp, [sp]
    785         stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
    786 
    787         /*
    788          *  アボートモードに戻して,戻り番地とspsrを取得する.
     714        stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
     715
     716        /*
     717         *  アボートモードに戻して,戻り番地とspsrを取得する.
    789718         */
    790719        msr             cpsr_c, #(CPSR_ABT_MODE AOR CPSR_FIQ_IRQ_BIT)
     
    793722
    794723        /*
    795          *  スーパバイザモードに切り換え,戻り番地とspsrを保存する.
     724         *  スーパバイザモードに切り換え,戻り番地とspsrを保存する.
    796725         */
    797726        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
    798         str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
    799         push    {r1}                                    /* spsrをスタックに保存 */
    800 #else /* __TARGET_ARCH_ARM < 6 */
    801         /*
    802          *  IビットとFビットをセットし,スーパバイザモードに切り換え,スタッ
    803          *  クポインタを初期化する.
     727        str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
     728        push    {r1}                                    /* spsrをスタックに保存 */
     729#else /* __TARGET_ARCH_ARM < 6 */
     730        /*
     731         *  IビットとFビットをセットし,スーパバイザモードに切り換え,スタッ
     732         *  クポインタを初期化する.
    804733         */
    805734        cpsid   if, #CPSR_SVC_MODE
     
    808737
    809738        /*
    810          *  アボートモードに戻して,戻りå
    811 ˆï¼ˆlr)とspsr(cpsr_svc)をスーパ
    812          *  バイザモードのスタックに保存する.
     739         *  アボートモードに戻して,戻り先(lr)とspsr(cpsr_svc)をスーパ
     740         *  バイザモードのスタックに保存する.
    813741         */
    814742        cps             #CPSR_ABT_MODE
     
    816744
    817745        /*
    818          *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
     746         *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
    819747         */
    820748        cps             #CPSR_SVC_MODE
     
    823751
    824752        /*
    825          *  例外ネストカウントの最上位ビットを1にする.
     753         *  例外ネストカウントの最上位ビットを1にする.
    826754         */
    827755        ldr             r2, =excpt_nest_count
     
    842770ALABEL(fiq_handler)
    843771        /*
    844          *  ここには,FIQモードで分岐してくる.
    845          */
    846 #if __TARGET_ARCH_ARM < 6
    847         /*
    848          *  IビットとFビットをセットし,スーパバイザモードに切り換え,スク
    849          *  ラッチレジスタを保存する.
     772         *  ここには,FIQモードで分岐してくる.
     773         */
     774#if __TARGET_ARCH_ARM < 6
     775        /*
     776         *  IビットとFビットをセットし,スーパバイザモードに切り換え,スク
     777         *  ラッチレジスタを保存する.
    850778         */
    851779        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
    852         stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
    853 
    854         /*
    855          *  FIQモードに戻して,戻り番地とspsrを取得する.
     780        stmfd   sp!, {r0-r5,r12,lr,pc}          /* pcはスペース確保のため */
     781
     782        /*
     783         *  FIQモードに戻して,戻り番地とspsrを取得する.
    856784         */
    857785        msr             cpsr_c, #(CPSR_FIQ_MODE AOR CPSR_FIQ_IRQ_BIT)
     
    860788
    861789        /*
    862          *  スーパバイザモードに切り換え,戻り番地とspsrを保存する.
     790         *  スーパバイザモードに切り換え,戻り番地とspsrを保存する.
    863791         */
    864792        msr             cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
    865         str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
    866         push    {r1}                                    /* spsrをスタックに保存 */
    867 #else /* __TARGET_ARCH_ARM < 6 */
    868         /*
    869          *  戻りå
    870 ˆï¼ˆlr)とspsr(cpsr_svc)をスーパバイザモードのスタックに
    871          *  保存する.
     793        str             r2, [sp,#0x20]                  /* 戻り番地をスタックに保存 */
     794        push    {r1}                                    /* spsrをスタックに保存 */
     795#else /* __TARGET_ARCH_ARM < 6 */
     796        /*
     797         *  戻り先(lr)とspsr(cpsr_svc)をスーパバイザモードのスタックに
     798         *  保存する.
    872799         */
    873800        srsfd   #CPSR_SVC_MODE!
    874801
    875802        /*
    876          *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
     803         *  スーパバイザモードに切り換え,スクラッチレジスタを保存する.
    877804         */
    878805        cps             #CPSR_SVC_MODE
     
    886813
    887814/*
    888  *  CPU例外ハンドラ出å
    889 ¥å£å‡¦ç†ã®å
    890 ±é€šéƒ¨åˆ†
     815 *  CPU例外ハンドラ出入口処理の共通部分
    891816 *
    892  * 【この時点のレジスタ状æ
    893 ‹ã€‘
    894  *  r4:CPU例外ハンドラ番号
     817 * 【この時点のレジスタ状態】
     818 *  r4:CPU例外ハンドラ番号
    895819 */
    896820ALABEL(exc_handler_1)
    897821        /*
    898          *  CPU例外が発生した状況の判断に用いるために,CPU例外発生前の割
    899          *  込み優å
    900 ˆåº¦ãƒžã‚¹ã‚¯ã¨ä¾‹å¤–ネストカウントをスタックに保存する.
     822         *  CPU例外が発生した状況の判断に用いるために,CPU例外発生前の割
     823         *  込み優先度マスクと例外ネストカウントをスタックに保存する.
    901824         */
    902825        bl              irc_get_intpri
    903         push    {r0}                                    /* 割込み優å
    904 ˆåº¦ãƒžã‚¹ã‚¯ã‚’保存 */
     826        push    {r0}                                    /* 割込み優先度マスクを保存 */
    905827        ldr             r2, =excpt_nest_count
    906828        ldr             r3, [r2]
    907         push    {r3}                                    /* 例外ネストカウントを保存 */
    908         mov             r5, sp                                  /* CPU例外のæƒ
    909 å ±ã‚’記憶している領域の */
    910                                                                         /*                                å
    911 ˆé ­ç•ªåœ°ã‚’r5に保存 */
    912         /*
    913          *  スタックポインタの調整
     829        push    {r3}                                    /* 例外ネストカウントを保存 */
     830        mov             r5, sp                                  /* CPU例外の情報を記憶している領域の */
     831                                                                        /*                                先頭番地をr5に保存 */
     832        /*
     833         *  スタックポインタの調整
    914834         */
    915835        and             r1, sp, #4
    916836        sub             sp, sp, r1
    917         push    {r0,r1}                                 /* r0はスペース確保のため */
    918 
    919         /*
    920          *  カーネル管理外のCPU例外か判定する
     837        push    {r0,r1}                                 /* r0はスペース確保のため */
     838
     839        /*
     840         *  カーネル管理外のCPU例外か判定する
    921841         *
    922          *  カーネル管理外のCPU例外は,カーネル実行中,å
    923 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    924 ‹ï¼Œ
    925          *  CPUロック状æ
    926 ‹ï¼Œã‚«ãƒ¼ãƒãƒ«ç®¡ç†å¤–の割込みハンドラ実行中に発生した
    927          *  CPU例外である.ARMコアの場合は,戻りå
    928 ˆã®CPSRのIビットかFビット
    929          *  のいずれかがセットされているなら,これ該当する.
    930          */
    931         ldr             r1, [r5,#T_EXCINF_cpsr]         /* 例外フレームからcpsrを取得 */
     842         *  カーネル管理外のCPU例外は,カーネル実行中,全割込みロック状態,
     843         *  CPUロック状態,カーネル管理外の割込みハンドラ実行中に発生した
     844         *  CPU例外である.ARMコアの場合は,戻り先のCPSRのIビットかFビット
     845         *  のいずれかがセットされているなら,これ該当する.
     846         */
     847        ldr             r1, [r5,#T_EXCINF_cpsr]         /* 例外フレームからcpsrを取得 */
    932848        ands    r1, r1, #CPSR_FIQ_IRQ_BIT
    933         bne             nk_exc_handler_1                /* カーネル管理外のCPU例外の処理へ */
    934 
    935         /*
    936          * 【この時点のレジスタ状æ
    937 ‹ã€‘
    938          *  r2:excpt_nest_countの番地
    939          *  r3:excpt_nest_countの値
    940          *  r4:CPU例外ハンドラ番号
    941          *  r5:CPU例外のæƒ
    942 å ±ã‚’記憶している領域のå
    943 ˆé ­ç•ªåœ°
    944          */
    945 
    946         /*
    947          *  例外ネストカウントをインクリメントする.
     849        bne             nk_exc_handler_1                /* カーネル管理外のCPU例外の処理へ */
     850
     851        /*
     852         * 【この時点のレジスタ状態】
     853         *  r2:excpt_nest_countの番地
     854         *  r3:excpt_nest_countの値
     855         *  r4:CPU例外ハンドラ番号
     856         *  r5:CPU例外の情報を記憶している領域の先頭番地
     857         */
     858
     859        /*
     860         *  例外ネストカウントをインクリメントする.
    948861         */
    949862        add             r3, r3, #1
    950863        str             r3, [r2]
    951         teq             r3, #1                                  /* CPU例外発生前が非タスクコンテキスト */
    952         bne             exc_handler_2                   /*                         ãªã‚‰exc_handler_2に分岐 */
     864        teq             r3, #1                                  /* CPU例外発生前が非タスクコンテキスト */
     865        bne             exc_handler_2                   /*                         ならexc_handler_2に分岐 */
    953866
    954867#ifdef TOPPERS_SUPPORT_OVRHDR
    955868        /*
    956          *  オーバランタイマを停止する.
     869         *  オーバランタイマを停止する.
    957870         */
    958871        bl              ovrtimer_stop
     
    960873
    961874        /*
    962          *  非タスクコンテキスト用のスタックに切り換える.
    963          */
    964         mov             r3, sp                                  /* この時点のスタックポインタをr3に */
    965         ldr             r2, =istkpt                             /* 非タスクコンテキスト用のスタックに */
     875         *  非タスクコンテキスト用のスタックに切り換える.
     876         */
     877        mov             r3, sp                                  /* この時点のスタックポインタをr3に */
     878        ldr             r2, =istkpt                             /* 非タスクコンテキスト用のスタックに */
    966879        ldr             sp, [r2]
    967         push    {r0,r3}                                 /* 切換え前のスタックポインタを保存 */
    968                                                                         /* r0はスペース確保のため */
     880        push    {r0,r3}                                 /* 切換え前のスタックポインタを保存 */
     881                                                                        /* r0はスペース確保のため */
    969882ALABEL(exc_handler_2)
    970883        /*
    971          * 【この時点のレジスタ状æ
    972 ‹ã€‘
    973          *  r4:CPU例外ハンドラ番号
    974          *  r5:CPU例外のæƒ
    975 å ±ã‚’記憶している領域のå
    976 ˆé ­ç•ªåœ°
    977          */
    978 
    979         /*
    980          *  (å¿
    981 è¦ãªã‚‰ï¼‰å‰²è¾¼ã¿ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ©ã‚’操作する.
     884         * 【この時点のレジスタ状態】
     885         *  r4:CPU例外ハンドラ番号
     886         *  r5:CPU例外の情報を記憶している領域の先頭番地
     887         */
     888
     889        /*
     890         *  (必要なら)割込みコントローラを操作する.
    982891         */
    983892        bl              irc_begin_exc
    984893
    985894        /*
    986          *  CPUロック解除状æ
    987 ‹ã«ã™ã‚‹ï¼Ž
     895         *  CPUロック解除状態にする.
    988896         *
    989          *  カーネル管理外のCPU例外ハンドラは別ルーチンで呼び出すため,単純
    990          *  に割込みを許可するだけでよい.
     897         *  カーネル管理外のCPU例外ハンドラは別ルーチンで呼び出すため,単純
     898         *  に割込みを許可するだけでよい.
    991899         */
    992900#if __TARGET_ARCH_ARM < 6
     
    1001909
    1002910        /*
    1003          *  ログ出力の呼出し
     911         *  ログ出力の呼出し
    1004912         */
    1005913#ifdef LOG_EXC_ENTER
    1006         mov             r0, r4                                  /* CPU例外番号をパラメータに渡す */
     914        mov             r0, r4                                  /* CPU例外番号をパラメータに渡す */
    1007915        bl              log_exc_enter
    1008916#endif /* LOG_EXC_ENTER */
    1009917
    1010918        /*
    1011          *  CPU例外ハンドラの呼出し
    1012          */
    1013         ldr             r2, =exc_table                  /* CPU例外ハンドラテーブルの読込み */
    1014         ldr             r3, [r2,r4,lsl #2]              /* CPU例外ハンドラの番地 → r3 */
    1015         mov             r0, r5                                  /* CPU例外のæƒ
    1016 å ±ã‚’記憶している領域の */
    1017                                                                         /*              å
    1018 ˆé ­ç•ªåœ°ã‚’第1パラメータに渡す */
    1019         mov             r1, r4                                  /* CPU例外番号を第2パラメータに渡す */
    1020         mov             lr, pc                                  /* CPU例外ハンドラの呼出し */
     919         *  CPU例外ハンドラの呼出し
     920         */
     921        ldr             r2, =exc_table                  /* CPU例外ハンドラテーブルの読込み */
     922        ldr             r3, [r2,r4,lsl #2]              /* CPU例外ハンドラの番地 → r3 */
     923        mov             r0, r5                                  /* CPU例外の情報を記憶している領域の */
     924                                                                        /*              先頭番地を第1パラメータに渡す */
     925        mov             r1, r4                                  /* CPU例外番号を第2パラメータに渡す */
     926        mov             lr, pc                                  /* CPU例外ハンドラの呼出し */
    1021927        bx              r3
    1022928
    1023929        /*
    1024          *  ログ出力の呼出し
     930         *  ログ出力の呼出し
    1025931         */
    1026932#ifdef LOG_EXC_LEAVE
    1027         mov             r0, r4                                  /* CPU例外番号をパラメータに渡す */
     933        mov             r0, r4                                  /* CPU例外番号をパラメータに渡す */
    1028934        bl              log_exc_leave
    1029935#endif /* LOG_EXC_LEAVE */
    1030936
    1031937        /*
    1032          *  カーネル管理の割込みを禁止する.
     938         *  カーネル管理の割込みを禁止する.
    1033939         */
    1034940#if __TARGET_ARCH_ARM < 6
     
    1043949
    1044950        /*
    1045          *  割込みコントローラを操作して,割込み優å
    1046 ˆåº¦ãƒžã‚¹ã‚¯ã‚’,CPU例外発
    1047          *  生時の値に設定する.
     951         *  割込みコントローラを操作して,割込み優先度マスクを,CPU例外発
     952         *  生時の値に設定する.
    1048953         */
    1049954        bl              irc_end_exc
    1050955
    1051956        /*
    1052          *  例外ネストカウントをデクリメントする.
     957         *  例外ネストカウントをデクリメントする.
    1053958         */
    1054959        ldr             r2, =excpt_nest_count
    1055960        ldr             r3, [r2]
    1056961        subs    r3, r3, #1
    1057         str             r3, [r2]                                /* 戻りå
    1058 ˆãŒéžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆãªã‚‰ */
    1059         bne             exc_handler_5                   /*                              exc_handler_5に分岐 */
    1060 
    1061         /*
    1062          *  タスク用のスタックに戻す.
     962        str             r3, [r2]                                /* 戻り先が非タスクコンテキストなら */
     963        bne             exc_handler_5                   /*                              exc_handler_5に分岐 */
     964
     965        /*
     966         *  タスク用のスタックに戻す.
    1063967         */
    1064968        pop             {r0,r3}
     
    1066970
    1067971        /*
    1068          *  p_runtskがNULLか判定する.
    1069          */
    1070         ldr             r0, =p_runtsk                   /* p_runtsk → r0 */
     972         *  p_runtskがNULLか判定する.
     973         */
     974        ldr             r0, =p_runtsk                   /* p_runtsk r0 */
    1071975        ldr             r0, [r0]
    1072         tst             r0, r0                                  /* p_runtskがNULLでなければ */
    1073         bne             exc_handler_3                   /*              exc_handler_3に分岐 */
    1074 
    1075         /*
    1076          *  タスクのスタックに保存したスクラッチレジスタ等を捨てる.
    1077          */
    1078         pop             {r0,r1}                                 /* スタックポインタの調整をå
    1079 ƒã«æˆ»ã™ */
     976        tst             r0, r0                                  /* p_runtskがNULLでなければ */
     977        bne             exc_handler_3                   /*              exc_handler_3に分岐 */
     978
     979        /*
     980         *  タスクのスタックに保存したスクラッチレジスタ等を捨てる.
     981         */
     982        pop             {r0,r1}                                 /* スタックポインタの調整を元に戻す */
    1080983        add             sp, sp, r1
    1081         add             sp, sp, #48                             /* スクラッチレジスタとCPU例外が発生した */
    1082         b               dispatcher_0                    /*      状況を判断するための追加æƒ
    1083 å ±ã‚’捨てる */
    1084 
    1085         /*
    1086          *  ディスパッチがå¿
    1087 è¦ã‹åˆ¤å®šã™ã‚‹ï¼Ž
     984        add             sp, sp, #48                             /* スクラッチレジスタとCPU例外が発生した */
     985        b               dispatcher_0                    /*      状況を判断するための追加情報を捨てる */
     986
     987        /*
     988         *  ディスパッチが必要か判定する.
    1088989         */
    1089990ALABEL(exc_handler_3)
    1090         ldr             r1, =p_schedtsk                 /* p_schedtsk → r1 */
     991        ldr             r1, =p_schedtsk                 /* p_schedtsk r1 */
    1091992        ldr             r1, [r1]
    1092         teq             r0, r1                                  /* p_runtskとp_schedtskが同じなら */
    1093         beq             exc_handler_4                   /*                                exc_handler_4へ */
    1094 
    1095         /*
    1096          *  コンテキストを保存する.
    1097          */
    1098         stmfd   sp!, {r6-r11}                   /* 非スクラッチレジスタの保存 */
    1099         str             sp, [r0,#TCB_sp]                /* スタックポインタを保存 */
    1100         adr             r1, ret_exc_r                   /* 実行再開番地を保存 */
     993        teq             r0, r1                                  /* p_runtskとp_schedtskが同じなら */
     994        beq             exc_handler_4                   /*                                exc_handler_4 */
     995
     996        /*
     997         *  コンテキストを保存する.
     998         */
     999        stmfd   sp!, {r6-r11}                   /* 非スクラッチレジスタの保存 */
     1000        str             sp, [r0,#TCB_sp]                /* スタックポインタを保存 */
     1001        adr             r1, ret_exc_r                   /* 実行再開番地を保存 */
    11011002        str             r1, [r0,#TCB_pc]
    1102         b               dispatcher                              /* r0にはp_runtskが格納されている */
     1003        b               dispatcher                              /* r0にはp_runtskが格納されている */
    11031004
    11041005ALABEL(ret_exc_r)
    11051006        /*
    1106          *  コンテキストを復帰する.
    1107          */
    1108         ldmfd   sp!, {r6-r11}                   /* 非スクラッチレジスタの復帰 */
     1007         *  コンテキストを復帰する.
     1008         */
     1009        ldmfd   sp!, {r6-r11}                   /* 非スクラッチレジスタの復帰 */
    11091010
    11101011ALABEL(exc_handler_4)
    11111012#ifdef TOPPERS_SUPPORT_OVRHDR
    11121013        /*
    1113          *  オーバランタイマを動作開始する.
     1014         *  オーバランタイマを動作開始する.
    11141015         */
    11151016        bl              ovrtimer_start
     
    11171018
    11181019        /*
    1119          *  CPU例外処理からのリターン
     1020         *  CPU例外処理からのリターン
    11201021         *
    1121          *  CPU例外処理からのリターンにより,CPUロック解除状æ
    1122 ‹ã«é·ç§»ã™ã‚‹ã‚ˆ
    1123          *  うにするå¿
    1124 è¦ãŒã‚るが,ARMはCPSRのビットによってCPUロック状æ
    1125 ‹ã‚’
    1126          *  表しているため,CPSRをå
    1127 ƒã«æˆ»ã—てリターンすればよい.
     1022         *  CPU例外処理からのリターンにより,CPUロック解除状態に遷移するよ
     1023         *  うにする必要があるが,ARMはCPSRのビットによってCPUロック状態を
     1024         *  表しているため,CPSRを元に戻してリターンすればよい.
    11281025         */
    11291026ALABEL(exc_handler_5)
    1130         pop             {r0,r1}                                 /* スタックポインタの調整をå
    1131 ƒã«æˆ»ã™ */
     1027        pop             {r0,r1}                                 /* スタックポインタの調整を元に戻す */
    11321028        add             sp, sp, r1
    1133         add             sp, sp, #8                              /* スタック上のæƒ
    1134 å ±ã‚’捨てる */
    1135 
    1136 #if __TARGET_ARCH_ARM < 6
    1137         ldmfd   sp!, {r0}                               /* 戻りå
    1138 ˆã®cpsrをspsrに設定 */
     1029        add             sp, sp, #8                              /* スタック上の情報を捨てる */
     1030
     1031#if __TARGET_ARCH_ARM < 6
     1032        ldmfd   sp!, {r0}                               /* 戻り先のcpsrをspsrに設定 */
    11391033        msr             spsr_cxsf, r0
    1140         ldmfd   sp!, {r0-r5,r12,lr,pc}^ /* コンテキストの復帰 */
    1141                                                                         /* ^付きなので,spsr → cpsr */
     1034        ldmfd   sp!, {r0-r5,r12,lr,pc}^ /* コンテキストの復帰 */
     1035                                                                        /* ^付きなので,spsr → cpsr */
    11421036#else /* __TARGET_ARCH_ARM < 6 */
    11431037        ldmfd   sp!, {r0-r5,r12,lr}
     
    11461040
    11471041/*
    1148  *  カーネル管理外のCPU例外の出å
    1149 ¥å£å‡¦ç†
     1042 *  カーネル管理外のCPU例外の出入口処理
    11501043 */
    11511044ALABEL(nk_exc_handler_1)
    11521045        /*
    1153          * 【この時点のレジスタ状æ
    1154 ‹ã€‘
    1155          *  r1:CPU例外発生前のCPSRのFビットとIビットの値
    1156          *  r2:excpt_nest_countの番地
    1157          *  r3:excpt_nest_countの値
    1158          *  r4:CPU例外ハンドラ番号
    1159          *  r5:CPU例外のæƒ
    1160 å ±ã‚’記憶している領域のå
    1161 ˆé ­ç•ªåœ°
    1162          */
    1163 
    1164         /*
    1165          *  例外ネストカウントをインクリメントする.
     1046         * 【この時点のレジスタ状態】
     1047         *  r1:CPU例外発生前のCPSRのFビットとIビットの値
     1048         *  r2:excpt_nest_countの番地
     1049         *  r3:excpt_nest_countの値
     1050         *  r4:CPU例外ハンドラ番号
     1051         *  r5:CPU例外の情報を記憶している領域の先頭番地
     1052         */
     1053
     1054        /*
     1055         *  例外ネストカウントをインクリメントする.
    11661056         */
    11671057        add             r3, r3, #1
    11681058        str             r3, [r2]
    1169         teq             r3, #1                                  /* CPU例外発生前が非タスクコンテキスト */
    1170         bne             nk_exc_handler_2                /*                      ならnk_exc_handler_2に分岐 */
    1171 
    1172         /*
    1173          *  非タスクコンテキスト用のスタックに切り換える.
    1174          */
    1175         mov             r3, sp                                  /* この時点のスタックポインタをr3に */
    1176         ldr             r2, =istkpt                             /* 非タスクコンテキスト用のスタックに */
     1059        teq             r3, #1                                  /* CPU例外発生前が非タスクコンテキスト */
     1060        bne             nk_exc_handler_2                /*                      ならnk_exc_handler_2に分岐 */
     1061
     1062        /*
     1063         *  非タスクコンテキスト用のスタックに切り換える.
     1064         */
     1065        mov             r3, sp                                  /* この時点のスタックポインタをr3に */
     1066        ldr             r2, =istkpt                             /* 非タスクコンテキスト用のスタックに */
    11771067        ldr             sp, [r2]
    1178         push    {r0,r3}                                 /* 切換え前のスタックポインタを保存 */
    1179                                                                         /* r0はスペース確保のため */
     1068        push    {r0,r3}                                 /* 切換え前のスタックポインタを保存 */
     1069                                                                        /* r0はスペース確保のため */
    11801070ALABEL(nk_exc_handler_2)
    11811071        /*
    1182          *  システム状æ
    1183 ‹ï¼ˆã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã¯é™¤ãï¼‰ã‚’,CPU例外発生時の状æ
    1184 ‹ã¸
     1072         *  システム状態(コンテキストは除く)を,CPU例外発生時の状態へ
    11851073         */
    11861074        orr             r1, r1, #CPSR_SVC_MODE
     
    11881076
    11891077        /*
    1190          *  CPU例外ハンドラの呼出し
    1191          */
    1192         ldr             r2, =exc_table                  /* CPU例外ハンドラテーブルの読込み */
    1193         ldr             r3, [r2,r4,lsl #2]              /* CPU例外ハンドラの番地 → r3 */
    1194         mov             r0, r5                                  /* CPU例外のæƒ
    1195 å ±ã‚’記憶している領域の */
    1196                                                                         /*              å
    1197 ˆé ­ç•ªåœ°ã‚’第1パラメータに渡す */
    1198         mov             r1, r4                                  /* CPU例外番号を第2パラメータに渡す */
    1199         mov             lr, pc                                  /* CPU例外ハンドラの呼出し */
     1078         *  CPU例外ハンドラの呼出し
     1079         */
     1080        ldr             r2, =exc_table                  /* CPU例外ハンドラテーブルの読込み */
     1081        ldr             r3, [r2,r4,lsl #2]              /* CPU例外ハンドラの番地 → r3 */
     1082        mov             r0, r5                                  /* CPU例外の情報を記憶している領域の */
     1083                                                                        /*              先頭番地を第1パラメータに渡す */
     1084        mov             r1, r4                                  /* CPU例外番号を第2パラメータに渡す */
     1085        mov             lr, pc                                  /* CPU例外ハンドラの呼出し */
    12001086        bx              r3
    12011087
    12021088        /*
    1203          *  例外ネストカウントをデクリメントする.
     1089         *  例外ネストカウントをデクリメントする.
    12041090         */
    12051091        ldr             r2, =excpt_nest_count
    12061092        ldr             r3, [r2]
    12071093        subs    r3, r3, #1
    1208         str             r3, [r2]                                /* 戻りå
    1209 ˆãŒéžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆãªã‚‰ */
    1210         bne             exc_handler_5                   /*                              exc_handler_5に分岐 */
    1211 
    1212         /*
    1213          *  タスク用のスタックに戻す.
     1094        str             r3, [r2]                                /* 戻り先が非タスクコンテキストなら */
     1095        bne             exc_handler_5                   /*                              exc_handler_5に分岐 */
     1096
     1097        /*
     1098         *  タスク用のスタックに戻す.
    12141099         */
    12151100        pop             {r0,r3}
     
    12181103
    12191104/*
    1220  *  ステータスレジスタの操作関数
     1105 *  ステータスレジスタの操作関数
    12211106 *
    1222  *  Thumbモードではmrs/msr命令が使用できないため,関数として実現して,
    1223  *  ARMモードに移行して実行する.
     1107 *  Thumbモードではmrs/msr命令が使用できないため,関数として実現して,
     1108 *  ARMモードに移行して実行する.
    12241109 */
    12251110#ifdef __thumb__
     
    12411126
    12421127/*
    1243  *  微少時間å¾
    1244 ã¡
     1128 *  微少時間待ち
    12451129 *
    1246  *  キャッシュラインのどの場所にあるかのよって実行時間が変わるため,大
    1247  *  きめの単位でアラインしている.
     1130 *  キャッシュラインのどの場所にあるかのよって実行時間が変わるため,大
     1131 *  きめの単位でアラインしている.
    12481132 */
    12491133        ATEXT
     
    12521136ALABEL(sil_dly_nse)
    12531137        mov             r1, #0
    1254         mcr             p15, 0, r1, c7, c5, 6           /* 分岐予測å
    1255 ¨ä½“の無効化 */
     1138        mcr             p15, 0, r1, c7, c5, 6           /* 分岐予測全体の無効化 */
    12561139        asm_inst_sync_barrier r3
    12571140        subs    r0, r0, #SIL_DLY_TIM1
    12581141        bxls    lr
    12591142ALABEL(sil_dly_nse1)
    1260         mcr             p15, 0, r1, c7, c5, 6           /* 分岐予測å
    1261 ¨ä½“の無効化 */
     1143        mcr             p15, 0, r1, c7, c5, 6           /* 分岐予測全体の無効化 */
    12621144        asm_inst_sync_barrier r3
    12631145        subs    r0, r0, #SIL_DLY_TIM2
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_syssvc.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    77 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
    4531 *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  $Id$
     
    5540
    5641/*
    57  *              システムサービスのコア依存部(ARM用)
     42 *              システムサービスのコア依存部(ARM用)
    5843 *
    59  *  このヘッダファイルは,target_syssvc.h(または,そこからインクルード
    60  *  されるファイル)のみからインクルードされる.他のファイルから直接イ
    61  *  ンクルードしてはならない.
     44 *  このヘッダファイルは,target_syssvc.h(または,そこからインクルード
     45 *  されるファイル)のみからインクルードされる.他のファイルから直接イ
     46 *  ンクルードしてはならない.
    6247 */
    6348
     
    6954
    7055/*
    71  *  パフォーマンスモニタによる性能評価
     56 *  パフォーマンスモニタによる性能評価
    7257 */
    7358#if defined(USE_ARM_PM_HIST) && __TARGET_ARCH_ARM == 7
    7459
    7560/*
    76  *  パフォーマンスモニタのカウンタのデータ型
     61 *  パフォーマンスモニタのカウンタのデータ型
    7762 */
    7863typedef uint32_t        PMCNT;
    7964
    8065/*
    81  *  パフォーマンスモニタの初期化
     66 *  パフォーマンスモニタの初期化
    8267 */
    8368Inline void
     
    8772
    8873        /*
    89          *  パフォーマンスモニタの有効化
     74         *  パフォーマンスモニタの有効化
    9075         *
    91          *  TOPPERS_ARM_PMCNT_DIV64が定義されている場合は,64クロック毎にカ
    92          *  ウントアップする(長い時間を計測したい場合に有効).
     76         *  TOPPERS_ARM_PMCNT_DIV64が定義されている場合は,64クロック毎にカ
     77         *  ウントアップする(長い時間を計測したい場合に有効).
    9378         */
    9479        CP15_READ_PMCR(reg);
     
    10489
    10590        /*
    106          *  パフォーマンスモニタのカウンタの有効化
     91         *  パフォーマンスモニタのカウンタの有効化
    10792         */
    10893        CP15_READ_PMCNTENSET(reg);
     
    11297
    11398/*
    114  *  パフォーマンスモニタのカウンタの読み込み
     99 *  パフォーマンスモニタのカウンタの読み込み
    115100 */
    116101Inline void
     
    121106
    122107/*
    123  *  カウンタ値の時間計測単位への変換
     108 *  カウンタ値の時間計測単位への変換
    124109 *
    125  *  時間計測の単位は,0.1マイクロ秒としている.
     110 *  時間計測の単位は,0.1マイクロ秒としている.
    126111 */
    127112Inline uint_t
     
    135120
    136121/*
    137  *  実行時間分布集計サービスの設定
     122 *  実行時間分布集計サービスの設定
    138123 */
    139124#define HISTTIM                                 PMCNT
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_test.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    77 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
    4531 *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  $Id$
     
    5540
    5641/*
    57  *              テストプログラムのコア依存部(ARM用)
     42 *              テストプログラムのコア依存部(ARM用)
    5843 *
    59  *  このヘッダファイルは,target_test.h(または,そこからインクルードさ
    60  *  れるファイル)のみからインクルードされる.他のファイルから直接イン
    61  *  クルードしてはならない.
     44 *  このヘッダファイルは,target_test.h(または,そこからインクルードさ
     45 *  れるファイル)のみからインクルードされる.他のファイルから直接イン
     46 *  クルードしてはならない.
    6247 */
    6348
     
    6954
    7055/*
    71  *  CPU例外の発生
     56 *  CPU例外の発生
    7257 */
    7358
    7459#ifndef ILLEGAL_IADDR
    75 #define ILLEGAL_IADDR                   0xd0000000U             /* 不正命令アドレス */
     60#define ILLEGAL_IADDR                   0xd0000000U             /* 不正命令アドレス */
    7661#endif /* ILLEGAL_IADDR */
    7762
    7863#ifndef ILLEGAL_DADDR
    79 #define ILLEGAL_DADDR                   0xd0000000U             /* 不正データアドレス */
     64#define ILLEGAL_DADDR                   0xd0000000U             /* 不正データアドレス */
    8065#endif /* ILLEGAL_DADDR */
    8166
    8267/*
    83  *  スーパバイザコールによるCPU例外の発生
     68 *  スーパバイザコールによるCPU例外の発生
    8469 *
    85  *  CPU例外ハンドラから,そのままリターンすることができる.svc命令によ
    86  *  りlrレジスタが上書きされるため,lrレジスタは破壊されるものと指定し
    87  *  ている.
     70 *  CPU例外ハンドラから,そのままリターンすることができる.svc命令によ
     71 *  りlrレジスタが上書きされるため,lrレジスタは破壊されるものと指定し
     72 *  ている.
    8873 */
    8974#if defined(USE_SVC_CPUEXC)
    9075
    91 #define CPUEXC1                                 EXCNO_SVC               /* スーパバイザコール */
     76#define CPUEXC1                                 EXCNO_SVC               /* スーパバイザコール */
    9277#define RAISE_CPU_EXCEPTION             Asm("svc #0":::"lr")
    9378#define PREPARE_RETURN_CPUEXC
    9479
    9580/*
    96  *  プリフェッチアボートによるCPU例外の発生
     81 *  プリフェッチアボートによるCPU例外の発生
    9782 *
    98  *  プリフェッチアボートを起こした命令をスキップしてCPU例外ハンドラから
    99  *  リターンするために,戻り番地はそのままで良い(ARMモードで使うことを
    100  *  想定).
     83 *  プリフェッチアボートを起こした命令をスキップしてCPU例外ハンドラから
     84 *  リターンするために,戻り番地はそのままで良い(ARMモードで使うことを
     85 *  想定).
    10186 */
    10287#elif defined(USE_PABORT_CPUEXC)
    10388
    104 #define CPUEXC1                                 EXCNO_PABORT    /* プリフェッチアボート */
     89#define CPUEXC1                                 EXCNO_PABORT    /* プリフェッチアボート */
    10590#define RAISE_CPU_EXCEPTION             ((void (*)(void)) ILLEGAL_IADDR)()
    10691#define PREPARE_RETURN_CPUEXC
    10792
    10893/*
    109  *  データアボートによるCPU例外の発生
     94 *  データアボートによるCPU例外の発生
    11095 *
    111  *  データアボートを起こした命令をスキップしてCPU例外ハンドラからリター
    112  *  ンするために,戻り番地から4を減算する(ARMモードで使うことを想定).
     96 *  データアボートを起こした命令をスキップしてCPU例外ハンドラからリター
     97 *  ンするために,戻り番地から4を減算する(ARMモードで使うことを想定).
    11398 */
    11499#elif defined(USE_DABORT_CPUEXC)
    115100
    116101#include "arm.h"
    117 #define CPUEXC1                                 EXCNO_DABORT    /* データアボート */
     102#define CPUEXC1                                 EXCNO_DABORT    /* データアボート */
    118103#define RAISE_CPU_EXCEPTION             (void)(*((volatile uint32_t *) ILLEGAL_DADDR))
    119104#define PREPARE_RETURN_CPUEXC   ((T_EXCINF *) p_excinf)->pc -= 4U
    120105
    121106/*
    122  *  フェイタルデータアボート処理
     107 *  フェイタルデータアボート処理
    123108 *
    124  *  スタックポインタを不正にして,フェイタルデータアボート処理を行わせ
    125  *  る.CPU例外ハンドラからはリターンできない.
     109 *  スタックポインタを不正にして,フェイタルデータアボート処理を行わせ
     110 *  る.CPU例外ハンドラからはリターンできない.
    126111 */
    127112#elif defined(USE_FATAL_DABORT_CPUEXC)
    128113
    129 #define CPUEXC1                                 EXCNO_DABORT    /* データアボート */
     114#define CPUEXC1                                 EXCNO_DABORT    /* データアボート */
    130115#define RAISE_CPU_EXCEPTION             Asm("mov sp, %0"::"I"(ILLEGAL_DADDR))
    131116
    132117/*
    133  *  未定義命令によるCPU例外の発生
     118 *  未定義命令によるCPU例外の発生
    134119 *
    135  *  RAISE_CPU_EXCEPTIONは,ARMモードで使うことを想定している.CPU例外ハ
    136  *  ンドラから,そのままリターンすることができる.使用している未定義命
    137  *  令は,"Multiply and multiply accumulate"命令群のエンコーディングå†
    138 
    139  *  における未定義命令である.
     120 *  RAISE_CPU_EXCEPTIONは,ARMモードで使うことを想定している.CPU例外ハ
     121 *  ンドラから,そのままリターンすることができる.使用している未定義命
     122 *  令は,"Multiply and multiply accumulate"命令群のエンコーディング内
     123 *  における未定義命令である.
    140124 */
    141125#else
    142126
    143 #define CPUEXC1                                 EXCNO_UNDEF             /* 未定義命令 */
     127#define CPUEXC1                                 EXCNO_UNDEF             /* 未定義命令 */
    144128#define RAISE_CPU_EXCEPTION             Asm(".word 0xf0500090")
    145129#define PREPARE_RETURN_CPUEXC
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_unrename.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    66 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
    44  *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     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 *  の責任を負わない.
    5136 *
    5237 *  $Id$
     
    5439
    5540/*
    56  *              カーネルの割込みコントローラ依存部(GIC用)
     41 *              カーネルの割込みコントローラ依存部(GIC用)
    5742 */
    5843
     
    6348
    6449/*
    65  *  CPUインタフェースの操作
    66  */
    67 
    68 /*
    69  *  CPUインタフェースの初期化
     50 *  CPUインタフェースの操作
     51 */
     52
     53/*
     54 *  CPUインタフェースの初期化
    7055 */
    7156void
     
    7358{
    7459        /*
    75          *  CPUインタフェースをディスエーブル
     60         *  CPUインタフェースをディスエーブル
    7661         */
    7762        sil_wrw_mem(GICC_CTLR, GICC_CTLR_DISABLE);
    7863
    7964        /*
    80          *  割込み優å
    81 ˆåº¦ãƒžã‚¹ã‚¯ã‚’最低優å
    82 ˆåº¦ã«è¨­å®š
     65         *  割込み優先度マスクを最低優先度に設定
    8366         */
    8467        gicc_set_priority((GIC_PRI_LEVEL - 1) << GIC_PRI_SHIFT);
    8568
    8669        /*
    87          *  割込み優å
    88 ˆåº¦ã®å
    89 ¨ãƒ“ット有効に
     70         *  割込み優先度の全ビット有効に
    9071         */
    9172        sil_wrw_mem(GICC_BPR, 0U);
    9273
    9374        /*
    94          *  アクティブな割込みがあれば,EOIによりクリアする
     75         *  アクティブな割込みがあれば,EOIによりクリアする
    9576         */
    9677        sil_wrw_mem(GICC_EOIR, sil_rew_mem(GICC_IAR));
    9778
    9879        /*
    99          *  CPUインタフェースをイネーブル
     80         *  CPUインタフェースをイネーブル
    10081         */
    10182#ifdef TOPPERS_SAFEG_SECURE
     
    10889
    10990/*
    110  *  CPUインタフェースの終了処理
     91 *  CPUインタフェースの終了処理
    11192 */
    11293void
     
    11798
    11899/*
    119  *  ディストリビュータの操作
    120  */
    121 
    122 /*
    123  *  ディストリビュータの初期化
     100 *  ディストリビュータの操作
     101 */
     102
     103/*
     104 *  ディストリビュータの初期化
    124105 */
    125106void
     
    129110
    130111        /*
    131          *  ディストリビュータをディスエーブル
     112         *  ディストリビュータをディスエーブル
    132113         */
    133114        sil_wrw_mem(GICD_CTLR, GICD_CTLR_DISABLE);
     
    135116#ifdef TOPPERS_SAFEG_SECURE
    136117        /*
    137          *  すべての割込みをグループ1(IRQ)に設定
     118         *  すべての割込みをグループ1(IRQ)に設定
    138119         */
    139120        for (i = 0; i < (GIC_TNUM_INTNO + 31) / 32; i++) {
     
    143124
    144125        /*
    145          *  すべての割込みを禁止
     126         *  すべての割込みを禁止
    146127         */
    147128        for (i = 0; i < (GIC_TNUM_INTNO + 31) / 32; i++) {
     
    150131
    151132        /*
    152          *  すべての割込みペンディングをクリア
     133         *  すべての割込みペンディングをクリア
    153134         */
    154135        for (i = 0; i < (GIC_TNUM_INTNO + 31) / 32; i++) {
     
    157138
    158139        /*
    159          *  すべての割込みを最低優å
    160 ˆåº¦ã«è¨­å®š
     140         *  すべての割込みを最低優先度に設定
    161141         */
    162142        for (i = 0; i < (GIC_TNUM_INTNO + 3) / 4; i++){
     
    165145
    166146        /*
    167          *  すべてのå
    168 ±æœ‰ãƒšãƒªãƒ•ã‚§ãƒ©ãƒ«å‰²è¾¼ã¿ã®ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã‚’プロセッサ0に設定
     147         *  すべての共有ペリフェラル割込みのターゲットをプロセッサ0に設定
    169148         */
    170149        for (i = GIC_INTNO_SPI0 / 4; i < (GIC_TNUM_INTNO + 3) / 4; i++) {
     
    173152
    174153        /*
    175          *  すべてのペリフェラル割込みをレベルトリガに設定
     154         *  すべてのペリフェラル割込みをレベルトリガに設定
    176155         */
    177156        for (i = GIC_INTNO_PPI0 / 16; i < (GIC_TNUM_INTNO + 15) / 16; i++) {
     
    184163
    185164        /*
    186          *  ディストリビュータをイネーブル
     165         *  ディストリビュータをイネーブル
    187166         */
    188167        sil_wrw_mem(GICD_CTLR, GICD_CTLR_ENABLE);
     
    190169
    191170/*
    192  *  ディストリビュータの終了処理
     171 *  ディストリビュータの終了処理
    193172 */
    194173void
     
    201180
    202181/*
    203  *  割込み要求ラインの属性の設定
    204  *
    205  *  ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ
    206  *  クしている.
     182 *  割込み要求ラインの属性の設定
     183 *
     184 *  ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ
     185 *  クしている.
    207186 */
    208187Inline void
     
    213192
    214193        /*
    215          *  割込みを禁止
     194         *  割込みを禁止
    216195         *
    217          *  割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割
    218          *  込み優å
    219 ˆåº¦ã®è¨­å®šã‚’行うのは危険なため,割込み属性にかかわらず,
    220          *  一旦マスクする.
     196         *  割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割
     197         *  込み優先度の設定を行うのは危険なため,割込み属性にかかわらず,
     198         *  一旦マスクする.
    221199         */
    222200        disable_int(intno);
    223201
    224202        /*
    225          *  割込みをコンフィギュレーション
     203         *  割込みをコンフィギュレーション
    226204         */
    227205#ifdef TOPPERS_SAFEG_SECURE
     
    246224
    247225        /*
    248          *  割込み優å
    249 ˆåº¦ã¨ã‚¿ãƒ¼ã‚²ãƒƒãƒˆãƒ—ロセッサを設定
     226         *  割込み優先度とターゲットプロセッサを設定
    250227         */
    251228        gicd_set_priority(intno, INT_IPM(intpri));
     
    253230
    254231        /*
    255          * 割込みを許可
     232         * 割込みを許可
    256233         */
    257234        if ((intatr & TA_ENAINT) != 0U) {
     
    261238
    262239/*
    263  *  割込み管理機能の初期化
     240 *  割込み管理機能の初期化
    264241 */
    265242void
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    66 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  $Id$
     
    5439
    5540/*
    56  *              カーネルの割込みコントローラ依存部(GIC用)
    57  *
    58  *  このヘッダファイルは,target_kernel_impl.h(または,そこからインク
    59  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    60  *  直接インクルードしてはならない.
     41 *              カーネルの割込みコントローラ依存部(GIC用)
     42 *
     43 *  このヘッダファイルは,target_kernel_impl.h(または,そこからインク
     44 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     45 *  直接インクルードしてはならない.
    6146 */
    6247
     
    6853
    6954/*
    70  *  割込み番号の数,最小値と最大値
     55 *  割込み番号の数,最小値と最大値
    7156 */
    7257#define TNUM_INTNO              GIC_TNUM_INTNO
     
    7560
    7661/*
    77  *  割込みハンドラ番号の数
     62 *  割込みハンドラ番号の数
    7863 */
    7964#define TNUM_INHNO              GIC_TNUM_INTNO
    8065
    8166/*
    82  *  割込み番号の定義
     67 *  割込み番号の定義
    8368 */
    8469#define GIC_INTNO_SGI0          0U
     
    8772
    8873/*
    89  *  割込み優å
    90 ˆåº¦ã®æ“ä½œ
    91  *
    92  *  割込み優å
    93 ˆåº¦ã®å†
    94 éƒ¨è¡¨ç¾ã¯ï¼Œuint_t型で表し,0が最高優å
    95 ˆåº¦ã§ï¼Œå€¤ãŒå¤§ã
    96  *  いほど優å
    97 ˆåº¦ãŒä¸‹ãŒã‚‹ã‚‚のとする.GICのレジスタ構成と整合させるために,
    98  *  優å
    99 ˆåº¦ã®æ®µæ•°ãŒ256段階の時にあわせて表す.
     74 *  割込み優先度の操作
     75 *
     76 *  割込み優先度の内部表現は,uint_t型で表し,0が最高優先度で,値が大き
     77 *  いほど優先度が下がるものとする.GICのレジスタ構成と整合させるために,
     78 *  優先度の段数が256段階の時にあわせて表す.
    10079 */
    10180#define GIC_PRI_LEVEL           (TMAX_INTPRI - TMIN_INTPRI + 2)
     
    12099#endif /* GIC_PRI_LEVEL == 16 */
    121100
    122 /* 外部表現への変換 */
     101/* 外部表現への変換 */
    123102#define EXT_IPM(pri) \
    124103                        (((PRI)((pri) >> GIC_PRI_SHIFT)) - (GIC_PRI_LEVEL - 1))
    125104
    126 /* å†
    127 éƒ¨è¡¨ç¾ã¸ã®å¤‰æ› */
     105/* 内部表現への変換 */
    128106#define INT_IPM(ipm) \
    129107                        (((uint_t)((ipm) + (GIC_PRI_LEVEL - 1))) << GIC_PRI_SHIFT)
    130108
    131109/*
    132  *  GICレジスタのアドレスを定義するためのマクロ
    133  *
    134  *  GICレジスタのアドレスを,アセンブリ言語からも参ç
    135 §ã§ãã‚‹ã‚ˆã†ã«ã™ã‚‹ãŸ
    136  *  めのマクロ.
     110 *  GICレジスタのアドレスを定義するためのマクロ
     111 *
     112 *  GICレジスタのアドレスを,アセンブリ言語からも参照できるようにするた
     113 *  めのマクロ.
    137114 */
    138115#ifndef GIC_REG
     
    141118
    142119/*
    143  *  CPUインタフェース関連の定義
     120 *  CPUインタフェース関連の定義
    144121 */
    145122#define GICC_CTLR               GIC_REG(GICC_BASE, 0x00)
     
    152129
    153130/*
    154  *  CPUインタフェース制御レジスタ(GICC_CTLR)の設定値(GICv1でセキュリ
    155  *  ティ拡張がない場合)
     131 *  CPUインタフェース制御レジスタ(GICC_CTLR)の設定値(GICv1でセキュリ
     132 *  ティ拡張がない場合)
    156133 */
    157134#define GICC_CTLR_DISABLE               UINT_C(0x00)
     
    159136
    160137/*
    161  *  CPUインタフェース制御レジスタ(GICC_CTLR)の設定値(GICv2でセキュリ
    162  *  ティ拡張がない場合か,拡張がある場合のセキュアモード)
     138 *  CPUインタフェース制御レジスタ(GICC_CTLR)の設定値(GICv2でセキュリ
     139 *  ティ拡張がない場合か,拡張がある場合のセキュアモード)
    163140 */
    164141#ifdef TOPPERS_SAFEG_SECURE
     
    170147
    171148/*
    172  *  ディストリビュータ関連の定義
     149 *  ディストリビュータ関連の定義
    173150 */
    174151#define GICD_CTLR                       GIC_REG(GICD_BASE, 0x000)
     
    191168
    192169/*
    193  *  ディストリビュータ制御レジスタ(GICD_CTLR)の設定値
     170 *  ディストリビュータ制御レジスタ(GICD_CTLR)の設定値
    194171 */
    195172#define GICD_CTLR_DISABLE       UINT_C(0x00)
     
    197174
    198175/*
    199  *  割込みコンフィギュレーションレジスタ(GICD_ICFGRn)の設定値
    200  *
    201  *  第1ビットは,ARM11 MPCoreおよびGICの早い時期の実è£
    202 ã§ã¯å‰²è¾¼ã¿ã®é€šçŸ¥
    203  *  å
    204 ˆãƒ—ロセッサを設定するために使用されている.
     176 *  割込みコンフィギュレーションレジスタ(GICD_ICFGRn)の設定値
     177 *
     178 *  第1ビットは,ARM11 MPCoreおよびGICの早い時期の実装では割込みの通知
     179 *  先プロセッサを設定するために使用されている.
    205180 */
    206181#define GICD_ICFGRn_LEVEL       UINT_C(0x00)
     
    214189
    215190/*
    216  *  CPUインタフェースの操作
    217  */
    218 
    219 /*
    220  *  割込み優å
    221 ˆåº¦ãƒžã‚¹ã‚¯ã‚’設定(priはå†
    222 éƒ¨è¡¨ç¾ï¼‰
     191 *  CPUインタフェースの操作
     192 */
     193
     194/*
     195 *  割込み優先度マスクを設定(priは内部表現)
    223196 */
    224197Inline void
     
    229202
    230203/*
    231  *  割込み優å
    232 ˆåº¦ãƒžã‚¹ã‚¯ã‚’取得(å†
    233 éƒ¨è¡¨ç¾ã§è¿”す)
     204 *  割込み優先度マスクを取得(内部表現で返す)
    234205 */
    235206Inline uint_t
     
    240211
    241212/*
    242  *  CPUインタフェースの初期化
     213 *  CPUインタフェースの初期化
    243214 */
    244215extern void gicc_initialize(void);
    245216
    246217/*
    247  *  CPUインタフェースの終了
     218 *  CPUインタフェースの終了
    248219 */
    249220extern void gicc_terminate(void);
    250221
    251222/*
    252  *  ディストリビュータの操作
    253  */
    254 
    255 /*
    256  *  割込み禁止(割込みイネーブルのクリア)
     223 *  ディストリビュータの操作
     224 */
     225
     226/*
     227 *  割込み禁止(割込みイネーブルのクリア)
    257228 */
    258229Inline void
     
    263234
    264235/*
    265  *  割込み許可(割込みイネーブルのセット)
     236 *  割込み許可(割込みイネーブルのセット)
    266237 */
    267238Inline void
     
    272243
    273244/*
    274  *  割込みペンディングのクリア
     245 *  割込みペンディングのクリア
    275246 */
    276247Inline void
     
    281252
    282253/*
    283  *  割込みペンディングのセット
     254 *  割込みペンディングのセット
    284255 */
    285256Inline void
     
    290261
    291262/*
    292  *  割込みペンディングのチェック
     263 *  割込みペンディングのチェック
    293264 */
    294265Inline bool_t
     
    300271
    301272/*
    302  *  割込みのコンフィグレーション
     273 *  割込みのコンフィグレーション
    303274 */
    304275Inline void
     
    315286
    316287/*
    317  *  割込みグループの設定(セキュリティ拡張)
     288 *  割込みグループの設定(セキュリティ拡張)
    318289 */
    319290Inline void
     
    330301
    331302/*
    332  *  割込み要求ラインに対する割込み優å
    333 ˆåº¦ã®è¨­å®šï¼ˆpriはå†
    334 éƒ¨è¡¨ç¾ï¼‰
     303 *  割込み要求ラインに対する割込み優先度の設定(priは内部表現)
    335304 */
    336305Inline void
     
    347316
    348317/*
    349  *  割込みターゲットプロセッサの設定
    350  *
    351  *  prcsは,ターゲットとするプロセッサを表すビットのビット毎論理和で指
    352  *  定する.
    353  *              プロセッサ0 : 0x01
    354  *              プロセッサ1 : 0x02
    355  *              プロセッサ2 : 0x04
    356  *              プロセッサ3 : 0x08
     318 *  割込みターゲットプロセッサの設定
     319 *
     320 *  prcsは,ターゲットとするプロセッサを表すビットのビット毎論理和で指
     321 *  定する.
     322 *              プロセッサ0 : 0x01
     323 *              プロセッサ1 : 0x02
     324 *              プロセッサ2 : 0x04
     325 *              プロセッサ3 : 0x08
    357326 */
    358327Inline void
     
    369338
    370339/*
    371  *  ディストリビュータの初期化
     340 *  ディストリビュータの初期化
    372341 */
    373342extern void gicd_initialize(void);
    374343
    375344/*
    376  *  ディストリビュータの終了
     345 *  ディストリビュータの終了
    377346 */
    378347extern void gicd_terminate(void);
     
    381350
    382351/*
    383  *  割込み番号の範囲の判定
     352 *  割込み番号の範囲の判定
    384353 */
    385354#define VALID_INTNO(intno)      (TMIN_INTNO <= (intno) && (intno) <= TMAX_INTNO)
    386355
    387356/*
    388  *  割込み要求ラインのための標準的な初期化æƒ
    389 å ±ã‚’生成する
     357 *  割込み要求ラインのための標準的な初期化情報を生成する
    390358 */
    391359#define USE_INTINIB_TABLE
    392360
    393361/*
    394  *  割込み要求ライン設定テーブルを生成する
     362 *  割込み要求ライン設定テーブルを生成する
    395363 */
    396364#define USE_INTCFG_TABLE
    397365
    398366/*
    399  *  コア依存部
     367 *  コア依存部
    400368 */
    401369#include "core_kernel_impl.h"
    402370
    403371/*
    404  *  ターゲット非依存部に提供する関数
     372 *  ターゲット非依存部に提供する関数
    405373 */
    406374#ifndef TOPPERS_MACRO_ONLY
    407375
    408376/*
    409  *  割込み優å
    410 ˆåº¦ãƒžã‚¹ã‚¯ã®è¨­å®š
     377 *  割込み優先度マスクの設定
    411378 */
    412379Inline void
     
    417384
    418385/*
    419  *  割込み優å
    420 ˆåº¦ãƒžã‚¹ã‚¯ã®å‚ç
    421 §
     386 *  割込み優先度マスクの参照
    422387 */
    423388Inline PRI
     
    428393
    429394/*
    430  *  割込み要求禁止フラグのセット
    431  *
    432  *  intnoで指定された割込み要求ラインに対する割込み要求禁止フラグのセッ
    433  *  トし,割込みを禁止する.割込み属性が設定されていない割込み要求ライ
    434  *  ンが指定された場合には,falseを返す.
     395 *  割込み要求禁止フラグのセット
     396 *
     397 *  intnoで指定された割込み要求ラインに対する割込み要求禁止フラグのセッ
     398 *  トし,割込みを禁止する.割込み属性が設定されていない割込み要求ライ
     399 *  ンが指定された場合には,falseを返す.
    435400 */
    436401Inline bool_t
     
    445410
    446411/*
    447  *  割込み要求禁止フラグのクリア
    448  *
    449  *  intnoで指定された割込み要求ラインに対する割込み要求禁止フラグのクリ
    450  *  アし,割込みを許可する.割込み属性が設定されていない割込み要求ライ
    451  *  ンが指定された場合には,falseを返す.
     412 *  割込み要求禁止フラグのクリア
     413 *
     414 *  intnoで指定された割込み要求ラインに対する割込み要求禁止フラグのクリ
     415 *  アし,割込みを許可する.割込み属性が設定されていない割込み要求ライ
     416 *  ンが指定された場合には,falseを返す.
    452417 */
    453418Inline bool_t
     
    462427
    463428/*
    464  *  割込み要求のクリア
     429 *  割込み要求のクリア
    465430 */
    466431Inline void
     
    471436
    472437/*
    473  *  割込み要求のチェック
     438 *  割込み要求のチェック
    474439 */
    475440Inline bool_t
     
    480445
    481446/*
    482  *  割込み要求のセット
     447 *  割込み要求のセット
    483448 */
    484449Inline void
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_support.S

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;charset=UTF-8
    r279 r321  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    4632 *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              カーネルの割込みコントローラ依存部のアセンブリ言語部(GIC用)
     43 *              カーネルの割込みコントローラ依存部のアセンブリ言語部(GIC用)
    5944 */
    6045
    6146#define TOPPERS_MACRO_ONLY
    6247#define TOPPERS_ASM_MACRO
    63 #define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
    64 #define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
    65 #define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
     48#define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
     49#define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
     50#define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
    6651#define GIC_REG(base, offset)   ((base) + (offset))
    6752#include "kernel_impl.h"
     
    7358
    7459/*
    75  *  割込みハンドラ呼出し前の割込みコントローラ操作
     60 *  割込みハンドラ呼出し前の割込みコントローラ操作
    7661 *
    77  *  r4に割込み番号を返す.irc_end_intで用いるæƒ
    78 å ±ï¼ˆå‰²è¾¼ã¿ç™ºç”Ÿå‰ã®å‰²è¾¼ã¿
    79  *  優å
    80 ˆåº¦ãƒžã‚¹ã‚¯ï¼‰ã‚’,スタックのå
    81 ˆé ­ã«ä¿å­˜ã™ã‚‹ï¼Ž
     62 *  r4に割込み番号を返す.irc_end_intで用いる情報(割込み発生前の割込み
     63 *  優先度マスク)を,スタックの先頭に保存する.
    8264 */
    8365        ATEXT
     
    8668ALABEL(irc_begin_int)
    8769        /*
    88          *  割込み要因を取得する.
     70         *  割込み要因を取得する.
    8971         */
    9072        ldr             r1, =GICC_IAR
     
    9274
    9375        /*
    94          *  割込み番号を求める.
     76         *  割込み番号を求める.
    9577         */
    96         lsl             r4, r3, #22                     /* 下位10ビットを取り出す */
     78        lsl             r4, r3, #22                     /* 下位10ビットを取り出す */
    9779        lsr             r4, r4, #22
    9880
    9981        /*
    100          *  割込み要求をクリアする.
     82         *  割込み要求をクリアする.
    10183         */
    10284        and             r0, r4, #31
     
    10890
    10991        /*
    110          *  割込み要因の割込み優å
    111 ˆåº¦ã‚’求め,割込み優å
    112 ˆåº¦ãƒžã‚¹ã‚¯ã«è¨­å®šã™ã‚‹ï¼Ž
     92         *  割込み要因の割込み優先度を求め,割込み優先度マスクに設定する.
    11393         */
    114         ldr             r1, =GICC_RPR           /* 受け付けた割込みの割込み優å
    115 ˆåº¦ã‚’取得 */
     94        ldr             r1, =GICC_RPR           /* 受け付けた割込みの割込み優先度を取得 */
    11695        ldr             r0, [r1]
    117         ldr             r1, =GICC_PMR           /* 割込み発生前の割込み優å
    118 ˆåº¦ã‚’取得 */
     96        ldr             r1, =GICC_PMR           /* 割込み発生前の割込み優先度を取得 */
    11997        ldr             r2, [r1]
    120         str             r0, [r1]                        /* 新しい割込み優å
    121 ˆåº¦ãƒžã‚¹ã‚¯ã‚’セットする */
    122         asm_data_sync_barrier r0        /* 割込み優å
    123 ˆåº¦ãƒžã‚¹ã‚¯ãŒã‚»ãƒƒãƒˆã•ã‚Œã‚‹ã®ã‚’å¾
    124 ã¤ */
    125         str             r2, [sp]                        /* irc_end_intで用いるæƒ
    126 å ±ã‚’保存 */
     98        str             r0, [r1]                        /* 新しい割込み優先度マスクをセットする */
     99        asm_data_sync_barrier r0        /* 割込み優先度マスクがセットされるのを待つ */
     100        str             r2, [sp]                        /* irc_end_intで用いる情報を保存 */
    127101
    128102        /*
    129          *  EOIを発行する.
     103         *  EOIを発行する.
    130104         */
    131         ldr             r1, =GICC_EOIR          /* EOIレジスタへの書込み */
     105        ldr             r1, =GICC_EOIR          /* EOIレジスタへの書込み */
    132106        str             r3, [r1]
    133107
    134108        /*
    135          *  割込み番号を返値としてリターンする.
     109         *  割込み番号を返値としてリターンする.
    136110         */
    137111        bx              lr
    138112
    139113/*
    140  *  割込みハンドラ呼出し後の割込みコントローラ操作
     114 *  割込みハンドラ呼出し後の割込みコントローラ操作
    141115 */
    142116        ATEXT
     
    145119ALABEL(irc_end_int)
    146120        /*
    147          *  割込み優å
    148 ˆåº¦ãƒžã‚¹ã‚¯ã‚’å
    149 ƒã«æˆ»ã™ï¼Ž
     121         *  割込み優先度マスクを元に戻す.
    150122         */
    151         ldr             r2, [sp]                        /* irc_begin_intで保存したæƒ
    152 å ±ã‚’復帰 */
    153         ldr             r1, =GICC_PMR           /* 割込み優å
    154 ˆåº¦ãƒžã‚¹ã‚¯ã‚’å
    155 ƒã«æˆ»ã™ */
     123        ldr             r2, [sp]                        /* irc_begin_intで保存した情報を復帰 */
     124        ldr             r1, =GICC_PMR           /* 割込み優先度マスクを元に戻す */
    156125        str             r2, [r1]
    157126        bx              lr
    158127
    159128/*
    160  *  CPU例外発生前の割込み優å
    161 ˆåº¦ã®å–å¾—
     129 *  CPU例外発生前の割込み優先度の取得
    162130 *
    163  *  CPU例外の発生で割込み優å
    164 ˆåº¦ãŒå¤‰ã‚ã‚‹ã“とはないため,現在の割込み優å
    165 ˆ
    166  *  度を返す.
     131 *  CPU例外の発生で割込み優先度が変わることはないため,現在の割込み優先
     132 *  度を返す.
    167133 */
    168134        ATEXT
     
    171137ALABEL(irc_get_intpri)
    172138        /*
    173          *  割込み優å
    174 ˆåº¦ãƒžã‚¹ã‚¯ã‚’外部表現に変換して返す.
     139         *  割込み優先度マスクを外部表現に変換して返す.
    175140         */
    176141        ldr             r1, =GICC_PMR
     
    181146
    182147/*
    183  *  CPU例外ハンドラ呼出し前の割込みコントローラ操作
     148 *  CPU例外ハンドラ呼出し前の割込みコントローラ操作
    184149 *
    185  *  irc_end_excで用いるæƒ
    186 å ±ï¼ˆCPU例外発生前の割込み優å
    187 ˆåº¦ãƒžã‚¹ã‚¯ï¼‰ã‚’,スタッ
    188  *      クのå
    189 ˆé ­ã«ä¿å­˜ã™ã‚‹ï¼Ž
     150 *  irc_end_excで用いる情報(CPU例外発生前の割込み優先度マスク)を,スタッ
     151 *      クの先頭に保存する.
    190152 */
    191153        ATEXT
     
    194156ALABEL(irc_begin_exc)
    195157        /*
    196          *  割込み優å
    197 ˆåº¦ãƒžã‚¹ã‚¯ã‚’保存する.
     158         *  割込み優先度マスクを保存する.
    198159         */
    199         ldr             r1, =GICC_PMR           /* 現在の割込み優å
    200 ˆåº¦ã‚’取得 */
     160        ldr             r1, =GICC_PMR           /* 現在の割込み優先度を取得 */
    201161        ldr             r2, [r1]
    202         str             r2, [sp]                        /* irc_end_excで用いるæƒ
    203 å ±ã‚’保存 */
     162        str             r2, [sp]                        /* irc_end_excで用いる情報を保存 */
    204163        bx              lr
    205164
    206165/*
    207  *  CPU例外ハンドラ呼出し後の割込みコントローラ操作
     166 *  CPU例外ハンドラ呼出し後の割込みコントローラ操作
    208167 */
    209168        ATEXT
     
    212171ALABEL(irc_end_exc)
    213172        /*
    214          *  割込み優å
    215 ˆåº¦ãƒžã‚¹ã‚¯ã‚’å
    216 ƒã«æˆ»ã™ï¼Ž
     173         *  割込み優先度マスクを元に戻す.
    217174         */
    218         ldr             r2, [sp]                        /* irc_begin_excで保存したæƒ
    219 å ±ã‚’復帰 */
    220         ldr             r1, =GICC_PMR           /* 割込み優å
    221 ˆåº¦ãƒžã‚¹ã‚¯ã‚’å
    222 ƒã«æˆ»ã™ */
     175        ldr             r2, [sp]                        /* irc_begin_excで保存した情報を復帰 */
     176        ldr             r1, =GICC_PMR           /* 割込み優先度マスクを元に戻す */
    223177        str             r2, [r1]
    224178        bx              lr
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/sp804.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    66 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  $Id$
     
    5439
    5540/*
    56  *              ARM Dual-Timer Module(SP804)に関する定義
     41 *              ARM Dual-Timer Module(SP804)に関する定義
    5742 */
    5843
     
    6146
    6247/*
    63  *  タイマレジスタの番地の定義
     48 *  タイマレジスタの番地の定義
    6449 */
    6550#define SP804_LR(base)          ((uint32_t *)((base) + 0x00U))
     
    7257
    7358/*
    74  *  制御レジスタ(SP804_CR)の設定値
     59 *  制御レジスタ(SP804_CR)の設定値
    7560 */
    76 #define SP804_DISABLE                   UINT_C(0x00)    /* タイマディスエーブル */
    77 #define SP804_ENABLE                    UINT_C(0x80)    /* タイマイネーブル */
    78 #define SP804_INT_ENABLE                UINT_C(0x20)    /* タイマ割込みイネーブル */
    79 #define SP804_MODE_FREERUN              UINT_C(0x00)    /* フリーランニングモード */
    80 #define SP804_MODE_PERIODIC             UINT_C(0x40)    /* 周期モード */
    81 #define SP804_MODE_ONESHOT              UINT_C(0x01)    /* ワンショットモード */
    82 #define SP804_SIZE_32                   UINT_C(0x02)    /* 32ビット */
    83 #define SP804_PRESCALE_1                UINT_C(0x00)    /* プリスケーラ ×1 */
    84 #define SP804_PRESCALE_16               UINT_C(0x04)    /* プリスケーラ ×16 */
    85 #define SP804_PRESCALE_256              UINT_C(0x08)    /* プリスケーラ ×256 */
     61#define SP804_DISABLE                   UINT_C(0x00)    /* タイマディスエーブル */
     62#define SP804_ENABLE                    UINT_C(0x80)    /* タイマイネーブル */
     63#define SP804_INT_ENABLE                UINT_C(0x20)    /* タイマ割込みイネーブル */
     64#define SP804_MODE_FREERUN              UINT_C(0x00)    /* フリーランニングモード */
     65#define SP804_MODE_PERIODIC             UINT_C(0x40)    /* 周期モード */
     66#define SP804_MODE_ONESHOT              UINT_C(0x01)    /* ワンショットモード */
     67#define SP804_SIZE_32                   UINT_C(0x02)    /* 32ビット */
     68#define SP804_PRESCALE_1                UINT_C(0x00)    /* プリスケーラ ×1 */
     69#define SP804_PRESCALE_16               UINT_C(0x04)    /* プリスケーラ ×16 */
     70#define SP804_PRESCALE_256              UINT_C(0x08)    /* プリスケーラ ×256 */
    8671
    8772#endif /* TOPPERS_SP804_H */
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/start.S

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;charset=UTF-8
    r270 r321  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    4632 *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              カーネル用のスタートアップモジュール(ARM用)
     43 *              カーネル用のスタートアップモジュール(ARM用)
    5944 */
    6045       
    6146#define TOPPERS_MACRO_ONLY
    6247#define TOPPERS_ASM_MACRO
    63 #define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
    64 #define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
    65 #define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
     48#define UINT_C(val)                     (val)           /* uint_t型の定数を作るマクロ */
     49#define ULONG_C(val)            (val)           /* ulong_t型の定数を作るマクロ */
     50#define CAST(type, val)         (val)           /* 型キャストを行うマクロ */
    6651#include "kernel_impl.h"
    6752#include "core_asm.inc"
     
    7257ALABEL(start)
    7358        /*
    74          *  プロセッサモードの初期化
     59         *  プロセッサモードの初期化
    7560         *
    76          *  スーパバイザモード,å
    77 ¨å‰²è¾¼ã¿ãƒ­ãƒƒã‚¯çŠ¶æ
    78 ‹ã«åˆæœŸåŒ–する.
     61         *  スーパバイザモード,全割込みロック状態に初期化する.
    7962         */
    8063        msr             cpsr_cxsf, #(CPSR_SVC_MODE AOR CPSR_INTLOCK)
    8164
    8265        /*
    83          *  スタックポインタとフレームポインタの初期化
     66         *  スタックポインタとフレームポインタの初期化
    8467         */
    8568        ldr             r0, =_kernel_istkpt
    86         ldr             sp, [r0]                        /* スタックポインタ(sp)*/
    87         mov             fp, #0                          /* ARMモード用フレームポインタ(r11)*/
    88         mov             r7, #0                          /* Thumbモード用フレームポインタ(r7)*/
     69        ldr             sp, [r0]                        /* スタックポインタ(sp)*/
     70        mov             fp, #0                          /* ARMモード用フレームポインタ(r11)*/
     71        mov             r7, #0                          /* Thumbモード用フレームポインタ(r7)*/
    8972
    9073        /*
    91          *  hardware_init_hookの呼出し(0でない場合)
     74         *  hardware_init_hookの呼出し(0でない場合)
    9275         *
    93          *  ターゲットハードウェアに依存してå¿
    94 è¦ãªåˆæœŸåŒ–処理がある場合は,
    95          *  hardware_init_hookという関数を用意する.
     76         *  ターゲットハードウェアに依存して必要な初期化処理がある場合は,
     77         *  hardware_init_hookという関数を用意する.
    9678         */
    9779        ldr             r0, =hardware_init_hook
     
    10284#ifndef TOPPERS_OMIT_BSS_INIT
    10385        /*
    104          *  bssセクションのクリア
     86         *  bssセクションのクリア
    10587         *
    106          *  BSS_STARTからBSS_ENDまでをゼロクリアする.
     88         *  BSS_STARTからBSS_ENDまでをゼロクリアする.
    10789         */
    10890        ldr             r0, =BSS_START
     
    125107#ifndef TOPPERS_OMIT_DATA_INIT
    126108        /*
    127          *  dataセクションの初期化(ROM化対応)
     109         *  dataセクションの初期化(ROM化対応)
    128110         *
    129          *  DATA_STARTからDATA_ENDまでに,IDATA_START以降からコピーする.
    130          *  IDATA_STARTからIDATA_ENDまでを,DATA_START以降にコピーする.
     111         *  DATA_STARTからDATA_ENDまでに,IDATA_START以降からコピーする.
     112         *  IDATA_STARTからIDATA_ENDまでを,DATA_START以降にコピーする.
    131113         */
    132114        ldr             r0, =DATA_START
     
    149131
    150132        /*
    151          *  software_init_hookの呼出し(0でない場合)
     133         *  software_init_hookの呼出し(0でない場合)
    152134         *
    153          *  ソフトウェア環境(特にライブラリ)に依存してå¿
    154 è¦ãªåˆæœŸåŒ–処理が
    155          *  ある場合は,software_init_hookという関数を用意すればよい.
     135         *  ソフトウェア環境(特にライブラリ)に依存して必要な初期化処理が
     136         *  ある場合は,software_init_hookという関数を用意すればよい.
    156137         */
    157138        ldr             r0, =software_init_hook
     
    161142
    162143        /*
    163          *  カーネルの起動
     144         *  カーネルの起動
    164145         */
    165146        b               sta_ker
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    77 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
    45  *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
     31 *
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  $Id$
     
    5540
    5641/*
    57  *              ARM PrimCell UART(PL011)用 簡易SIOドライバ
     42 *              ARM PrimCell UART(PL011)用 簡易SIOドライバ
    5843 */
    5944
     
    6348
    6449/*
    65  *  プリミティブな送信/受信関数
    66  */
    67 
    68 /*
    69  *  受信バッファに文字があるか?
     50 *  プリミティブな送信/受信関数
     51 */
     52
     53/*
     54 *  受信バッファに文字があるか?
    7055 */
    7156Inline bool_t
     
    7661
    7762/*
    78  *  送信バッファに空きがあるか?
     63 *  送信バッファに空きがあるか?
    7964 */
    8065Inline bool_t
     
    8570
    8671/*
    87  *  受信した文字の取出し
     72 *  受信した文字の取出し
    8873 */
    8974Inline char
     
    9479
    9580/*
    96  *  送信する文字の書込み
     81 *  送信する文字の書込み
    9782 */
    9883Inline void
     
    10388
    10489/*
    105  *  シリアルI/Oポートのオープン
     90 *  シリアルI/Oポートのオープン
    10691 */
    10792void
     
    11196
    11297        /*
    113          *  UARTをディスエーブル
     98         *  UARTをディスエーブル
    11499         */
    115100        sil_wrw_mem(UART_CR(ATTR_baseAddress), 0U);
    116101
    117102        /*
    118          *  エラーフラグをクリア
     103         *  エラーフラグをクリア
    119104         */
    120105        sil_wrw_mem(UART_ECR(ATTR_baseAddress), 0U);
    121106
    122107        /*
    123          *  FIFOを空にする
     108         *  FIFOを空にする
    124109         */
    125110        while (uart_pl011_getready(p_cellcb)) {
     
    128113
    129114        /*
    130          *  ボーレートと通信規格を設定
     115         *  ボーレートと通信規格を設定
    131116         */
    132117        sil_wrw_mem(UART_IBRD(ATTR_baseAddress), ATTR_ibrd);
     
    135120               
    136121        /*
    137          *  UARTをイネーブル
     122         *  UARTをイネーブル
    138123         */
    139124        sil_wrw_mem(UART_CR(ATTR_baseAddress),
     
    142127
    143128/*
    144  *  シリアルI/Oポートのクローズ
     129 *  シリアルI/Oポートのクローズ
    145130 */
    146131void
     
    150135
    151136        /*
    152          *  UARTをディスエーブル
     137         *  UARTをディスエーブル
    153138         */
    154139        sil_wrw_mem(UART_CR(ATTR_baseAddress), 0U);
     
    156141
    157142/*
    158  *  シリアルI/Oポートへの文字送信
     143 *  シリアルI/Oポートへの文字送信
    159144 */
    160145bool_t
     
    171156
    172157/*
    173  *  シリアルI/Oポートからの文字受信
     158 *  シリアルI/Oポートからの文字受信
    174159 */
    175160int_t
     
    185170
    186171/*
    187  *  シリアルI/Oポートからのコールバックの許可
     172 *  シリアルI/Oポートからのコールバックの許可
    188173 */
    189174void
     
    206191
    207192/*
    208  *  シリアルI/Oポートからのコールバックの禁止
     193 *  シリアルI/Oポートからのコールバックの禁止
    209194 */
    210195void
     
    227212
    228213/*
    229  *  シリアルI/Oポートに対する割込み処理
     214 *  シリアルI/Oポートに対する割込み処理
    230215 */
    231216void
     
    236221        if (uart_pl011_getready(p_cellcb)) {
    237222                /*
    238                  *  受信通知コールバックルーチンを呼び出す.
     223                 *  受信通知コールバックルーチンを呼び出す.
    239224                 */
    240225                ciSIOCBR_readyReceive();
     
    242227        if (uart_pl011_putready(p_cellcb)) {
    243228                /*
    244                  *  送信可能コールバックルーチンを呼び出す.
     229                 *  送信可能コールバックルーチンを呼び出す.
    245230                 */
    246231                ciSIOCBR_readySend();
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.cdl

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     11 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20 *      の無保証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23 *      と.
     24 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     26 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27 *        報告すること.
     28 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              ARM PrimCell UART(PL011)用 簡易SIOドライバのコンポーネント記述
     44 *              ARM PrimCell UART(PL011)用 簡易SIOドライバのコンポーネント記述
    6045 */
    6146
    6247/*
    63  *  ARM PrimCell UART(PL011)に関する定義のインポート
     48 *  ARM PrimCell UART(PL011)に関する定義のインポート
    6449 */
    6550import_C("uart_pl011.h");
    6651
    6752/*
    68  *  ARM PrimCell UART(PL011)用 簡易SIOドライバのセルタイプ
     53 *  ARM PrimCell UART(PL011)用 簡易SIOドライバのセルタイプ
    6954 */
    7055celltype tUartPL011 {
     
    7560
    7661        attr {
    77                 uintptr_t       baseAddress;    /* UARTレジスタのベースアドレス */
    78                 uint8_t         ibrd;                   /* ボーレート(整数部)レジスタの設定値 */
    79                 uint8_t         fbrd;                   /* ボーレート(小数部)レジスタの設定値 */
    80                 uint8_t         lcr_h;                  /* ライン制御レジスタの設定値 */
     62                uintptr_t       baseAddress;    /* UARTレジスタのベースアドレス */
     63                uint8_t         ibrd;                   /* ボーレート(整数部)レジスタの設定値 */
     64                uint8_t         fbrd;                   /* ボーレート(小数部)レジスタの設定値 */
     65                uint8_t         lcr_h;                  /* ライン制御レジスタの設定値 */
    8166        };
    8267};
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/uart_pl011.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     11 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20 *      の無保証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23 *      と.
     24 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     26 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27 *        報告すること.
     28 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              ARM PrimCell UART(PL011)に関する定義
     44 *              ARM PrimCell UART(PL011)に関する定義
    6045 */
    6146
     
    6449
    6550/*
    66  *  UARTレジスタの番地の定義
     51 *  UARTレジスタの番地の定義
    6752 */
    6853#define UART_DR(base)           ((uint32_t *)((base) + 0x00U))
     
    8166
    8267/*
    83  *  フラグレジスタ(UART_FR)の参ç
    84 §å€¤
     68 *  フラグレジスタ(UART_FR)の参照値
    8569 */
    86 #define UART_FR_RXFE            UINT_C(0x10)    /* 受信バッファが空 */
    87 #define UART_FR_TXFF            UINT_C(0x20)    /* 送信バッファがフル */
     70#define UART_FR_RXFE            UINT_C(0x10)    /* 受信バッファが空 */
     71#define UART_FR_TXFF            UINT_C(0x20)    /* 送信バッファがフル */
    8872
    8973/*
    90  *  ライン制御レジスタ(UART_LCR_H)の設定値
     74 *  ライン制御レジスタ(UART_LCR_H)の設定値
    9175 */
    92 #define UART_LCR_H_PEN          UINT_C(0x02)    /* パリティを用いる */
    93 #define UART_LCR_H_EPS          UINT_C(0x04)    /* 偶数パリティに */
    94 #define UART_LCR_H_STP2         UINT_C(0x08)    /* ストップビットを2ビットに */
    95 #define UART_LCR_H_FEN          UINT_C(0x10)    /* FIFOを有効に */
    96 #define UART_LCR_H_WLEN8        UINT_C(0x60)    /* データ長を8ビットに */
     76#define UART_LCR_H_PEN          UINT_C(0x02)    /* パリティを用いる */
     77#define UART_LCR_H_EPS          UINT_C(0x04)    /* 偶数パリティに */
     78#define UART_LCR_H_STP2         UINT_C(0x08)    /* ストップビットを2ビットに */
     79#define UART_LCR_H_FEN          UINT_C(0x10)    /* FIFOを有効に */
     80#define UART_LCR_H_WLEN8        UINT_C(0x60)    /* データ長を8ビットに */
    9781
    9882/*
    99  *  制御レジスタ(UART_CR)の設定値
     83 *  制御レジスタ(UART_CR)の設定値
    10084 */
    101 #define UART_CR_UARTEN  UINT_C(0x0001)          /* UARTをイネーブルに */
    102 #define UART_CR_TXE             UINT_C(0x0100)          /* 送信をイネーブルに */
    103 #define UART_CR_RXE             UINT_C(0x0200)          /* 受信をイネーブルに */
     85#define UART_CR_UARTEN  UINT_C(0x0001)          /* UARTをイネーブルに */
     86#define UART_CR_TXE             UINT_C(0x0100)          /* 送信をイネーブルに */
     87#define UART_CR_RXE             UINT_C(0x0200)          /* 受信をイネーブルに */
    10488
    10589/*
    106  *  割込みマスクセット/クリアレジスタ(UART_IMSC)の設定値
     90 *  割込みマスクセット/クリアレジスタ(UART_IMSC)の設定値
    10791 */
    108 #define UART_IMSC_RXIM  UINT_C(0x0010)          /* 受信割込みマスク */
    109 #define UART_IMSC_TXIM  UINT_C(0x0020)          /* 送信割込みマスク */
     92#define UART_IMSC_RXIM  UINT_C(0x0010)          /* 受信割込みマスク */
     93#define UART_IMSC_TXIM  UINT_C(0x0020)          /* 送信割込みマスク */
    11094
    11195#endif /* TOPPERS_UART_PL011_H */
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/Makefile.chip

    • Property svn:mime-type changed from text/x-makefile to text/x-makefile;charset=UTF-8
    r270 r321  
    11#
    2 #               Makefile のチップ依存部(RZ/A1用)
     2#               Makefile のチップ依存部(RZ/A1用)
    33#
    4 #  $Id: Makefile.chip 720 2016-04-01 22:16:17Z ertl-hiro $
     4#  $Id$
    55#
    66
    77#
    8 ãƒãƒƒãƒ—依存部ディレクトリ名の定義
     8チップ依存部ディレクトリ名の定義
    99#
    1010CHIPDIR = $(SRCDIR)/arch/$(CORE)_$(TOOL)/$(CHIP)
    1111
    1212#
    13 ã‚³ãƒ³ãƒ‘イルオプション
     13コンパイルオプション
    1414#
    1515INCLUDES := $(INCLUDES) -I$(CHIPDIR)
     
    1919
    2020#
    21 ã‚«ãƒ¼ãƒãƒ«ã«é–¢ã™ã‚‹å®šç¾©
     21カーネルに関する定義
    2222#
    2323KERNEL_DIRS := $(KERNEL_DIRS) $(CHIPDIR)
     
    2727
    2828#
    29 ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚¿é–¢ä¿‚の変数の定義
     29コンフィギュレータ関係の変数の定義
    3030#
    3131CFG_TABS := $(CFG_TABS) --symval-table $(CHIPDIR)/chip_sym.def
    3232
    3333#
    34 ã‚³ã‚¢ä¾å­˜éƒ¨
     34コア依存部
    3535#
    3636include $(SRCDIR)/arch/$(CORE)_$(TOOL)/common/Makefile.core
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    77 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
    4531 *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  $Id$
     
    5540
    5641/*
    57  *              kernel.hのターゲット依存部(RZ/A1用)
     42 *              kernel.hのターゲット依存部(RZ/A1用)
    5843 *
    59  *  このヘッダファイルは,kernel.hからインクルードされる.他のファイル
    60  *  から直接インクルードすることはない.このファイルをインクルードする
    61  *  前に,t_stddef.hがインクルードされるので,それに依存してもよい.
     44 *  このヘッダファイルは,kernel.hからインクルードされる.他のファイル
     45 *  から直接インクルードすることはない.このファイルをインクルードする
     46 *  前に,t_stddef.hがインクルードされるので,それに依存してもよい.
    6247 */
    6348
     
    6651
    6752/*
    68  *  割込み優å
    69 ˆåº¦ã®ç¯„囲
     53 *  割込み優先度の範囲
    7054 */
    71 #define TMIN_INTPRI             (-31)           /* 割込み優å
    72 ˆåº¦ã®æœ€å°å€¤ï¼ˆæœ€é«˜å€¤ï¼‰*/
    73 #define TMAX_INTPRI             (-1)            /* 割込み優å
    74 ˆåº¦ã®æœ€å¤§å€¤ï¼ˆæœ€ä½Žå€¤ï¼‰*/
     55#define TMIN_INTPRI             (-31)           /* 割込み優先度の最小値(最高値)*/
     56#define TMAX_INTPRI             (-1)            /* 割込み優先度の最大値(最低値)*/
    7557
    7658/*
    77  *  ターゲット定義の割込み要求ライン属性
     59 *  ターゲット定義の割込み要求ライン属性
    7860 */
    79 #define TA_NEGEDGE              0x04U           /* ネガティブエッジトリガ */
    80 #define TA_POSEDGE              0x08U           /* ポジティブエッジトリガ */
    81 #define TA_BOTHEDGE             0x0cU           /* 両エッジトリガ */
     61#define TA_NEGEDGE              0x04U           /* ネガティブエッジトリガ */
     62#define TA_POSEDGE              0x08U           /* ポジティブエッジトリガ */
     63#define TA_BOTHEDGE             0x0cU           /* 両エッジトリガ */
    8264
    8365/*
    84  *  サポートできる機能の定義
     66 *  サポートできる機能の定義
    8567 *
    86  *  ena_int/dis_intとオーバランハンドラをサポートすることができる.
     68 *  ena_int/dis_intとオーバランハンドラをサポートすることができる.
    8769 */
    8870#define TOPPERS_TARGET_SUPPORT_ENA_INT          /* ena_int */
     
    9173
    9274/*
    93  *  高分解能タイマのタイマ周期
     75 *  高分解能タイマのタイマ周期
    9476 *
    95  *  2^32 / 33.33…を丸めた値とする.
     77 *  2^32 / 33.33…を丸めた値とする.
    9678 */
    9779#define TCYC_HRTCNT             128849019U
    9880
    9981/*
    100  *  高分解能タイマのカウント値の進みå¹
    101 
     82 *  高分解能タイマのカウント値の進み幅
    10283 */
    10384#define TSTEP_HRTCNT    1U
    10485
    10586/*
    106  *  オーバランハンドラの残りプロセッサ時間に指定できる最大値
     87 *  オーバランハンドラの残りプロセッサ時間に指定できる最大値
    10788 *
    108  *  この値をOSタイマへの設定値に変換してタイマに設定した後,タイマの現
    109  *  在値を読み出してμ秒単位に変換できる値としている.タイマの現在値を
    110  *  μ秒単位に変換する時に34を加えるため,以下の条件を満たす最大の値と
    111  *  する.
     89 *  この値をOSタイマへの設定値に変換してタイマに設定した後,タイマの現
     90 *  在値を読み出してμ秒単位に変換できる値としている.タイマの現在値を
     91 *  μ秒単位に変換する時に34を加えるため,以下の条件を満たす最大の値と
     92 *  する.
    11293 *              (TMAX_OVRTIM * 33 + TMAX_OVRTIM / 3 + 1) + 34 < 2^32
    11394 */
     
    11596
    11697/*
    117  *  コアでå
    118 ±é€šãªå®šç¾©
     98 *  コアで共通な定義
    11999 */
    120100#include "core_kernel.h"
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    11# -*- coding: utf-8 -*-
    22#
    3 #               ãƒ‘ス2の生成スクリプトのチップ依存部(RZ/A1用)
     3#               パス2の生成スクリプトのチップ依存部(RZ/A1用)
    44#
    55
    66#
    7 ä½¿ç”¨ã§ãã‚‹å‰²è¾¼ã¿ç•ªå·ã¨ãã‚Œã«å¯¾å¿œã™ã‚‹å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ç•ªå·
     7使用できる割込み番号とそれに対応する割込みハンドラ番号
    88#
    99if $TOPPERS_RZA1H
     
    1515
    1616#
    17 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆå®šç¾©ã®å‰²è¾¼ã¿è¦æ±‚ライン属性
     17ターゲット定義の割込み要求ライン属性
    1818#
    1919$TARGET_INTATR = $TA_NEGEDGE|$TA_POSEDGE|$TA_BOTHEDGE
    2020
    2121#
    22 ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—トのコア依存部
     22生成スクリプトのコア依存部
    2323#
    2424IncludeTrb("core_kernel.trb")
    2525
    2626#
    27 å‰²è¾¼ã¿è¦æ±‚ライン属性に関するターゲット依存のエラーチェック
     27割込み要求ライン属性に関するターゲット依存のエラーチェック
    2828#
    2929$cfgData[:CFG_INT].each do |key, params|
    3030  if $INTNO_IRQ0 <= key && key <= $INTNO_IRQ7
    31     # IRQ割込みの場合
    32     #(TA_EDGEがセットされている場合)
     31    # IRQ割込みの場合
     32    #(TA_EDGEがセットされている場合)
    3333    if (params[:intatr] & $TA_EDGE) != 0
    3434      error_illegal_sym("E_RSATR", params, :intatr, :intno)
    3535    end
    3636  else
    37     # その他の割込みの場合
    38     #(TA_NEGEDGE,TA_POSEDGE,TARGET_BOTHEDGEがセットされている場合)
     37    # その他の割込みの場合
     38    #(TA_NEGEDGE,TA_POSEDGE,TARGET_BOTHEDGEがセットされている場合)
    3939    if (params[:intatr] & $TARGET_INTATR) != 0
    4040      error_illegal_sym("E_RSATR", params, :intatr, :intno)
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
    47  *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     11 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20 *      の無保証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23 *      と.
     24 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     26 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27 *        報告すること.
     28 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32 *      免責すること.
     33 *
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              カーネルのチップ依存部(RZ/A1用)
     44 *              カーネルのチップ依存部(RZ/A1用)
    6045 */
    6146
     
    6449
    6550/*
    66  *  チップ依存の初期化
     51 *  チップ依存の初期化
    6752 */
    6853void
     
    7055{
    7156        /*
    72          *  キャッシュをディスエーブル
     57         *  キャッシュをディスエーブル
    7358         */
    7459        arm_disable_cache();
    7560
    7661        /*
    77          *  コア依存の初期化
     62         *  コア依存の初期化
    7863         */
    7964        core_initialize();
    8065
    8166        /*
    82          *  キャッシュをイネーブル
     67         *  キャッシュをイネーブル
    8368         */
    8469        arm_enable_cache();
    8570
    8671        /*
    87          *  GICのディストリビュータの初期化
     72         *  GICのディストリビュータの初期化
    8873         */
    8974        gicd_initialize();
    9075
    9176        /*
    92          *  GICのCPUインタフェースの初期化
     77         *  GICのCPUインタフェースの初期化
    9378         */
    9479        gicc_initialize();
    9580
    9681        /*
    97          *  分岐予測の無効化とイネーブル
     82         *  分岐予測の無効化とイネーブル
    9883         */
    9984        arm_invalidate_bp();
     
    10287
    10388/*
    104  *  チップ依存部の終了処理
     89 *  チップ依存部の終了処理
    10590 */
    10691void
     
    11196
    11297        /*
    113          *  software_term_hookへのポインタを,一旦volatile指定のあるfpに代
    114          *  å
    115 ¥ã—てから使うのは,0との比較が最適化で削除されないようにするた
    116          *  めである.
     98         *  software_term_hookへのポインタを,一旦volatile指定のあるfpに代
     99         *  入してから使うのは,0との比較が最適化で削除されないようにするた
     100         *  めである.
    117101         */
    118102        if (fp != 0) {
     
    121105
    122106        /*
    123          *  GICのCPUインタフェースの終了処理
     107         *  GICのCPUインタフェースの終了処理
    124108         */
    125109        gicc_terminate();
    126110
    127111        /*
    128          *  GICのディストリビュータの終了処理
     112         *  GICのディストリビュータの終了処理
    129113         */
    130114        gicd_terminate();
    131115
    132116        /*
    133          *  コア依存の終了処理
     117         *  コア依存の終了処理
    134118         */
    135119        core_terminate();
     
    137121
    138122/*
    139  *  割込み要求ラインの属性の設定
    140  *
    141  *  ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ
    142  *  クしている.
     123 *  割込み要求ラインの属性の設定
     124 *
     125 *  ASPカーネルでの利用を想定して,パラメータエラーはアサーションでチェッ
     126 *  クしている.
    143127 */
    144128Inline void
     
    149133
    150134        /*
    151          *  割込みを禁止
     135         *  割込みを禁止
    152136         *
    153          *  割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割
    154          *  込み優å
    155 ˆåº¦ã®è¨­å®šã‚’行うのは危険なため,割込み属性にかかわらず,
    156          *  一旦マスクする.
     137         *  割込みを受け付けたまま,レベルトリガ/エッジトリガの設定や,割
     138         *  込み優先度の設定を行うのは危険なため,割込み属性にかかわらず,
     139         *  一旦マスクする.
    157140         */
    158141        disable_int(intno);
    159142
    160143        /*
    161          *  割込みをコンフィギュレーション
     144         *  割込みをコンフィギュレーション
    162145         */
    163146#ifdef TOPPERS_SAFEG_SECURE
     
    191174
    192175        /*
    193          *  割込み優å
    194 ˆåº¦ã¨ã‚¿ãƒ¼ã‚²ãƒƒãƒˆãƒ—ロセッサを設定
     176         *  割込み優先度とターゲットプロセッサを設定
    195177         */
    196178        gicd_set_priority(intno, INT_IPM(intpri));
     
    198180
    199181        /*
    200          * 割込みを許可
     182         * 割込みを許可
    201183         */
    202184        if ((intatr & TA_ENAINT) != 0U) {
     
    206188
    207189/*
    208  *  割込み管理機能の初期化
     190 *  割込み管理機能の初期化
    209191 */
    210192void
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     11 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20 *      の無保証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23 *      と.
     24 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     26 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27 *        報告すること.
     28 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              kernel_impl.hのチップ依存部(RZ/A1用)
     44 *              kernel_impl.hのチップ依存部(RZ/A1用)
    6045 *
    61  *  このヘッダファイルは,target_kernel_impl.h(または,そこからインク
    62  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    63  *  直接インクルードしてはならない.
     46 *  このヘッダファイルは,target_kernel_impl.h(または,そこからインク
     47 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     48 *  直接インクルードしてはならない.
    6449 */
    6550
     
    6853
    6954/*
    70  *  RZ/A1のハードウェア資源の定義
     55 *  RZ/A1のハードウェア資源の定義
    7156 */
    7257#include "rza1.h"
    7358
    7459/*
    75  *  MMUの使用に関する設定
     60 *  MMUの使用に関する設定
    7661 */
    7762#define USE_ARM_MMU
     
    7964
    8065/*
    81  *  GICのディストリビュータの割込みコンフィギュレーションレジスタに設定
    82  *  する値に関する定義
     66 *  GICのディストリビュータの割込みコンフィギュレーションレジスタに設定
     67 *  する値に関する定義
    8368 */
    8469#define GIC_ARM11MPCORE
    8570
    8671/*
    87  *  GIC依存部の割込み管理機能の初期化は使用しない.
     72 *  GIC依存部の割込み管理機能の初期化は使用しない.
    8873 */
    8974#define OMIT_GIC_INITIALIZE_INTERRUPT
    9075
    9176/*
    92  *  GICに関する定義,コアでå
    93 ±é€šãªå®šç¾©
     77 *  GICに関する定義,コアで共通な定義
    9478 *
    95  *  core_kernel_impl.hは,gic_kernel_impl.hからインクルードされる.
     79 *  core_kernel_impl.hは,gic_kernel_impl.hからインクルードされる.
    9680 */
    9781#include "gic_kernel_impl.h"
     
    10084
    10185/*
    102  *  チップ依存の初期化
     86 *  チップ依存の初期化
    10387 */
    10488extern void chip_initialize(void);
    10589
    10690/*
    107  *  チップ依存の終了処理
     91 *  チップ依存の終了処理
    10892 */
    10993extern void chip_terminate(void);
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_rename.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_stddef.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    4632 *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              t_stddef.hのチップ依存部(RZ/A1用)
     43 *              t_stddef.hのチップ依存部(RZ/A1用)
    5944 *
    60  *  このヘッダファイルは,target_stddef.h(または,そこからインクルード
    61  *  されるファイル)のみからインクルードされる.他のファイルから直接イ
    62  *  ンクルードしてはならない.
     45 *  このヘッダファイルは,target_stddef.h(または,そこからインクルード
     46 *  されるファイル)のみからインクルードされる.他のファイルから直接イ
     47 *  ンクルードしてはならない.
    6348 */
    6449
     
    6752
    6853/*
    69  *  ターゲットを識別するためのマクロの定義
     54 *  ターゲットを識別するためのマクロの定義
    7055 */
    71 #define TOPPERS_RZA1                                    /* チップ略称 */
     56#define TOPPERS_RZA1                                    /* チップ略称 */
    7257
    7358/*
    74  *  チップを限定するマクロが定義されているかのチェック
     59 *  チップを限定するマクロが定義されているかのチェック
    7560 */
    7661#if !defined(TOPPERS_RZA1H) && !defined(TOPPERS_RZA1L)
     
    7964
    8065/*
    81  *  コアでå
    82 ±é€šãªå®šç¾©
     66 *  コアで共通な定義
    8367 */
    8468#include "core_stddef.h"
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r279 r321  
    77 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
    45  *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
     31 *
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  $Id$
     
    5540
    5641/*
    57  *              タイマドライバ(RZ/A1 OSタイマ用)
     42 *              タイマドライバ(RZ/A1 OSタイマ用)
    5843 *
    59  *  RZ/A1は2チャンネルのOSタイマを持つが,そのå†
    60 ã®1つを用いて高分解能タ
    61  *  イマを,もう1つを用いてオーバランタイマを実現する.
     44 *  RZ/A1は2チャンネルのOSタイマを持つが,その内の1つを用いて高分解能タ
     45 *  イマを,もう1つを用いてオーバランタイマを実現する.
    6246 */
    6347
     
    7256
    7357/*
    74  *  タイマの起動処理
     58 *  タイマの起動処理
    7559 */
    7660void
     
    7862{
    7963        /*
    80          *  OSタイマをフリーランニングコンペアモードに設定する.
     64         *  OSタイマをフリーランニングコンペアモードに設定する.
    8165         */
    8266        sil_wrb_mem(OSTM_CTL(OSTM0_BASE), OSTM_CTL_FRCMP);
    8367
    8468        /*
    85          *  OSタイマの設定値を最大値にしておく.
     69         *  OSタイマの設定値を最大値にしておく.
    8670         */
    8771        sil_wrw_mem(OSTM_CMP(OSTM0_BASE), 0xffffffff);
    8872
    8973        /*
    90          *  OSタイマを動作開始する.
     74         *  OSタイマを動作開始する.
    9175         */
    9276        sil_wrb_mem(OSTM_TS(OSTM0_BASE), OSTM_TS_START);
    9377
    9478        /*
    95          *  タイマ割込み要求をクリアする.
     79         *  タイマ割込み要求をクリアする.
    9680         */
    9781        clear_int(INTNO_OSTM0);
     
    9983
    10084/*
    101  *  タイマの停止処理
     85 *  タイマの停止処理
    10286 */
    10387void
     
    10589{
    10690        /*
    107          *  OSタイマを停止する.
     91         *  OSタイマを停止する.
    10892         */
    10993        sil_wrb_mem(OSTM_TT(OSTM0_BASE), OSTM_TT_STOP);
    11094
    11195        /*
    112          *  タイマ割込み要求をクリアする.
     96         *  タイマ割込み要求をクリアする.
    11397         */
    11498        clear_int(INTNO_OSTM0);
     
    116100
    117101/*
    118  *  高分解能タイマへの割込みタイミングの設定
     102 *  高分解能タイマへの割込みタイミングの設定
    119103 */
    120104void
     
    125109
    126110        /*
    127          *  現在のカウント値を読み,hrtcnt後に割込みが発生するように設定する.
     111         *  現在のカウント値を読み,hrtcnt後に割込みが発生するように設定する.
    128112         */
    129113        current = sil_rew_mem(OSTM_CNT(OSTM0_BASE));
     
    131115
    132116        /*
    133          *  上で現在のカウント値を読んで以降に,cnt以上カウントアップしてい
    134          *  た場合には,割込みを発生させる.
     117         *  上で現在のカウント値を読んで以降に,cnt以上カウントアップしてい
     118         *  た場合には,割込みを発生させる.
    135119         */
    136120        if (sil_rew_mem(OSTM_CNT(OSTM0_BASE)) - current >= cnt) {
     
    140124
    141125/*
    142  *  高分解能タイマ割込みの要求
     126 *  高分解能タイマ割込みの要求
    143127 */
    144128void
     
    149133
    150134/*
    151  *  タイマ割込みハンドラ
     135 *  タイマ割込みハンドラ
    152136 */
    153137void
     
    155139{
    156140        /*
    157          *  高分解能タイマ割込みを処理する.
     141         *  高分解能タイマ割込みを処理する.
    158142         */
    159143        signal_time();
    160144}
    161145/*
    162  *  オーバランタイマドライバ
     146 *  オーバランタイマドライバ
    163147 */
    164148#ifdef TOPPERS_SUPPORT_OVRHDR
    165149
    166150/*
    167  *  オーバランタイマの初期化処理
     151 *  オーバランタイマの初期化処理
    168152 */
    169153void
     
    171155{
    172156        /*
    173          *  OSタイマをインターバルタイマモードに設定する.
     157         *  OSタイマをインターバルタイマモードに設定する.
    174158         */
    175159        sil_wrb_mem(OSTM_CTL(OSTM1_BASE), OSTM_CTL_INTERVAL);
    176160
    177161        /*
    178          *  オーバランタイマ割込み要求をクリアする.
     162         *  オーバランタイマ割込み要求をクリアする.
    179163         */
    180164        clear_int(INTNO_OSTM1);
     
    182166
    183167/*
    184  *  オーバランタイマの停止処理
     168 *  オーバランタイマの停止処理
    185169 */
    186170void
     
    188172{
    189173        /*
    190          *  OSタイマを停止する.
     174         *  OSタイマを停止する.
    191175         */
    192176        sil_wrb_mem(OSTM_TT(OSTM1_BASE), OSTM_TT_STOP);
    193177
    194178        /*
    195          *  オーバランタイマ割込み要求をクリアする.
     179         *  オーバランタイマ割込み要求をクリアする.
    196180         */
    197181        clear_int(INTNO_OSTM1);
     
    199183
    200184/*
    201  *  オーバランタイマの停止
     185 *  オーバランタイマの停止
    202186 */
    203187PRCTIM
     
    207191
    208192        /*
    209          *  OSタイマを停止する.
     193         *  OSタイマを停止する.
    210194         */
    211195        sil_wrb_mem(OSTM_TT(OSTM1_BASE), OSTM_TT_STOP);
     
    213197        if (probe_int(INTNO_OSTM1)) {
    214198                /*
    215                  *  割込み要求が発生している場合
     199                 *  割込み要求が発生している場合
    216200                 */
    217201                clear_int(INTNO_OSTM1);
     
    225209
    226210/*
    227  *  オーバランタイマの現在値の読出し
     211 *  オーバランタイマの現在値の読出し
    228212 */
    229213PRCTIM
     
    234218        if (probe_int(INTNO_OSTM1)) {
    235219                /*
    236                  *  割込み要求が発生している場合
     220                 *  割込み要求が発生している場合
    237221                 */
    238222                return(0U);
     
    245229
    246230/*
    247  *  オーバランタイマ割込みハンドラ
     231 *  オーバランタイマ割込みハンドラ
    248232 *
    249  *  このルーチンに来るまでに,target_ovrtimer_stopが呼ばれているため,
    250  *  OSタイマを停止するå¿
    251 è¦ã¯ãªã„.
     233 *  このルーチンに来るまでに,target_ovrtimer_stopが呼ばれているため,
     234 *  OSタイマを停止する必要はない.
    252235 */
    253236void
    254237target_ovrtimer_handler(void)
    255238{
    256         call_ovrhdr();                                  /* オーバランハンドラの起動処理 */
     239        call_ovrhdr();                                  /* オーバランハンドラの起動処理 */
    257240}
    258241
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;charset=UTF-8
    r270 r321  
    11/*
    2  *              タイマドライバのコンフィギュレーションファイル
     2 *              タイマドライバのコンフィギュレーションファイル
    33 *
    44 *  $Id$
     
    66
    77/*
    8  *  高分解能タイマドライバ
     8 *  高分解能タイマドライバ
    99 */
    1010ATT_INI({ TA_NULL, 0, _kernel_target_hrt_initialize });
     
    1414
    1515/*
    16  *  オーバランタイマドライバ
     16 *  オーバランタイマドライバ
    1717 */
    1818#ifdef TOPPERS_SUPPORT_OVRHDR
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
    47  *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     11 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20 *      の無保証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23 *      と.
     24 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     26 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27 *        報告すること.
     28 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32 *      免責すること.
     33 *
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              タイマドライバ(RZ/A1 OSタイマ用)
     44 *              タイマドライバ(RZ/A1 OSタイマ用)
    6045 *
    61  *  RZ/A1は2チャンネルのOSタイマを持つが,そのå†
    62 ã®1つを用いて高分解能タ
    63  *  イマを,もう1つを用いてオーバランタイマを実現する.
     46 *  RZ/A1は2チャンネルのOSタイマを持つが,その内の1つを用いて高分解能タ
     47 *  イマを,もう1つを用いてオーバランタイマを実現する.
    6448 */
    6549
     
    7155
    7256/*
    73  *  タイマ割込みハンドラ登録のための定数
    74  */
    75 #define INHNO_TIMER             INTNO_OSTM0                     /* 割込みハンドラ番号 */
    76 #define INTNO_TIMER             INTNO_OSTM0                     /* 割込み番号 */
    77 #define INTPRI_TIMER    (TMAX_INTPRI - 1)       /* 割込み優å
    78 ˆåº¦ */
    79 #define INTATR_TIMER    TA_EDGE                         /* 割込み属性 */
    80 
    81 /*
    82  *  オーバランタイマ割込みハンドラ登録のための定数
     57 *  タイマ割込みハンドラ登録のための定数
     58 */
     59#define INHNO_TIMER             INTNO_OSTM0                     /* 割込みハンドラ番号 */
     60#define INTNO_TIMER             INTNO_OSTM0                     /* 割込み番号 */
     61#define INTPRI_TIMER    (TMAX_INTPRI - 1)       /* 割込み優先度 */
     62#define INTATR_TIMER    TA_EDGE                         /* 割込み属性 */
     63
     64/*
     65 *  オーバランタイマ割込みハンドラ登録のための定数
    8366 */
    8467#ifdef TOPPERS_SUPPORT_OVRHDR
    85 #define INHNO_OVRTIMER          INTNO_OSTM1                     /* 割込みハンドラ番号 */
    86 #define INTNO_OVRTIMER          INTNO_OSTM1                     /* 割込み番号 */
    87 #define INTPRI_OVRTIMER         TMAX_INTPRI                     /* 割込み優å
    88 ˆåº¦ */
    89 #define INTATR_OVRTIMER         TA_EDGE                         /* 割込み属性 */
     68#define INHNO_OVRTIMER          INTNO_OSTM1                     /* 割込みハンドラ番号 */
     69#define INTNO_OVRTIMER          INTNO_OSTM1                     /* 割込み番号 */
     70#define INTPRI_OVRTIMER         TMAX_INTPRI                     /* 割込み優先度 */
     71#define INTATR_OVRTIMER         TA_EDGE                         /* 割込み属性 */
    9072#endif /* TOPPERS_SUPPORT_OVRHDR */
    9173
    9274/*
    93  *  OSタイマの周波数の想定値のチェック
     75 *  OSタイマの周波数の想定値のチェック
    9476 *
    95  *  現在の実è£
    96 ã¯ï¼Œã‚¯ãƒ­ãƒƒã‚¯ãŒ33.33…MHzの場合のみに対応している.
     77 *  現在の実装は,クロックが33.33…MHzの場合のみに対応している.
    9778 */
    9879#if OSTM_CLK != 33333333UL
     
    10182
    10283/*
    103  *  OSタイマレジスタの番地の定義
     84 *  OSタイマレジスタの番地の定義
    10485 */
    10586#define OSTM_CMP(base)          ((uint32_t *)(base + 0x00U))
     
    11192
    11293/*
    113  *  OSタイマ カウント開始トリガレジスタの設定値の定義
     94 *  OSタイマ カウント開始トリガレジスタの設定値の定義
    11495 */
    11596#define OSTM_TS_START           0x01U
    11697
    11798/*
    118  *  OSタイマ カウント停止トリガレジスタの設定値の定義
     99 *  OSタイマ カウント停止トリガレジスタの設定値の定義
    119100 */
    120101#define OSTM_TT_STOP            0x01U
    121102
    122103/*
    123  *  OSタイマ 制御レジスタの設定値の定義
    124  */
    125 #define OSTM_CTL_INTERVAL       0x00U           /* インターバルタイマモード */
    126 #define OSTM_CTL_FRCMP          0x02U           /* フリーランニングコンペアモード */
     104 *  OSタイマ 制御レジスタの設定値の定義
     105 */
     106#define OSTM_CTL_INTERVAL       0x00U           /* インターバルタイマモード */
     107#define OSTM_CTL_FRCMP          0x02U           /* フリーランニングコンペアモード */
    127108
    128109#ifndef TOPPERS_MACRO_ONLY
    129110
    130111/*
    131  *  高分解能タイマの起動処理
     112 *  高分解能タイマの起動処理
    132113 */
    133114extern void     target_hrt_initialize(intptr_t exinf);
    134115
    135116/*
    136  *  高分解能タイマの停止処理
     117 *  高分解能タイマの停止処理
    137118 */
    138119extern void     target_hrt_terminate(intptr_t exinf);
    139120
    140121/*
    141  *  高分解能タイマの現在のカウント値の読出し
     122 *  高分解能タイマの現在のカウント値の読出し
    142123 */
    143124Inline HRTCNT
     
    148129        cnt = sil_rew_mem(OSTM_CNT(OSTM0_BASE));
    149130
    150         /* μ秒単位に変換(クロックが33.33…MHzである前提)*/
     131        /* μ秒単位に変換(クロックが33.33…MHzである前提)*/
    151132        cnt1 = cnt / 1000000000;
    152133        return((HRTCNT)((cnt - cnt1 * 999999999) * 3 / 100 + cnt1 * 30000000));
     
    154135
    155136/*
    156  *  高分解能タイマへの割込みタイミングの設定
     137 *  高分解能タイマへの割込みタイミングの設定
    157138 *
    158  *  高分解能タイマを,hrtcntで指定した値カウントアップしたら割込みを発
    159  *  生させるように設定する.
     139 *  高分解能タイマを,hrtcntで指定した値カウントアップしたら割込みを発
     140 *  生させるように設定する.
    160141 */
    161142extern void target_hrt_set_event(HRTCNT hrtcnt);
    162143
    163144/*
    164  *  高分解能タイマ割込みの要求
     145 *  高分解能タイマ割込みの要求
    165146 */
    166147extern  void target_hrt_raise_event(void);
    167148
    168149/*
    169  *  割込みタイミングに指定する最大値
     150 *  割込みタイミングに指定する最大値
    170151 */
    171152#define HRTCNT_BOUND    100000002U
    172153
    173154/*
    174  *  高分解能タイマ割込みハンドラ
     155 *  高分解能タイマ割込みハンドラ
    175156 */
    176157extern void     target_hrt_handler(void);
     
    179160
    180161/*
    181  *  オーバランタイマの初期化処理
     162 *  オーバランタイマの初期化処理
    182163 */
    183164extern void target_ovrtimer_initialize(intptr_t exinf);
    184165
    185166/*
    186  *  オーバランタイマの停止処理
     167 *  オーバランタイマの停止処理
    187168 */
    188169extern void target_ovrtimer_terminate(intptr_t exinf);
    189170
    190171/*
    191  *  オーバランタイマの動作開始
     172 *  オーバランタイマの動作開始
    192173 */
    193174Inline void
     
    201182
    202183/*
    203  *  オーバランタイマの停止
     184 *  オーバランタイマの停止
    204185 */
    205186extern PRCTIM target_ovrtimer_stop(void);
    206187
    207188/*
    208  *  オーバランタイマの現在値の読出し
     189 *  オーバランタイマの現在値の読出し
    209190 */
    210191extern PRCTIM target_ovrtimer_get_current(void);
    211192
    212193/*
    213  *  オーバランタイマ割込みハンドラ
     194 *  オーバランタイマ割込みハンドラ
    214195 */
    215196extern void     target_ovrtimer_handler(void);
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_unrename.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/rza1.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    66 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
    44  *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     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 *  の責任を負わない.
    5136 *
    5237 *  $Id$
     
    5439
    5540/*
    56  *              RZ/A1のハードウェア資源の定義
     41 *              RZ/A1のハードウェア資源の定義
    5742 */
    5843
     
    6348
    6449/*
    65  *  型キャストを行うマクロの定義
     50 *  型キャストを行うマクロの定義
    6651 */
    6752#ifndef CAST
     
    7055
    7156/*
    72  *  メモリマップの定義(MMUに設定するためにå¿
    73 è¦ï¼‰
    74  */
    75 #define SPI_ADDR                0x18000000              /* シリアルフラッシュメモリ */
     57 *  メモリマップの定義(MMUに設定するために必要)
     58 */
     59#define SPI_ADDR                0x18000000              /* シリアルフラッシュメモリ */
    7660#define SPI_SIZE                0x08000000              /* 128MB */
    7761
    78 #define SRAM_ADDR               0x20000000              /* å†
    79ʏӵRAM */
     62#define SRAM_ADDR               0x20000000              /* 内蔵RAM */
    8063#ifdef TOPPERS_RZA1H
    8164#define SRAM_SIZE               0x00a00000              /* 10MB */
     
    8467#endif /* TOPPERS_RZA1H */
    8568
    86 #define IO1_ADDR                0x3fe00000              /* I/O領域(予約領域を含む)*/
     69#define IO1_ADDR                0x3fe00000              /* I/O領域(予約領域を含む)*/
    8770#define IO1_SIZE                0x00200000              /* 2MB */
    88 #define IO2_ADDR                0xe8000000              /* I/O領域(予約領域を含む)*/
     71#define IO2_ADDR                0xe8000000              /* I/O領域(予約領域を含む)*/
    8972#define IO2_SIZE                0x18000000              /* 384MB */
    9073
    9174/*
    92  *  各クロック周波数の定義
     75 *  各クロック周波数の定義
    9376 */
    9477#define OSTM_CLK                RZA1_CLK_P0
     
    9679
    9780/*
    98  *  MPCore Private Memory Regionのå
    99 ˆé ­ç•ªåœ°
     81 *  MPCore Private Memory Regionの先頭番地
    10082 */
    10183#define MPCORE_PMR_BASE         0xf0000000
    10284
    10385/*
    104  *  GIC依存部を使用するための定義
     86 *  GIC依存部を使用するための定義
    10587 */
    10688#ifndef GIC_TNUM_INTNO
     
    11395
    11496/*
    115  *  割込みコントローラのベースアドレスとレジスタ(RZ/A1固有のもの)
     97 *  割込みコントローラのベースアドレスとレジスタ(RZ/A1固有のもの)
    11698 */
    11799#define GICC_BASE                       0xe8202000
     
    123105
    124106/*
    125  *  OSタイマのベースアドレス
     107 *  OSタイマのベースアドレス
    126108 */
    127109#define OSTM0_BASE                      0xfcfec000
     
    129111
    130112/*
    131  *  L2キャッシュコントローラ(PL310)のベースアドレス
     113 *  L2キャッシュコントローラ(PL310)のベースアドレス
    132114 */
    133115#define PL310_BASE                      0x3ffff000
    134116
    135117/*
    136  *  クロックパルスジェネレータのベースアドレスとレジスタ
     118 *  クロックパルスジェネレータのベースアドレスとレジスタ
    137119 */
    138120#define RZA1_CPG_BASE           0xfcfe0000
     
    141123
    142124/*
    143  *  バスステートコントローラのベースアドレスとレジスタ
     125 *  バスステートコントローラのベースアドレスとレジスタ
    144126 */
    145127#define RZA1_BSC_BASE           0x3FFFC000
     
    163145
    164146/*
    165  *  シリアルコミュニケーションインタフェースのベースアドレス
     147 *  シリアルコミュニケーションインタフェースのベースアドレス
    166148 */
    167149#define SCIF0_BASE                      0xe8007000
     
    177159
    178160/*
    179  *  低消費電力モード関連のベースアドレスとレジスタ
     161 *  低消費電力モード関連のベースアドレスとレジスタ
    180162 */
    181163#define RZA1_LOWPWR_BASE        0xfcfe0000
     
    199181
    200182/*
    201  *  汎用å
    202 ¥å‡ºåŠ›ãƒãƒ¼ãƒˆã®ãƒ™ãƒ¼ã‚¹ã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ãƒ¬ã‚¸ã‚¹ã‚¿
     183 *  汎用入出力ポートのベースアドレスとレジスタ
    203184 */
    204185#define RZA1_PORT_BASE          0xfcfe3000
     
    216197
    217198/*
    218  *      割込み番号
     199 *      割込み番号
    219200 */
    220201#define INTNO_IRQ0                      32              /* IRQ0 */
     
    226207#define INTNO_IRQ6                      38              /* IRQ6 */
    227208#define INTNO_IRQ7                      39              /* IRQ7 */
    228 #define INTNO_OSTM0                     134             /* OSタイマ0 */
    229 #define INTNO_OSTM1                     135             /* OSタイマ1 */
    230 #define INTNO_SCIF0_BRI         221             /* SCIF0 ブレーク割込み */
    231 #define INTNO_SCIF0_ERI         222             /* SCIF0 エラー割込み */
    232 #define INTNO_SCIF0_RXI         223             /* SCIF0 受信割込み */
    233 #define INTNO_SCIF0_TXI         224             /* SCIF0 送信割込み */
    234 #define INTNO_SCIF1_BRI         225             /* SCIF1 ブレーク割込み */
    235 #define INTNO_SCIF1_ERI         226             /* SCIF1 エラー割込み */
    236 #define INTNO_SCIF1_RXI         227             /* SCIF1 受信割込み */
    237 #define INTNO_SCIF1_TXI         228             /* SCIF1 送信割込み */
    238 #define INTNO_SCIF2_BRI         229             /* SCIF2 ブレーク割込み */
    239 #define INTNO_SCIF2_ERI         230             /* SCIF2 エラー割込み */
    240 #define INTNO_SCIF2_RXI         231             /* SCIF2 受信割込み */
    241 #define INTNO_SCIF2_TXI         232             /* SCIF2 送信割込み */
    242 #define INTNO_SCIF3_BRI         233             /* SCIF3 ブレーク割込み */
    243 #define INTNO_SCIF3_ERI         234             /* SCIF3 エラー割込み */
    244 #define INTNO_SCIF3_RXI         235             /* SCIF3 受信割込み */
    245 #define INTNO_SCIF3_TXI         236             /* SCIF3 送信割込み */
    246 #define INTNO_SCIF4_BRI         237             /* SCIF4 ブレーク割込み */
    247 #define INTNO_SCIF4_ERI         238             /* SCIF4 エラー割込み */
    248 #define INTNO_SCIF4_RXI         239             /* SCIF4 受信割込み */
    249 #define INTNO_SCIF4_TXI         240             /* SCIF4 送信割込み */
    250 #ifdef TOPPERS_RZA1H
    251 #define INTNO_SCIF5_BRI         241             /* SCIF5 ブレーク割込み */
    252 #define INTNO_SCIF5_ERI         242             /* SCIF5 エラー割込み */
    253 #define INTNO_SCIF5_RXI         243             /* SCIF5 受信割込み */
    254 #define INTNO_SCIF5_TXI         244             /* SCIF5 送信割込み */
    255 #define INTNO_SCIF6_BRI         245             /* SCIF6 ブレーク割込み */
    256 #define INTNO_SCIF6_ERI         246             /* SCIF6 エラー割込み */
    257 #define INTNO_SCIF6_RXI         247             /* SCIF6 受信割込み */
    258 #define INTNO_SCIF6_TXI         248             /* SCIF6 送信割込み */
    259 #define INTNO_SCIF7_BRI         249             /* SCIF7 ブレーク割込み */
    260 #define INTNO_SCIF7_ERI         250             /* SCIF7 エラー割込み */
    261 #define INTNO_SCIF7_RXI         251             /* SCIF7 受信割込み */
    262 #define INTNO_SCIF7_TXI         252             /* SCIF7 送信割込み */
     209#define INTNO_OSTM0                     134             /* OSタイマ0 */
     210#define INTNO_OSTM1                     135             /* OSタイマ1 */
     211#define INTNO_SCIF0_BRI         221             /* SCIF0 ブレーク割込み */
     212#define INTNO_SCIF0_ERI         222             /* SCIF0 エラー割込み */
     213#define INTNO_SCIF0_RXI         223             /* SCIF0 受信割込み */
     214#define INTNO_SCIF0_TXI         224             /* SCIF0 送信割込み */
     215#define INTNO_SCIF1_BRI         225             /* SCIF1 ブレーク割込み */
     216#define INTNO_SCIF1_ERI         226             /* SCIF1 エラー割込み */
     217#define INTNO_SCIF1_RXI         227             /* SCIF1 受信割込み */
     218#define INTNO_SCIF1_TXI         228             /* SCIF1 送信割込み */
     219#define INTNO_SCIF2_BRI         229             /* SCIF2 ブレーク割込み */
     220#define INTNO_SCIF2_ERI         230             /* SCIF2 エラー割込み */
     221#define INTNO_SCIF2_RXI         231             /* SCIF2 受信割込み */
     222#define INTNO_SCIF2_TXI         232             /* SCIF2 送信割込み */
     223#define INTNO_SCIF3_BRI         233             /* SCIF3 ブレーク割込み */
     224#define INTNO_SCIF3_ERI         234             /* SCIF3 エラー割込み */
     225#define INTNO_SCIF3_RXI         235             /* SCIF3 受信割込み */
     226#define INTNO_SCIF3_TXI         236             /* SCIF3 送信割込み */
     227#define INTNO_SCIF4_BRI         237             /* SCIF4 ブレーク割込み */
     228#define INTNO_SCIF4_ERI         238             /* SCIF4 エラー割込み */
     229#define INTNO_SCIF4_RXI         239             /* SCIF4 受信割込み */
     230#define INTNO_SCIF4_TXI         240             /* SCIF4 送信割込み */
     231#ifdef TOPPERS_RZA1H
     232#define INTNO_SCIF5_BRI         241             /* SCIF5 ブレーク割込み */
     233#define INTNO_SCIF5_ERI         242             /* SCIF5 エラー割込み */
     234#define INTNO_SCIF5_RXI         243             /* SCIF5 受信割込み */
     235#define INTNO_SCIF5_TXI         244             /* SCIF5 送信割込み */
     236#define INTNO_SCIF6_BRI         245             /* SCIF6 ブレーク割込み */
     237#define INTNO_SCIF6_ERI         246             /* SCIF6 エラー割込み */
     238#define INTNO_SCIF6_RXI         247             /* SCIF6 受信割込み */
     239#define INTNO_SCIF6_TXI         248             /* SCIF6 送信割込み */
     240#define INTNO_SCIF7_BRI         249             /* SCIF7 ブレーク割込み */
     241#define INTNO_SCIF7_ERI         250             /* SCIF7 エラー割込み */
     242#define INTNO_SCIF7_RXI         251             /* SCIF7 受信割込み */
     243#define INTNO_SCIF7_TXI         252             /* SCIF7 送信割込み */
    263244#endif /* TOPPERS_RZA1H */
    264245
     
    266247
    267248/*
    268  *  IRQ割込み要求のクリア
     249 *  IRQ割込み要求のクリア
    269250 */
    270251Inline void
     
    279260
    280261/*
    281  *  汎用å
    282 ¥å‡ºåŠ›ãƒãƒ¼ãƒˆã®è¨­å®š
    283  *
    284  *  汎用å
    285 ¥å‡ºåŠ›ãƒãƒ¼ãƒˆã®åˆ¶å¾¡ãƒ¬ã‚¸ã‚¹ã‚¿ã®ç‰¹å®šã®ãƒ“ットを,セット(setが0でな
    286  *  い時)またはクリア(setが0の時)する.
     262 *  汎用入出力ポートの設定
     263 *
     264 *  汎用入出力ポートの制御レジスタの特定のビットを,セット(setが0でな
     265 *  い時)またはクリア(setが0の時)する.
    287266 */
    288267Inline void
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/scif.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     11 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20 *      の無保証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23 *      と.
     24 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     26 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27 *        報告すること.
     28 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              FIFOå†
    60 è”µã‚·ãƒªã‚¢ãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã«é–¢ã™ã‚‹å®šç¾©
     44 *              FIFO内蔵シリアルコミュニケーションインタフェースに関する定義
    6145 */
    6246
     
    6549
    6650/*
    67  *  SCIFレジスタの番地の定義
     51 *  SCIFレジスタの番地の定義
    6852 */
    6953#define SCIF_SCSMR(base)                ((uint16_t *)(base + 0x00U))
     
    8064
    8165/*
    82  *  シリアルモードレジスタ(SCIF_SCSMR)の設定値
     66 *  シリアルモードレジスタ(SCIF_SCSMR)の設定値
    8367 */
    84 #define SCIF_SCSMR_SYNC         0x0080U         /* クロック同期式モード */
    85 #define SCIF_SCSMR_7BIT         0x0040U         /* 7ビットデータ */
    86 #define SCIF_SCSMR_PARITY       0x0020U         /* パリティビットの付加 */
    87 #define SCIF_SCSMR_ODD          0x0010U         /* 奇数パリティ */
    88 #define SCIF_SCSMR_2STOP        0x0008U         /* 2ストッピビット */
    89 #define SCIF_SCSMR_CKS1         0x0000U         /* P1φクロック1 */
    90 #define SCIF_SCSMR_CKS4         0x0001U         /* P1φ/4クロック */
    91 #define SCIF_SCSMR_CKS16        0x0002U         /* P1φ/16クロック */
    92 #define SCIF_SCSMR_CKS64        0x0003U         /* P1φ/64クロック */
     68#define SCIF_SCSMR_SYNC         0x0080U         /* クロック同期式モード */
     69#define SCIF_SCSMR_7BIT         0x0040U         /* 7ビットデータ */
     70#define SCIF_SCSMR_PARITY       0x0020U         /* パリティビットの付加 */
     71#define SCIF_SCSMR_ODD          0x0010U         /* 奇数パリティ */
     72#define SCIF_SCSMR_2STOP        0x0008U         /* 2ストッピビット */
     73#define SCIF_SCSMR_CKS1         0x0000U         /* P1φクロック1 */
     74#define SCIF_SCSMR_CKS4         0x0001U         /* P1φ/4クロック */
     75#define SCIF_SCSMR_CKS16        0x0002U         /* P1φ/16クロック */
     76#define SCIF_SCSMR_CKS64        0x0003U         /* P1φ/64クロック */
    9377
    9478/*
    95  *  シリアルコントロールレジスタ(SCIF_SCSCR)の設定値
     79 *  シリアルコントロールレジスタ(SCIF_SCSCR)の設定値
    9680 */
    97 #define SCIF_SCSCR_TIE          0x0080U         /* 送信割込み許可 */
    98 #define SCIF_SCSCR_RIE          0x0040U         /* 受信割込み等許可 */
    99 #define SCIF_SCSCR_TE           0x0020U         /* 送信許可 */
    100 #define SCIF_SCSCR_RE           0x0010U         /* 受信許可 */
    101 #define SCIF_SCSCR_REIE         0x0008U         /* 受信エラー割込み等許可 */
    102 #define SCIF_SCSCR_INTCLK       0x0000U         /* å†
    103 éƒ¨ã‚¯ãƒ­ãƒƒã‚¯ï¼ŒCKS端子は無視 */
    104                                                                                 /*                (調歩同期式の場合) */
     81#define SCIF_SCSCR_TIE          0x0080U         /* 送信割込み許可 */
     82#define SCIF_SCSCR_RIE          0x0040U         /* 受信割込み等許可 */
     83#define SCIF_SCSCR_TE           0x0020U         /* 送信許可 */
     84#define SCIF_SCSCR_RE           0x0010U         /* 受信許可 */
     85#define SCIF_SCSCR_REIE         0x0008U         /* 受信エラー割込み等許可 */
     86#define SCIF_SCSCR_INTCLK       0x0000U         /* 内部クロック,CKS端子は無視 */
     87                                                                                /*                (調歩同期式の場合) */
    10588
    10689/*
    107  *  シリアルステータスレジスタ(SCIF_SCFSR)の参ç
    108 §å€¤
     90 *  シリアルステータスレジスタ(SCIF_SCFSR)の参照値
    10991 */
    110 #define SCIF_SCFSR_PER_MASK             0xf000U /* パリティエラー数抽出マスク */
    111 #define SCIF_SCFSR_PER_SHIFT    12              /* パリティエラー数抽出右シフト数 */
    112 #define SCIF_SCFSR_FER_MASK             0x0f00U /* フレーミングエラー数抽出マスク */
    113 #define SCIF_SCFSR_FER_SHIFT    8               /* フレーミングエラー数抽出右シフト数 */
    114 #define SCIF_SCFSR_ER           0x0080U         /* 受信エラー */
    115 #define SCIF_SCFSR_TEND         0x0040U         /* 送信完了 */
    116 #define SCIF_SCFSR_TDFE         0x0020U         /* 送信FIFOデータエンプティ */
    117 #define SCIF_SCFSR_BRK          0x0010U         /* ブレーク検出 */
    118 #define SCIF_SCFSR_FER          0x0008U         /* フレーミングエラー検出 */
    119 #define SCIF_SCFSR_PER          0x0004U         /* パリティエラー検出 */
    120 #define SCIF_SCFSR_RDF          0x0002U         /* 受信FIFOデータフル */
    121 #define SCIF_SCFSR_DR           0x0001U         /* 受信データレディ */
     92#define SCIF_SCFSR_PER_MASK             0xf000U /* パリティエラー数抽出マスク */
     93#define SCIF_SCFSR_PER_SHIFT    12              /* パリティエラー数抽出右シフト数 */
     94#define SCIF_SCFSR_FER_MASK             0x0f00U /* フレーミングエラー数抽出マスク */
     95#define SCIF_SCFSR_FER_SHIFT    8               /* フレーミングエラー数抽出右シフト数 */
     96#define SCIF_SCFSR_ER           0x0080U         /* 受信エラー */
     97#define SCIF_SCFSR_TEND         0x0040U         /* 送信完了 */
     98#define SCIF_SCFSR_TDFE         0x0020U         /* 送信FIFOデータエンプティ */
     99#define SCIF_SCFSR_BRK          0x0010U         /* ブレーク検出 */
     100#define SCIF_SCFSR_FER          0x0008U         /* フレーミングエラー検出 */
     101#define SCIF_SCFSR_PER          0x0004U         /* パリティエラー検出 */
     102#define SCIF_SCFSR_RDF          0x0002U         /* 受信FIFOデータフル */
     103#define SCIF_SCFSR_DR           0x0001U         /* 受信データレディ */
    122104
    123105/*
    124  *  FIFOコントロールレジスタ(SCIF_SCFCR)の設定値
     106 *  FIFOコントロールレジスタ(SCIF_SCFCR)の設定値
    125107 */
    126 #define SCIF_SCFCR_RSTRG_15     0x0000U         /* RTS#出力アクティブトリガ:15 */
    127 #define SCIF_SCFCR_RSTRG_1      0x0100U         /* RTS#出力アクティブトリガ:1 */
    128 #define SCIF_SCFCR_RSTRG_4      0x0200U         /* RTS#出力アクティブトリガ:4 */
    129 #define SCIF_SCFCR_RSTRG_6      0x0300U         /* RTS#出力アクティブトリガ:6 */
    130 #define SCIF_SCFCR_RSTRG_8      0x0400U         /* RTS#出力アクティブトリガ:8 */
    131 #define SCIF_SCFCR_RSTRG_10     0x0500U         /* RTS#出力アクティブトリガ:10 */
    132 #define SCIF_SCFCR_RSTRG_12     0x0600U         /* RTS#出力アクティブトリガ:12 */
    133 #define SCIF_SCFCR_RSTRG_14     0x0700U         /* RTS#出力アクティブトリガ:14 */
    134 #define SCIF_SCFCR_RTRG_1       0x0000U         /* 受信FIFOデータ数トリガ:1 */
    135 #define SCIF_SCFCR_RTRG_4       0x0040U         /* 受信FIFOデータ数トリガ:4 */
    136 #define SCIF_SCFCR_RTRG_8       0x0080U         /* 受信FIFOデータ数トリガ:8 */
    137 #define SCIF_SCFCR_RTRG_14      0x00C0U         /* 受信FIFOデータ数トリガ:14 */
    138 #define SCIF_SCFCR_TTRG_8       0x0000U         /* 送信FIFOデータ数トリガ:8 */
    139 #define SCIF_SCFCR_TTRG_4       0x0010U         /* 送信FIFOデータ数トリガ:4 */
    140 #define SCIF_SCFCR_TTRG_2       0x0020U         /* 送信FIFOデータ数トリガ:2 */
    141 #define SCIF_SCFCR_TTRG_0       0x0030U         /* 送信FIFOデータ数トリガ:0 */
    142 #define SCIF_SCFCR_MCE          0x0008U         /* CTS#,RTS#許可 */
    143 #define SCIF_SCFCR_TFRST        0x0004U         /* 送信FIFOデータレジスタリセット */
    144 #define SCIF_SCFCR_RFRST        0x0002U         /* 受信FIFOデータレジスタリセット */
    145 #define SCIF_SCFCR_LOOP         0x0001U         /* ループバックテスト */
     108#define SCIF_SCFCR_RSTRG_15     0x0000U         /* RTS#出力アクティブトリガ:15 */
     109#define SCIF_SCFCR_RSTRG_1      0x0100U         /* RTS#出力アクティブトリガ:1 */
     110#define SCIF_SCFCR_RSTRG_4      0x0200U         /* RTS#出力アクティブトリガ:4 */
     111#define SCIF_SCFCR_RSTRG_6      0x0300U         /* RTS#出力アクティブトリガ:6 */
     112#define SCIF_SCFCR_RSTRG_8      0x0400U         /* RTS#出力アクティブトリガ:8 */
     113#define SCIF_SCFCR_RSTRG_10     0x0500U         /* RTS#出力アクティブトリガ:10 */
     114#define SCIF_SCFCR_RSTRG_12     0x0600U         /* RTS#出力アクティブトリガ:12 */
     115#define SCIF_SCFCR_RSTRG_14     0x0700U         /* RTS#出力アクティブトリガ:14 */
     116#define SCIF_SCFCR_RTRG_1       0x0000U         /* 受信FIFOデータ数トリガ:1 */
     117#define SCIF_SCFCR_RTRG_4       0x0040U         /* 受信FIFOデータ数トリガ:4 */
     118#define SCIF_SCFCR_RTRG_8       0x0080U         /* 受信FIFOデータ数トリガ:8 */
     119#define SCIF_SCFCR_RTRG_14      0x00C0U         /* 受信FIFOデータ数トリガ:14 */
     120#define SCIF_SCFCR_TTRG_8       0x0000U         /* 送信FIFOデータ数トリガ:8 */
     121#define SCIF_SCFCR_TTRG_4       0x0010U         /* 送信FIFOデータ数トリガ:4 */
     122#define SCIF_SCFCR_TTRG_2       0x0020U         /* 送信FIFOデータ数トリガ:2 */
     123#define SCIF_SCFCR_TTRG_0       0x0030U         /* 送信FIFOデータ数トリガ:0 */
     124#define SCIF_SCFCR_MCE          0x0008U         /* CTS#,RTS#許可 */
     125#define SCIF_SCFCR_TFRST        0x0004U         /* 送信FIFOデータレジスタリセット */
     126#define SCIF_SCFCR_RFRST        0x0002U         /* 受信FIFOデータレジスタリセット */
     127#define SCIF_SCFCR_LOOP         0x0001U         /* ループバックテスト */
    146128
    147129/*
    148  *  FIFOデータカウントレジスタ(SCIF_SCFDR)の参ç
    149 §å€¤
     130 *  FIFOデータカウントレジスタ(SCIF_SCFDR)の参照値
    150131 */
    151 #define SCIF_SCFDR_T_MASK       0x1f00U         /* 未送信データ数抽出マスク */
    152 #define SCIF_SCFDR_T_SHIFT      8                       /* 未送信データ数抽出右シフト数 */
    153 #define SCIF_SCFDR_R_MASK       0x001fU         /* 受信データ数抽出マスク */
    154 #define SCIF_SCFDR_R_SHIFT      0                       /* 受信データ数抽出右シフト数 */
     132#define SCIF_SCFDR_T_MASK       0x1f00U         /* 未送信データ数抽出マスク */
     133#define SCIF_SCFDR_T_SHIFT      8                       /* 未送信データ数抽出右シフト数 */
     134#define SCIF_SCFDR_R_MASK       0x001fU         /* 受信データ数抽出マスク */
     135#define SCIF_SCFDR_R_SHIFT      0                       /* 受信データ数抽出右シフト数 */
    155136
    156137/*
    157  *  ラインステータスレジスタ(SCIF_SCLSR)の参ç
    158 §å€¤
     138 *  ラインステータスレジスタ(SCIF_SCLSR)の参照値
    159139 */
    160 #define SCIF_SCLSR_ORER         0x0001U         /* オーバーランエラー */
     140#define SCIF_SCLSR_ORER         0x0001U         /* オーバーランエラー */
    161141
    162142/*
    163  *  シリアル拡張モードレジスタ(SCIF_SCEMR)の設定値
     143 *  シリアル拡張モードレジスタ(SCIF_SCEMR)の設定値
    164144 */
    165 #define SCIF_SCEMR_BGDM         0x0080U         /* ボーレートジェネレータ倍速モード */
    166 #define SCIF_SCEMR_ABCS16       0x0000U         /* ビットレートの16倍の基本クロック */
    167 #define SCIF_SCEMR_ABCS8        0x0001U         /* ビットレートの8倍の基本クロック */
     145#define SCIF_SCEMR_BGDM         0x0080U         /* ボーレートジェネレータ倍速モード */
     146#define SCIF_SCEMR_ABCS16       0x0000U         /* ビットレートの16倍の基本クロック */
     147#define SCIF_SCEMR_ABCS8        0x0001U         /* ビットレートの8倍の基本クロック */
    168148
    169149#endif /* TOPPERS_SCIF_H */
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    77 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
    45  *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
     31 *
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  $Id$
     
    5540
    5641/*
    57  *              FIFOå†
    58 è”µã‚·ãƒªã‚¢ãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ç”¨ 簡易SIOドライバ
     42 *              FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドライバ
    5943 */
    6044
     
    6448
    6549/*
    66  *  プリミティブな送信/受信関数
    67  */
    68 
    69 /*
    70  *  受信バッファに文字があるか?
     50 *  プリミティブな送信/受信関数
     51 */
     52
     53/*
     54 *  受信バッファに文字があるか?
    7155 */
    7256Inline bool_t
     
    9074
    9175/*
    92  *  送信バッファに空きがあるか?
     76 *  送信バッファに空きがあるか?
    9377 */
    9478Inline bool_t
     
    10286
    10387/*
    104  *  受信した文字の取出し
     88 *  受信した文字の取出し
    10589 */
    10690Inline bool_t
     
    130114
    131115/*
    132  *  送信する文字の書込み
     116 *  送信する文字の書込み
    133117 */
    134118Inline void
     
    141125
    142126/*
    143  *  シリアルI/Oポートのオープン
     127 *  シリアルI/Oポートのオープン
    144128 */
    145129void
     
    151135        if (VAR_initialized) {
    152136                /*
    153                  *  既に初期化している場合は、二重に初期化しない.
     137                 *  既に初期化している場合は、二重に初期化しない.
    154138                 */
    155139                return;
     
    185169
    186170/*
    187  *  シリアルI/Oポートのクローズ
     171 *  シリアルI/Oポートのクローズ
    188172 */
    189173void
     
    196180
    197181/*
    198  *  シリアルI/Oポートへの文字送信
     182 *  シリアルI/Oポートへの文字送信
    199183 */
    200184bool_t
     
    211195
    212196/*
    213  *  シリアルI/Oポートからの文字受信
     197 *  シリアルI/Oポートからの文字受信
    214198 */
    215199int_t
     
    228212
    229213/*
    230  *  シリアルI/Oポートからのコールバックの許可
     214 *  シリアルI/Oポートからのコールバックの許可
    231215 */
    232216void
     
    249233
    250234/*
    251  *  シリアルI/Oポートからのコールバックの禁止
     235 *  シリアルI/Oポートからのコールバックの禁止
    252236 */
    253237void
     
    270254
    271255/*
    272  *  シリアルI/Oポートに対する受信割込み処理
     256 *  シリアルI/Oポートに対する受信割込み処理
    273257 */
    274258void
     
    279263        if (scif_getready(p_cellcb)) {
    280264                /*
    281                  *  受信通知コールバックルーチンを呼び出す.
     265                 *  受信通知コールバックルーチンを呼び出す.
    282266                 */
    283267                ciSIOCBR_readyReceive();
     
    286270
    287271/*
    288  *  シリアルI/Oポートに対する送信割込み処理
     272 *  シリアルI/Oポートに対する送信割込み処理
    289273 */
    290274void
     
    295279        if (scif_putready(p_cellcb)) {
    296280                /*
    297                  *  送信可能コールバックルーチンを呼び出す.
     281                 *  送信可能コールバックルーチンを呼び出す.
    298282                 */
    299283                ciSIOCBR_readySend();
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.cdl

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;charset=UTF-8
    r270 r321  
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
    10  *  上記著作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    13  *  変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28  *      と.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *    (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36  *        報告すること.
    37  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38  *      害からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    42  *      由に基づく請求からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44  *      å
    45 è²¬ã™ã‚‹ã“と.
     10 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22 *      と.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26 *        報告すること.
     27 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31 *      免責すること.
    4632 *
    47  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    48 ãŠ
    49  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    51  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    52  *  の責任を負わない.
     33 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37 *  の責任を負わない.
    5338 *
    5439 *  $Id$
     
    5641
    5742/*
    58  *              FIFOå†
    59 è”µã‚·ãƒªã‚¢ãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ç”¨ 簡易SIOドラ
    60  *              イバのコンポーネント記述
     43 *              FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドラ
     44 *              イバのコンポーネント記述
    6145 */
    6246
    6347/*
    64  *  FIFOå†
    65 è”µã‚·ãƒªã‚¢ãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã«é–¢ã™ã‚‹å®šç¾©ã®ã‚¤ãƒ³
    66  *  ポート
     48 *  FIFO内蔵シリアルコミュニケーションインタフェースに関する定義のイン
     49 *  ポート
    6750 */
    6851import_C("scif.h");
    6952
    7053/*
    71  *  FIFOå†
    72 è”µã‚·ãƒªã‚¢ãƒ«ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ç”¨ 簡易SIOドライバ
    73  *  のセルタイプ
     54 *  FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドライバ
     55 *  のセルタイプ
    7456 */
    7557celltype tSCIF {
     
    8163
    8264        attr {
    83                 uintptr_t       baseAddress;    /* SCIFレジスタのベースアドレス */
    84                 uint32_t        baudRate;               /* ボーレートの設定値 */
     65                uintptr_t       baseAddress;    /* SCIFレジスタのベースアドレス */
     66                uint32_t        baudRate;               /* ボーレートの設定値 */
    8567        };
    8668        var {
    87                 bool_t          initialized = false;    /* 初期化済み */
     69                bool_t          initialized = false;    /* 初期化済み */
    8870        };
    8971};
  • EcnlProtoTool/trunk/asp3_dcre/arch/gcc/tool_stddef.h

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

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

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     11 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20 *      の無保証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     23 *      と.
     24 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     26 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     27 *        報告すること.
     28 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     29 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     30 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     31 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     32 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              トレースログ機能のコンポーネント記述ファイル
     44 *              トレースログ機能のコンポーネント記述ファイル
    6045 */
    6146
    6247/*
    63  *  トレースログ出力に関する定義
     48 *  トレースログ出力に関する定義
    6449 */
    6550import_C("arch/tracelog/trace_log.h");
    6651
    6752/*
    68  *  トレースログ機能のシグニチャ
     53 *  トレースログ機能のシグニチャ
    6954 */
    7055signature sTraceLog {
    7156        /*
    72          *  トレースログの開始
     57         *  トレースログの開始
    7358         */
    7459        ER              start([in] MODE mode);
    7560
    7661        /*
    77          *  トレースログの書込み
     62         *  トレースログの書込み
    7863         */
    7964        ER              write([in] const TRACE *p_trace);
    8065
    8166        /*
    82          *  トレースログの読出し
     67         *  トレースログの読出し
    8368         */
    8469        ER              read([out] TRACE *p_trace);
    8570
    8671        /*
    87          *  トレースログのダンプ
     72         *  トレースログのダンプ
    8873         */
    8974        void    dump(void);
     
    9176
    9277/*
    93  *  トレースログ機能のセルタイプ
     78 *  トレースログ機能のセルタイプ
    9479 */
    9580[singleton, active]
    9681celltype tTraceLog {
    9782        entry   sTraceLog               eTraceLog;
    98         entry   sRoutineBody    eDump;          /* 終了処理ルーチンとの接続 */
    99         call    sPutLog                 cPutLog;        /* 低レベル出力との接続 */
     83        entry   sRoutineBody    eDump;          /* 終了処理ルーチンとの接続 */
     84        call    sPutLog                 cPutLog;        /* 低レベル出力との接続 */
    10085
    10186        attr {
    102                 uint_t  logBufferSize;                  /* ログバッファサイズ */
     87                uint_t  logBufferSize;                  /* ログバッファサイズ */
    10388                MODE    initialMode = C_EXP("TRACE_STOP");
    104                                                                                 /* 初期化後のモード */
     89                                                                                /* 初期化後のモード */
    10590        };
    10691        var {
    107                 [size_is(logBufferSize)] TRACE  *logBuffer;     /* ログバッファ */
    108                 uint_t  count = 0;                              /* ログバッファ中のログの数 */
    109                 uint_t  head = 0;                               /* å
    110 ˆé ­ã®ãƒ­ã‚°ã®æ ¼ç´ä½ç½® */
    111                 uint_t  tail = 0;                               /* 次のログの格納位置 */
    112                 MODE    mode = initialMode;             /* トレースモード */
     92                [size_is(logBufferSize)] TRACE  *logBuffer;     /* ログバッファ */
     93                uint_t  count = 0;                              /* ログバッファ中のログの数 */
     94                uint_t  head = 0;                               /* 先頭のログの格納位置 */
     95                uint_t  tail = 0;                               /* 次のログの格納位置 */
     96                MODE    mode = initialMode;             /* トレースモード */
    11397        };
    11498};
  • EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/trace_log.h

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