找回密码
 注册
搜索
查看: 1324|回复: 9

[讨论] 在MT6223下的驱动开发求助

[复制链接]
发表于 2008-1-17 15:14:46 | 显示全部楼层 |阅读模式
1\在MT6223下,我们可以设置IRQ的32种的一种为FIQ中断,我现在想在某些情况下,设置EINT为FIQ以便在中断起来时候立即响应,但无论如何配置,总是一打开FIQ中断模式就重启,不知道有没有高人指点一下,如何注册这个FIQ,然后其FIQ处理函数里面如何写,要注意些什么东西!
2\关于程序时序问题,我使用GPIO匹配某时序的时候,差了几个CPU指令周期,导致时序错位,但是,我想在CODE里面加
__ASM{
    NOP......
}
却提示不支持,不知道有没有什么办法来做程序的这种空延迟?
发表于 2008-1-17 17:10:40 | 显示全部楼层
空延迟不一定要用汇编吧?
点评回复

使用道具 举报

 楼主| 发表于 2008-1-17 17:26:30 | 显示全部楼层
是不定用汇编,问题在我用一个(register uint32)i++;来延迟,结果被编译优化掉了还是怎么,没有效果,而且不用汇编很难控制我这么小的时序
点评回复

使用道具 举报

 楼主| 发表于 2008-1-17 17:27:36 | 显示全部楼层
现在问题就怎么延迟,怎么算CPU指令时序!
点评回复

使用道具 举报

发表于 2008-1-18 10:51:39 | 显示全部楼层
arm 中的irq和fiq的区别在于fiq的中断优先级比irq高,所以也就意味着fiq可以中断irq,但不是说fiq响应中断速度比irq快!其实响应速度是一样的。所以lz如果你的中断程序并不是想在irq中断中响应fiq,那么就最好不要用fiq了!

另外ads 1.2 c的内嵌汇编是:
  __asm{
   nop;
   nop;
   }
[此贴子已经被作者于2008-1-18 13:50:06编辑过]
点评回复

使用道具 举报

 楼主| 发表于 2008-1-18 11:49:02 | 显示全部楼层
第一,FIQ和IRQ响应速度是不同的,或者可以说是因为优先级不同导致,因为做为IRQ,我要等到其他比IRQ处理事件高的事件处理完后才能触发,对于用户来说很快,但对于系统内部来说,在几百个US,甚至几个MS内才能触发运行,而FIQ处理是在2个US内!
第二,我的嵌入汇编指令在展讯平台上验证过,是绝对OK的,但是在MTK上就失效了,我才会问这样的问题
点评回复

使用道具 举报

发表于 2008-1-18 14:11:50 | 显示全部楼层
本来不想说,但看到这里实在是感觉不说不行啊,与心不忍!
一、问题解答在下:
     在Addison Wesley - ARM Architecture Reference Manual (2nd Edition).pdf 手册52页写的很明确,arm中的中断优先级别是:reset >data abort >fiq >irq >prefetct abort >(swi,undfine);另外再熟悉下什么是中断优先级和中断发生原理,你就明白我在第5楼说得了。至于您说的比irq高的事件,就是fiq,难道你还期望在发生,reset和data abort? 给您点建议,再努力看看cpu的exception(通常说的中断)。
二、我已经很明确说了ads1.2的内嵌汇编格式(我的asm是小写)。从你在第二点的描述看,你对编译系统了解的估计不多,据我所知道,展迅d,m平台和mtk平台在大陆用的都是ads编译系统,我无法理解都是用ads1.2,凭什么支持的语法格式不一样?

   给点建议,lz还是多学点扎实的基础知识吧!个人感觉你目前的知识结构还可以,但是还需要再加强,希望你以后能成为一个牛人。
点评回复

使用道具 举报

 楼主| 发表于 2008-1-18 17:03:04 | 显示全部楼层
不谈这些不实际的问题,现在我的这个延迟问题是我做的一个东西的瓶径所在!
mikal告诉我怎么做吧,我快疯了,所以到处求助!
我看编译的汇编也是没有错的,但实际效果差太远 ,根本无法按想象的延迟CPU指令树
点评回复

使用道具 举报

 楼主| 发表于 2008-1-18 18:19:13 | 显示全部楼层
总算搞定一半了,呵呵,跟NOP无关,还是编译环境的问题,还剩下FIQ的问题,不知道哪位高人帮忙解决啊
点评回复

使用道具 举报

发表于 2008-1-18 23:28:41 | 显示全部楼层
学习一下!
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-15 20:53 , Processed in 0.060449 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表