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/tecsgen/tecslib/plugin/HRP2KernelObjectPlugin.rb

    r321 r429  
    44#      Generator for TOPPERS Embedded Component System
    55
    6 #   Copyright (C) 2008-2012 by TOPPERS Project
     6#   Copyright (C) 2008-2017 by TOPPERS Project
    77#--
    88#   上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     
    3535#   の責任を負わない.
    3636
     37#   $Id$
    3738#++
    3839
     
    185186                val = {}
    186187                @celltype.get_attribute_list.each{ |a|
    187                     p a.get_name
     188                    # p a.get_name
    188189                    if a.get_type.kind_of?( ArrayType )
    189190                        val[a.get_name] = []
     
    217218                if val[:id].nil? != true
    218219                    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 ) )
    220222                end
    221223                # $cbp$の代わり
     
    243245                        file2.puts "}\n"
    244246                    else
    245                         print "~~~~~ #{cell.get_region.get_name.to_s} is included in"
    246                         p @@region_list
     247                        dbgPrint "~~~~~ #{cell.get_region.get_name.to_s} is included in"
     248                        # p @@region_list
    247249                    end
    248250                    file3 = AppFile.open( "#{$gen}/tecsgen_#{cell_domain_root.get_name.to_s}.cfg" )
     
    257259                puts "===== end check my domain #{cell.get_name} ====="
    258260                # 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
    279300                    else
    280                         acv << "TACP_SHARED"
     301                        # 無所属の場合
     302                        print_cfg_sac(file2, val, acv)
    281303                    end
    282304
    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} ====="
    300306                end
    301 
    302                 puts "===== end check regions #{cell.get_name} ====="
    303307            end
    304308        }
     
    319323
    320324    def self.check_referenced_cells()
    321         puts "===== begin check registered celltype ====="
     325        dbgPrint "===== begin check registered celltype =====\n"
    322326        self.get_celltype_list.each { |ct|
    323             p ct.get_name.to_s
     327            dbgPrint( ct.get_name.to_s + "\n" )
    324328        }
    325         puts "===== end check registered celltype ====="
     329        dbgPrint "===== end check registered celltype =====\n"
    326330
    327331=begin
     
    331335                j = cell.get_join_list.get_item(p.get_name)
    332336                printf "===== check call port : "
    333                 p p.get_name.to_s
     337                # p p.get_name.to_s
    334338                next if j.nil? # 未結合の場合
    335339                if @@celltype_list.include?(j.get_celltype)
     
    338342                    j.get_cell.set_referenced_cell(cell, j.get_port_name)
    339343                    printf "===== check joined rhs cell : "
    340                     p j.get_cell.get_name.to_s
     344                    # p j.get_cell.get_name.to_s
    341345                    printf "===== check joined rhs port_name : "
    342                     p j.get_port_name
     346                    # p j.get_port_name
    343347                end
    344348            }
Note: See TracChangeset for help on using the changeset viewer.