Ignore:
Timestamp:
Jun 26, 2017, 6:45:41 PM (7 years ago)
Author:
ertl-honda
Message:

3.0.0のリリース版に追従

File:
1 edited

Legend:

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

    r304 r305  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: interrupt.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     55#   $Id: interrupt.trb 612 2016-02-08 04:27:57Z ertl-hiro $
    5656#
    5757
     
    6565$kernelCfgH.add("#define TNUM_ISRID\t#{$cfgData[:CRE_ISR].size}")
    6666
    67 $cfgData[:CRE_ISR].sort.each do |id, params|
     67$cfgData[:CRE_ISR].sort.each do |key, params|
    6868  $kernelCfgH.add("#define #{params[:isrid]}\t#{params[:isrid].val}")
    6969end
     
    127127#  割込み要求ラインに関するエラーチェック
    128128#
    129 $cfgData[:CFG_INT].each do |id, params|
     129$cfgData[:CFG_INT].each do |key, params|
    130130  #     intnoが割込み番号として正しくない場合(E_PAR)[NGKI2972ï¼½
    131131  if $INTNO_VALID.index(params[:intno]).nil?
     
    172172#  割込みハンドラに関するエラーチェック
    173173#
    174 $cfgData[:DEF_INH].each do |id, params|
     174$cfgData[:DEF_INH].each do |key, params|
    175175  # inhnoが割込みハンドラ番号として正しくない場合(E_PAR)[NGKI3055ï¼½
    176176  if $INHNO_VALID.index(params[:inhno]).nil?
     
    243243#  割込みサービスルーチン(ISR)に関するエラーチェックと割込みハンドラの生成
    244244#
    245 $cfgData[:CRE_ISR].sort.each do |id, params|
     245$cfgData[:CRE_ISR].sort.each do |key, params|
    246246  #     isratrが無効の場合(E_RSATR)[NGKI2998ï¼½
    247247  #(TARGET_ISRATR以外のビットがセットされている場合)
     
    264264
    265265$INTNO_CREISR_VALID.each do |intnoVal|
    266   inhnoVal = $toInhnoVal[intnoVal]
    267 
    268266  # 割込み番号intnoに対して登録されたISRのリストの作成
    269267  isrParamsList = []
    270   $cfgData[:CRE_ISR].sort.each do |id, params|
    271     if params[:intno] == intnoVal
     268  $cfgData[:CRE_ISR].sort.each do |key, params|
     269    if params[:intno].val == intnoVal
    272270      isrParamsList.push(params)
    273271    end
     
    276274  #     å‰²è¾¼ã¿ç•ªå·intnoに対して登録されたISRが存在する場合
    277275  if isrParamsList.size > 0
     276    inhnoVal = $toInhnoVal[intnoVal]
     277
    278278    # intnoに対応するinhnoに対してDEF_INHがある場合(E_OBJ)[NGKI3013ï¼½
    279279    if $cfgData[:DEF_INH].has_key?(inhnoVal)
     
    312312    $cfgData[:DEF_INH][inhnoVal] = params
    313313
    314     # ISR用の割込みハンドラ
     314    # 割込みサービスルーチン用の割込みハンドラ
    315315    $kernelCfgC.add("void")
    316316    $kernelCfgC.add("_kernel_inthdr_#{intnoVal}(void)")
    317317    $kernelCfgC.add("{")
    318     # ISRを優å
     318    # 割込みサービスルーチンを優å
    319319ˆåº¦é †ã«å‘¼ã³å‡ºã™
    320     isrParamsList.sort_by {|params| params[:isrpri]}.each_with_index \
    321                                                                                                                 do |params, index|
     320    i = 0               # stable sortを行うための変数
     321    isrParamsList.sort_by {|params| [ params[:isrpri].val, i += 1 ]} \
     322                                                                                .each_with_index do |params, index|
    322323      if index > 0
    323324        $kernelCfgC.add
     
    353354    #  割込みハンドラのエントリ
    354355    #
    355     $cfgData[:DEF_INH].each do |id, params|
     356    $cfgData[:DEF_INH].each do |key, params|
    356357      if (params[:inhatr] & $TA_NONKERNEL) == 0
    357358        $kernelCfgC.add("INTHDR_ENTRY(#{params[:inhno]}, " \
     
    365366    #
    366367    $kernelCfgC.add("const INHINIB _kernel_inhinib_table[TNUM_DEF_INHNO] = {")
    367     $cfgData[:DEF_INH].each_with_index do |(id, params), index|
     368    $cfgData[:DEF_INH].each_with_index do |(key, params), index|
    368369      $kernelCfgC.add(",") if index > 0
    369370      if (params[:inhatr] & $TA_NONKERNEL) == 0
     
    402403  if $cfgData[:CFG_INT].size != 0
    403404    $kernelCfgC.add("const INTINIB _kernel_intinib_table[TNUM_CFG_INTNO] = {")
    404     $cfgData[:CFG_INT].each_with_index do |(id, params), index|
     405    $cfgData[:CFG_INT].each_with_index do |(key, params), index|
    405406      $kernelCfgC.add(",") if index > 0
    406407      $kernelCfgC.append("\t{ (#{params[:intno]}), (#{params[:intatr]}), " \
Note: See TracChangeset for help on using the changeset viewer.