TI平台初级培训.docx

上传人:b****6 文档编号:6451302 上传时间:2023-01-06 格式:DOCX 页数:34 大小:200.95KB
下载 相关 举报
TI平台初级培训.docx_第1页
第1页 / 共34页
TI平台初级培训.docx_第2页
第2页 / 共34页
TI平台初级培训.docx_第3页
第3页 / 共34页
TI平台初级培训.docx_第4页
第4页 / 共34页
TI平台初级培训.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

TI平台初级培训.docx

《TI平台初级培训.docx》由会员分享,可在线阅读,更多相关《TI平台初级培训.docx(34页珍藏版)》请在冰豆网上搜索。

TI平台初级培训.docx

TI平台初级培训

LOCOSTO+和Neptune平台

初级培训

1.序言

该课程主要介绍美国德州仪器公司的Locosto和Neptune平台的框架,以及目前TI和T09项目分别在这两个平台上主要功能的流程。

经过培训的人员通过对平台框架和这些流程的理解,能够很快了解,掌握主要模块的一些接口流程,并能够在这两个平台上对这些模块进行修改或编写有关的代码,同时举一反三,能够很快的上手其他模块。

由于locosto和Neptune平台MFW模块的主要功能和构造都基本一样,因此只需要介绍其中之一即可。

1.概述

1.1.LOCOSTO+平台概述:

Locosto是美国德州仪器(TI)为无线移动终端(手机)而设计的一种单芯片低成本GSM/GPRS解决方案的平台。

Locosto+是在Locosto平台集成了多媒体芯片的一个解决方案。

TI集成RF的单芯片方案Locosto,以及集成多媒体处理器的Locosto+

1.2.LOCOSTO+平台整体概述

Locosto+平台目前能够看到的主要分3大模块,应用控制接口(ACI),MMI框架结构(MFW),和人机界面(MMI)。

其中ACI模块只有头文件,无源代码。

1.3.Neptune平台概述

Neptune平台是美国德州仪器(TI)为无线移动终端(手机)而设计的一种高端多媒体芯片。

处理器TINeptune的芯片采用130nm工艺,基于ARM9+TI的DSPC55核GSM数字基带芯片,多媒体处理能力达到了260MHz

2.整体框架

MMI:

指的是人机界面的程序,即,该程序实现后,用户可以直观看到,感受到.

MFW:

构建MMI框架的工作区,为MMI程序提供基本构建接口.类似Bridge的中间层和适配层这两者的功能.

ACI:

应用控制接口,主要是MFW与AT命令或硬件驱动之间的通讯.

驱动:

主要是外围硬件的驱动.(包括LCD,KEY,audio,camera等)

2.1.整体框架图:

2.1.1.原有的框架

2.1.2.目前的框架

3.MFW模块介绍和ACI接口的命名规则。

3.1.MFW框架

MFW主要包括3个大模块:

针对MMI界面的应用(APP),针对SIM卡和网络处理(SIM),针对硬件驱动(DRIVER).

3.2.MFW模块中主要文件功能大概描述:

文件名

文件总体功能描述

说明

Mfw_acie.c

Aci扩展功能

根据目前代码,没看出有什么用处。

Mfw_aud.c

录音处理

目前该文件没有使用

Mfw_band.c

收音机处理

目前该文件没有使用

Mfw_bt.c

蓝牙处理

目前该文件没有使用

Mfw_bta.c

蓝牙附加功能

目前该文件没有使用

Mfw_bte.c

蓝牙应用界面处理功能

目前该文件没有使用

Mfw_bt_ag.c

蓝牙音频网关处理

目前该文件没有使用

Mfw_bt_dg.c

蓝牙数据网关处理

目前该文件没有使用

Mfw_bt_dm.c

蓝牙设备管理

目前该文件没有使用

Mfw_bt_flash.c

蓝牙数据库管理

目前该文件没有使用

Mfw_bt_ft.c

蓝牙文件管理

目前该文件没有使用

Mfw_cam.c

Camera接口文件

和硬件方面的接口

Mfw_camapp.c

Camera接口文件

给MMI使用的

Mfw_cb.c

处理回调函数

Mfw_cm.c

通话管理

目前该文件没有使用

Mfw_cnvt.c

字符串编码类型转换

目前该文件没有使用

Mfw_edt.c

编辑器

目前该文件没有使用

Mfw_ffs.c

文件管理系统接口

Mfw_fv.c

文件浏览接口

目前该文件没有使用

Mfw_icn.c

Icon图标接口

目前该文件没有使用

Mfw_iv.c

image图片接口

目前该文件没有使用

Mfw_kbd.c

键盘处理接口

Mfw_lng.c

语言接口

目前该文件没有使用

Mfw_midi.c

midi函数接口

Mfw_mmi.c

Demommi接口

目前该文件没有使用

Mfw_mnu.c

Mmi菜单接口

目前该文件没有使用

Mfw_mp3test.c

Mp3接口

Mfw_nm.c

网络管理接口

Mfw_phb.c

电话本接口

Mfw_sat.c

STK接口

Mfw_sim.c

PIN码和SIM信息的接口

Mfw_sms.c

短信管理接口

Mfw_ss.c

辅助服务管理接口(USSD等)

Mfw_str.c

字符串操作接口

插入,删除,长度等

Mfw_td.c

时间日期接口

Mfw_tim.c

定时器

Mfw_utils.c

普通的公共接口

目前该文件没有使用

Mfw_win.c

窗体接口

目前该文件没有使用

3.3.ACI接口命名规则:

ACI接口主要是AT命令,因此其接口命名也是以AT命令来命名。

命名规则:

AT命令类型+AT+功能描述

如:

sAT_PlusCPIN

该函数是设置PIN码

AT命令类型有如下几种:

设置命令:

sAT开头

询问命令:

qAT开头

检验命令:

tAT开头

发现结果命令:

rAT开头

4.重要模块设计流程

4.1.介绍目前项目的修改情况

S1193项目修改情况:

该项目把MFW模块中不需要的功能保留不使用,其中MFW模块中的APP模块里占用大量FLASH和RAM的代码屏蔽掉.

MFW模块中需要改动的函数,该函数如果能够移植到L1层(适配层)的文件,则移植过来并做修改,如果不能移植的则保留,并在其函数内进行适当的修改.对于SIM模块里能够移植的函数,则移植到L1层(适配层),同时把MFW模块中的该函数屏蔽.

T09项目修改情况:

该项目主要还是在MFW模块中进行改动,改动大的或新增功能的函数,则把新增功能函数放到L1层(适配层),把改动大的函数中主要处理部分放到L1层(适配层)处理.L1层(适配层)做为MFW模块跟Bridge之间的接口层.

4.2.适配层的架构:

4.3.适配层重要模块的设计

4.4.介绍重要模块设计流程和函数功能

4.4.1.KEY模块

4.4.1.1.函数:

模块

文件

函数名

函数功能说明

KEY模块

Mfw_kbd.c

MfwReskbdInit(void)

按键模块参数初始化(初始化按键消息处理函数,长按键定时的时间和处理函数,repeattimer的时间和处理函数)

voidKeySignalProcess

(charv_KeyType,charv_KeyId)

按键消息处理函数

staticintLongPressDetected(U32t,void*h)

长按键定时器处理函数

staticinttoAuto(U32t,void*h)

Repeattimer处理函数(目前无用)

L1_kbd.c

voidl1_kbd_event_process

(u8v_KeyId,t_key_types_KeyType)

适配置层把按键信息发送到bridge的消息的函数

voidregist_kbd_msg

(U16type,call_back_fn_tfn)

注册消息

voidl1_get_msg

(U16type,call_back_fn_t*fn,U32*param)

获取已注册消息的回调函数

intl1_msg_cover(MfwEvtv_Msg,MfwHndp_Data)

翻盖消息处理函数

Mfw_mme.c

intglobalMme(MfwEvte,MfwHndpara)

翻盖,免提,电池状态等消息处理函数

4.4.1.2.流程:

1.初始化参数(定时时间、处理函数)

2.判断按键是否是pressed类型,是则转4,否则3

3.把released类型消息发送到bridge

4.把pressed类型消息发送到bridge,并启动长按键定时器

