2011年12月29日

MTK 内存管理简单总结

摘要: MTK 手机用的操作系统是 nucleus, 这是一个rtfs(实时操作系统),这个rtfs本身是不带内存管理功能,所以MTK自己写的内存管理。(nucleus在系统初始化完毕时,会调用Application_Initialize,参数就是可使用内存的起始地址)大体上来分,MTK内存可以分为3种:control buffer 平常使用的OslMalloc就是这个内存。这个内存内部实现是按块来划分的(pool),具体的配置可以custom_config.c 文件里的custom_config_ctrl_buff_info()里看到里面的size 指定了这个块的大小,no_of_buff 指定了有 阅读全文

posted @ 2011-12-29 15:40 袁军峰 阅读(1213) 评论(0) 推荐(0)

MTK Socket学习——HTTP请求

摘要: 当然要理解这个,得知道一个HTTP请求是什么样子的和HTTP协议的交互过程。要详细了解 可以看 RFC 标准文档。简单来说,HTTP 协议是请求应答模式,客户端发一个请求,服务器短发一个答复。客户端说:要xxx网页,服务器就把xxx网页返回给你。交互就需要一个规范,这个就是请求和应答的头,比如 请求的第一行: GET /index.html HTTP/1.1 就表示要获得 index.html。(如果要在命令行下模拟,可以输入 telnet http://www.baidu.com/ 80 , 链接成功后,输入 GET / HTTP/1.1 回车回车,就能获得baidu首页了,这个过程就是.. 阅读全文

posted @ 2011-12-29 11:18 袁军峰 阅读(709) 评论(0) 推荐(0)

MTKSocket例子分析

摘要: MTK自带了一个,在EngineerModeSrc.c 和 EngineerModeSocketDemoApp.c 里,里面有好几个socket使用的例子,DNS,ECHO,DAYTIME,TRACERT。文件 EngineerModeSrc.c 里面主要是界面显示逻辑,EngineerModeSocketDemoApp.c 里面是真正的socket 逻辑代码。 在 EngineerModeSrc.c 里面,选择了相应的选项后,最终会走到函数 EntryEmSocketInProgress 显示正在进行网络连接的界面,它调用 EmSocketSendReq 函数来简单区分,是选择了哪种... 阅读全文

posted @ 2011-12-29 10:49 袁军峰 阅读(684) 评论(0) 推荐(0)

MTK Socket学习

摘要: 先来简单的介绍一下socket,socket 编程是介于 传输层 和 应用层之间,可以简单的理解为socket 就是封装了传输层的TCP 和 UDP 协议,使用户不用去封装一个 TCP 或者 UDP 包,开发使用网络通讯就更加简单了。如果拿一个寄信的过程来比喻一个网络通信过程。socket 就像给你准备好了信纸和信封,只要把你想写的内容写到信纸上,然后信封上写上地址,就可以邮寄了。信封里的内容就像 应用层协议,具体怎么写由应用之间来确定,比如说,用英文写(http 协议),懂英文的能看懂(http 服务器或者客户端能识别)。有时候老有人问,用MTK 怎么去请求一个网页,MTK已经准备好了s.. 阅读全文

posted @ 2011-12-29 09:41 袁军峰 阅读(1712) 评论(0) 推荐(0)

2011年12月20日

如何处理Global symbol * requires explicit package name编译错误,以及use strict用法

摘要: 编写下面的简单示例来说明如何处理如下类型的错误提示:Global symbol "$c" requires explicit package name at *.pl line 8.Execution of *.pl aborted due to compilation errors.#######... 阅读全文

posted @ 2011-12-20 10:39 袁军峰 阅读(5138) 评论(0) 推荐(0)

2011年12月5日

MTK--RO,RW,ZI区别(转)

摘要: 一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。要了解RO,RW和ZI需要首先了解以下知识:ARM程序的组成此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件,这一点清注意区别。一个ARM程序包含3部分:RO,RW和ZIRO是程序中的指令和常量RW是程序中的已初始化变量ZI是程序中的未初始化的变量由以上3点说明可以理解为:RO 阅读全文

posted @ 2011-12-05 09:52 袁军峰 阅读(423) 评论(0) 推荐(0)

2011年11月22日

Linux编程make命令(转)

摘要: 摘要:在开发一个系统时,一般是将一个系统分成几个模块,这样做提高了系统的可维护性,但由于各个模块间不可避免存在关联,所以当一个模块改动后,其他模块也许会有所更新,当然对小系统来说,手工编译连接是没问题,但是如果是一个大系统,存在很多个模块,那么手工编译的方法就不适用了。为此,在Linux系统中,专门提供了一个make命令来自动维护目标文件,与手工编译和连接相比,make命令的优点在于他只更新修改过的文件(在Linux中,一个文件被创建或更新后有一个最后修改时间,make命令就是通过这个最后修改时间来判断此文件是否被修改),而对没修改的文件则置之不理,并且make命令不会漏掉一个需要更新的文件。 阅读全文

posted @ 2011-11-22 16:39 袁军峰 阅读(1619) 评论(0) 推荐(0)

2011年11月16日

6235与旧版本的区别

摘要: 在我的6235源代码里都找不到plutommi.lis、plutommi.pth、plutommi.inc这三个文件,也找不到开关文件MMI_featuresPLUTO.h,这是怎么回事?答:前三个文件对应于make下面的\plutommi\mmi_app中,主要看你想把写的程序放在哪个模块,也可以在mmi_framework中。 这几个文件,只是帮助ads编译器找到要编译的文件。如果你在这里面的 mmi_app.lis中添加了,编译器编译mmi_app这个模块时会编译你的.c文件。 mmi_featuresPLUTO.h 在35中对应的是plutommi\Customer\CustReso. 阅读全文

posted @ 2011-11-16 10:16 袁军峰 阅读(269) 评论(0) 推荐(0)

2011年10月10日

Linux:pmap命令,查看进程占用的内存及使用地址空间(转)

摘要: 情景:根据apache的工作方式,当我们要判断某个httpd进程使用内存的详细情况的时候,就用到了pmap命令:例如:1.查看pmap如何使用:[root@CentOS5 ~]# man pmapPMAP(1) Linux User’s Manual PMAP(1)NAME pmap - report memory map of a processSYNOPSIS pmap [ -x | -d ] [ -q ] pids... pmap -VDESCRIPTION The pmap command reports the memory map of a process or processes 阅读全文

posted @ 2011-10-10 16:44 袁军峰 阅读(6111) 评论(0) 推荐(0)

linux下vi命令大全(转)

摘要: 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 移动光标类命令h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字 阅读全文

posted @ 2011-10-10 11:10 袁军峰 阅读(144) 评论(0) 推荐(0)

导航