自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(144)
  • 资源 (2)
  • 收藏
  • 关注

转载 WinCE的I2C驱动程序设计

1 I2C 通信协议及S3C2410 芯片介绍   I2C(Inter Integrated Circuit) 总线是1980 年由Philips 公司推出的。 I2C 总线用两条线(SDA 和SCL )在总线和装置之间传递信息,在微控制器和外部设备之间进行串行通信或在主设备和从设备之间进行双向数据传送。两条通信线通过上拉电阻被拉升至+5 V 。在控制系统中的每个集成电路可以通过一个CMOS

2012-12-30 16:02:51 1122

转载 WinCE OAL中的OEMIoControl函数

关于OEMIoControl函数,我在2008年1月份写过一篇blog叫“WinCE BSP中OAL层中的OEMIoControl介绍”,已经比较详细的介绍了OEMIoControl,今天在这里只是对OEMIoControl中比较常用的case说一说。看看PB的文档就知道OEMIoControl可以包含很多case而且被分了类。下面就我个人接触到的和比较常用的做个说明:    1. IOCTL

2012-12-30 10:09:09 585

转载 WinCE下的GPIO中断的处理

在我所负责的音频驱动部分代码中,采用了PXA270的GPIO34来检测Headphone的插入与拔出.原驱动部分有个BUG,即当耳机插入以后,耳机和喇叭同时在响,很明显没有对耳机插入事件做出响应.所以我开始采用了检测GPIO信号拉高或者拉低和检测耳机的插入事件,但是这样做有个问题,就是会有延时,插入耳机以后,会有一两秒的时候喇叭才会变关掉.为了改变这种办法,经过咨询,决定采用中断的办法来做这件事情

2012-12-29 21:16:16 530

转载 WinCE EBOOT中的BootPart分析

应该说BootPart算是微软提供的一个用于分区的模块,可以在EBOOT中使用。不过说实话,我很少使用它,知道有些厂商的BSP里面支持这个功能,而且也算是EBOOT的一部分,所以还是介绍一下。先看一下架构,如图: 在EBOOT中,BLCOMMON处于最上层,这个在以前已经介绍过,BootPart模块会被OEM函数来调用,而BootPart模块要操作存储设备需要Flash Drive

2012-12-29 13:17:27 842

转载 WinCE Emulator使用介绍

最近用了一下WinCE的模拟器,我做WinCE有几年了,从来没有用过WinCE的模拟器,第一次接触WinCE的时候就是一块S3C2410的板子和PB4.2的开发平台,然后就开始折腾,后来各种开发板都用过,WinCE也从4.2版本用到了6.0 R2版本,就是没用过模拟器。前段时间要验证点东西,手头又没板子,所以这次也用了一下。我看到网上很多人写过关于WinCE Emulator的文章,那我要写的应该

2012-12-29 13:16:48 716

转载 wince6.0中文内核定制

对WinCE体积进行剪裁,并让WinCE支持简体中文和英文显示,默认显示是中文,并以下对字体选取作详细的说明; 关键操作步骤:1.先创建一个WINCE内核工程.2.先打开目标的工程文件,单击“Project”菜单,再单击“Properties->Configuration Properties-> Locale先执行“clear”Lo

2012-12-28 10:04:49 1356

转载 wince使用自定义字体

在wince中使用自定义字体其实很简单,只要将自已的字体加到你的程序中就可以使用了,在使用完后再将其清除掉。以wince中加使用"Georgia”字体为例:在程序初始化的时候将你的字体加载进程序AddFontResource(L"NandFlash\\Font\\Georgia.ttf") ;//我的字体文件放在NandFlash下的Font目录下,文件名称为Georgia.ttf

2012-12-28 09:59:53 1850

转载 Eboot 中给nandflash分区实现

提到分区就不得不提到MBR,不得不提到分区表。什么是MBR硬盘的0柱面、0磁头、1扇区称为主引导扇区,NANDFLASH由BLOCK和Sector组成,所以NANDFLASH的第0 BLOCK,第1 Sector为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录(MBR)。该记录占用512个字节,它用于硬盘启动时将系统控制权交给用户指定的,并在分区表中登记了的某个操作系统区。

2012-12-27 20:06:59 672

转载 x210-II WinCE启动10s,还可继续优化

为提高boot引导速度,,需支持multibin。方法如下:1.D:\WINCE600\PLATFORM\SMDKV210\SMDKV210.bat@REM For Multiple XIP (using demand paging on BINFS)set IMGMULTIXIP=12.调整config.bib镜像大小由于系统生成的XIPKERNEL约为3M。大于默认

2012-12-26 12:49:59 800

转载 关于mult-xip bin的一些资料整理

一.实现multbin 1.首先修改config.bib 比如:#elif defined IMGMULTIBIN;  NAME          START ADDR    SIZE      TYPE;  ----------------------------------------------------------------    NK

