嵌入式导论实验报告
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 ——安装解压工具
修改代码文件
- 修改example2,让三个square模块变成两个
对example2.xml进行修改,修改example2.xml之后文件是
输出的结果是:
dot生成的图前后对比
2.修改example1的square.c文件,使之变为立方的作用
square.c文件
运行结果为
dot生成的图前后对比
编译过程
键入命令:
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
—————————————————————完—————————————————————