📄 usb_mem.lst
字号:
1 .syntax unified
2 .cpu cortex-m3
3 .fpu softvfp
4 .eabi_attribute 20, 1
5 .eabi_attribute 21, 1
6 .eabi_attribute 23, 3
7 .eabi_attribute 24, 1
8 .eabi_attribute 25, 1
9 .eabi_attribute 26, 1
10 .eabi_attribute 30, 4
11 .eabi_attribute 18, 4
12 .thumb
13 .file "usb_mem.c"
21 .Ltext0:
22 .section .text.UserToPMABufferCopy,"ax",%progbits
23 .align 2
24 .global UserToPMABufferCopy
25 .thumb
26 .thumb_func
28 UserToPMABufferCopy:
29 .LFB26:
30 .file 1 "lib/STM32_USB-FS-Device_Driver/src/usb_mem.c"
1:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** /******************** (C) COPYRIGHT 2009 STMicroelectronics ********************
2:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * File Name : usb_mem.c
3:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Author : MCD Application Team
4:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Version : V3.0.1
5:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Date : 04/27/2009
6:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Description : Utility functions for memory transfers to/from PMA
7:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** ********************************************************************************
8:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
9:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
10:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
11:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
12:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
13:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
14:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** *******************************************************************************/
15:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c ****
16:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** /* Includes ------------------------------------------------------------------*/
17:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** #include "usb_lib.h"
18:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c ****
19:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** /* Private typedef -----------------------------------------------------------*/
20:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** /* Private define ------------------------------------------------------------*/
21:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** /* Private macro -------------------------------------------------------------*/
22:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** /* Private variables ---------------------------------------------------------*/
23:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** /* Extern variables ----------------------------------------------------------*/
24:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** /* Private function prototypes -----------------------------------------------*/
25:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** /* Private functions ---------------------------------------------------------*/
26:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** /*******************************************************************************
27:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Function Name : UserToPMABufferCopy
28:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Description : Copy a buffer from user memory area to packet memory area (PMA)
29:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Input : - pbUsrBuf: pointer to user memory area.
30:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * - wPMABufAddr: address into PMA.
31:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * - wNBytes: no. of bytes to be copied.
32:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Output : None.
33:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Return : None .
34:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** *******************************************************************************/
35:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** void UserToPMABufferCopy(uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes)
36:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** {
31 .loc 1 36 0
32 @ args = 0, pretend = 0, frame = 0
33 @ frame_needed = 0, uses_anonymous_args = 0
34 .LVL0:
37:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** uint32_t n = (wNBytes + 1) >> 1; /* n = (wNBytes + 1) / 2 */
38:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** uint32_t i, temp1, temp2;
39:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** uint16_t *pdwVal;
40:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** pdwVal = (uint16_t *)(wPMABufAddr * 2 + PMAAddr);
35 .loc 1 40 0
36 0000 01F10051 add r1, r1, #536870912
37 .LVL1:
38 0004 01F54051 add r1, r1, #12288
39 .loc 1 37 0
40 0008 0132 adds r2, r2, #1
41 .LVL2:
42 .loc 1 36 0
43 000a 10B5 push {r4, lr}
44 .LCFI0:
45 .loc 1 40 0
46 000c 4FF0000C mov ip, #0
47 0010 4C00 lsls r4, r1, #1
48 0012 5108 lsrs r1, r2, #1
49 .LVL3:
50 0014 0BE0 b .L2
51 .L3:
41:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** for (i = n; i != 0; i--)
42:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** {
43:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** temp1 = (uint16_t) * pbUsrBuf;
44:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** pbUsrBuf++;
45:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** temp2 = temp1 | (uint16_t) * pbUsrBuf << 8;
46:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** *pdwVal++ = temp2;
52 .loc 1 46 0
53 0016 00EB0C03 add r3, r0, ip
54 001a 5A78 ldrb r2, [r3, #1] @ zero_extendqisi2
55 001c 10F80C30 ldrb r3, [r0, ip] @ zero_extendqisi2
56 .loc 1 41 0
57 0020 0139 subs r1, r1, #1
58 .loc 1 46 0
59 0022 43EA0223 orr r3, r3, r2, lsl #8
60 0026 24F81C30 strh r3, [r4, ip, lsl #1] @ movhi
61 .loc 1 41 0
62 002a 0CF1020C add ip, ip, #2
63 .L2:
64 002e 0029 cmp r1, #0
65 0030 F1D1 bne .L3
47:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** pdwVal++;
48:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** pbUsrBuf++;
49:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** }
50:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** }
66 .loc 1 50 0
67 0032 10BD pop {r4, pc}
68 .LFE26:
70 .section .text.PMAToUserBufferCopy,"ax",%progbits
71 .align 2
72 .global PMAToUserBufferCopy
73 .thumb
74 .thumb_func
76 PMAToUserBufferCopy:
77 .LFB27:
51:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** /*******************************************************************************
52:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Function Name : PMAToUserBufferCopy
53:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Description : Copy a buffer from user memory area to packet memory area (PMA)
54:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Input : - pbUsrBuf = pointer to user memory area.
55:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * - wPMABufAddr = address into PMA.
56:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * - wNBytes = no. of bytes to be copied.
57:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Output : None.
58:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** * Return : None.
59:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** *******************************************************************************/
60:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** void PMAToUserBufferCopy(uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes)
61:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** {
78 .loc 1 61 0
79 @ args = 0, pretend = 0, frame = 0
80 @ frame_needed = 0, uses_anonymous_args = 0
81 .LVL4:
62:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** uint32_t n = (wNBytes + 1) >> 1;/* /2*/
63:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** uint32_t i;
64:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** uint32_t *pdwVal;
65:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** pdwVal = (uint32_t *)(wPMABufAddr * 2 + PMAAddr);
82 .loc 1 65 0
83 0000 01F10051 add r1, r1, #536870912
84 .LVL5:
85 .loc 1 62 0
86 0004 0132 adds r2, r2, #1
87 .LVL6:
88 .loc 1 65 0
89 0006 01F54051 add r1, r1, #12288
90 .loc 1 61 0
91 000a 10B5 push {r4, lr}
92 .LCFI1:
93 .loc 1 65 0
94 000c 4900 lsls r1, r1, #1
95 000e 5208 lsrs r2, r2, #1
96 .LVL7:
97 0010 0023 movs r3, #0
98 0012 04E0 b .L6
99 .L7:
66:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** for (i = n; i != 0; i--)
67:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** {
68:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** *(uint16_t*)pbUsrBuf++ = *pdwVal++;
100 .loc 1 68 0
101 0014 31F81340 ldrh r4, [r1, r3, lsl #1]
102 .loc 1 66 0
103 0018 013A subs r2, r2, #1
104 .loc 1 68 0
105 001a C452 strh r4, [r0, r3] @ movhi
106 .loc 1 66 0
107 001c 0233 adds r3, r3, #2
108 .L6:
109 001e 002A cmp r2, #0
110 0020 F8D1 bne .L7
69:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** pbUsrBuf++;
70:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** }
71:lib/STM32_USB-FS-Device_Driver/src/usb_mem.c **** }
111 .loc 1 71 0
112 0022 10BD pop {r4, pc}
113 .LFE27:
163 .Letext0:
DEFINED SYMBOLS
*ABS*:00000000 usb_mem.c
.text:00000000 $t
R:\TEMP/ccGMbaaa.s:28 .text.UserToPMABufferCopy:00000000 UserToPMABufferCopy
R:\TEMP/ccGMbaaa.s:25 .text.UserToPMABufferCopy:00000000 $t
R:\TEMP/ccGMbaaa.s:76 .text.PMAToUserBufferCopy:00000000 PMAToUserBufferCopy
R:\TEMP/ccGMbaaa.s:73 .text.PMAToUserBufferCopy:00000000 $t
R:\TEMP/ccGMbaaa.s:117 .debug_frame:00000000 $d
R:\TEMP/ccGMbaaa.s:167 .debug_loc:00000000 $d
NO UNDEFINED SYMBOLS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -