[ZLG-ARM] IAR环境下的FIQ

[复制链接]
2275|4
 楼主| ybqchj 发表于 2009-5-19 23:51 | 显示全部楼层 |阅读模式
哪位朋友帮帮忙上传一份在IAR环境下带有IRQ和FIQ中断的启动代码(ARM7--lpc2468),谢谢了
usber 发表于 2009-5-20 12:44 | 显示全部楼层

有例程吧

  
usber 发表于 2009-5-20 12:44 | 显示全部楼层

软件中自带例程

  
 楼主| ybqchj 发表于 2009-5-20 23:58 | 显示全部楼层

re

下面是我例程带的启动代码,哪个高手帮我改一下(能进入FIQ中断)<br />;/*****************************************************************************<br />;*&nbsp;&nbsp;&nbsp;startup.s:&nbsp;startup&nbsp;file&nbsp;for&nbsp;NXP&nbsp;LPC24**&nbsp;Family&nbsp;Microprocessors<br />;*<br />;*&nbsp;&nbsp;&nbsp;Copyright(C)&nbsp;2006,&nbsp;NXP&nbsp;Semiconductor<br />;*&nbsp;&nbsp;&nbsp;All&nbsp;rights&nbsp;reserved.<br />;*<br />;*&nbsp;&nbsp;&nbsp;History<br />;*&nbsp;&nbsp;&nbsp;2006.09.01&nbsp;&nbsp;ver&nbsp;1.00&nbsp;&nbsp;&nbsp;&nbsp;Prelimnary&nbsp;version,&nbsp;first&nbsp;Release<br />;*****************************************************************************/<br /><br />;/*<br />;&nbsp;*&nbsp;&nbsp;The&nbsp;STARTUP.S&nbsp;code&nbsp;is&nbsp;executed&nbsp;after&nbsp;CPU&nbsp;Reset.&nbsp;This&nbsp;file&nbsp;may&nbsp;be&nbsp;<br />;&nbsp;*&nbsp;&nbsp;translated&nbsp;with&nbsp;the&nbsp;following&nbsp;SET&nbsp;symbols.&nbsp;In&nbsp;uVision&nbsp;these&nbsp;SET&nbsp;<br />;&nbsp;*&nbsp;&nbsp;symbols&nbsp;are&nbsp;entered&nbsp;under&nbsp;Options&nbsp;-&nbsp;ASM&nbsp;-&nbsp;Define.<br />;&nbsp;*<br />;&nbsp;*&nbsp;&nbsp;REMAP:&nbsp;when&nbsp;set&nbsp;the&nbsp;startup&nbsp;code&nbsp;initializes&nbsp;the&nbsp;register&nbsp;MEMMAP&nbsp;<br />;&nbsp;*&nbsp;&nbsp;which&nbsp;overwrites&nbsp;the&nbsp;settings&nbsp;of&nbsp;the&nbsp;CPU&nbsp;configuration&nbsp;pins.&nbsp;The&nbsp;<br />;&nbsp;*&nbsp;&nbsp;startup&nbsp;and&nbsp;interrupt&nbsp;vectors&nbsp;are&nbsp;remapped&nbsp;from:<br />;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x00000000&nbsp;&nbsp;default&nbsp;setting&nbsp;(not&nbsp;remapped)<br />;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x40000000&nbsp;&nbsp;when&nbsp;RAM_MODE&nbsp;is&nbsp;used<br />;&nbsp;*<br />;&nbsp;*&nbsp;&nbsp;RAM_MODE:&nbsp;when&nbsp;set&nbsp;the&nbsp;device&nbsp;is&nbsp;configured&nbsp;for&nbsp;code&nbsp;execution<br />;&nbsp;*&nbsp;&nbsp;from&nbsp;on-chip&nbsp;RAM&nbsp;starting&nbsp;at&nbsp;address&nbsp;0x40000000.&nbsp;<br />;&nbsp;*/<br /><br />;&nbsp;Standard&nbsp;definitions&nbsp;of&nbsp;Mode&nbsp;bits&nbsp;and&nbsp;Interrupt&nbsp;(I&nbsp;&&nbsp;F)&nbsp;flags&nbsp;in&nbsp;PSRs<br /><br />Mode_USR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEFINE&nbsp;&nbsp;0x10<br />Mode_FIQ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEFINE&nbsp;&nbsp;0x11<br />Mode_IRQ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEFINE&nbsp;&nbsp;0x12<br />Mode_SVC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEFINE&nbsp;&nbsp;0x13<br />Mode_ABT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEFINE&nbsp;&nbsp;0x17<br />Mode_UND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEFINE&nbsp;&nbsp;0x1B<br />Mode_SYS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEFINE&nbsp;&nbsp;0x1F<br /><br />I_Bit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEFINE&nbsp;&nbsp;0x80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;when&nbsp;I&nbsp;bit&nbsp;is&nbsp;set,&nbsp;IRQ&nbsp;is&nbsp;disabled<br />F_Bit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEFINE&nbsp;&nbsp;0x40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;when&nbsp;F&nbsp;bit&nbsp;is&nbsp;set,&nbsp;FIQ&nbsp;is&nbsp;disabled<br /><br />;&nbsp;Exception&nbsp;Vectors<br />;&nbsp;Mapped&nbsp;to&nbsp;Address&nbsp;0.<br />;&nbsp;Absolute&nbsp;addressing&nbsp;mode&nbsp;must&nbsp;be&nbsp;used.<br />;&nbsp;Dummy&nbsp;Handlers&nbsp;are&nbsp;implemented&nbsp;as&nbsp;infinite&nbsp;loops&nbsp;which&nbsp;can&nbsp;be&nbsp;modified.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROGRAM&nbsp;&nbsp;&nbsp;&nbsp;?RESET<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COMMON&nbsp;&nbsp;&nbsp;&nbsp;INTVEC:CODE(3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUBLIC&nbsp;&nbsp;__program_start<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXTERN&nbsp;&nbsp;&nbsp;&nbsp;Reset_Handler,&nbsp;Undef_Handler,&nbsp;SWI_Handler,&nbsp;PAbt_Handler,&nbsp;DAbt_Handler,&nbsp;FIQ_Handler<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CODE32&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;Always&nbsp;ARM&nbsp;mode&nbsp;after&nbsp;reset<br /><br />__program_start<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;=Reset_Handler<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;=Undef_Handler<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;=SWI_Handler<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;=PAbt_Handler<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;=DAbt_Handler<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;[PC,&nbsp;#-0x0120]&nbsp;&nbsp;;&nbsp;Vector&nbsp;from&nbsp;VicVectAddr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PC,&nbsp;=FIQ_Handler<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LTORG<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENDMOD<br /><br />;&nbsp;Reset&nbsp;Handler<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MODULE&nbsp;&nbsp;&nbsp;&nbsp;?CSTARTUP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RSEG&nbsp;&nbsp;&nbsp;&nbsp;IRQ_STACK:DATA(3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RSEG&nbsp;&nbsp;&nbsp;&nbsp;FIQ_STACK:DATA(3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RSEG&nbsp;&nbsp;&nbsp;&nbsp;SVC_STACK:DATA(3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RSEG&nbsp;&nbsp;&nbsp;&nbsp;ABT_STACK:DATA(3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RSEG&nbsp;&nbsp;&nbsp;&nbsp;UND_STACK:DATA(3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RSEG&nbsp;&nbsp;&nbsp;&nbsp;CSTACK:DATA(3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RSEG&nbsp;&nbsp;&nbsp;&nbsp;ICODE:CODE(3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PUBLIC&nbsp;&nbsp;&nbsp;&nbsp;Reset_Handler,&nbsp;Undef_Handler,&nbsp;SWI_Handler,&nbsp;PAbt_Handler,&nbsp;DAbt_Handler,&nbsp;FIQ_Handler<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXTERN&nbsp;&nbsp;&nbsp;&nbsp;?main<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CODE32<br /><br />Reset_Handler<br /><br />;&nbsp;&nbsp;Enter&nbsp;Undefined&nbsp;Instruction&nbsp;Mode&nbsp;and&nbsp;set&nbsp;its&nbsp;Stack&nbsp;Pointer<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CPSR_c,&nbsp;#Mode_UND|I_Bit|F_Bit<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SP,&nbsp;=SFE(UND_STACK)&0xFFFFFFF8<br /><br />;&nbsp;&nbsp;Enter&nbsp;Abort&nbsp;Mode&nbsp;and&nbsp;set&nbsp;its&nbsp;Stack&nbsp;Pointer<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CPSR_c,&nbsp;#Mode_ABT|I_Bit|F_Bit<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SP,&nbsp;=SFE(ABT_STACK)&0xFFFFFFF8<br /><br />;&nbsp;&nbsp;Enter&nbsp;FIQ&nbsp;Mode&nbsp;and&nbsp;set&nbsp;its&nbsp;Stack&nbsp;Pointer<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CPSR_c,&nbsp;#Mode_FIQ|I_Bit|F_Bit<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SP,&nbsp;=SFE(FIQ_STACK)&0xFFFFFFF8<br /><br />;&nbsp;&nbsp;Enter&nbsp;IRQ&nbsp;Mode&nbsp;and&nbsp;set&nbsp;its&nbsp;Stack&nbsp;Pointer<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CPSR_c,&nbsp;#Mode_IRQ|I_Bit|F_Bit<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SP,&nbsp;=SFE(IRQ_STACK)&0xFFFFFFF8<br /><br />;&nbsp;&nbsp;Enter&nbsp;Supervisor&nbsp;Mode&nbsp;and&nbsp;set&nbsp;its&nbsp;Stack&nbsp;Pointer<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CPSR_c,&nbsp;#Mode_SVC|I_Bit|F_Bit<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SP,&nbsp;=SFE(SVC_STACK)&0xFFFFFFF8<br /><br />;&nbsp;&nbsp;Enter&nbsp;User&nbsp;Mode&nbsp;and&nbsp;set&nbsp;its&nbsp;Stack&nbsp;Pointer<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CPSR_c,&nbsp;#Mode_USR<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SP,&nbsp;=SFE(CSTACK)&0xFFFFFFF8<br /><br />;&nbsp;Enter&nbsp;the&nbsp;C&nbsp;code<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;=?main<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.<br /><br />Undef_Handler<br />SWI_Handler<br />PAbt_Handler<br />DAbt_Handler<br />FIQ_Handler<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LTORG<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENDMOD<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END<br />
xamic 发表于 2009-6-1 20:59 | 显示全部楼层

没有搞过

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

本版积分规则

26

主题

56

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部