View Mode: Normal | Article List
从MTK的scat文件谈ROM和RAM的分配,管理和问题解决
[ 2009-06-20 00:27:33 | Author: wskyo ]
mtk25平台默认的是128Mbit flash memory 和 32Mbit SRAM,因为1BYTE等于8BIT,所以就是我们通常所说的是16M ROM和4M RAM,不过由于文件系统占用2M,这2M一般又被分为系统盘和用户盘,系统盘存储NV文件和MMS相关文件,对用户不可见,用户盘用户连上电脑就可以看到,但由于一些原因,有不少手机是不设用户盘的,用户盘过大,会导致彩信等一些模块不稳定,所以很多使用NORFALSH时不设用户盘,但NAND FALSH一般都会设置一定的用户盘。如果需要设置,只要修改宏PARTITION_SIZE值就可以控制。所以我们能够使用的就只剩下14,这一点可以从BUILD目录下的scatWINGTECH25_GEMINI.txt文件的声明部分看到,在SCAT文件中,有一行是SCHEME : external 14MB flash memory ...
Read More...
Read More...
八条佛曰 66句震撼人心的禅语
[ 2009-06-17 14:45:28 | Author: Admin ]
八条佛曰
1、佛曰:忘记并不等于从未存在,一切自在来源于选择,而不是刻意。不如放手,放下的越多,越觉得拥有的更多。
2、佛曰:命由己造,相由心生,世间万物皆是化相,心不动,万物皆不动,心不变,万物皆不变。
3、佛曰:坐亦禅,行亦禅,一花一世界,一叶一如来,春来花自青,秋至叶飘零,无穷般若心自在,语默动静体自然。
4、佛曰:笑着面对,不去埋怨。悠然,随心,随性,随缘。注定让一生改变的,只在百年后,那一朵花开的时间。
5、佛曰:刹那便是永恒(若人生了悟如佛,无悲无喜无梦无幻,无爱无恨四大皆空,生与死又有何区别。不能了,不能悟,不能舍,不能弃,参不透,舍不得。)
6、佛曰:不可说,不可说,一说即是错。
7、佛曰:一念愚即般若绝,一念智即般若生。
8、佛曰:菩提本无树,明镜亦非台。本来无一物,何处惹尘埃。
66句震撼人心的禅语
...
Read More...
1、佛曰:忘记并不等于从未存在,一切自在来源于选择,而不是刻意。不如放手,放下的越多,越觉得拥有的更多。
2、佛曰:命由己造,相由心生,世间万物皆是化相,心不动,万物皆不动,心不变,万物皆不变。
3、佛曰:坐亦禅,行亦禅,一花一世界,一叶一如来,春来花自青,秋至叶飘零,无穷般若心自在,语默动静体自然。
4、佛曰:笑着面对,不去埋怨。悠然,随心,随性,随缘。注定让一生改变的,只在百年后,那一朵花开的时间。
5、佛曰:刹那便是永恒(若人生了悟如佛,无悲无喜无梦无幻,无爱无恨四大皆空,生与死又有何区别。不能了,不能悟,不能舍,不能弃,参不透,舍不得。)
6、佛曰:不可说,不可说,一说即是错。
7、佛曰:一念愚即般若绝,一念智即般若生。
8、佛曰:菩提本无树,明镜亦非台。本来无一物,何处惹尘埃。
66句震撼人心的禅语
...
Read More...
目的:
让MTK操作系统真正成为一个像Windows Mobile一样完全开放的智能操作平台,可动态加载一个或多个独立运行程序。
软硬件环境:
OS: Nucleus
CPU:MT6225
ENV:ADS1.2
过程实现:
从理论上来说,动态加载很简单,只需要把当前的PC指针指向下一句执行的语句即可。也就是使用如下的语句就可以实现(pAdress为独立运行文件的存放地址,此地址是可浮动的):
((void (*)())pAdress)();
下面说一下ADS编译为二进制可执行文件的问题,使用编译器如果一开始把所有的数据都放好,这样包括全局变量和静态变量,以及函数的执行地址等,都已在LINK的时候根据指定规则确定实际的运行地址,也就是说所有的函数的实际运行地址在LINK的时候已经确定。这样对于动态运行来说是不可行的,因为既然要动态加载,就需要所有地址都是静态的,因为每次对于读入内存的数据,起始地址是不缺定的,因此不能再LINK时把所有的地址固定死。
...
Read More...
让MTK操作系统真正成为一个像Windows Mobile一样完全开放的智能操作平台,可动态加载一个或多个独立运行程序。
软硬件环境:
OS: Nucleus
CPU:MT6225
ENV:ADS1.2
过程实现:
从理论上来说,动态加载很简单,只需要把当前的PC指针指向下一句执行的语句即可。也就是使用如下的语句就可以实现(pAdress为独立运行文件的存放地址,此地址是可浮动的):
((void (*)())pAdress)();
下面说一下ADS编译为二进制可执行文件的问题,使用编译器如果一开始把所有的数据都放好,这样包括全局变量和静态变量,以及函数的执行地址等,都已在LINK的时候根据指定规则确定实际的运行地址,也就是说所有的函数的实际运行地址在LINK的时候已经确定。这样对于动态运行来说是不可行的,因为既然要动态加载,就需要所有地址都是静态的,因为每次对于读入内存的数据,起始地址是不缺定的,因此不能再LINK时把所有的地址固定死。
...
Read More...
ARM ADS全称为ARM Developer Suite,是ARM公司推出的新一代ARM集成开发工具。现在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0。它除了可以安装在Winidows NT4,Windows 2000,Windows 98和Windows XP和Windows Me操作系统。
ADS由命令行开发工具,ARM实时库,GUI开发环境(Code Warrior和AXD),适用程序和支持软件组成。有了这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己的开发应用程序了。
下面就详细介绍一下ADS的各个组成部分。
命令行开发工具:这些工具完成将源代码编译,连接成可执行代码的功能。ADS提供下面的命令行开发工具:armcc:armcc是ARM C编译器。这个编译器通过了 Plum Hall C Validation ...
Read More...
ADS由命令行开发工具,ARM实时库,GUI开发环境(Code Warrior和AXD),适用程序和支持软件组成。有了这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己的开发应用程序了。
下面就详细介绍一下ADS的各个组成部分。
命令行开发工具:这些工具完成将源代码编译,连接成可执行代码的功能。ADS提供下面的命令行开发工具:armcc:armcc是ARM C编译器。这个编译器通过了 Plum Hall C Validation ...
Read More...
格式
load_region_name start_address | "+"offset [attributes] [max_size]
{
execution_region_name start_address | "+"offset [attributes][max_size]
{
module_select_pattern ["("
("+" input_section_attr | input_section_pattern)
([","] "+" input_section_attr | "," input_section_pattern)) *
")"]
...
Read More...
load_region_name start_address | "+"offset [attributes] [max_size]
{
execution_region_name start_address | "+"offset [attributes][max_size]
{
module_select_pattern ["("
("+" input_section_attr | input_section_pattern)
([","] "+" input_section_attr | "," input_section_pattern)) *
")"]
...
Read More...
MTK Phonebook初始化流程
[ 2009-06-16 09:23:16 | Author: wskyo ]
开机之后,初始化时,设置如下三个PS消息CBack函数:
InitializeAll()
mmi_phb_init_protocol()
SetProtocolEventHandler(mmi_phb_ind_startup_finish, PRT_PHB_STARTUP_FINISH_IND);
SetProtocolEventHandler(mmi_phb_ind_startup_begin, PRT_PHB_STARTUP_BEGIN_IND);
SetProtocolEventHandler(mmi_phb_ind_startup_read, PRT_PHB_STARTUP_READ_IND);
1.L4在到NVRAM读取data之前,发送消息到MMI:PRT_PHB_STARTUP_BEGIN_IND,进入:
...
Read More...
InitializeAll()
mmi_phb_init_protocol()
SetProtocolEventHandler(mmi_phb_ind_startup_finish, PRT_PHB_STARTUP_FINISH_IND);
SetProtocolEventHandler(mmi_phb_ind_startup_begin, PRT_PHB_STARTUP_BEGIN_IND);
SetProtocolEventHandler(mmi_phb_ind_startup_read, PRT_PHB_STARTUP_READ_IND);
1.L4在到NVRAM读取data之前,发送消息到MMI:PRT_PHB_STARTUP_BEGIN_IND,进入:
...
Read More...
socket开发通过gprs网络连接pc
[ 2009-06-16 09:21:36 | Author: wskyo ]
GPRS:通用分组无线技术(General packet radios service),GSM网络覆盖的区域都可快速实现GPRS的覆盖.
gprs的特点:高速率的数据传输.目前gprs速率达到40kb/s以上,gprs可实现的最高速率是171.2kb/s.EDGE最高速率可达到384kb\s.可以提供按流量计费方式.快捷登录,永远在线.gprs的用户一开机就始终附着在gprs网络上,登录时间只要1-3秒,远快于普通拨号方式.
中国移动gprs网络有两个接入点:cmwap和cmnet.
如果使用cmwap接入点连接上gprs网络后手机得到的ip地址形如10.x.x.x,这个地址是一个A类地址,也就是内网地址.这个地址的访问受到很多限制,它只能够访问gprs网而不能访问整个internet,如果要用这个地址访问internet就需要使用代理服务器,如中国移动的10.0.0.172的80端口.
...
Read More...
gprs的特点:高速率的数据传输.目前gprs速率达到40kb/s以上,gprs可实现的最高速率是171.2kb/s.EDGE最高速率可达到384kb\s.可以提供按流量计费方式.快捷登录,永远在线.gprs的用户一开机就始终附着在gprs网络上,登录时间只要1-3秒,远快于普通拨号方式.
中国移动gprs网络有两个接入点:cmwap和cmnet.
如果使用cmwap接入点连接上gprs网络后手机得到的ip地址形如10.x.x.x,这个地址是一个A类地址,也就是内网地址.这个地址的访问受到很多限制,它只能够访问gprs网而不能访问整个internet,如果要用这个地址访问internet就需要使用代理服务器,如中国移动的10.0.0.172的80端口.
...
Read More...
const char * 不相同 const CPTR 其中 #typedef char * C
[ 2009-04-07 11:31:18 | Author: wskyo ]
typedef char* CPTR;
const CPTR p;
p变量 为 char* const p;const CPTR p;
下面的程序编译,但下列警告之一显示:
C4090: 'initializing' : different 'const' qualifiers:
C2440: 'initializing' : cannot convert from 'const char *' to 'char *'
Conversion loses qualifiers
const char *ReturnConstantPtr()
{
const char *p = "can't touch this";
return p;
}
...{
const char *p = "can't touch this";
return p;
}
Read More...







