mtk 软件结构综合概述.docx
- 文档编号:9997748
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:33
- 大小:694.41KB
mtk 软件结构综合概述.docx
《mtk 软件结构综合概述.docx》由会员分享,可在线阅读,更多相关《mtk 软件结构综合概述.docx(33页珍藏版)》请在冰豆网上搜索。
mtk软件结构综合概述
目录
----------------------------------------------------------------------------------------------------------------------------------------
1.手机软件概述4
2.手机软件结构说明5
2.1.OS5
2.1.1.OS提供的用户接口5
2.2.L1协议栈8
2.3.驱动8
2.4.L2/L3/L4协议栈9
2.5.MMI11
2.5.1.概述11
2.5.2.MMITASK作用和地位13
2.5.3.MMITASK入口函数说明13
2.6.Framework13
2.6.1.framework层的功能13
2.6.2.framework的元素13
2.7.事件处理14
2.7.1.事件的分类14
2.7.2.协议事件处理流程14
2.7.3.按键事件处理流程15
2.8.显示处理17
2.8.1.详细说明18
3.TASK说明18
3.1.概述18
3.2.TASK优先级别说明19
4.中断说明21
4.1.定时器中断说明21
4.2.外部中断说明21
5.重要流程说明22
5.1.手机上电流程22
5.2.OS启动流程23
6.重要函数说明23
6.1.MMI读消息处理23
7.重要数据结构说明24
7.1.mailbox数据结构说明24
8.手机源文件的文件功能说明24
1.手机软件概述
MediaTekinc.GSM软件方案提供电路交换。
可以实现语言和数据应用。
本方案提供两种带宽的访问(GSM900和DCS1800)
本方案由五部分组成:
L1协议、设备驱动、协议栈、MMI和WAP应用。
MediaTek同时提供三种工具给用户:
Catcher,META和MCT。
如下图所示。
Figure1软件结构图
软件方安由三个组件构成
1.MS的可执行软件,这是在手机上运行的部分,包括以下模块:
-OS:
NucleusOS.
-L1协议栈:
GSM的物理层。
-Drivers:
设备驱动,象SIM,URAT,GPIO,等等。
-L2/L3协议栈:
GSM协议栈层。
-MMI:
人机界面。
-WAP:
无线应用协议。
-JAVA:
J2ME软件。
2手机工程测试结构,即所谓的META.
3Catcher
这些组件以下做简要的描述。
2005.04.14Lihuaadd总体讲手机软件就是通讯软件(协议栈)和GUI(MMI)的联合体。
2.手机软件结构说明
2.1.OS
MediaTek采用NucleusOS真正的实时操作系统。
AKALOS适配层被用来使MediaTek的软件适应NucleusOS。
这个API提供一系列的系统服务函数给其他的task,象primitives,timers,queue,memorymanagement,event,等等。
2.1.1.OS提供的用户接口
nucleus.h
/*Thisfilecontainssystemconstantscommontoboththe*/
/*applicationandtheactualNucleusPLUScomponents.Thisfile*/
/*alsocontainsdatastructuredefinitionsthathideinternal*/
/*informationfromtheapplication.*/
#defineNU_Create_TaskTCCE_Create_Task
#defineNU_Delete_TaskTCCE_Delete_Task
#defineNU_Reset_TaskTCCE_Reset_Task
#defineNU_Terminate_TaskTCCE_Terminate_Task
#defineNU_Resume_TaskTCCE_Resume_Service
#defineNU_Suspend_TaskTCCE_Suspend_Service
#defineNU_RelinquishTCCE_Relinquish
#defineNU_SleepTCCE_Task_Sleep
#defineNU_Change_PriorityTCSE_Change_Priority
#defineNU_Change_PreemptionTCSE_Change_Preemption
#defineNU_Change_Time_SliceTCSE_Change_Time_Slice
#defineNU_Check_StackTCT_Check_Stack
#defineNU_Current_Task_PointerTCC_Current_Task_Pointer
#defineNU_Established_TasksTCF_Established_Tasks
#defineNU_Task_InformationTCF_Task_Information
#defineNU_Task_PointersTCF_Task_Pointers
#defineNU_Create_MailboxMBCE_Create_Mailbox
#defineNU_Delete_MailboxMBCE_Delete_Mailbox
#defineNU_Reset_MailboxMBSE_Reset_Mailbox
#defineNU_Send_To_MailboxMBCE_Send_To_Mailbox
#defineNU_Broadcast_To_MailboxMBSE_Broadcast_To_Mailbox
#defineNU_Receive_From_MailboxMBCE_Receive_From_Mailbox
#defineNU_Established_MailboxesMBF_Established_Mailboxes
#defineNU_Mailbox_InformationMBF_Mailbox_Information
#defineNU_Mailbox_PointersMBF_Mailbox_Pointers
#defineNU_Create_QueueQUCE_Create_Queue
#defineNU_Delete_QueueQUCE_Delete_Queue
#defineNU_Reset_QueueQUSE_Reset_Queue
#defineNU_Send_To_QueueQUCE_Send_To_Queue
#defineNU_Send_To_Front_Of_QueueQUSE_Send_To_Front_Of_Queue
#defineNU_Broadcast_To_QueueQUSE_Broadcast_To_Queue
#defineNU_Receive_From_QueueQUCE_Receive_From_Queue
#defineNU_Established_QueuesQUF_Established_Queues
#defineNU_Queue_InformationQUF_Queue_Information
#defineNU_Queue_PointersQUF_Queue_Pointers
#defineNU_Create_PipePICE_Create_Pipe
#defineNU_Delete_PipePICE_Delete_Pipe
#defineNU_Reset_PipePISE_Reset_Pipe
#defineNU_Send_To_Front_Of_PipePISE_Send_To_Front_Of_Pipe
#defineNU_Send_To_PipePICE_Send_To_Pipe
#defineNU_Broadcast_To_PipePISE_Broadcast_To_Pipe
#defineNU_Receive_From_PipePICE_Receive_From_Pipe
#defineNU_Established_PipesPIF_Established_Pipes
#defineNU_Pipe_InformationPIF_Pipe_Information
#defineNU_Pipe_PointersPIF_Pipe_Pointers
#defineNU_Create_SemaphoreSMCE_Create_Semaphore
#defineNU_Delete_SemaphoreSMCE_Delete_Semaphore
#defineNU_Reset_SemaphoreSMSE_Reset_Semaphore
#defineNU_Obtain_SemaphoreSMCE_Obtain_Semaphore
#defineNU_Release_SemaphoreSMCE_Release_Semaphore
#defineNU_Established_SemaphoresSMF_Established_Semaphores
#defineNU_Semaphore_InformationSMF_Semaphore_Information
#defineNU_Semaphore_PointersSMF_Semaphore_Pointers
#defineNU_Create_Event_GroupEVCE_Create_Event_Group
#defineNU_Delete_Event_GroupEVCE_Delete_Event_Group
#defineNU_Set_EventsEVCE_Set_Events
#defineNU_Retrieve_EventsEVCE_Retrieve_Events
#defineNU_Established_Event_GroupsEVF_Established_Event_Groups
#defineNU_Event_Group_InformationEVF_Event_Group_Information
#defineNU_Event_Group_PointersEVF_Event_Group_Pointers
#defineNU_Create_Partition_PoolPMCE_Create_Partition_Pool
#defineNU_Delete_Partition_PoolPMCE_Delete_Partition_Pool
#defineNU_Allocate_PartitionPMCE_Allocate_Partition
#defineNU_Deallocate_PartitionPMCE_Deallocate_Partition
#defineNU_Established_Partition_PoolsPMF_Established_Partition_Pools
#defineNU_Partition_Pool_InformationPMF_Partition_Pool_Information
#defineNU_Partition_Pool_PointersPMF_Partition_Pool_Pointers
#defineNU_Create_Memory_PoolDMCE_Create_Memory_Pool
#defineNU_Delete_Memory_PoolDMCE_Delete_Memory_Pool
#defineNU_Allocate_MemoryDMCE_Allocate_Memory
#defineNU_Deallocate_MemoryDMCE_Deallocate_Memory
#defineNU_Established_Memory_PoolsDMF_Established_Memory_Pools
#defineNU_Memory_Pool_InformationDMF_Memory_Pool_Information
#defineNU_Memory_Pool_PointersDMF_Memory_Pool_Pointers
#defineNU_Control_SignalsTCSE_Control_Signals
#defineNU_Receive_SignalsTCSE_Receive_Signals
#defineNU_Register_Signal_HandlerTCSE_Register_Signal_Handler
#defineNU_Send_SignalsTCSE_Send_Signals
#defineNU_Setup_VectorINT_Setup_Vector
#defineNU_Register_LISRTCC_Register_LISR
#defineNU_Activate_HISRTCCE_Activate_HISR
#defineNU_Create_HISRTCCE_Create_HISR
#defineNU_Delete_HISRTCCE_Delete_HISR
#defineNU_Current_HISR_PointerTCC_Current_HISR_Pointer
#defineNU_Established_HISRsTCF_Established_HISRs
#defineNU_HISR_PointersTCF_HISR_Pointers
#defineNU_HISR_InformationTCF_HISR_Information
#defineNU_ProtectTCT_Protect
#defineNU_UnprotectTCT_Unprotect
#defineNU_Control_InterruptsTCT_Control_Interrupts
#defineNU_Local_Control_InterruptsTCT_Local_Control_Interrupts
#defineNU_Restore_InterruptsTCT_Restore_Interrupts
#defineNU_Set_ClockTMT_Set_Clock
#defineNU_Retrieve_ClockTMT_Retrieve_Clock
#defineNU_Create_TimerTMSE_Create_Timer
#defineNU_Delete_TimerTMSE_Delete_Timer
#defineNU_Control_TimerTMSE_Control_Timer
#defineNU_Reset_TimerTMSE_Reset_Timer
#defineNU_Established_TimersTMF_Established_Timers
#defineNU_Timer_PointersTMF_Timer_Pointers
#defineNU_Timer_InformationTMF_Timer_Information
#defineNU_Get_Remaining_TimeTMF_Get_Remaining_Time
#defineNU_Release_InformationRLC_Release_Information
#defineNU_License_InformationLIC_License_Information
#defineNU_Disable_History_SavingHIC_Disable_History_Saving
#defineNU_Enable_History_SavingHIC_Enable_History_Saving
#defineNU_Make_History_EntryHIC_Make_History_Entry_Service
#defineNU_Retrieve_History_EntryHIC_Retrieve_History_Entry
#defineNU_Create_DriverIOCE_Create_Driver
#defineNU_Delete_DriverIOCE_Delete_Driver
#defineNU_Request_DriverIOCE_Request_Driver
#defineNU_Resume_DriverIOCE_Resume_Driver
#defineNU_Suspend_DriverIOCE_Suspend_Driver
#defineNU_Established_DriversIOF_Established_Drivers
#defineNU_Driver_PointersIOF_Driver_Pointers
●OS提供的功能接口说明这是个标准的商用OS,功能很强大。
足以完成手机上的复杂应用!
2.2.L1协议栈
物理层或L1支持在无线媒质上传输比特流,根据05系列技术规范。
它向上层提供服务和控制物理信道和逻辑信道的匹配。
执行TDMA帧和无线控制部分。
Figure2L1层结构
1、L1层异步:
处理来自上层的请求消息同时把L1层产生的结果传向上层。
2、Surroundingcellengine:
处理相邻蜂窝功率测量和同步信息获得。
3、Layer1控制:
处理TDMA的无线环境时序安排表,包括来自服务基站的预定时和公控。
4、Layer1driver:
处理DSP和无线管理。
2.3.驱动
设备驱动支持所有的MCU外围设备的控制功能。
这个模块处理许多用户可观察的手机行为,例如键盘处理和LCD显示。
它和L4实体交互通过访问设备寄存器来提供必要的控制功能。
Figure3MCU外围设备驱动
SIM:
用户定义的模块
UART:
通用异步收发设备
SPI:
串口接口
LCD:
液晶显示器
GPIO:
通用输入输出
GPT:
通用计时器
RTC:
实时计时器
WDT:
看门狗计时器
PWM:
脉冲宽度调制
Alerter:
报警?
?
?
Keypad:
键盘按键处理
PMIC电源管理芯片
BMT:
电池充电管理task
AUXtask:
耳机task
ADCSched:
模数转换表
USBtask:
USB1.1协议和驱动
IRDAtask:
IRDA和驱动
Camera:
整合了第三部分Camera模块的Camera驱动
MSDC:
内存卡驱动,支持SD,MMC卡和内存片
JPEGDecoder:
控制硬件JPEG解码器的软件
2.4.L2/L3/L4协议栈
这部分包括许多GSM/GPRS要求和为有应用提供一个优秀的GSM/GPRS平台。
这个软件平台易于实现本地MMI或远程PC控制通过ATcommand。
详细结构是:
●RMI:
远程MMI,例如,PC端。
通过UART口和协议栈通信。
●FMI:
FeaturerichMMI,以上部分描述。
这个产品是和PIXTEL合作的。
●L4:
L4是一个TASK,通过它FMI和RMI和协议栈进行通信。
L4task包括几个子模块。
⏹ATCI:
ATCommand解释器。
解释来自PC端的AT命令同时命令L4C执行相应的动作。
⏹L4A:
FMI的L4适配层,FMI和L4A服务节点是最基本的。
⏹L4C:
L4的控制实体。
处理所有应用请求和响应。
⏹UEM:
用户设备适配。
Driver的适配,象KEYPAD,LED,GPIO,AUDIO等
⏹PHB:
电话本管理。
处理电话本的相关操作。
⏹SMU:
SIM管理单元。
处理安全管理和STK。
⏹CSM:
电路交换协议栈管理。
⏹RAC:
注册访问控制。
⏹SMSAL:
短消息服务应用层
⏹TMC:
上下文管理
●NVRAM:
非易失RAM。
这是flash存储器的适配层。
●SIM:
用户指定的模块。
处理SIM行为例如:
ETSI11.1描述。
●DATA:
电路数据交换服务。
数据task包括几个子模块。
⏹FAX:
组三传真
⏹TDT:
透明电路交换数据
⏹L2R:
针对非透明电路交换数据的L2延迟协议。
⏹RLP:
非透明电路交换数据的资源连接协议。
●CC:
电路交换电话控制。
●SS:
增加服务
●SMS:
短消息服务
●SM:
会议管理
●MM/GMM:
移动管理/GPRS移动性管理
●SNDCP:
子网依靠转换协议
●LLC:
逻辑链路管理
●RR:
无线资源管理。
RRtask包括几个子模块
⏹RRM:
处理蜂窝选择和PLMN选择
⏹RMPC:
处理空闲或检测状态包括周围小区的配置和测量报告
⏹LAPDM:
处理GSML2定义的过程
⏹MAC:
媒质访问控制协议
⏹MPAI:
无线资源和L1A的适配层。
●PPP:
点对点协议层。
这个是客户PPP层。
2.5.MMI
2.5.1.概述
这部分包括了用户接口framework,application和协议栈通信。
MMI和L4的接口是最基本的。
Figure5MMI结构
Framework:
它包括
⏹OSL:
OS适配层
⏹Task:
和L4层通信
⏹Filesystem:
和存储设备通信
GUI:
包括以下方面
⏹主题
⏹UI元素
⏹类屏幕
⏹字体
⏹编辑
⏹T9或Ezi输入法
⏹访问LCD驱动
⏹用户化工具
应用
⏹电话本
⏹消息(短消息,增强型短消息4.0,CB)
⏹呼叫历史
⏹设置(电话设置,网络设置,安全设置)
⏹5中用户模式
⏹游戏和娱乐
⏹管理
⏹服务
⏹快捷方式
⏹来电管理
⏹中断事件,如充电,警报
MMITASK只有外部mail的判断机制,没有内部mail的判断机制(这样做增加了MMI软件编制的复杂度?
),只要是发现了mail消息就进行判断,然后派发执行相应的功能函数和进行相应的显示处理。
2.5.2.MMITASK作用和地位
MMITASK是整个手机软件的核心调度TASK,它负责用户命令的接收判断和执行。
2.5.3.MMITASK入口函数说明
/**************************************************************
FUNCTIONNAME:
voidMMI_task(oslEntryType*entry_param)
PURPOSE:
EntryfunctionforProtocoltask
INPUTPARAMETERS:
oslEntryType
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mtk 软件结构综合概述 软件 结构 综合 概述