<杭州斯凯网络有限公司>
<应用软件部>
mythroad
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
文件编写指南
版本 <1.0>
<项目名称> Version: <1.0>
mythroad 工程文件编写 Date: <08/04/21>
Confidential <杭州斯凯网络有限公司>, 2008 Page 2 of 8
修订历史记录
日期 版本 说明 作者
2008-4-21 <0.1> mythroad 工程文件编写指南 唐彦
<项目名称> Version: <1.0>
mythroad 工程文件编写 Date: <08/04/21>
Confidential <杭州斯凯网络有限公司>, 2008 Page 3 of 8
目录
1. 简介 4
1.1 目的 4
1.2 范围 4
1.3 定义、首字母缩写词和缩略语 4
1.4 参考资料 4
1.5 概述 4
2. 工程信息: 4
3. 项目信息: 6
4. 编译说明 6
5. 各个字段使用规则 7
5.1 Mrp 文件头相关字段规则 7
5.2 各个编译参数的说明 7
6. 示例工程 8
<项目名称> Version: <1.0>
mythroad 工程文件编写 Date: <08/04/21>
Confidential <杭州斯凯网络有限公司>, 2008 Page 4 of 8
mythroad 工程文件编写
1. 简介
Mrp 是一种运行于杭州斯凯 MINIJ VM 的可执行文件,mrp 作为一种可执行文件,它支持 c 和
mythroad 语言进行。Mpr,则是用于组织 c 和 mythroad 的工程文件。其实际功能类似于 makefile,
但是实际的编写方式类似于 windows 下的 config文件,另外有它的一些特殊字段。本文档将介绍
mpr 文件的编写方法,并且将其所用到的字段进行详细说明。
1.1 目的
用于让软件工程师了解 mpr 文件的编写方法,明确 mpr 文件中特殊字段规则。
1.2 范围
本文档适用于基于杭州斯凯开放的 sdk开发的应用程序。
1.3 定义、首字母缩写词和缩略语
Mythroad 用于斯凯 MINIJ VM 上的一种编程语言
mrpbuilder: MRPBuilder 工具用于生成 MRP文件或 lib文件。MRPBuilder工具读入 Mythroad的
mpr(Mythroad project file)工程文件,并根据 mpr文件的配置生成相应的 MRP
文件。mpr 文件的实例参考 SDK 目录 samples\下的各个例程应用的工程配置文件。
mpr文件格式:mythroad工程文件(.mpr)符合 ini 文件格式规范,有以下几种类型的配置小节:
工程基本信息、项目配置信息、项目文件、工程文件。由于一个工程中可以包含多个
项目,项目配置信息、项目文件小节可以有多个。
1.4 参考资料
mythroad 工程文件(mpr文件)编写指南.txt
1.5 概述
本文档是以以下方式组织:
2. 工程信息:
工程基本信息在[information]一节中配置,本节中的配置,可以被项目配置一节中的同名配置覆
盖。工程基本信息配置包括以下字段:
字段名称 最大
长度
类型 字段说明 特殊说明
appname 23 字符串 APP 名称,显示在应用列表上的名称。 国标编码。
Appid 4 Int32
类型
作为一个应用程序的唯一标识号,需要注意的是
所有应用程序必须采用不同的 appid。该 id由项
目经理统一分配。
filename 11 字符串 Mythroad 工程对应的文件名,这个文件名对应的
是该 Mythroad工程所生成的 APP在手机上的文
件名称。该名称可以和 Mythroad工程编译生成
的 MRP 文件名(output)不一样,但在手机下载
该 APP 时,会以该文件名将 APP保存在手机上。
国标编码。
version 4 数值 应用版本号。Int32。这里要注意,这里的版本 Applist 加强版作
<项目名称> Version: <1.0>
mythroad 工程文件编写 Date: <08/04/21>
Confidential <杭州斯凯网络有限公司>, 2008 Page 5 of 8
号必须和版本管理服务器上的版本是一致的。 为软件升级的唯
一标识。
visible 1 数值 应用是否在应用列表中可见。0:不可见;1:可
见。默认为 1。
针对有些文件,
比如数据文件,
或者解析器之
类。
vendor 39 字符串 制造商信息。 国标编码。
descript
ion
63 字符串 应用描述信息。 国标编码。
output 字符串 输出的 mrp 或 lib 文件名。默认为
"default.mrp"。以 windows 文件最大长度作为
限制
不属于 mrp 文件
的组成部分
cpu 1 数值 应用的 CPU 性能需求:0:低;1:一般;2:
高;3:最高。默认为 1。
针对展讯平台,
可以调节 cpu的
速率。
plat N/A 应用的目标平台。spreadtrum:展迅平台;
mtk:mtk 平台。该配置若不存在时,应用的目标
平台将由 bmp_mode 配置的平台指定。
作为编译参数。
不做为 mrp 文件
组成部分
output_f
ormat
N/A 目标文件格式。lib:生成 lib 文件;mrp:生成
mrp 文件。默认为 mrp。
作为编译参数。
不做为 mrp 文件
组成部分
bmp_mode N/A 图形配置选项。可以是 mtk(与 normal 等价)、
spreadtrum 或 normal,其他值都会被认为是
normal。当存在 plat 配置时,图形配置自动根
据 plat 配置选择,bmp_mode 将被忽略。默认为
"normal"。
作为编译参数。
不做为 mrp 文件
组成部分
define N/A mythroad C 语言中使用的宏。宏之间使用","分
隔。比如:
define=DEBUG_INFO_ON,LINE_LEN=90,FAST_TRAN
S
作为编译参数。
不做为 mrp 文件
组成部分
include N/A mythroad C 语言中头文件的搜索路径。路径之
间使用","分隔。比如:
include=..\..\,fastlib\
作为编译参数。
不做为 mrp 文件
组成部分
config N/A 工程编译时,哪些项目将被编译。列举工程中需
要编译的项目。每个 Mythroad 工程可以存在多
个项目,每个项目可以有自己的 Mythroad 编译
选项,图形配置选项,和输出文件等配置。配置
项目名称之间用","分隔。
作为编译参数。
不做为 mrp 文件
组成部分
Shell 1 或者 0。如果为 1,表示是从 shell 文件启动
的。如果是 0,那么表示从 start文件启动
作为编译参数。
不做为 mrp 文件
组成部分
with_c_g
lobal
True、false。False:表示表示的时候不支持全
局变量在源文件中间定义,所有的全局变量必须
定义到 mr_c_function_st,目前开发的软件已经
不使用该种方式。True:支持在源文件任何位置
定义全局和 static 的变量。
作为编译参数。
不做为 mrp 文件
组成部分
optimiza 0,1,2。 Arm编译器编译时候的优化参数。 0 作为编译参数。
<项目名称> Version: <1.0>
mythroad 工程文件编写 Date: <08/04/21>
Confidential <杭州斯凯网络有限公司>, 2008 Page 6 of 8
tion_lev
er
表示不做优化。1、2会做优化,只是优化的级别
不同。
不做为 mrp 文件
组成部分
3. 项目信息:
每个工程文件中可以包含若干个项目,项目信息在[config_项目名]一节中配置。本节中的配置若没
有出现,项目编译时将使用工程基本信息一节中的同名配置,本节中出现的配置,将覆盖工程基本
信息一节中的同名配置。项目信息配置包括以下字段:
字段名称 最大长度
(BYTE)
字段说明 特殊说明
appname 23 同工程基本信息配置一节的同名配置。
Appid 4 同工程基本信息配置一节的同名配置。
filename 11 同工程基本信息配置一节的同名配置。
version 4 同工程基本信息配置一节的同名配置。
visible 1 同工程基本信息配置一节的同名配置。
vendor 39 同工程基本信息配置一节的同名配置。
description 63 同工程基本信息配置一节的同名配置。
output 同工程基本信息配置一节的同名配置。
cpu 1 同工程基本信息配置一节的同名配置。
plat 同工程基本信息配置一节的同名配置。
output_format 同工程基本信息配置一节的同名配置。
bmp_mode 同工程基本信息配置一节的同名配置。
define 同工程基本信息配置一节的同名配置。
include 同工程基本信息配置一节的同名配置。
config 同工程基本信息配置一节的同名配置。
Shell 同工程基本信息配置一节的同名配置。
with_c_global 同工程基本信息配置一节的同名配置。
4. 编译说明
工程文件与项目文件:
项目编译时,编译的文件是工程文件加上每个项目的项目文件。工程文件在[files]一节中进行
配置,项目文件在[files_项目名]一节中配置,文件配置格式为:文件标识号=文件名。例如:
file10 = board.bmp
这里文件“board.bmp”为工程或项目中包含的文件,项目编译时将包含该文件。“file10”为
该文件配置的标识符。一般情况下标识符不能相同。特别的,当某个项目文件和一个工程文件
的标识符相同时,会使用项目配置的文件替换工程配置的文件。
文件类型:
与绝大多数编译器一样,在 mythroad 中,编译器通过文件后缀辨识文件类型。mythroad 支持以
下的文件类型:
代码文件:
以".c"、".cpp"、".s"为后缀的文件为 C、C++、汇编代码文件。当项目以 lib 方式生成输出文
件时,编译器将仅使用代码文件而忽略其他文件。
bmp文件:
以".bmp"为后缀的文件为 bmp 图片文件,bmp 图片文件要求是 16bit 或 24bit 色的 windows bmp
格式。
<项目名称> Version: <1.0>
mythroad 工程文件编写 Date: <08/04/21>
Confidential <杭州斯凯网络有限公司>, 2008 Page 7 of 8
lib文件:
以".lib"为后缀的文件为库文件。
资源文件:
其他格式后缀的文件均为资源文件,mythroad 将直接将这些文件打包在 mrp 文件中。
5. 各个字段使用规则
5.1 Mrp文件头相关字段规则
工程信息和项目信息中部分的字段作为最终可执行文件的组成部分,会被写入在 mrp 文件中。这些字段会
被作为识别程序的唯一标识,对于可执行文件的维护具有重要意义。下面将详细描述各个字段的使用规则
字段名称 字段说明
appname 阿斗撒阿 appname 项目经理和产品部协商确定,appid由项目经理分配,分配的规则参考
《》,filename 是由产品部确定。Appid 和 filename都必须是唯一的。
Appid 作为程序的唯一标识,用在程序付费、版本更新等地方。
Filename 程序的唯一标识,用于在版本更新,存储在用户客户端的文件名称,用户
通过 applist进行下载的时候,需要进行保存,保存的名称是以这个名字作为标
准。注:命名的时候,必须是 xxxxxx.mrp 由于需要包含“.mrp”所以前面的名字实
际长度是 7个 asci 字符。
Appid
filename
version 一个数值型的数据,在应用程序做版本更新的时候会用到这部分。参考版本管理工
具上的命名,Vx.xxx,实际的长度是 4位,直接对应于一个四位的整数 xxxx。版本
的升级方式参考《应用软件部配置管理
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
》。
visible 应用是否在应用列表中可见。0:不可见;1:可见。默认为 1。
Applist 在显示应用程序列表的时候,会跟据这个字段确定是否将该应用程序显示
在列表中,主要是对于一些打包成.mrp的数据文件,而不是一个应用程序,那么它
就是不可见的。
vendor 制造商信息。
description 这部分信息,是必须加在项目信息中的,这样通过这部分信息,就知道对应一个可
执行文件的相关信息,便于软件发布以后调试 bug。
cpu 应用的 CPU 性能需求:0:低;1:一般;2:高;3:最高。默认为 1。
这个参数,目前只是用在展讯平台上,由于部分程序对 cpu 资源消耗比较多,需要
调整 cpu 的速度,从而提高程序的表现力。
5.2 各个编译参数的说明
下面部分是对编译参数的一些描述。
output 输出的 mrp 或 lib 文件名。默认为"default.mrp"。
对于最终生成的可执行文件,为了便于通过该文件一些信息,就能识别出该可执
行文件的功能,具体的命名规则参考《SCM部署软件版本命名规范 V1.1》。
plat 参考 工程信息 章节
output_format 参考 工程信息 章节
bmp_mode 增加这个字段的原因是对于展讯和 mtk 平台的高低位是不同的,为了保证 bmp 可
以被平台直接识别,所以需要转成 mtk 和展讯的图片的标准,
define mythroad C 语言中使用的宏。宏之间使用","分隔。比如:
define=DEBUG_INFO_ON,
通过这些宏,可以配置不同的项目信息,达到一个源码工程,能支持不同的屏幕
尺寸、键盘、或者厂商的部分特殊需求。这样处理可以维护最小单位的源码工
程,极大的方便了源码维护。
<项目名称> Version: <1.0>
mythroad 工程文件编写 Date: <08/04/21>
Confidential <杭州斯凯网络有限公司>, 2008 Page 8 of 8
设置 define 信息的时候所有的宏必须设置在一行,不能有回车换行。
include 参考 工程信息 章节
设置 include信息的时候所有的宏必须设置在一行,不能有回车换行。
config 参考 示例 章节
设置 config 信息的时候所有的宏必须设置在一行,不能有回车换行。
Shell 1或者 0。如果为 1,表示是从 shell 文件启动的。如果是 0,那么表示从 start
文件启动
该选项对于 mythroad 语言无效。
with_c_global 参考 工程信息 章节
optimization_l
ever
Arm 编译优化参数,主要是针对展讯平台。在展讯平台上如果使用优化模式,编译
生成的可执行文件在执行的时候会不定时的重启。
该选项对于 mythroad 语言无效。
6. 示例工程
[information]
projectname=Helloworld.mpr
filename=Helloworld.mrp
appname=Helloworld //游戏短名称
appid=30001 //应用 ID,由斯凯指定
version=101 //每次修正,版本号需要 + 1
visible=1
cpu=3
vendor=杭州斯凯
output=Helloworld.mrp
description=这是杭州斯凯网络科技有限公司 Mythroad 平台的 Demo
config=mtk240,mtk176 //编译配置项开关
[config_mtk176]
define=DEMO_DEBUG,CONFIG_176 //如果源码中有用到宏开关,请在此打开。
output=Helloworld_176.mrp
bmp_mode=normal
[config_mtk240]
define=DEMO_DEBUG,CONFIG_240 //如果源码中有用到宏开关,请在此打开。
output=Helloworld_240.mrp
bmp_mode=normal
[files_mtk176] //mtk176配置项单独编译的文件
file110 = Menu_176.c
[files_mtk240] //mtk240配置项单独编译的文件
file110 = Menu_240.c
[files] //所有配置项共有的文件
file30 = PNG_TEST.PNG
file31 = ..\..\modules\mrc_win.c
file32 = ..\..\modules\mrc_menu.c
file33 = ..\..\modules\mrc_text.c
file35 = Helloworld.c