Ignore:
Timestamp:
May 22, 2019, 10:03:37 PM (5 years ago)
Author:
coas-nagasima
Message:

ビルドが通るよう更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • azure_iot_hub/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2KernelObjectPlugin.rb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r388 r389  
    66#   Copyright (C) 2008-2017 by TOPPERS Project
    77#--
    8 #   ä¸Šè¨˜è‘—作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    11 #   å¤‰ãƒ»å†é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    15 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    16 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20 #       è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    23 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24 #       ç”¨ã§ããªã„形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26 #       ã¨ï¼Ž
    27 #     (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    31 #     (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34 #         å ±å‘Šã™ã‚‹ã“と.
    35 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    40 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42 #       å
    43 è²¬ã™ã‚‹ã“と.
     8#   上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13#       スコード中に含まれていること.
     14#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17#       の無保証規定を掲載すること.
     18#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20#       と.
     21#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     23#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24#         報告すること.
     25#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29#       免責すること.
    4430
    45 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    46 ãŠ
    47 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    49 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    50 #   ã®è²¬ä»»ã‚’負わない.
     31#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35#   の責任を負わない.
    5136
    5237#   $Id$
    5338#++
    5439
    55 # Regionクラスにメソッドを追加
     40# Regionクラスにメソッドを追加
    5641=begin
    5742class Region
     
    7055=end
    7156
    72 # Cellクラスにインスタンス変数とメソッドを追加
     57# Cellクラスにインスタンス変数とメソッドを追加
    7358=begin
    7459class Cell
     
    8671    end
    8772
    88     # set_referenced_cellにしたほうがよい
     73    # set_referenced_cellにしたほうがよい
    8974    # def set_referenced_region( region, port_name )
    9075    def set_referenced_cell( cell, port_name )
     
    140125=end
    141126
    142 #== celltype プラグインのå
    143 ±é€šã®è¦ªã‚¯ãƒ©ã‚¹
     127#== celltype プラグインの共通の親クラス
    144128class HRP2KernelObjectPlugin < CelltypePlugin
    145129    # @@obj_hash = {}
    146130
    147131    #@celltype:: Celltype
    148     #@option:: String     :オプション文字列
     132    #@option:: String     :オプション文字列
    149133    def initialize( celltype, option )
    150134        super
    151         # それぞれのカーネルオブジェクトを解析対象セルタイプに追加
     135        # それぞれのカーネルオブジェクトを解析対象セルタイプに追加
    152136        HRP2KernelObjectPlugin.set_celltype(celltype)
    153137    end
    154138 
    155139    #=== HRP2KernelObjectPlugin#print_cfg_cre
    156     # 各種カーネルオブジェクトのCRE_*の出力
    157     # file:: FILE:     å‡ºåŠ›å
    158 ˆãƒ•ã‚¡ã‚¤ãƒ«
    159     # val :: string:   ã‚«ãƒ¼ãƒãƒ«ã‚ªãƒ–ジェクトの属性の解析結果
    160     # tab :: string:   ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆç”¨ã®tab
     140    # 各種カーネルオブジェクトのCRE_*の出力
     141    # file:: FILE:     出力先ファイル
     142    # val :: string:   カーネルオブジェクトの属性の解析結果
     143    # tab :: string:   インデント用のtab
    161144    def print_cfg_cre(file, cell, val, tab)
    162145        raise "called virtual method print_cfg_cre in #{@celltype.get_name} plugin"
     
    164147 
    165148    #=== HRP2KernelObjectPlugin#print_cfg_sac
    166     # 各種カーネルオブジェクトのSAC_*の出力
    167     # file:: FILE:     å‡ºåŠ›å
    168 ˆãƒ•ã‚¡ã‚¤ãƒ«
    169     # val :: string:   ã‚«ãƒ¼ãƒãƒ«ã‚ªãƒ–ジェクトの属性の解析結果
    170     # acv :: string:   ã‚¢ã‚¯ã‚»ã‚¹ãƒ™ã‚¯ã‚¿
     149    # 各種カーネルオブジェクトのSAC_*の出力
     150    # file:: FILE:     出力先ファイル
     151    # val :: string:   カーネルオブジェクトの属性の解析結果
     152    # acv :: string:   アクセスベクタ
    171153    def print_cfg_sac(file, val, acv)
    172154        raise "called virtual method print_cfg_sac in #{@celltype.get_name} plugin"
     
    174156 
    175157    #=== HRP2KernelObjectPlugin#get_entry_ports_name_list
    176     # カーネルオブジェクトの各種アクセスの種別の受け口名を取得
     158    # カーネルオブジェクトの各種アクセスの種別の受け口名を取得
    177159    def get_entry_ports_name_list()
    178160        raise "called virtual method get_entry_ports_name_list in #{@celltype.get_name} plugin"
     
    186168        puts "===== begin #{@celltype.get_name.to_s} plugin ====="
    187169
    188         # 対象となるすべてのセルについて、受け口に結合されている
    189         # セルの所属ドメインを解析
     170        # 対象となるすべてのセルについて、受け口に結合されている
     171        # セルの所属ドメインを解析
    190172        if !HRP2KernelObjectPlugin.isChecked()
    191173            HRP2KernelObjectPlugin.check_referenced_cells()
     
    194176        end
    195177
    196         # 追記するために AppFile を使う(文字コード変換されない)
     178        # 追記するために AppFile を使う(文字コード変換されない)
    197179        file2 = AppFile.open( "#{$gen}/tecsgen.cfg" )
    198180        file2.print "\n/* Generated by #{self.class.name} */\n\n"
     
    201183            if cell.is_generate?
    202184                puts "===== begin check my domain #{cell.get_name} ====="
    203                 # attrの値をハッシュにå
    204 ¥ã‚Œã‚‹
     185                # attrの値をハッシュに入れる
    205186                val = {}
    206187                @celltype.get_attribute_list.each{ |a|
     
    209190                        val[a.get_name] = []
    210191                        if j = cell.get_join_list.get_item(a.get_name)
    211                             # セル生成時に初期化する場合
     192                            # セル生成時に初期化する場合
    212193                            j.get_rhs.each { |elem|
    213194                                val[a.get_name] << elem.to_s
    214195                            }
    215196                        elsif i = a.get_initializer
    216                             # セルタイプの初期化値を使う場合
     197                            # セルタイプの初期化値を使う場合
    217198                            i.each { |elem|
    218199                                val[a.get_name] << elem.to_s
     
    223204                    else
    224205                        if j = cell.get_join_list.get_item(a.get_name)
    225                             # セル生成時に初期化する場合
     206                            # セル生成時に初期化する場合
    226207                            val[a.get_name] = j.get_rhs.to_s
    227208                        elsif i = a.get_initializer
    228                             # セルタイプの初期化値を使う場合
     209                            # セルタイプの初期化値を使う場合
    229210                            val[a.get_name] = i.to_s
    230211                        else
     
    233214                    end
    234215                }
    235                 # generate.rbを参考に
    236                 # $id$を置換
     216                # generate.rbを参考に
     217                # $id$を置換
    237218                if val[:id].nil? != true
    238219                    puts val[:id]
     
    240221                    val[:id] = @celltype.subst_name( val[:id], @celltype.get_name_array( cell ) )
    241222                end
    242                 # $cbp$の代わり
     223                # $cbp$の代わり
    243224                index = cell.get_id - @celltype.get_id_base
    244225                cell_CB_name = "#{@celltype.get_global_name}_CB_tab[#{index}]"
     
    246227                cell_domain_type = cell.get_region.get_domain_root.get_domain_type
    247228
    248                 # CRE_XXX/DEF_XXXの生成
     229                # CRE_XXX/DEF_XXXの生成
    249230                if cell_domain_type.get_option.to_s != "OutOfDomain"
    250                     # 保護ドメインに属する場合
     231                    # 保護ドメインに属する場合
    251232                    if !HRP2KernelObjectPlugin.include_region(cell_domain_root.get_name.to_s)
    252                         # その保護ドメインの.cfgが生成されていない場合
     233                        # その保護ドメインの.cfgが生成されていない場合
    253234                        HRP2KernelObjectPlugin.set_region_list(cell_domain_root.get_name.to_s)
    254235                        puts "~~~~~ #{cell_domain_root.get_name.to_s} is registered!"
     
    271252                    file3.close
    272253                else
    273                     # 無所属の場合
     254                    # 無所属の場合
    274255                    puts "~~~~~ #{cell_domain_root.get_name.to_s} is OutOfDomain"
    275256                    print_cfg_cre(file2, cell, val, "")
     
    277258
    278259                puts "===== end check my domain #{cell.get_name} ====="
    279                 # SAC_XXXの生成
     260                # SAC_XXXの生成
    280261                if !val[:accessPattern].nil?
    281262                    puts "===== begin check regions #{cell.get_name} ====="
     
    284265
    285266                    #ep = [ :eTaskActivate, :eTaskControl, :eTaskManage, :eTaskRefer ]
    286                     #各カーネルオブジェクトの受け口名を取得
     267                    #各カーネルオブジェクトの受け口名を取得
    287268                    # ep = get_entry_ports_name_list()
    288269                    i = 0
    289270                    acv = []
    290                     # アクセス許可ベクタの生成
     271                    # アクセス許可ベクタの生成
    291272                    val[:accessPattern].each { |acptnx|
    292                         # アクセス許可パターンの生成
     273                        # アクセス許可パターンの生成
    293274                        if acptnx != "OMIT"
    294275                            acv << acptnx
     
    309290                    p acv
    310291
    311                     #各種SACの生成
     292                    #各種SACの生成
    312293                    domainOption = cell_domain_type.get_option
    313294                    # if cell.get_region.get_region_type == :DOMAIN
    314295                    if domainOption != "OutOfDomain"
    315                         # 保護ドメインに属する場合
     296                        # 保護ドメインに属する場合
    316297                        file3 = AppFile.open( "#{$gen}/tecsgen_#{cell.get_region.get_name.to_s}.cfg" )
    317298                        print_cfg_sac(file3, val, acv)
    318299                        file3.close
    319300                    else
    320                         # 無所属の場合
     301                        # 無所属の場合
    321302                        print_cfg_sac(file2, val, acv)
    322303                    end
     
    331312    end
    332313
    333     # カーネルオブジェクトセルタイプの管理
    334     # HRP2KernelObjectPluginクラスに対してメソッド呼出しを行うことを想定
     314    # カーネルオブジェクトセルタイプの管理
     315    # HRP2KernelObjectPluginクラスに対してメソッド呼出しを行うことを想定
    335316    @@checked = false
    336317    @@celltype_list = []
     
    355336                printf "===== check call port : "
    356337                # p p.get_name.to_s
    357                 next if j.nil? # 未結合の場合
     338                next if j.nil? # 未結合の場合
    358339                if @@celltype_list.include?(j.get_celltype)
    359340                    # j.get_cell.set_referenced_region(cell.get_region)
Note: See TracChangeset for help on using the changeset viewer.