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 阅读(149) 评论(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 阅读(271) 评论(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 阅读(268) 评论(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 阅读(435) 评论(0) 推荐(0) 编辑

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

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

posted @ 2010-07-06 18:49 microsun 阅读(345) 评论(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 阅读(1237) 评论(0) 推荐(1) 编辑

WINCE知识点滴

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

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

WINCE的内存配置

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

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

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

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

posted @ 2010-07-06 18:45 microsun 阅读(255) 评论(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 阅读(379) 评论(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 阅读(270) 评论(0) 推荐(0) 编辑

开发DMA驱动

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

posted @ 2010-07-06 18:44 microsun 阅读(1635) 评论(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 阅读(667) 评论(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 阅读(310) 评论(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 阅读(1670) 评论(0) 推荐(0) 编辑

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

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

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

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

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

posted @ 2010-07-06 18:39 microsun 阅读(752) 评论(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 阅读(193) 评论(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 阅读(206) 评论(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 阅读(207) 评论(0) 推荐(0) 编辑

导航