自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

转载 由简单的LED驱动分析内核源码包中的s3c2410寄存器宏定

<br />上个月在qq2440的光盘里发现了一段简单的LED驱动程序,大致看了一下明白了大意;但是由于里面的宏定义很是麻烦,看起来绕来绕去,于是我也懒得看明白了,干脆在CU论坛里发了个帖一问了事。<br /> 然而,等了几天后,寥寥几个回复。更不爽的是,唯一那个被加了分的回复一看就感觉不对劲,可我自己也没弄清楚缘由,因此也说不清。<br /> 过完了十一,觉得又该学习了,突然想起来这个事。想想还是完全看懂比较好,毕竟自己对kernel的源码包还不算很熟悉,就当是学习kernel吧。<br />

2011-01-25 20:57:00 575

转载 LED驱动分析s3c2410_gpio_setpin()

<br />s3c2410_gpio_setpin()在gpio.c中<br /><br />作用:设置相应GPIO口的值,<br />如pin=S3C2410_GPB5 to=0 则:设置S3C2410_GPB5的输出值为0<br />如pin=S3C2410_GPB5 to=1 则:设置S3C2410_GPB5的输出值为1<br /><br />void s3c2410_gpio_setpin(unsigned int pin, unsigned int to)<br />{

2011-01-25 20:56:00 1147

转载 Target下debugger kdstub 出错分析

<br />1) Shutdown all instances of PB (version 5.0 and later) and make sure Cepb.exe, CeSvcHost.exe (CeSvcH~1.exe) and DeviceEmulator.exe are gone from  the task manager.<br />   退出pb软件<br /> <br />2) Back up the C:/Documents and Settings/<user>/local sett

2010-11-04 15:23:00 655

转载 关于VS2005远程工具的一点说明

<br />      用过VS2005的人都知道,它提供了两套远程工具软件,一个可从VS2005的菜单"Target”——"Remote Tools”打开,而另一个在“开始”菜单——"Microsoft Visual Studio 2005”——"Visual Studio Remote Tools”下。很早以前,在《单机搭建WinCE开发环境(续)》中对两套远程工具做了对比,当时只看到了一点表象,没有看到更深层次的东西,今天在这里做一个补充说明。<br />      这两套远程工具是基于两种不同的链接

2010-10-28 14:12:00 648

转载 WINCE6.0 远程工具,不能使用ActiveSync连接的问题

    现象:“VS2005->Target->Remote Tools”打开的远程工具,当选用ActiveSync作为连接方式时,会出现如下错误:“The Microsoft ActiveSync reported the following error: Unable to load device side components”    解决:    微软的解决方法:找不到 "C:/Program Files/Common Files/Microsoft Shared/Windows CE Tools/

2010-10-28 10:11:00 1529 2

