导航:首页 > 源码编译 > 编译mtk平台内核

编译mtk平台内核

发布时间:2022-08-09 17:50:13

A. MTK 如何配置内核编译选项

使用make menuconfig ,来配置kernel的选项
a、首先通过下面的方式进入menuconfig, 在project 下输入:

cd kernel
TARGET_PRODUCT=<project> make menuconfig

在弹出的窗口后,enter < / > 进入查找窗口,输入要查找的kernel feature名称

查到该feature后,选择开启或者关闭该feature, 保存,退出menuconfig
b、 完成上述配置后,将.config复制到mediatek/config/$project/autoconfig/kconfig/目录下并重命名为project
然后进行编译kernel

B. MTK的开发环境怎么搭建

一、开发环境设立
以下表述中提到的相关压缩包或安装文件到华禹ftp服务器下载,部分文件要到群共享里面下,那里是最新的。
华禹ftp服务器:IP:220.113.15.15,帐号为study-bbs.com,密码为study-bbs0304
P1300的QQ群号: 15762255
P1300_Build_Guide.rar来自ftp服务器,“华禹\MTK相关部分”目录下
手机开发板C语言开发视频.rar来自ftp服务器,“华禹\MTK相关部分”目录下
huayu109_ads1.2.rar来自ftp服务器,“华禹\旋风001手机模块\1.工具类”目录下
huayu102_ADS12_Patch_Windows.rar同上
huayu106_perlzip.rar同上
huayu108_SourceInsight3.5.rar同上
huayu101_p1300软件使用工具及开发指南.rar同上
huayu201_P1300_V1.7_Release.rar文件来自群共享
huayu203_P1300_V1.7_Release_patch.rar文件来自群共享
FlashTool_v3.0844.00.rar文件来自群共享
1、开发主机要求及所需工具:
操作系统:Windows 2000, WinXP. 推荐Windows 2000 with SP2 or later.
编 译 器:ADS (Arm Developer Suite) v1.2 [Build 842]
Perl解析:ActivePerl, 推荐使用ActivePerl 5.6.1版本
仿真工具:MTK PC Simulator
跟踪工具:Catcher_L1 v3.10.01,从串口输出调试信息,只做普通UI应用的话,大致不会用到,用PC仿真工具就好了
烧录工具:FlashTool_UI v3.1.05 或 FlashTool_v3.0844.00
其他:PL2303_Driver_XP2K v20,这是下载线用到的USB串口驱动,以前机器上装过PL2303驱动的就不必再装了
二、开发环境建立过程:
新建一个目录,英文的好了,否则有些工具不认识中文路径,这里以E:\MTK_P1300为例说明,下面我用文字和图片简单说明下安装过程,更详细的安装过程可以看压缩文件“手机开发板C语言开发视频.rar”中的Flash文件“P1300_Build_Env.swf”。
(1)安装ADS1.2
解压文件huayu109_ads1.2.rar到某个目录,比如说解压到“E:\MTK_P1300”,解压完后运行“E:\MTK_P1300\ADS1.2\Setup.exe”,一路按下一步,最后安装License时选定文件“E:\MTK_P1300\ADS1.2\CRACK\ license.dat”,然后接着一路下一步直到安装完。安装完后删掉目录“E:\MTK_P1300\ADS1.2\”,节省磁盘空间。
(2)安装ADS补丁
运行huayu102_ADS12_Patch_Windows.rar压缩文件中的ADS_Patch_Window.exe,这是个自解压的压缩文件,选Unzip解压到上一步ADS的安装目录(缺省是C:\Program Files\ARM\ADSv1_2),解压过程中如果问到是否覆盖,全部选覆盖好了。
(3)安装脚本解释器Perl
直接运行压缩包huayu106_perlzip.rar里面扩展名为msi的安装文件,缺省安装就好,一路Next,呵呵。
上述几步完成后,编译环境基本建立,此时可以开一个dos窗(开始菜单->运行->输入cmd->确定)看一下,安装正常应该能顺利执行以下命令,如下图:
注意看版本号,应该是ADS1.2 [Build 842],不是的话可能没打补丁,或补丁打的位置不对,请看第2步ADS补丁部分的说明并重新打一次,直到版本号对为止,哈哈。
这是perl解释器的运行画面。
注1:上述安装过程会自动创建编译环境所需的环境变量,如果发现编译不正常了,可能是安装了其他编译工具导致冲突,这时建议查看下系统环境变量,把Perl和ADS的安装目录调到最前面,同时从path中去掉可能会产生冲突的编译工具链的路径(例如winavr),如下图所示(我是安装到D盘滴,缺省是C盘,不过我C盘几乎被我塞满了):
如果嫌改path麻烦(因为要用到其他编译工具链的时候还得改回去),还有一种办法,就是改make.bat批处理,具体见注4中相关说明。
注2: 如果安装ADS时,改变了默认安装路径,需要修改源码中的设置,源码目录树解压过程见模拟器编译环节相关介绍。
1.             make\Option.mak  
2.             ----------------------------------  
3.             ifeq ($(strip $(COMPILER)),ADS)  
4.           DIR_ARM=  c:\progra~1\arm\adsv1_2  # 修改这里 
5.           DIR_ARM := $(strip $(DIR_ARM))  
6.           DIR_TOOL   =  $(DIR_ARM)\bin  
7.           DIR_ARMLIB =  $(DIR_ARM)\lib  
8.           DIR_ARMINC =  $(DIR_ARM)\include  
9.             endif  
10.       ------------------------------------------------ 
比如改装到D盘了,这里把红色部分“c”改成“d”就好了
(4)代码编辑环境
运行压缩文件huayu108_Source Insight3.5.rar中的安装文件安装即可。至于编辑器,这个看个人喜好了,不过Source Inside看代码蛮方便的。
(5)PC机模拟器
模拟器MTK PC Simulator是用来在PC上仿真调试用的,要安装VC6 SP6(同时要安装Uuicode 静态和动态库,没有装Unicode库的可以用“huayu103_MTK模拟器DLL补丁.zip”中的库,拷到系统目录“%windir%\system32”下即可)。我机器上的VC是有装Unicode库的,没装过Unicode库的如果在模拟器编译或运行中出现问题,建议重装下VC6,安装时勾选Unicode库,并打上相关补丁到SP6。
模拟器能模拟真机的大部分行为,这样能给调试带来很大便利,不需要每次改动都要烧录。
模拟器要从源码编译,解压压缩包“huayu201_P1300_V1.7_Release.rar”里面的文件“HUAYU_P1300_V1.7_Release.rar”到目录“E:\MTK_P1300”,此时会出现目录“E:\MTK_P1300\P1300_V1.7_Release”,这就是P1300的代码目录树了;接着打上最新的补丁,解压压缩包“huayu203_P1300_V1.7_Release_patch.rar”里面的压缩文件“HUAYU_P1300_V1.7_Release_patch.rar”到目录
“E:\MTK_P1300\P1300_V1.7_Release”,解压时选择全覆盖以替换被修改过的文件,打补丁之前对目录树里面的文件进行修改过的,需要手动再加上去。
编译PC仿真器之前需要先把刚才上面得到的目录树build一次,开一个dos窗,盘符和目录转到代码目录树对应的盘符和目录,例如:
1.              E:  
2.             cd E:\MTK_P1300\P1300_V1.7_Release\  
3.           make new 
注3:第一次make的时候要用“make new”,make new的时间比较长(慢的机器搞不好要2小时以上),编译过程中间会出现一些文件找不到的信息,只要编译过程没意外终止,那些信息可以忽略。编译日志文件位置: build\NEOTEL25_06B\log\,要查看编译过程有啥问题就看这个目录下的文件了;生成的bin文件位置: build\NEOTEL25_06B\*.bin,下载烧录就是烧bin文件。
这里顺带介绍下build的命令格式:
make new 清除后重新编译整个项目
make resgen 重新生成资源
make remake重新编译链接项目
make viewlog xxx 查看模块xxx的编译日志
make查看可以用make选项帮助信息
注4:如果机器上装了其他gcc编译工具链(比如winavr之类)的话可能要手动改下Path,否则编译会出错,修改Path的方法见注1,也可以修改批处理文件“E:\MTK_P1300\P1300_V1.7_Release\make.bat”,在“perl make2.pl %*”之前加上下面两句:
1.           set PERL5LIB=D:\perl\lib  
2.           set PATH=D:\perl\bin;d:\progra~1\arm\adsv1_2\bin;E:\MTK_P1300\P1300_V1.7_Release\tools;c:\windows\system32;c:\windows;c:\windows\system 
注意,上面的路径是我机器上的,不是缺省安装路径,要根据自己的实际安装路径做修改。
下面开始编译PC仿真器了,用VC6打开工程文件“E:\MTK_P1300\P1300_V1.7_Release\plutommi\mmi\ PC_Simulator.dsw”,然后开始编译,编译时间比较长,具体看机器配置了,这时又可以干点别的啥了,呵呵。
因为仿真器工程涉及文件较多,编译费时,建议编译过程中电脑上少开窗口,特别是网络类的,如QQ,有时会发现开QQ后,编译过程中VC会挂死,呵呵。有可能是开QQ后防火墙过滤网络数据占用较多系统资源,如果发现VC编译特别慢或干脆挂死,可以重启动一下电脑,只开必要的窗口,然后开始编译。
如果编译过程中发现怪异的问题,如:
1.           incomingstringiddef.h(120) : error C2059: syntax error : 'constant'    
2.           或者 
3.           error C2065: 'STR_CM_REDIAL' : undeclared identifier   
4.           之类 
5.            
这个时侯你可能需要看一下你VC相关路径的设置顺序,如下图:
把VC原本的头文件路径调整到最前面,我刚开始编译的时候SDK的头文件在前面,编译总是通不过,改一下就好了,库也一样都调整下比较保险,呵呵。
(6)Tracer跟踪工具
解压文件P1300_Build_Guide.rar到E:\MTK_P1300,然后在文件管理器进入目录“E:\MTK_P1300\P1300_Build_Guide”,接着解压Catcher_L1_v3.10.01.zip到当前目录下的Catcher_L1_v3.10.01子目录,进入子目录Catcher_L1_v3.10.01,发送一个Catcher.exe的快捷方式到桌面。
在需要用到TRACE的时候,在代码中使用函数
void kal_prompt_trace(mole_type mod_id, const kal_char *fmt,...); 打印需要查看的信息,使用Catcher跟踪查看。
这个有点类似linux的Kernel Debug工具,具体使用方法见文档《cather使用手册.doc》,这个文档可在压缩包“huayu101_p1300软件使用工具及开发指南.rar”里面找到。
(7)烧录工具
解压文件“E:\MTK_P1300\P1300_Build_Guide\ FlashTool_UI_exe_v3.1.05.zip”到当前目录,然后进入目录“E:\MTK_P1300\P1300_Build_Guide\FlashTool_v3.1.05”,发送一个Flash_tool.exe的快捷方式到桌面好了。
还有个下载工具FlashTool_v3.0844.00.rar,也是不用安装,解压后直接用的,据说烧录速度比上面那个快。
具体使用方法见文档《flash_tool_MT平台使用教程.doc》,这个文档可在压缩包“huayu101_p1300软件使用工具及开发指南.rar”里面找到。
(8)USB串口下载线驱动
运行压缩文件
1.           “E:\MTK_P1300\P1300_Build_Guide\ PL2303_Driver_XP2K_v20.zip” 
里面的可执行文件进行安装,一路下一步,这里不再赘述。
nucleus实时操作系统MTK手机软件系统工程和配置简介
MTK使用了nucleus实时操作系统,在其上做了个内核抽象层的封装,以适应多种实时操作系统,如oscar、ThreadX、nucleus。整个软件系统包括nucleus操作系统、平台设备驱动、协议栈、文件系统、WGUI、MMI、J2ME等。在这里MMI部分几乎包括了操作系统内核、协议栈、文件系统之上的所有部分,其中WGUI也在其中。
MTK的PC模拟版使用VC的编译器和链接器生成,ARM版使用ADS1.2的编译器和链接器生成。因为MTK的整个软件系统是一个很庞大而且复杂的工程,并且要支持多个MTK的产品系列和多家客户的客户化支持,使用集成开发环境(IDE)已经无法胜任,而且很难做到整个工程的自动构建和资源、代码的生成。所以MTK的软件系统使用了windows下的GNU开发工具链(MinGW)来进行工程的管理、配置和构建,MTK将MinGW放到了第三方工具中。
另外还使用了perl脚本来解析用户输入的命令行参数,因此第三方工具中还包含了ActivePerl(windows下的perl解释器)。不过,整个软件系统并没有使用MinGW的全部工具,好象只使用了make这个工具,由几个Makefile控制了构建的过程,在编译和链接时根据最终生成PC模拟版还是ARM版而分别调用VC的编译器和链接器或ADS1.2的编译器和链接器。

C. linux内核 和 MTK 内核有什么区别

首先我纠正一个问题,Linux内核是指操作系统的内核,其主要是针对硬件的大多数操作。Mtk内核:市场上很多Mtk芯片都是arm架构然后集成一些显卡过着视频硬解芯片的集成解决方案。按照严格上的定义Mtk内核不能与Linux的内核进行比照。因为会产生一下误区。
1.Mtk平台往大了说也算是单片机(微控制器)的一种,广泛应用于嵌入式平台,如手机,mp3,mp4,模拟游戏机等等。所以Mtk是硬件。Linux是软件。
2.Linux内核泛指开源内核,现在很多Linux的衍生系统都是接受了Linux的开源协议,但是很多衍生系统又具有自己不开放的部分核心源码,就造成了Linux系统的衍生系统很多,故Linux内核再大多数时候指代的是纯Linux开源码的内核系,请注意,此处为系统。

D. 后缀是MTK的文件如何编辑

编辑窗口(开始->运行->cmd) ,找到工程代码所在根目录,如optMTK6217 输 入编译。
_BM其实是BMP改了扩展名后得来的,是MTK推荐 的文件类型,而MTK默认会把一些经常调用的BMP图片直接转为PBM,虽然在文件上看来他还是BMP,但在编译时MTK会修改。
_TK 文件与 一 种文件类型相关联,可以使用 Adlib Tracker II 开发的 Adlib Tracker II查看。 总的来说,这种格式与 二 种已知的软件应用程序相关联。

