; generated by ARM C/C++ Compiler, 4.1 [Build 713]
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\Obj\usb_mem.o --asm_dir=.\List\ --list_dir=.\List\ --depend=.\Obj\usb_mem.d --cpu=Cortex-M3 --apcs=interwork -O3 -I.\usb_library\inc -IC:\Keil\ARM\CMSIS\Include -IC:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB -DVECT_TAB_FLASH --omf_browse=.\Obj\usb_mem.crf usb_library\src\usb_mem.c]
                          THUMB

                          AREA ||i.PMAToUserBufferCopy||, CODE, READONLY, ALIGN=2

                  PMAToUserBufferCopy PROC
;;;59     *******************************************************************************/
;;;60     void PMAToUserBufferCopy(u8 *pbUsrBuf, u16 wPMABufAddr, u16 wNBytes)
000000  4b05              LDR      r3,|L1.24|
;;;61     {
;;;62       u32 n = (wNBytes + 1) >> 1;/* /2*/
000002  1c52              ADDS     r2,r2,#1
000004  0852              LSRS     r2,r2,#1
;;;63       u32 i;
;;;64       u32 *pdwVal;
;;;65       pdwVal = (u32 *)(wPMABufAddr * 2 + PMAAddr);
000006  eb030141          ADD      r1,r3,r1,LSL #1
;;;66       for (i = n; i != 0; i--)
00000a  d004              BEQ      |L1.22|
                  |L1.12|
;;;67       {
;;;68         *(u16*)pbUsrBuf++ = *pdwVal++;
00000c  c908              LDM      r1!,{r3}
00000e  f8203b02          STRH     r3,[r0],#2
000012  1e52              SUBS     r2,r2,#1              ;66
000014  d1fa              BNE      |L1.12|
                  |L1.22|
;;;69         pbUsrBuf++;
;;;70       }
;;;71     }
000016  4770              BX       lr
;;;72     
                          ENDP

                  |L1.24|
                          DCD      0x40006000

                          AREA ||i.UserToPMABufferCopy||, CODE, READONLY, ALIGN=2

                  UserToPMABufferCopy PROC
;;;34     *******************************************************************************/
;;;35     void UserToPMABufferCopy(u8 *pbUsrBuf, u16 wPMABufAddr, u16 wNBytes)
000000  4b08              LDR      r3,|L2.36|
;;;36     {
000002  b510              PUSH     {r4,lr}
;;;37       u32 n = (wNBytes + 1) >> 1;   /* n = (wNBytes + 1) / 2 */
000004  1c52              ADDS     r2,r2,#1
000006  0852              LSRS     r2,r2,#1
;;;38       u32 i, temp1, temp2;
;;;39       u16 *pdwVal;
;;;40       pdwVal = (u16 *)(wPMABufAddr * 2 + PMAAddr);
000008  eb030141          ADD      r1,r3,r1,LSL #1
;;;41       for (i = n; i != 0; i--)
00000c  d008              BEQ      |L2.32|
                  |L2.14|
;;;42       {
;;;43         temp1 = (u16) * pbUsrBuf;
00000e  7803              LDRB     r3,[r0,#0]
;;;44         pbUsrBuf++;
;;;45         temp2 = temp1 | (u16) * pbUsrBuf << 8;
000010  7844              LDRB     r4,[r0,#1]
000012  1c80              ADDS     r0,r0,#2
000014  ea432304          ORR      r3,r3,r4,LSL #8
;;;46         *pdwVal++ = temp2;
000018  f8213b04          STRH     r3,[r1],#4
00001c  1e52              SUBS     r2,r2,#1              ;41
00001e  d1f6              BNE      |L2.14|
                  |L2.32|
;;;47         pdwVal++;
;;;48         pbUsrBuf++;
;;;49       }
;;;50     }
000020  bd10              POP      {r4,pc}
;;;51     /*******************************************************************************
                          ENDP

000022  0000              DCW      0x0000
                  |L2.36|
                          DCD      0x40006000
