自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

左手技术 右手写诗

一直在路上…

  • 博客(43)
  • 收藏
  • 关注

转载 断章

断章      ——卞之琳        你站在桥上看风景,        看风景的人在楼上看你。        明月装饰了你的窗子,        你装饰了别人的梦。

2012-09-25 14:41:58 422

转载 Kconfig和Makefile的作用

Kernel内核的源码树目录下一般都会有两个文件:Kconfig和Makefile。分布在各目录下的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置makemenuconfig(或xconfig等)时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成)中。在内核编译时,主Makefile调用这

2012-09-25 12:18:11 627

原创 “请不要在虚拟机中打开”解决方法

1、在虚拟中在运行某些程序是地,可能出现如下问题:2、解决方法    在虚拟机“Suspend”或“Power Off”状态下,找到虚拟机的“.vmx”文件,使用编辑器打开后,在文件后面添加如下语句    isolation.tools.getVersion.disable = "TRUE"    只在文件,重新打开虚拟机即可!

2012-03-22 15:46:04 13815

原创 博客文章目录及链接

文章题目分类级别概要备注do...while(FALSE)的两个妙用C++初级介绍do...while(FALSE)的两个妙用OneNand&Nand&Nor三种Flash的区别WinCE初级介绍三种Flash的

2011-06-09 16:20:00 552

原创 do...while(FALSE)的两个妙用

