自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

百泉居

At The Beginning, always!

  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

转载 Windows下宽字符集与char

我们都知道如何获得字符串的长度。例如,如果我们已经像下面这样定义了一个字符串指针:char * pc = "Hello!" ;我们可以呼叫iLength = strlen (pc) ;这时变量iLength将等于6,也就是字符串中的字符数。太好了!现在让我们试着定义一个指向宽字符的指针:wchar_t * pw = L"Hello!" ;再次呼叫

2011-11-11 13:34:25 850

转载 c++继承中的内存布局

<br />本文着重回答这样一些问题:<br />1* 类如何布局?<br />2* 成员变量如何访问?<br />3* 成员函数如何访问?<br />4* 所谓的“调整块”(adjuster thunk)是怎么回事?<br />5* 使用如下机制时,开销如何:<br />  * 单继承、多重继承、虚继承<br />  * 虚函数调用<br />  * 强制转换到基类,或者强制转换到虚基类<br />  * 异常处理<br /><br />转帖自:http://blog.csdn.net/jiangyi71

2010-10-14 11:13:00 452

转载 Debug时,内存里怎么都是“烫烫烫烫烫烫”

<br />在 Debug 模式下会自动加上 /GZ 编译选项,它可以帮助捕获内存错误。<br />/GZ 选项会做以下这些事<br />(1) 初始化内存和变量。包括用 0xCC 初始化所有自动变量,0xCD ( Cleared Data ) 初始化堆中分配的内存(即动态分配的内存,例如 new ),0xDD ( Dead Data ) 填充已被释放的堆内存(例如 delete ),0xFD( deFencde Data ) 初始化受保护的内存(debug 版在动态分配内存的前后加入保护内存以防止越界访问

2010-10-14 11:09:00 756

原创 十年

    最近,我经常忧虑一些事情,比如,不断恶化的自然生态环境,导致各种极端气候现象的频繁出现;社会乱象频频,普通人民的生活越来越艰难。    但是以前,大约在十年以前,当我还是个懵懂少年的时候,完全没有这类似的对自然对社会的忧虑。那时的我,想得最多做得最多的,就是逃课躲到学校附近的大山里,有时在山里瞎转,有时看着山外朦胧的世界,或是目光追随着从山坳里经过开向远方的火车,一边发呆,一边憧憬着未

2009-08-06 22:00:00 484

原创 我想去种树

    我想去种树,为了让自己的生活不太枯燥,也为了对这个危机重重的地球做点自己的贡献。当然,我不可能丢掉我的工作,而去做全职的种树人,只能是定期捐钱,同时会在时间充裕的时候亲自到植树地去种树。我从小在农村长大,小时候就很喜欢种树。谁知道有哪些相关的组织可以接纳我吗?请积极与我联系。MSN and EMail:[email protected]

2008-10-28 20:06:00 992

原创 半年小记

很长时间没写了,现在也懒,懒得长篇阔论地写,简单记记这半年来的变迁吧。2008/01        公司从事的业务发生重大变故,但我高兴,因为这意味着我离开时的阻力会小得多。2008/02        年假回家了,返回的时候路过北京,为了了解行业需求概况,在北京呆了三天,其间面试了三家小公司,感觉行情很不错。2008/02/22   正式从公司离职。2008/02-2008

2008-09-13 11:24:00 612

转载 从软件工程师到IT猎头:我的一点经历和感触

  在做完三年的通信软件工程师之后,因为不想在技术这条路上继续走下去,但又不想到处出差,吃喝应酬,在一个朋友的推荐下做了猎头,猎头在很多人的眼里是个神秘的职业,可能很多朋友都不知道自己怎么就突然被猎头找到了,然后经过很专业的寒暄跟客气之后,就开始职位介绍,如果这年头,您正不打算换工作,而且又很忙,收到这样的电话可能还真烦的不得了,但如果您目前正有换工作的打算,此时听到猎头的电话,一般都会很客气的躲

2008-07-21 17:29:00 4008

转载 C语言输入输出格式符

c语言不提供输入输出语句,输入输出操作是由c的库函数完成。但要包含头文件stdio.h。putchar( ) 向终端输出一个字符printf( )的格式字符:① d格式符 用来输出十进制整数%d 按整型数据的实际长度输出%md 使输出长度为m,如果数据长度小于m,则左补空格,如果大于m,则输出实际长度%ld 输出长整型数据② o格式符 以八进制形式输出整数③ x格式

2008-07-04 17:30:00 3571 1

原创 初始化列表的作用域

 看以下两个类: class A{public:       A(){ provalue = 0;}protected:       int proValue;}; class B: public A{public:       B();}; B::B()       :proValue(0){} 以上

2008-06-20 08:52:00 627

转载 C++虚拟函数实现

  一、动态联编与多态联编就是将模块或者函数合并在一起,以生成可执行代码的处理过程,同时对每个模块或者函数调用分配内存地址,并且对外部访问也分配正确的内存地址。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。在编译阶段就将函数实现和函数调用关联起来称之为静态联编,静态联编在编译阶段就必须了解所有的函数或模块执行所需要检测的信息,它对函数的选择是基于指向对象的指针

2008-06-19 17:17:00 737

原创 Lib静态链接库和Dll动态链接库

dll:Dynamic Link Library动态链接库。dll是编译好的完整程序, 已经经过链接,有函数导出表与导入表。使用时可以直接调用其中的函数。dll在程序运行的时候才被链接,但并不参加工程的编译,因此它是一种比较小的可执行文件格式。dll还有其他的文件格式如ocx等,所有的dll文件都是可执行的。lib只是一个代码集,它把一些函数做成一个函数集合放在一起,这些函数没有链接。如果

2008-06-19 16:28:00 1815 3

原创 Symbian SDK之间的切换

在一台机器上可以安装Symbian的多个SDK,在多个SDK共存在情况下,要使用不同的SDK环境编译应用程序,可以通过devices命令寻求帮助。查看当前可用的Symbian设备,使用devices命令:C:/Documents and Settings/shiyigang>devices-------------------------------------------------------

2008-05-06 09:46:00 661 1

原创 透过绿叶看春光

我很喜欢带着速度看春光的感觉,特别是坐着车快速地行驶在宽阔的三环主路上。身旁是绿油油的大树,迎面吹着凉爽的风,看着城市的高楼从两旁掠过,树的叶子在阳光的照耀下闪着柔和的光,在风中轻轻的摇曳,我的心情就和这树叶差不多吧。有时候,很想就保持这样的状态,人生如果能一直以这样的心情、这样的节奏过下去,可能就要慢慢地美美地醉死了。人啊,年轻的时候总是有一些野心的,似乎不能总是让自己年轻的血液流淌得和那些

2008-04-27 16:02:00 572

原创 Symbian中的Http应用

 1 打开一个会话Http客户端会话由声明一个RHttpSession对象并调用它的OpenL()方法开始。RHTTPSession iSession;iSession.OpenL(); 2 创建一个事务要创建一个新的事务,客户端必须指定URI、HTTP请求方法和一个用于接收事务处理期间的事件的callback对象,该回调对象必须继承自MHTTPTransactionC

2008-04-20 15:22:00 2060 3

翻译 Symbian OS的硬件——总结

在本章,我已经描述运行Symbian OS所需的核心硬件,强调了涉及多种硬件选择的电源管理。限于篇幅,还有很多硬件和主题我没有提到,它们包括:• 实时时钟• 触摸屏• 连向BP的IPC接口• 调试接口• 闪存编程• 多显示器• IRDA• 启动• 可移除的媒体,SD,MMC• 二维图形• 三维图形• DSP• 多媒体加速器• USB接口•

2007-07-03 11:02:00 1309

翻译 Symbian OS的硬件——电源管理

所有的Symbian OS电话都是由电池供能,就像我贯穿本章始终强调的,有效的电源管理在一个成功的Symbian电话的设计中是至关重要的。SoC团队的整体设计目标必须着重于在低电耗方面有良好的性能。在每次做决定的时候,系统的设计者们必须问自己:“这个决定将怎样影响电源消耗?”“在有同样性能的情况下,我还是否可以有另外的更省电的设计方式?”。只有对电源使用的持续关注,才能在一个电池支持数小时的通

2007-07-03 11:01:00 950

翻译 Symbian OS的硬件——音频

Symbian OS电话里的音频子系统主要包含两种独立的音频数据流。一种是电话声音数据,另一种是多媒体数据。电话里这两种至关重要的用例要求有良好的音质和长时间通话的能力。专用于声音数据的数字音频总线用来保证这些需求。在Symbian OS电话上实际使用的原始硬件音频格式是16位的脉冲编码调制(pulse code modulated, PCM)数据。声音的质量范围介于通话时的单声道8kHz

2007-07-03 10:58:00 1019

翻译 Symbian OS的硬件——液晶显示器(LCD)

Symbian OS电话的主要显示器是彩色的液晶显示器。显示器的工作是把流缓冲里的像素转化为我们可以看见的图像。根据屏幕的大小进行了优化后,Symbian电话的显示器根据用户接口软件层有几种普通的尺寸。最普通的方案是用于Series 60电话上的176×208像素和用于UiQ上的240×320像素。流缓冲是连续的物理内存上的一块区域,它足够大,以包含和最终要显示的数据同样大小的一串像素。

2007-07-03 10:57:00 809

翻译 Symbian OS的硬件——直接存储器访问(DMA)

DMA被Symbian OS用来减轻高带宽存储器到外设的数据传输上的负担,从而允许CPU去执行其他的任务。对于给定的外设,DMA可以减少1%的中断负担,节省电源并增加了外设接口的实时健壮性。在第十三章,外设支持,将描述支持DMA的EKA2软件框架是怎样和不同的DMA硬件及设备驱动一起被使用的。DMA引擎是总线管理者外设,它可以被编程以在外设和存储器之间移动大量的数据,并且不需要CPU的干涉

2007-07-03 10:56:00 1001

翻译 Symbian OS的硬件——计时器

在第五章,内核服务,我将解释EKA2的毫秒计时器的使用。EKA2使用1个1毫秒滴答计时器驱动时间分片和计时器队列,并追踪挂钟时间(wall clock time)。产生规则的不带漂移的1毫秒中断的高速计时器,提出了最小的硬件需求。计时器计数器必须是可读写的,最大的周期时间必须有数秒之长。计时器时钟源的速度对Symbian OS而言并不重要,但是通常介于32kHz和1MHz。时钟源越慢,消耗

2007-07-03 10:54:00 1086

翻译 Symbian OS的硬件——中断

系统外设通过生成中断要求CPU的响应。每个外设都有一个或多个绑定到可编程中断控制器(Programmable Interrupt Controller,PIC)的中断线,PIC将把未完成的中断集中到CPU。ARM核心只有两种中断输入,即普通中断请求(normal Interrupt ReQuest,IRQ)和快速中断请求(Fast Interrupt reQuest,FIQ)。FIQ的优先级比IR

2007-07-03 10:49:00 838

翻译 Symbian OS的硬件——闪存(Flash memory)

Symbian 电话使用闪存作为它们存储系统代码和用户数据的主要场所。闪存是可编程可电子擦除的硅基非易失性存储介质。闪存的使用是通过与它的物理操作进行绑定实现的。单独的比特位只能从1态转化为0态。将一个比特位存为1态要求擦除整个闪存块或闪存片段,通常是64KB。往一个0态的比特位写入不会产生任何结果。闪存有两种主要的类型:闪存有两种主要的类型:NOR和NAND。这个名字涉及到它们基本的

2007-07-03 10:46:00 1050

翻译 Symbian OS的硬件——随机存储器 (RAM)

RAM是系统内所有活动数据的根据地,而且正在执行的代码通常也是在RAM上。RAM的品质决定了你同步运行的应用程序的类型和数量,RAM的访问数度也影响着它们的性能。一个Symbian OS电话会有8或64MB的RAM。OS本身需要适量的RAM,而总的需求则由预期的用例决定。多媒体需要在百万像素的摄像机和视频记录上大量的RAM。如果使用了NAND闪存,兆字节的代码必须被拷贝进RAM里,这不像在适当

2007-07-03 10:22:00 922

翻译 Symbian OS的硬件——片上系统System-on-Chip(SoC)_缓存

2.2.5 缓存每个Symbian 电话上使用的CPU都要求有缓存以获得最优性能。缓存的工作是通过持有最近被访问的数据和指令的本地拷贝,把快速的CPU和慢速的内存系统进行隔离。ARM CPU具有Harvard结构,它有单独的指令和数据端口,相应地就有单独的指令缓存和数据缓存(ICache,DCache)。缓存借助执行代码重复的本地特征工作。在一个循环里的代码将执行同样的指令,并访问同样

2007-07-03 10:20:00 1298

翻译 Symbian OS的硬件——片上系统System-on-Chip(SoC)_ARM、内存管理单元(MMU)

2.2.3 ARMARM已经进行了20多年基于RISC的CPU,并且成功地授权世界上所有的半导体厂商把它包含进他们自己的SoCs里去。Intel已经授权了第五版的ARM体系结构以建造软件兼容的XScale微处理器。随着ARM连续开发了几代CPU,他们添加进了一些新的指令和特性,也剥离一些很少用到的旧特性。带有额外字母的ARM结构版本号,定义了特性集和指令集,以及MMU的操作,缓存和调试。

2007-07-03 10:11:00 1655

翻译 Symbian OS的硬件——片上系统System-on-Chip(SoC)_物理内存映像、中央处理单元(CPU)

SoCs还有另外两个称呼:针对定制芯片的专用集成电路ASICs (Application-specific Integrated Circuits)和针对商业领域的专用半导体部分ASSP(Application-specific Semiconductor Parts)。所有的这三个术语都不是很精确,而且可以被相互取代。所有主要的硅片公司都设计制造了SoCs:Texas Instruments

2007-07-03 10:06:00 1287

翻译 Symbian OS的硬件——手机的内部

本章探讨Symbian OS运行的硬件:移动电话,也就是称为设备平台的东西。我将分析运行Symbian OS所必需的核心硬件,同时希望帮助你认识到造就了世界级Symbian手机的设计方案的卓越性。与此同时,我还希望你将获得对Symbian OS运行环境的深入理解。在EKA2模拟器上运行Symbian OS的信息,在开发期间将使用的平台,都位于贯穿本书的上下文环境中。这些材料的目的是让你知道模拟

2007-07-03 09:55:00 919

翻译 Symbian OS Internals——Symbian OS模拟器

1.3.4.1 设计目标模拟器有两个主要的用处——开发Symbian OS软件和演示这个软件。第一个用例对内核服务提出了更多的要求,所以我们专注于什么时候草拟出需求。在最高级别上,它给我们提供模拟器的两个关键需求:1、它需支持在主机平台上使用标准工具进行开发和调试。2、它应当尽可能真实地提供Symbian OS在目标硬件上的模拟。这些需求看上去是有冲突的,因为第一个需求要求使用

2007-07-03 09:44:00 1635

翻译 Symbian OS Internals——设计方案_抢占式内核、微内核、模块性、设计局限

现在,我将谈一谈我们在EKA2中采用的设计方案和它们如何帮助我们实现我们设定的目标。 1.3.3.1多线程抢占式内核为了减少线程执行期,我们把EKA2设计成多线程的,允许低优先级的内核操作被高优先级的内核操作抢占。EKA2有五个线程,它们是:1、Null Thread——空转(idles)CPU,重组(De-fragments)RAM。这个线程也被叫做Idle Thread

2007-07-03 09:33:00 1177

翻译 Symbian OS Internals——设备驱动、扩展、EUSER、文件服务器、窗口服务器和软件分层

1.3.2.7设备驱动在Symbian OS上,你使用设备驱动控制外设:驱动提供这些外设和Symbian OS其余部分之间的接口。只要愿意,你也可以采用跟分离ASSP和变量相似的方式分离设备驱动,即提供与硬件无关的逻辑设备驱动,和与硬件有关的物理驱动,或者PDD(物理设备驱动器)。设备驱动可能运行在客户端线程或内核线程:我们新的多线程内核设计使得从其他的操作系统往Symbian O

2007-05-30 08:19:00 1093

翻译 Symbian OS Internals——内存模型、个性层、扩展和变量

1.3.2.3 内存模型在EKA2里,我们把关于ASIC内存结构的设想限定在一个模块中,就是内存模型。从而内存管理模型封装了重要的MMU(存储器管理单元)差异,比如一个缓存是被虚拟标记还是被实际标记,也就是:到底存不存在MMU。在EKA1里,关于内存和MMU的设想遍布于整个操作系统,这样,使得生产一个基于没有MMU的ASIC的手机比较困难。但EKA2的到来使得它变得容易得多,既

2007-05-30 08:17:00 821

翻译 Symbian OS Internals——Symbian OS内核结构

Symbian OS Internals——Symbian OS内核结构基于这些设计目标,我们设计了这个操作系统,在高层次上看,它的结构就像图1.1所示。在本书中可以看到内核的主要构成。我也包括了另外两个通常被认为是操作系统部分的主要系统组件,这就是在本书中将提到的文件服务器和窗口服务器。本书中将提到这两个部分并介绍其基本功能。 1.3.2.1 微内核微内核的主要功能是提供

2007-05-30 08:16:00 1354

翻译 Symbian OS Internals —— OS的概念

Symbian OS Internals —— OS的概念 让我们从对操作系统OS的一个基本定义开始吧:操作系统是一种基本软件,它控制它所运行的计算机上所有的操作。操作系统负责管理硬件——控制系统中的多种硬件部分,并将它们组合到一起。OS也负责管理软件,比如,装载Email 客户端和电子数据表等应用。操作系统通常是在计算机启动时载入到计算机内存中的第一个软件。然后,OS通过载入

2007-05-30 08:14:00 891

翻译 Symbian OS Internals——设计目标

Symbian OS Internals——设计目标 在开始设计EKA2的时候,我们给自己制定了一些约束。我们确定了不想抛弃掉的EKA1中的某些部分,这就意味着我们想保证新的内核仍然可以做到以下几点:1、遵循嵌入式OS的传统2、适合资源受限的环境3、模块化:由微内核和用户端服务器组成4、兼容多种芯片集5、健壮,可以容忍糟糕的代码6、完整,保证用户数据的安全接

2007-05-30 08:12:00 703

翻译 Symbian OS Internals——EKA2的历史

Symbian OS Internals——EKA2的历史      在软件工程中,内核设计是最令人激动的一种机遇。在80年代的8位和16位服务于Psion和PDA的内核设计后,EKA2是对32位Symbian内核结构的重构。 Psion’s Orga

2007-05-30 08:08:00 842

原创 降临东软

2006年2月25日,我签约东软。      其实在这次应聘的过程中,我在中软大连公司也有很大的希望。如果二者都有机会的话,我更倾向于中软。原因有二:其一是东软在业界的口碑不怎么好,在员工待遇上太抠了,让人觉得像个土财主;其二是中软给人的感觉更正规一些,毕竟是有中央部委背景的企业。但在整个应聘过程中,中软的反应让我失望。二月十八号下午三点:参加东软集团的笔试。用一个小时的时间答完试卷,

2006-03-24 19:45:00 2497 1

原创 怀想集——高中众生相

    很长时间没在这里留声了,先祝大家圣诞快乐!    今天凌晨,大约五点吧,我做了个奇怪的梦,五年来第一次——梦到了一大帮人,是一大帮:    不知是什么机缘,我们突然在一起了,还商量起踢球。于是石裕刚和胡朝国就开始划拳选同伙,当然啦,这两小子把我们的“精英”都给划完了!不知怎么的改变了分伙方式,立极就找我划拳决定去哪伙。开始踢了,我是左后卫,我拼命地守啊!汪旺拼命地踢,他拼命般地

2005-12-26 08:28:00 2469 8

转载 在VC++中访问和修改系统注册表

Windows95/98的注册表包含了Windows95/98的系统配置、PC机的硬件配置、Win32应用程序和用户的其他设置信息。注册表和INI文件不同,它是多层次的树状数据结构,具有六个分支(根键),每个分支又由许多的键和键值组成,而每个键则代表一个特定的配置项目。  在实际的编程工作中,我们遇到了如何在Visual C++中对Windows95/98注册表整个树状结构信息进行访问和修改的问题

2005-10-01 09:26:00 828

Flunt Python

虽然Python是一们很容易上手的语言,但正因为其容易上手,很多从其他语言转移到Python平台的程序员忽视了Python本身区别于其他语言的一些特性;而这些特性,往往体现着Python的强大。本书就是描述Python的这些特性,让你通往Python专家之路。

2016-07-05

C++ Object Model

C++ Object Model

2008-01-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除