zoukankan      html  css  js  c++  java
  • Rocket

    https://mp.weixin.qq.com/s/Ypjv95Yidy5Pto6u_00HKQ

    简单介绍顶层目录下的Makefrag。

    1. 检查RISCV环境变量是否定义:

    2. 定义项目相关的变量:

    3. 处理config:

    其中:

    a. 定义comma变量;

    b. 定义space变量;

    c. 把CONFIG中的逗号替换成空格,这样以逗号分隔的多个configs即变成以空格分隔,留待foreach处理;

    d. 把splitConfigs中的每一个config赋值到config变量中,交给foreach的第3个参数处理:先把点替换成空格,再取最后一个。取出来的是config的类名;如果有多个类名,则以空格分隔,赋值给configBases;

    e. 把configBases中的空格,替换成为下划线;(看不懂)

    f. 把CONFIG_STR前面加上路径:freechips.rocketchip.system,是为long_name;

    4. 定义vlsi_mem_gen的脚本:

    5. 定义C++/JVM相关的参数:

    6. 又把EMPTY/SPACE/COMMA定义了一遍:

    相比上一遍,这一遍定义更正式一些。

    7. 从.sbtopts文件中读取sbt参数:

    其中:

    a. 如果sbtopts_file定义的内容不为空,则读取其中内容赋值给SBT_OPTS;

    8. 定义SBT命令:

    9. 定义firrtl/generator命令:

    10. 定义源文件:

    其中:

    a. scala源文件,在base_dir中查找scala文件和sbt文件;

    b. 查找各个resource目录;

    c. 在各个resource目录中查找资源文件;

    d. scala源文件和资源文件为全部源文件;

    11. 定义rocketchip.jar的生成规则:

    其中:

    a. 基于全部源文件,使用sbt assembly命令生成rocketchip.jar文件;

    12. 定义一些变量:

    13. 定义.hex/clean相关规则:

  • 相关阅读:
    使用Dagger2做静态注入, 对比Guice.
    利用Cglib实现AOP
    Guice之IOC教程
    layui使用心得
    Protocol Buffer序列化对比Java序列化.
    IE之页面加载慢.
    浏览器Agent大全 (含IE 11, Edge)
    ASpectJ对AOP的实现
    Spring之AOP
    创建自己的加密货币MNC——以太坊代币(二)
  • 原文地址:https://www.cnblogs.com/wjcdx/p/15212039.html
Copyright © 2011-2022 走看看