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

3.0.0のリリース版に追従

Location:
asp3_wo_tecs/trunk/kernel
Files:
15 edited

Legend:

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

    r304 r305  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: alarm.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     55#   $Id: alarm.trb 588 2016-02-05 12:54:58Z ertl-hiro $
    5656#
    5757
     
    6565  end
    6666
    67   def prepare(id, params)
     67  def prepare(key, params)
    6868    # almatrが無効の場合(E_RSATR)[NGKI2491ï¼½
    6969    #(TA_STA以外のビットがセットされている場合)
     
    7474    # 通知æƒ
    7575報の処理
    76     params[:nfyhdr] = generateNotifyHandler(id, params, :almid)
     76    params[:nfyhdr] = generateNotifyHandler(key, params, :almid)
    7777  end
    7878
    79   def generateInib(id, params)
     79  def generateInib(key, params)
    8080    return("(#{params[:almatr]}), (intptr_t)(#{params[:par1]}), " \
    8181                                                                                                "#{params[:nfyhdr]}")
  • asp3_wo_tecs/trunk/kernel/cyclic.trb

    r304 r305  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: cyclic.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     55#   $Id: cyclic.trb 588 2016-02-05 12:54:58Z ertl-hiro $
    5656#
    5757
     
    6565  end
    6666
    67   def prepare(id, params)
     67  def prepare(key, params)
    6868    # cycatrが無効の場合(E_RSATR)[NGKI2383ï¼½
    6969    #(TA_STA以外のビットがセットされている場合)
     
    8484    # 通知æƒ
    8585報の処理
    86     params[:nfyhdr] = generateNotifyHandler(id, params, :cycid)
     86    params[:nfyhdr] = generateNotifyHandler(key, params, :cycid)
    8787  end
    8888
    89   def generateInib(id, params)
     89  def generateInib(key, params)
    9090    return("(#{params[:cycatr]}), (intptr_t)(#{params[:par1]}), " \
    9191                        "#{params[:nfyhdr]}, (#{params[:cyctim]}), (#{params[:cycphs]})")
  • asp3_wo_tecs/trunk/kernel/dataqueue.trb

    r304 r305  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: dataqueue.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     55#   $Id: dataqueue.trb 588 2016-02-05 12:54:58Z ertl-hiro $
    5656#
    5757
     
    6565  end
    6666
    67   def prepare(id, params)
     67  def prepare(key, params)
    6868    # dtqatrが無効の場合(E_RSATR)[NGKI1669ï¼½
    6969    #(TA_TPRI以外のビットがセットされている場合)
     
    8484  end
    8585
    86   def generateInib(id, params)
     86  def generateInib(key, params)
    8787    if params[:dtqcnt] > 0
    8888      dtqmb = "_kernel_dtqmb_#{params[:dtqid]}"
  • asp3_wo_tecs/trunk/kernel/eventflag.trb

    r304 r305  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: eventflag.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     55#   $Id: eventflag.trb 588 2016-02-05 12:54:58Z ertl-hiro $
    5656#
    5757
     
    6565  end
    6666
    67   def prepare(id, params)
     67  def prepare(key, params)
    6868    # flgatrが無効の場合(E_RSATR)[NGKI1562ï¼½
    6969    #(TA_TPRI,TA_WMUL,TA_CLR以外のビットがセットされている場合)
     
    7878  end
    7979
    80   def generateInib(id, params)
     80  def generateInib(key, params)
    8181    return("(#{params[:flgatr]}), (#{params[:iflgptn]})")
    8282  end
  • asp3_wo_tecs/trunk/kernel/exception.trb

    r304 r305  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: exception.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     55#   $Id: exception.trb 588 2016-02-05 12:54:58Z ertl-hiro $
    5656#
    5757
     
    6868#  CPU例外ハンドラに関するエラーチェック
    6969#
    70 $cfgData[:DEF_EXC].each do |id, params|
     70$cfgData[:DEF_EXC].each do |key, params|
    7171  # excnoがCPU例外ハンドラ番号として正しくない場合(E_PAR)[NGKI3134ï¼½
    7272  if $EXCNO_VALID.index(params[:excno]).nil?
     
    9999    #  CPU例外ハンドラのエントリ
    100100    #
    101     $cfgData[:DEF_EXC].each do |id, params|
     101    $cfgData[:DEF_EXC].each do |key, params|
    102102      $kernelCfgC.add("EXCHDR_ENTRY(#{params[:excno]}, " \
    103103                                                "#{params[:excno].val}, #{params[:exchdr]})")
     
    109109    #
    110110    $kernelCfgC.add("const EXCINIB _kernel_excinib_table[TNUM_DEF_EXCNO] = {")
    111     $cfgData[:DEF_EXC].each_with_index do |(id, params), index|
     111    $cfgData[:DEF_EXC].each_with_index do |(key, params), index|
    112112      $kernelCfgC.add(",") if index > 0
    113113      $kernelCfgC.append("\t{ (#{params[:excno]}), (#{params[:excatr]}), " \
  • 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]}), " \
  • asp3_wo_tecs/trunk/kernel/kernel.trb

    r304 r305  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: kernel.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     55#   $Id: kernel.trb 588 2016-02-05 12:54:58Z ertl-hiro $
    5656#
    5757
     
    136136
    137137    # オブジェクトのID番号のマクロ定義の生成
    138     $cfgData[@api].sort.each do |id, params|
     138    $cfgData[@api].sort.each do |key, params|
    139139      $kernelCfgH.add("#define #{params[@objid]}\t#{params[@objid].val}")
    140140    end
     
    142142
    143143    # オブジェクトのID番号を保持する変数
    144     if $USE_EXTERNAL_ID
    145       $cfgData[@api].sort.each do |id, params|
     144    if !$USE_EXTERNAL_ID.nil?
     145      $cfgData[@api].sort.each do |key, params|
    146146        $kernelCfgC.add("const ID #{params[@objid]}_id" \
    147147                                                                                " = #{params[@objid].val};")
     
    157157    if $cfgData[@api].size > 0
    158158      # 事前準備(エラーチェック,メモリ領域の生成)
    159       $cfgData[@api].sort.each do |id, params|
    160         prepare(id, params)
     159      $cfgData[@api].sort.each do |key, params|
     160        prepare(key, params)
    161161      end
    162162
     
    171171      $kernelCfgC.add("const #{@OBJ_S}INIB _kernel_#{@obj_s}inib_table" \
    172172                                                                                                        "[TNUM_#{@OBJ}ID] = {")
    173       $cfgData[@api].sort.each_with_index do |(id, params), index|
     173      $cfgData[@api].sort.each_with_index do |(key, params), index|
    174174        $kernelCfgC.add(",") if index > 0
    175         $kernelCfgC.append("\t{ " + generateInib(id, params) + " }")
     175        $kernelCfgC.append("\t{ " + generateInib(key, params) + " }")
    176176      end
    177177      $kernelCfgC.add
     
    197197#  通知ハンドラの生成関数
    198198#
    199 def generateNotifyHandler(id, params, objid)
     199def generateNotifyHandler(key, params, objid)
    200200  # パラメータを変数に格納
    201201  nfymode = params[:nfymode]
     
    376376
    377377  # DEF_ICSがある場合の処理
    378   params = $cfgData[:DEF_ICS].values[0]
     378  params = $cfgData[:DEF_ICS][1]
    379379
    380380  # istkszがターゲット定義の最小値(TARGET_MIN_ISTKSZ,未定義の場合は1)
     
    439439
    440440# エラーチェック
    441 $cfgData[:ATT_INI].each do |id, params|
     441$cfgData[:ATT_INI].each do |key, params|
    442442  # iniatrが無効の場合(E_RSATR)[NGKI3241ï¼½
    443443  #(TA_NULLでない場合)
     
    453453{
    454454EOS
    455 $cfgData[:ATT_INI].each do |id, params|
     455$cfgData[:ATT_INI].each do |key, params|
    456456  $kernelCfgC.add("\t((INIRTN)(#{params[:inirtn]}))" \
    457457                                                                "((intptr_t)(#{params[:exinf]}));")
     
    465465
    466466# エラーチェック
    467 $cfgData[:ATT_TER].each do |id, params|
     467$cfgData[:ATT_TER].each do |key, params|
    468468  # teratrが無効の場合(E_RSATR)[NGKI3248ï¼½
    469469  #(TA_NULLでない場合)
     
    479479{
    480480EOS
    481 $cfgData[:ATT_TER].reverse_each do |id, params|
     481$cfgData[:ATT_TER].reverse_each do |key, params|
    482482  $kernelCfgC.add("\t((TERRTN)(#{params[:terrtn]}))" \
    483483                                                                "((intptr_t)(#{params[:exinf]}));")
     
    489489#
    490490$kernelCfgH.append(<<EOS)
    491 
    492491#endif /* TOPPERS_KERNEL_CFG_H */
    493492EOS
  • asp3_wo_tecs/trunk/kernel/kernel_check.trb

    r304 r305  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: kernel_check.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     55#   $Id: kernel_check.trb 588 2016-02-05 12:54:58Z ertl-hiro $
    5656
    5757
     
    9292$tmax_dtqid = PEEK(SYMBOL("_kernel_tmax_dtqid"), $sizeof_ID)
    9393
    94 def checkNotifyHandler(id, params, objid, exinf, nfyhdr)
     94def checkNotifyHandler(key, params, objid, exinf, nfyhdr)
    9595  # パラメータを変数に格納
    9696  nfymode = params[:nfymode]
     
    244244#
    245245tinib = SYMBOL("_kernel_tinib_table")
    246 $cfgData[:CRE_TSK].each do |id, params|
     246$cfgData[:CRE_TSK].each do |key, params|
    247247  # タスクのå
    248248ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI1033ï¼½
     
    258258ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI1056ï¼½
    259259  if $USE_TSKINICTXB == 1
    260     stk = GetStackTskinictxb(id, params)
     260    stk = GetStackTskinictxb(key, params)
    261261  else
    262262    stk = PEEK(tinib + $offsetof_TINIB_stk, $sizeof_void_ptr)
     
    273273
    274274#
    275 #  周期通知に関するチェック
    276 #
    277 cycinib = SYMBOL("_kernel_cycinib_table")
    278 $cfgData[:CRE_CYC].each do |id, params|
    279   exinf = PEEK(cycinib + $offsetof_CYCINIB_exinf, $sizeof_intptr_t)
    280   nfyhdr = PEEK(cycinib + $offsetof_CYCINIB_nfyhdr, $sizeof_FP)
    281 
    282   #     é€šçŸ¥æƒ
    283 å ±ã®ãƒã‚§ãƒƒã‚¯
    284   checkNotifyHandler(id, params, :cycid, exinf, nfyhdr)
    285 
    286   cycinib += $sizeof_CYCINIB
    287 end
    288 
    289 #
    290 #  アラーム通知に関するチェック
    291 #
    292 alminib = SYMBOL("_kernel_alminib_table")
    293 $cfgData[:CRE_ALM].each do |id, params|
    294   exinf = PEEK(alminib + $offsetof_ALMINIB_exinf, $sizeof_intptr_t)
    295   nfyhdr = PEEK(alminib + $offsetof_ALMINIB_nfyhdr, $sizeof_FP)
    296 
    297   #     é€šçŸ¥æƒ
    298 å ±ã®ãƒã‚§ãƒƒã‚¯
    299   checkNotifyHandler(id, params, :almid, exinf, nfyhdr)
    300 
    301   alminib += $sizeof_ALMINIB
    302 end
    303 
    304 #
    305275#  固定長メモリプールに関するチェック
    306276#
    307277mpfinib = SYMBOL("_kernel_mpfinib_table")
    308 $cfgData[:CRE_MPF].each do |id, params|
    309   mpf = PEEK(alminib + $offsetof_MPFINIB_mpf, $sizeof_void_ptr)
     278$cfgData[:CRE_MPF].each do |key, params|
     279  mpf = PEEK(mpfinib + $offsetof_MPFINIB_mpf, $sizeof_void_ptr)
    310280
    311281  # 固定長メモリプール領域のå
     
    322292
    323293#
     294#  周期通知に関するチェック
     295#
     296cycinib = SYMBOL("_kernel_cycinib_table")
     297$cfgData[:CRE_CYC].each do |key, params|
     298  exinf = PEEK(cycinib + $offsetof_CYCINIB_exinf, $sizeof_intptr_t)
     299  nfyhdr = PEEK(cycinib + $offsetof_CYCINIB_nfyhdr, $sizeof_FP)
     300
     301  #     é€šçŸ¥æƒ
     302報のチェック
     303  checkNotifyHandler(key, params, :cycid, exinf, nfyhdr)
     304
     305  cycinib += $sizeof_CYCINIB
     306end
     307
     308#
     309#  アラーム通知に関するチェック
     310#
     311alminib = SYMBOL("_kernel_alminib_table")
     312$cfgData[:CRE_ALM].each do |key, params|
     313  exinf = PEEK(alminib + $offsetof_ALMINIB_exinf, $sizeof_intptr_t)
     314  nfyhdr = PEEK(alminib + $offsetof_ALMINIB_nfyhdr, $sizeof_FP)
     315
     316  #     é€šçŸ¥æƒ
     317報のチェック
     318  checkNotifyHandler(key, params, :almid, exinf, nfyhdr)
     319
     320  alminib += $sizeof_ALMINIB
     321end
     322
     323#
    324324#  非タスクコンテキスト用のスタック領域に関するチェック
    325325#
     
    329329ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI3222ï¼½
    330330if (istk & ($CHECK_STACK_ALIGN - 1)) != 0
    331   error_wrong("E_PAR", $cfgData[:DEF_ICS][0], :istk, "not aligned")
     331  error_wrong("E_PAR", $cfgData[:DEF_ICS][1], :istk, "not aligned")
    332332end
    333333if $CHECK_STACK_NONNULL == 1 && istk == 0
    334   error_wrong("E_PAR", $cfgData[:DEF_ICS][0], :istk, "null")
    335 end
     334  error_wrong("E_PAR", $cfgData[:DEF_ICS][1], :istk, "null")
     335end
  • asp3_wo_tecs/trunk/kernel/kernel_sym.def

    r304 r305  
     1USE_EXTERNAL_ID,1,,defined(USE_EXTERNAL_ID)
    12SIL_ENDIAN_BIG,1,,defined(SIL_ENDIAN_BIG)
    23SIL_ENDIAN_LITTLE,1,,defined(SIL_ENDIAN_LITTLE)
  • asp3_wo_tecs/trunk/kernel/mempfix.trb

    r304 r305  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: mempfix.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     55#   $Id: mempfix.trb 588 2016-02-05 12:54:58Z ertl-hiro $
    5656#
    5757
     
    6565  end
    6666
    67   def prepare(id, params)
     67  def prepare(key, params)
    6868    # mpfatrが無効の場合(E_RSATR)[NGKI2225ï¼½
    6969    #(TA_TPRI以外のビットがセットされている場合)
     
    9898  end
    9999
    100   def generateInib(id, params)
     100  def generateInib(key, params)
    101101    if params[:mpf] == "NULL"
    102102      mpf = "_kernel_mpf_#{params[:mpfid]}"
  • asp3_wo_tecs/trunk/kernel/mutex.trb

    r304 r305  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: mutex.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     55#   $Id: mutex.trb 588 2016-02-05 12:54:58Z ertl-hiro $
    5656#
    5757
     
    6565  end
    6666
    67   def prepare(id, params)
     67  def prepare(key, params)
    6868    # mtxatrが無効の場合(E_RSATR)[NGKI2025ï¼½
    6969    # (TA_NULL,TA_TPRI,TA_CEILINGのいずれでもない場合)
     
    9898  end
    9999
    100   def generateInib(id, params)
     100  def generateInib(key, params)
    101101    return("(#{params[:mtxatr]}), INT_PRIORITY(#{params[:ceilpri]})")
    102102  end
  • asp3_wo_tecs/trunk/kernel/pridataq.trb

    r304 r305  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: pridataq.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     55#   $Id: pridataq.trb 588 2016-02-05 12:54:58Z ertl-hiro $
    5656#
    5757
     
    6666  end
    6767
    68   def prepare(id, params)
     68  def prepare(key, params)
    6969    # pdqatrが無効の場合(E_RSATR)[NGKI1804ï¼½
    7070    #(TA_TPRI以外のビットがセットされている場合)
     
    9292  end
    9393
    94   def generateInib(id, params)
     94  def generateInib(key, params)
    9595    if params[:pdqcnt] > 0
    9696      pdqmb = "_kernel_pdqmb_#{params[:pdqid]}"
  • asp3_wo_tecs/trunk/kernel/semaphore.trb

    r304 r305  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: semaphore.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     55#   $Id: semaphore.trb 588 2016-02-05 12:54:58Z ertl-hiro $
    5656#
    5757
     
    6565  end
    6666
    67   def prepare(id, params)
     67  def prepare(key, params)
    6868    # sematrが無効の場合(E_RSATR)[NGKI1456ï¼½
    6969    #(TA_TPRI以外のビットがセットされている場合)
     
    8383  end
    8484
    85   def generateInib(id, params)
     85  def generateInib(key, params)
    8686    return("(#{params[:sematr]}), (#{params[:isemcnt]}), (#{params[:maxsem]})")
    8787  end
  • asp3_wo_tecs/trunk/kernel/task.trb

    r304 r305  
    5353#   ã®è²¬ä»»ã‚’負わない.
    5454#
    55 #   $Id: task.trb 572 2016-02-01 14:40:09Z ertl-hiro $
     55#   $Id: task.trb 596 2016-02-06 17:08:56Z ertl-hiro $
    5656#
    5757
     
    6565  end
    6666
    67   def prepare(id, params)
     67  def prepare(key, params)
    6868    # tskatrが無効の場合(E_RSATR)[NGKI1028ï¼½
    6969    #(TA_ACT,TA_NOACTQUE,TARGET_TSKATR以外のビットがセットされている場合)
     
    8383    end
    8484
    85     # stkszがスタック領域のサイズとして正しくない場合[NGKI1056ï¼½
    86     if (params[:stksz] & ($CHECK_STKSZ_ALIGN - 1)) != 0
    87       error_wrong_id("E_PAR", params, :stksz, :tskid, "not aligned")
    88     end
    89 
    9085    # スタック領域の設定[NGKI1041ï¼½
    9186    if params[:stk] == "NULL"
     
    9489      params[:tinib_stk] = "_kernel_stack_#{params[:tskid]}"
    9590    else
     91      # stkszがスタック領域のサイズとして正しくない場合[NGKI1056ï¼½
     92      if (params[:stksz] & ($CHECK_STKSZ_ALIGN - 1)) != 0
     93        error_wrong_id("E_PAR", params, :stksz, :tskid, "not aligned")
     94      end
     95
    9696      params[:tinib_stksz] = params[:stksz]
    9797      params[:tinib_stk] = "(void *)(#{params[:stk]})"
     
    9999  end
    100100
    101   def generateInib(id, params)
     101  def generateInib(key, params)
    102102    if $USE_TSKINICTXB == 1
    103       tskinictxb = GenerateTskinictxb(id, params)
     103      tskinictxb = GenerateTskinictxb(key, params)
    104104    else
    105105      tskinictxb = "#{params[:tinib_stksz]}, #{params[:tinib_stk]}"
     
    124124$kernelCfgC.add("const ID _kernel_torder_table[TNUM_TSKID] = { ")
    125125$kernelCfgC.append("\t")
    126 $cfgData[:CRE_TSK].each_with_index do |(id, params), index|
     126$cfgData[:CRE_TSK].each_with_index do |(key, params), index|
    127127  $kernelCfgC.append(", ") if index > 0
    128128  $kernelCfgC.append("#{params[:tskid]}")
  • asp3_wo_tecs/trunk/kernel/time_event.c

    r302 r305  
    8585/*
    8686 *  タイムイベントヒープ操作マクロ
    87  *
    88  *  PARENTとCHILDの素直な定義は次の通りであるが,より実行効率の良いマク
    89  *  ロ定義としている.
    90  *  #define PARENT(p_tmevtn) (tmevt_heap + (((p_tmevtn) - tmevt_heap) >> 1))
    91  *  #define LCHILD(p_tmevtn) (tmevt_heap + (((p_tmevtn) - tmevt_heap) << 1))
    92  *
    93  *  下のPARENTの定義は,TMEVTNのé
    94 åˆ—が,sizeof(TMEVTN)の単位でアライン
    95  *  されていることを想定している.この前提が成立しない場合は,上の定義
    96  *  を使用するå¿
    97 è¦ãŒã‚る.
    98  */
    99 #define PARENT(p_tmevtn)                                /* 親ノードを求める */          \
    100                 ((TMEVTN *)(((((uintptr_t) tmevt_heap)                                          \
    101                                 + ((uintptr_t)(p_tmevtn))) >> 1) & ~(sizeof(TMEVTN) - 1)))
    102 #define LCHILD(p_tmevtn)                                /* 左の子ノードを求める */    \
    103                 ((TMEVTN *)((((uintptr_t)(p_tmevtn)) << 1) - ((uintptr_t) tmevt_heap)))
    104 
     87 */
     88#define PARENT(p_tmevtn)        (tmevt_heap + (((p_tmevtn) - tmevt_heap) >> 1))
     89                                                                                                        /* 親ノードを求める */
     90#define LCHILD(p_tmevtn)        (tmevt_heap + (((p_tmevtn) - tmevt_heap) << 1))
     91                                                                                                        /* 左の子ノードを求める */
    10592/*
    10693 *  タイムイベントヒープ中のå
Note: See TracChangeset for help on using the changeset viewer.