📄 main.lst
字号:
191:main.c **** iprintf("IRQ disabled, ");
192:main.c **** }
193:main.c **** else {
194:main.c **** iprintf("IRQ enabled, ");
195:main.c **** }
196:main.c ****
197:main.c **** if ( cpsr & F_Bit ) {
198:main.c **** iprintf("FIQ disabled\n");
199:main.c **** }
200:main.c **** else {
201:main.c **** iprintf("FIQ enabled\n");
202:main.c **** }
203:main.c **** }
204:main.c ****
205:main.c **** static void showsp(void)
206:main.c **** {
207:main.c **** unsigned long mysp;
208:main.c **** asm volatile ("mov %0, r13" : "=r" (mysp) );
209:main.c **** iprintf("SP = 0x%08lx\n", mysp);
210:main.c **** }
211:main.c ****
212:main.c **** static unsigned long gettick()
213:main.c **** {
214:main.c **** unsigned long state, res;
215:main.c ****
216:main.c **** state = IntDisable();
217:main.c **** res = systick;
218:main.c **** IntRestore(state);
219:main.c ****
220:main.c **** return res;
221:main.c **** }
222:main.c ****
223:main.c **** static void test_tick(void)
224:main.c **** {
225:main.c **** iprintf("Current systick %lu\n", gettick() );
226:main.c **** }
227:main.c ****
228:main.c **** //*--------------------------------------------------------------------------------------
229:main.c **** //* Function Name : wait
230:main.c **** //* Object : Software waiting loop
231:main.c **** //* Input Parameters : none. Waiting time is defined by the global variable LedSpeed.
232:main.c **** //* Output Parameters : none
233:main.c **** //*--------------------------------------------------------------------------------------
234:main.c **** static void wait ( void )
235:main.c **** {//* Begin
19 .loc 1 235 0 20 0000 81B0 sub sp, sp, #4 21 .LCFI0: 22 @ lr needed for prologue 236:main.c **** volatile unsigned int waiting_time ;
237:main.c **** for(waiting_time = 0; waiting_time < LedSpeed; waiting_time++) ;
23 .loc 1 237 0 24 0002 0023 mov r3, #0 25 0004 0093 str r3, [sp] 26 .LVL0: 27 0006 009A ldr r2, [sp] 28 0008 054B ldr r3, .L7 29 000a 1968 ldr r1, [r3] 30 000c 8A42 cmp r2, r1 31 000e 05D2 bcs .L4 32 .L5: 33 0010 009B ldr r3, [sp] 34 0012 0133 add r3, r3, #1 35 0014 0093 str r3, [sp] 36 0016 009B ldr r3, [sp] 37 0018 8B42 cmp r3, r1 38 001a F9D3 bcc .L5 39 .L4: 238:main.c **** }//* End
40 .loc 1 238 0 41 001c 01B0 add sp, sp, #4 42 @ sp needed for prologue 43 001e 7047 bx lr 44 .L8: 45 .align 2 46 .L7: 47 0020 00000000 .word LedSpeed 48 .LFE393: 50 .section .fastrun,"ax",%progbits 51 .align 2 52 .global Periodic_Interval_Timer_handler 53 .code 16 54 .thumb_func 56 Periodic_Interval_Timer_handler: 57 .LFB386: 58 .loc 1 71 0 59 0000 81B0 sub sp, sp, #4 60 .LCFI1: 61 @ lr needed for prologue 62 .loc 1 76 0 63 0002 094B ldr r3, .L14 64 0004 9B68 ldr r3, [r3, #8] 65 0006 0093 str r3, [sp] 66 .LVL1: 67 .loc 1 79 0 68 0008 084A ldr r2, .L14+4 69 000a 1368 ldr r3, [r2] 70 000c 0133 add r3, r3, #1 71 000e 1360 str r3, [r2] 72 .LBB8: 73 .LBB9: 74 .file 2 "./common/lib_AT91SAM7A3.h" 1:./common/lib_AT91SAM7A3.h **** //* ----------------------------------------------------------------------------
2:./common/lib_AT91SAM7A3.h **** //* ATMEL Microcontroller Software Support - ROUSSET -
3:./common/lib_AT91SAM7A3.h **** //* ----------------------------------------------------------------------------
4:./common/lib_AT91SAM7A3.h **** //* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
5:./common/lib_AT91SAM7A3.h **** //* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
6:./common/lib_AT91SAM7A3.h **** //* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
7:./common/lib_AT91SAM7A3.h **** //* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
8:./common/lib_AT91SAM7A3.h **** //* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
9:./common/lib_AT91SAM7A3.h **** //* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
10:./common/lib_AT91SAM7A3.h **** //* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
11:./common/lib_AT91SAM7A3.h **** //* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
12:./common/lib_AT91SAM7A3.h **** //* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
13:./common/lib_AT91SAM7A3.h **** //* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
14:./common/lib_AT91SAM7A3.h **** //* ----------------------------------------------------------------------------
15:./common/lib_AT91SAM7A3.h **** //* File Name : lib_AT91SAM7A3.h
16:./common/lib_AT91SAM7A3.h **** //* Object : AT91SAM7A3 inlined functions
17:./common/lib_AT91SAM7A3.h **** //* Generated : AT91 SW Application Group 09/13/2005 (09:48:02)
18:./common/lib_AT91SAM7A3.h **** //*
19:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_MC_SAM.h/1.3/Wed Apr 28 09:02:35 2004//
20:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_pdc.h/1.2/Tue Jul 2 12:29:40 2002//
21:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_dbgu.h/1.1/Fri Jan 31 12:18:40 2003//
22:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_shdwc_6122A.h/1.1/Wed Oct 6 13:06:00 2004//
23:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_spi2.h/1.2/Tue Aug 23 15:43:14 2005//
24:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_ssc.h/1.4/Fri Jan 31 12:19:20 2003//
25:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_PWM_SAM.h/1.3/Wed Dec 3 10:23:10 2003//
26:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_tc_1753b.h/1.1/Fri Jan 31 12:20:02 2003//
27:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_pitc_6079A.h/1.2/Thu Nov 4 14:01:11 2004//
28:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_adc.h/1.6/Fri Oct 17 08:12:38 2003//
29:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_pmc_SAM.h/1.9/Tue Aug 30 13:03:40 2005//
30:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_rstc_6098A.h/1.1/Wed Oct 6 09:39:19 2004//
31:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_pio.h/1.3/Fri Jan 31 12:18:56 2003//
32:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_rttc_6081A.h/1.1/Wed Oct 6 09:39:38 2004//
33:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_twi.h/1.3/Mon Jul 19 13:37:30 2004//
34:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_usart.h/1.5/Thu Nov 21 16:01:53 2002//
35:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_mci.h/1.7/Thu May 27 08:47:43 2004//
36:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_wdtc_6080A.h/1.1/Wed Oct 6 09:38:30 2004//
37:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_udp.h/1.5/Mon Aug 29 08:17:54 2005//
38:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_aic_6075b.h/1.2/Mon Jul 18 11:06:01 2005//
39:./common/lib_AT91SAM7A3.h **** //* CVS Reference : /lib_can_AT91.h/1.5/Tue Aug 23 15:42:51 2005//
40:./common/lib_AT91SAM7A3.h **** //* ----------------------------------------------------------------------------
41:./common/lib_AT91SAM7A3.h ****
42:./common/lib_AT91SAM7A3.h **** #ifndef lib_AT91SAM7A3_H
43:./common/lib_AT91SAM7A3.h **** #define lib_AT91SAM7A3_H
44:./common/lib_AT91SAM7A3.h ****
45:./common/lib_AT91SAM7A3.h **** /* *****************************************************************************
46:./common/lib_AT91SAM7A3.h **** SOFTWARE API FOR AIC
47:./common/lib_AT91SAM7A3.h **** ***************************************************************************** */
48:./common/lib_AT91SAM7A3.h **** #define AT91C_AIC_BRANCH_OPCODE ((void (*) ()) 0xE51FFF20) // ldr, pc, [pc, #-&F20]
49:./common/lib_AT91SAM7A3.h ****
50:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
51:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_AIC_ConfigureIt
52:./common/lib_AT91SAM7A3.h **** //* \brief Interrupt Handler Initialization
53:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
54:./common/lib_AT91SAM7A3.h **** __inline unsigned int AT91F_AIC_ConfigureIt (
55:./common/lib_AT91SAM7A3.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
56:./common/lib_AT91SAM7A3.h **** unsigned int irq_id, // \arg interrupt number to initialize
57:./common/lib_AT91SAM7A3.h **** unsigned int priority, // \arg priority to give to the interrupt
58:./common/lib_AT91SAM7A3.h **** unsigned int src_type, // \arg activation and sense of activation
59:./common/lib_AT91SAM7A3.h **** void (*newHandler) () ) // \arg address of the interrupt handler
60:./common/lib_AT91SAM7A3.h **** {
61:./common/lib_AT91SAM7A3.h **** unsigned int oldHandler;
62:./common/lib_AT91SAM7A3.h **** unsigned int mask ;
63:./common/lib_AT91SAM7A3.h ****
64:./common/lib_AT91SAM7A3.h **** oldHandler = pAic->AIC_SVR[irq_id];
65:./common/lib_AT91SAM7A3.h ****
66:./common/lib_AT91SAM7A3.h **** mask = 0x1 << irq_id ;
67:./common/lib_AT91SAM7A3.h **** //* Disable the interrupt on the interrupt controller
68:./common/lib_AT91SAM7A3.h **** pAic->AIC_IDCR = mask ;
69:./common/lib_AT91SAM7A3.h **** //* Save the interrupt handler routine pointer and the interrupt priority
70:./common/lib_AT91SAM7A3.h **** pAic->AIC_SVR[irq_id] = (unsigned int) newHandler ;
71:./common/lib_AT91SAM7A3.h **** //* Store the Source Mode Register
72:./common/lib_AT91SAM7A3.h **** pAic->AIC_SMR[irq_id] = src_type | priority ;
73:./common/lib_AT91SAM7A3.h **** //* Clear the interrupt on the interrupt controller
74:./common/lib_AT91SAM7A3.h **** pAic->AIC_ICCR = mask ;
75:./common/lib_AT91SAM7A3.h ****
76:./common/lib_AT91SAM7A3.h **** return oldHandler;
77:./common/lib_AT91SAM7A3.h **** }
78:./common/lib_AT91SAM7A3.h ****
79:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
80:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_AIC_EnableIt
81:./common/lib_AT91SAM7A3.h **** //* \brief Enable corresponding IT number
82:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
83:./common/lib_AT91SAM7A3.h **** __inline void AT91F_AIC_EnableIt (
84:./common/lib_AT91SAM7A3.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
85:./common/lib_AT91SAM7A3.h **** unsigned int irq_id ) // \arg interrupt number to initialize
86:./common/lib_AT91SAM7A3.h **** {
87:./common/lib_AT91SAM7A3.h **** //* Enable the interrupt on the interrupt controller
88:./common/lib_AT91SAM7A3.h **** pAic->AIC_IECR = 0x1 << irq_id ;
89:./common/lib_AT91SAM7A3.h **** }
90:./common/lib_AT91SAM7A3.h ****
91:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
92:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_AIC_DisableIt
93:./common/lib_AT91SAM7A3.h **** //* \brief Disable corresponding IT number
94:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
95:./common/lib_AT91SAM7A3.h **** __inline void AT91F_AIC_DisableIt (
96:./common/lib_AT91SAM7A3.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
97:./common/lib_AT91SAM7A3.h **** unsigned int irq_id ) // \arg interrupt number to initialize
98:./common/lib_AT91SAM7A3.h **** {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -