Class: HRPTaskPlugin
- Inherits:
-
HRPKernelObjectPlugin
- Object
- Node
- Plugin
- CelltypePlugin
- HRPKernelObjectPlugin
- HRPTaskPlugin
- Defined in:
- lib/tecsgen/plugin/HRPTaskPlugin.rb
Overview
celltype プラグインの共通の親クラス
Constant Summary
Constants inherited from Plugin
Instance Method Summary collapse
-
#new_cell(cell) ⇒ Object
oyama: add to avoid Ruby exception in code generation phase.
-
#print_cfg_cre(file, cell, val, tab) ⇒ Object
- CRE_TSKの出力 file
- FILE: 出力先ファイル cell
- Cell タスクセルインスタンス val
- Hash => string: カーネルオブジェクトの属性の解析結果 tab
-
string: タブ.
-
#print_cfg_sac(file, val, acv) ⇒ Object
- SAC_TSKの出力 file
- FILE: 出力先ファイル val
- Hash => string: カーネルオブジェクトの属性の解析結果 acv
-
Hash => string: アクセス許可ベクタ.
Methods inherited from HRPKernelObjectPlugin
check_referenced_cells, #gen_factory, get_celltype_list, include_celltype?, include_region, #initialize, isChecked, set_celltype, set_region_list
Methods inherited from CelltypePlugin
#gen_factory, gen_post_code, #initialize
Methods inherited from Plugin
#cdl_error, #check_plugin_arg, #gen_cdl_file, #gen_ep_func?, #gen_postamble, #gen_preamble, #initialize, #parse_plugin_arg, #print_msg, #set_locale, #set_silent
Methods inherited from Node
#cdl_error, #cdl_error2, #cdl_error3, #cdl_info, #cdl_info2, #cdl_warning, #cdl_warning2, #get_locale, #initialize, #locale_str, #set_locale
Constructor Details
This class inherits a constructor from HRPKernelObjectPlugin
Instance Method Details
#new_cell(cell) ⇒ Object
oyama: add to avoid Ruby exception in code generation phase.
45 46 47 48 49 50 51 52 |
# File 'lib/tecsgen/plugin/HRPTaskPlugin.rb', line 45 def new_cell(cell) region = cell.get_region dbgPrint "HRPTaskCelltypePlugin new_cell=#{cell.get_name} region=#{region.get_name}\n" domainOption = cell.get_region.get_domain_root.get_domain_type.get_option if domainOption == "OutOfDomain" cdl_error("HRP9999 HRP task '$1' must belong to a domain", cell.get_name) end end |
#print_cfg_cre(file, cell, val, tab) ⇒ Object
CRE_TSKの出力
file:: FILE: 出力先ファイル
cell :: Cell タスクセルインスタンス
val :: Hash {attr => string}: カーネルオブジェクトの属性の解析結果
tab :: string: タブ
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/tecsgen/plugin/HRPTaskPlugin.rb', line 64 def print_cfg_cre(file, cell, val, tab) val[:id] = val[:id].gsub(/(^|[^\$])\$id\$/, "\\1#{@celltype.get_name}_#{cell.get_name}") # $cbp$の代わり cell_IDX = @celltype.get_name_array(cell)[7] # CRE_TSKの生成 dbgPrint "assign task plugin\n" domainOption = cell.get_region.get_domain_root.get_domain_type.get_option # if cell.get_region.get_region_type == :DOMAIN if domainOption != "OutOfDomain" if val[:systemStackSize] == "0" # # システムスタックの定義を省略 # file.print <<EOT CRE_TSK(#{val[:id]}, { #{val[:attribute]}, #{cell_IDX}, tTask_start, #{val[:priority]}, #{val[:stackSize]}, NULL }); EOT else # # システムスタックの定義を追加 # file.print <<EOT CRE_TSK(#{val[:id]}, { #{val[:attribute]}, #{cell_IDX}, tTask_start, #{val[:priority]}, #{val[:stackSize]}, NULL, #{val[:systemStackSize]}, NULL }); EOT end else # # 無所属のタスクは存在してはならないため,エラーとする # raise "task #{val[:id]} must belong to a domain." end end |
#print_cfg_sac(file, val, acv) ⇒ Object
SAC_TSKの出力
file:: FILE: 出力先ファイル
val :: Hash {attr => string}: カーネルオブジェクトの属性の解析結果
acv :: Hash {accessPatternx => string}: アクセス許可ベクタ
102 103 104 105 106 |
# File 'lib/tecsgen/plugin/HRPTaskPlugin.rb', line 102 def print_cfg_sac(file, val, acv) # pp "SAC_TSK" # pp val file.puts "SAC_TSK(#{val[:id]}, { #{acv[:accessPattern1]}, #{acv[:accessPattern2]}, #{acv[:accessPattern3]}, #{acv[:accessPattern4]} });" end |