2012-12-23 12:52:45 860

转载 WinCE中,环境变量的添加,删除和查询

在WinCE中有很多的环境变量,那么如何设置/删除/查询这些环境变量呢:1. 查询环境变量:当我们在PB里打开或者创建一个工程以后,我们可以在菜单中点 “build”->“Open Release Directory in Build Window”,然后会弹出命令行对话框。在对话框中输入“set”命令,然后回车,就会看到当前工程下所有的环境变量以及相应的值。2. 添加环境变量:有

2012-12-23 12:52:37 955

转载 Win CE下编译选项介绍

在WinCE中,在"Build OS”菜单中,我们会看到不同的编译选项:        "Sysgen","Build and Sysgen"和"Build and Sysgen current BSP"        Sysgen:不用多说,当你在"Catalog"中添加或删除了新的item的时候,就用这个吧。        Build and Sysgen:当你更新了/

2012-12-23 12:52:25 840

转载 windows mobile 编译(生成镜像)提速

windows mobile 编译镜像总是让人难以忍受的耗时,当然我们不能每次修改一点东西就build All一次。下面是自己工作中积累的【不同情况下使用的编译命令】来加速生成镜像的过程,不排除有错的可能,欢迎指正。对于修改,一般可以分为以下几种类型:(1)修改public下的东西(一般不会修改这里的东西)(2)修改了Cesysgen.bat或是会影响到Cesysgen.b

2012-12-23 12:52:17 686

转载 XIP与HIVE

我们的Image主要由两部分组成:XIPKERNEL.bin和NK.bin,XIPKERNEL.bin中的东西就是那些WinCE中比较核心的又需要经常加载的一些程序和DLL文件,这些文件会被Boot Loader在刚启动的时候拷贝到RAM中去,这样就可以在RAM中XIP(Excute in place)了。在NK.bin中的基本上是需要但不至于要常驻内存的一些程序和DLL了,比如我们BuildIn

2012-12-23 12:52:09 612

转载 winCE改变字库方法

更新系统字库:例如要在 WinCE5.0 加入微软雅黑字体的支持 。第一步:增加如下注册表[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/FontPath]"FontPath"="// Windows "  ; 字库文件所在目录     [HKEY_LOCAL_MACHINE/SYSTEM/GDI]       "FontLinkMetho

2012-12-23 12:51:58 664

转载 预处理命令中的#和##

在c/c++的程序设计中,有的时候不免要实现某些对象转换出相应名字字符串或两对象名直接相连的情况,这时候可采用宏定义中加入#和##分别实现相应功能。下面是摘抄的一段解释。 The # and ## preprocessor operators are used with the #define preprocessor directive.Using # causes th

2012-12-23 12:51:49 546

转载 volatile的作用

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:     1). 并行设备的硬件寄存器(如:状态寄存器)     2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic

2012-12-23 12:35:49 408

转载 C++中的强制转换

标准c++中主要有四种强制转换类型运算符:  const_cast,reinterpret_cast,static_cast,dynamic_cast等等。  1)static_cast(a)  将地址a转换成类型T,T和a必须是指针、引用、算术类型或枚举类型。  表达式static_cast(a), a的值转换为模板中指定的类型T.在运行时转换过程中,不进行类型检查来确保转换的安

2012-12-23 12:35:40 474

转载 一面微创题--字符串逆序输出

最近一直在等面试消息,都有点着急了,的确,还有太多不足,笔面之后的一面技术面,幸运地是在三个面试者中面试官留下了我,可是一句话又搞的我一点底都没了:“你别以为你通过了就怎么着,其实你也很菜,你写的程序不过就是让我大概看懂了罢了。”可不,趁现在等消息好好想想写的那程序得了。当时一看题目感觉挺简单的,字符串逆序很容易实现呐。      实现要求是至多只能申请一个空间,不能用库函数。当时面试的时候是

2012-12-23 12:35:28 740

转载 在何时该用什么方式编译WinCE

这是一篇很好的文章,很多开发者其实并没有搞清楚这个问题:在何时该用什么方式编译WinCE导致走了很多弯路,也包括我自己感谢作者写了这篇文章这么好的文章,我想应该翻译过来给大家在何时该用什么方式编译WinCE在新闻组里,大家总是会问这样一个问题,“我做了改动,为什么没合到我的镜像里面”或者“我在platform.reg里面改动了注册表,但是最后发现改动没有体现在设备中”。

2012-12-23 12:34:59 1369

转载 WINCE的BIB文件解析

