; generated by ARM C/C++ Compiler, 4.1 [Build 713]
; commandline ArmCC [--list --split_sections --debug -c --asm --interleave -o.\Obj\usb_core.o --asm_dir=.\List\ --list_dir=.\List\ --depend=.\Obj\usb_core.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_core.crf usb_library\src\usb_core.c]
THUMB
AREA ||i.DataStageIn||, CODE, READONLY, ALIGN=2
DataStageIn PROC
;;;482 *******************************************************************************/
;;;483 void DataStageIn(void)
000000 e92d47f0 PUSH {r4-r10,lr}
;;;484 {
;;;485 ENDPOINT_INFO *pEPinfo = &pInformation->Ctrl_Info;
000004 f8df9074 LDR r9,|L1.124|
;;;486 u32 save_wLength = pEPinfo->Usb_wLength;
;;;487 u32 ControlState = pInformation->ControlState;
;;;488
;;;489 u8 *DataBuffer;
;;;490 u32 Length;
;;;491
;;;492 if ((save_wLength == 0) && (ControlState == LAST_IN_DATA))
;;;493 {
;;;494 /* no more data to send so STALL the TX Status*/
;;;495 ControlState = WAIT_STATUS_OUT;
;;;496 vSetEPTxStatus(EP_TX_STALL);
000008 f8df8074 LDR r8,|L1.128|
00000c f8d91000 LDR r1,[r9,#0] ;485 ; pInformation
000010 f1010510 ADD r5,r1,#0x10 ;485
000014 8a08 LDRH r0,[r1,#0x10] ;486
000016 7a09 LDRB r1,[r1,#8] ;487
000018 b908 CBNZ r0,|L1.30|
00001a 2904 CMP r1,#4 ;492
00001c d029 BEQ |L1.114|
|L1.30|
;;;497 goto Expect_Status_Out;
;;;498 }
;;;499
;;;500 Length = pEPinfo->PacketSize;
00001e 88ac LDRH r4,[r5,#4]
;;;501 ControlState = (save_wLength <= Length) ? LAST_IN_DATA : IN_DATA;
000020 2604 MOVS r6,#4
000022 42a0 CMP r0,r4
000024 d900 BLS |L1.40|
000026 2602 MOVS r6,#2
|L1.40|
;;;502
;;;503 if (Length > save_wLength)
000028 4284 CMP r4,r0
00002a d900 BLS |L1.46|
;;;504 {
;;;505 Length = save_wLength;
00002c 4604 MOV r4,r0
|L1.46|
;;;506 }
;;;507
;;;508 DataBuffer = (*pEPinfo->CopyData)(Length);
00002e b2a0 UXTH r0,r4
000030 68a9 LDR r1,[r5,#8]
000032 4607 MOV r7,r0
000034 4788 BLX r1
000036 4682 MOV r10,r0
;;;509
;;;510 UserToPMABufferCopy(DataBuffer, GetEPTxAddr(ENDP0), Length);
000038 2000 MOVS r0,#0
00003a f7fffffe BL GetEPTxAddr
00003e 4601 MOV r1,r0
000040 463a MOV r2,r7
000042 4650 MOV r0,r10
000044 f7fffffe BL UserToPMABufferCopy
000048 4639 MOV r1,r7
;;;511
;;;512 SetEPTxCount(ENDP0, Length);
00004a 2000 MOVS r0,#0
00004c f7fffffe BL SetEPTxCount
;;;513
;;;514 pEPinfo->Usb_wLength -= Length;
000050 8828 LDRH r0,[r5,#0]
;;;515 pEPinfo->Usb_wOffset += Length;
;;;516 vSetEPTxStatus(EP_TX_VALID);
000052 2130 MOVS r1,#0x30
000054 1b00 SUBS r0,r0,r4 ;514
000056 8028 STRH r0,[r5,#0] ;514
000058 8868 LDRH r0,[r5,#2] ;515
00005a 4420 ADD r0,r0,r4 ;515
00005c 8068 STRH r0,[r5,#2] ;515
00005e f8a81000 STRH r1,[r8,#0]
;;;517
;;;518 USB_StatusOut();/* Expect the host to abort the data IN stage */
000062 0208 LSLS r0,r1,#8
000064 4907 LDR r1,|L1.132|
000066 8008 STRH r0,[r1,#0]
|L1.104|
;;;519
;;;520 Expect_Status_Out:
;;;521 pInformation->ControlState = ControlState;
000068 f8d90000 LDR r0,[r9,#0] ; pInformation
00006c 7206 STRB r6,[r0,#8]
;;;522 }
00006e e8bd87f0 POP {r4-r10,pc}
|L1.114|
000072 2607 MOVS r6,#7 ;495
000074 2110 MOVS r1,#0x10 ;496
000076 f8a81000 STRH r1,[r8,#0] ;496
00007a e7f5 B |L1.104|
;;;523
ENDP
|L1.124|
DCD pInformation
|L1.128|
DCD SaveTState
|L1.132|
DCD SaveRState
AREA ||i.DataStageOut||, CODE, READONLY, ALIGN=2
DataStageOut PROC
;;;425 *******************************************************************************/
;;;426 void DataStageOut(void)
000000 e92d47f0 PUSH {r4-r10,lr}
;;;427 {
;;;428 ENDPOINT_INFO *pEPinfo = &pInformation->Ctrl_Info;
000004 4e23 LDR r6,|L2.148|
;;;429 u32 save_rLength;
;;;430
;;;431 save_rLength = pEPinfo->Usb_rLength;
;;;432
;;;433 if (pEPinfo->CopyData && save_rLength)
;;;434 {
;;;435 u8 *Buffer;
;;;436 u32 Length;
;;;437
;;;438 Length = pEPinfo->PacketSize;
;;;439 if (Length > save_rLength)
;;;440 {
;;;441 Length = save_rLength;
;;;442 }
;;;443
;;;444 Buffer = (*pEPinfo->CopyData)(Length);
;;;445 pEPinfo->Usb_rLength -= Length;
;;;446 pEPinfo->Usb_rOffset += Length;
;;;447
;;;448 PMAToUserBufferCopy(Buffer, GetEPRxAddr(ENDP0), Length);
;;;449 }
;;;450
;;;451 if (pEPinfo->Usb_rLength != 0)
;;;452 {
;;;453 vSetEPRxStatus(EP_RX_VALID);/* re-enable for next data reception */
;;;454 SetEPTxCount(ENDP0, 0);
;;;455 vSetEPTxStatus(EP_TX_VALID);/* Expect the host to abort the data OUT stage */
000006 f8df9090 LDR r9,|L2.152|
00000a f04f0830 MOV r8,#0x30
00000e 6834 LDR r4,[r6,#0] ;431 ; pInformation
000010 f8340f10 LDRH r0,[r4,#0x10]! ;431
000014 68a1 LDR r1,[r4,#8] ;433
000016 b1b1 CBZ r1,|L2.70|
000018 b308 CBZ r0,|L2.94|
00001a 88a5 LDRH r5,[r4,#4] ;438
00001c 4285 CMP r5,r0 ;439
00001e d900 BLS |L2.34|
000020 4605 MOV r5,r0 ;441
|L2.34|
000022 b2a8 UXTH r0,r5 ;444
000024 4607 MOV r7,r0 ;444
000026 4788 BLX r1 ;444
000028 4682 MOV r10,r0 ;444
00002a 8820 LDRH r0,[r4,#0] ;445
00002c 1b40 SUBS r0,r0,r5 ;445
00002e 8020 STRH r0,[r4,#0] ;445
000030 8860 LDRH r0,[r4,#2] ;446
000032 4428 ADD r0,r0,r5 ;446
000034 8060 STRH r0,[r4,#2] ;446
000036 2000 MOVS r0,#0 ;448
000038 f7fffffe BL GetEPRxAddr
00003c 4601 MOV r1,r0 ;448
00003e 463a MOV r2,r7 ;448
000040 4650 MOV r0,r10 ;448
000042 f7fffffe BL PMAToUserBufferCopy
没有合适的资源?快使用搜索试试~ 我知道了~
STM32的新实例程序
共1366个文件
o:175个
d:164个
crf:147个
需积分: 32 10 下载量 22 浏览量
2017-05-03
18:34:52
上传
评论
收藏 12.36MB RAR 举报
温馨提示
STM32的新实例程序,包括DMA/CAN/TIM/IIC/SPI/RTC等
资源推荐
资源详情
资源评论
收起资源包目录
STM32的新实例程序 (1366个子文件)
.#release.hex.1.1.1.1 14KB
.#IWDG.hex.1.1.1.1 8KB
.#stm32f10x_it.d.1.1.1.1 2KB
.#stm32f10x_it.d.1.1.1.1 2KB
.#stm32f10x_it.d.1.1.1.1 2KB
.#main.d.1.1.1.1 2KB
.#main.d.1.1.1.1 2KB
.#main.d.1.1.1.1 1KB
.#WWDG.map.1.2 72KB
.#release.hex.1.2 7KB
.#release.hex.1.2 7KB
.#release.hex.1.2 7KB
.#release.hex.1.2 7KB
.#release.hex.1.2 7KB
.#WWDG_WWDG.dep.1.2 4KB
.#stm32f10x_it.d.1.2 2KB
.#main.d.1.2 1KB
.#main.crf.1.2 920B
.#WWDG.lnp.1.2 356B
.#WWDG.axf.1.2 334B
.#stm32f10x_it.crf.1.2 7B
.#stm32f10x_it.crf.1.3 128KB
.#release.lnp.1.3 380B
.#release.lnp.1.3 380B
.#release.lnp.1.3 380B
.#release.lnp.1.3 380B
.#release.lnp.1.3 380B
usb_regs.__i 358B
usb_core.__i 358B
usb_init.__i 358B
usb_int.__i 354B
usb_mem.__i 354B
main.__i 309B
stm32f10x_lib.__i 267B
stm32f10x_systick.__i 261B
stm32f10x_flash.__i 253B
stm32f10x_usart.__i 253B
stm32f10x_tim1.__i 249B
stm32f10x_nvic.__i 249B
stm32f10x_iwdg.__i 249B
stm32f10x_wwdg.__i 249B
stm32f10x_gpio.__i 249B
stm32f10x_exti.__i 249B
stm32f10x_rtc.__i 245B
stm32f10x_i2c.__i 245B
stm32f10x_rcc.__i 245B
stm32f10x_can.__i 245B
stm32f10x_bkp.__i 245B
stm32f10x_adc.__i 245B
stm32f10x_lib.__i 245B
stm32f10x_pwr.__i 245B
stm32f10x_dma.__i 245B
stm32f10x_spi.__i 245B
stm32f10x_tim.__i 245B
stm32f10x_spi.__i 245B
main.__i 243B
main.__i 208B
main.__i 181B
cortexm3_macro._ia 157B
usb_regs._ip 256B
usb_core._ip 256B
usb_init._ip 256B
usb_int._ip 254B
usb_mem._ip 254B
main._ip 206B
main._ip 165B
main._ip 130B
main._ip 127B
WWDG.uvgui.Administrator 132KB
流水灯.uvgui.Administrator 132KB
ADC.uvgui.Administrator 132KB
数码管.uvgui.Administrator 132KB
STM32F10xLIB.uvgui.Administrator 69KB
USB.uvgui.Administrator 69KB
GPIO.uvgui.Administrator 69KB
PWR.uvgui.Administrator 68KB
BKP.uvgui.Administrator 68KB
IWDG.uvgui.Administrator 68KB
EXTI.uvgui.Administrator 68KB
NVIC.uvgui.Administrator 68KB
RTC.uvgui.Administrator 68KB
CAN.uvgui.Administrator 68KB
GPIO.uvgui.Administrator 68KB
GPIO.uvgui.Administrator 68KB
USB_TEST.axf 158KB
release.axf 158KB
release.axf 138KB
release.axf 130KB
release.axf 129KB
release.axf 129KB
release.axf 123KB
release.axf 122KB
release.axf 118KB
IWDG.axf 114KB
release.axf 113KB
release.axf 112KB
WWDG.axf 112KB
release.axf 111KB
release.axf 110KB
release.axf 110KB
共 1366 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
资源评论
疯狂的鲁路修
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功