E. MTK是什么操作系统。(详细)

MTK是现在市场上所有国内手机设计、制造商使用的最多的一个完整的手机产品解决方案,大部分做手机的技术人员都对此有接触和了解。不过,MTK的整套软件系统十分庞大且复杂,很多刚接触这套系统的软件工程师一时不知如何进行配置和客户化定制。本文在此对整个MTK软件系统的工程结构和配置进行了简单介绍,希望通过此文和大家相互交流MTK软件系统的维护和修改、定制方面的心得。 MTK使用了nucleus实时操作系统,在其上做了个内核抽象层的封装,以适应多种实时操作系统,如oscar、ThreadX、nucleus。整个软件系统包括nucleus操作系统、平台设备驱动、协议栈、文件系统、WGUI、MMI、J2ME等。在这里MMI部分几乎包括了操作系统内核、协议栈、文件系统之上的所有部分,其中WGUI也在其中。 MTK的PC模拟版使用VC的编译器和链接器生成,ARM版使用ADS1.2的编译器和链接器生成。因为MTK的整个软件系统是一个很庞大而且复杂的工程,并且要支持多个MTK的产品系列和多家客户的客户化支持,使用集成开发环境(IDE)已经无法胜任,而且很难做到整个工程的自动构建和资源、代码的生成。所以MTK的软件系统使用了windows下的GNU开发工具链(MinGW)来进行工程的管理、配置和构建,MTK将MinGW放到了第三方工具中。另外还使用了perl脚本来解析用户输入的命令行参数,因此第三方工具中还包含了ActivePerl(windows下的perl解释器)。

