MTK开机详解

本文详细介绍了MTK平台的开机过程,从启动simulator到各个模块的初始化,包括MMI_task()、Power On步骤、初始化关键函数如InitializeAll()。涉及MMI框架、事件处理、资源加载等方面,是理解MTK系统启动机制的重要参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MTK笔记

L4是MMI/AT和协议栈的适配层。
ATCI是AT命令解析器。
UEM是用于抽象如键盘、LED、通用输入/输出等基本设备,是用户设备模块。
PHB就是电话本。
SMU是安全管理单元(SIM、STK)。
CSM是呼叫服务管理。
RAC是登记访问控制。
SMSAL是SMS应用层。

内核服务包括定时器、任务管理和进程间通信、资源和内存管理、日志和异常处理。

OSL是封装OS API的层,而KAL(kernel adpat layer)则是封装内核的层,应当在OSL以上来开发。

数据类型定义(VRE的头会比MTK更乱吗?)

* 基本数据类型:kal_non_specific_general_types.h。
* KAL相关的定义:kal_release.h。(好变态的名字,对不对啊?)
* MMI任务中和OSL相关的数据类型定义:PixtelDataTypes.h。

任务之间的通信是通过SEND_ILM来完成的,从实现来看是通过一个消息队列来完成的,关注struct ilm_struct定义,SAP是业务访问点。发送消息之前,首先要把本地参数缓冲区分配出来,然后赋值发送请求。

Highlight事件是用户通过键盘触发的事件,与提示信息关联。

SetProtocolEventHandler实际上就是MMI FRAMEWORK提供的回调函数注册工具,与MMI相关的所有事件都可以通过这个函数登记——包括网络。

按键码需要注意的几个特殊键:KEY_END是挂机键、KEY_SEND是摘机键。

MMI字符串资源的加入:

1)在ref_list.txt中加入字符串。
2)把字符串ID加入到ID枚举中。
3)使用ADD_APPLICATION_STRING2来加入字符串。
4)使用 GetString_r()获得字符串。
5)使用APP_BASE来保证字符串ID的唯一性。

图片资源的加入:

1)把图片加入应用程序目录。
2)把图片ID加入枚举类型中。
3)使用ADD_APPLICATION_IMAGE2来加入图片资源。
4)绘图时就可以直接使用图片ID来绘制了。
5)使用APP_BASE来保证图片ID的唯一性。

MMI各模块对应的目录:

Idle Screen:plutommi\mmi\IdleScreen
Main Menu:plutommi\mmi\MainMenu
Phone Book:plutommi\mmi\PhoneBook
Messages:plutommi\mmi\Messages
Call History:plutommi\mmi\Calls
Call Management:plutommi\mmi\CallManagement
Setting:plutommi\mmi\Setting
File Manager:plutommi\mtkapp\FileMgr
Fun &Games:plutommi\mmi\FunAndGames
User Profiles:plutommi\mmi\PROFILES
Organizer:plutommi\mmi\Organizer
Services:plutommi\mmi\SAT
Shortcuts:plutommi\mmi\Shortcuts
Audio Player:plutommi\mtkapp\AudioPlayer
Camera:plutommi\mtkapp\Camera
FMRadio:plutommi\mtkapp\FMRadio
Photo Editor:plutommi\mtkapp\PhotoEditor
Sound Recorder:plutommi\mtkapp\SoundRecorder

MMI特性定义文件在mcu\plutommi\Customer\CustResource\MMI_features[PROJ].h。

菜单的定义在GlobalMenuItems.h中。

 

MTK开机过程-系统启动

以下开机过程都是在simulator上跑时得出的结论

第一步:启动simulator的时候,直接进入:MMI_task()

1. iacMemInit();

2.进入一个while(1)循环。以后的过程都是通过消息机制,即:一直在这个循环中读取消息,然后做相应的处理。

第一次进入while(1)之后,OslReceiveMsgExtQ(qid, &Message)就读取到一个消息:PRT_MMI_TIMER_IND。然后就一直在这个循环中读消息。 

mmi_frm_fetch_msg_from_extQ_to_circularQ();//消息转化(从外部队列取出消息并放入循环队列)
count = OslNumOfCircularQMsgs();//获得消息总数
while (count> 0)
{
   if (OslReadCircularQ(&Message))//从循环队列中读取消息
   {
       switch (Message.msg_id)
       {
           case MSG_ID_MMI_EQ_POWER_ON_IND:
               ......
        &nbs

RDA8851 软件开发配置说明 一、 建立软件开发环境 ..........................................................................................................7 1. 安装 SDK ...................................................................................................................7 2. 更新 cooltools 工具 ............................................................................................14 3. 设置一个 HOME 的环境变量...................................................................................15 4. 配置代码路径 ........................................................................................................17 5. 准备源码 ................................................................................................................19 6. 切换到代码工作区 ................................................................................................19 7. 编译代码 ................................................................................................................20 8. 编译命令的说明 ....................................................................................................21 9. 安装下载线(USB 转串口)驱动..............................................................................22 10. 下载........................................................................................................................25 11. Linux 平台下编译环境配置..................................................................................30 二、 调试工具使用说明 ........................................................................................................33 1. 选择平台,配置端口 ............................................................................................33 2. 烧写 FLASH .............................................................................................................35 3. TRACE 工具 .............................................................................................................37 4. GDB 调试 .................................................................................................................43 5. 抓取 coolprofile .................................................................................................51 6. 射频校准调试 ........................................................................................................59 7. 芯片控制 ................................................................................................................66 8. 命令行操作 ............................................................................................................67 9. 其他功能 ................................................................................................................68 10. 查看芯片内部寄存器 ............................................................................................68 三、 代码目录结构 ................................................................................................................70 1. target 配置 ...........................................................................................................70 1. target.def 详细描述....................................................................................70 2. tgt_board_cfg.h 详细描述..........................................................................89 3. tgt_app_cfg.h 详细描述............................................................................110 2. MMI 配置 ...............................................................................................................113 3. 资源......................................................................................................................113 4. 模拟器..................................................................................................................115 四、 常见问题......................................................................................................................116
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值