⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 高性能USB转串口(可高达10Mbps)完整的源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
   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 + -