- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2TaskPlugin.rb
-
Property svn:mime-type
changed from
text/x-ruby
totext/x-ruby;charset=UTF-8
r388 r389 6 6 # Copyright (C) 2008-2014 by TOPPERS Project 7 7 #-- 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 # 免責すること. 44 30 # 45 # æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 46 ã 47 # ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 48 # ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 49 # ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 50 # ã®è²¬ä»»ãè² ããªãï¼ 31 # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 32 # よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 33 # に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 34 # アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 35 # の責任を負わない. 51 36 # 52 37 # $Id$ … … 55 40 #require "HRP2KernelObjectPlugin" 56 41 require_tecsgen_lib "HRP2KernelObjectPlugin.rb" 57 #== celltype ãã©ã°ã¤ã³ã®å 58 ±éã®è¦ªã¯ã©ã¹ 42 #== celltype プラグインの共通の親クラス 59 43 class HRP2TaskPlugin < HRP2KernelObjectPlugin 60 44 # @@ep = [:eActivateTask, :eControlTask, :eManageTask, :eReferTask ] 61 # ATT_MOD ãçææ¸ã¿ãã©ãã45 # ATT_MODを生成済みかどうか 62 46 @@generate_memory_module = false 63 47 … … 71 55 #val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_global_name.to_s}" ) 72 56 #val[:id] = @celltype.subst_name( val[:id], @celltype.get_name_array( cell ) ) 73 # $cbp$ ã®ä»£ãã57 # $cbp$の代わり 74 58 index = cell.get_id - @celltype.get_id_base 75 59 #cell_CB_name = "#{@celltype.get_global_name}_pCB_tab[#{index}]" 76 60 cell_CB_name = "#{index}" 77 # CRE_XXX/DEF_XXX ã®çæ61 # CRE_XXX/DEF_XXXの生成 78 62 dbgPrint "assign task plugin\n" 79 63 domainOption = cell.get_region.get_domain_root.get_domain_type.get_option … … 81 65 # cell.show_tree 1 82 66 if domainOption != "OutOfDomain" 83 # ä¿è·ãã¡ã¤ã³ã«å±ããå ´å67 # 保護ドメインに属する場合 84 68 if domainOption == "trusted" 85 # ã«ã¼ãã«ãã¡ã¤ã³69 # カーネルドメイン 86 70 if val[:userStackSize] != "OMIT" 87 71 raise "system task cannot have user stack." … … 92 76 EOT 93 77 else 94 # ã¦ã¼ã¶ãã¡ã¤ã³78 # ユーザドメイン 95 79 if val[:userStackSize] == "OMIT" 96 80 raise "user task must have user stack." … … 109 93 end 110 94 else 111 # ç¡æå±ã®å ´å95 # 無所属の場合 112 96 raise "task #{val[:id]} must belong to a domain." 113 97 end 114 98 115 # ä¾å¤ç¨ã®ãçæ99 # 例外用のを生成 116 100 file.print <<EOT 117 101 #{tab}DEF_TEX(#{val[:id]}, { #{val[:exceptionAttribute]}, tTask_start_exception }); … … 124 108 125 109 =begin 126 #tTask ã®åãå£ãªã¹ã110 #tTaskの受け口リスト 127 111 def get_entry_ports_name_list() 128 112 @@ep … … 130 114 =end 131 115 # 132 # ATT_MOD ã®çæ133 # gen_factory å®è¡æã«ã¯ï¼ãã¹ã¦ã®ã»ã«ã¿ã¤ããã©ã°ã¤ã³ãçææ¸ã¿ã®ã¯ããªã®ã§ï¼134 # ã«ã¼ãã«APIã³ã¼ãã®ã¡ã¢ãªä¿è·ãçç¥ã§ããï¼116 # ATT_MODの生成 117 # gen_factory実行時には,すべてのセルタイププラグインを生成済みのはずなので, 118 # カーネルAPIコードのメモリ保護を省略できる. 135 119 # 136 120 def gen_factory file … … 140 124 141 125 Cell.get_cell_list2.each { |cell| 142 # ãã¹ã¦ã®ã»ã«ãèµ°æ»ãã¦ã»ã«ã¿ã¤ãããã§ãã¯126 # すべてのセルを走査してセルタイプをチェック 143 127 ct = cell.get_celltype 144 128 if ct.class == Celltype && check_celltype_list.include?( ct ) == false 145 # ãã§ãã¯æ¸ã¿ã»ã«ã¿ã¤ãã«ç»é²129 # チェック済みセルタイプに登録 146 130 check_celltype_list << ct 147 131 148 # æªãã§ãã¯ã®ã»ã«ã¿ã¤ãã ã£ãå ´å132 # 未チェックのセルタイプだった場合 149 133 # puts "check for ATT_MOD : #{ct.classget_global_name}" 150 134 puts "check for ATT_MOD : #{ct.get_global_name}" 151 135 152 # ã«ã¼ãã«APIã®ã³ã¼ãï¼ãã¼ã¿ã¯ã¡ã¢ãªä¿è·ããªã136 # カーネルAPIのコード,データはメモリ保護しない 153 137 next if HRP2KernelObjectPlugin.include_celltype?( ct ) 154 138 155 # å¿ 156 è¦ã®ãªãã»ã«ã¿ã¤ãã®ã³ã¼ãï¼ãã¼ã¿ã¯ã¡ã¢ãªä¿è·ããªã 139 # 必要のないセルタイプのコード,データはメモリ保護しない 157 140 next if ! ct.need_generate? 158 141 159 # HRP2 ã®ãã¡ã¤ã³ãªã¼ã¸ã§ã³ãåå¾142 # HRP2のドメインリージョンを取得 160 143 regions = ct.get_domain_roots 161 144 regions_hrp2 = regions[ :HRP2 ] … … 166 149 puts "" 167 150 168 # ã»ã«ç®¡çãããã¯ã¨ã¹ã±ã«ãã³ã®ã¡ã¢ãªä¿è·169 # gen_celltype_names_domain ç¸å½ã®å¦ç151 # セル管理ブロックとスケルトンのメモリ保護 152 # gen_celltype_names_domain 相当の処理 170 153 if regions_hrp2.include?( Region.get_root ) == false && regions_hrp2.length > 1 171 # ãã¡ã¤ã³ãè¤æ°ã§ï¼OutOfDomainã«ã»ã«ãåå¨ããªãã»ã«ã¿ã¤ãã®å ´å 172 # å 173 ±æã®ã»ã«ç®¡çãããã¯ã¨ã¹ã±ã«ãã³ã³ã¼ããç»é²ãã 154 # ドメインが複数で,OutOfDomainにセルが存在しないセルタイプの場合 155 # 共有のセル管理ブロックとスケルトンコードを登録する 174 156 file = AppFile.open( "#{$gen}/tecsgen.cfg" ) 175 157 file.print "ATT_MOD(\"#{ct.get_global_name}_tecsgen.o\");\n" … … 188 170 } 189 171 190 # ã»ã«ã¿ã¤ãã³ã¼ãããªãå ´åã¯ã¹ããã172 # セルタイプコードがない場合はスキップ 191 173 next if ct.is_all_entry_inline? && ! ct.is_active? 192 174 193 # ã»ã«ã¿ã¤ãã³ã¼ãã®ã¡ã¢ãªä¿è·194 # gen_celltype_names_domain2 ç¸å½ã®å¦ç175 # セルタイプコードのメモリ保護 176 # gen_celltype_names_domain2 相当の処理 195 177 if regions_hrp2.include?( Region.get_root ) == true || regions_hrp2.length > 1 196 # OutOfDomainã«ã»ã«ãåå¨ããã»ã«ã¿ã¤ãã®å ´å 197 # ã¾ãã¯ï¼è¤æ°ã®ãã¡ã¤ã³ã«ã»ã«ãåå¨ããã»ã«ã¿ã¤ãã®å ´å 198 # ã»ã«ã¿ã¤ãã³ã¼ããå 199 ±æããããã«ç»é²ãã 178 # OutOfDomainにセルが存在するセルタイプの場合 179 # または,複数のドメインにセルが存在するセルタイプの場合 180 # セルタイプコードを共有するように登録する 200 181 file = AppFile.open( "#{$gen}/tecsgen.cfg" ) 201 182 else 202 # OutOfDomain ã§ãªãåä¸ã®ãã¡ã¤ã³ã«ã»ã«ãåå¨ããã»ã«ã¿ã¤ãã®å ´å203 # ã»ã«ã¿ã¤ãã³ã¼ããå°æããããã«ç»é²ãã183 # OutOfDomainでない単一のドメインにセルが存在するセルタイプの場合 184 # セルタイプコードを専有するように登録する 204 185 file = AppFile.open( "#{$gen}/tecsgen_#{regions_hrp2[0].get_namespace_path.get_global_name}.cfg" ) 205 186 end … … 208 189 file.close 209 190 else 210 # ä½ãããªã191 # 何もしない 211 192 end 212 193 } … … 214 195 @@generate_memory_module = true 215 196 else 216 # ä½ãããªã197 # 何もしない 217 198 end 218 199 end -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.