2973|4

85

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

谁用过FreeScale的i.MX31,ADS1.2中,中断搞不定啊! [复制链接]

我用FreeScale的i.MX31(ARM11)做嵌入式系统,在WinCE下能使用中断,但是winCE初始化中断的代码是看不到的!
我在ADS1.2中做BootLoader,中断调不出来!发生中断时,没有自动跳转到中断向量那里去。

1、CP15中VE(Bit24)置0, V( Bit13)置0,即中断向量放在0地址。并且中断向量在对应地址都安排好了。
(所有中断向量都放了1条指令:装转到本身地址,即死循环,这样当发生中断时,查看pc值就知道了)
2、SPSR的F(Bit6)和I(Bit7)都置0,即允许IRQ和FIQ
3、每个运行模式的栈都设置了。最后模式设为系统模式(管理模式也试过)

我用Timer2测试(中断号为27),CPU的AVIC(ARM Vector Interrupt controller)如下设置
(1)INTCNTL设为0,允许Normal Interrupt和Fast Interrupt
(2)NIMASK默认0x1F,即不屏蔽任何中断
(3)ENNUM写27(INTENABLEL自动会设置为0x08000000,表示允许27号中断)
(4)INTTYPEH和INTTYPEL都为0,表示所有中断都当作普通中断
(5)NIPRIORITY3设置为0x0000F000,27号中断优先级为15,最高优先级
(6)Timer2模块中,计数器、比较计数器、中断允许都设置好了。我设置为3秒钟之后产生中断

等待3秒后,Timer2模块中中断标识发生了,AVIC中Pending(未决中断)寄存器对应位置位了,但就是没跳转到0x18处。
我设置了断点在0x18处,也没见跳转到那里????

我将所有中断改为FIQ,也没有跳转。

如果我故意去访问无效的地址,那么引起Data Abort时能自动跳到0x10处死循环!用SWI指令也能跳转到0x08处。
就是我用正常中断不能正常跳转过去!!!! 我改用KeyPad按键中断,当按键时,AVIC中Pending也有对应位置位了,但仍旧不能跳转到中断向量那里去?

我之前在ADS1.2中调试出来过ARM10的PXA270的中断,因此编译器应该不是问题。
是我哪里设置的不对? 还是另有地方我没有做到?
各位大侠,有谁做过i.MX31的中断,请给指导一下。

最新回复

我开了另外一个帖子,所以这个关掉  详情 回复 发表于 2010-1-25 17:32
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没做过,帮顶下。

MARK.
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
看你的描述应该没什么问题啊,i.MX31没用过
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
自己顶一下!各位大侠看看!
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

5
 
我开了另外一个帖子,所以这个关掉
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表