5.定时器时间到则把long_pressed类型发送到bridge.

4.4.2.LCD模块

4.4.2.1.函数:

模块

文件

函数名

函数功能说明

显示模块

L1_display.c

booll1_refresh(U8no,U16x,U16y,gdc_t*gdc)

重新更新区域显示

U8l1_set_brightness(U8no,U8value)

设置亮度

U8l1_set_contrast(U8no,U8value)

设置对比度

voidl1_key_lamp_on(void)

开启键盘灯

voidl1_key_lamp_off(void)

关闭键盘灯

voidl1_lcd_lamp_on(U8no,U8value)

开启LCD灯

voidl1_lcd_lamp_off(U8no)

关闭LCD灯

voidl1_shake_on(void)

开启振动

voidl1_shake_off(void)

关闭振动

voidl1_seven_color_lamp_on(seven_color_param_t*param)

开启七彩灯

voidl1_seven_color_lamp_off(void)

关闭七彩灯

voidl1_lcd_wakeup(U8no)

LCD唤醒

voidl1_lcd_sleep(U8no)

LCD进入睡眠

voidLCD_Disp_Area(U8*ImageDataPtrIF,U16x,U16y,U16width,U16height);

显示区域

4.4.2.2.流程:

无(没有流程)

4.4.3.短信模块:

4.4.3.1.函数:

模块

文件

函数名

函数功能说明

短信模块

L1_sms.c

voidsms_init(void)

初始化(把MFW模块的短信)

voidl1_sms_init(void)

初始化(把L1层变量初始化)

intl1_sms_set_callback_fn(

l1_sms_call_back_fns_typecb_type,

call_back_fn_tfn)

设置短信

voidsms_phbReady_ind(void)

sms和phonebook准备好处理函数

booll1_read_card_sms_info(call_back_fn_tfn)

读短信信息

GLOBALvoidrAT_PlusCPMS(T_ACI_SMS_STOR_OCC*mem1,T_ACI_SMS_STOR_OCC*mem2,T_ACI_SMS_STOR_OCC*mem3)

设置短信存储空间结果返回处理函数

booll1_sms_sim_read_all(sms_sim_all_t*data,call_back_fn_tfn)

读所有短信

voidrAT_PlusCMGL(T_ACI_CMGL_SM*smLst)

读所有短信函数请求结果返回处理函数

voidsms_ok_CMGL(void)

所有短信请求成功的处理函数

booll1_read_sms_info(U16index,call_back_fn_tfn)

读某条短信信息

booll1_read_card_sms(U16index,call_back_fn_tfn)

读某条短信内容

voidrAT_PlusCMGR(T_ACI_CMGL_SM*sm,T_ACI_CMGR_CBM*cbm)

读短信请求结果返回处理函数

voidsms_ok_change()

读短信请求成功处理函数

booll1_write_sms_info(sms_info_t*info,call_back_fn_tfn)

写或修改短信信息

booll1_write_card_sms(sms_data_t*sms_data,call_back_fn_tfn)

写或修改短信内容

voidrAT_PlusCMGW(UBYTEindex,UBYTEnumSeg)

写短信请求

booll1_delete_card_sms(U16index,call_back_fn_tfn)

删除短信

booll1_send_sms(U8*number,

message_type_ttype,

U8*data,

U16length,

sms_region_tflag,

coding_tcode,

sms_info_head_t*info_head,

call_back_fn_tfn)

发送短信

voidl1_get_sca(U8*no)

获取短信中心号码

voidl1_set_sca(U8*no)

设置短信中心号码

voidl1_set_sms_expire(sms_expire_texpire)

设置短信有效期

voidl1_set_sms_replay(boolenable)

设置短信回执开关

voidrAT_PlusCMT(T_ACI_CMGL_SM*sm)

接收到一条新短信

voidrAT_PlusCMTI(T_ACI_SMS_STORmem,UBYTEindex,T_ACI_CMGL_SM*sm)

接收到一条新短信信息

voidrAT_PlusCBM(SHORTsn,

SHORTmid,

SHORTdcs,

UBYTEpage,

UBYTEpages,

T_ACI_CBM_DATA*data)

接收到小区广播

