wince5.0中断的详细解释

WinCE6.0的EBOOT概要 在开发的过程中使用EBOOT,可以提高开发效率。前一篇介绍NBOOT加载EBOOT的方法时提到,NBOOT必须将EBOOT放在内存中指定的位置,这个位置是由EBOOT的来决定的。本文粗略的介绍了WinCE6、0下EBOOT的内容,但没有涉及具体的代码实现,相关代码可以参考目录C:"WINCE600"PLATFORM"DEVICEEMULATOR"SRC"BOOTLOADER"EBOOT。EBOOT在实现必备功能的前提下,我们还可以扩展其功能,譬如说初始化LCD,并显示特定的启动画面,显示加载映像的进度等。 阅读详情

 1 WinCE中第一次对中断的处理是在OAL的OEMInit()中,该函数调用OALIntrInit()完成对中断的初始化.
2 OALIntrInit()对中断的初始化做了如下工作:
2.1 通过配置IPR0-IPR33设置中断优先级,优先级定义在g_IntPriorities和g_IntPriorities2中,其中IRQ_OSMR0为最高优先级, IRQ_KEYPAD为最低优先级.
2.2 设置ICCR,在空闲模式时只对有效的,非屏蔽的中断响应.
2.3 BSPIntrInit().该函数对BSP中需要处理的中断进行初始化工作,主要是设置ICMR寄存器使GPIO1(CPLD)和GPIO2为非屏蔽状态,然后通过OALIntrStaticTranslate建立IRQ和sysintr之间的关联.
2.4 对于WinCE来说,中断可以作如下分类:
1> 与BSP无关的Kernel使用的内部中断, 比如IRQ_OSMR0(for
sched),IRQ_RTCALARM;
2> 与BSP有关的CPU内部中断,比如IRQ_USBOHCI, IRQ_OSM
R1, IRQ_KEYPAD, IRQ_FFUART, IRQ_BTUART, IRQ_STUART, IRQ_DMAC, IRQ_USBFN;
3> CPLD所管理的中断,以GPIO1通知CPU中断的产生,在收到G
PIO1产生的中断后可以通过读取地址0x0A00_0010判断具体的中断源,比如IRQ_GPIO1_MMCCD(MMC_IN_INT, MMC_OUT_INT), IRQ_GPIO1_USBCD(USB_IN_INT, USB_OUT_INT), IRQ_GPIO1_PCMCIA_S0_CSC(CF_IN_INT. CF_OUT_INT),还有在代码中没有处理的SIM卡中断(SIM_IN_INT, SIM_OUT_INT).
4> GPIO2_120产生的中断,通过寄存器ICIP的位10-GPIO_x通
知CPU中断的产生,然后查询寄存器GEDR_x可以判断具体的中断源,比如IRQ_GPIO12_MARATHO, IRQ_GPIO10_ETHERNET,IRQ_GPIO13_UCB1400;
5> 以Installable ISR形式产生的中断,这类中断通常是以DLL的形式安装,在注册表中定义其实际的IRQ中断值,比如IRQ_MMC_DETECT,IRQ_MMC_CONTROL;
2.5 有几种方式可以建立实际中断IRQ到系统中断sysintr之间的关联,对于build-in设备,可以在OEMInit中通过OALIntrStaticTranslate来建立静态的关联;但是对于installable ISRs,可以在注册表中定义实际的中断IRQ,然后通过在KernelIOControl中使用IOCTL_HAL_REQUEST_SYSINTR来实时分配新的sysintr,这有助于驱动的移植.
3 在CPU接收到中断后,对中断的处理是在 OEMInterruptHandler()中,该函数的首先屏蔽该中断,最后得到实际中断IRQ所对应的sysintr的值.
3.1 首先它通过中断寄存器ICHP得到实际的IRQ值;
3.2 对于GPIO产生的中断,通过清空GFER和GRER寄存器来屏蔽相同的中断;对于其余的CPU内部中断,通过清空ICMR寄存器的相应位来屏蔽中断;
3.3 对于Kernel使用的IRQ_OSMR0和IRQ_OSMR2,分别进行处理,得到sysintr;
3.4 对于通过GPIO0,GPIO1和GPIO2_120产生的中断,将IRQ的值进行转化,使之与OAL/intr.c和bulverder_intr.h中所定义的新的IRQ值相对应,此时的IRQ值就不是在ICIP中对定义的IRQ值了;
3.5 接着调用NKCallIntChain(irq)判断该IRQ是否已经被加入中断列表,同时开始调用该中断的ISR程序.
4 当中断处理完成后,调用OALIntrDoneIrqs(),重新使能中断.

 

说明:此文章应该是针对pxa270而言,对于三星的略有不同,不过应该是大同小异。

 

From: http://topic.youkuaiyun.com/u/20071008/11/D54DF4A6-09EF-4D7F-AADB-2F60FF3824FC.html

