`
地球小野花
  • 浏览: 163929 次
  • 性别: Icon_minigender_1
  • 来自: 马赛大回旋
社区版块
存档分类
最新评论

Marvell pxa310/300中断唤醒源的设置

阅读更多

软硬件环境: Pxa310/300 + WinCE + WinMobile

中断唤醒源的设置可以说是一个纯“硬件”的活,因为它跟CPU关系非常紧密,不同的CPU即使同样在wince或者winmobile环境下,对于中断唤醒源的设置都是不同的。最近对于marvell pxa310/300里面中断唤醒源的设置了解了一下,发现跟之前pxa270系列的CPU也有很大差别。

将一个GPIO设置为中断唤醒源,在pxa270里面需要做如下工作:

1. 将此GPIO配置为输入GPIO功能,根据要求使能该GPIO是上升沿触发还是下降沿触发;

2. 用动态方式或者静态方式,让此GPIO关联上一个系统中断;

3. 调用如下函数,使能与这个GPIO绑定的系统中断作为唤醒源

KernelIoControl(IOCTL_HAL_ENABLE_WAKE, &g_SysIntr, sizeof(g_SysIntr), NULL, 0, NULL)

以上操作都是在驱动的初始化函数中完成的。

将一个GPIO设置为中断唤醒源,在pxa310里面需要做的工作前三步跟pxa270一样,但是也不尽一样,区别在于:

1. 上面第二步关联系统中断不一样。在pxa270里面是直接用该GPIO动态申请一个系统中断,或者用函数OALIntrStaticTranslate()静态关联一个系统中断。但是在pxa310里面,中断的关联要看该GPIO是属于哪一类的中断,通过查询CPU的pin脚功能定义可以得知,比如GPIO122的功能2是KP_DKIN<5> (wake ADxER[21]),所以要把该GPIO作为中断唤醒源的话,就需要map这一类型ADxER[21]的IRQ源。CPU的寄存器ADxER里面定义了所有可以作为唤醒源的IRQ,你可以用该IRQ为base来动态申请一个系统中断,也可以用函数OALIntrStaticTranslate来静态关联一个系统中断,但是这个IRQ必须是ADxER寄存器里面指定的IRQ。

2. 需要在驱动的powerdown函数里面,将该GPIO重新配置成可以作为唤醒的功能脚。比如GPIO122,正常使用的时候是作为普通中断GPIO来用的,也即是GPIO122的功能0,要作为唤醒源的话,需要在系统进入suspend之前将此GPIO重新配置为唤醒功能,也就是使用GPIO122的功能2。

这样的话,当系统处于suspend状态,GPIO122上如果有中断过来,满足触发条件的话,系统就会被唤醒了。

看过pxa310的spec上pin功能定义的朋友们就会发现一个问题了,GPIO有这么多,但是唤醒功能的IRQ源只有那么32个,而且很多都是使用的同一个唤醒源啊,如:

GPIO122的功能2是KP_DKIN<5> (wake ADxER[21])

GPIO123的功能2是KP_DKIN<4> (wake ADxER[21])

都是使用的KP类型的唤醒源,且是第21个。

GPIO112的功能1是UART2_RXD (wake GENERIC[4])

GPIO114的功能1是UART2_CTS (wake GENERIC[4])

都是使用的GENERIC[4]的IRQ。

这样的话,如果GPIO122和GPIO123同时作为唤醒源的话,他们map系统中断的IRQ就会是同一个IRQ了。

的确是这样的。

但是如果这样的话,系统怎么样去区分到底是那个GPIO唤醒系统的呢???

这个问题我也没弄清楚,如果有大侠知道的话请指点一下。

个人认为,唤醒系统的触发源就那么几种,如power key的按下,SD卡的插拔,耳机的插拔或者usb的插拔,所以在选择GPIO的时候尽量不要选用同一个唤醒源类型的GPIO;另外,只能够从功能上来区分到底是那个GPIO唤醒了系统,比如SD卡插拔唤醒了系统,那肯定不是耳机插入中断这个GPIO唤醒的系统,即使他们使用了同一个类型的唤醒源。

以上仅为个人总结的一点心得,欢迎拍砖!

Hzh

2010.03.27 11:29 AM

 

from:http://blog.csdn.net/ricky_hu/archive/2010/03/27/5422011.aspx

分享到:
评论

相关推荐

    marvell pxa310 ipp库使用说明文档

    根据提供的文件信息,我们可以深入探讨Marvell PXA310 IPP库的相关知识点。这份文档主要涉及的是Intel Integrated Performance Primitives(IPP)库的使用指南,虽然文档内容提及的是Intel架构下的IPP库,但由于...

    MARVELL PXA920平台

    ### MARVELL PXA920平台:高度集成与卓越性能的典范 #### 平台概览 MARVELL PXA920平台是Marvell公司推出的一款高性能、高集成度的多核基带处理器解决方案,专为移动通信设备设计。它集成了三个核心处理器,包括一...

    marvell pxa armada芯片资料

    Marvell PXA ARMADA 芯片资料 Marvell PXA ARMADA 芯片是一个基于 ARM 架构的高性能处理器系列,旨在为智能手机、平板电脑和其他移动设备提供强大的处理能力和低功耗特性。本文档将对 Marvell PXA ARMADA 芯片的...

    PXA300和PXA310开发手册

    PXA300和PXA310是Marvell公司推出的高性能处理器系列,专为移动设备设计,包括智能手机和平板电脑等。这两款处理器都采用了先进的架构和技术,旨在提供卓越的性能、能效以及多媒体处理能力。Marvell是一家全球领先的...

    PXA310硬件设计指南

    PXA310 是 Marvell 公司推出的高性能 MCU,源于 Intel 的核心技术,具有高性能和低功耗的特点。PXA310 采用经过优化的 Arm11 架构,运行频率为 624MHz, 比运行在 520MHz 的 PXA270 低 60% 的功耗,并且价格更便宜。...

    公司WINCE产品源码!!!!PXA310 BSP是MARVELL公司的PXA310的BSP和文档

    "PXA310 BSP: MARVELL公司的PXA310的BSP和文档"这部分进一步确认了BSP不仅包含源码,还附带了相关的文档资料。这些文档通常包括开发者指南、API参考、硬件接口说明等,帮助开发者理解如何使用BSP和与其相关的硬件...

    嵌入式经典课件/ARP/PXA255/PXA270

    这些资料主要围绕着嵌入式系统中的ARP协议以及PXA255和PXA270处理器进行讲解。ARP(Address Resolution Protocol)是网络层的一个关键协议,它用于将IP地址转换为物理(MAC)地址,确保数据能够在局域网中正确传输。...

    BSP_WCE_50_MHL_V9_0_1.ZIP_BSP_PXA310 W_PXA312 B_can wince_pxa310

    标题中的"BSP_WCE_50_MHL_V9_0_1.ZIP_BSP_PXA310 W_PXA312 B_can wince_pxa310"指的是一个特定的板级支持包(Board Support Package,简称BSP),它是为Marvell公司的PXA310和PXA312处理器设计的,主要用于Windows ...

    EBOOT.rar_boot_pxa310_pxa310 eboot_windows mobile boot

    在本文中,我们将深入探讨“EBOOT.rar_boot_pxa310_pxa310 eboot_windows mobile boot”这个主题,重点关注其与Windows Mobile操作系统、Marvell PXA310处理器的关系,以及Boot Loader的工作原理。 首先,让我们从...

    PXA310完整的datasheet

    2. **PXA300_and_PXA310_Developers_Manual_Vol._1**:这份手册针对PXA300和PXA310的共同特性和差异,为开发者提供了一套完整的开发指南。 3. **PXA310_PB_R4.pdf**:这可能是PXA310的平台参考板相关文档,详细描述...

    pxa310 WINCE 5.0 BSP

    对于pxa310 WINCE 5.0 BSP,它包含了一系列针对PXA310处理器的驱动程序,如CPU时钟和电源管理、中断控制器、串行端口、存储控制器等。同时,它还包含了配置文件,用于定制Windows CE的启动过程和系统设置。 4. **...

    pxa310 bsp源码

    "pxa310 bsp源码"是针对M-Stone开发板的Windows CE BSP(Board Support Package)的源代码,主要用于驱动开发板上的外围设备并确保操作系统与硬件的兼容性和稳定性。BSP是嵌入式系统开发中的一个重要组成部分,它...

    marvell pxa920 DETSHEET

    根据提供的文档信息,我们可以推断出这是一份关于Marvell PXA920通信处理器的数据表(datasheet)。由于原始内容包含了一些不相关的代码或密文,并且文档本身标记为机密并禁止未经授权的分发或使用,我们将重点放在...

    PXA310.rar_AP_pxa310

    《Marvell AP PXA310开发详解》 Marvell AP PXA310是一款高性能、低功耗的处理器,广泛应用于移动设备、嵌入式系统以及物联网(IoT)设备。这款处理器以其强大的处理能力和灵活性,为开发者提供了丰富的功能和优化的...

    Marvell PXA3xx(88AP3xx) Processor Family Specification Update

    ### Marvell PXA3xx(88AP3xx)处理器家族规范更新的关键知识点 #### 一、概述 本文档提供了Marvell PXA3xx(88AP3xx)处理器家族的最新规范更新,包含了所有已知错误数据的更新。这份文档主要面向硬件系统制造商以及...

    PXA310 developer manual第二册(存储器)

    PXA310处理器是Marvell公司推出的一款高效能、低功耗的嵌入式微处理器,广泛应用于移动设备、工业控制以及消费电子产品等领域。该处理器的开发者手册分为四册,其中第二册专门讲述了存储器配置,为开发者提供了深入...

    Marvell PXA320 Processor Series

    Marvell PXA320处理器系列是Marvell公司推出的一款高性能、低功耗的处理器解决方案,专为高端多媒体手机、个人数字助理(PDA)、工业嵌入式解决方案以及企业级设备设计。该处理器系列以其出色的计算能力和视频处理...

    colibri_arm_som_pxa300_pxa310_datasheet.zip

    Colibri_ARM_SOM_PXA300_PXA310_Datasheet.zip是一个压缩包文件,其中包含了一份详细的技术文档——Colibri_ARM_SOM_PXA300_PXA310_Datasheet.pdf,这份数据手册是了解Colibri ARM SOM PXA300和PXA310处理器核心功能...

Global site tag (gtag.js) - Google Analytics