BIB的全称为Binary Image Builder,在Wince编译过程中的最后MakeImage阶段会用到BIB文件,BIB文件的作用是指示构建系统如何构建二进制映像。所有的BIB文件会被合并成CE.bib文件,然后打包工具Romimage.exe会根据BIB文件中的描述来决定哪些文件最终被包含到WINCE image中,BIB文件还决定了WINCE设备内存的分配,比如定义了WINCE im

2012-12-23 10:27:06 972

转载 基于WINCE6.0下载multiple XIP镜像文件

备注:基于usb下载的方式,MLC nand flash为K9G8G08U 1.      Multiple XIP模式的文件说明Multiple XIP模式下生成的文件有chain.bin、chain.lst、NK.bin、xip.bin和xipkernel.bin,如下图所示:  图12.      Eboot下载Multiple XIP镜像文件的顺序下载chain

2012-12-22 16:13:16 986

转载 三种嵌入式操作系统的分析与比析

1.1 嵌入式系统  嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。  嵌入式系统应具有的特点是:高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;许多嵌入式应用要求实时性,这就要求嵌入式操作系统具有实时处理能力 ;嵌入式系统和具体应用有机地结合在一起,它的升级换

2012-12-22 14:45:30 675

转载 Boot Loader的启动流程和开发经验总结

Windows CE最大程度继承了桌面版Windows的丰富功能,但是Windows CE并不是一个通用的安装版操作系统。在形形色色的嵌入式设备世界里,一款CE系统通常只会针对某一种硬件平台生成。    一般来说,Windows CE的开发过程可以分为:0AL(OEM Abstraction Layer)、驱动、应用程序开发三个步骤。其中,0AL开发最基本的一步是板级支持包(BSP),

2012-12-22 14:43:57 995

转载 巧手定制Windows CE系统

嵌入式系统正在日益广泛的应用于各个方面,嵌入式系统的最大特点在于其精简和实时性。公司近期委派我负责一个新的嵌入式系统项目,因为是小型设备,所以我面临的第一个难题是需要找一个体积少,但非常灵活添加外围接口的嵌入式系统。  最初提出了两种方案,第一种是在完整的系统上进行裁剪,第二种是在磁盘上直接安装内核、启动脚本等文件来实现最小系统。经过再三思考,在众多的嵌入式操作系统中,我选择了Windows

2012-12-22 14:26:55 1690

转载 写在S3C2440A平台+winCE5.0+NAND +HIVE注册表的实现

最近一直弄这个注册表的永久保存,在网上看到很多相关的贴子,就像大部分人说的一样,很少有人照着做就可以成功的。 今天总算成功了,总结经验如下,但愿对后来者有所帮助。首先,要实现注册表的永久保存,你的NAND FLASH一定要可以分一块区出来,实现永久保存数据。这一步我的做法是在nand flash驱动里面实现的,也就没有用到binfs文件格式。如果这一步成功的话,也就完成的一大半了。剩下的就只是

2012-12-22 13:14:44 605

转载 让S3c2410里拥有HIVE注册表的 全部步骤

首先,我是花了几天的时间才搞好的,当然我也在网上找了很多资料,可是网上朋友说可行的方法,我试来试去就是不行,这我也不清楚为什么,一开始有说用到BINFS格式的[指NandFlash分区格式],后来又看到直接用FATFS格式而不需要BINFS的方法, 还是FATFS的方法简单点,所以选了这个方法。。虽然BINFS的方法我还没试用过,不知道行不行,但FATFS的方法是成功了。。1 忙了几天,怎么改

2012-12-22 13:13:45 496

转载 MULTI BIN的wince 5.0,smdk2440下的实现

原本早就要发出来了,但是看到king_sundi网友已经发过一个帖子了,所以犹豫了没有发,相对而言,我这个总结更具有实用性,基本上照着这个步骤来就能成功,我给我几个朋友试过了,他们一开始对这个基本不懂都能搞定。XIP实现总结.step1:修改config.bib文件.内核子集XIPKERNEL的SIZE根据你自己编译出来的XIPKERNEL.BIN实际大小调整,XIPKERNEL BA

2012-12-22 13:12:07 592

转载 WinCE中的RAM-Based Registry与HIVE-Based Registry

WinCE支持两种类型注册表:RAM-BasedHIVE-Based,默认使RAM-Based注册表。 1.RAM-Based注册表   RAM-Based注册表所有注册表数据存储象存储(object store),就存放RAM里面。般有电池备份RAM系统面,就说,当系统掉电以,自动切换成电池供电,此时RAM还有供电,所以面数据不丢失,这样采RAM-Based注册表非常有效。  R

2012-12-22 11:47:10 669

转载 Hive-Based Registry使用

对于Hive干什么用这里就不多介绍了,根据文档的介绍,Hive形式的注册表分为:Boot hive,System hv和User hive三种。Boot hive就是指那部分在Boot过程中需要使用到的注册表信息,这部分是实在没办法放在System hive中了,所以就把它们单独放在Boot hive中了。System hive是不用放在Boot中的和系统相关的注册表信息,而User hive

