0

关于投票
"中断就复位的概率高达50%"--与菜农判断一致,病症找到

http://bbs.21ic.com/club/bbs/ShowAnnounce.asp?v=&ID=2432748

hotpower 发表于 2007-1-30 23:42 ZLG-ARM ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

47楼: "中断就复位的概率高达50%"--与菜农判断一致,病症找到了,好解决

前面已说过http://www.ednchina.com/blog/hotpower/15390/message.aspx

丢中断有点伪中断的味道,这要从LPCARM的中断机制推起:

  当某个中断源被引发,IRQStatus或FIQStatus的某位将置'1',
VectAddrs[x]将被装入VectAddr,从而跳入
LDR     PC, [PC, #-0x0FF0];Vector from VicVectAddr
在此PC才将VectAddr装入后跳入VectAddr指出的地址,即散转了中断.
  假设VectAddrs[x]没被被装入到VectAddr中,且前次中断退出时执行
了VIC->VectAddr = 0x00;/* 通知VIC中断处理结束*/
那么本次的中断将会执行"软件复位",故中断肯定丢失.


所以我在实战中要避开VectAddrs[0],且以VectAddrs[0]为默认中断地址.
这样就可拦截非法中断了.当然其他不用的VectAddrs[x]我也指向默认中断地址.

假定该论证成立(我用软件仿真确实存在此隐患),那么我的第2个疑问"中断号错位"就自然成立了,因为VectAddrs[0]一般为正常的中断向量地址,如果经常性的
VectAddrs[0]被执行,那么病症肯定在此.

"中断就复位的概率高达50%"--与菜农判断一致,病症找到了,好解决
假设VectAddrs[x]没被被装入到VectAddr中,且前次中断退出时执行
了VIC->VectAddr = 0x00;
那么本次的中断将会跳入VIC->VectAddr即PC=0,也就是"软件复位".

所以,汽车电子应该好好学学菜农的非典架构.

我的产品都敢全部采用,你做个实验不难吧~~~别学我偷懒~~~

系统分类: ARM
用户分类: 非典型LPCARM之攻防体系
标签: 无标签
来源: 整理
发表评论 阅读全文(945) | 回复(0)

0

关于投票
如何拦截向量中断

http://bbs.21ic.com/club/bbs/ShowAnnounce.asp?id=2420121

hotpower 发表于 2007-1-30 07:26 ZLG-ARM ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

39楼: "不稳定"还是不明白,估计你还缺一步拦截

"不稳定"???是什么意思???

丢中断???中断号错位???

丢中断有点伪中断的味道,这要从LPCARM的中断机制推起:

  当某个中断源被引发,IRQStatus或FIQStatus的某位将置'1',
VectAddrs[x]将被装入VectAddr,从而跳入
LDR     PC, [PC, #-0x0FF0];Vector from VicVectAddr
在此PC才将VectAddr装入后跳入VectAddr指出的地址,即散转了中断.
  假设VectAddrs[x]没被被装入到VectAddr中,且前次中断退出时执行
了VIC->VectAddr = 0x00;/* 通知VIC中断处理结束*/
那么本次的中断将会执行"软件复位",故中断肯定丢失.

所以我在实战中要避开VectAddrs[0],且以VectAddrs[0]为默认中断地址.
这样就可拦截非法中断了.当然其他不用的VectAddrs[x]我也指向默认中断地址.

假定该论证成立(我用软件仿真确实存在此隐患),那么我的第2个疑问"中断号错位"就自然成立了,因为VectAddrs[0]一般为正常的中断向量地址,如果经常性的
VectAddrs[0]被执行,那么病症肯定在此.

真正可靠的中断应该是类似PIC的单向量中断,即正确的中断应该是IRQStatus对应位上所对应的中断号的地址VectAddrs[x].

只有同时满足了这两个条件的才真正的是此时的中断.

VectAddr只是快速散转后的地址VectAddrs[x].

故可靠的ISR()应该是进入后立即判断IRQStatus对应位是否为'1',是则执行本ISR(),否则执行默认中断进行IRQStatus位比较分枝中断,此时实际是放弃了对
VectAddr的信任.

可能我说得不太明白或过于谨慎,但此法肯定能执行正确的中断(只要在向量中断被引发后).

若实际应该中断,但中断根本未被引发,那菜农也无力回天~~~



系统分类: ARM
用户分类: 非典型LPCARM之攻防体系
标签: 无标签
来源: 整理
发表评论 阅读全文(1070) | 回复(0)

2

关于投票
菜农的真心告白

http://bbs.21ic.com/club/bbs/ShowAnnounce.asp?id=2420121

LPC2368,Timer之外的中断很不稳定,请各位大虾指教,谢谢!
汽车电子 发表于 2007-1-19 23:42 ZLG-ARM ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴

   用LPC21xx、LPC22xx做产品也很久了,且很稳定。

   我就觉得奇怪了,Keil的RTL用Timer0,也是中断的,就很稳定,没watchdog,运行几天几夜都不死机。 我参考了RTL的中断初始化及中断函数,其它中断就是不稳定,经常一中断就复位。

   哪些朋友在用LPC236x搞开发,多多指教,谢谢谢谢!

我认为在现行条件下非典估计是有效的方法
hotpower 发表于 2007-1-29 22:34 ZLG-ARM ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴

可以说我非常深入地研究了LPCARM的中断体系.
菜农对23xx的中断体系的10点请教意见一文.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;               LPC23xx非典FLASHROM的中断向量表架构
                IMPORT  VIC_Vect_Addr0
IRQ_Handler     STMFD   SP!, {R11, R12, LR};真保护R11R12, 假保护LR(用于运算)
;//                LDR     R12, VIC_Vect_Addr   ;取VICVectAddr物理地址
;//                LDR     R12, [R12]        ;取出取VICVectAddr内实际向量中断号(非地址)
                LDR     R12, [PC , #-0x14c];取出取VICVectAddr内实际向量中断号(非地址)
                AND     R12, #0x1f      ;防止32个中断序号越界,在此可再做序号越界处理(可省略)
                LDR     R11, =VIC_Vect_Addr0
                LDR     R12, [R11, R12, LSL #2];散转到用户真正的向量中断地址
                STR     R12, [SP, #0x08];将中断向量地址R12写入事先保存的那个LR空间
                LDMFD   SP!, {R11, R12, PC};恢复R11R12,同时PC跳入中断向量地址执行
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

在这个架构中,进入中断比正常的多了7条ARM指令,但它的可靠性却增加很多,我已论述了很多并经过产品实战批量生产.

最近我在做作业,主要的目的是如何从MCU向ARM过渡.最终我首选了LPC213x/210x系列.

被菜农这么一搞,实在不象话---因为最后ARM比MCU更简单和好用.

通过这个架构,融合了MCU的多中断向量和单中断向量等特点,做到了像PIC的
单中断向量架构的可靠且比其散转迅速,又不失多中断向量的功能明确性.

汽车电子说"中断不稳定"我不太明白...
但是我敢肯定菜农的拦截方式肯定可靠,虽然速度有点损失,但安全和速度选择其一时,前者估计是多数人的选择.

ARM的指令系统非常完美,这是一般MCU和DSP都不如的,他们都要在中断中保护大量的现场数据,而ARM要开销的少得多.

难道MCU的多字节指令集和低速我们都能宽容,那么菜农多7条ARM指令就不对吗???

中断向量表在RAM中可靠还是在FLASH中更可靠这个问题没意思去争论,只能通过事实来说话.
就如一个行业旗手的一位总工不听菜农的意见,将海量数据存放在RAM中用电池维持掉电后的数据不丢失.
由于每天必须开关机一次,维持约10个小时.(电池的容量肯定没问题)
当产品使用后且在干扰强烈的环境下,其惨状我就不列举了~~~

我当初对他说:我们不能像书本上设计产品那样,我们必须考虑安全可靠.
但得到的是:"你们农民知道个什么???我们的产品就只差做到联合国了"...
哈哈~~~说笑了,原话当然不会是这样,但傲慢的劲头是十足的~~~

最后~~~只能后悔没听老农的真心告白~~~

系统分类: ARM
用户分类: 非典型LPCARM之攻防体系
标签: 无标签
来源: 整理
发表评论 阅读全文(803) | 回复(0)
总共 , 当前 /