AI人工智能 Agent:在仓储物流中的应用 AI人工智能 Agent:在仓储物流中的应用 1. 背景介绍 1.1 问题的由来 仓储物流行业是全球经济运行的基石之一,涉及商品的存储、运输、分拣和配送等多个环节。随着电子商务的普及和消费者对物流速度和精确性的要求不断提高,仓储物流 阅读详情

相关推荐

斗罗大陆叙事体系与战斗系统设计解析

在文学创作与游戏设计中,世界观构建和战斗系统设计是两大核心技术要素。世界观作为故事发生的背景框架,需要融合东西方文化元素并建立量化标准,如《斗罗大陆》中武魂觉醒与魂环等级体系。战斗系统则需突破简单数值对抗,发展出武魂特性、魂技组合与环境互动的三维体系,其中魂导器技术的引入展现了科技与魔法的创新融合。这些设计原理在RPG游戏开发、网络文学创作等领域具有广泛应用价值,特别是对需要长期运营的IP作品,完善的系统设定能有效支撑剧情延展与商业化开发。本文以现象级作品为例,剖析其武魂拟态理论和魂师工业化构思如何成就经典

weixin_29291069的博客 249

转载—mooncmy 牛人对wince5.0中断的详细解释

原帖地址http://topic.csdn.net/u/20071008/11/D54DF4A6-09EF-4D7F-AADB-2F60FF3824FC.html1 WinCE中第一次对中断的处理是在OAL的OEMInit()中,该函数调用OALIntrInit()完成对中断的初始化. 2 OALIntrInit()对中断的初始化做了如下工作: 2.1 通过配置IPR0-IPR33设置中断优先

gooogleman#foxmail.com 1398

【BLE】HID设备开发实战:从自拍杆到复合设备的蓝牙控制方案

本文深入解析了BLE HID(低功耗蓝牙人机接口设备)的开发实战,从蓝牙自拍杆的工作原理切入,详细阐述了HID Report Map的设计与实现。通过拆解自拍杆、键盘、鼠标等案例,指导开发者如何利用BLE的低功耗与即插即用特性,构建从单一功能到键盘鼠标复合设备的完整蓝牙控制方案。

weixin_29159613的博客 464

对wince5.0中断的详细解释

1 WinCE中第一次对中断的处理是在OAL的OEMInit()中,该函数调用OALIntrInit()完成对中断的初始化. 2 OALIntrInit()对中断的初始化做了如下工作: 2.1 通过配置IPR0-IPR33设置中...

congyun5282的博客 131

STM32F407+LAN8720A+LwIP实战:FreeModbus TCP从机功能开发指南

本文详细介绍了基于STM32F407和LAN8720A硬件平台,结合LwIP协议栈实现FreeModbus TCP从机功能的开发指南。内容涵盖硬件连接、LwIP移植、FreeModbus TCP从机实现、任务调度及调试技巧,为工业控制领域的以太网通信开发提供实用参考。

weixin_29190651的博客 546

飞腾Ubantu22.04.3安装OpenNebula测试

因OpenneBula官方镜像源只有AMD架构的镜像包不存在ARM的镜像包,借此用源码编译进行测试。

坚持就是胜利的博客 1009

wince5.0中断详细解释

原帖地址http://topic.csdn.net/u/20071008/11/D54DF4A6-09EF-4D7F-AADB-2F60FF3824FC.html1 WinCE中第一次对中断的处理是在OAL的OEMInit()中,该函数调用OALIntrInit()完成对中断的初始化. 2 OALIntrInit()对中断的初始化做了如下工作: 2.1 通过配置IPR0-IPR33设置

StephenGaoYu 547

Zephyr RTOS 嵌入式 C 编程 (使用嵌入式 RTOS POSIX API)8. Zephyr RTOS 与以太网、Wi-Fi 及 TCP/IP

支持的 BSD 函数包括:socket()、close()、recv()、recvfrom()、send()、sendto()、connect()、bind()、listen()、accept()、fcntl()(用于设置非阻塞模式)、getsockopt()、setsockopt()、poll()、select()、getaddrinfo()和 getnameinfo()。向开发板烧录代码也可能存在问题。可以通过调用 net_if_up() 开启网络接口 ,调用 net_if_down() 关闭接口。

1342

分析三星5.0BSP中断

<br />看三星的5.0中断,看的一头雾水,相当郁闷。现在重新理清一下。<br />sontitan牛人也指示过一些。<br />引用楼主 wangxin_801115 的帖子:<br />请问这两个函数KernelIoControl和InterruptInitialize函数的区别是什么呢?? <br />个人理解:先用KernelIoControl申请中断号 <br />          然后利用InterruptInitialize把 (从KernelIoControl申请的)中断号与事件相关联

fei198811的专栏 1847

Android 13/14/15 默认授权应用权限的实现方法

Android版本修改方式实现原理13/14修改Permission.java将所有权限标记为Normal权限15修改DeviceIdleController.java + DefaultPermissionGrantPolicy.java监听应用安装并主动授权。

m0_60898338的博客 2909

Windows11上pip安装IsaacSim5.1.0与IsaacLab

