Ignore:
Timestamp:
Jun 27, 2017, 10:53:32 AM (7 years ago)
Author:
ertl-honda
Message:

3.1.0を反映

File:
1 edited

Legend:

Unmodified
Added
Removed
  • asp3_wo_tecs/trunk/kernel/interrupt.trb

    r305 r306  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: interrupt.trb 612 2016-02-08 04:27:57Z ertl-hiro $
     55#   $Id: interrupt.trb 678 2016-03-06 02:36:09Z ertl-hiro $
    5656#
    5757
     
    7878#  トレースログマクロのデフォルト定義
    7979#
    80 $kernelCfgC.append(<<EOS)
     80$kernelCfgC.add(<<EOS)
    8181#ifndef LOG_ISR_ENTER
    8282#define LOG_ISR_ENTER(isrid)
     
    8686#define LOG_ISR_LEAVE(isrid)
    8787#endif /* LOG_ISR_LEAVE */
    88 
    8988EOS
    9089
     
    105104#
    106105if $INTPRI_CFGINT_VALID.nil?
    107   $INTPRI_CFGINT_VALID = $TMIN_INTPRI.val.upto($TMAX_INTPRI.val).to_a
     106  $INTPRI_CFGINT_VALID = $TMIN_INTPRI.upto($TMAX_INTPRI).to_a
    108107end
    109108
     
    151150    if !$INTNO_FIX_NONKERNEL.index(params[:intno]).nil?
    152151      if params[:intpri] >= $TMIN_INTPRI
    153         error_ercd("E_OBJ", params, "intno `#{params[:intno]}'" \
    154                                                         " must have higher priority than TMIN_INTPRI")
     152        error_ercd("E_OBJ", params, "%%intno must have higher priority " \
     153                                                                                        "than TMIN_INTPRI in %apiname")
    155154      end
    156155    end
     
    162161    if !$INTNO_FIX_KERNEL.index(params[:intno]).nil?
    163162      if params[:intpri] < $TMIN_INTPRI
    164         error_ercd("E_OBJ", params, "intno `#{params[:intno]}'" \
    165                                         " must have lower or equal priority to TMIN_INTPRI")
     163        error_ercd("E_OBJ", params, "%%intno must have lower or equal " \
     164                                                                        "priority to TMIN_INTPRI in %apiname")
    166165      end
    167166    end
     
    180179  # inhatrが無効の場合(E_RSATR)[NGKI3052ï¼½
    181180  #(TARGET_INHATR以外のビットがセットされている場合)
    182   if (params[:inhatr] & ~$TARGET_INHATR) != 0
     181  if (params[:inhatr] & ~($TARGET_INHATR)) != 0
    183182    error_illegal_sym("E_RSATR", params, :inhatr, :inhno)
    184183  end
     
    189188    if !$INHNO_FIX_NONKERNEL.index(params[:inhno]).nil?
    190189      if (params[:inhatr] & $TA_NONKERNEL) == 0
    191         error_ercd("E_RSATR", params, "inhno `#{params[:inhno]}'" \
    192                                                                         " must be non-kernel interrupt")
     190        error_ercd("E_RSATR", params, "%%inhno must be " \
     191                                                                "non-kernel interrupt in %apiname")
    193192      end
    194193    end
     
    200199    if !$INHNO_FIX_KERNEL.index(params[:inhno]).nil?
    201200      if (params[:inhatr] & $TA_NONKERNEL) != 0
    202         error_ercd("E_RSATR", params, "inhno `#{params[:inhno]}'" \
    203                                                                         " must not be non-kernel interrupt")
     201        error_ercd("E_RSATR", params, "%%inhno must not be " \
     202                                                                "non-kernel interrupt in %apiname")
    204203      end
    205204    end
     
    211210    # inhnoに対応するintnoに対するCFG_INTがない場合(E_OBJ)[NGKI3062ï¼½
    212211    if !$cfgData[:CFG_INT].has_key?(intnoVal)
    213       error_ercd("E_OBJ", params, "intno `#{intnoVal}' corresponding to" \
    214                                 " inhno `#{params[:inhno]}' is not configured with CFG_INT")
     212      error_ercd("E_OBJ", params, "intno `#{intnoVal}' corresponding to " \
     213                                        "%%inhno in %apiname is not configured with CFG_INT")
    215214    else
    216215      intnoParams = $cfgData[:CFG_INT][intnoVal]
     
    221220        # さい場合(E_OBJ)[NGKI3065ï¼½
    222221        if intnoParams[:intpri] < $TMIN_INTPRI
    223           error_ercd("E_OBJ", params, "intpri `#{intnoParams[:intpri]}'" \
    224                                                 " configured for inhno `#{params[:inhno]}' must" \
    225                                                 " be lower or equal to TMIN_INTPRI")
     222          error_ercd("E_OBJ", params, "intpri `#{intnoParams[:intpri]}' " \
     223                                "configured for %%inhno must be lower or equal to TMIN_INTPRI")
    226224        end
    227225      else
     
    231229        # 場合(E_OBJ)[NGKI3066ï¼½
    232230        if intnoParams[:intpri] >= $TMIN_INTPRI
    233           error_ercd("E_OBJ", params, "intpri `#{intnoParams[:intpri]}'" \
    234                                                 " configured for inhno `#{params[:inhno]}' must" \
    235                                                 " be higher than with TMIN_INTPRI")
     231          error_ercd("E_OBJ", params, "intpri `#{intnoParams[:intpri]}' " \
     232                                        "configured for %%inhno must be higher than TMIN_INTPRI")
    236233        end
    237234      end
     
    246243  #     isratrが無効の場合(E_RSATR)[NGKI2998ï¼½
    247244  #(TARGET_ISRATR以外のビットがセットされている場合)
    248   if (params[:isratr] & ~$TARGET_ISRATR) != 0
     245  if (params[:isratr] & ~($TARGET_ISRATR)) != 0
    249246    error_illegal("E_RSATR", params, "isratr")
    250247  end
     
    267264  isrParamsList = []
    268265  $cfgData[:CRE_ISR].sort.each do |key, params|
    269     if params[:intno].val == intnoVal
     266    if params[:intno] == intnoVal
    270267      isrParamsList.push(params)
    271268    end
     
    279276    if $cfgData[:DEF_INH].has_key?(inhnoVal)
    280277      inhnoParams = $cfgData[:DEF_INH][inhnoVal]
    281       error_ercd("E_OBJ", isrParamsList[0], \
    282                                         "intno `#{isrParamsList[0][:intno]}' in CRE_ISR" \
    283                                         " is duplicated with inhno #{inhnoParams[:inhno]}")
     278      error_ercd("E_OBJ", isrParamsList[0], "%%intno in %apiname " \
     279                                        "is duplicated with inhno #{inhnoParams[:inhno]}")
    284280    end
    285281
    286282    # intnoに対するCFG_INTがない場合(E_OBJ)[NGKI3012ï¼½
    287283    if !$cfgData[:CFG_INT].has_key?(intnoVal)
    288       error_ercd("E_OBJ", isrParamsList[0], \
    289                                                 "intno `#{isrParamsList[0][:intno]}'" \
    290                                                 " is not configured with CFG_INT")
     284      error_ercd("E_OBJ", isrParamsList[0], "%%intno in %apiname " \
     285                                                                        "is not configured with CFG_INT")
    291286    else
    292287      intnoParams = $cfgData[:CFG_INT][intnoVal]
     
    297292      if intnoParams[:intpri] < $TMIN_INTPRI
    298293        error_ercd("E_OBJ", isrParamsList[0],
    299                                                 "intpri `#{intnoParams[:intpri]}' configured for" \
    300                                                 " intno `#{isrParamsList[0][:intno]}}' in higher" \
    301                                                 " than TMIN_INTPRI")
     294                                                "intpri `#{intnoParams[:intpri]}' configured for " \
     295                                                "%%intno with CFG_INT in higher than TMIN_INTPRI")
    302296      end
    303297    end
     
    305299    # 次のDEF_INHに相当するデータを生成
    306300    # DEF_INH(inhno, { TA_NULL, _kernel_inthdr_<intno> } );
    307     params = {
    308       :inhno => StrVal.new(inhnoVal.to_s, inhnoVal),
    309       :inhatr => $TA_NULL,
    310       :inthdr => StrVal.new("_kernel_inthdr_#{intnoVal}")
     301    $cfgData[:DEF_INH][inhnoVal] = {
     302      inhno: NumStr.new(inhnoVal),
     303      inhatr: NumStr.new($TA_NULL, "TA_NULL"),
     304      inthdr: "_kernel_inthdr_#{intnoVal}"
    311305    }
    312     $cfgData[:DEF_INH][inhnoVal] = params
    313306
    314307    # 割込みサービスルーチン用の割込みハンドラ
     
    340333報の生成
    341334#
    342 if $OMIT_INITIALIZE_INTERRUPT.nil? || !$USE_INHINIB_TABLE.nil?
     335if !$OMIT_INITIALIZE_INTERRUPT || $USE_INHINIB_TABLE
    343336  #
    344337  #  定義する割込みハンドラの数
    345338  #
    346   $kernelCfgC.append(<<EOS)
     339  $kernelCfgC.add(<<EOS)
    347340#define TNUM_DEF_INHNO  #{$cfgData[:DEF_INH].size}
    348341const uint_t _kernel_tnum_def_inhno = TNUM_DEF_INHNO;
    349 
    350342EOS
    351343
     
    388380報の生成
    389381#
    390 if $OMIT_INITIALIZE_INTERRUPT.nil? || !$USE_INTINIB_TABLE.nil?
     382if !$OMIT_INITIALIZE_INTERRUPT || $USE_INTINIB_TABLE
    391383  #
    392384  #  設定する割込み要求ラインの数
    393385  #
    394   $kernelCfgC.append(<<EOS)
     386  $kernelCfgC.add(<<EOS)
    395387#define TNUM_CFG_INTNO  #{$cfgData[:CFG_INT].size}
    396388const uint_t _kernel_tnum_cfg_intno = TNUM_CFG_INTNO;
    397 
    398389EOS
    399390
Note: See TracChangeset for help on using the changeset viewer.