2、SP_Flash_Tool基础操作:下载与安装、驱动配置、Scatter文件加载、DA文件选择、Download与Format操作详解

好,咱们正式开始动手了。SP_Flash_Tool,圈里人都叫它“刷机工具”或者“烧录器”。说实话,这玩意儿是我日常工作中打交道最多的工具之一,没有它,MTK的板子基本就是块砖。今天这一章,我把最基础的操作掰开揉碎了讲给你听。

2.1 下载与安装:别走弯路

工具去哪找?我个人习惯去MTK的官方在线平台(MediaTek Online)下载,或者找芯片代理商要。网上那些乱七八糟的版本,我建议你别用。为什么?因为有些改版工具会夹带私货,或者DA文件不匹配,烧着烧着就报错,很坑。

下载下来是个压缩包,解压就行。嗯,注意路径不要有中文和空格。我见过有人把工具放在“C:\Program Files (x86)\刷机工具\”下面,结果驱动死活装不上。说白了,Windows对中文路径的支持有时候会抽风,咱们做工程的,尽量避免这种不确定性。

我的习惯: 在D盘根目录建一个“MTK_Tools”文件夹,所有版本按日期命名,比如“SP_Flash_Tool_v5.2124_20231015”。清爽,好找。

2.2 驱动配置:卡住最多人的一步

驱动装不好,工具连不上手机,这是新手最容易卡壳的地方。MTK的驱动分两种:一种是Preloader驱动,一种是VCOM驱动(虚拟串口)。

怎么装?先把手机电池扣掉(如果是可拆卸电池),或者按住音量键插入USB。这时候设备管理器里会跳出一个带黄色感叹号的设备,那就是它了。

我曾经在一个项目里,因为驱动版本不对,折腾了整整一个下午。后来发现,Win10系统需要禁用驱动签名强制,才能装上老版本的DA驱动。你想想看,一个下午就耗在这上面,多冤。

避坑指南: 如果你用的是Win10或Win11,装驱动前先按住Shift键重启电脑,进入“高级启动” -> “疑难解答” -> “启动设置” -> 选择“禁用驱动程序强制签名”。这一步不做,驱动大概率装不上。

驱动装好后,设备管理器里应该能看到“MediaTek Preloader USB VCOM Port”或者“MediaTek DA USB VCOM Port”。看到这个,恭喜你,驱动这关过了。

2.3 Scatter文件加载:烧录的“地图”

Scatter文件,说白了就是一张分区表。它告诉工具:你的芯片里有哪些分区(比如Bootloader、NV、System、UserData),每个分区起始地址是多少,大小是多少。

打开SP_Flash_Tool,点击“Scatter-loading”按钮,选择你项目编译出来的MTxxxx_Android_scatter.txt文件。加载成功后,工具界面会列出所有分区信息。

这里有个细节:分区名称前面的复选框。勾上的分区才会被烧录。我刚开始做的时候,有一次忘了勾“UserData”,结果开机后存储空间显示为0。嗯,这种低级错误,犯过一次就记住了。

重要提醒: 加载Scatter文件时,一定要确认文件路径没有中文。另外,不同项目、不同内存配置的Scatter文件不能混用。DDR3和DDR4的Scatter文件,地址偏移完全不同,混用必砖。

2.4 DA文件选择:烧录的“引擎”

DA文件,全称是Download Agent。你可以把它理解成烧录过程中的“引导程序”。工具先通过USB把DA文件加载到芯片的SRAM里,然后DA再接管后续的烧录工作。

SP_Flash_Tool通常会自动匹配DA文件。但如果你用的是新芯片,或者工具版本太老,就需要手动指定。点击“Choose”按钮,选择对应平台的DA文件。比如MT6765平台,就用MTK_DA_SWSEC_v5.0.bin这类文件。

我记得有一次,客户拿了个工程样片过来,用最新的工具死活连不上。后来我换了个老版本的DA文件,一次就成功了。说白了,DA文件跟芯片的BootROM版本有对应关系,不是越新越好,匹配才是王道。

小技巧: 如果你不确定用哪个DA文件,可以看Scatter文件里的“platform”字段。比如“platform: MT6765”,那就去工具目录下的“DA_PLATFORM”文件夹里找带“MT6765”字样的DA文件。

2.5 Download操作详解:把固件写进去

Download操作,就是烧录固件。操作步骤很简单:

  1. 加载正确的Scatter文件
  2. 确认DA文件已匹配
  3. 点击“Download”按钮
  4. 将设备(手机/开发板)连接到电脑

工具会自动检测设备,进入下载流程。你会看到进度条从红色变成黄色,最后变成绿色。绿色代表成功。

这里有个坑:Download操作会烧录所有勾选的分区。如果你只想更新某个分区(比如只更新Bootloader),那就只勾选那个分区,然后点击“Download”。不要全选,否则浪费时间。

警告: Download操作会覆盖目标分区的原有数据。如果你只是想调试,建议先备份NV分区和IMEI分区。我曾经帮一个同事恢复过误刷丢失的IMEI,过程相当痛苦。

2.6 Format操作详解:清空与重置

Format操作,说白了就是擦除。它会把芯片里的数据清空,让分区回到出厂状态。

SP_Flash_Tool提供了两种Format方式:

操作类型 作用范围 使用场景
Format All 擦除所有用户数据分区 恢复出厂设置、清除用户数据
Format Whole Flash 擦除整个Flash芯片 彻底清空、重新分区、救砖

我个人建议:非必要不点“Format Whole Flash”。为什么?因为一旦点了,连Preloader都会被擦掉。如果后续Download失败,你的设备就彻底变砖了,需要用更高级的工具(比如USB转UART)才能救回来。

我曾经在一个量产项目中,有个新来的同事误点了“Format Whole Flash”,结果整批50台设备全部变砖。后来我们用串口工具一台一台救,花了整整两天。你想想看,这个代价有多大。

正确做法: 日常调试用“Format All”就够了。如果确实需要擦除整个Flash,请先确认你能通过其他方式(比如UART)重新烧录Preloader。否则,别碰那个按钮。

2.7 实操建议:先Download再Format

很多新手会问:到底是先Download还是先Format?我的答案是:先Download,再Format

为什么?因为Download操作本身会先擦除目标分区再写入。如果你先Format,再Download,相当于做了两次擦除,浪费时间。而且,如果Format后Download失败,设备就处于空片状态,连Preloader都没有,救起来很麻烦。

正确的流程是:

  1. 加载Scatter文件
  2. 点击Download
  3. 连接设备,等待烧录完成
  4. 如果需要清空用户数据,再单独做一次Format All

嗯,这个顺序是我踩过坑之后总结出来的。你照着做,能省不少事。

最后说一句: SP_Flash_Tool的日志窗口很有用。如果烧录失败,别急着拔线,先看看日志里报了什么错。大部分问题,日志里都有线索。学会看日志,是成为调试高手的必经之路。