本文详细介绍了CUDA Toolkit 12.8.0、IsaacSim和IsaacLab的安装过程。首先从NVIDIA官网下载并安装CUDA Toolkit 12.8.0,然后通过miniforge创建conda环境(env_isaacsim)安装IsaacSim相关Python包,解决了Windows长路径问题。成功运行IsaacSim后,克隆IsaacLab仓库并完成安装验证,最后通过创建空场景测试环境配置。整个安装过程包含详细的命令行操作和问题解决方法,为机器人仿真开发环境搭建提供了完整指导。

拥抱具身智能,昇腾Ascend C 377

WinCE OAL中的中断处理

关于WinCE的中断处理,OAL中主要是实现了ISR部分,一般IST会在设备驱动中实现。推荐一篇WinCE的中断架构的文章,如下: http://msdn.microsoft.com/zh-cn/library/ms836807.aspx   建议对WinCE中断不了解的朋友,可以先看看这片文章。架构如图:     这张图想必很多人都见过,主要这张图太经典了,所以还是贴出来唠叨几句

dujiajiyizyj的专栏 479

Authentication Assertion Tickets,SAP 系统到系统单点登录里的短命凭证

SAP 系统间的身份传递机制存在 Authentication Assertion Ticket 和 SAP Logon Ticket 两种易混淆的凭证。前者用于系统间短时身份委托(有效期2分钟,通过HTTP头传输),后者用于浏览器SSO(可配置有效期,通过Cookie传输)。Assertion Ticket依赖签发系统的数字签名和严格的时间同步,适用于ABAP/Java系统间的后台作业调用。现代SAP架构已转向OAuth 2.0等标准协议,但老系统中仍需注意两种票据的关键差异:传输方式、有效期、接收方限制

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 602

wince5.0 Eboot下USB中断机制

wince5.0 Eboot下USB中断机制         开始在EBOOT中使用USB的时候很奇怪中断响应。因为在EBOOT和STEPLDR中都没有看到有对中断向量表部分的处理。那么这个中断是怎么触发?         最后在USB.C中的Isr_Init找到这句话: pISR =(unsigned)(0xEA000000)+(((unsigned)IsrHandler - (0x800

无语僧 354

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【bootloader】关于2440+WinCE5.0,2440init.s文件代码问题

作者:gooogleman 日期 2011.09.08 刚才一个小伙子在论坛提问如下: 我在学习2440+WinCE5.0系统,正在看中断相关的。在文件2440init.s里找到如下代码AREAInit,CODE,READONLYENTRY;1)Thecode,whichconvertstoBig-endian,sho...

weixin_34292959的博客 84

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

WINCE5.0+2443 camera中断不能进来的原因

<br />因为项目需要,我需要调试和完成WINCE5.0+2443系统和驱动的功能,在调试camera驱动的时候,发现一个很郁闷的问题,就是camera的中断一直进不来,因为我之前在WINCE6.0+2443系统中已实现了camera中断了,而WINCE5.0和WINCE6.0下的camra驱动架构基本一样,可是为什么camera中断一直会进不来呢?分析如下:<br />1.       中断ISR对camera中断设置不正确。<br />在OEMInterruptHandler()函数中加入调试信息,只

chinesedragon2010的专栏 2073

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

WINCE5.0和WINCE6.0的内存与系统架构

<br />WINCE5.0和WINCE6.0的内存与系统架构<br />http://topic.csdn.net/u/20090410/14/75bba2cb-cefc-4ca5-b4f5-4165bbf16006.html<br />http://wenku.baidu.com/view/b7adad4bcf84b9d528ea7ab0.html<br />http://msdn.microsoft.com/en-us/library/bb331824.aspx<br />http://www.msd

chinesedragon2010的专栏 2414

wince中断处理

 1 WinCE中第一次对中断的处理是在OAL的OEMInit()中,该函数调用OALIntrInit()完成对中断的初始化. 2 OALIntrInit()对中断的初始化做了如下工作:2.1 通过配置IPR0-IPR33设置中断优先级,优先级定义在g_IntPriorities和g_IntPriorities2中,其中IRQ_OSMR0为最高优先级, IRQ_KEYPAD为最低优

chenyt2007的专栏 2114

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

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

josh915的专栏 1379

wince 5.0 .2440 5.0BSP的中断过程

以前在优快云写过一些wince5.0中断的文章,现在重新看看,发现以前的有些理解是错误的,想翻开来改改,可是郁闷的优快云在前台没有返回后台的编辑功能,所以现在重新写一篇纠正一下。 首先描述wince5.0 (2440BSP)的中断流程

menuconfig的专栏 724

WINCE5.0的中断深入了解

WINCE5.0的中断深入了解1.总体了解流程首先描述wince5.0 (2440BSP)的中断流程:流程1.创建事件aà创建线程ISTà用InterruptInitialize〈系统中断号绑定线

618
上一篇: Wince5.0下如何将Public和Private下的代码移植到BSP下
下一篇: 扩展wince5物理中断
alien75
博客等级 码龄25年 195粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值