F. MTK平台modis编译不通过如何产生bin文件,是不是new通过就能产生bin文件

实际上是make产生bin文件的。new的过程就包括make了。比如new没有通过,可是已经出现log文件,在修改错误后直接make就行了,而不必再new一遍。编译modis跟bin文件没有关系。

G. mtk平台修改init.rc后如何快速编译啊

修改init.rc文件后,一般只需要做以下快速编译即可生成新文件。
./mk bootimage

H. 如何学习MTK 编译android系统的framework层源码,需要看一些什么文档,最近在公司需要学习、

mtk有个叫makeMtk的脚本文件,直接执行就行,后面参数加上自己要编译的模块,比如./makeMtk -t mm frameworks/base/core/res

I. 求助MTK7620a编译时make menuconfig的选择问题

MTK7620a编译时make menuconfig的选择问题
你好,在Linux里面我们所看到的menuconfig界面是通过配置内核顶层的Kconfig产生的,而当输入make menuconfig命令的时候系统会读取Makefile来解析Kconfig。
通常会在Kconfig里面编写以下四项:
1、模块的名字,用mole开头;
2、选项,通常设为bool(二选一)或者trastate(三选一);
3、默认选项;
4、帮助说明。
不知道你说的在7620a中出现的是什么问题,但是基本上都是按照linux编写原则来的。 有关menuconfig 的更多解释可以参考以下文章,写的很详细。希望能够帮到你~~

阅读全文

与编译mtk平台内核相关的资料

热点内容
如何将pdf转换成docx文件 浏览:32
dos命令批量改名 浏览:376
centosphp环境包 浏览:601
mfipdf 浏览:534
电脑解压后电脑蓝屏 浏览:295
外网访问内网服务器如何在路由器设置 浏览:856
2014统计年鉴pdf 浏览:434
linuxoracle用户密码 浏览:757
股票交易pdf 浏览:898
p2papp源码 浏览:308
记录睡眠软件app哪个好用 浏览:140
液压助力车压缩比 浏览:217
文件服务器上如何查看 浏览:975
雪花绘制源码 浏览:662
app主页演示图怎么做 浏览:542
幼儿园设计pdf 浏览:645
干接点输入单片机 浏览:541
亚马逊云服务器查看 浏览:163
如何用免费云服务器 浏览:610
php的输出命令 浏览:264