网站大量收购闲置独家精品文档,联系QQ:2885784924

M5编译流程分_WPrJin.pptx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
M5编译流程分_WPrJin

M5编译流程分析 Scons脚本解读 2017-6-18 1 M5编译步骤分析 2017-6-18 2 Scons执行脚步始终从源文件根目录下的 Sconstruct开始执行 2017-6-18 3 Sconstruct调用函数Sconscript(*p, *KWp)执行子目录下的Sconscript。 Fig. 2 Sconstruct调用子级SConscript Fig. 1 M5源文件首层结构 Src/Sconscript遍历执行m5根文件下的所有 目录中的Sconscript 2017-6-18 4 Fig. 3 Sconscript的遍历执行 src/Sconscript完成对编译环境的配置,并调用函数makeEnv完成对特定环境的编译 2017-6-18 5 Fig.4 有四种可配置的编译目标 Scons中规定当有多个编译目标时,执行函数Default()指定的编译目标。除非有指定命令行参数即列表COMMAND_LINE_TARGET 有值(见scons user manu 12.3) 2017-6-18 6 Fig.5 Sconstruct对编译目标的指定 M5环境变量 2017-6-18 7 环境变量(下称env)是一种字典变量。它是m5配置的基础。根据编译平台的不同设置其编译器,操作系统中的系统命令等。 2017-6-18 8 父Sconscript和子Sconscript间通过函数Export(),Import()完成变量传递;传递的变量实现了轻量级的配置方法。 Sconscript间传递的变量有: all_isa_list [ ]:记录所有支持的指令类型 all_cpu_list[ ]:记录所有支持的CPU模型 default_cpus[ ]:缺省支持的CPU模型 cc_lib_sources[ ]:所有编译成lib的C++文件列表 cc_bin_sources[ ]:所有编译成obj的C++文件列表 py_sources[ ]:所有要被执行或涉及的python脚本列表 swig_sources[ ]:所有要被编译的swig源文件列表 Sconstruct中定义的列表及其配置 2017-6-18 9 all_isa_list[ ], all_cpu_list[ ], default_cpus[ ]在Sconstruct中定义并配置 Sconsopts在有影响的子级目录中存在,这些子级目录有: Fig.6 Sconsopt配置脚本的遍历执行 all_cpu_list.append(O3CPU) default_cpus.append(O3CPU) List.2 src/cpu/O3/Sconsopt配置脚本 all_isa_list.append(alpha) List.1 src/arch/alpha/Sconsopt配置脚本 src/Sconscript中定义的列表及其配置 2017-6-18 10 src/Sconscript中定义了函数makeEnv( )来完成目标的建立,其中使用的 全局参数列表及其操作函数有: 全局列表变量 对应函数 cc_swig_sources[ ] SwigSource( ) cc_lib_sources[ ] Source( ) cc_bin_sources[ ] BinSource( ) py_source[ ] PySource( ) List. 3 全局变量列表 cc_lib_sources = [] def Source(source): Add a source file to the libm5 build if not isinstance(source, SCons.Node.FS.File): source = File(source) cc_lib_sources.append(source) List. 4 列表变量的添加 2017-6-18 11 Fig.7 在目标目录中子目录的Sconscript完成对列表变量的添加:

文档评论(0)

kejie8080230 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档