Do everything if needed

Only to note everything I meet.

2010年7月6日 #

Blog转移

摘要: 原来在 wincelblog.blogspot.com 中维护了一个Blog,但突然有一天发现Blogspot访问不了了,直到今年Google要撤出中国,才知道其中原由。后来转至csdn http://blog.csdn.net/Vichard,但CSDN BLOG太多,最近又将她安置与此处,感谢关注她的每一位朋友。 阅读全文

posted @ 2010-07-06 18:59 microsun 阅读(156) 评论(0) 推荐(0)

command lines for some WINCE CETK test case

摘要: 1 .command line OAL Timer test cases-backwardsRunTime-driftRunTime-wcRunTime-reentranceRunTime-idleRunTimeOf couse, those lines should be in -c "***"2. to set the buffer size in OAL CACHE tests.-c "ar... 阅读全文

posted @ 2010-07-06 18:52 microsun 阅读(282) 评论(0) 推荐(0)

Some bugs in CE6

摘要: There're bugs in almost all big system, I only hope that Microsoft could made more testing before relesing a product.1.Bugs in STDIO. Phenomena:Console over serial can't be used.Reason: There's a erro... 阅读全文

posted @ 2010-07-06 18:51 microsun 阅读(280) 评论(0) 推荐(0)

关于WINCE的几个疑惑

摘要: 做为一各WINCE程序员,经历了WINCE从2.12直至今天6.0的变化,感觉WINCE版本起来越高,功能越来越强,可是不知为什么有些地方越来越烂,现列举以下几个例子,大家伙评论评论.1.WINCE6.0中,竟然不支持老些的CD/DVD机,微软给了四款他们声称支持的DVD型号,可是我们在CEPC上测试时,一台也用不了,相反在我们的ARM平台上倒有两台能用.不知道WINCE为什么会不兼容老的硬件,而... 阅读全文

posted @ 2010-07-06 18:50 microsun 阅读(448) 评论(0) 推荐(0)

ARM开发过程中最最需要注意的问题

摘要: 平时大家接触最多的可能是X86平台,在这种系统上写程序几乎不需要考虑太多问题,但ARM上就不一样了,最常见也最容易被忽略的问题可能就是字节的对齐,即使像我这样有六七年程序开发经验的才手也时常难于提防,最近就有一个BUG,花了一天时间最终发现是对齐引发的,在此与大家分享,但愿大家能够注意到。  我在EBOOT中读取存在HARD DISK上的nk.bin文件,从而从HARD DISK上LOAD WIN... 阅读全文

posted @ 2010-07-06 18:49 microsun 阅读(357) 评论(0) 推荐(0)

磁盘分区详解

