Changeset 429 for EcnlProtoTool/trunk/asp3_dcre/cfg/cfg.rb
- Timestamp:
- Jul 3, 2020, 7:19:17 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/cfg/cfg.rb
r331 r429 1 #!/usr/bin/env ruby 1 #!/usr/bin/env ruby -Eutf-8 -w 2 2 # -*- coding: utf-8 -*- 3 3 # … … 5 5 # 6 6 # Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN 7 # Copyright (C) 2015 ,2016by Embedded and Real-Time Systems Laboratory7 # Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory 8 8 # Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 # … … 37 37 # の責任を負わない. 38 38 # 39 # $Id $39 # $Id: cfg.rb 175 2019-06-19 01:51:58Z ertl-hiro $ 40 40 # 41 41 … … 56 56 # 57 57 # 共通 58 VERSION = "1. 2.2"58 VERSION = "1.5.0" 59 59 60 60 # cfg1_out関係 61 CFG1_PREFIX = "TOPPERS_cfg_" 62 CFG1_MAGIC_NUM = "TOPPERS_magic_number" 63 CFG1_SIZEOF_SIGNED = "TOPPERS_sizeof_signed_t" 64 CFG1_OUT_C = "cfg1_out.c" 65 CFG1_OUT_DB = "cfg1_out.db" 66 CFG1_OUT_SREC = "cfg1_out.srec" 67 CFG1_OUT_SYMS = "cfg1_out.syms" 68 CFG1_OUT_TIMESTAMP = "cfg1_out.timestamp" 69 CFG1_OUT_TARGET_H = "target_cfg1_out.h" 61 CFG1_PREFIX = "TOPPERS_cfg_" 62 CFG1_MAGIC_NUM = "TOPPERS_magic_number" 63 CFG1_SIZEOF_SIGNED = "TOPPERS_sizeof_signed_t" 64 CFG1_SIZEOF_INTPTR = "TOPPERS_sizeof_intptr_t" 65 CFG1_SIZEOF_CHARPTR = "TOPPERS_sizeof_char_ptr_t" 66 CFG1_OUT_C = "cfg1_out.c" 67 CFG1_OUT_DB = "cfg1_out.db" 68 CFG1_OUT_SREC = "cfg1_out.srec" 69 CFG1_OUT_SYMS = "cfg1_out.syms" 70 CFG1_OUT_TIMESTAMP = "cfg1_out.timestamp" 71 CFG1_OUT_TARGET_H = "target_cfg1_out.h" 70 72 71 73 # cfg2_out関係 … … 105 107 $noParseError = 0 106 108 def parse_error(cfgFile, message) 107 error(message, "#{cfgFile.getFileName ()}:#{cfgFile.getLineNo}:")109 error(message, "#{cfgFile.getFileName}:#{cfgFile.getLineNo}:") 108 110 if ($noParseError += 1) >= 10 109 111 abort("too many errors emitted, stopping now") … … 113 115 # システムコンフィギュレーションファイルの構文解析時の警告 114 116 def parse_warning(cfgFile, message) 115 warning(message, "#{cfgFile.getFileName ()}:#{cfgFile.getLineNo}:")117 warning(message, "#{cfgFile.getFileName}:#{cfgFile.getLineNo}:") 116 118 end 117 119 … … 155 157 def error_ercd(errorCode, params, message) 156 158 error_api(params, "#{errorCode}: #{message}") 157 end158 159 # 静的API処理時の警告(エラーコード付き)160 def warning_ercd(errorCode, params, message)161 warning_api(params, "#{errorCode}: #{message}")162 159 end 163 160 … … 316 313 # ハッシュのキーとして使う時の比較も数値情報で行う 317 314 def eql?(other) 318 @val == other .val315 @val == other 319 316 end 320 317 … … 390 387 if symbolData.has_key?(:VALUE) 391 388 eval("$#{symbolName} = #{symbolData[:VALUE]}") 389 if symbolData.has_key?(:NUMSTRVAR) 390 eval("$#{symbolData[:NUMSTRVAR]} = " \ 391 "NumStr.new(symbolData[:VALUE], symbolData[:EXPR])") 392 end 392 393 end 393 394 end … … 431 432 432 433 # 434 # インクルードディレクティブ(#include)の生成 435 # 436 def GenerateIncludes(genFile) 437 $cfgFileInfo.each do |cfgInfo| 438 if cfgInfo.has_key?(:DIRECTIVE) 439 genFile.add(cfgInfo[:DIRECTIVE]) 440 end 441 end 442 end 443 444 # 433 445 # パス3の処理 434 446 # … … 439 451 db = PStore.new(CFG2_OUT_DB) 440 452 db.transaction(true) do 441 $apiDefinition = db[:apiDefinition] 442 $symbolValueTable = db[:symbolValueTable] 443 $cfgFileInfo = db[:cfgFileInfo] 444 $includeFiles = db[:includeFiles] 445 $cfgData = db[:cfgData] 446 $asmLabel = db[:asmLabel] 447 $endianLittle = db[:endianLittle] 448 $cfg2Data = db[:cfg2Data] 449 end 450 $cfg3Data = {} 453 db.roots.each do |var| 454 eval("$#{var} = db[:#{var}]") 455 end 456 end 451 457 452 458 # … … 465 471 # パス4に引き渡す情報をファイルに生成 466 472 # 467 if $omitOutputDb.nil?473 if !$omitOutputDb 468 474 db = PStore.new(CFG3_OUT_DB) 469 475 db.transaction do 470 db[:apiDefinition] = $apiDefinition 471 db[:symbolValueTable] = $symbolValueTable 472 db[:cfgFileInfo] = $cfgFileInfo 473 db[:includeFiles] = $includeFiles 474 db[:cfgData] = $cfgData 475 db[:asmLabel] = $asmLabel 476 db[:endianLittle] = $endianLittle 477 db[:cfg3Data] = $cfg3Data 476 $globalVars.each do |var| 477 eval("db[:#{var}] = $#{var}") 478 end 478 479 end 479 480 end … … 489 490 db = PStore.new(CFG3_OUT_DB) 490 491 db.transaction(true) do 491 $apiDefinition = db[:apiDefinition] 492 $symbolValueTable = db[:symbolValueTable] 493 $cfgFileInfo = db[:cfgFileInfo] 494 $includeFiles = db[:includeFiles] 495 $cfgData = db[:cfgData] 496 $asmLabel = db[:asmLabel] 497 $endianLittle = db[:endianLittle] 498 $cfg3Data = db[:cfg3Data] || db[:cfg2Data] 492 db.roots.each do |var| 493 eval("$#{var} = db[:#{var}]") 494 end 499 495 end 500 496 … … 557 553 $romImageFileName = nil 558 554 $romSymbolFileName = nil 559 $dependencyFileName = nil560 555 $idInputFileName = nil 561 556 $idOutputFileName = nil 557 $dependencyFileName = nil 558 $omitOutputDb = false 559 $supportDomain = false 560 $supportClass = false 562 561 563 562 # 564 563 # オプションの処理 565 564 # 566 OptionParser.new( banner="Usage: cfg.rb [options] CONFIG-FILE", 40) do |opt|565 OptionParser.new("Usage: cfg.rb [options] CONFIG-FILE", 40) do |opt| 567 566 opt.version = VERSION 567 opt.release = nil 568 568 opt.on("-k KERNEL", "--kernel KERNEL", "kernel profile name") do |val| 569 569 $kernel = val … … 605 605 $omitOutputDb = true 606 606 end 607 opt.on("--enable-domain", "enable DOMAIN support") do 608 $supportDomain = true 609 end 610 opt.on("--enable-class", "enable CLASS support") do 611 $supportClass = true 612 end 607 613 opt.on("-v", "--version", "show version number") do 608 abort(opt.ver) 614 puts(opt.ver) 615 exit(0) 609 616 end 610 617 opt.on("-h", "--help", "show help (this)") do 611 abort(opt.help) 618 puts(opt.help) 619 exit(0) 612 620 end 613 621 opt.parse!(ARGV) … … 642 650 $supportDomain = true 643 651 when /^fmp/ 652 $supportClass = true 653 when /^hrmp/ 654 $supportDomain = true 644 655 $supportClass = true 645 656 end
Note:
See TracChangeset
for help on using the changeset viewer.