2012-12-22 11:33:17 1156

转载 C/C++中“空语句”的说明

最近我的同事和一些网友都说C/C++中“空语句”(就是单独一个分号的语句)具有延时的作用,可以用来写延时代码。其实这是一种错误的理解。 首先,有人认为空语句经编译后,生成汇编代码是“NOP”指令,NOP指令是空操作指令,执行一个指令周期时间,所以认为C/C++中的“空语句”还有延时的功能,其实这是错误的,“空语句”是不会生成任何有效的指令代码的,是不具有延时做用的。 有人说如下代码

2012-12-22 11:11:10 898

转载 浅聊在美找工作以及工作之后的感受

此贴并不是炫耀我在美帝工作如何如何,而是仅仅想把这几个月的生活记录下来。在国内读完大学,不想找工作,又不想读国内的研究生,所以跟随大流,来到美帝读master。 在一个算不错的学校读完之后,来到加州硅谷找工作。6月来到硅谷,开始投简历,准备面试的知识,一直到9月才找到。 期间简历大概投了有200个,收到面试电话大概在40~50之间,收到onsite面试大概在10个左右。不知

2012-12-22 10:14:42 826

转载 专家观点:你必须了解的嵌入式Linux特性

如今,Linux正广泛应用于各种嵌入式设备的开发中,如数字电视、视讯转换盒、DVR播放器、xDSL/有线/PON调制解调器、家用路由器和网络网关。它尤其适合具有先进网络功能、大量设备驱动程序的数字家庭和家庭网络。除了嵌入式设备,Linux还支持企业级设备,如服务器和路由器。此外,Linux在行动设备中也获得了青睐。市调机构In-Stat的报告显示,到2012年,中国基于行动Linux的智能

2012-12-22 10:11:35 669

转载 中国的程序员为什么这么辛苦?

做IT已经十年了。十年了,苦吃了不少,经验也有些。现在却越来越讨厌做开发了,越来越不想做IT。大学时曾经的梦想早已灰飞烟灭。现在回头想想,真是入错了行。恰同学少年那会儿,正是IT在中国兴起不久,满怀激情进了家软件公司。从技术支持做到了PM,三年时间。却一心想做开发,一心认为写代码才有创造性,才会有出路,于明转做程序员。从Delphi,Java,perl,python,erlang...到C++孜孜

2012-12-22 10:06:30 789

转载 可以让你少奋斗十年的工作经验

这个文章我看后,感触很深,写的很实际,也是我们很值得学习的,但是关键是我们要做到,很不容易啊,如果能都做到,那你就是一个牛人,我现在是没有都做到,但是我想努力去做到。  转一下,和大家分享。 第一:不要认为停留在心灵的舒适区域内是可以原谅的。      每个人都有一个舒适区域,在这个区域内是很自我的,不愿意被打 扰,不愿意被push,不愿意和陌生的面孔交谈,不愿意被人指责,不愿意按

2012-12-22 09:56:52 654

转载 C++结构体实例和类实例的初始化

结构体实例(包括共用体)和类实例的初始化方法完全相同,二者都可以应用于继承层次中。不同点是结构体(包括共用体)默认成员为public,而类默认成员是private型的。 一、若类和结构体所有数据成员均为public型,可采取如下带花括号形式进行初始化。    注意:①        不论值的个数多少,都必须使用花括号定界②        未指定值的数据成员编译器会自动初始化为默

2012-12-22 09:04:07 504

转载 虚析构函数解析

Ø       C++ 指出:当一个派生类对象通过使用一个基类指针删除,而这个基类有一个非虚的析构函数,则结果是未定义的。运行时比较有代表性的后果是对象的派生部分不会被销毁。如果一个类要被另外一个类继承,而且用其指针指向其子类对象时,如A* d = new B();(假定A是基类,B是从A继承而来的派生类),那么其(A类)析构函数必须是虚的,否则在delete d时,B类的析构函数将不会被

2012-12-22 09:03:18 413

转载 关于C++ const 的全面总结

C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用   如下表所示:No.作用说明参考代码

2012-12-22 09:02:36 407

转载 C++中const用法总结

1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变。例如:const int nV

2012-12-22 09:01:31 362

转载 C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别

一般我们进行成员变量初始化用两种方法 第一种是通过在构造函数内赋值 class Point{public:Point(){ _x = 0; _y = 0;};Point( int x, int y ){ _x = 0; _y = 0; }private:int _x, _y;}; 第二种是使用初始化列表 class Point{p

2012-12-22 08:59:05 539

ucGUI学习笔记 -- 仿真器

ucGUI学习笔记 -- 仿真器 原创

2012-06-14

空空如也

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

TA关注的人

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