摘要: 众所周知,磁盘的分区分为两种:主分区与逻辑分区,其中逻辑分区是在扩展分区中创建的。主分区信息存放在MBR(Main Boot Record) 中,按其字面上的理解即为主引导记录区,位于整个磁盘的0磁道0柱面1扇区,即LBA 0。在总共512字节的主引导扇区中,MBR只占用了其中的446个字节(偏移0—偏移1BD),另外的64个字节(1BE---1FD)交给了DPT(Disk Parti... 阅读全文

posted @ 2010-07-06 18:48 microsun 阅读(1320) 评论(0) 推荐(1)

WINCE知识点滴

摘要: 1.CE下同名设备不能大于10CE5.0中已经没有这个问题了,以前的版本可以这样做:只给上层输出一个设备,然后用一个IOCTL去打开一个个的物理设备这样就可以做到不受任何限制了2.MDD与PDD一个驱动程序通常会被分成硬件相关(PDD)与硬件无关(MDD)层两部分。当然,这种分层不是必须的,只是采用这种分层以后可以少写很多代码,因为微软提供了很多驱动程序的MDD。即使CE中没有我们所写的驱动程序的... 阅读全文

posted @ 2010-07-06 18:48 microsun 阅读(224) 评论(0) 推荐(0)

WINCE的内存配置

摘要: WINCE的内存(包括SDRAM及FLASH)的配置包含两个方面:源代码(包括C和汇编)中的定义,及系统配置文件CONFIG.BIB中的定义。源代码中需要定义内存的物理及虚拟地址,大小,并初始化名为OEMAddressTable的结构数组,以告知系统物理地址与虚拟地址的对应关系,系统根据其设置生成MMU页表。而CONFIG.BIB中一般会将内存定义成不同的段,各段用作不同的用途。CONFIG.BI... 阅读全文

posted @ 2010-07-06 18:47 microsun 阅读(454) 评论(0) 推荐(0)

CE驱动开发入门之中断处理

摘要: 驱动程序开发过程中对中断的处理是很重要的一部分,直接关系程序的运行结果与效率,所以需要对其给予足够的重视. 中断处理包含两个方面,与CE系统相关的部分及与硬件相关的部分. CE系统特定的处理流程(与其它系统有所区别的,或者说这部分代码在其它系统上是无法运行的)一般为: 1.用CreateEvent创建一个自动事件(即不需要使用ResetEvent去重置事件. 2.用InterruptInitial... 阅读全文

posted @ 2010-07-06 18:45 microsun 阅读(277) 评论(0) 推荐(0)

CE BSP开发入门之重要的配置文件

摘要: BSP中有一些很重要的文件,我们在开发过程中必须要给予足够的重视。 1 mybsp.bat,位于BSP的根目录中,用于定义一些全局的环境变量,比如定义某个驱动的环境变量,从而使生成的系统支持此驱动。 2 source.cmn,位于BSP的根目录中,主要用于定义一些BSP及DRIVER中会用到的预定义及环境变量。 一般这个文件有以下作用: 1)定义INCLUDES,这样,BSP中的其它目录中就不用特... 阅读全文

posted @ 2010-07-06 18:45 microsun 阅读(410) 评论(0) 推荐(0)

开发DMA驱动

摘要: 使用DMA的好处就是它不需要CPU的干预而直接服务外设,这样CPU就可以去处理别的事务,从而提高系统的效率,对于慢速设备,如UART,其作用只是降低CPU的使用率,但对于高速设备,如硬盘,它不只是降低CPU的使用率,而且能大大提高硬件设备的吞吐量。因为对于这种设备,CPU直接供应数据的速度太低。 因CPU只能一个总线周期最多存取一次总线,而且对于ARM,它不能把内存中A地址的值直接搬到B地址。它只... 阅读全文

posted @ 2010-07-06 18:44 microsun 阅读(1654) 评论(0) 推荐(0)

书写高效的C代码

摘要: 驱动程序是系统很重要的部件,代码效率直接影响着系统的效率,因而书写高效的代码至关重要.1.代码中量不要使用位操作的结构体,而直接使用位操作,我写了如下的测试代码:typedef union Test_Reg{UINT32 value;struct {unsigned a : 5;unsigned reserved1 : 3;unsigned b : 4;unsigned reserved2 : 4... 阅读全文

posted @ 2010-07-06 18:44 microsun 阅读(286) 评论(0) 推荐(0)

SOURES文件详解

摘要: SOURCES文件是WINCE底层开发中最重要的文件之一,主要的配置项如下:TARGETNAME,定义模块名称.TARGETTYPE,模块的种类,可以是DYNLINK, LIBRARY,EXE.如果TARGETTYPE是DLL,则可以定义DLLENTRY,将Dll入口定义成别的不是DLLMain的函数,如果DLL的入口是DllMain,则不需要别的定义。如果TARGETTYPE是EXE,则可以定义... 阅读全文

posted @ 2010-07-06 18:42 microsun 阅读(345) 评论(0) 推荐(0)

WINCE下USBFN驱动程序的一些概念

摘要: USBFN,即USB客户端驱动,用来将一个WINCE设备模拟成一定的USB设备,让主机端(如PC)访问。目前WINCE提供的USB客户端有存储设备,串口设备,及RNDIS网络接口设备。存储设备用来将WINCE设备上的存储空间,例如FLASH,当作一块存储介质给主机访问,即将WINCE设备模拟成一个U盘。串口设备将设备与主机的USB连线模拟成串口,WINCE和主机端都认为它们之前连接上了一根串口线,... 阅读全文

posted @ 2010-07-06 18:42 microsun 阅读(701) 评论(0) 推荐(0)

开发串口驱动程序

摘要: 串口驱动程序的样例在public\common\oak\drivers\serial下,其中COM_MDD2是MDD部分, SERCARD是PC卡MODEM设备的驱动.ISR16550是16550的ISR代码.SERPDDCM,是PDD的公用部分,OO16550是16550的PDD,一般我们可以以这个代码为基础根据需要开发我们自己的代码.可以参考OO16550中的代码,实现其中各个函数即可.串口在... 阅读全文

posted @ 2010-07-06 18:40 microsun 阅读(1738) 评论(0) 推荐(0)

WINCE键盘驱动程序开发的注意事项

摘要: WINCE中标准的键盘驱动程序接口可以参考PS2键盘的驱动程序,但那个接口比较复杂,对于了解流接口的人来说,实现一个流接口的驱动程序应该是一个更好的选择.我们只需要实现一个流接口驱动程序,发生中断以后读到键盘的扫描码,将其用MapVirtualKey转化成虚键,再调用keybd_event函数将些虚键发送出去即可。只是我们需要注意记录CTRL,ALT等特殊键的状态。注意:1,某些键的扫描码有两个值... 阅读全文

posted @ 2010-07-06 18:39 microsun 阅读(763) 评论(0) 推荐(0)

驱动开发过程中的内存访问

摘要: 驱动开发过程中可能遇到以下几种与内在访问相关的情况: 1.CPU访问设备寄存器:在ARM中可以直接将设备的寄存器映射到ARM的存储空间中,我们需要使用几个函数将硬件寄存器地址映射到系统空间:如果已知硬件的虚拟地址,可以使用VirtualAlloc,VirtualCopy,如果已知硬件的物理地址,需要使用MmMapIoSpace映射.2.CPU与DMA或其它硬件交换数据。DMA需要使用物理地址,因为... 阅读全文

posted @ 2010-07-06 18:39 microsun 阅读(394) 评论(0) 推荐(0)

useful information of developing driver

摘要: 1. in CE5.0 and later, DDK_GetWindowInfo can't be called in the flash driver if flash driver is loaded in system start phase 1.if it's called, the system crashed in CE5.0 due to a data abort, it can't... 阅读全文

posted @ 2010-07-06 18:38 microsun 阅读(199) 评论(0) 推荐(0)

Set external storage device as root directory

摘要: To set a external storage device as root directory, just set registry as following:[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\MSFlash]"DriverPath"="Drivers\\BuiltIn\\NORFlash""LoadFlags"=dword... 阅读全文

posted @ 2010-07-06 18:37 microsun 阅读(218) 评论(0) 推荐(0)

CETK serial test issues and IRDA settings

摘要: 1.Serial communicaion test can't run, it's because we need full modem COM port to run the test.2. command line with run serial communication test case with pserial.dll Option -p Followed by the Port n... 阅读全文

posted @ 2010-07-06 18:36 microsun 阅读(219) 评论(0) 推荐(0)

HIVE Registry

摘要: HIVE registry is useful and easy to use feature, to enable it, we need first add the HIVE registry feature from CATALOGinto the OSDesign file. then add registry as following listed.The following is th... 阅读全文

posted @ 2010-07-06 18:35 microsun 阅读(484) 评论(0) 推荐(0)

WINCE6.0 CETK BUG List(CETK,RTC_Real-Time_Functions tests)

摘要: When run CETK OAL Timer ->RTC_Real-Time_Functions tests.The test sets 12-31-2005 23:59:57 first and then waits 5 seconds to get a time:1-1-2006 0:0:2, but the time is set to 12-31-2005 22:59:57 by ... 阅读全文

posted @ 2010-07-06 18:35 microsun 阅读(271) 评论(0) 推荐(0)

WINCE中的一些不常用的功能

摘要: WINCE是一个面向高端市场的OS,但它同时也具备一些低端产品所需要的功能,只是大多数人用不着,在此我就列举一些,但愿对大伙能有用,我自己也做个记录,以便日后查用.1.Console over serial.这个功能不是LINUX的专例,WINCE一样支持.只需要加上Command Processor,再设置如下注册表即可:[HKEY_LOCAL_MACHINE\Drivers\Console]"... 阅读全文

posted @ 2010-07-06 18:31 microsun 阅读(260) 评论(0) 推荐(0)

Call KernelIoControl in user space in WINCE6.0

摘要: WINCE6.0 is very different with the old versions. It more likes a desktop OS.Drivers are running in kernel mode, programs run in user mode.And many functions maybe just only be used in driversno longe... 阅读全文

posted @ 2010-07-06 18:30 microsun 阅读(387) 评论(0) 推荐(0)

Funny things in CE6

摘要: A. Microsoft is there as the biggest software manufacture in the world,their software management is also well known, but some software components are conflicting. Following is some samples.1. Followin... 阅读全文

posted @ 2010-07-06 18:29 microsun 阅读(183) 评论(0) 推荐(0)

WINCE中如何快速定位问题

摘要: 跟踪一个BUG的过程中,发现一个BUG的真正原因有时甚至比找出问题的解决方法更为重要,更麻烦.WINCE是一个很庞杂的系统,很多问题一开始根本无从下手,而一旦找到问题的本质,BUG也就迎刃而解了.首先,我们需要对WINCE系统各个模块的功能,相互关系有一个基本的认识.例如,存储系统包括块设备的驱动程序,文件系统及分区管理模块.块设备驱动程序只负责读取/写入数据,对数据的内容一概不闻不问,在这个意义... 阅读全文

posted @ 2010-07-06 18:28 microsun 阅读(585) 评论(0) 推荐(0)

Mobile 不能开机的可能情况

摘要: Mobile系统与CE的一个较大不同是通常Mobile的IMAGE较大,为了节约内存空间,一般会将IMAGE放到NAND或者NOR FLASH上,BOOTLOAER只会将很小一部分(通常只有2M)加载到RAM中运行,其它部分仍然在FLASH设备上,根据需要系统会通过IMGFS文件系统将需要的模块加载到RAM中运行,这种行为更像XP。所以,Mobile不能开机的原因比CE又多了几种:1,进入OS后不... 阅读全文

posted @ 2010-07-06 18:18 microsun 阅读(571) 评论(0) 推荐(0)

导航