- 浏览: 111686 次
- 性别:
- 来自: 上海
-
最新评论
-
loweets:
你好,请问你的代码下到了没,现在链接失效了,我想要一份,谢谢
[MT6225]0840源代码SVN下载
文章列表
int v; // 找出v的符号
int sign; // 保存结果
// CHAR_BIT 是一个字节的位数,一般为8.
sign = -(v < 0); // 如果v < 0 则 -1, 否则为 0.
// 或者, 为了避免使用分支指令,标志寄存器 (IA32):
sign = -(int)((unsigned int)((int)v) >> (sizeof(int) * CHAR_BIT - 1));
// 或者更简单的使用
sign = v >> (sizeof(int) * CHAR_BIT - 1);
后 ...
我使用的是cJSON:http://sourceforge.net/projects/cjson/
先看json的数据结构
c中没有对象,所以json数据是采用链表存储的
typedef struct cJSON {
struct cJSON *next,*prev; // 数组 对象数据中用到
struct cJSON *child; // 数组 和对象中指向子数组对象或值
int type; // 元素的类型,如是对象还是数组
char *valuestring; // 如果是字符串
int valueint; // 如果是数值
doub ...
设要判断的数是无符号整数X。
首先判断X是否为0,如果为0则不是2的n次幂,返回。
X和X-1进行按位与操作,如果结果是0,则说明这个数是2的n次幂;如果结果非0,则说明这个数不是2 的n次幂。
证明:
如果是2的n次幂,则此数用二进制表示时只有一位是1,其它都是0。减1后,此位变成0,后面的位变成1,所以按位与后结果是0。
如果不是2的n次幂,则此数用二进制表示时有多位是1。减1后,只有最后一个1变成0,前面的 1还是1,所以按位与后结果不是0。
f = v && !(v & (v - 1));
举个例子: ...
L4是MMI/AT和协议栈的适配层。
ATCI是AT命令解析器。
UEM是用于抽象如键盘、LED、通用输入/输出等基本设备,是用户设备模块。
PHB就是电话本。
SMU是安全管理单元(SIM、STK)。
CSM是呼叫服务管理。
RAC是登记访问控制。
SMSAL是SMS应用层。
内核服务包括定时器、任务管理和进程间通信、资源和内存管理、日志和异常处理。OSL是封装OS API的层,而KAL则是封装内核的层,应当在OSL以上来开发。
数据类型定义(VRE的头会比MTK更乱吗?)
* 基本数据类型:kal_non_specific_general_types.h。
* KAL相关的定义:kal_ ...
在mtk平台上调试http联网,可以在“网络服务”里进行必要的设置才可以。
(1)网络服务->网际网络服务
(2)网际网络服务->设置
(3)设置->设置档
(4)进入你激活的设置档,然后查看(编辑)设置档,然后选择连接类型为“http”
(5)确定,会进入代理服务器的设置界面,将“使用代理服务器”设置为否。
(6)保存,退出,应该就可以联网了。
MTK中设置音量的方法和获取小区id类似,都是mmi发送一个消息到l4c,然后调用相应的回调函数处理。
void SetVolumeLevelReq(volume_type_enum volume_type,U8 volume_level)
{
MYQUEUE Message;
mmi_eq_set_volume_req_struct *setVolumeLevelReq;
Message.oslMsgId = MSG_ID_MMI_EQ_SET_VOLUME_REQ;//设置消息类型为设置音量
//在l4a.h中定义
setVolumeLevelReq = OslC ...
1.1. 如何通信
Send/Receive messages thru the message Queue.
#define OslMsgSendExtQueue msg_send_ext_queue
#define OslReceiveMsgExtQ receive_msg_ext_q
SetProtocolEventHandler(FuncCB, msg_id);
1.2. 通信数据
typedef struct ilm_struct {
oslModuleType oslSrcId; // Source module ID.
oslMod ...
GET /ga.js HTTP/1.1\r\n
Host: www.google-analytics.com\r\n
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)\r\n
Accept: */*\r\n
Accept-Language: en-us,en;q=0.5\r\n
Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,utf ...
方法0:
MTK平台如何生存LIB库文件:
1. make 文件夹建立需要生成库的mylib,放入c和h文件,单独编译mylib模块
2. make文件中COMPLIST加入mylib
3. 在REL_MMI_GPRS.mak中CUS_REL_MTK_COMP加入mylib
4. 在mtklib文件夹里面放mylib,就ok啦。
方法一:
MTK生成库(ARM) 过程
第一步,生成真机的obj文件
第二步,找到相关的obj文件 D:\LongCheer\build\LC6225_GEMINI\gprs\MT6225o\mmi_app
第三步,把相关的obj文件拷贝到一个目录下面 D:\lib_ ...
MMI字符串资源的加入:
1)在ref_list.txt中加入字符串。
2)把字符串ID加入到ID枚举中。
3)使用ADD_APPLICATION_STRING2来加入字符串。
4)使用GetString()获得字符串。
5)使用APP_BASE来保证字符串ID的唯一性。
图片资源的加入:
1)把图片加入应用程序目录。
2)把图片ID加入枚举类型中。
3)使用ADD_APPLICATION_IMAGE2来加入图片资源。
4)绘图时就可以直接使用图片ID来绘制了。
5)使用APP_BASE来保证图片ID的唯一性。
L1层或称物理层,提供物理介质上的比特流传输,遵循GSM技术05系列规范,为上层软件提供服务,且控制逻辑信道到物理信道的映射和安排、无线控制以及TDMA帧。
基本模块包括
1:L1异步逻辑(layer1 asynchronous)
处理上层软件的消息请求,经过L1处理后将结果返回给上层软件。
2:Surrounding Cell Engine:处理相邻小区Cell的功率测量以及同步信息获取。
3:L1层控制(Layer1 Control)
处理无线环境中TDMA时序安排,包括定时提前以及接受来自基站的功率控制。
4:L1驱动:处理DSP以及无线控制相关的内容。
手机中的屏幕流程都是顺序的,用户都是通过按键在屏幕之间切换。这里有三种类型的屏幕切换,即
1 向前移动 向下一个屏幕的切换作为用户按键输入的结果。
2 向后移动 向前一个屏幕的切换作为用户按键输入的结果。
3 异步事件的出现 屏幕向前或者向后切换依赖于异步事件例如协议事件?
在向前切换的过程中,在绘制新的屏幕之前,先前屏幕的内容被存储在history“数据库”中。如果当前
的屏幕用于接收用户的输入,而此时一个异步事件发生例如来电,那么当前用户输入内容的缓冲区将会被存在history中,当前屏幕就会显示当前事件屏幕,直到该事件完成才恢复先前的屏幕。
History的实现类似一个栈。一个新的h ...
MTK使用Socket来实现HTTP的请求。
MTK平台中Socket创建步骤:
1、soc_create()
创建Socket,成功后将返回一个socket_id供下面的函数使用,成功运行在手机上的效果是打开黄色边框的GPRS图标,对应手机nwk_account_id的值有10和14,分别代表网络接入点CMWAP和CMNET。
2、soc_setsockopt 设置Socket为非阻塞模式/异步模式;
3、连接准备
如果是CMNET联网并且请求中用到了英文域名,还需要调用soc_gethostbyname函数解析域名,解析出来的IP作为我们建立连接的目标IP。
如果是CMWA ...
发送请求Lai消息给底层,然后处理反馈信息取出cell_id。然后处理反馈信息取出cell_id。再根据cell_id去数据库查经纬度了。
注册消息处理函数
void GetCellIDStartReq(U32 mod_id, PU8 info_req)
{
SetProtocolEventHandler(parsing_cellId_data,MSG_ID_MMI_EM_STATUS_IND);
get_cellid_send_start_req();
}
发消息请求cell id
void get_cellid_send_start_req(voi ...
MTK Modis 使用简介 Modis PC仿真, 要进行如下操作:(假设工程路径为D:\\X)
第一步:在如下目录中D:\X 执行 make Prj_Name GPRS gen_modis
第二步: 转到modis目录 D:\X\modis执行 createmodis.pl ..\make\Prj_Name_GPRS.mak
第三步:再切换到 D:\X 执行 make Prj_Name GPRS codegen_modis
第四步:最后转到D:\X\modis目录, 执行 modiscodegen.pl ..\make\Prj_Name_GPRS.mak
第五步:开始使用Modis ...