转载 简单介绍一下BSP中的dirs文件和sources文件(WinCE

<br />一、dir文件:<br /> DIRS=          /<br />     drivers   /<br />     kernel    /<br />     gwe       /<br />     eboot <br />dir文件用来指定需要编译的目录。<br />若设为:DIRS = *,则表示编译当前所有目录。<br /> <br />二、sources文件:<br />一般和源代码放在同一目录下。主要是定义一些编译所需的宏。告诉Build.exe在编译源代码的时候应该如

2010-10-19 09:32:00 548

转载 WinCE下,快速编译驱动及BSP

<br />在WinCE下面,创建工程,然后编译是需要花很长时间的。当我们第一编译完工程以后,如果需要改我们的驱动或者BSP,我们是不需要重新编译整个工程的:<br />1. 如果更改了driver,以WinCE6.0为例,我们可以在菜单里面选择“build”->“Open Release Directory in Build Window” ,然后在弹出的命令行窗口中,通过dos命令切换到你要编译的driver的目录下面,然后运行“build”就可以了。也可以运行“build -c”会强制把所有的文件都编

2010-09-27 16:39:00 457

转载 WinCE中串口驱动及接口函数介绍(转)

<br />作者:ARM-WinCE<br />在WinCE中,串口驱动实际上就是一个流设备驱动,具体架构如图:<br /> <br /><br />串口驱动本身分为MDD层和PDD层。MDD层对上层的Device Manager提供了标准的流设备驱动接口(COM_xxx),PDD层实现了HWOBJ结构及结构中若干针对于串口硬件操作的函数指针,这些函数指针将指向PDD层中的串口操作函数。DDSI是指MDD层与PDD层的接口,在串口驱动中实际上就是指HWOBJ,PDD层会传给MDD层一个HWOBJ结构的指针,

2010-09-13 15:07:00 444

转载 WinCE中串口驱动及接口函数介绍(转)

<br />作者:ARM-WinCE<br />在WinCE中,串口驱动实际上就是一个流设备驱动,具体架构如图:<br /> <br /><br />串口驱动本身分为MDD层和PDD层。MDD层对上层的Device Manager提供了标准的流设备驱动接口(COM_xxx),PDD层实现了HWOBJ结构及结构中若干针对于串口硬件操作的函数指针,这些函数指针将指向PDD层中的串口操作函数。DDSI是指MDD层与PDD层的接口,在串口驱动中实际上就是指HWOBJ,PDD层会传给MDD层一个HWOBJ结构的指针,

2010-09-13 15:06:00 759

转载 把微软代码搬到BSP下调试的方法(转)

<br />// Topic:把微软代码搬到BSP下调试的方法<br />// 作者:[email protected]<br />// 论坛账号:gooogleman (经常在CSDN、www.armce.com/bbs出没)<br />// 版权:桂林电子科技大学一系科协[email protected]<br />// 平台:wince5.0.0 FL2440 5.0 BSP (飞凌FL2440开发板)<br />// 发布日期:2010-1-14<

2010-09-13 14:32:00 552

转载 WINCE串口驱动PDD层代码简单分析

<br />1. PDD层代码简单分析<br />PDD层的主要包含了以下2个类:CSerialPDDPowerUpCallback, CSerialPDD, 下面简单的分析这2个类的作用。<br />1.1 CSerialPDDPowerUpCallback<br />CSerialPDDPowerUpCallback 类用于串口电源上电时的处理。<br />在调用CSerialPDD::Init()后会创建一个CSerialPDDPowerUpCallback类型的对象<br />在CSerialPDD

2010-09-13 14:12:00 653

转载 串口驱动分析 (转)

<br /><br />虽然串口通讯已经是普遍的标准而且广为大家熟知,但驱动中涉及的部分内容也可能在平时的应用中并不是很常用到,在这里做一个简单的介绍待后面说明到具体代码的时候可以连贯一些。<br />串行通讯接口是目前十分流行的通讯接口之一。由于其电气界面的简单性使其在计算机领域的应用相当的广泛。在这里提到的串行通讯接口主要是指UART(通用串行)和IRDA两种。通常的串行连接电气连接上有3wire和9wire两种。3wire的接线方式下定义了发送、接收和地三根连接。其用途就如名称一样分别用于发送、接收。

2010-09-13 14:09:00 585

转载 SD卡支持大容量办法(转)

<br />1.      <br />更新PB,补丁名称为:<br />07年12月份的WinCEPB50-071231-Product-Update-Rollup-Armv4I.msi <br />2.      在platform->setting->environment 中设置IMGSDBUS2 = 1 <br /><br />        之所以要设置这个环境变量是因为sdbus2.dll 才支持大容量的SD的。<br /><br />3、在common.bib中<br /><br />#if

2010-08-26 08:52:00 2355

转载 SD卡驱动相关内容

一)先对SD卡有一个感性认识:SD卡的技术是基于MultiMedia卡(MMC)格式上发展而来,大小和MMC差不多,尺寸为32mm x 24mm x 2.1mm。SD卡与MMC卡保持着向上兼容。内部结构: SD卡内部主要分两部分:存储介质(nandflash)和主控制器。主控制器多位以51为核心而设计的专用处理器,内部PLL可以倍频到近100m,带内部DMA,最主要的是SD控制器和NAND控制器。而作为存储介质的nandflash从1Gbit到128Gbit。分类:MMC卡:结构类似SD卡,采用MMC协议。

2010-08-24 20:35:00 2469

转载 【转】如何在ADS调试中使用中断

