摘要: 介绍一种简洁、高效、灵活的ARM异常中断处理方法。 在ARM中,由于所有的中断都使用同一个异常中断入口地址,即0x00000018。因此需要在异常中断处理程序中根据相应的中断号调用对应的中断服务函数。 一般有两种处理方式: 1. 在汇编中保存现场,然后调用C语言编写的中断处理程序,任务处理完成之后,再返回到汇编中恢复现场,并返回到断点。其中C语言编写的中断处理程序,通过switch语句对INTOFFSET进行判断,然后散转执行对应的服务函数。 IMPORT IRQ_EXCEPTION 0x00000018 LDR PC,=IRQ_ENTRY ………… ……………………………… IRQ_ENT. 阅读全文
posted @ 2012-02-16 11:37 硅谷芯微嵌入式园地 阅读(511) 评论(0) 推荐(0)
摘要: 使用OpenJTAG来检查硬件焊接问题。 今天有一个上门来的客户,他们公司使用S3C2440做了一个产品,碰到一些问题:1. 通过H-JTAG烧录程序到NOR Flash,有时可以烧,有时不可以烧;无法烧写时,H-JTAG出现“无法加载驱动”的错误提示。2. 碰运气烧写成功后,vivi有时候可以启动,有时候不行。3. vivi启动后,通过USB烧写Nand Flash,必导致串口没有任何反应。 因为主要器件的原理图与我手上的一块开发板完全一样,并且我对它所用的supervivi非常熟悉,所以开始我认为是硬件设计得不稳定,导到有时候可以运行,有时候无法运行。 于是,我修改一个u-boot,把C. 阅读全文
posted @ 2012-02-16 11:29 硅谷芯微嵌入式园地 阅读(488) 评论(0) 推荐(0)