一、使用do...while(FALSE)消除goto语句。通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当然,退出前先释放资源,我们的代码可能是这样:Sample I:bool Execute(){   // 分配资源   int *p = new int;   bool bOk(true);

2011-06-08 17:36:00 730

原创 OneNand&Nand&Nor三种Flash的区别

OneNand&Nand&Nor三种Flash的区别<br />NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在Flash 闪存内运行,不必再把代码读到系统RAM中。 NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。 <br />NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于Flash的管理和需要特殊的系统接口。 <br />OneNand是针对

2011-04-21 18:07:00 967

原创 执行延时检测方式

#if TRUE          RETAILMSG(TRUE, (TEXT("******** +delay 2s/r/n")));           for (int nCount = 0; nCount            ;           RETAILMSG(TRUE, (TEXT("******** -delay 2s/r/n")));

2011-03-24 00:30:00 512

原创 RETAILMSG和DEBUGMSG的区别

<br />DEBUGMSG只在DEBUG版中有效,RELEASE版中它被定义成了NULL<br />RETAILMSG在DEBUG和RELEASE版中都可以输出,而且DEBUGMSG可以在运行时刻用DEBUZONE控制要不要输出信息。<br />在ship build 时,RETAILMSG 和DEBUGMSG都无效

2011-03-24 00:29:00 891

原创 /r/n与/n的区别

<br />/r表示回车,/n表示换行,我们按回车按钮的时候,系统自动产生回车和换行两个字符。  <br />回车仅仅是表示完成,把光标回到行首,换行仅仅是换行,不表示完成,也不把光标放到行首。

2011-03-24 00:29:00 1417

原创 因变量定义位置不同有时出现非法错误

1.异常源码样例:<br />{<br />...fun();<br />DWORD dwLSThreadID = 0;<br />}2.异常表现:<br />error C2275: 'DWORD' : illegal use of this type as an expression3.处理方法:<br />{<br />DWORD dwLSThreadID = 0;<br />...fun();<br />}

2011-03-24 00:28:00 809

原创 专业术语解析

1.同步与异步<br />同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。 <br />异步就是你叫我,然后自己去吃饭,我得到消息后可能立即走,也可能等下才去吃饭。<br />在多数情况下,线程之间难免要相互通信、相互协调才能完成任务。比如,当有多个线程共同访问同一个资源时,就必须保证一个线程正读取这个资源数据的时候,其它线程不能够修改它。这就需要线程之间相互通信,了解对方的行为。<br />再有当一个线程要准备执行下一个任务之前,它必须等待另一个线

2011-03-24 00:26:00 639

原创 英文缩写对应

1.A<br />ATLActive Template Library活动模板库2.B<br />BCDBinary-Coded Decimal二进制编码的十进制<br />BIBBinary Image BuilderBIB文件<br />BSPBoard Support Package板级支持包3.C<br />CEDDK WinCE Driver Development KitWinCE驱动程序开发工具<br />COMComponent Object Model件对象模型<br />CSPChip 

2011-03-24 00:25:00 947

原创 WinCE应用程序开发-ing

留空待续…

2011-03-24 00:23:00 500

原创 定制WinCE Shell-ing

<br />留空待续…

2011-03-23 23:20:00 509

原创 WinCE SD驱动分析

1.SD驱动架构<br /><br />如上图所示,WinCE下SD卡驱动协议栈组成 :<br />HOST硬件底层部分 (主控制端驱动)SDHC_XXX.DLL<br />BUS 中间逻辑命令层 (总线驱动)SDBUS.DLL<br />CLIENT上层(客户端驱动)SDMEMORY.DLL(1)主控制端驱动<br />主控制端驱动控制包含主控制器硬件,遵循主控制端驱动接口,它被用于总线驱动通信和设置操作参数。主控制器驱动接口提供一个硬件提取层,在总线和主控制端执行之间。即:SDHC_XXX.DLL是最底

2011-03-23 22:39:00 947

原创 WinCE虚拟串口驱动-ing

<br />留空待续

2011-03-23 18:01:00 553

原创 WinCE电池驱动——使用LM339实现

1.概述<br />WinCE电池驱动属于分层驱动,由MDD层和PDD层组成。驱动示例代码位于%_WINCEROOT%/Public/Common/Oak/Drivers/Battdrvr。其中battdrvr.c是MDD层代码,sbattif.c是PDD层代码。MDD层代码微软已经搭好架构,一般不需要修改,我们要实现的是PDD层的代码。2.MDD层<br />电池驱动对外接口函数没有“BAT_”前缀,因为HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Battery/Flags注册表

2011-03-23 18:01:00 1305

原创 BSP驱动文件结构及配置说明-ing

1.驱动文件结构图<br />(1)XXX.h文件说明<br />文件头说明如下图所示:<br /><br />定义内、外部函数定打印Log开关:<br />#ifndef __XXXXXX_H__ <br />#define __XXXXXX_H__<br /><br />#define public<br />#defineprivatestatic<br /><br />#define OPEN_XXXXXX_LOGFALSE//打Log开关,FALSE/TRUE:关/开<br /><br />//模

2011-03-23 17:02:00 974

原创 BSP工程相关文件介绍

1.pbcxml分析<br />每一个BSP都有一个工程文件,比如MyBSP.pbcxml,里面描述了BSP的信息。下面就来介绍一下BSP的pbcxml文件。<br />文件的大致格式应该是这样的:<br /><CatalogFile …><br /><FileInformation ….><br />….<br /></FileInformation><br /><BSP …><br />…<br /></BSP><br /><Item …><br />…<br /></Item><br /><Item 

2011-03-23 16:58:00 727

原创 CEDDK-ing

<br />留空待续

2011-03-23 16:57:00 462

原创 驱动程序的电源管理-ing

<br />留空待续

2011-03-23 15:38:00 436

原创 流接口设备驱动

<br />在WinCE中,最简单的一个驱动程序莫过于一个内置(Built-in)设备的流接口驱动。对于一个不支持热拔插的设备,最快捷的方法就是为其实现一个内置的流接口的驱动。<br />对于这样一类驱动程序,我们只需要按一种特定的规则实现一个动态库,其中实现对所有的硬件功能的调用,再将这个动态库加入系统中,然后设置相关的注册表项,使得在系统启动时设备管理器能识别并且加载这个设备即可。1.流接口设备驱动的架构<br />流接口驱动借助文件系统调用从设备管理器和应用程序接收命令,驱动封装了所有的信息,这些信息

2011-03-23 15:24:00 945

原创 总线驱动

<br />总线驱动负责决定加载哪一个驱动,以及以什么顺序加载总线上的设备。<br />总结驱动的例子包括:<br />l PCI总线驱动(PCIBus.dll);<br />l PC Card总线驱动;<br />l IEEE 1394总线驱动;<br />l USB总线驱动。1.Bus Agnostic驱动<br />使用Bus Agnostic驱动模型的驱动程序可以在不同的总结上执行,典型情况下,比其他类型的驱动能更容易在不同的硬件平台之间移植。2.PCI总线驱动<br />PCI总线是可自配置的,它

2011-03-23 15:14:00 555

原创 驱动中注册表的作用

<br />注册表主要键的作用<br />[HKEY_LOCAL_MACHINE/Drivers/Active] :所有已经加载的驱动信息都放在该键下;<br />[HKEY_LOCAL_MACHINE/Drivers/Active] :所有要Device.exe加载的驱动都放在该键下面;<br />驱动主要键的作用<br />DLL:指明了该驱动使用的动态库;<br />Prefix:表明驱动的前缀,前缀通常是3个大写的英文字母,通过前缀就知道导出的函数,例如XXX.Init();<br />Index:

2011-03-23 15:07:00 791

原创 驱动程序的加载机制

<br />设备驱动程序的加载过程如下图所示:<br /><br />1. 当在OAL中的OEMInit运行时,需要启动以太网调试、串口调试等调试服务;<br />2. OAL可能需要配置和列举一个总线,如PCI总线,以便操作一个用于调试的设备;<br />3. OAL负责将这个资源信息放到一个注册表键,并使驱动程序可访问它。然后,Device.exe被加载和启动,它加载资源管理器以从注册表读取一个可用的资源列表。<br />4. Device.exe从[HKEY_LOCAL_MACHINE/Drivers

2011-03-23 15:06:00 570

原创 驱动程序的资源

<br />驱动程序资源管理是编写设备驱动程序的一个核心,它由以下几部分组成:<br />l 资源管理器;<br />l 中断处理和IST模型;<br />l 设备驱动程序内存管理。1.资源管理器<br />系统的资源(包括IRQ和I/O空间)是由系统表配置和定义的。2.中断处理和IST模型<br />WinCE提供了一个有效的中断处理机制,它把对中断的处理分为两部分:中断服务例程(ISR)和中断服务线程(IST)。ISR通常要求短小精悍,效率要求很严格。它只决定该怎样处理这个中断,一般情况下不应该做太多的

2011-03-23 14:15:00 572

原创 设备管理器

1.Device.exe简介<br />在WinCE中,系统进程Device.exe负责对几乎所有的外设驱动程序进行管理,它也被称为设备管理器。<br />严格来说,设备管理器不是WinCE操作系统内核的一部分,仅仅是一个用户态下的普通进程,而且没有设备管理器WinCE也一样可以启动、运行。但设备管理器在WinCE中的作用却非常重要。<br />在WinCE系统启动时,设备管理器会随着启动,并且在整个系统运行时都会持续运行。在Common.reg中可以看到device.exe的启动:<br />……<br

2011-03-23 14:05:00 1070

原创 驱动程序的分类

1.内建的驱动程序与可安装的驱动程序<br />按照驱动程序导出的接口不同,驱动程序可以分为本地设备驱动程序和流接口驱动程序。<br />内建驱动程序(Built-in Driver)有时也称为本地驱动程序(Native Device Driver),它们被静态地链接到GWES。<br />可安装的驱动程序(Installable Driver)也称为流设备驱动程序(Streams Device Driver),它们是由设备管理器(device.exe)动态加载的用户模式的DLL。<br />只有极少数驱动

2011-03-23 14:03:00 1333

原创 WinCE的驱动程序

<br />操作硬件是驱动开发的首要任务。<br />在WinCE下所有的驱动都以用户态的DLL文件形式存在。WinCE驱动程序用到的方法及工具与编写其他任何一个普通的DLL没有什么区别。与所有Win32 DLL一样,Windows CE驱动程序DLL中的代码要得以运行,必须被一些进程动态加载到地址空间。<br />优点:<br />Ø 灵活性,运行时动态加载,这样可以轻松实现外设的即插即用。<br />Ø 稳定性,因为放在内核态虽然是程序运行的更快,但在内核态的驱动如果出现崩溃会导致系统崩溃,但处于用户态

2011-03-23 14:00:00 505

原创 WinCE的OAL-ing

<br />留空待完善

2011-03-23 13:50:00 442

原创 WinCE的Boot Loader

(一)Boot Loader的概念<br />Boot Loader是用来管理目标设备启动过程的目标特定的程序,其功能有如下:<br />1.初始化目标设备硬件(建立系统的内存空间映射图,将系统的软硬件带到一个已知的状态);<br />2.允许将WinCE操作系统运行时映像从开发工作站下载到WinCE目标设备的RAM或者再将它写入到Flash;<br />3.跳转到操作系统的起始点去启动操作系统。(二)Boot Loader两种不同的操作模式1.启动加载模式<br />属于正常工作模式,Boot Loade

2011-03-23 13:32:00 609

原创 WinCE操作系统映像调试-ing

<br />留空

2011-03-23 13:31:00 504

原创 映像配置文件-ing

1.BIB文件<br />2.REG文件<br />3.DAT文件<br />4.DB文件<br /><br /><br />

2011-03-23 13:30:00 419

原创 命令行工具

1.WinCE 6.0 NK编译选项介绍<br />在WinCE6.0中,在VS2005的"Build"菜单中,有一个“Advanced Build Commands”,其中有很多编译选项<br />"Sysgen":相当于执行命令"blddemo -q”,一般第一次编译或者是改变了"Catalog"中的item的时候,就用这个了。<br />"Clean Sysgen":相当于执行命令"blddemo clean -q",当修改了 %_WINCEROOT%/PUBLIC/CEBASE/OAK/MISC/C

2011-03-23 13:29:00 427

原创 WinCE自带的远程工具及简介

1.viewbin<br />viewbin是微软提供的一个命令行工具,在WinCE6.0中,可以在"/WINCE600/PUBLIC/COMMON/OAK/BIN/I386"找到它。viewbin工具可以用来查看NK.bin文件。它可以从NK.bin中获得这个NK image的大小,运行的起始地址等。还能查看到里面所包含的模块,应用程序及相关的信息。<br />viewbin的使用格式如下:<br />viewbin [parameter] [filename]<br />在VS2005中“”命令列表下,

2011-03-23 11:02:00 618

原创 PB 6.0环境的搭建与使用

1.安装程序的准备<br />如下图所示为安装开发环境所需的所有软件:<br />2.安装流程<br />参考向导文档Windows Embedded CE 6.0 R3 Install Guide.htm,安装顺序如下:<br />Step<br />Name<br />Setup File[相对安装根目录]<br />Remark<br />1<br />VS2005<br />VS2005 Team Suite_VSS_MSDN_VISIO.iso<br />[/vs/autorun.exe]<br

2011-03-23 10:48:00 1675

原创 系统调度-ing

1.模块2.进程3.线程4.纤程5.同步对象 

2011-03-23 10:34:00 457

原创 内存管理-ing

1.ROM和RAM2.虚拟内存模型3.虚拟地址映射4.用户地址空间 

2011-03-23 10:33:00 372

原创 文件系统

<br />        文件系统是一个实现了数据的存储、组织、处理和获取等操作的抽象数据类型。一般分为磁盘文件系统,网络文件系统和特定功能的文件系统。<br />磁盘文件系统主要包括FAT(FAT12、FAT16、FAT32),NTFS、HFS、ext2、ext3,现在ext4也出来了。<br />FLASH文件系统是针对FLASH存储器设计的文件系统。随着移动设备的不断普及,和FLASH存储空间的不断增长,FLASH文件系统也流行起来。在嵌入式系统中,绝大多数都使用FLASH文件系统。<br />数据

2011-03-23 10:30:00 662

原创 WinCE系统架构

<br />WinCE系统架构图如下所示:<br /><br />嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。1.硬件层<br />硬件层是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。<br />硬件层比较适合于,电子、通信、自动化、机电一体

2011-03-23 10:08:00 1095

空空如也

空空如也

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

TA关注的人

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