mtk scatter编写规则
MTK_UpgTool测试用例剖析
1、打开升级工具:。
2、进入升级工具界面,如下图:建议将升级软件放到UpgTool下的UpgData文件夹,并解压到对应的软件版本目录,不要解压到当前文件夹。
如下图所示:①在升级工具界面,选择,弹出提示,选择“否”不退出程序;选择“是”退出程序。
②在升级工具界面,选择,弹出提示选择“否”不退出程序;选择“是”退出程序。
③在升级/下载软件后,自动把软件的版本号改为售后软件的版本号,比如下载的软件版本号是“i6_A_1.00”,下载到手机上之后,进“*#225#”查看,版本号会变成“i6*A*1.00”。
下载的软件版本号是“i18_E_1.24a”,下载到手机上之后,进“*#225#”查看,版本号会变成“i18*E*1.24a”。
在主界面按“Ctrl+Alt+Shift+A”组合键切换是否开启,默认为开启,关闭后会在主窗口标题栏显示“(非售后使用版)”的字符串,如下图:开启和关闭后,升级成功后,手机开机进入*#225#查看软件版本号要正确。
3、串行端口:插入升级线或TRACE线,串行端口自动识别,如下图:注意,每台电脑自动识别的端口可能不一致,但要能自动识别。
对于用US B线升级的机,升级时,串行端口设置为USB数据线串口,如下图:(K201和i18就用数据端口)简单模式下:高级模式下:*#06#查询手机的IMEI码,并记录IMEI码。
4、正常升级:①鼠标左键单击“步骤1”图标,在提示框内选择存放升级软件的文件夹,如“步骤2”所示,最后选择确定,如“步骤3”所示。
软件加载完成后,如下图所示:选择“正常升级”,进入升级过程,在升级过程中,所以选项反灰显示(除停止任务、退出程序选项),如下图所示:手机产品测试作业指导书_UpgTool升级工具这时手机的RF参数被保存在升级工具的CalData文件夹中,以手机的IMEI码命名。
如下图所示:需要检查文件名称与第3步中记录的IMEI码保持一致,如果不一致,需要向工程师提出。
MTK刷机工具各种编号错误处理方法
MTK刷机sp flash tool error 8045:下面具体写教程,教程如下:1:先线刷回官方recovery,刷的方法是只勾选recovery一项。
然后点download。
顺利提示绿色ok。
2:进recovery确认已经刷回官方ANDROID SYSTEM RECOVERY <3e>版本;3:再按正常方法线线刷步骤1中的底包,勾选全部文件线刷。
4:这一次顺利刷完,绿色ok。
顺利开机。
见证奇迹的时刻。
总结一下就是:先单独刷回官方recovery。
再线刷官方救砖包。
MTK刷机sp flash tool error 3149:经过测试3149报错是字库内存条损坏,基本上是字库问题。
1、刷机过了红条,到了紫色条卡住。
(错误代码4008)这种情况出现的话,大家可以把电池拿下来,然后重新安装上,进入REC后选择关机。
然后重新刷。
2、驱动安装好了,一点刷机就弹出错误提示。
这种情况一般是USB口的供电问题,使用PC后面的USB插口,或者拔掉几个用电量大的设备。
3、正常操/作情况下,和步骤2出现的问题提示不一样的。
(典型的3013问题,出现率最高的)这个问题就是大家经常问的,出现这个问题基本上都是因为大家升级到了4.1.2然后想刷回4.0.4的情况,大家使用4.1.2刷机时候用的SP_Flash_Tool重新刷4.0.4即可,或者用甲鱼官方4.1.2的SP_Flash_Tool。
MTK 手机线刷错误信息汇总和解决办法【1022 错误】:刷机软件版本和手机不匹配、或者USB 接口不好用【解决办法】先换个USB 端口刷,:不行的话建议去下载个最新刷机软件试试去!【1040 错误】:S_UNSUPPORTED_OPERATION 刷机引导文件Scatter.txt 不匹配【解决办法】:下载适合你的机器的线刷ROM,很明显这个山寨机会遇到!比如机器是双核6577,但是下载的刷机ROM 是单核6575 的所以会报错【2005 错误】:S_BROM_CMD_STARTCMD_FAIL【解决办法】:实际是没有加载好刷机包的文件导致的,重新打开刷机软件,继续线刷即可!【3002 错误】:没有勾选下图的地方,刷机完毕,会提示【>TOOL DL image Fail!=>uboot is blockingby dl info】【解决办法】记得按下图的选项勾选,重新线刷一次即可!这样就不会开机卡屏了。
scatter文件详解
如图 2.1 所示为一个完整的分散加载脚本描述结构图。 下面我们对图示中各个部分进行 讲述。 2.2.1 加载区描述 每个加载区有: 名称:供连接器确定不同下载区域 基地址:相对或绝对地址 属性:可选 最大字节数:可选 执行区域列:确定执行时各执行区域的类型与位置 load_region_name (base_address | ("+" offset)) [attribute_list] [ max_size ] "{" execution_region_description+ "}"
分区 3:ROM3 (4M ->8M);
+0x0
0x00400000 改成了
ROM3
+0x0
0x00800000
分区 4:ROM4 (4M ->8M);
+0x0
0x00400000 改成了 ROM4
Hale Waihona Puke +0x00x00800000
3.
把内存总大小改成了 8M,原来才 4M: 我把 DUMMY_END 0x08400000 0x04 这样改后,我的 16M 改成了 DUMMY_END 0x08800000 0x04
LOAD_ROM_1 0x0000(下载区域一起始地址) { EXEC_ROM_1 0x0000(第一执行区域开始地址) { program1.o(+RO) (program1.o 内的 Code 与 RO data 放在第一执行区域) }
DRAM 0x18000(第二执行区域开始地址) 0x8000(第二执行区域最大字节数) { program1.o (+RW, +ZI) (program1.o 内的 RW data 与 ZI data 放在第二执行区域) } } LOAD_ROM_2 0x4000(下载区域二起始地址) { EXEC_ROM_2 0x4000 { program2.o(+RO) (program2.o 内的 Code 与 RO data 放在第一执行区域) } SRAM 0x8000 0x8000 { program2.o (+RW, +ZI) (program2.o 内的 RW data 与 ZI data 放在第二执行区域) } } 2.1 BNF 符号与语法 ":由引号赖标示的符号保持其字面原意,如 A”+”B 标示 A+B。 A ::= B :定义 A 为 B。 [A]:标示可选部分,如 A[B]C 用来标示 ABC 或 AC。 A+:用来标示 A 可以重复任意次,如 A+可标示 A,AA,AAA, … A*:同 A+。 A | B:用来标示选择其一,不能全选。如 A|B 用来标示 A 或者 B。 (A B): 标示一个整体, 当和|符号或复杂符号的多次重复一起使用时尤其强大, 如 (AB) +(C|D)标示 ABC,ABD,ABABC,ABABD, … 2.2 分散加载文件各部分描述
MTK平台生产软件 使用说明
版本号: 编号: 编制: 日期:
1.测试流程
1.1 SMT 后段测试流程图 (其中软件下载、BSN 写入、校准、综测、功能测试有对应的软件)
图1 1.2 组装测试流程图
( 其中软件升级、整机终测、写IMEI 号有对应的软件)
图2
2.下载
2.1 概述 • MTK 系列主板存储系统有两个Flash 构成,一个是主Flash,用于存放手机代码部分和其他参数;
使用。另外工程人员可以通过口令进入到设置模式下,改变一些常规的设置,而高级的设置则需要 工程人员到相应的配置文件里面修改。
MTK_ATEDEMO.EXE 工具校准项分为射频和基带两个部分,射频部分包括AFC 、APC 、 Path Loss, 基带部分包括ADC • AFC 自动频率控制 • APC 自动功率控制 • Path Loss 接受增益控制 • ADC 电池电量校准
4.2 软件安装
MTK_ATEDEMO.EXE 安装非常简单,只需将整个MTK_ATEDEMO.EXE 目录Copy
到本地即可。如果想删除只需Delete 整个目录。 4.3 硬件环境 4.3.1 设备清单:
• 工控机:Generic Pentium III or above PC • 测试仪:Agilent 8960 、CMU200 • 数控电源:Agilent66xx 、Keithly23xx • GPIB 卡:NI、Agilent(and Driver) • RF Cable、测试线/夹具
另外一个NAND Flash,用于存放MP3。 • 图1 中的下载工位(SMT 后段) 是将手机软件的SOFT 代码部分下载到主板上的Flash 并且将
参数格式化,而图2 中的下载(升级) 工位( 组装段)只是将手机软件的SOFT 代码部分更
mtk下载工具主要使用FlashTool的用法
mtk下载工具主要使用FlashTool_V3.1(其实各个版本都差不多),主要用于将编译生成的bin 文件写入目标手机中,该工具不用安装,直接运行,主要用法如下:1 运行Flash_tool.exe 打开软件,2 点击Download Agent 载入MTK_AllInOne_DA.bin 这个文件3 点击Scatter_Loading 载入scat.txt 这个文件4 双击ROM 将项目目录下build文件夹下的bin文件加载进来5 插上手机的下载线,点击option,选择手机的rate速率,和相应的com口(一般会用到com3和com4,可以根据实际情况而定)点击DownLoad,然后轻轻按下手机的开机键,就可以下载选择的bin文件到目标手机中TRACE工具的使用1 注意事项mtk手机默认情况下想要打trace,需要在平台代码中你要打trace的语句中添加如下代码kal_prompt_trace(MOD_MED, "Check err: buffer miss %d\n",g_video_enc_info_ptr->check_buffer_miss_count);kal_prompt_trace(MOD_MED, "Check err: camera miss %d\n",g_video_enc_info_ptr->check_camera_miss_count);用法和c语言的printf函数相似,只不过第一个参数需要写想要打trace的模块的名称,如MOD_MED并且在还需要打开手机,在待机屏幕下输入*#3646633#,进入工程模式,然后进入设备菜单,再进入Set UART à UART Setting将TST Config 设置为UART 1按下确认键后手机会自动关机,经过这样的设置后就可以打trace了2 打开Catcher.exe 点击Config 菜单,选择set database path,会弹出一个set path的对话框到项目文件下的路径tst\database_classb下选择相应的database 文件点击Control,选择mode ,然后选择Logging 模式会弹出logging对话框,然后选择Config à Configure RS232.. 会自动弹出PORT这个对话框,选择相应的端口和速率按下F5 快捷键和目标手机链接,点击Control à Set Filter...选择PS Filter,选择你想显示的trace 模块打开手机,打出相应的trace 信息不同的手机MTK FlashTool 和Catch工具的的使用可能有些不同,但基本使用都差不多。
MTK内存配置详细说明
没有配置则不需要修改 memory 配置;否则记录下各区域的大小。此处,为了简化实现, 必须 3 个区域都配置了才有效,且此处省去了配置各区域的校验。
2) 打开 custom_MemoryDevice.h 这个文件,将文件内容读到一个字符串中,然后关闭。 3) 在这个字符串中查找各区域定义的关键字,找到后使用配置的值替换掉。 4) 再次打开 custom_MemoryDevice.h 这个文件,将字符串写回文件中,然后关闭。完成配
0x200000
#define NOR_BOOTING_NOR_FS_FIRST_DRIVE_SECTORS 710
其中, NOR_BOOTING_NOR_FS_BASE_ADDRESS 是配置 code 区域的大小,这里配置为 0xe00000 即 14MB。Code 区中包含 bootloader 部分,固定占用 128KB,所以实际可用的代码区是小 于 14MB 的。 NOR_BOOTING_NOR_FS_SIZE 是配置文件系统区域的大小,这里配置为 0x200000 即 2MB; NOR_BOOTING_NOR_FS_FIRST_DRIVE_SECTORS 是配置用户可见区域的大小,此配置 的单位是 sector,1 sector = 512 Bytes,此处的 710 表示 710 个 sectors,即 355KB。
MCP 的 Block 可能会不同),常见的 Block 是 128KB。 3. 根据编译结果,可以确定需要调整的大小,如:
#define NOR_BOOTING_NOR_FS_BASE_ADDRESS
MTK内存配置详细说明
#define NOR_BOOTING_NOR_FS_BASE_ADDRESS
0xdc0000
#define NOR_BOOTING_NOR_FS_SIZE
0x240000
但是修改为以下的配置,则无法开机,只显示了 bootloader 画面,然后就死机了:
#define NOR_BOOTING_NOR_FS_BASE_ADDRESS
文件系统分配参考 ckSysDrv.log 文件:
===========================================================
FS Total Size
2097152
FS First Drive Size
363520
FS Overhead for (MBR + PBR + Root Dir)
Memory Configuration
Wanghzh 2010.03.29
1. NOR Flash
NOR Flash 的 ROM 和 RAM 都较小,要节省 RAM 只能是去掉不必要的功能或减少存储 PB/SMS 等的条数,或者优化应用占用的 RAM 空间。ROM 除了优化和节省代码和资源空 间,还可以通过调整代码区和文件系统区的大小来获得更多的代码区或用户空间。
注意:由于目前 make file 中都设置了 SYSGEN_ENABLE=TRUE,表示 scatter file 每次 new 编译时都会自动生成。在 10A 之前的版本,mcpgen.bat 中不需要执行 make sysgen 命令 scatter file 就会自动更新,但是 10A 版本则必须要执行 make sysgen 命令,否则 scatter file 无法根 据 custom_MemoryDevice.h 中修改的配置进行更新。
MTK平台智能机项目-升级工具使用说明
一.目的:此工具适用于MTK智能机平台(比如:MT6513,MT6515,MT6517,MT6573,MT6575,MT6577,MT6589等)项目的软件升级工作。
此工具同时支持16个端口一起下载,并采用两种USB通讯方式,一个是:BootRom方式,一个是Preloader方式。
此升级工具,默认情况下是Preloader 方式,因为手机之前下载过软件之后,模拟出来的端口,正常情况下都是Preloader方式的USB口,故只有选此端口,才可以升级软件。
但有时,手机模拟出来的端口却是BootRom方式的USB口,那就需要用户手动去选择BootRom方式的USB口,才可以继续升级软件,下面将详细的讲解工具使用方法。
二.电脑配置:工具对电脑的最差的配置要求如下:MTK推荐的最佳的电脑硬件的配置要求如下:另外USB口转接器件,最好不要用USB HUB,只能用PCI卡转接出来的,最好PCI卡的品牌是NEC 的,因为它的性能目前来说是非常好的,转接出来的USB口非常的稳定。
三.工具的功能介绍:1.先要安装下载线驱动程序,如何安装下载线驱动,具体请参看下载线安装说明书,这里不再累述。
运行此升级工具:,其主界面如下图所示:此主界面主要分为6个方面,分别为:COM口的设置与选择,下载速度模式的选择,工具的LOG抓取与查看,手机软件的加载,点击按钮开始下载,芯片型号的显示等。
下面将逐一,详细的解说。
COM口的设置与选择:此功能是设置虚拟端口,以及选择虚拟端口的方式,对应上述主界面上的菜单功能,此菜单里面包含2个子菜单,如右图所示:,其中“Set COM Port Number”用于设置端口号,点击此按钮后,会弹出如下图所示的对话框:此界面上有2种端口设置,其中第一种为:Preloader口,而我们目前所使用的此升级工具,模拟出来的一般就是此类型的USB口,故设置“[PreloaderPorts]”字段下的端口号即可,端口号为channel0-channel15,分别代表16个端口的端口号;其中channel0是起始的端口号,Channel15是结束的端口号。
MTK工具使用说明
万物青科技有限公司生产测试流程及工具使用说明文件名称 生产测试流程及工具使用说明 版本 A1.0 编制 金星 日期 2010年8月18日 审核 日期一.生产测试流程图:按照图示生产流程依次进行。
各测试站测试不良品需送维修站经维修人员分析维修后再返回下载测试站重新测试。
二.生产流程详解2.1 SMTSMT工艺流程依次为:来料检测—贴片(胶板)---极性确认--TOP面丝印焊膏---贴片—回流焊—翻板--Bottom面丝印焊膏---贴片—回流焊—外观检验。
2.2 下载通过下载工具将电子书软件下载到电子书的flash芯片中。
2.3 写S/N电子书在写S/N号之前还需要打印序列号标签并粘贴在手机主板上,每只手机板在板测之前必须写入一个序列号。
序列号一般包括主板型号,生产日期,流水号等信息,同时在后面的测试过程中还用来作为保存测试数据的文件名。
2.4 校准(Calibration)校准手机主板的射频指标以及电性能测试。
MTK_ATEDEMO.EXE 工具校准项分为射频和基带两个部分,射频部分包括AFC 、APC 、Path Loss, 基带部分包括ADC• AFC 自动频率控制• APC 自动功率控制• Path Loss 接受增益控制• ADC 电池电量校准2.5 综测主板综测、测试项目包括GSM、DCS、PCS 的功率、相差、均方根相差、频率误差、开关谱、调制谱、接收机灵敏度。
各项目的标准参照GSM 相关标准。
2.6 功能测试功能测试是进入自动测试工程模式,进行充电,SIM卡读取,LED测试,软件版本,LCD显示,按键,MIC,Speaker,耳机,音乐,sd 卡,蓝牙,FM,WIFI功能测试。
三.测试工具使用说明3.1 下载工具使用说明3.1.1 概述该软件通过计算机USB口与电子书连接,并采用串口数据通讯的方式把电子书软件下载到电子书的flash中,该软件由万物青科技提供。
3.1.2 硬件安装使用USB转串口的下载数据线,其下载速率最大可达到921600bit/s,生产厂商建议使用一拖四的USB Hub加USB数据线;使用USB下载数据线,需要先安装USB驱动程序。
本文详解MTK的编译过程
本文详解MTK的编译过程,并会根据我的理解来更新。
阅读上文对本文的一些文件和术语会有很好的帮助。
导读:Comp.mak 完成模块编译连接,生成binGsm2.mak 主编译文件,完成clean,remake,new等工作XXX_GPRS.mak 客户私有的配置,根据客户的不同,而设定不同的配置文件Option.mak 工程中的基本配置及宏定义文件V erno_XXX.bld 版本文件Custom.bld 要保证在客户版本中都使用相同的配置的地方要写在这里,这个里面的一些文件不能被改变第一步:1.Make.bat命令首先调用ChgFileMode.bat,将编译过程中需要用到的文件的只读属性修改为可读写,再调用make2.pl。
2.Make2.pl的主要工作就是匹配gsm2.mak的参数,然后通过命令system("${makeCmd} -f${makeFolder}${myMF} -r -R CUSTOMER=$custom PROJECT=$project $action");来调用gsm2.mak。
具体解析出来就是make -f make\gsm2.mak -r –R CUSTOMER=工程名PROJECT=gprs new|update|remake 第二步:整个过程如图Gsm2.makOption.makXXX_GPRS.makREL_CR_MMI_GPRS.makUSER_SPECIFIC.mak1.在Gsm2.mak文件的开始处调用了option.mak文件。
2.Option.mak又将make\$(strip $(CUSTOMER))_$(strip$(PROJECT)).mak文件包含进来,这个模式匹配结果为:make目录下,工程名称_GPRS.mak,如K500GSD_GPRS.mak。
3.在$(strip $(CUSTOMER))_$(strip$(PROJECT)).mak文件中又调用了REL_CR_MMI_$(strip$(PROJECT)).mak文件,这个文件模式具体被解析为make目录下的REL_CR_MMI_GPRS.mak文件。
mtk scatter编写规则
mtk scatter编写规则MTK Scatter编写规则MTK Scatter是一种用于编写手机ROM开发工具的规则文件,它是由MTK(联发科技)提供的一种用于分区和分散加载的配置文件。
本文将介绍MTK Scatter编写规则的相关内容,以帮助读者更好地理解和使用这一工具。
一、什么是MTK ScatterMTK Scatter是一种文本文件,用于描述Android手机的分区和分散加载信息。
在MTK平台上,手机的存储空间被分为不同的分区,每个分区都有自己的起始地址和大小。
MTK Scatter文件提供了这些分区的详细信息,包括分区名称、起始地址、大小等,以及用于加载ROM的相关信息。
二、MTK Scatter文件的基本结构MTK Scatter文件以XML格式编写,包含了一系列的标签和属性。
下面是一个简单的示例:```<?xml version="1.0" encoding="UTF-8"?><MTK_Scatter><Header></Header><Body><BootConfig></BootConfig><Partition></Partition><Download></Download></Body></MTK_Scatter>```MTK Scatter文件由三个主要部分组成:Header、Body和Partition。
Header部分用于描述文件的版本和作者等信息,Body 部分包含了BootConfig、Partition和Download等子标签,用于描述分区和加载信息。
三、分区信息的描述在MTK Scatter文件中,每个分区都用Partition标签来描述。
Partition标签包含了一系列的属性,如名称、文件名、起始地址、大小等。
【转】ARM编程:Scatter文件的编写、分析
【转】ARM编程:Scatter文件的编写、分析今天拿了被同事扔一边的ARM培训资料翻阅,读至scatter一节,发现写得甚是精辟。
之前看的很多国人写得文章,未免有简单问题复杂化之嫌。
而ARM的RVCT手册又偏冗长,不易让人立刻看到重点。
今归纳如下:scatter基本点:1. 编译后输出的映像文件中各段是首尾相连的,中间没有空闲的区域,它们的先后关系是根据链接时参数的先后次序决定的 armlinker -file1.o file2.o ……2. scatter用于将编译后的映像文件中的特定段加载到多个分散的指定内存区域3. 有2类域region:执行域(execution region,一般是ram区域)和加载域(load region,一般是rom区域)4. 加载域:就是编译之后得到的二进制文件烧写到rom中的这一段区域,所有的代码RO、预定义变量RW、堆栈之类清不清空无关紧要的大片内存区域ZI,都包括在其中5. 执行域:就是把加载域进行‘解压缩’后的样子。
比如:RO没有变动还是在ROM中,RW被移到了SRAM中,而ZI被放置在SDRAM中6. scatter本身并不能对映像实现‘解压缩’,编译器读入scatter 文件之后会根据其中的各种地址生成启动代码,实现对映像的加载,而这一段代码就是* (InRoot$$Sections)它是__main()的一部分。
这就是在汇编启动代码的最后跳转到__main() 而不是跳向main()的原因之一。
7. 起始地址与加载域重合的执行域成为root region,* (InRoot$$Sections)必须放在这个执行域中,否则链接的时候会报错。
*(+RO)包含了* (InRootSections),所以如果在rootregion中用到了?(+RO)可以不再指定?(InRootSections),scatter语法:ROM_LOAD 0x00000000{ROM 0x00000000 0x003FFFFF{vectors.o (+RO,+FIRST)* (InRoot$$Sections) ; All library sections that must be in a root region*(+RO)}SRAM 0x00400000 0x003FFFFF{* (+RW,+ZI)}SDRAM1 0x41000000 UNINIT{stack.o (+ZI) ; stack.s中定义了top_of_stack为长度为1的space,指定栈顶地址}SDRAM2 +0 UNINIT{heap.o (+ZI)}}注解:1. ROM_LOAD是加载域。
mtk scatter编写规则
mtk scatter编写规则MTK Scatter编写规则MTK Scatter是一种用于MTK芯片手机的固件升级和刷机工具,它通过一个scatter文件来规定固件的分区和相关信息。
在使用MTK Scatter编写规则时,需要注意以下几点。
scatter文件中不应包含任何http地址。
因为在固件升级和刷机过程中,不建议使用网络连接,以免出现不必要的风险。
因此,在编写规则时,应避免使用任何与网络连接相关的地址。
scatter文件中不应包含任何公式。
因为公式可能涉及到数学运算和逻辑判断,这些操作在固件升级和刷机过程中并不适用。
因此,在编写规则时,应尽量避免使用公式,以免引起误解。
在编写规则时,需要注意避免内容的重复。
重复的内容会使整个scatter文件变得冗长而混乱,不利于后续的固件升级和刷机操作。
因此,在编写规则时,应尽量避免重复的内容,以保证文件的整洁和规范。
为了使文章结构清晰、易于阅读,可以使用恰当的段落和标题来组织内容。
段落和标题的使用可以使文章的逻辑结构更加明确,读者可以更轻松地理解和掌握文章的内容。
因此,在编写规则时,应注意合理使用段落和标题,使文章的结构清晰可见。
在文章中,不应包含任何图片链接。
因为图片链接可能会导致加载速度过慢或无法加载的情况,影响读者的阅读体验。
因此,在编写规则时,应避免使用图片链接,以保证内容的流畅和连贯。
在文章中,应避免使用“如图所示”的表达方式。
因为读者无法直观地看到图片,这样的表达方式可能会造成误解或困惑。
因此,在编写规则时,应尽量避免使用“如图所示”的表达方式,以保证内容的准确和清晰。
在文章中,应避免重复提及已经解决的问题。
重复提及已经解决的问题会使文章显得冗长而累赘,不利于读者的理解和掌握。
因此,在编写规则时,应避免重复提及已经解决的问题,以保证内容的简洁和精炼。
在文章中,不应包含自我介绍的内容。
因为自我介绍与MTK Scatter编写规则无关,过多的介绍可能会分散读者的注意力。
MTK Scatter文件学习
MTK Scatter文件学习概述:分散加载(scatter loading)是ARM 连接接器提供的一个机制,该机制可以把一个可执行映像文件(即Bin文件)分割放置到内存中不同的独立段。
映像(Image)文件有两个视图:加载视图(Load view) 和执行视图(execution view)。
在下载的时候Image regions被放置在memory map当中,而在执行Image前,或许你需要将一些regions放置在它们执行时的地址上,并建立起ZI regions。
例如,你初始化的RW数据需要从它在下载时的在ROM中的地址处移动到执行时RAM的地址处。
在scatter 文件中可以为每一个代码或数据段在装载和执行时指定不同的存储区域地址,Scatlertoading的存储区块可以分成二种类型:装载区:当系统启动或加载时应用程序的存放区。
执行区:系统启动后,应用程序进行执行和数据访问的存储器区域,系统在实时运行时可以有一个或多个执行区。
映像中所有的代码和数据都有一个装载地址和运行地址(二者可能相同也可能不同,视具体情况而定)。
在系统启动时,C函数库中的__main初始化代码会执行必要的复制及清零操作,使应用程序的相应代码和数据段从装载状态转入执行状态。
为什么需要Scatter文件:制定存储器映射(memory map)的方法基本上有二种,一是在link时使用命令行选项,并在程序执行前利用linker pre-define symbol使用汇编语言制定section的段初始化,二是使用scatter file,即采用“分散加载机制”。
以上二种方法依应用程序的复杂度而定,一针对简单的情况,二针对复杂的情况。
手机属于复杂的情况,必须使用scatter file。
Scatter文件语法:scatter文件是一个简单的文本文件,包含一些简单的语法(分号后面的内容是注释):My_Region 0x0000 0x1000 ;区域名称区起始地址区长度{the context of region ;区内容}每个区由一个头标题开始定义,头中至少包含区的名字和起始地址,另外还有最大长度和其他一些属性选项。
mtk编译命令详解
1、new功能:全新开始构建整个工程的ARM版,包括图片、声音、字符串等资源都要重做。
在构建工程过程中,清除所有的目标文件,库文件,日志文件等。
New指令还会自动创建必要的目录、移除临时文件和中间脚本、更新日志文件。
过程简要说明:new->cleanall->sysgen->ckscatter->mmi_feature_check->asng en->codegen->asnregen->operator_check_lit->$(BTLD_BIN_FILE)->update。
依赖指令:new依赖的其他指令最多,其中包括cleanall,sysgen,ckscatter,mmi_featu re_check,asngen,codegen,asnregen,operator_check_lite,update.用途:new指令是最彻底也是耗时最长的一个动作,一般得到一个新的MTK发布版本后由项目负责人要做一次。
使用示例:C: BIRD25_GEMINI_07BRelease>make BIRD25_GEMINI_07B gprs new。
2、update功能:update是重新更新整个工程的ARM版,该动作会扫描工程中文件和库的依赖关系,若依赖关系有变化会建立新的依赖关系,随后根据新的依赖关系重新编译链接有改动的部分。
U pdate指令不依赖cleanall指令,所以它不会删除目标文件和库文件,也不会去更新日志文件和创建目标目录,这一点和remake相像,这也是为什么执行时间比new短的原因。
过程简要说明:update->cleanlog->cleanbin->mcddll_update->codegen->resge n->cksydrv->remake。
依赖指令:cleanlog,cleanbin,mcddll_updata,codegen,resgen,cksydrv,remake。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mtk scatter编写规则
MTK Scatter编写规则
MTK Scatter是一种用于MTK芯片手机的固件打包文件,它包含了固件的分区表和相关的参数信息。
在制作和刷写ROM时,MTK Scatter文件起着非常关键的作用。
本文将详细介绍MTK Scatter 编写规则,并对其进行解析和说明。
一、什么是MTK Scatter文件
MTK Scatter文件是一种文本文件,以“.txt”或“.scatter”为后缀名。
它包含了固件的分区表和相关的参数信息,用于指导刷写工具进行分区和烧录操作。
MTK Scatter文件由MTK官方提供,也可以由第三方ROM开发者根据具体需求自行编写。
二、MTK Scatter文件的结构
MTK Scatter文件由多个分区描述组成,每个分区描述包含了分区的起始地址、大小、名称等信息。
通常情况下,一个完整的MTK Scatter文件由以下几个部分组成:
1. 头部信息:包含了文件的版本号、名称等基本信息。
2. 分区描述:每个分区描述包含了分区的起始地址、大小、名称等详细信息。
不同的分区描述之间用空行或分隔符隔开。
3. 文件路径:指定了各个分区对应的固件文件路径。
这些文件包括
了bootloader、recovery、system、userdata等。
三、MTK Scatter文件的编写规则
编写MTK Scatter文件时,需要遵循一定的规则,以确保其正确性和可用性。
下面是一些常用的编写规则:
1. 分区起始地址和大小必须与实际情况相符,不能超出芯片的物理范围。
2. 分区名称要具有一定的描述性,以便于区分和识别。
3. 分区描述和文件路径要按照固定的格式编写,格式错误会导致刷写失败。
4. 分区描述和文件路径之间要用空行或分隔符隔开,以提高可读性。
5. 文件路径中不能包含空格或特殊字符,建议使用英文字符和数字。
6. 分区描述和文件路径的顺序要与实际刷写顺序相符,以确保正确的刷写流程。
7. 分区描述和文件路径之间可以添加注释,以便于其他人理解和修改。
8. 分区描述和文件路径之间要使用英文冒号“:”进行分隔。
9. 分区描述和文件路径之间可以添加可选的参数,如“-s”表示跳
过该分区的刷写。
四、MTK Scatter文件的使用
在制作和刷写ROM时,MTK Scatter文件起着非常关键的作用。
以下是MTK Scatter文件的使用流程:
1. 将MTK Scatter文件放置在刷写工具所在的目录下。
2. 打开刷写工具,选择“Scatter-loading”选项,然后选择MTK Scatter文件。
3. 刷写工具会自动加载MTK Scatter文件,并显示出各个分区的信息。
4. 根据需要选择分区,勾选或取消勾选相应的分区。
5. 点击“刷写”按钮,开始刷写固件。
6. 刷写完成后,重新启动手机,即可看到新的固件生效。
总结
MTK Scatter文件是用于MTK芯片手机的固件打包文件,它包含了固件的分区表和相关的参数信息。
编写MTK Scatter文件需要遵循一定的规则,确保其正确性和可用性。
在制作和刷写ROM时,MTK Scatter文件起着非常关键的作用,它指导刷写工具进行分区和烧录操作。
通过正确使用MTK Scatter文件,我们可以顺利地刷写固
件,实现手机的升级和修复。