voidrAT_PlusCBMI(T_ACI_SMS_STORmem,UBYTEindex)

接收到小区广播信息

voidrAT_PlusCDS(T_ACI_CDS_SM*st)

接收到状态报告

voidsms_ok_cmd(T_ACI_AT_CMDcmdId)

一些设置或请求消息成功的处理函数

voidrAT_PlusCMS(T_ACI_AT_CMDcmdId,T_ACI_CMS_ERRerr,T_EXT_CMS_ERROR*ce)

一些设置或请求消息失败的处理函数

T_MFW_SMS_STATsms_get_msg_type(UBYTE*UdhData,UBYTEUdhLength)

获取短信类型

intl1_sms_set_callback_fn(l1_sms_call_back_fns_typecb_type,call_back_fn_tfn)

保存各种短信回调函数指针

intl1_sms_call_callback_fn(l1_sms_call_back_fns_typecb_type,U16fn_type,U32fn_p1,void*fn_p2)

执行各种短信回调函数

boolL1_SMSTimeDateInfo(T_ACI_VP_ABS*smsTimeDateInfo,bg_date_t*date,bg_time_t*time,BOOLflg)

短信状态转换(L1和MFW)

staticvoidL1_SMSConvertStatus(T_ACI_SMS_STAT*stat,sms_type_t*l1_sms_type,BOOLflg)

短信状态转换(L1和MFW)

staticU8l1_sms_convert_data_code(U8*indata,U32inlen,U8intype,U8*outdata,U32*outlen,U8*outtype,BOOLflg)

短信数据编码转换

4.4.3.2.流程:

4.4.3.3.获取SIM卡短信信息

1.保存回调函数指针

2.短信驱动初始化是否结束,结束转4,否则转入3

3.发送获取失败消息,退出

4.询问短信信息是否准备好了(qAT_PlusCPMS),已准备转6,

否则转5

5.发送获取失败消息,退出

6.退出,转入7(等待返回消息)

7.获得短信信息(rAT_PlusCPMS),发送获取成功消息,退出。

4.4.3.4.获取所有SIM卡短信内容

1.保存回调函数指针和数据缓冲区地址

2.发送短信列表消息(sAT_PlusCMGL)

3.退出,转入4(等待返回消息)

4.获得短信内容(rAT_PlusCMGL)

5.判断短信列表的开始ID是否有效,如果有效转7,否则转6

6.发送获取失败消息,退出,转入4或11

7.判断该短信类型,如果未知的,转入10,否则则转入8

8.根据所判断的所知的短信类型,把短信类型付值对应变量

9.转换短信状态,时间日期和电话号码。

退出,转入4或11

10.把特殊短信类型付值对应变量,退出,转入4或11

11.短信是否全部获取完成(sms_ok_CMGL)

12.发送获取成功消息,退出。

4.4.3.5.获取SIM卡某条短信信息

1.保存回调函数指针

2.判断上次读取是否有返回信息,如果没有,转入3,否则4

3.发送获取失败消息,退出。

4.判断是否获取临时缓冲区的短信,是转5,否则转8

5.保存新短信到缓冲区是否成功,如果成功转6,否则转7

6.退出

7.发送获取失败消息,退出。

8.是否发送读取短信消息成功(sAT_PlusCMGR),成功则退出,否则发送发送获取失败消息,退出。

9.获取短信内容。

(rAT_PlusCMGR)

10.判断是否为特殊短信,如果是转入11,否则12

11.发送获取短信成功消息,退出

12.把短信内容转换成UTF8编码

13.判断转换是否成功,如果成功,转入14,否则15

14.发送获取失败消息,退出。

15.发送获取短信成功消息,退出

4.4.3.6.写短信信息

1.判断index是否为零,如果是转入2,否则转入6

2.保存回调函数指针,转换短信状态

3.发送写短信内容消息(sAT_PlusCMGW),判断是否成功,如果成功转入5,否则转入4

4.发送写短信信息失败消息,退出

5.退出,转入10

6.保存回调函数指针

7.发送读短信内容消息(sAT_PlusCMGR),判断是否成功,如果成功转入9,否则转入8

8.发送短信修改失败消息,退出

