当前位置:文档之家› Spreadtrum+应用软件开发平台

Spreadtrum+应用软件开发平台


22
DAL接口---Audio接口
• 支持的Audio types: Generic Tone Customer Tone(最多三种频率的合成) DTMF Ring(MIDI, Customer Tone, WAV etc.) MP3 • Voice 通道的管理 • 支持三种Audio的模式。 Handhold Hand free Earphone 具体参见DAL_Audio.h
23
DAL接口参考
其余详情参考相关DAL接口文档及其头文件 DAL_XXX.h。
24
协议软件接口(MN)
PS通过MN层给上层提供接口。 MN层主要由几部分组成: • 开关机模块Phone • 呼叫控制CALL Control(CC) • 短消息SMS • 广播短消息SMSCB • GPRS业务 • 补充业务SS • 数据管理Data Manager(DM)
Based on 3GPP Release 1999 (200.6). Qual Band.(850/900/1800/1900) Basic Call Functions.

Multiparty Call. SMS, SMSCB SS Service GPRS Class 10.
Layer 1
4
开发平台提供的Features 完整的GSM/GPRS通信和数据服务功能. 统一的RTOS的APIs * Thread控制,Timer, Memory Management, Message Queue… 提供完整的TBIOS APIs,能快速的适应硬件和外设的更改。 * LCD, Keypad, Charging, EFS, RTC, Audio…. 整合了部分第三方的软件,提供完整的解决方案 使用client-server机制,能同时支持多个应用 提供完整的软件调试APIs
25
MN接口通信举例
Call
发起呼叫 MNCALL_StartCall
注册Call相关 的事件 提供回调 cc_callBack
EV_MN_APP_CONNECTING_IND_F 调用cc_callBack
Phone Server
Call Server
SMS Server
建议;回调函数采用发送消息的方式 我们提供默认的call back 函数
OSA EFS
DAL(LCD,KPD,CHR) AUDIO, VIDEO MIDI MP3 MPEG4 H.263 Engines
MN (Call,CB,NV,SS,SMS,GPRS) TCP/UDP IP/PPP Layer 3 Layer 2
RTOS
Diagnostics
Drivers(HAL)
5
协议软件的基本结构
Applications PPP smscb call,ss sms SMRL CM MM RR GRR LLC DL RLC/MAC Physical Layer SIM MN phone
(data mng) (GPRS)
TCP/IP
SM
SNDCP GMM
6
协议软件提供的Features
9
OSA接口
• • • • • • • • 内存管理 线程管理 定时器 互斥资源 注册 消息管理 中断 打印调试
10
接口通信方式
• Client-Server • APIs & Call back • 注册服务和去注册
uint32 SCI_RegisterMsg(uint32 server_ID, uint32 ui_start_event,uint32 ui_end_event, reg_callback func); 该函数用来注册事件,如果想获取某个或某些事 件的发生,必须对事件进行注册 • uint32 SCI_UnregisterMsg(uint32 server_ID, uint32 ui_start_event,uint32 ui_end_event, reg_callback func); 该函数用来注销已注册事件。
15
NV接口
• 除了标准的文件系统接口,展讯还提供了一套基于设置参 数的访问接口,主要面向预制的出厂参数,以及用户在操 作手机的时候存取的数据 • 优点是在读取这些参数的时候可以非常的快,不用考虑文 件系统的影响
16
OSA与文件系统接口—参考文件
具体请参考OS_api.h,efs.h和相关文档
17
7
应用软件开发平台接口介绍
1 OSA和文件系统接口 2 TBIOS(Terminal Basic I/O System)接口 3 协议软件接口 4 MMI开发平台接口
8
OSA和文件系统接口
• OSA是OS Abstract layer,提供对OS的封装。 • 提供线程、定时器、互斥资源、队列、调试打印、消息注 册、内存管理、中断等接口 • 提供兼容标准C的文件接口 • OSA接口定义在os_api.h中 • 文件系统接口定义在efs.h中
28
Phone模块Events
• • • • • • • • • •
EV_MN_APP_SIMCARD_READY_IND_F, /* simcard worked ok */ EV_MN_APP_SIMCARD_NOT_READY_IND_F, /* simcard not ready */ EV_MN_APP_SCELL_RSSI_IND_F, /* SCELL power indicator */ EV_MN_APP_DEACTIVE_PS_CNF_F, /* power off now */ EV_MN_APP_NCELL_RSSI_CNF_F, /* response for ncell rssi req */ EV_MN_APP_AOC_MODIFIED_IND_F, /* ind acm increased */ EV_MN_APP_FDN_SERVICE_IND_F, /* ind fdn enable or disable */ EV_MN_APP_PIN_FUNC_CNF_F, /* pin func cnf */ EV_MN_APP_PLMN_LIST_CNF_F, /* plmn list result to app */ EV_MN_APP_PLMN_SELECT_CNF_F, /* plmn select result to app */
注册 服务
Client
APIs
调用 call back
当注 册事 件发 生时
Server
11
文件系统的介绍
• 文件系统最多可支持8192个文件,最大的使用空间由Flash 本身决定用户可以根据Flash的大小定义文件系统的使用空 间,具体的定义可参见用户配置说明文档 • 提供兼容标准C的文件系统接口 • 提供一种简单而且直接的方式来存取用户小的数据,可以更 加快速的实现对一些小的参数的存取 • 目前的文件系统只支持NorFlash • 支持Fat16的文件系统将在2005年3月底商用,支持Nand Flash的存取
Call SMS CBS SS PB Game …. MMI E-Mail
MMS/WEB
ATC
Multimedia Applications Audio/Video/Test
Java ApE
WAP
SOFTWARE APPLICATION PLATFORM MMI Platform
14
文件系统APIs
• 标准文件接口
EFS_fopen EFS_fclose EFS_fread EFS_fwrite EFS_fputc EFS_fgetc EFS_fseek EFS_ftell EFS_feof EFS_chsize
• 异步文件接口
EFS_Create EFS_Close EFS_GetLength EFS_Seek EFS_Read EFS_Write EFS_Delete EFS_Rename EFS_CreateDir EFS_DeleteDir…..
27
Phone模块主要API
• • • • • • • • • • • • • MNPHONE_SelectPLMN:选网 MNPHONE_ListPLMN:网络列表 MNPHONE_PowerOff:关机 MNPHONE_SetServiceType:设置手机服务类型 MNPHONE_EnableRoaming:漫游设置 MNPHONE_VoiceControl:声音控制 MNPHONE_ResponseCHV:开机SIM卡密码回应 MNPHONE_OperateCHV:SIM卡的CHV操作 MNPHONE_GetRSSIOfNCELL:获取邻近小区信号强度 MNPHONE_StartupPs:开机请求 MNPHONE_GprsDetach:GPRS Detach请求 MNPHONE_GSMDetach:GSM detach请求 ……………………………
12
文件系统的基本框架
文件操作请求 用 户 接 口 层 E F S 队 列
文件系统管理层
文件操作请求
虚拟设备层
文件操作请求
物理设备层
13
文件系统的基本框架(续)
• 用户接口层(API) 用户接口层提供文件操作API,把相应的操作请求发送给 文件系统管理层,完成阻塞或非阻塞调用。 • 文件系统管理层 该层提供文件系统空间管理,存取控制,读写操作。 该层作为一个线程运行,处理IO请求。 • 虚拟设备层 该层提供一个虚拟的物理设备层,用以隔离具体的设备, 方便移植到不同的物理设备。 • 物理设备层 该层提供对实际的物理设备安全的读写、擦除等操作。
26
注册示例
#include ―mn.h‖ void MyCallBackFunc( uint32 taskid,//taskid which task want to receive the event uint32 msgtype, // event id void *argv // data follow the event ); SCI_RegisterMsg( MN_APP_PHONE_SERVICE, EV_MN_APP_NETWORK_STATUS_IND_F, EV_MN_APP_PLMN_SELECT_IND_F, &MyCallBackFunc );
相关主题