wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:2093回复:28

关于修改OAL--给分的 (wxl_50685330请进)

楼主#
更多 发布于:2004-12-08 14:02
我想把我的ISR放在OAL层, 我是这么做的:
(1)修改%_WINCEROOT%\Public\common\oak\csp\i486\oal下面的fwpc.c,在其中增加我自定义的ISR,并在InitPIC函数中与指定的中断号相关联。
(2)在上面目录下,利用命令行编译生成i486oal.lib(确实生成了)

请问大侠:
是不是这样做就可以了?以后创建的工程都会使用更新后的i486oal.lib?

[编辑 -  12/9/04 by  wwei_wang]
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-27 13:20
条条大路通罗马,那我就绕道了喔:)))
根据地的兄弟们,团结就是力量
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-27 09:39
谢谢大哥的指点,看样子,小弟已经把大哥成功地引上了歧途! :P
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-23 14:31
昨天找了半天,才翻出来一本书(:)),虽然讲的不详细,但使用中断门对软中断的调用是一样的,虽然中断向量表的结构变了,但用hookinterrupt的话应该帮你做相应设置

对了,你确定一下cs的cpl(段寄存器cs的低两位)是多少,应该是0才能用int n指令。

根据地的兄弟们,团结就是力量
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-12-22 16:14
你娃都认识到问题的严重性了还不赶快找根绳子和一棵树,不会还要问我接下来怎么做了吧:)))))

保护模式低下进ISR是要有权限的,产生异常我觉得是执行权限在RING 3,中断门是保护模式用来进中断服务的,时间太久了,只有点点印象了,而且当时没有实际实践:(,实在需要去买本书来看看。保护模式低下用汇编写东西有点儿考手艺喔:),要花些时间。要不换个方式?


我说直接用中断线来做是说你把中断线上弄个脉冲(这个不用我说怎么弄吧:)) ),看ISR可以打印信息不,对了,你给degyhy123说说用LoadIntChainHandler挂ISR的问题吧,他说他搞不定,你娃是专家了三:)
根据地的兄弟们,团结就是力量
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-16 18:47
大哥你终于来了,兄弟我眼睛都蓝了:)))
(1)ISR我是用LoadIntChainHandler函数挂的,肯定挂上了,而且isr能进去。:)因为我曾经用一个共享irq测过。但现在我要驱动的硬件还没有做好。
(2)我在OEMIoControl里面单步执行到int 9 或 int 73 时都产生异常。
(3)“在用户模式不能直接进中断服务,保护模式的有些麻烦喔,有兴趣可以查查,用中断门”。大哥,在保护模式下模拟硬件中断是否可行?
(4)悄悄地问一个很菜的问题,“中断门”是什么东东?怎么操作啊?还请大哥明示。
(5)另外前面你说“要不你就直接用硬件中断来触发试试”,何意?

我的妈呀,问了这么多问题啊,真是太罗嗦了,我都无法原谅我自己:)))
大哥,请你原谅我的死缠烂打P :P :P :P :P。
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-16 13:24
:)还想起一个事,在用户模式不能直接进中断服务,保护模式的有些麻烦喔,有兴趣可以查查,用中断门,要不你就直接用硬件中断来触发试试
根据地的兄弟们,团结就是力量
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-12-16 13:21
哈哈,稳住稳住,昨天革命工作如火如荼,没搞赢来:)))


没有搞定?怎么没搞定法?isr没挂上去?还是挂上了用int 73得不到执行?

你确保中断服务挂上了是怎么确定的?你可以查中断向量表,然后根据入口去反汇编入口地址的代码来看看是不是真的把isr挂上去了。首先解决这个问题,然后其他的就好说了。

喔,忘了一个重要的事情,286后的保护模式是使用中断描述符表的,中断向量表可能不是从物理地址0开始的喔。
根据地的兄弟们,团结就是力量
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-12-15 09:39
wxl_50685330大哥你怎么还不来啊?小弟简直是望眼欲穿哪 :P :P

[编辑 -  12/15/04 by  wwei_wang]
Come on, let us drive the world.
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-12-14 15:15
wxl_50685330大哥啊,革命还没有成功,兄弟正在努力:))
相关代码如下:
_asm {
int 73
}
大哥再帮我分析一下,这到底是咋回事儿呢?它为啥就不听话呢?
如果你有时间能帮兄弟试一下,那就更好了 :P :P :P
真是劳我“民”伤你的“才”啊,哈哈哈



[编辑 -  12/14/04 by  wwei_wang]
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-12-14 14:51
哪个要小心的,不要怕哈,我不吃人的哈

革命成功没有喔?应该没得问题了三
根据地的兄弟们,团结就是力量
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-12-14 14:02
你是得小心点,不过还有一个人得要小心你了,哈哈哈哈
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-12-14 13:52
哪个要小心???说的是我了吧,哈哈
根据地的兄弟们,团结就是力量
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-12-14 13:39
真是英雄难过美人关啊,唉,看样子有人要小心了 :P :P :P :P

多谢大哥指点,我再试试先!!

 :cool:

[编辑 -  12/14/04 by  wwei_wang]
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-12-14 13:11
喂,你娃哪儿弄这么个东西,头都看晕了,有点儿拉风喔,哈哈


兄弟儿,你不是把你的9号中断安排在了73号位置得嘛,用int 73三,咋个搞起的嘛:)))
ps : int n指令工作为,从中断向量表基址处加n*4的位置得到中断服务入口地址并跳转到那里执行

根据地的兄弟们,团结就是力量
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-12-14 10:08
wxl_50685330大哥,问题还是没有解决啊,你再帮我看看吧:)))
我想利用汇编指令int 9来触发硬件中断9,我是这么做的:
运行平台是:PB的Emulator
我修改了OemIocontrol,并添加了相应代码,与触发中断相关的主要代码如下:
。。。
BOOL ret = TRUE;
__try {
         _asm {
              int 9
         }
      } __except (EXCEPTION_EXECUTE_HANDLER) {
                ret = FALSE;
        }
。。。
我重新编译了(先clean,然后rebuild platform)。然后在应用中调用KernelIocontrol,当代码执行到int 9时,产生例外,每次都是这样。不知为何?究竟如何模拟硬件中断还请大哥多多指点! :P :P
Come on, let us drive the world.
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-12-13 15:27
岂敢岂敢 :P :P :P :P
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-12-13 15:24
哈哈,谦虚喔,现在有超英赶美之势!
根据地的兄弟们,团结就是力量
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-12-10 18:20
谢谢wxl_50685330大哥指点!我去试试,我会把结果告诉你的。
对了大哥,我哪能跟你比啊,我说话只是一小片一小片的,你说话才是一大片一大片di
 :P :P :P

另外,刚才那个兄弟照过我了,他的板子是ARM架构的,我给了他一些建议,不知对他是否有帮助 :cool:
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-12-10 17:10
是放到了73号中断的对应位置

兄弟儿,上次我记得你弄过Hive registry的吧,那边有个兄弟在问,我告诉他找你了:)))

http://www.driverdevelop.com/forum/html_83007.html?1102668663
根据地的兄弟们,团结就是力量
上一页
游客

返回顶部