本站首页    管理页面    写新日志    退出


«July 2025»
12345
6789101112
13141516171819
20212223242526
2728293031


公告

☆★☆★☆★☆★☆★☆
生活的点点记录,以及一些体会...........

喜欢是淡淡的爱,爱是深深的喜欢.

时间会见证一切.......................

欢迎大家指出错误,共同进步..........

期待中..............................

☆★☆★☆★☆★☆★☆


我的分类(专题)

日志更新

最新评论

留言板

链接

世纪音频

 

 


Blog信息
blog名称:
日志总数:162
评论数量:312
留言数量:0
访问次数:939719
建立时间:2005年5月17日




[wince study]wince源码分析中断之map.c
文章收藏

oceanblue 发表于 2008/5/8 9:39:50

wince学习手记OAL是位于WindowsCE内核与目标设备硬件之间的一个代码层,用于实现windowCE与目标设备硬件之间的通信。为了实现内核与硬件之间最基本的通信功能,OEM必须实现一些必要的功能,同时为了适合不同的硬件配置与操作系统功能,OEM有必要的选择实现一些其他的功能。在OAL开发过程中,OEM需要实现下列主要功能或函数:.Startup函数;.调试串口;.OEMInit函数;.系统计时器;.中断处理;.内核的输入/输出(ioctl);.KITL。下面给出微软公司提供的各个功能的函数。/***************************中断处理****************************/./platform/Common/src/common/intr/base/map.cThe file implement simple table/array based mapping between IRQ and SYSINTRwhich is suitable for most OAL implementations.这个文件主要是用来定义IRQ和SYSIRQ的映射关系。主要函数如下:OALIntrMapInit();//此函数由OALInterruptInit调用来初始化IRQ和SYSIRQ的映射,只是简单的映射数组的初始化;初始化为未定义类型。VOID OALIntrStaticTranslate(UINT32 sysIntr, UINT32 irq); //此函数建立IRQ和SYSINTR的静态映射,大多数情况下都不可能用到,只有在SYSINTR_RTC_ALARM和过时的设备驱动的时候会用到。BOOL OALIntrTranslateSysIntr(UINT32 sysIntr, UINT32 *pCount, const UINT32 **ppIrqs);//此函数将SYSINTR映射为它相应的IRQ,主要用在OEMInterruptXXX中对于给定SYSINTR得到其IRQs。UINT32 OALIntrTranslateIrq(UINT32 irq);//此函数将IRQ映射为相应的SYSINTR。UINT32 OALIntrRequestSysIntr(UINT32 count, const UINT32 *pIrqs, UINT32 flags);//此函数为给定的IRQ分配一个新的SYSINTR,如果此IRQ没有静态映射,就创建一个。BOOL OALIntrReleaseSysIntr(UINT32 sysIntr);//此函数释放一个SYSINTR,并且消除存在的静态映射。问题:SYSINTR于IRQ的映射关系是不是一对一?BOOL OALIntrTranslateSysIntr(UINT32 sysIntr, UINT32 *pCount, const UINT32 **ppIrqs)使用的是地址来进行映射,而UINT32 OALIntrTranslateIrq(UINT32 irq)使用值来进行映射,目前我认为应该是一对一的关系来映射的。感想:微软的程序写的很缜密,设计的很合理,能让我学到不少编程的方法。映射关系的编程可以参考微软的中断映射表。


阅读全文(3524) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144753994 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号