- Timestamp:
- Jul 3, 2020, 7:19:17 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2KernelObjectPlugin.rb
r321 r429 4 4 # Generator for TOPPERS Embedded Component System 5 5 # 6 # Copyright (C) 2008-201 2by TOPPERS Project6 # Copyright (C) 2008-2017 by TOPPERS Project 7 7 #-- 8 8 # 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ … … 35 35 # の責任を負わない. 36 36 # 37 # $Id$ 37 38 #++ 38 39 … … 185 186 val = {} 186 187 @celltype.get_attribute_list.each{ |a| 187 p a.get_name188 # p a.get_name 188 189 if a.get_type.kind_of?( ArrayType ) 189 190 val[a.get_name] = [] … … 217 218 if val[:id].nil? != true 218 219 puts val[:id] 219 val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" ) 220 #val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" ) 221 val[:id] = @celltype.subst_name( val[:id], @celltype.get_name_array( cell ) ) 220 222 end 221 223 # $cbp$の代わり … … 243 245 file2.puts "}\n" 244 246 else 245 print "~~~~~ #{cell.get_region.get_name.to_s} is included in"246 p @@region_list247 dbgPrint "~~~~~ #{cell.get_region.get_name.to_s} is included in" 248 # p @@region_list 247 249 end 248 250 file3 = AppFile.open( "#{$gen}/tecsgen_#{cell_domain_root.get_name.to_s}.cfg" ) … … 257 259 puts "===== end check my domain #{cell.get_name} =====" 258 260 # SAC_XXXの生成 259 puts "===== begin check regions #{cell.get_name} =====" 260 p val[:accessPattern] 261 p val[:accessPattern].class 262 263 #ep = [ :eTaskActivate, :eTaskControl, :eTaskManage, :eTaskRefer ] 264 #各カーネルオブジェクトの受け口名を取得 265 # ep = get_entry_ports_name_list() 266 i = 0 267 acv = [] 268 # アクセス許可ベクタの生成 269 val[:accessPattern].each { |acptnx| 270 # アクセス許可パターンの生成 271 if acptnx != "OMIT" 272 acv << acptnx 273 p acv[i] 274 elsif cell_domain_type.get_option.to_s == "trusted" 275 acv << "TACP_KERNEL" 276 p acv[i] 277 elsif cell_domain_type.get_option.to_s != "OutOfDomain" 278 acv << "TACP(#{cell_domain_root.get_name.to_s})" 261 if !val[:accessPattern].nil? 262 puts "===== begin check regions #{cell.get_name} =====" 263 # p val[:accessPattern] 264 # p val[:accessPattern].class 265 266 #ep = [ :eTaskActivate, :eTaskControl, :eTaskManage, :eTaskRefer ] 267 #各カーネルオブジェクトの受け口名を取得 268 # ep = get_entry_ports_name_list() 269 i = 0 270 acv = [] 271 # アクセス許可ベクタの生成 272 val[:accessPattern].each { |acptnx| 273 # アクセス許可パターンの生成 274 if acptnx != "OMIT" 275 acv << acptnx 276 # p acv[i] 277 elsif cell_domain_type.get_option.to_s == "trusted" 278 acv << "TACP_KERNEL" 279 # p acv[i] 280 elsif cell_domain_type.get_option.to_s != "OutOfDomain" 281 acv << "TACP(#{cell_domain_root.get_name.to_s})" 282 else 283 acv << "TACP_SHARED" 284 end 285 286 i += 1 287 } 288 289 dbgPrint "acv = " 290 p acv 291 292 #各種SACの生成 293 domainOption = cell_domain_type.get_option 294 # if cell.get_region.get_region_type == :DOMAIN 295 if domainOption != "OutOfDomain" 296 # 保護ドメインに属する場合 297 file3 = AppFile.open( "#{$gen}/tecsgen_#{cell.get_region.get_name.to_s}.cfg" ) 298 print_cfg_sac(file3, val, acv) 299 file3.close 279 300 else 280 acv << "TACP_SHARED" 301 # 無所属の場合 302 print_cfg_sac(file2, val, acv) 281 303 end 282 304 283 i += 1 284 } 285 286 print "acv = " 287 p acv 288 289 #各種SACの生成 290 domainOption = cell_domain_type.get_option 291 # if cell.get_region.get_region_type == :DOMAIN 292 if domainOption != "OutOfDomain" 293 # 保護ドメインに属する場合 294 file3 = AppFile.open( "#{$gen}/tecsgen_#{cell.get_region.get_name.to_s}.cfg" ) 295 print_cfg_sac(file3, val, acv) 296 file3.close 297 else 298 # 無所属の場合 299 print_cfg_sac(file2, val, acv) 305 puts "===== end check regions #{cell.get_name} =====" 300 306 end 301 302 puts "===== end check regions #{cell.get_name} ====="303 307 end 304 308 } … … 319 323 320 324 def self.check_referenced_cells() 321 puts "===== begin check registered celltype ====="325 dbgPrint "===== begin check registered celltype =====\n" 322 326 self.get_celltype_list.each { |ct| 323 p ct.get_name.to_s327 dbgPrint( ct.get_name.to_s + "\n" ) 324 328 } 325 puts "===== end check registered celltype ====="329 dbgPrint "===== end check registered celltype =====\n" 326 330 327 331 =begin … … 331 335 j = cell.get_join_list.get_item(p.get_name) 332 336 printf "===== check call port : " 333 p p.get_name.to_s337 # p p.get_name.to_s 334 338 next if j.nil? # 未結合の場合 335 339 if @@celltype_list.include?(j.get_celltype) … … 338 342 j.get_cell.set_referenced_cell(cell, j.get_port_name) 339 343 printf "===== check joined rhs cell : " 340 p j.get_cell.get_name.to_s344 # p j.get_cell.get_name.to_s 341 345 printf "===== check joined rhs port_name : " 342 p j.get_port_name346 # p j.get_port_name 343 347 end 344 348 }
Note:
See TracChangeset
for help on using the changeset viewer.