« | July 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | |
| 公告 |
☆★☆★☆★☆★☆★☆ 生活的点点记录,以及一些体会...........
喜欢是淡淡的爱,爱是深深的喜欢.
时间会见证一切.......................
欢迎大家指出错误,共同进步..........
期待中..............................
☆★☆★☆★☆★☆★☆ |
Blog信息 |
blog名称: 日志总数:162 评论数量:312 留言数量:0 访问次数:940898 建立时间:2005年5月17日 |

| |
[wince study]WinCE 5.0 的3 種 USB Function Driver 文章收藏
oceanblue 发表于 2008/5/12 8:50:44 |
Win CE 5.0 下面 USB Client Function Driver 目前有提供
Serial Profile (Emulator a Serial Port, @CESYSGEN_MODULE_SERIALUSBFN, set SYSGEN_USBFN_SERIAL)
RNDIS Profile (Emulator a Network Card, @CESYSGEN CE_MODULE_RNDISFN, set SYSGEN_USBFN_ETHERNET=1)
Mass Storage (Emulator a Disk Device, , @CESYSGEN CE_MODULE_USBMSFN, set SYSGEN |
|
[wince study]S3c2440A平台HIVE注册表+binfs的实现 (转) 文章收藏
oceanblue 发表于 2008/5/9 15:59:01 |
今天总结一些实现的过程和原理。 我的例子是基于samsung S3C2440A+samsung ONENAND+WinCE5.0的,开发平台是platform builder 5.0,首先我们基于RAM register的image已经可以正常跑起来了,Flash除了放置image外其他的空间为用户提供文件系统,这部分的驱动程序是用三星的PocetStoreII15。
先来回味一下底层的东东,我们的Image主要由两部分组成:XIPKERNEL.bin和NK.bin,XIPKERNEL.bin中的东西就是那些WinCE中比较核心的又需要经常加载的一些程序和DLL文件,这些文件会被Boot Loader在刚启动的时候拷贝到RAM中去,这样就可以在RAM中XIP(Excute in place)了。在NK.bin中的基本上是需要但不至于要常驻内存的一些程序和DLL了,比如我们BuildIn下的大部分驱动,比如微软的IE,mediaplayer等应用程序,甚至连设备管理器device.exe也可以放到这里面,这些文件只有在需要的时候才被复制到内存 |
|
[wince study]WINCE驱动程序快速入门及经验点滴(转) 文章收藏
oceanblue 发表于 2008/5/8 13:30:52 |
在CE中,最简单的驱动程序莫过于一个内置(Built-in)设备的流接口驱动。对于一个不支持热拔插的设备,最方便的做法就是为其实现一个内置的流接口驱动。这种驱动只需要做以下工作:
1.实现一个动态库,其中实现以下函数: DWORD xxx_Init( LPCTSTR pContext, LPCVOID lpvBusContext); DWORD xxx_Deinit( DWORD hDeviceContext ); DWORD xxx_Open(DWORD hDeviceContext,DWORD dwAccess, DWORD &nbs |
|
[美文欣赏]C语言笔试题 文章收藏
oceanblue 发表于 2008/5/8 13:02:26 |
1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 4). 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。
2. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
#define MIN(A,B) ((A) &l |
|
[Arm_Embeded]RTC 文章收藏
oceanblue 发表于 2008/5/8 12:41:21 |
WinCE 系统的时钟日历是由RTC来提供的,要想实现2410的RTC(关机时RTC靠电池来继续工作,开机后能从RTC寄存器读取正确的时间),需要: 1. 保证提供给RTC的3V电池有电; 2. 更改2410的BSP,具体为: 在文件Platform\SMDK2410\kernel\hal\oemioctl.c中将 case IOCTL_HAL_INIT_RTC: // The kernel has detected a cold-boot. if |
|
[Arm_Embeded]RTC 文章收藏
oceanblue 发表于 2008/5/8 12:41:21 |
WinCE 系统的时钟日历是由RTC来提供的,要想实现2410的RTC(关机时RTC靠电池来继续工作,开机后能从RTC寄存器读取正确的时间),需要: 1. 保证提供给RTC的3V电池有电; 2. 更改2410的BSP,具体为: 在文件Platform\SMDK2410\kernel\hal\oemioctl.c中将 case IOCTL_HAL_INIT_RTC: // The kernel has detected a cold-boot. if |
|
[wince study]Exception Process in WinCE & ARM(转 文章收藏
oceanblue 发表于 2008/5/8 12:39:21 |
今天INTEL的Application Engineer特地纠正了“中断向量表”的说法,应该叫Exception Vector.按我理解,应该只有IRQ和FIQ算做interrupt吧,像reset和几个abort叫做exception的确更合适些。
一般而言, 硬件的异常产生后,CPU将跳转到0x00000000地址访问中断向量表(normal exception vectors), 但ARM920T / ARM9 / ARM10 系列的CPU支持把中断向量表放到高地址0xFFFF0000(high exception vectors). 该跳转地址的决定因素为协处理器的CP15:BI13. 即CP15:BIT13 = 0时, 跳转到低地址; CP15:BIT13 = 1时, 跳转到高地 |
|
[Arm_Embeded]在WinCE5.0和WinCE6.0下,编译选项介绍 文章收藏
oceanblue 发表于 2008/5/8 11:18:00 |
在WinCE5.0中,在"Build OS”菜单中,我们会看到不同的编译选项:
"Sysgen","Build and Sysgen"和"Build and Sysgen current BSP"
Sysgen:不用多说,当你在"Catalog"中添加或删除了新的item的时候,就用这个吧。
Build and Sysgen:当你更新了\public目录下的源代码的时候,你就需要用这个了。一般比如在打patch以后,可能就需要进行Build and Sysgen了。
Build and Sysgen current BSP: 当你只改变了你的BSP部分的代码,就可以用这个选项。据说,当你改变了\platform目录下的代码,也可以用这个,具体没有试过。
在WinCE6.0中,在VS2005的"Build"菜单中,有一个“Advanced Build Commands”,其中有很多编译选项:< |
|
|