
Wince Kernel
文章平均质量分 90
gooogleman
学海无涯,上下求索。
展开
-
为提高实时性能,设计和优化 Microsoft Windows CE .NET ——转载
为提高实时性能,设计和优化 Microsoft Windows CE .NET 发布日期 : 7/16/2004 | 更新日期 : 7/16/2004Mike ThomsonJason BrowneMicrosoft Corporation适用于:Microsoft Windows CE .NET 和更高版本摘要:本文从技术角度详细描述了为了增强实时性能特征转载 2008-11-26 16:41:00 · 1878 阅读 · 0 评论 -
如何实现2440软件重启/software reset(作者:wogoyixikexie@gliet)
上周,把4.2下的BSP 的串口驱动(包括16C552的并口转换成串口的驱动)移植到5.0BSP下,经过一番周折,已经把所有异常排除了,但是用到外部中断2(EINT2)的注册表加载的时候导致系统重启。后来发现这个EINT2是系统默认做软件重启/software reset的中断的。找了一小时,把一些中断相关的东西改变一些了,但是还是照样加载重启。刚才无意中想到了一个函数原创 2009-02-23 09:01:00 · 1714 阅读 · 0 评论 -
Windows CE 休眠唤醒全面解析(基于2440平台)(3) ——转载
Windows CE 休眠唤醒全面解析(基于2440平台)(3) 那么当CPU 唤醒之后,它运行的第一段程序是什么呢?这点很重要,因为唤醒=Power Reset,那么Reset CPU之后,运行第一段程序自然就是Bootloader了,那么我们看看,Bootloader里是怎么处理的。 这里我以常用的三星提供的Nboot为例。Bootloader的入口点是 E转载 2009-02-23 10:22:00 · 2101 阅读 · 0 评论 -
Windows CE 休眠唤醒全面解析(基于2440平台) ——转载
Windows CE 休眠唤醒全面解析(基于2440平台)(1) Windows CE 休眠唤醒全面解析(基于2440平台) Windows CE 作为一个广泛应用于移动便携设备上的操作系统,提供了完善的电源管理的功能。其中,休眠唤醒便是一个重要的功能。那么,休眠唤醒是什么原理呢,这首先要从硬件说起。这里呢,我就拿用自己得最熟练的三星平台的2440 CPU为例来和大家探讨一下。首先看2转载 2009-02-23 10:33:00 · 3489 阅读 · 0 评论 -
SMDK2440A 5.0BSP之eboot流程(作者:wogoyixikexie@gliet)
SMDK2440A 5.0BSP之eboot流程(作者:wogoyixikexie@gliet) 这两天为了搞明白bootloader的binfs分区功能,看了大量代码,觉得有必要把整个eboot流程疏理一下。至于binfs分区以及MBR等相关信息,请看http://topic.youkuaiyun.com/u/20081203/11/6d0f940c-03e1-487b-a922-e08cc9原创 2008-12-12 14:08:00 · 5056 阅读 · 0 评论 -
OEMAddressTable 内存映射表是怎么被wince使用的(作者:wogoyixikexie@gliet)
作者:wogoyixikexie@gliet;------------------------------------------------------------------------------;; File: memory_cfg.inc;; This file is used to define g_oalAddressTable. This tabl原创 2008-12-12 17:11:00 · 2234 阅读 · 0 评论 -
wince在运行的时候是否可以修改CPU频率?
作者:wogoyixikexie@gliet 最近论坛出现了动态改变CPU频率的一个topichttp://topic.youkuaiyun.com/u/20081216/16/e14d9c98-db4c-4b7f-9c97-a5d0c7aa5ef5.html?seed=1144664978 这个意义重大,如果可以实现,那么这个功耗可以降下来。有机会可以试试。-----------原创 2008-12-17 09:02:00 · 2245 阅读 · 2 评论 -
2440 外部串口驱动调试(作者:wogoyixikexie@gliet)
2440 外部串口驱动调试(作者:wogoyixikexie@gliet) 前周,已经把串口MDD移植到了BSP下,自带三串口已经正常,但是外部串口只能发送,不能接收。后来我发现外部串口的中断已经产生,只是2440一直没有反映,我刚开始一直死死的认为这个EINT1初始化是正确的,但是我没有想到这个初始化可能会被别的地方覆盖、修改。毕竟这个BSP不是我们写的。这个东西非常头痛,幸好原创 2009-03-02 08:36:00 · 4576 阅读 · 2 评论 -
内核是如何调用OEMInterruptHandler函数的?
内核是如何调用OEMInterruptHandler函数的? 我在OEMInterruptHandler函数中加入如下打印信息 RETAILMSG(1, (TEXT("OEMInterruptHandler@@Intr/intr.c: irq = %d /r/n"), irq)); 没有想到出现了非常奇怪的结果,就是不停的打印了上面的信息。 OEMInterru原创 2009-03-02 11:17:00 · 2002 阅读 · 0 评论 -
标 题: S3c2440A平台HIVE注册表+binfs的实现——转载
标 题: S3c2440A平台HIVE注册表+binfs的实现类似的帖子还可以参考http://bbs.driverdevelop.com/htm_data/48/0709/106094.html今天总结一些实现的过程和原理。我的例子是基于samsung S3C2440A+samsung ONENAND+WinCE5.0的,开发平台是platform builder 5.0,首先我们基于RAM转载 2008-12-17 15:14:00 · 2354 阅读 · 3 评论 -
如何减小wince内核(nk.bin以及nk.nb0)的大小
一、字体优快云-xu_mercury深圳 说:哎。果然是。以前都是在Setting设置个中文。其实根本不需要。直接加个FONT就好了优快云-xu_mercury深圳 说:系统小了好多wogoyixikexie@gliet 说:在哪里加?优快云-xu_mercury深圳 说:catalog-》core os-》international-》locale speciific support-原创 2009-02-18 09:23:00 · 3454 阅读 · 3 评论 -
WinCE BSP中打印信息的实现介绍——转自:作者:ARM-WinCE(微软MVP)
转自:作者:ARM-WinCE(微软MVP) 不管在WinCE5.0还是在WinCE6.0中,我们在调试驱动或者应用的时候都会用到打印函数。在驱动里面,我们可能会用DEBUGMSG(..),RETAILMSG(..),还有NKDbgPrintfW(..)。在我们使用这些打印函数调试我们的程序之前,我们需要实现串口打印功能。在WinCE的BSP中,如果想调用DEBUGMSG(..)或者R转载 2008-12-09 14:37:00 · 1846 阅读 · 0 评论 -
如何在Windows CE.NET下使用大于256MB内存——转载
如何在Windows CE.NET下使用大于256MB内存实达网络科技有限公司瘦客户研究部 王贤俊 2003年03月21日 点击:1071Windows CE .NET是Windows CE 3.0的后继产品。Windows CE .NET为嵌入式市场从新设计,为快速建立下一代智能移动和小内存占用的设备提供了一个健壮的实时操作系统。Windows CE .NET具备完整的操作系统特性集包和转载 2008-12-08 11:42:00 · 1435 阅读 · 0 评论 -
wince 5.0 .2440 5.0BSP的中断过程(作者:wogoyixikexie@gliet)
wince 5.0 .2440 5.0BSP的中断过程(作者:wogoyixikexie@gliet) 以前在优快云写过一些wince5.0中断的文章,现在重新看看,发现以前的有些理解是错误的,想翻开来改改,可是郁闷的优快云在前台没有返回后台的编辑功能,所以现在重新写一篇纠正一下。 首先描述wince5.0 (2440BSP)的中断流程 注册表等——原创 2009-02-04 16:31:00 · 2805 阅读 · 2 评论 -
S3C2410 && WinCE6.0的中断处理分析 (转载自博客园牛人we-hjb)
S3C2410 && WinCE6.0的中断处理分析 S3C2410的内核是ARM920T,所以,这里先介绍一下ARM920T的异常。ARM920T中有一个当前程序状态寄存器(CPSR),其中BIT6和BIT7分别控制FIQ和IRQ的使能与否。大家经常说的开中断和关中断,就是指的设置这两个BIT。 ARM体系的异常中断如下图所示:转载 2009-02-05 14:29:00 · 3841 阅读 · 0 评论 -
在Wince5.0中实现关机功能 ——转载
在Wince5.0中实现关机功能 wince5.0带的电源管理驱动只实现了“休眠(SUSPEND)”功能,未实现“关机(SHUT_DOWN)”功能。调用函数 SetSystemPowerState()时,无论参数是POWRE_STATE_OFF还是POWRE_STATE_SUSPEND,最终均为 SUSPEND。如果需要关机,还需要其他的办法。 我看过有人专门写了一个PowerKey的驱动,用来实转载 2009-02-05 20:59:00 · 2642 阅读 · 5 评论 -
WinCE CEDDK之Bus操作函数——转载
作者:ARM-WinCE CEDDK提供了访问总线驱动(Bus Driver)的函数,在/CEDDK/DDK_BUS目录下面可以看到源代码。通过这些函数,可以获得操作总线设备的句柄,然后使用该句柄来对总线设备进行访问。简单说一下总线驱动(Bus Driver),就是指控制或配置某一特定总线的驱动设备,该驱动不但可以对指定总线进行操作,还可以加载和卸载更上层的硬件驱动,通常被称为客户端驱转载 2009-02-07 11:31:00 · 1193 阅读 · 0 评论 -
从debug版本的NK启动信息了解wince的启动流程
Windows CE Kernel for ARM (Thumb Enabled) Built on Aug 4 2008 at 18:39:04ProcessorType=0920 Revision=0sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 80227d90原创 2009-02-11 08:55:00 · 8547 阅读 · 0 评论 -
wince串口打印函数是如何实现的?(作者wogoyixikexie@gliet)
wince串口打印函数是如何实现的?(作者wogoyixikexie@gliet) 通常我们在BSP下一般使用RETAILMSG这个函数来实现串口打印,某些驱动也用DEBUGMSG。 在OAL又是另外一些串口打印函数。我们很早就知道这是OAL之下的debug.c的串口函数实现的,但是具体是怎么实现的,我从来没有去看过。今天碰到在串口MDD层无法使用串口打印的情况,搞得我很郁闷。就原创 2009-02-11 16:52:00 · 2773 阅读 · 1 评论 -
Windows CE下访问物理内存的方法——转载
Windows CE下访问物理内存的方法 转载来自http://www.cppblog.com/milkyway/articles/18269.html嵌入式设备与桌面PC的一个显著不同是它的应用程序中通常需要直接访问某一段物理内存,这在驱动程序中对物理内存的访问尤为重要,尤其是像ARM体系结构下,I/O端口也被映射成某一个物理内存地址。因此,与桌面版本Windows相比,Windows CE转载 2008-12-02 14:28:00 · 1739 阅读 · 0 评论 -
再次学习flash驱动——挖掘不能发现nand flash盘符的原因
作者:wogoyixikexie@gliet 2008-12-05 昨晚看以前优龙的老4.2BSP的flash驱动,发现和我现在不能发现这个盘符的驱动有些差别。下面这个函数是flash驱动加载的时候要执行的,作用是检测flash有没有坏块。我发现我在新的flash驱动中犯了严重的错误。等下会在代码中说明。DWORD FMD_GetBlockStatus(BLOCK原创 2008-12-05 13:41:00 · 4733 阅读 · 1 评论 -
Windows CE .NET 高级内存管理——转载经典。
摘要Microsoft_ Windows CE 的优点之一是它的 Microsoft Win32_ 应用程序编程接口 (API) 支持。无数 Windows 程序员可以利用他们的 Win 32 API 和 MFC 知识相对容易地转移到 Windows CE。Windows CE 可以实现 Win32 API 的子集,但程序员应当永远不要忘记 Windows CE 是与 Windows XP 完转载 2008-12-06 16:04:00 · 1677 阅读 · 0 评论 -
KernelIoControl和OEMIoControl的分析和使用(作者:wogoyixikexie@gliet)
作者:wogoyixikexie@gliet 2008-12-18 对于KernelIoControl这个函数我们并不陌生,在2440 5.0BSP当中,这个函数在很多驱动中出现了,主要是用来申请中断,比如下面BOOL RetVal = KernelIoControl( IOCTL_HAL_REQUEST_SYSINTR,原创 2008-12-18 10:36:00 · 4142 阅读 · 0 评论 -
ARM异常、中断以及他们的向量表分析
作者:wogoyixikexie@gliet 以前,我一直很疑惑这个“ARM异常、中断以及他们的向量表”是怎么回事,他们到底是怎么实现的,没有想到今天偶然看到(ARM System Developers Guide: Designing and Optimizing System Software的ARM异常、中断以及他们的向量表的章节,豁然开朗。——ARM嵌入式系统开发:软件设计与优原创 2008-12-24 16:20:00 · 11327 阅读 · 3 评论 -
(转)为提高实时性能,设计和优化 Microsoft Windows CE .NET(下)
(转)为提高实时性能,设计和优化 Microsoft Windows CE .NET(下)性能测量对 Windows CE .NET 的性能测量数据是在三种不同的 x86 CPU 上采集的。所有测量数据均以微秒为单位,其结果会因为不同的系统负载而有所变化。ILTiming 测试结果下表显示了 ISR 和 IST 滞后时间。注 这些数字(以微秒为单位)只应当用转载 2009-04-24 11:49:00 · 1629 阅读 · 0 评论 -
为什么wince5.0 只能支持最大内存是512M?
在论坛里面有不少人问起wince5(wince6尚未看过)的最大支持内存是多少,听前人说最大是512M,刚才看了会Programming Windows CE 3rd 这本书的wince内存结构部分,讲的比较明白。 The address space above the 2-GB boundary, addresses 8000 0000 through FFFF FF原创 2009-05-18 11:37:00 · 4559 阅读 · 0 评论 -
2440 wince6.0移植文档
哈哈,我是边弄边写的,所以这是最真实的文档,但是没有整理大家会觉得看起来不舒服,希望对大家有些帮助。http://d.download.youkuaiyun.com/down/1417123/gooogleman没有时间整理了,希望以后的人好好整理一下。原创 2009-08-10 09:13:00 · 3633 阅读 · 9 评论 -
从KITL 启动debug信息看wince6.0启动流程
(CoreCon) Download service map set to NONE; ignoring download request!PB Debugger The Kernel Debugger is waiting to connect with target.4294767296 PID:0 TID:2 Error Reporting Memory Reserved, dump siz原创 2009-06-06 16:44:00 · 3865 阅读 · 2 评论 -
解读WINCE 5.0 KITL代码流程
解读WINCE 5.0 KITL代码流程 作者:Walzer日期:2005.3.19摘要:KITL是PLATFORM BUILDER中的一个亮点,提供了和本地调试类似的断点、变量跟踪、内存查看等手段,如果没有KITL,嵌入式调试应该只能用串口打印消息来看了,工作效率大大下降。本文以实现最简单的SERIAL KITL为目的,就其实现代码进行跟踪调试,这些代码跨越了WINCE的PLATFORM转载 2009-06-06 16:53:00 · 1632 阅读 · 0 评论 -
cache原理学习(作者:gooogleman)
作者:wogoyixikexie@gliet cache是ARM最难理解,也是最具有闪光点的地方之一,现在是解决他的时候了。 对于这么经典的东西,我还是引用ARM工程师的书籍吧,免得误人子弟。cache以及write buffer的介绍 A cache is a small, fast array of memory placed be原创 2008-12-29 16:28:00 · 10273 阅读 · 3 评论 -
KITL 使用教程(重新整理)
使用KITL的详细教程//-----------------------------------------------------------------------------------------------------------// 日期:2009年3月19日 9:58:16// 作者:gooogleman// 版权:gooogleman// 平台:原创 2009-03-18 16:25:00 · 9312 阅读 · 16 评论 -
关于VirtualAlloc和VirtualCopy的奇怪问题(作者:gooogleman@foxmail.com)
关于VirtualAlloc和VirtualCopy的奇怪问题(作者:gooogleman@foxmail.com) 以前,对这个VirtualAlloc和VirtualCopy一点都不了解,只是从网上看到一些介绍,这次我发现他们在4.2BSP和5.0BSP下使用有些不同,但是4.2BSP照样在wince5.0下使用也没有问题,现在以4.2BSP和5.0BSP下下的按键驱动为例原创 2009-02-24 11:40:00 · 3291 阅读 · 7 评论 -
2440 定时器(PWM)学习(作者:gooogleman@foxmail.com)
2440 定时器(PWM)学习(作者:gooogleman@foxmail.com)FEATURE— Five 16-bit timers— Two 8-bit prescalers & Two 4-bit divider— Programmable duty control of output waveform (PWM)— Auto reload mode or one-s原创 2009-01-15 17:27:00 · 2890 阅读 · 2 评论 -
(转)为提高实时性能,设计和优化 Microsoft Windows CE .NET(中)
(转)为提高实时性能,设计和优化 Microsoft Windows CE .NET(中)2007-03-13 07:34内存和实时性能内核支持几种类型的内核对象,例如,进程、线程、关键节、mutex、事件和信号量。因为 OS 使用虚拟内存,因此所有内核对象都会在虚拟内存中进行分配,因而这些对象的内存是按需分配的。因为按需分配内存可能影响性能,所以无论何时进程开始转载 2009-04-24 11:39:00 · 1758 阅读 · 0 评论 -
wince内存配置
WINCE的内存(包括SDRAM及FLASH)的配置包含两个方面:源代码(包括C和汇编)中的定义,及系统配置文件CONFIG.BIB中的定义。源代码中需要定义内存的物理及虚拟地址,大小,并初始化名为OEMAddressTable的结构数组,以告知系统物理地址与虚拟地址的对应关系,系统根据其设置生成MMU页表。而CONFIG.BIB中一般会将内存定义成不同的段,各段用作不同的用途。CONFIG.BI转载 2009-04-28 11:18:00 · 3608 阅读 · 2 评论 -
(转)为提高实时性能,设计和优化 Microsoft Windows CE .NET(上)
(转)为提高实时性能,设计和优化 Microsoft Windows CE .NET(上)摘要:本文从技术角度详细描述了为了增强实时性能特征而设计的对 Microsoft Windows CE 操作系统 (OS) 作出的更改。它还讨论了可用于测试实时性能的工具,并提供了特定硬件配置的有代表性的实时性能测试结果。本页内容简介对内核的转载 2009-04-24 11:46:00 · 2458 阅读 · 1 评论 -
冷启动,重启,唤醒..........
优快云-南京Wince研究生 说:昨天还是在stepldr中修改了优快云-南京Wince研究生 说:把reset变成冷启动了,^_^wogoyixikexie@gliet 说:在那里改有什么用?优快云-南京Wince研究生 说:有用啊wogoyixikexie@gliet 说:起来后我们控制不了了wogoyixikexie@gliet 说:说说看,你这样做,后面怎么利用它的?优快云-南原创 2008-12-25 10:50:00 · 1709 阅读 · 0 评论 -
如何把PB下的驱动移植到BSP?(以2410SD卡驱动为例子)
作者:wogoyixikexie@gliet 此前,就听朋友说过关于把PB下的驱动移植到BSP的事情,甚至文件系统也移植到BSP下。——哈哈,很高级吧。现在我就以2410的SD卡为例子进行学习一下。 先前我都不知道SD卡驱动会在PB的安装文件下的这么回事,先看看下面三个帖子——2410大容量SD卡的研究。http://topic.youkuaiyun.com/u/20080911/16/原创 2008-12-26 14:59:00 · 2632 阅读 · 2 评论 -
ARM920T协处理器(CP15)指令表
作者:wogoyixikexie@gliet原创 2008-12-29 10:57:00 · 2529 阅读 · 0 评论 -
堆内存和栈内存详解 ——转载
堆:顺序随意 栈:先进后出 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。转载 2009-03-13 15:52:00 · 1814 阅读 · 0 评论