MTK工具开发简介
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MTK工具开发简介
2010-1-21
提要
1. 2. 3. 4. 开发环境及编译 META及其通信原理 工具开发基础知识 PhoneSuite及通信原理
1.1 开发环境
Meta系列(包括META、Flash Tool、 Multiport Download Tool及其他):C++ Builder,使用META库来连接和通信。 串口工具(如Catcher和PhoneSuite): Visual C++,使用串口通信API和AT命令 开发。 InstallShieldXExpress:安装程序制作 Autoplay Media Studio:制作启动光盘
2.1 META的代码结构
BROM_DLL的头文件
所有对话框的代码,其中form_main.cpp是启动界面。 Proxy模式: CMetaDllMan、CNVRAMMan、CDllMan 等 META_DLL的头文件 保存配置的代码 编译输出目录,下面包括一些DLL文件和INI文件 安全认证的类 参数备分还原的功能
2.2 与手机通信的底层库
BROM.DLL:负责与手机启动时的握手协议。 META.DLL:负责与手机通信。 META-LAB:TX/RX/AFC控制、NVRAM读写、铃声测 试;不需仪器支持,用于开发。 META-FACTORY:产线RF校准。 SLA_Challenge.dll:安全认证的库。
CMetaDllMan 手机
3.1 从手机里读出一项NVRAM值
主函数 开始 否 初始化Database 回调函数 进入 Database初始化完成 是 读出NVRAM项的长度 成功? 否 释放现有缓存 建立新缓存 定义NVRAMMan的回调函数 用NVRAMMan读出数据 等待p_ReadOver_Event 成功 重置事件 p_ReadOver_Event 结束 超时 报警提示失败 对NVRAM缓存的数据 进行提取和操作 设置事件 p_ReadOver_Event
3.3 开发一款新的工具的流程
可以沿用META原有的主界面,即在 META的代码的基础上开发; 新建一个Form,并在form_main.cpp将这 个Form加到列表里去,然后完善它。
3.将不用到的窗口移到右边,同时在form_main.cpp里面 将之屏蔽
4.使用DEBUG模式来开发。
5. 发布软件: 选择Release模式重新编一次。 进入Output目录,将编完后的应用程序和 需要用到的DLL、INI文件挑出来。 用InstallShieldXExpress制作安装程序。 如果需要的话要用Autoplay Media Studio 来制作启动光盘。
接收缓存指针为NULL
结束
Baidu Nhomakorabea
从手机里读出一项NVRAM值
1. 在对话框的类声明里添加两个成员变量: char *m_pcsecBuf; //用来做NVRAM数据的缓存 int m_secreclen; //用来读取NVRAM数据的长度 2. 在按下“读取”键后,首先判断NVRAM是否已经初始化完成,如 果没有,则调用frmMainSel->mnuFDMDatabaseClick(Sender); 3. 读出NVRAM项的长度: MetaResult = META_NVRAM_GetRecLen(SMLLID,(int *) &m_secreclen); 4. 根据m_secreclen的值来建立m_pcsecBuf。、 5. 定义回调函数NVRAMMan->ConfirmCallback。 6. 调用NVRAMMan的REQ_ReadNVRAM_Start()函数从手机读数据, 并等待回调函数的readover事件。 7. 如果readover事件在预定时间内发生则读取成功,否则提示失败。
设置事件 p_WriteOver_Event
往手机里写入一项NVRAM值
1. 在按下“写入”键后,首先判断NVRAM是否已经初始化完成,如 果没有,则调用frmMainSel->mnuFDMDatabaseClick(Sender);如 果程序是先读后写,这步可以省略。 2. 使用META_NVRAM_SetRecFieldValue对m_pcsecBuf里的值进行 修改。 3. 定义回调函数NVRAMMan->ConfirmCallback。 4. 调用NVRAMMan的REQ_WriteNVRAM_Start ()函数从手机读数据, 并等待回调函数的writeover事件。 5. 如果writeover事件在预定时间内发生则读取成功,否则提示失败。
UI PbJobThread ImagesJobThread FileJobThread 任务线程类 SMSThread JobThread MmsJobThread
MelodyJobThread 通信封装类 Connection类 CommModule类 类 类 AJobThread
通信线程类
ModuleThread Rs232Module
1. 2.
BROM_DLL
BROM_DLL的功能与流程
1. 创建和加载句柄 DA_HANDLE_T:Download Agent,ROM识别等。 AUTH_HANDLE_T:针对加密的基带芯片。 DL_HANDLE_T:下载文件加载。 DL_HANDLE_LIST_T:多下载文件加载。 RB_HANDLE_T:从手机读取内容。 连接到手机 Advanced API Set(用FlashTool_Connect或FlashTool_Connect_ByhCom函数) All-In-One API Set(可省略3-6步) 设置波特率 FlashTool_ChangeBaudrate() DA操作唤醒 断开前处理 FlashTool_PostProcess() 与手机断开 FlashTool_Disconnect() 释放资源 释放句柄等操作。
AT命令执行结果 手机
用串口发AT命令
2.
3. 4. 5. 6. 7.
META_DLL的基本原理
应用程序 回调函数 线程 通知 结果 操作请求
META-DLL 确认状态 读写请求
手机
META连接到手机的过程
定时时间到 定时器为开
form_Main
glbTimerTimer() 否 是 连接上? 关闭计时器
StartConnectTarget
然后点Install…完成该控件的安装,之后 META就可以编译通过了。
DEBUG和RELEASE模式
在C++ Builder的“Project->Options>Compiler”下可以选择:
PhoneSuite的编译 1. 需要安装Visual C++ 6.0 SP6 以上版本。 2. 需要安装htmlhelp.exe。
1.2 安装及编译步骤
首先讲一下META在C++ Builder下的第一 次编译。安装完C++ Builder后,需要运行 “Component->Import ActiveX Control”, 点Add
在弹出的文件选择对话框中选“Any file”, 选到META所在的目录下的“Output”文件 夹下,选择“Controls.dll”,
也可以自编一个简单的,参见ResetUserData_Tool的代码。
ResetUserData_Tool的代码结构
4.1 PhoneSuite的程序目录
编译输出目录 串口和手机通信的代码及AT协议分析 多语言支持 主程序 短信相关功能的库 Theme管理功能
4.2 PhoneSuite的通信原理
3.2 往手机里写入一项NVRAM值
主函数 开始 否 初始化Database 回调函数 进入 Database初始化完成 是 设置缓存区里某项NVRAM的值 定义NVRAMMan的回调函数 用NVRAMMan写入数据到手机 等待p_WriteOver_Event 成功 重置事件 p_WriteOver_Event 结束 超时 报警提示失败 结束
2010-1-21
提要
1. 2. 3. 4. 开发环境及编译 META及其通信原理 工具开发基础知识 PhoneSuite及通信原理
1.1 开发环境
Meta系列(包括META、Flash Tool、 Multiport Download Tool及其他):C++ Builder,使用META库来连接和通信。 串口工具(如Catcher和PhoneSuite): Visual C++,使用串口通信API和AT命令 开发。 InstallShieldXExpress:安装程序制作 Autoplay Media Studio:制作启动光盘
2.1 META的代码结构
BROM_DLL的头文件
所有对话框的代码,其中form_main.cpp是启动界面。 Proxy模式: CMetaDllMan、CNVRAMMan、CDllMan 等 META_DLL的头文件 保存配置的代码 编译输出目录,下面包括一些DLL文件和INI文件 安全认证的类 参数备分还原的功能
2.2 与手机通信的底层库
BROM.DLL:负责与手机启动时的握手协议。 META.DLL:负责与手机通信。 META-LAB:TX/RX/AFC控制、NVRAM读写、铃声测 试;不需仪器支持,用于开发。 META-FACTORY:产线RF校准。 SLA_Challenge.dll:安全认证的库。
CMetaDllMan 手机
3.1 从手机里读出一项NVRAM值
主函数 开始 否 初始化Database 回调函数 进入 Database初始化完成 是 读出NVRAM项的长度 成功? 否 释放现有缓存 建立新缓存 定义NVRAMMan的回调函数 用NVRAMMan读出数据 等待p_ReadOver_Event 成功 重置事件 p_ReadOver_Event 结束 超时 报警提示失败 对NVRAM缓存的数据 进行提取和操作 设置事件 p_ReadOver_Event
3.3 开发一款新的工具的流程
可以沿用META原有的主界面,即在 META的代码的基础上开发; 新建一个Form,并在form_main.cpp将这 个Form加到列表里去,然后完善它。
3.将不用到的窗口移到右边,同时在form_main.cpp里面 将之屏蔽
4.使用DEBUG模式来开发。
5. 发布软件: 选择Release模式重新编一次。 进入Output目录,将编完后的应用程序和 需要用到的DLL、INI文件挑出来。 用InstallShieldXExpress制作安装程序。 如果需要的话要用Autoplay Media Studio 来制作启动光盘。
接收缓存指针为NULL
结束
Baidu Nhomakorabea
从手机里读出一项NVRAM值
1. 在对话框的类声明里添加两个成员变量: char *m_pcsecBuf; //用来做NVRAM数据的缓存 int m_secreclen; //用来读取NVRAM数据的长度 2. 在按下“读取”键后,首先判断NVRAM是否已经初始化完成,如 果没有,则调用frmMainSel->mnuFDMDatabaseClick(Sender); 3. 读出NVRAM项的长度: MetaResult = META_NVRAM_GetRecLen(SMLLID,(int *) &m_secreclen); 4. 根据m_secreclen的值来建立m_pcsecBuf。、 5. 定义回调函数NVRAMMan->ConfirmCallback。 6. 调用NVRAMMan的REQ_ReadNVRAM_Start()函数从手机读数据, 并等待回调函数的readover事件。 7. 如果readover事件在预定时间内发生则读取成功,否则提示失败。
设置事件 p_WriteOver_Event
往手机里写入一项NVRAM值
1. 在按下“写入”键后,首先判断NVRAM是否已经初始化完成,如 果没有,则调用frmMainSel->mnuFDMDatabaseClick(Sender);如 果程序是先读后写,这步可以省略。 2. 使用META_NVRAM_SetRecFieldValue对m_pcsecBuf里的值进行 修改。 3. 定义回调函数NVRAMMan->ConfirmCallback。 4. 调用NVRAMMan的REQ_WriteNVRAM_Start ()函数从手机读数据, 并等待回调函数的writeover事件。 5. 如果writeover事件在预定时间内发生则读取成功,否则提示失败。
UI PbJobThread ImagesJobThread FileJobThread 任务线程类 SMSThread JobThread MmsJobThread
MelodyJobThread 通信封装类 Connection类 CommModule类 类 类 AJobThread
通信线程类
ModuleThread Rs232Module
1. 2.
BROM_DLL
BROM_DLL的功能与流程
1. 创建和加载句柄 DA_HANDLE_T:Download Agent,ROM识别等。 AUTH_HANDLE_T:针对加密的基带芯片。 DL_HANDLE_T:下载文件加载。 DL_HANDLE_LIST_T:多下载文件加载。 RB_HANDLE_T:从手机读取内容。 连接到手机 Advanced API Set(用FlashTool_Connect或FlashTool_Connect_ByhCom函数) All-In-One API Set(可省略3-6步) 设置波特率 FlashTool_ChangeBaudrate() DA操作唤醒 断开前处理 FlashTool_PostProcess() 与手机断开 FlashTool_Disconnect() 释放资源 释放句柄等操作。
AT命令执行结果 手机
用串口发AT命令
2.
3. 4. 5. 6. 7.
META_DLL的基本原理
应用程序 回调函数 线程 通知 结果 操作请求
META-DLL 确认状态 读写请求
手机
META连接到手机的过程
定时时间到 定时器为开
form_Main
glbTimerTimer() 否 是 连接上? 关闭计时器
StartConnectTarget
然后点Install…完成该控件的安装,之后 META就可以编译通过了。
DEBUG和RELEASE模式
在C++ Builder的“Project->Options>Compiler”下可以选择:
PhoneSuite的编译 1. 需要安装Visual C++ 6.0 SP6 以上版本。 2. 需要安装htmlhelp.exe。
1.2 安装及编译步骤
首先讲一下META在C++ Builder下的第一 次编译。安装完C++ Builder后,需要运行 “Component->Import ActiveX Control”, 点Add
在弹出的文件选择对话框中选“Any file”, 选到META所在的目录下的“Output”文件 夹下,选择“Controls.dll”,
也可以自编一个简单的,参见ResetUserData_Tool的代码。
ResetUserData_Tool的代码结构
4.1 PhoneSuite的程序目录
编译输出目录 串口和手机通信的代码及AT协议分析 多语言支持 主程序 短信相关功能的库 Theme管理功能
4.2 PhoneSuite的通信原理
3.2 往手机里写入一项NVRAM值
主函数 开始 否 初始化Database 回调函数 进入 Database初始化完成 是 设置缓存区里某项NVRAM的值 定义NVRAMMan的回调函数 用NVRAMMan写入数据到手机 等待p_WriteOver_Event 成功 重置事件 p_WriteOver_Event 结束 超时 报警提示失败 结束