`
xusaomaiss
  • 浏览: 615518 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

MTK之gprs

    博客分类:
  • MTK
阅读更多

0.模拟器上,初始化需要先调用soc_init_win32()
1.监视MSG_ID_APP_SOC_NOTIFY_IND消息(SOC_WRITE,SOC_READ,SOC_CONNECT,SOC_CLOSE)
2.soc_create的最后一个参数:cmnet帐号默认是10,cmwap是14. 模拟器上随便都没问题.只要PC能上网.
3.soc_setsockopt  SOC_NBIO 设置不阻塞
4.soc_setsockopt  SOC_ASYNC 设置异步
5.soc_connect,soc_write,soc_read返回SOC_WOULDBLOCK必须等1的通知函数进行处理.最好设置超时来close socket.
6.数据的任意指针转化成short,int
   arm的特性,short指针必须2对齐,int指针必须4对齐.
   来自于网络的紧凑数据(packed data),必须支持任意地址转换成short或者int

static int  MyInt(unsigned char * p)
{
 int a ;
 ((unsigned char *)&a)[0] = p[0] ;
 ((unsigned char *)&a)[1] = p[1] ;
 ((unsigned char *)&a)[2] = p[2] ;
 ((unsigned char *)&a)[3] = p[3] ;
 return a ;
}

static  short MyShort(unsigned char * p)
{
 short a ;
 ((unsigned char *)&a)[0] = p[0] ;
 ((unsigned char *)&a)[1] = p[1] ;
 return a ;
}


7.cmwap的http协议模拟
   cmwap必须通过10.0.0.172:80端口进行代理
   走http协议.一般是1.1

#define      ProxyHttpRequestHeader  "POST / HTTP/1.1\r\n" "X-Online-Host: www.abc.com:12345\r\n" "Keep-Alive: close\r\n" "Content-Length: %d\r\n" "\r\n"
// X-Online-Host后面跟着的就是目标机器网络地址和端口
// Content-Length 后面填写随后的数据长度
// 头部后面跟着就是随后数据,最好使用base64编码.
// 服务器端收到数据一般经过移动网关修改.


8.cmwap的http模拟: 服务器端返回格式:

#define HTTP_RESPONSE_HEADER  "HTTP/1.1 200 OK\r\n" "Content-Length: %d\r\n" "\r\n"

// Content-Length 后面填写随后的数据长度
// 头部后面跟着就是随后数据,最好使用base64编码.

 

上面是我从网络上找来的,我只是想把这段时间做的gprs经验记录下来。

 

mtk模拟器做的还是不错的,可以先在模拟器上调试,有几个地方要注意。这也是我碰到的一些问题

这次工作,我主要负责提供底层socket的接口,mtk原来的接口函数是非阻塞式的,我新创建一个任务,把接口改成阻塞式的,让使用者使用接口时与原来的winsorck保存一致性。

 

任务之间使用消息传递,只传递消息id,数据使用全局变量,由于是两任务,什么情况都有可能,因此使用并锁。

 

第一个问题:程序死了。这是我把我的代码和其它同事联调时出现的。

经过两天的时间查找,问题是内存释放后,没有置成null,第二次使用,再释放时程序死掉。

 

第二个问题:在使用全局变量时,有时碰到和预期的结果 不一致。

断点单步发现,全局变量已经被另一任务修改后,可当前任务的值没有改变。使用锁之后问题解决。

 

第三个问题:数据有时接收后,再也没有notify的消息通知,程序一直在等待数据。

这个问题的具体原因没有找到,但不使用我新建的任务,还有什么锁之类的任何东西,直接在mmi层接收数据,无异常。没有接收到mtk底层的网络事件,只好直接调用read函数,数据可以接收到,暂无其它异常,数据能接收完整。

 

第四个问题:模拟器上可正常使用,但到终端无法连接,每次都返回false。

问题原因是socketcreate中的参数accountid设置错误,在连接前要创建一个account,这个帐号和socket创建之间有一个算法关系。具体算法关系保密

 

 

在附件中是一个通用circle buffer的使用。

 

分享到:
评论

相关推荐

    MTK之GPRS相关

    ### MTK平台中的GPRS相关知识点详解 #### 一、MTK平台Socket联网过程 MTK平台中的Socket联网过程是实现设备通过GPRS网络进行数据通信的重要环节。下面将详细介绍该过程中涉及的关键步骤。 ##### 1. 建立Data ...

    mtk 6223 gprs模块源码

    MTK 6223 GPRS模块源码是基于联发科(MediaTek)的6223芯片设计的GPRS通信模块的核心软件部分。这个模块主要用于实现通过GPRS(General Packet Radio Service)网络进行数据传输,允许设备通过移动网络进行互联网接...

    国产机让电脑上网MTK GPRS 导入程序

    【MTK GPRS 导入程序】是一种专为国产计算机设计的网络连接解决方案,它使得电脑可以通过MTK(MediaTek)芯片组支持的GPRS(General Packet Radio Service,通用分组无线服务)技术进行上网。GPRS是2G移动通信系统的...

    MTK.rar_mtk_mtk gprs_mtk 资料

    这个"MTK.rar_mtk_mtk gprs_mtk 资料"压缩包显然是一个关于MTK技术的学习资源集合,特别是关于GPRS(General Packet Radio Service)的部分。GPRS是一种基于GSM网络的数据传输技术,它允许在移动设备上进行分组交换...

    MTK_MMI_function.rar_mmi函数手册_mtk_mtk gprs

    《MTK MMI函数手册》是针对MediaTek(MTK)平台进行移动通信开发的重要参考资料,尤其对于GPRS(General Packet Radio Service)功能的实现具有深远指导意义。MTK是全球知名的半导体公司,其芯片广泛应用于手机和...

    mtkview.rar_MTK LCD_TYPE-C_mtk_mtk gprs_phone

    做一个MTK版本 上午客户说要一个软件,我立马联系好项目经理,让其给我 原理图和PCB板图和LCD初始化代码。花了半个小时将初始化代码写进程序,一试居然可以工作了,真tm的神了。 然后新建了 XXX_GPRS.mak和Verno_XXX...

    MTK6227 MTK6228,MTK6305B等实际原理设计以及相关资料

    MTK6227是联发科的一款2.5G GSM/GPRS/EDGE平台的单芯片解决方案,它支持GSM/GPRS/EDGE Class 12标准,具有低功耗特性,适用于入门级和中端手机。MTK6228则进一步增强了功能,可能包含了对WCDMA/HSPA网络的支持,使...

    MTK配置文件参数说明MTK配置文件参数说明

    15.GPRS测试(GPRS TEST):该参数用于设置是否进行GPRS测试,取值为0或1,分别表示不测或测GPRS。 16.功率测试(Power Measment Burst、Average Burst Power、Peak Burst Power):这些参数用于设置功率测试时要测...

    MTK平台架构MTK方案简介

    MTK的多媒体手机平台主要面向中低端市场,它集成了多种通信技术,如GSM(全球系统移动通信)和GPRS(通用分组无线业务),同时也支持EDGE(增强数据速率GSM演进)等网络标准。这些技术使得手机能够实现高速数据传输...

    MTK编译modem方法

    MTK编译modem方法 MTK编译modem方法是指使用MTK平台编译modem的过程,该过程涉及到多个步骤和工具。本文将详细介绍MTK编译modem方法的各个步骤,并对每个步骤进行详细的解释。 步骤1:构建modem镜像 在MTK平台上...

    MTK6225 GSM/GPRS Baseband

    ### MTK6225 GSM/GPRS Baseband处理器详解 #### 一、系统概述 MT6225是一款高度集成的单芯片解决方案,专为GSM/GPRS手机设计。该芯片基于32位ARM7EJ-ST微处理器,不仅具备高性能的GPRS Class 12调制解调器,还支持...

    GPRS_Dial-Up_Setting

    在本文中,我们将深入探讨MTK(Media Tek)系列芯片组如何进行GPRS拨号设置,以及如何解决“找不到调制解调器”的常见问题。 MTK是台湾联发科公司生产的一系列广泛应用于智能手机和平板电脑的芯片组。这些芯片集成...

    MTK6223mtk6223p资料介绍.rar

    1. **GSM/GPRS/EDGE支持**:MTK6223芯片集成了GSM(全球系统移动通信)、GPRS(通用分组无线业务)和EDGE(增强数据速率GSM演进)通信模块,可以提供2G网络连接,支持语音通话和数据传输。 2. **多媒体功能**:尽管...

    MTK常见问题解答(实际开发过程中提交MTK的问题)

    目前在主干上面已在 GPRS.MAK 里面增加相应的宏,可以按需要把下面的宏设为 TRUE,即可。同时,也可以在 Nvram_common_config.c 里面,找到 NVRAM_EF_PORT_SETTING_DEFAULT,将默认端口调换一下顺序,即把 99 修改为...

    从C语言到MTK

    - `make`命令是用于编译工程的,`make S200 gprs new`是针对MTK工程的特定编译指令,这里的`S200`是工程名,`gprs`可能是特定的配置或功能模块,`new`可能表示初始化或更新工程状态。 3. **工具的使用**: - **...

    MTK6260和MT6250各版本的比较和差别2

    MTK6260和MT6250各版本的比较和差别 MTK6260和MT6250是两种常见的手机处理器,属于MTK公司的产品系列。它们之间有着很大的差别,本文将对MTK6260和MT6250的各版本进行比较和分析。 首先,MTK6250是一种主频为260M...

    MTK手机AT命令手册

    4. **数据传输与网络参数**:`AT+IPR`用于设置数据速率,`AT+CSDH`开启或关闭显示服务数据通道状态,`AT+CGATT`用于附着或分离GPRS网络。 5. **蓝牙和Wi-Fi管理**:MTK设备可能支持通过AT命令控制蓝牙(如`AT+BTM`...

    mtk手机方案资料(MTK6228)

    MTK6228是一款由联发科(MediaTek)推出的手机芯片解决方案,主要用于功能手机和平板电脑。这款芯片集成了多种功能,如GSM/GPRS/EDGE通信模块、多媒体处理、蓝牙和FM收音机等,是面向入门级市场的性价比较高的选择。...

    MTK模块升级指导

    本文档旨在提供一套详细的MTK GPRS模块无线升级指导方案,适用于所有MTK GPRS模块的升级需求。 #### 二、准备工作 在开始升级之前,请确保具备以下条件: 1. **硬件准备**:确保拥有与MTK模块配套的开发板以及...

Global site tag (gtag.js) - Google Analytics