<br />如何在ADS调试中使用中断<br />作者:veabol<br />大家都知道ARM9产生中断的时候PC会自动跳转到0x18地址处执行中断处理代码,但是当FLASH等启动介质中没有预烧录代码会怎么样呢?ARM复位时从启动介质获取的代码为全F或者全0,而如果ADS调试将代码下载到外部RAM里边就会导致0x18地址没有中断处理代码,发生中断当然也就没有办法执行了,其实有几种处理方法:<br />1、使用ADS的分散加载机制。在下载映像时将带中断处理的代码下载到0地址开始的地方,使0x18地址有中断处

2010-08-13 09:37:00 507

转载 wince 5.0与6.0下OV9650拍照中的SetKMode 函数(转)

<br />在wince5.0下,用EVC编写应用程序的时候可以调用SetKMode 函数从用户模式进入内核模式,进而对内核进行操作(如从内核某地址开始的内存空间读取数据并保存到在应用程序开辟的内存空间中)。<br />       所以可以通过前边的函数保存摄像头预览到的图像。然而在wince6.0下,不支持在VS2005编写的应用程序中调用该函数直接进入内核传递数据,如何解决呢?<br />       首先说一下wince5.0下从内核读取数据的两种方式:一种是通过DeviceIoControl函数获

2010-07-23 10:26:00 755

转载 data abort 内核调试错误分析

1、  出错信息:PC=c01cf8ec(gwes.dll+0x0004f8ec) RA=c01cf8e4(gwes.dll+0x0004f8e4) SP=d1e9fde0, BVA=00001002Gwes.map文件:…………………………………………………………………………………………………………………………………………………………………………………………………………0001:0004e50c       ?GlobalFindAtomW_I@Atom_t@@SAGGPBG@Z 1004f50c f 

2010-07-19 16:59:00 1544

转载 data abort for example

Previously I posted instructions for finding the source of a data abort, see  Windows CE: Finding the cause of a Data Abort.  This will walk through those steps to find the source in a real application for.  This is specific to Windows CE and later.I have

2010-07-19 16:52:00 747

转载 Printed Exception strings - what do all those flags mean?(转)

Printed Exception strings - what do all those flags mean?软件调试2008-09-26 17:10:21阅读704评论1字号:大中小http://realchecko.blogspot.com/2007/06/printed-exception-string.htmlhttp://blogs.msdn.com/hopperx/archive/2005/06/29/433842.aspxPrinted Exception strings - what d

2010-07-19 16:50:00 742

转载 WinCE CEDDK之DMA相关函数

