OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6421|回复: 0

疯壳-MTK智能穿戴(电话手表)开发之编译指令

[复制链接]

98

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2017-2-27
在线时间
53 小时
发表于 2021-2-2 10:08:59 | 显示全部楼层 |阅读模式
1金钱

官网地址:https://www.fengke.club/GeekMart/views/mall/goodsDetails.html?productId%3D33

配套书籍:https://www.fengke.club/GeekMart/views/mall/goodsDetails.html?productId%3D73

配套视频:http://www.fengke.club/GeekMart/su_fihsGbMhu.jsp

淘宝地址:http://shop115904315.taobao.com/

QQ群:457586268

编译指令

在开始进入编码之前,我们简要介绍一下常用的代码编译指令,在接下来的编码过程中,会经常用到。对于刚接触MTK开发的人,可以把这一节的内容当作词典来用,不记得就查一查,没必要死记。在后面的开发中,我也会提示采用什么样的指令编译代码。

编译指令通用格式:

make [-debug] project  project_attr  [url=]command[/url]

指令格式说明:

1、 make:这是一个批处理的文件名称,在工程源码的根目录下,有一个 make.bat的文件。在make 后面的字段实际上都是给批处理传的参数,这个名称一般不允许更改,我们把它当做一个固定字段使用。

2、 -debug:这个参数只用于编译模拟器。

3、 project:这是我们要编译的项目名称。在工程源码的根目录下,有一个 make 文件夹,在这个文件夹里面有一个Verno_XXXXXX.bld文件,比如Verno_FengKe2502C_11C.bld。这个文件是项目的版本控制文件,在Verno_ 后面的FengKe2502C_11C 就是项目名称。在make文件夹下面,有可能存在多个这样的文件,那就说明在这个工程源码中,包含多个项目。

4、 project_attr:这个字段为项目的属性,常用取值有gprs、gsm、none。其中gprs代码项目支持sim卡,可以打电话、发****,还能上网;gsm表示该项目也支持sim卡,可以打电话,可以发****,但无法上网,在这样的项目中,我们无法进行socket编程;none表示项目不支持sim卡。那么如何确定项目的属性呢?在上一条project的介绍中,我们提到了make目录下的项目版本控制文件——Verno_FengKe2502C_11C.bld。与之对应的还有一个项目配置文件——FengKe2502C_11C_XXXX.mak,比如FengKe2502C_11C_GPRS.mak。那么这个项目的属性就是 gprs。每一个项目在make文件夹中都必须包含这两个文件。

5、 command:这是我们要用到的编译命令,采用什么样的方式生成二进制bin文件。取值及说明见如下表格:

new

这个指令耗时最长,它会重新编译所有模块,每一个项目第一次编译都要使用这个指令,在修改了项目配置,或者新增文件时都要使用这个指令重新编译整个项目。

Remake(可简写为r)

这个指令只是简单的重新编译链接有改动的部分。它不检查依赖关系,不扫描资源,只扫描代码的改变,有改变的重编,资源和无改变的代码不编。如果r后面没有其他字段,则重新编译所有模块,如果有其他模块字段,则重新编译单个模块或多个模块。比如:r mmi_app 则只重新编译 mmi_app模块,r mmi_app mmi_framework 则只重新编译两个模块。至于这些模块名称从哪里查找,在后面会有介绍。

Updata(可以简写为 u)

这个指令会扫描工程中文件和库的依赖关系,若依赖关系有变化会建立新的依赖关系,随后根据新的依赖关系重新编译链接有改动的部分。它跟remake 的用法类似。可以更新所有模块,也可以更新指定的模块,比如 u mmi_app, u mmi_app mmi_framework。但是r mmiresource 不会重新生成资源,u mmiresource 会重新生成资源,相当于 resgen 和r mmiresource的合并。

Resgen

编译资源。只要修改了.res 文件,都要用这个指令编译

Gen_modis

生成模拟器工程文件,可用 Visual Studio 2008 生成模拟器,调试mmi部分的代码。

编译指令举例:

make  FengKe2502C_11C GPRS  new

make  FengKe2502C_11C GPRS  resgen

make  FengKe2502C_11C GPRS  r

make  FengKe2502C_11C GPRS  r  mmiresource

make  FengKe2502C_11C GPRS  u  mmiresource(等同于make resgen 和 make r mmiresource)

make  FengKe2502C_11C GPRS  r  mmi_app mmi_framework

make  FengKe2502C_11C GPRS  u  mmi_app mmi_framework

make  -debug  FengKe2502C_11C  GPRS  gen_modis

make  -debug  FengKe2502C_11C  GPRS  codegen_modis

make  -debug  FengKe2502C_11C  GPRS  new_modis(等同于make gen_modis 和make codegen_modis)

在后面的编码过程中,我会省略 project project_attr 用 make command 的格式提示大家用什么样的命令来编译代码。比如 make new就等同于make  FengKe2502C_11C GPRS  new,如果你的代码之前有使用该命令编译过,源码根目录中有FengKe2502C_11C_gprs.log 文件,那直接使用make new也是可以编译的,同理直接使用 make r 或者make r mmi_app都是可以直接编译。但是对于新手而言,不推荐使用这种简写的指令,防止忘记完整的指令格式。


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 04:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表