9.退出

10.获取写新短信的index(sms_ok_cmd)

11.获取写新短信失败(rAT_PlusCMS)

12.发送写短信信息失败消息,退出

4.4.3.7.写短信内容

1.保存回调函数指针

2.数据代码转换(UTF8转换成UCS2或7bit)

3.转换是否成功,成功转入5,否则4

4.发送写短信失败消息,退出。

5.设置保存的数据类型(UCS2等)

6.判断是否设置成功,如果成功转7,否则转4

7.转换短信状态(已读,未读等)

8.发送写短信消息(sAT_PlusCMGW)

9.判断写短信消息是否执行,如果执行转10,否则4

10.退出,转11

11.如果写短信成功,执行(sms_ok_cmd),发送写短信成功消息,退出,否则转入12

12.执行rAT_PlusCMS,转4

4.4.3.8.删除某条短信

1.保存回调函数指针

2.判断上次删除短信操作是否完成,如果完成转4,否则3

3.发送删除短信失败消息,退出

4.发送删除短信消息(sAT_PlusCMGD)

5.判断删除短信消息是否正在执行,如果执行转6,否则3

6.删除成功,执行(sms_ok_cmd),发送删除短信成功消息,退出。

否则,执行(rAT_PlusCMS),转3

4.4.3.9.发送短信

1.保存回调函数指针

2.判断服务中心号码是否为空,为空转3,否则转4

3.发送发送短信失败消息,退出

4.判断是否特殊短信,如果是转5,否则转6

5.判断发送特殊短信消息是否执行(sAT_PlusCMGS_Gl),

如果执行退出,转10,否则转3

6.对短信进行编码

7.判断通知ACI短信的编码类型是否成功,成功转9,否则转3

8.发送发送短信消息(sAT_PlusCMGS),

9.判断发送短信消息是否执行,如果执行退出,转10,否则转3

10.如果发送短信成功,执行(sms_ok_cmd),发送发送短信成功消息,退出。

否则,执行rAT_PlusCMS,转3

4.4.3.10.获取短信呼叫中心号码

1.判断参数指针是否为空,是转2,否则转3

2.退出

3.调用获取短信呼叫中心号码(qAT_PlusCSCA)

4.判断是否执行成功,如果是转5,否则转2

5.把呼叫中心号码拷贝到参数指针里,退出

4.4.3.11.设置短信呼叫中心号码

1.判断参数指针是否为空,是转2,否则转3

2.退出

3.判断设置呼叫中心号码(sAT_PlusCSCA)和设置数据编码类型(sAT_PlusCSMP),其中之一是否失败,如果失败转2,否则转4

4.保存服务中心号码到1号位置(sAT_PlusCSAS),退出

4.4.3.12.设置短信有效期

1.判断需要设置的短信有效期是否有效,无效转2,否则转3

2.退出

3.判断查询呼叫中心号码(qAT_PlusCSCA)和查询数据编码类型(qAT_PlusCSMP),其中之一是否失败,如果失败转2,否则转4

4.修改短信有效期,重新把呼叫中心号码(sAT_PlusCSCA)和数据编码类型设置(sAT_PlusCSMP)

5.判断以上两个是否失败,如果失败,转2

6.保存服务中心号码到1号位置(sAT_PlusCSAS),退出

4.4.3.13.设置短信回执

1.判断是否开启短信回执,如果是转2,否则转2

2.设置新短信指示到基站命令(sAT_PlusCNMI)

3.判断是否成功,成功返回true,失败返回false

备注:

开启与不开启,主要是设置新短信指示到基站的函数参数设置不同

4.4.4.电话本模块:

4.4.4.1.函数:

模块

文件

函数名

函数功能说明

电话本模块

L1_card.c

voidl1_card_init()

初始化电话本(电话本所需的事件及处理这些事件的回调函数)

intcardbookevent(MfwEvte,void*para)

处理电话本事件的回调函数

booll1_get_card_pb_info(call_back_fn_tfn)

获得SIM卡内电话本信息

booll1_write_card_pb_record(card_pb_record_t*record,call_back_fn_tfn)

写电话本记录

booll1_read_card_p

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1