Ignore:
Timestamp:
Jul 3, 2020, 7:19:17 PM (4 years ago)
Author:
coas-nagasima
Message:

ASP3, TINET, mbed を更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/kernel/task.trb

    r321 r429  
    66#
    77#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
    8 #   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
     8#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
    99#               Graduate School of Information Science, Nagoya Univ., JAPAN
    1010#
     
    5454    params[:stk] ||= "NULL"
    5555
    56     # tskatrが無効の場合(E_RSATR)[NGKI1028]
     56    # tskatrが無効の場合(E_RSATR)[NGKI1028][NGKI3526][ASPS0009]
     57    # [NGKI1016]
    5758    #(TA_ACT,TA_NOACTQUE,TARGET_TSKATR以外のビットがセットされている場合)
    5859    if (params[:tskatr] & ~($TA_ACT|$TA_NOACTQUE|$TARGET_TSKATR)) != 0
     
    6061    end
    6162
    62     # (TMIN_TPRI <= itskpri && itskpri <= TMAX_TPRI)でない場合[NGKI1034]
     63    # itskpriが有効範囲外の場合(E_PAR)[NGKI1034]
     64    #(TMIN_TPRI <= itskpri && itskpri <= TMAX_TPRIでない場合)
    6365    if !($TMIN_TPRI <= params[:itskpri] && params[:itskpri] <= $TMAX_TPRI)
    6466      error_illegal_id("E_PAR", params, :itskpri, :tskid)
     
    6668
    6769    # stkszがターゲット定義の最小値(TARGET_MIN_STKSZ,未定義の場合は1)
    68     # よりも小さい場合[NGKI1042]
     70    # よりも小さい場合(E_PAR)[NGKI1042]
    6971    if params[:stksz] < $TARGET_MIN_STKSZ
    7072      error_wrong_id("E_PAR", params, :stksz, :tskid, "too small")
     
    7880      params[:tinib_stk] = stkName
    7981    else
    80       # stkszがスタック領域のサイズとして正しくない場合[NGKI1056]
     82      # stkszがターゲット定義の制約に合致しない場合(E_PAR)[NGKI1056]
    8183      if (params[:stksz] & ($CHECK_STKSZ_ALIGN - 1)) != 0
    8284        error_wrong_id("E_PAR", params, :stksz, :tskid, "not aligned")
     
    8587      params[:tinib_stksz] = params[:stksz]
    8688      params[:tinib_stk] = "(void *)(#{params[:stk]})"
     89    end
     90
     91    # ターゲット依存の処理(ターゲット依存のエラーチェックを含む)
     92    if defined? TargetTaskPrepare()
     93      TargetTaskPrepare(key, params)
    8794    end
    8895  end
     
    100107end
    101108
     109# タスクが1つも登録されていない場合[NGKI0033]
     110if $cfgData[:CRE_TSK].size() == 0
     111  error("no task is registered")
     112end
     113
    102114#
    103115#  タスク管理に関する情報の生成
    104116#
    105117$kernelCfgC.comment_header("Task Management Functions")
    106 if $cfgData[:CRE_TSK].size() == 0
    107   error("no task is registered")
    108 end
    109118TaskObject.new.generate()
    110119
     
    112121$kernelCfgC.add("const ID _kernel_torder_table[TNUM_STSKID] = { ")
    113122$kernelCfgC.append("\t")
    114 $cfgData[:CRE_TSK].each_with_index do |(key, params), index|
     123$cfgData[:CRE_TSK].each_with_index do |(_, params), index|
    115124  $kernelCfgC.append(", ") if index > 0
    116125  $kernelCfgC.append("#{params[:tskid]}")
Note: See TracChangeset for help on using the changeset viewer.