<br />CEDDK提供了DMA的相关函数,在CEDDK/DDK_DMA/ddk_dma.c中定义。实际上里面最有用的就两个函数,HalAllocateCommonBuffer(..)和HalFreeCommonBuffer(..)分别用于为DMA申请和释放<br />  首先介绍一下会用到的DMA适配器结构,在ceddk.h中定义,如下:<br />typedef struct _DMA_ADAPTER_OBJECT_<br />{<br />  USHORT ObjectSize;        //

2010-06-12 15:45:00 384

转载 怎样使用Map文件进行查错

<br />首先必须生成程序的 MAP 文件。什么是 MAP 文件?简单地讲, MAP 文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方、任何时候使用,不需要有额外的程序进行支持。而且,这是唯一能找出程序崩溃的地方的救星。<br />好吧,既然 MAP 文件如此神奇,那么我们应该如何生成它呢?在 VC 中,我们可以按下 Alt+F7 ,打开“Project Settings”选项页,选择 C/C++ 选项卡,并在最下面的 Project Options 里面输入:/Zd ,然

2010-06-10 19:50:00 521

转载 USB_KITL(Wince50)使用方法(转)

1  platform/SMDK2440A/SMDK2440.bat里修改:   set BSP_KITL=NONE  改成 rem set BSP_KITL=NONE   rem set BSP_KITL=USBSERIAL  改成 set BSP_KITL=USBSERIAL   set BSP_NOUSBFN=  改成 set BSP_NOUSBFN=1   set BSP_

2010-05-27 09:44:00 795 1

原创 OALKitlPowerOff()函数休眠时出错

  在调试休眠时候,出现这么一个现象RaiseException: Thread=83cd0000 Proc=8164c3c0 device.exeAKY=00000005 PC=03fa7434(coredll.dll+0x00037434) RA=80280390(NK.EXE+0x00080390) BVA=00000001 FSR=00000001Exception Rais

2010-05-24 17:22:00 524

原创 2440休眠问题解决不了

在2440中进入休眠函数void OEMPowerOff(){    static UINT32 saveArea[51];    S3C2440A_INTR_REG *pIntr = (S3C2440A_INTR_REG*)OALPAtoVA(S3C2440A_BASE_REG_PA_INTR, FALSE);    S3C2440A_IOPORT_REG *pIOPort = (S3C2440

2010-05-24 17:08:00 883 1

转载 MAP映射问题

 在MAP.A中地址映射表转换物理地址到虚拟地址 EXPORT      OEMAddressTable[DATA] ; LTORG     AREA OEMAddressTable, DATA, READONLY;OEMAddressTable    ;;;----------------------------------------------------------

2010-05-24 17:05:00 407

转载 WINCE物理和虚拟地址的问题

 在MAP.A中地址映射表转换物理地址到虚拟地址 EXPORT      OEMAddressTable[DATA] ; LTORG     AREA OEMAddressTable, DATA, READONLY;OEMAddressTable    ;;;----------------------------------------------------------

2010-05-12 20:28:00 467

转载 三星官方2440 CE5.0 BSP编译的一些问题

到BSP后,直接按照《[WinCE50]S3C2440A_Installation Manual_V1.1.pdf》中的方法添加BSP到PB中,添加必要组件并编译。编译后生成六个文件:STEPLDR.nb0, STEPLDR.bin, EBOOT.nb0, EBOOT.bin, NK.nb0, NK.bin。 由于开发板上只有NAND Flash,因此只能使用三星的stepstone技术来

2010-05-09 21:28:00 555

转载 wince挂起和唤醒_relayon

不管任何方式的系统挂起,最终都会调用OEMPowerOff()函数来实 现.OEMPowerOff()函数由OEM来完成,这个函数也许会位于 power.c或者off.c的文件中.OEMPowerOff()是OEM来实现的,代码和流程也许不同,但基本按照下面的方法来完成.挂起的过程:1.先进行平台相关的动作,比如清屏,设置AD,usb等.2.保存芯片所有的寄存器值到一个静态数组(就是堆栈中)3.设

2010-05-08 21:48:00 653

转载 WinCE OAL中的电源管理函数

作者:ARM-WinCE在WinCE OAL中的电源管理主要由OEMIdle和OEMPowerOff两个函数实现。应该说OEMIdle实现的是处理器级的电源管理,而OEMPowerOff实现的是板级的电源管理。在WinCE系统运行的时候,如果没有任何线程可以执行,那么内核就会调用OEMIdle函数。一般在OEMIdle中,处理器都会进入sleep模式或者idle模式,这取决于处理器本身所能

2010-05-08 21:39:00 374

转载 WINCE5.0的中断深入了解(转)

WINCE5.0的中断深入了解1.总体了解流程首先描述wince5.0 (2440BSP)的中断流程:流程1.创建事件aà创建线程ISTà用InterruptInitialize〈系统中断号绑定线程IST〉à线程IST进入等待事件a状态(挂起状态)。流程2.外部引发中断à OEMInterruptHandler屏蔽中断à把物理中断转换成系统中断,其他à重新使能中断。(ISR过程)>à操作系统根据系

2010-05-06 13:43:00 1240 1

原创 wince 5.0 .2440 5.0BSP的中断过程(转)

以前在CSDN写过一些wince5.0中断的文章,现在重新看看,发现以前的有些理解是错误的,想翻开来改改,可是郁闷的CSDN在前台没有返回后台的编辑功能,所以现在重新写一篇纠正一下。      首先描述wince5.0 (2440BSP)的中断流程     注册表等——》KernelIoControl(——》OEMIoControl——》OALIntrRequestIrqs )把物理中断转

2010-05-05 11:17:00 638

转载 KernelIoControl和OEMIoControl的分析和使用(作者:wogoyixikexie@gliet)

对于KernelIoControl这个函数我们并不陌生,在2440 5.0BSP当中,这个函数在很多驱动中出现了,主要是用来申请中断,比如下面BOOL RetVal = KernelIoControl( IOCTL_HAL_REQUEST_SYSINTR,                                   &Irq,                              

2010-05-05 10:24:00 849 1

转载 wince地址映射过程

首先要理解 windows CE 下的地址映射机制。 wince有两种地址:物理地址和虚拟地址.不同架构的 CPU 硬件上的区别导致地址映射也不同。MIPS和SH x 处理器,不采用MMU,直接在CPU和内核里定义 1G 的物理地址;而X86和ARM带有 MMU 单元,在 OEMAddressTable 中定义物理地址到虚拟地址间的映射关系或者是OS启动后调用 CreateStaticMappin

2010-04-29 16:20:00 678

转载 动态映射和静态映射

先说VirtualAlloc 和VirtualCopy   VirtualAlloc 首先会从我们的虚拟地址空间中申请(或者说预留)一块虚拟空间,准备接下来要用它。注意此时,可用的物理内存并没有减少,只是虚拟地址少了一块可用的区域。真正把这块之前reserved的虚拟空间映射到物理的内存区域就是由VirtualCopy来干的,此时,MMU的页表就会增加一个entry,来表示物理--虚拟的映射关系。

2010-04-29 10:52:00 3886

转载 VirtualAlloc和VirtualCopy的蕴含知识点

1.VirtualAlloc用来在进程的虚拟地址空间中保留(reserve)或者提交(commit)页。在保留时以64KB为粒度,即保留空间以64K为单位。而提交虚拟地址时,则以页(典型大小为4KB)为单位。2.VirtualCopy用来绑定一块物理内存到当前进程虚拟地址空间。参数里的lpvSrc既可以是内核段的虚拟地址也可以是物理地址(用page_physical来标记)。同时要注意lpvSrc

2010-04-29 10:39:00 586

转载 wince下的地址映射知识点滴

1.如果是在bootloader中打开MMU之前,程序访问设备寄存器,可以直接操作物理地址,无需虚实映射。2.wince启动后,硬件上ARM和X86体系的处理器启动了MMU,操作系统只能访问到虚拟地址,不能直接操作物理内存了。但是如果是X86的CPU,由于它的外设I/O端口和存储器空间分开编址,可以直接嵌入汇编或者使用宏read_port_xxx,write_port_xxx来读写设备寄存器的物理

2010-04-29 10:37:00 409

转载 debug下的build错误

debug错误提示是 BUILD: [01:0000000169:ERRORE] NMAKE :  U1073: dont know how to make F:/wince5project/test/WINCE500 /new2440_ARMV4I/cesysgen/sdk/lib/ARMV4I/retail/Ndis.lib BUILD: [01:0000000171:ERRORE] N

2010-04-19 16:00:00 949

转载 pb5.0 下build os 和build project之详解

1、Platform Builder在IDE菜单中提供了几种BuildOS命令和菜单选项,分别用于不同情况和不同阶段的操作系统创建。       Sysgen:运行Sysgen工具。一般与Copy Files to Release Directory After Build选项和Make Run_Time Image After Build配合,用于操作系统的初次创建或再次创建。在初次创建

2010-04-09 16:13:00 890

转载 WINCE编译过程中的错误出现阶段

在WinCE系统中,当我们完成了相关的开发和系统定制工作以后,会编译WinCE系统,最后生成NK.bin和NK.nb0。我现在用WinCE6.0在自己的PC上面编译一次用时19分16秒(有一天无聊,就测了一下)。下面介绍一下WinCE系统的编译过程,大致分为4个阶段:编译阶段(Compile phase),系统产生阶段(Sysgen phase),文件拷贝阶段(Release copy phase

2010-04-09 15:45:00 949

转载 windows mobile 编译(生成镜像)提速

windows mobile 编译镜像总是让人难以忍受的耗时,当然我们不能每次修改一点东西就build All一次。下面是自己工作中积累的【不同情况下使用的编译命令】来加速生成镜像的过程,不排除有错的可能,欢迎指正。对于修改,一般可以分为以下几种类型:(1)修改public下的东西(一般不会修改这里的东西)(2)修改了Cesysgen.bat或是会影响到Cesysgen.bat的环

2010-04-07 17:39:00 443

空空如也

空空如也

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

TA关注的人

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