导读:
MOTO LINUX系MOBILEPHONE的EZX库解读
一般性猜测及实现
by ppllxx
引言
通常,程序是在一台计算机上编译,然后再分布到将要使用的其他计算机上。当主机系统(运行编译器的系统)和目标系统(产生的程序将在其上运行的系统)不兼容时,该过程就叫做交叉编译。 在这篇文章中,我将使用MOTOROLA的LINUX 系列手机E680I作为焦点,介绍其底层库的猜测解读,以及解读底层库的原因和猜测的一般性方法及猜测验证,而对交叉编译环境的搭建和对具体实现的细节及基础知识不做过多介绍。如果您曾有过交叉编译的经历(笔者还有关于SONY PSP以及IPOD NANO的交叉编译经验),那么阅读本文将会使您加深一些对嵌入式操作系统的认识。若无交叉编译经历的话,按照文章的组织顺序阅读,您也将会从本文中受益,因为本文类似于一个教程,每一步都以逻辑顺序相连。
必要
JAVA程序通常使用非常小的一部分时间运行所编写的程序,而将大部分时间用在运行JAVA开发包所提供的库文件中,也就是JAVA通过提供各类平台的虚拟机程序来实现平台无关性,这样也很大的牺牲了执行效率;而C/C++程序主要特点就是接近低层,可根据不同处理器生成高效的机器代码。适合做复杂的运算和实时的控制,所以针对C语言,会有很多不同平台的编译器负责将代码直接编译成高效的机器指令(构造一个能兼容ARM的GCC)。
测量程序的运行速度,最好的标准就是在相同条件下,计算程序不同编写方式下的运行时间,
一般来说,在循环中向下计算比向上计算快,虽然在小的循环体中影响几乎为零,但是如果循环次数到达万次以上,则影响非常明显:
测试一个绘制心状图形的计算量,使用笛卡儿公式:r=a(1-sin(a)),其核心计算为将空间的每个点投影到XY平面,其计算量分别在下面两段程序显现
经过分别5次测
MOTO LINUX系MOBILEPHONE的EZX库解读
一般性猜测及实现
by ppllxx
引言
通常,程序是在一台计算机上编译,然后再分布到将要使用的其他计算机上。当主机系统(运行编译器的系统)和目标系统(产生的程序将在其上运行的系统)不兼容时,该过程就叫做交叉编译。 在这篇文章中,我将使用MOTOROLA的LINUX 系列手机E680I作为焦点,介绍其底层库的猜测解读,以及解读底层库的原因和猜测的一般性方法及猜测验证,而对交叉编译环境的搭建和对具体实现的细节及基础知识不做过多介绍。如果您曾有过交叉编译的经历(笔者还有关于SONY PSP以及IPOD NANO的交叉编译经验),那么阅读本文将会使您加深一些对嵌入式操作系统的认识。若无交叉编译经历的话,按照文章的组织顺序阅读,您也将会从本文中受益,因为本文类似于一个教程,每一步都以逻辑顺序相连。
必要
JAVA程序通常使用非常小的一部分时间运行所编写的程序,而将大部分时间用在运行JAVA开发包所提供的库文件中,也就是JAVA通过提供各类平台的虚拟机程序来实现平台无关性,这样也很大的牺牲了执行效率;而C/C++程序主要特点就是接近低层,可根据不同处理器生成高效的机器代码。适合做复杂的运算和实时的控制,所以针对C语言,会有很多不同平台的编译器负责将代码直接编译成高效的机器指令(构造一个能兼容ARM的GCC)。
测量程序的运行速度,最好的标准就是在相同条件下,计算程序不同编写方式下的运行时间,
一般来说,在循环中向下计算比向上计算快,虽然在小的循环体中影响几乎为零,但是如果循环次数到达万次以上,则影响非常明显:
测试一个绘制心状图形的计算量,使用笛卡儿公式:r=a(1-sin(a)),其核心计算为将空间的每个点投影到XY平面,其计算量分别在下面两段程序显现
![](http://blog.chinaunix.net/photo/19423_070830194403.jpg)
经过分别5次测