DOL实例分析&编程

嵌入式导论实验报告

DOL实例分析&编程

Make工具简介

在Linux和Ubuntu环境中,make工具主要被用来进行工程编译和程序链接

Makefile文件:告诉make以何种方式编译源代码和链接程序

make通过比较对应文件(规则的目标和依赖)的最后修改时间,来决定哪些文件需要更新、那些文件不需要更新。

Ant工具简介

Ant是一种基于Java的build工具。
Ant用Java的类来扩展。
Ant本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。

Ant的优点

跨平台性。Ant是纯java语言编写的,所示具有很好的跨平台性。
操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。
容易维护和书写,结构清晰。
Ant可以集成到开发环境中。

Java与javac简介

用途:编译或执行java代码
javac命令用来编译java文件
java命令可以执行生成的class文件

实验平台

Vmware:虚拟机平台

Ubuntu 14.01-Server版:轻量便捷开机快

Xshell 5 用于与远程主机连接,通过ftp共享文件

安装一些必要的环境

$ sudo apt-get update   ——在虚拟机的 Linux 系统刷新 Linux 软件库
$ sudo apt-get install ant  ——安装Ant工具
$ sudo apt-get install openjdk-7-jdk ——安装openjdk工具
$ sudo apt-get install unzip ——安装解压工具

修改代码文件

  1. 修改example2,让三个square模块变成两个

对example2.xml进行修改,修改example2.xml之后文件是

两次平方xml.png

输出的结果是:

两次平方结果.png

dot生成的图前后对比

threesquare.png
twosquare.png

2.修改example1的square.c文件,使之变为立方的作用

square.c文件

三次方C文件.png

运行结果为

三次方结果.png

dot生成的图前后对比

square.png
cube.png

编译过程

键入命令:

sudo ant -f runexample.xml -Dnumber=1

什么是 XML? XML 被设计用来传输和存储数据。

XML 指可扩展标记语言(EXtensible Markup Language)

XML 是一种标记语言,很类似 HTML

XML 的设计宗旨是传输数据,而非显示数据

XML 标签没有被预定义。您需要自行定义标签。

XML 被设计为具有自我描述性。

没有任何行为的 XML是不作为的。

也许这有点难以理解,但是 XML 不会做任何事情。XML >被设计用来结构化、存储以及传输信息。

XML 是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行。


而Ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具

大多用于Java环境中的自动化构建。它是Apache软件基金会JAKARTA目录中的一个子项目

它有以下的优点:

跨平台性。Ant是纯Java语言编写的,所以具有很好的跨平台性

操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。

Ant通过调用target树,就可以执行各种任务。

由于Ant构建文件 是XML格式的文件,所以很容易维护和书写,而且结构清晰。

可以很方便的集成到各种开发环境中去


标签:

标签是构建文件的根标签,每个构建文件对应一个项目,它的几个常用属性如下:

name:表示project项目名

default:表示该Ant项目启动时默认执行的任务名,如果没有该参数,则需要在项目运行时手动指定执行的任务

basedir:表示项目执行的默认目录



  
    Ant build file to build and run examples.
  
  ......
  

标签:

用于定义一个参数.

如下面的xml代码,定义名字里包含路径,之后使用起来非常方便,直接使定义的变量名即可







......




......

标签

表示是一个个的待执行的任务,在一个project标签下可以有多个target标签。

同时,可以指定一个target依赖于另一个target,这样在执行时会先执行依赖的那个任务,然后才执行目标任务。

这个属性是非常有用的,比如要编译执行一个Java文件,那么我们的执行顺序就应该是先编译然后再执行,这时我们就可以让执行class文件的那个任务依赖于编译Java文件的那个任务。

target标签的几个常用属性如下:

name:表示任务名

depends:表示该任务依赖的任务名

if:表示仅当属性存在时才执行这个任务

unless:跟if的含义相反,表示当属性没被设置时才执行这个任务

如下面的代码,使用target完成project


    
    
    
    
    
    
    
  

dol过程包括以下几个步骤

prepare——创建文件结构、路径,把需要运行的c,cpp,java文件等复制过来

validate——用java的dol.helper.validator.XMLValidator 检查xml文件是否有错误

flatten——创建xxxx_flattend.xml,过程中有使用java编译或执行java代码
         javac命令编译java文件,java命令生成的class文件
         使用generator文件生成xxxx_flattend.xml

dol——通过xxxx_flattend.xml生成example${number}.dot的文件,这里就可以把流程图画出来

execute——创建可运行的程序,包含make和run

这样一系列下来,这些步骤就不需要我们每次键入命令行去执行

使用XML优秀的批处理功能,自动的完成编译和运行

Ant集成了这些功能,而且是可以跨平台使用的,简直不能更好了!



1.准备阶段:创建文件夹,记录文件夹路径,把需要编译的文件拷贝过来


  
    
    
    

    
    
    
    
      
    
  


2.检查阶段:检查文件是否有语法错误

  
  
    
    
      
      
    
  



3.创建 flattened XML:利用生成的ExampleXGenerator.java和生成ExampleXGenerator.class
产生exampleX_flattened.xml 为下一步画图做准备

  
  
    
    
      
      
    

    

    
      
    
  



4.运行DOL:使用flattened.xml生成exampleX.dot文件

  
  
    
    
      
       
    
  


  • 通过xml来画dot图

flattened.xml中,有包含画图所需要的元素,生产者,消费者,连线,进程等内容


  
  
  


  
  


  
    
  
  
    
  

  • 在flattened.xml中,包含的网址中可以解析带有process/sw_channel等的方法

定义好标签之后,运行xml文件,就可以生成dot文件

DOL中包含一些任务
variable    ——变量
function    ——函数
process     ——进程
sw_channel  ——通道
iterator    ——迭代器
connection  ——连接


标签是连接的url中定义的

    
        
        
        
        
        
        
        
        
    
    

  • 使用flattened.xml生成exampleX.dot文件,dot文件里的显示出的图像颜色,连线颜色都可以自定义
digraph pn {

    ratio = auto;
    rankdir = LR;
    ranksep = 0.3;
    nodesep = 0.2;
    center = true;
    
    node [ fontsize=12, height=0.4, width=0.4, style=filled, color="0.65 0.20 1.00" ];
    edge [ fontsize=10, arrowhead=normal, arrowsize=0.8, style="setlinewidth(2)" ];

    "generator" [ label="generator", color=lightyellow, shape=diamond ];
    "consumer" [ label="consumer", color=lightyellow, shape=diamond ];
    "square" [ label="cube", color=lightyellow, shape=ellipse ];

    "generator" -> "square" [ label="C1", color=lightblue3 ];
    "square" -> "consumer" [ label="C2", color=lightblue3 ];

}
  • 生成dot文件后,如果需要看见效果

安装Graphviz (Graph Visualization Software的缩写)

sudo apt-get install graphviz

然后键入命令

dot -Tpng XXX.dot -o XXX.png

然后通过Xshell从虚拟机中通过ftp下载在windows下就可以看啦~

5.创建可运行的程序,包含make和run

  
  
    
    
      
    
    
      
    

    
    

    
    
    
      
    
  

—————————————————————完—————————————————————

你可能感兴趣的:(DOL实例分析&编程)