本帖最后由 ilikedota 于 2015-11-30 23:41 编辑
1、新建了个ARM工程,打开启动代码文件,发现里面有一段IRQ_Handler B IRQ_Handler
FIQ_Handler B FIQ_Handler指令,这个不是个无条件跳转指令吗?这样跳转下去不就是个死循环吗?这个时怎么回事?我新建了个外部中断的历程,发现外部中断能进去啊,也执行了我的代码,这究竟时怎么回事,难道时对启动代码理解错了?2、ARM中断要保存现场,并切换到IRQ模式。既然要保存现场,肯定涉及到相关汇编指令对寄存器的操作,这些操作指令在哪里啊,我在启动代码里找了半天也没有找到啊,还是说这个保存的工作不需要什么汇编指令,ARM内核的硬件机制自动会去做这件事?那如果时ARM内核的硬件机制自动会去做,那为什么在使用ucos操作系统时,中断现场保存是要用户自己写汇编指令来实现呢?此外进入IRQ模式是不是当中断发生了,ARM内核自动从用户模式切换到IRQ模式啊?使用ucos好像也是要自己写汇编指令来现实,这究竟时怎么回事,搞得一头雾水,请各路高人帮忙分析分析,答疑解惑,小弟在此谢过了!!!
|