📄 main.lst
字号:
1 .code 16
2 .file "main.c"
10 .Ltext0:
11 .section .text.AT91F_USB_Open,"ax",%progbits
12 .align 2
13 .global AT91F_USB_Open
14 .code 16
15 .thumb_func
17 AT91F_USB_Open:
18 .LFB290:
19 .file 1 "main.c"
1:main.c **** //*--------------------------------------------------------------------------------------
2:main.c **** //* ATMEL Microcontroller Software Support - ROUSSET -
3:main.c **** //*--------------------------------------------------------------------------------------
4:main.c **** //* The software is delivered "AS IS" without warranty or condition of any
5:main.c **** //* kind, either express, implied or statutory. This includes without
6:main.c **** //* limitation any warranty or condition with respect to merchantability or
7:main.c **** //* fitness for any particular purpose, or against the infringements of
8:main.c **** //* intellectual property rights of others.
9:main.c **** //*--------------------------------------------------------------------------------------
10:main.c **** //* File Name : main file
11:main.c **** //* Object :
12:main.c **** //* Translator :
13:main.c **** //* 1.0 02/Mar/05 JPP : Creation
14:main.c **** //*--------------------------------------------------------------------------------------
15:main.c ****
16:main.c **** #include "project.h"
17:main.c **** #include "cdc_enumerate.h"
18:main.c ****
19:main.c **** #define MSG_SIZE 100
20:main.c ****
21:main.c ****
22:main.c **** //* external function
23:main.c ****
24:main.c **** extern void Usart_init ( void );
25:main.c **** extern void AT91F_US_Put( char *buffer); // \arg pointer to a string ending by \0
26:main.c **** extern void Trace_Toggel_LED( unsigned int led) ;
27:main.c ****
28:main.c **** struct _AT91S_CDC pCDC;
29:main.c ****
30:main.c **** //*----------------------------------------------------------------------------
31:main.c **** //* \fn AT91F_USB_Open
32:main.c **** //* \brief This function Open the USB device
33:main.c **** //*----------------------------------------------------------------------------
34:main.c **** void AT91F_USB_Open(void)
35:main.c **** {
20 {lr}
21 0000 00B5 .LCFI0:
22 .loc 1 37 0
36:main.c **** // Set the PLL USB Divider
37:main.c **** AT91C_BASE_CKGR->CKGR_PLLR |= AT91C_CKGR_USBDIV_1 ;
23 r r1, .L3
24 0002 0B49 ldr r2, [r1, #12]
25 0004 CA68 mov r3, #128
26 0006 8023 lsl r3, r3, #21
27 0008 5B05 orr r2, r2, r3
28 000a 1A43 str r2, [r1, #12]
29 000c CA60 .loc 1 41 0
38:main.c ****
39:main.c **** // Specific Chip USB Initialisation
40:main.c **** // Enables the 48MHz USB clock UDPCK and System Peripheral USB Clock
41:main.c **** AT91C_BASE_PMC->PMC_SCER = AT91C_PMC_UDP;
30 , .L3+4
31 000e 094A mov r3, #128
32 0010 8023 str r3, [r2]
33 0012 1360 .loc 1 42 0
42:main.c **** AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_UDP);
34 r3, r3, #4
35 0014 1B01 str r3, [r2, #16]
36 0016 1361 .LBB6:
37 .LBB7:
38 .file 2 "../../include/lib_AT91SAM7S256.h"
39 .loc 2 508 0
1:../../include/lib_AT91SAM7S256.h **** //* ----------------------------------------------------------------------------
2:../../include/lib_AT91SAM7S256.h **** //* ATMEL Microcontroller Software Support - ROUSSET -
3:../../include/lib_AT91SAM7S256.h **** //* ----------------------------------------------------------------------------
4:../../include/lib_AT91SAM7S256.h **** //* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
5:../../include/lib_AT91SAM7S256.h **** //* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
6:../../include/lib_AT91SAM7S256.h **** //* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
7:../../include/lib_AT91SAM7S256.h **** //* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
8:../../include/lib_AT91SAM7S256.h **** //* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
9:../../include/lib_AT91SAM7S256.h **** //* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
10:../../include/lib_AT91SAM7S256.h **** //* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
11:../../include/lib_AT91SAM7S256.h **** //* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
12:../../include/lib_AT91SAM7S256.h **** //* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
13:../../include/lib_AT91SAM7S256.h **** //* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
14:../../include/lib_AT91SAM7S256.h **** //* ----------------------------------------------------------------------------
15:../../include/lib_AT91SAM7S256.h **** //* File Name : lib_AT91SAM7S256.h
16:../../include/lib_AT91SAM7S256.h **** //* Object : AT91SAM7S256 inlined functions
17:../../include/lib_AT91SAM7S256.h **** //* Generated : AT91 SW Application Group 01/16/2006 (16:36:07)
18:../../include/lib_AT91SAM7S256.h **** //*
19:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_MC_SAM7S.h/1.1/Thu Mar 25 15:19:14 2004//
20:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_pdc.h/1.2/Tue Jul 2 13:29:40 2002//
21:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_dbgu.h/1.1/Thu Aug 25 12:56:22 2005//
22:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_VREG_6085B.h/1.1/Tue Feb 1 16:20:47 2005//
23:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_ssc.h/1.4/Fri Jan 31 12:19:20 2003//
24:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_spi2.h/1.2/Tue Aug 23 15:37:28 2005//
25:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_PWM_SAM.h/1.3/Thu Jan 22 10:10:50 2004//
26:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_tc_1753b.h/1.1/Fri Jan 31 12:20:02 2003//
27:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_pitc_6079A.h/1.2/Tue Nov 9 14:43:56 2004//
28:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_pmc_SAM7S.h/1.5/Fri Nov 4 09:37:21 2005//
29:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_adc.h/1.6/Fri Oct 17 09:12:38 2003//
30:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_rstc_6098A.h/1.1/Wed Oct 6 10:39:20 2004//
31:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_rttc_6081A.h/1.1/Wed Oct 6 10:39:38 2004//
32:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_pio.h/1.3/Fri Jan 31 12:18:56 2003//
33:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_twi.h/1.3/Mon Jul 19 14:27:58 2004//
34:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_wdtc_6080A.h/1.1/Wed Oct 6 10:38:30 2004//
35:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_usart.h/1.5/Thu Nov 21 16:01:54 2002//
36:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_udp.h/1.5/Tue Aug 30 12:13:47 2005//
37:../../include/lib_AT91SAM7S256.h **** //* CVS Reference : /lib_aic_6075b.h/1.2/Thu Jul 7 07:48:22 2005//
38:../../include/lib_AT91SAM7S256.h **** //* ----------------------------------------------------------------------------
39:../../include/lib_AT91SAM7S256.h ****
40:../../include/lib_AT91SAM7S256.h **** #ifndef lib_AT91SAM7S256_H
41:../../include/lib_AT91SAM7S256.h **** #define lib_AT91SAM7S256_H
42:../../include/lib_AT91SAM7S256.h ****
43:../../include/lib_AT91SAM7S256.h **** /* *****************************************************************************
44:../../include/lib_AT91SAM7S256.h **** SOFTWARE API FOR AIC
45:../../include/lib_AT91SAM7S256.h **** ***************************************************************************** */
46:../../include/lib_AT91SAM7S256.h **** #define AT91C_AIC_BRANCH_OPCODE ((void (*) ()) 0xE51FFF20) // ldr, pc, [pc, #-&F20]
47:../../include/lib_AT91SAM7S256.h ****
48:../../include/lib_AT91SAM7S256.h **** //*----------------------------------------------------------------------------
49:../../include/lib_AT91SAM7S256.h **** //* \fn AT91F_AIC_ConfigureIt
50:../../include/lib_AT91SAM7S256.h **** //* \brief Interrupt Handler Initialization
51:../../include/lib_AT91SAM7S256.h **** //*----------------------------------------------------------------------------
52:../../include/lib_AT91SAM7S256.h **** __inline unsigned int AT91F_AIC_ConfigureIt (
53:../../include/lib_AT91SAM7S256.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
54:../../include/lib_AT91SAM7S256.h **** unsigned int irq_id, // \arg interrupt number to initialize
55:../../include/lib_AT91SAM7S256.h **** unsigned int priority, // \arg priority to give to the interrupt
56:../../include/lib_AT91SAM7S256.h **** unsigned int src_type, // \arg activation and sense of activation
57:../../include/lib_AT91SAM7S256.h **** void (*newHandler) () ) // \arg address of the interrupt handler
58:../../include/lib_AT91SAM7S256.h **** {
59:../../include/lib_AT91SAM7S256.h **** unsigned int oldHandler;
60:../../include/lib_AT91SAM7S256.h **** unsigned int mask ;
61:../../include/lib_AT91SAM7S256.h ****
62:../../include/lib_AT91SAM7S256.h **** oldHandler = pAic->AIC_SVR[irq_id];
63:../../include/lib_AT91SAM7S256.h ****
64:../../include/lib_AT91SAM7S256.h **** mask = 0x1 << irq_id ;
65:../../include/lib_AT91SAM7S256.h **** //* Disable the interrupt on the interrupt controller
66:../../include/lib_AT91SAM7S256.h **** pAic->AIC_IDCR = mask ;
67:../../include/lib_AT91SAM7S256.h **** //* Save the interrupt handler routine pointer and the interrupt priority
68:../../include/lib_AT91SAM7S256.h **** pAic->AIC_SVR[irq_id] = (unsigned int) newHandler ;
69:../../include/lib_AT91SAM7S256.h **** //* Store the Source Mode Register
70:../../include/lib_AT91SAM7S256.h **** pAic->AIC_SMR[irq_id] = src_type | priority ;
71:../../include/lib_AT91SAM7S256.h **** //* Clear the interrupt on the interrupt controller
72:../../include/lib_AT91SAM7S256.h **** pAic->AIC_ICCR = mask ;
73:../../include/lib_AT91SAM7S256.h ****
74:../../include/lib_AT91SAM7S256.h **** return oldHandler;
75:../../include/lib_AT91SAM7S256.h **** }
76:../../include/lib_AT91SAM7S256.h ****
77:../../include/lib_AT91SAM7S256.h **** //*----------------------------------------------------------------------------
78:../../include/lib_AT91SAM7S256.h **** //* \fn AT91F_AIC_EnableIt
79:../../include/lib_AT91SAM7S256.h **** //* \brief Enable corresponding IT number
80:../../include/lib_AT91SAM7S256.h **** //*----------------------------------------------------------------------------
81:../../include/lib_AT91SAM7S256.h **** __inline void AT91F_AIC_EnableIt (
82:../../include/lib_AT91SAM7S256.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
83:../../include/lib_AT91SAM7S256.h **** unsigned int irq_id ) // \arg interrupt number to initialize
84:../../include/lib_AT91SAM7S256.h **** {
85:../../include/lib_AT91SAM7S256.h **** //* Enable the interrupt on the interrupt controller
86:../../include/lib_AT91SAM7S256.h **** pAic->AIC_IECR = 0x1 << irq_id ;
87:../../include/lib_AT91SAM7S256.h **** }
88:../../include/lib_AT91SAM7S256.h ****
89:../../include/lib_AT91SAM7S256.h **** //*----------------------------------------------------------------------------
90:../../include/lib_AT91SAM7S256.h **** //* \fn AT91F_AIC_DisableIt
91:../../include/lib_AT91SAM7S256.h **** //* \brief Disable corresponding IT number
92:../../include/lib_AT91SAM7S256.h **** //*----------------------------------------------------------------------------
93:../../include/lib_AT91SAM7S256.h **** __inline void AT91F_AIC_DisableIt (
94:../../include/lib_AT91SAM7S256.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
95:../../include/lib_AT91SAM7S256.h **** unsigned int irq_id ) // \arg interrupt number to initialize
96:../../include/lib_AT91SAM7S256.h **** {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -