From d48815d8d952ead5a317c70c89f5c2373f726519 Mon Sep 17 00:00:00 2001 From: Robert Fisk Date: Sat, 3 Oct 2015 03:00:55 +1300 Subject: [PATCH] IT. WORKS. !!!!!!! --- Upstream/Debug/Upstream.elf | Bin 747248 -> 747817 bytes Upstream/Debug/Upstream.map | 1445 +++++++++-------- Upstream/Inc/upstream_msc.h | 4 +- .../Class/MSC/Src/usbd_msc_bot.c | 4 + .../Class/MSC/Src/usbd_msc_scsi.c | 5 +- Upstream/Src/upstream_msc.c | 66 +- Upstream/Src/upstream_spi.c | 33 +- 7 files changed, 795 insertions(+), 762 deletions(-) diff --git a/Upstream/Debug/Upstream.elf b/Upstream/Debug/Upstream.elf index 8d0dfc8dc3e6176afbccbf369f43b371386de126..5f348568218badfde012278c6c266ef44c5b12bc 100755 GIT binary patch delta 52407 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
<6n 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 diff --git a/Upstream/Debug/Upstream.map b/Upstream/Debug/Upstream.map index c252832..a7a482d 100644 --- a/Upstream/Debug/Upstream.map +++ b/Upstream/Debug/Upstream.map @@ -24,6 +24,7 @@ TemporaryIncomingPacketLength 0x4 Src/upstream_spi.o SCSI_ProcessCmd_hmsc 0x4 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o +BlockStart 0x8 Src/upstream_msc.o SCSI_ProcessCmd_params 0x4 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o errno 0x4 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-reent.o) @@ -33,6 +34,7 @@ SentCommand 0x1 Src/upstream_spi.o GetCapacityCallback 0x4 Src/upstream_msc.o UpstreamPacket1 0x208 Src/upstream_spi.o +BlockCount 0x4 Src/upstream_msc.o TestReadyCallback 0x4 Src/upstream_msc.o SCSI_ProcessCmd_lun 0x1 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o @@ -3188,7 +3190,7 @@ LOAD /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/ LOAD /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libnosys.a END GROUP -.text 0x08000000 0x7e2a +.text 0x08000000 0x7e9e *(.vectors) .vectors 0x08000000 0x188 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o 0x08000000 __Vectors @@ -3326,700 +3328,704 @@ END GROUP 0x08000b10 0x78 Src/upstream_spi.o 0x08000b10 Upstream_GetFreePacket .text.Upstream_GetFreePacketImmediately - 0x08000b88 0x68 Src/upstream_spi.o + 0x08000b88 0x50 Src/upstream_spi.o 0x08000b88 Upstream_GetFreePacketImmediately .text.Upstream_ReleasePacket - 0x08000bf0 0x68 Src/upstream_spi.o - 0x08000bf0 Upstream_ReleasePacket + 0x08000bd8 0x68 Src/upstream_spi.o + 0x08000bd8 Upstream_ReleasePacket .text.Upstream_TransmitPacket - 0x08000c58 0xf0 Src/upstream_spi.o - 0x08000c58 Upstream_TransmitPacket + 0x08000c40 0xf0 Src/upstream_spi.o + 0x08000c40 Upstream_TransmitPacket .text.HAL_SPI_TxRxCpltCallback - 0x08000d48 0x28 Src/upstream_spi.o - 0x08000d48 HAL_SPI_TxRxCpltCallback + 0x08000d30 0x28 Src/upstream_spi.o + 0x08000d30 HAL_SPI_TxRxCpltCallback .text.Upstream_SPIProcess_InterruptSafe - 0x08000d70 0x30 Src/upstream_spi.o - 0x08000d70 Upstream_SPIProcess_InterruptSafe + 0x08000d58 0x30 Src/upstream_spi.o + 0x08000d58 Upstream_SPIProcess_InterruptSafe .text.Upstream_SPIProcess - 0x08000da0 0x1cc Src/upstream_spi.o - 0x08000da0 Upstream_SPIProcess + 0x08000d88 0x1d4 Src/upstream_spi.o + 0x08000d88 Upstream_SPIProcess .text.Upstream_ReceivePacket - 0x08000f6c 0x44 Src/upstream_spi.o - 0x08000f6c Upstream_ReceivePacket + 0x08000f5c 0x44 Src/upstream_spi.o + 0x08000f5c Upstream_ReceivePacket .text.Upstream_CheckBeginPacketReception - 0x08000fb0 0x58 Src/upstream_spi.o - 0x08000fb0 Upstream_CheckBeginPacketReception + 0x08000fa0 0x58 Src/upstream_spi.o + 0x08000fa0 Upstream_CheckBeginPacketReception .text.Upstream_TxOkInterrupt - 0x08001008 0x78 Src/upstream_spi.o - 0x08001008 Upstream_TxOkInterrupt + 0x08000ff8 0x78 Src/upstream_spi.o + 0x08000ff8 Upstream_TxOkInterrupt .text.Upstream_BeginTransmitPacketSize - 0x08001080 0x4c Src/upstream_spi.o - 0x08001080 Upstream_BeginTransmitPacketSize + 0x08001070 0x4c Src/upstream_spi.o + 0x08001070 Upstream_BeginTransmitPacketSize .text.Upstream_BeginTransmitPacketBody - 0x080010cc 0x58 Src/upstream_spi.o - 0x080010cc Upstream_BeginTransmitPacketBody + 0x080010bc 0x58 Src/upstream_spi.o + 0x080010bc Upstream_BeginTransmitPacketBody .text.Upstream_BeginReceivePacketSize - 0x08001124 0x88 Src/upstream_spi.o - 0x08001124 Upstream_BeginReceivePacketSize + 0x08001114 0x88 Src/upstream_spi.o + 0x08001114 Upstream_BeginReceivePacketSize .text.Upstream_BeginReceivePacketBody - 0x080011ac 0x58 Src/upstream_spi.o - 0x080011ac Upstream_BeginReceivePacketBody + 0x0800119c 0x58 Src/upstream_spi.o + 0x0800119c Upstream_BeginReceivePacketBody .text.HAL_SPI_RxCpltCallback - 0x08001204 0x34 Src/upstream_spi.o - 0x08001204 HAL_SPI_RxCpltCallback + 0x080011f4 0x34 Src/upstream_spi.o + 0x080011f4 HAL_SPI_RxCpltCallback .text.HAL_SPI_ErrorCallback - 0x08001238 0x28 Src/upstream_spi.o - 0x08001238 HAL_SPI_ErrorCallback + 0x08001228 0x28 Src/upstream_spi.o + 0x08001228 HAL_SPI_ErrorCallback .text.Upstream_MSC_TestReady - 0x08001260 0x68 Src/upstream_msc.o - 0x08001260 Upstream_MSC_TestReady + 0x08001250 0x34 Src/upstream_msc.o + 0x08001250 Upstream_MSC_TestReady + .text.Upstream_MSC_TestReadyFreePacketCallback + 0x08001284 0x60 Src/upstream_msc.o .text.Upstream_MSC_TestReadyReplyCallback - 0x080012c8 0x5c Src/upstream_msc.o + 0x080012e4 0x5c Src/upstream_msc.o .text.Upstream_MSC_GetCapacity - 0x08001324 0x68 Src/upstream_msc.o - 0x08001324 Upstream_MSC_GetCapacity + 0x08001340 0x68 Src/upstream_msc.o + 0x08001340 Upstream_MSC_GetCapacity .text.Upstream_MSC_GetCapacityReplyCallback - 0x0800138c 0x64 Src/upstream_msc.o + 0x080013a8 0x64 Src/upstream_msc.o .text.Upstream_MSC_BeginRead - 0x080013f0 0xa0 Src/upstream_msc.o - 0x080013f0 Upstream_MSC_BeginRead + 0x0800140c 0xa0 Src/upstream_msc.o + 0x0800140c Upstream_MSC_BeginRead .text.Upstream_MSC_GetStreamDataPacket - 0x08001490 0x74 Src/upstream_msc.o - 0x08001490 Upstream_MSC_GetStreamDataPacket + 0x080014ac 0x74 Src/upstream_msc.o + 0x080014ac Upstream_MSC_GetStreamDataPacket .text.Upstream_MSC_GetStreamDataPacketCallback - 0x08001504 0xb0 Src/upstream_msc.o + 0x08001520 0xb0 Src/upstream_msc.o .text.Upstream_MSC_BeginWrite - 0x080015b4 0x80 Src/upstream_msc.o - 0x080015b4 Upstream_MSC_BeginWrite + 0x080015d0 0x50 Src/upstream_msc.o + 0x080015d0 Upstream_MSC_BeginWrite + .text.Upstream_MSC_BeginWriteFreePacketCallback + 0x08001620 0x84 Src/upstream_msc.o .text.Upstream_MSC_BeginWriteReplyCallback - 0x08001634 0x6c Src/upstream_msc.o + 0x080016a4 0x6c Src/upstream_msc.o .text.Upstream_MSC_PutStreamDataPacket - 0x080016a0 0x50 Src/upstream_msc.o - 0x080016a0 Upstream_MSC_PutStreamDataPacket - .text.main 0x080016f0 0x24 Src/main.o - 0x080016f0 main + 0x08001710 0x50 Src/upstream_msc.o + 0x08001710 Upstream_MSC_PutStreamDataPacket + .text.main 0x08001760 0x24 Src/main.o + 0x08001760 main .text.SystemClock_Config - 0x08001714 0x98 Src/main.o - 0x08001714 SystemClock_Config + 0x08001784 0x98 Src/main.o + 0x08001784 SystemClock_Config .text.GPIO_Init - 0x080017ac 0xe4 Src/main.o + 0x0800181c 0xe4 Src/main.o .text.LED_Init - 0x08001890 0x24 Src/led.o - 0x08001890 LED_Init + 0x08001900 0x24 Src/led.o + 0x08001900 LED_Init .text.LED_Fault_SetBlinkRate - 0x080018b4 0x3c Src/led.o - 0x080018b4 LED_Fault_SetBlinkRate + 0x08001924 0x3c Src/led.o + 0x08001924 LED_Fault_SetBlinkRate .text.LED_DoBlinks - 0x080018f0 0x68 Src/led.o - 0x080018f0 LED_DoBlinks + 0x08001960 0x68 Src/led.o + 0x08001960 LED_DoBlinks .text.SysTick_Handler - 0x08001958 0x10 Src/interrupts.o - 0x08001958 SysTick_Handler + 0x080019c8 0x10 Src/interrupts.o + 0x080019c8 SysTick_Handler .text.OTG_FS_IRQHandler - 0x08001968 0x10 Src/interrupts.o - 0x08001968 OTG_FS_IRQHandler + 0x080019d8 0x10 Src/interrupts.o + 0x080019d8 OTG_FS_IRQHandler .text.EXTI3_IRQHandler - 0x08001978 0x14 Src/interrupts.o - 0x08001978 EXTI3_IRQHandler + 0x080019e8 0x14 Src/interrupts.o + 0x080019e8 EXTI3_IRQHandler .text.SPI1_IRQHandler - 0x0800198c 0x24 Src/interrupts.o - 0x0800198c SPI1_IRQHandler + 0x080019fc 0x24 Src/interrupts.o + 0x080019fc SPI1_IRQHandler .text.HAL_MspInit - 0x080019b0 0x14 Src/hal_msp.o - 0x080019b0 HAL_MspInit + 0x08001a20 0x14 Src/hal_msp.o + 0x08001a20 HAL_MspInit .text.HAL_SPI_MspInit - 0x080019c4 0xac Src/hal_msp.o - 0x080019c4 HAL_SPI_MspInit + 0x08001a34 0xac Src/hal_msp.o + 0x08001a34 HAL_SPI_MspInit .text.USBD_CtlSendData - 0x08001a70 0x38 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o - 0x08001a70 USBD_CtlSendData + 0x08001ae0 0x38 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o + 0x08001ae0 USBD_CtlSendData .text.USBD_CtlContinueSendData - 0x08001aa8 0x24 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o - 0x08001aa8 USBD_CtlContinueSendData + 0x08001b18 0x24 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o + 0x08001b18 USBD_CtlContinueSendData .text.USBD_CtlContinueRx - 0x08001acc 0x24 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o - 0x08001acc USBD_CtlContinueRx + 0x08001b3c 0x24 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o + 0x08001b3c USBD_CtlContinueRx .text.USBD_CtlSendStatus - 0x08001af0 0x28 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o - 0x08001af0 USBD_CtlSendStatus + 0x08001b60 0x28 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o + 0x08001b60 USBD_CtlSendStatus .text.USBD_CtlReceiveStatus - 0x08001b18 0x28 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o - 0x08001b18 USBD_CtlReceiveStatus + 0x08001b88 0x28 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o + 0x08001b88 USBD_CtlReceiveStatus .text.USBD_StdDevReq - 0x08001b40 0xa0 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o - 0x08001b40 USBD_StdDevReq + 0x08001bb0 0xa0 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x08001bb0 USBD_StdDevReq .text.USBD_StdItfReq - 0x08001be0 0x68 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o - 0x08001be0 USBD_StdItfReq + 0x08001c50 0x68 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x08001c50 USBD_StdItfReq .text.USBD_StdEPReq - 0x08001c48 0x1b0 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o - 0x08001c48 USBD_StdEPReq + 0x08001cb8 0x1b0 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x08001cb8 USBD_StdEPReq .text.USBD_GetDescriptor - 0x08001df8 0x1f8 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x08001e68 0x1f8 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o .text.USBD_SetAddress - 0x08001ff0 0x7c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x08002060 0x7c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o .text.USBD_SetConfig - 0x0800206c 0x114 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x080020dc 0x114 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o .text.USBD_GetConfig - 0x08002180 0x64 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x080021f0 0x64 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o .text.USBD_GetStatus - 0x080021e4 0x54 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x08002254 0x54 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o .text.USBD_SetFeature - 0x08002238 0x34 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x080022a8 0x34 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o .text.USBD_ClrFeature - 0x0800226c 0x50 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x080022dc 0x50 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o .text.USBD_ParseSetupRequest - 0x080022bc 0x78 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o - 0x080022bc USBD_ParseSetupRequest + 0x0800232c 0x78 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x0800232c USBD_ParseSetupRequest .text.USBD_CtlError - 0x08002334 0x20 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o - 0x08002334 USBD_CtlError + 0x080023a4 0x20 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x080023a4 USBD_CtlError .text.USBD_GetString - 0x08002354 0x84 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o - 0x08002354 USBD_GetString + 0x080023c4 0x84 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x080023c4 USBD_GetString .text.USBD_GetLen - 0x080023d8 0x30 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x08002448 0x30 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o .text.USBD_Init - 0x08002408 0x54 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x08002408 USBD_Init + 0x08002478 0x54 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x08002478 USBD_Init .text.USBD_RegisterClass - 0x0800245c 0x34 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x0800245c USBD_RegisterClass + 0x080024cc 0x34 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x080024cc USBD_RegisterClass .text.USBD_Start - 0x08002490 0x18 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x08002490 USBD_Start + 0x08002500 0x18 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x08002500 USBD_Start .text.USBD_Stop - 0x080024a8 0x2c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x080024a8 USBD_Stop + 0x08002518 0x2c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x08002518 USBD_Stop .text.USBD_RunTestMode - 0x080024d4 0x18 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x080024d4 USBD_RunTestMode + 0x08002544 0x18 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x08002544 USBD_RunTestMode .text.USBD_SetClassConfig - 0x080024ec 0x40 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x080024ec USBD_SetClassConfig + 0x0800255c 0x40 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x0800255c USBD_SetClassConfig .text.USBD_ClrClassConfig - 0x0800252c 0x28 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x0800252c USBD_ClrClassConfig + 0x0800259c 0x28 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x0800259c USBD_ClrClassConfig .text.USBD_SetupStage - 0x08002554 0x94 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x08002554 USBD_SetupStage + 0x080025c4 0x94 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x080025c4 USBD_SetupStage .text.USBD_DataOutStage - 0x080025e8 0xb8 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x080025e8 USBD_DataOutStage + 0x08002658 0xb8 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x08002658 USBD_DataOutStage .text.USBD_DataInStage - 0x080026a0 0x120 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x080026a0 USBD_DataInStage + 0x08002710 0x120 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x08002710 USBD_DataInStage .text.USBD_Reset - 0x080027c0 0x60 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x080027c0 USBD_Reset + 0x08002830 0x60 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x08002830 USBD_Reset .text.USBD_SetSpeed - 0x08002820 0x20 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x08002820 USBD_SetSpeed + 0x08002890 0x20 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x08002890 USBD_SetSpeed .text.USBD_Suspend - 0x08002840 0x2c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x08002840 USBD_Suspend + 0x080028b0 0x2c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x080028b0 USBD_Suspend .text.USBD_Resume - 0x0800286c 0x24 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x0800286c USBD_Resume + 0x080028dc 0x24 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x080028dc USBD_Resume .text.USBD_SOF - 0x08002890 0x34 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x08002890 USBD_SOF + 0x08002900 0x34 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x08002900 USBD_SOF .text.USBD_IsoINIncomplete - 0x080028c4 0x1c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x080028c4 USBD_IsoINIncomplete + 0x08002934 0x1c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x08002934 USBD_IsoINIncomplete .text.USBD_IsoOUTIncomplete - 0x080028e0 0x1c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x080028e0 USBD_IsoOUTIncomplete + 0x08002950 0x1c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x08002950 USBD_IsoOUTIncomplete .text.USBD_DevConnected - 0x080028fc 0x18 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x080028fc USBD_DevConnected + 0x0800296c 0x18 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x0800296c USBD_DevConnected .text.USBD_DevDisconnected - 0x08002914 0x30 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x08002914 USBD_DevDisconnected + 0x08002984 0x30 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x08002984 USBD_DevDisconnected .text.USBD_BufferFreed - 0x08002944 0x20 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - 0x08002944 USBD_BufferFreed + 0x080029b4 0x20 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x080029b4 USBD_BufferFreed .text.SCSI_ProcessCmd - 0x08002964 0x22c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - 0x08002964 SCSI_ProcessCmd + 0x080029d4 0x22c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x080029d4 SCSI_ProcessCmd .text.SCSI_TestUnitReady - 0x08002b90 0x68 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08002c00 0x68 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o .text.SCSI_TestUnitReadyCallback - 0x08002bf8 0x60 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - 0x08002bf8 SCSI_TestUnitReadyCallback + 0x08002c68 0x60 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08002c68 SCSI_TestUnitReadyCallback .text.SCSI_Inquiry - 0x08002c58 0xb0 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08002cc8 0xb0 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o .text.SCSI_ReadCapacity10 - 0x08002d08 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08002d78 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o .text.SCSI_ReadCapacity10Callback - 0x08002d28 0x12c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - 0x08002d28 SCSI_ReadCapacity10Callback + 0x08002d98 0x12c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08002d98 SCSI_ReadCapacity10Callback .text.SCSI_ReadFormatCapacity - 0x08002e54 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08002ec4 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o .text.SCSI_ReadFormatCapacityCallback - 0x08002e74 0x11c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - 0x08002e74 SCSI_ReadFormatCapacityCallback + 0x08002ee4 0x11c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08002ee4 SCSI_ReadFormatCapacityCallback .text.SCSI_ModeSense6 - 0x08002f90 0x64 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08003000 0x64 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o .text.SCSI_ModeSense10 - 0x08002ff4 0x64 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08003064 0x64 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o .text.SCSI_RequestSense - 0x08003058 0x130 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x080030c8 0x130 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o .text.SCSI_SenseCode - 0x08003188 0x7c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - 0x08003188 SCSI_SenseCode + 0x080031f8 0x7c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x080031f8 SCSI_SenseCode .text.SCSI_StartStopUnit - 0x08003204 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08003274 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o .text.SCSI_Read10 - 0x08003224 0x188 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08003294 0x188 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o .text.SCSI_Read10BeginCallback - 0x080033ac 0x68 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - 0x080033ac SCSI_Read10BeginCallback + 0x0800341c 0x68 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x0800341c SCSI_Read10BeginCallback .text.SCSI_Read10ReplyCallback - 0x08003414 0xa4 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - 0x08003414 SCSI_Read10ReplyCallback + 0x08003484 0xa4 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08003484 SCSI_Read10ReplyCallback .text.SCSI_Write10 - 0x080034b8 0x210 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08003528 0x210 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o .text.SCSI_Write10BeginCallback - 0x080036c8 0xa4 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - 0x080036c8 SCSI_Write10BeginCallback + 0x08003738 0xa4 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08003738 SCSI_Write10BeginCallback .text.SCSI_Write10FreePacketCallback - 0x0800376c 0x58 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - 0x0800376c SCSI_Write10FreePacketCallback + 0x080037dc 0x58 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x080037dc SCSI_Write10FreePacketCallback .text.SCSI_Verify10 - 0x080037c4 0x84 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x08003834 0x84 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o .text.SCSI_CheckAddressRange - 0x08003848 0x58 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x080038b8 0x58 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o .text.MSC_BOT_Init - 0x080038a0 0x54 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - 0x080038a0 MSC_BOT_Init + 0x08003910 0x54 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x08003910 MSC_BOT_Init .text.MSC_BOT_Reset - 0x080038f4 0x34 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - 0x080038f4 MSC_BOT_Reset + 0x08003964 0x34 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x08003964 MSC_BOT_Reset .text.MSC_BOT_DeInit - 0x08003928 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - 0x08003928 MSC_BOT_DeInit + 0x08003998 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x08003998 MSC_BOT_DeInit .text.MSC_BOT_DataIn - 0x08003948 0x60 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - 0x08003948 MSC_BOT_DataIn + 0x080039b8 0x60 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x080039b8 MSC_BOT_DataIn .text.MSC_BOT_DataIn_Callback - 0x080039a8 0x28 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - 0x080039a8 MSC_BOT_DataIn_Callback + 0x08003a18 0x28 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x08003a18 MSC_BOT_DataIn_Callback .text.MSC_BOT_DataOut - 0x080039d0 0x58 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - 0x080039d0 MSC_BOT_DataOut + 0x08003a40 0x58 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x08003a40 MSC_BOT_DataOut .text.MSC_BOT_DataOut_Callback - 0x08003a28 0x28 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - 0x08003a28 MSC_BOT_DataOut_Callback + 0x08003a98 0x28 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x08003a98 MSC_BOT_DataOut_Callback .text.MSC_BOT_CBW_Decode - 0x08003a50 0xb0 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x08003ac0 0xb0 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o .text.MSC_BOT_CBW_Decode_Callback - 0x08003b00 0xa0 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - 0x08003b00 MSC_BOT_CBW_Decode_Callback + 0x08003b70 0xa0 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x08003b70 MSC_BOT_CBW_Decode_Callback .text.MSC_BOT_SendData - 0x08003ba0 0x50 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x08003c10 0x50 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o .text.MSC_BOT_SendCSW - 0x08003bf0 0x54 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - 0x08003bf0 MSC_BOT_SendCSW + 0x08003c60 0x58 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x08003c60 MSC_BOT_SendCSW .text.MSC_BOT_Abort - 0x08003c44 0x58 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x08003cb8 0x58 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o .text.MSC_BOT_CplClrFeature - 0x08003c9c 0x4c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - 0x08003c9c MSC_BOT_CplClrFeature + 0x08003d10 0x4c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x08003d10 MSC_BOT_CplClrFeature .text.USBD_MSC_Init - 0x08003ce8 0x90 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - 0x08003ce8 USBD_MSC_Init + 0x08003d5c 0x90 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + 0x08003d5c USBD_MSC_Init .text.USBD_MSC_DeInit - 0x08003d78 0x4c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - 0x08003d78 USBD_MSC_DeInit + 0x08003dec 0x4c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + 0x08003dec USBD_MSC_DeInit .text.USBD_MSC_Setup - 0x08003dc4 0x16c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - 0x08003dc4 USBD_MSC_Setup + 0x08003e38 0x16c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + 0x08003e38 USBD_MSC_Setup .text.USBD_MSC_DataIn - 0x08003f30 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - 0x08003f30 USBD_MSC_DataIn + 0x08003fa4 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + 0x08003fa4 USBD_MSC_DataIn .text.USBD_MSC_DataOut - 0x08003f50 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - 0x08003f50 USBD_MSC_DataOut + 0x08003fc4 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + 0x08003fc4 USBD_MSC_DataOut .text.USBD_MSC_BufferFreed - 0x08003f70 0x40 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - 0x08003f70 USBD_MSC_BufferFreed + 0x08003fe4 0x40 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + 0x08003fe4 USBD_MSC_BufferFreed .text.USBD_MSC_GetHSCfgDesc - 0x08003fb0 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - 0x08003fb0 USBD_MSC_GetHSCfgDesc + 0x08004024 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + 0x08004024 USBD_MSC_GetHSCfgDesc .text.USBD_MSC_GetFSCfgDesc - 0x08003fd0 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - 0x08003fd0 USBD_MSC_GetFSCfgDesc + 0x08004044 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + 0x08004044 USBD_MSC_GetFSCfgDesc .text.USBD_MSC_GetOtherSpeedCfgDesc - 0x08003ff0 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - 0x08003ff0 USBD_MSC_GetOtherSpeedCfgDesc + 0x08004064 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + 0x08004064 USBD_MSC_GetOtherSpeedCfgDesc .text.USBD_MSC_GetDeviceQualifierDescriptor - 0x08004010 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - 0x08004010 USBD_MSC_GetDeviceQualifierDescriptor + 0x08004084 0x20 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + 0x08004084 USBD_MSC_GetDeviceQualifierDescriptor .text.USB_CoreInit - 0x08004030 0xa4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08004030 USB_CoreInit + 0x080040a4 0xa4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x080040a4 USB_CoreInit .text.USB_EnableGlobalInt - 0x080040d4 0x24 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x080040d4 USB_EnableGlobalInt + 0x08004148 0x24 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08004148 USB_EnableGlobalInt .text.USB_DisableGlobalInt - 0x080040f8 0x24 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x080040f8 USB_DisableGlobalInt + 0x0800416c 0x24 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x0800416c USB_DisableGlobalInt .text.USB_SetCurrentMode - 0x0800411c 0x50 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x0800411c USB_SetCurrentMode + 0x08004190 0x50 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08004190 USB_SetCurrentMode .text.USB_DevInit - 0x0800416c 0x258 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x0800416c USB_DevInit + 0x080041e0 0x258 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x080041e0 USB_DevInit .text.USB_FlushTxFifo - 0x080043c4 0x4c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x080043c4 USB_FlushTxFifo + 0x08004438 0x4c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08004438 USB_FlushTxFifo .text.USB_FlushRxFifo - 0x08004410 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08004410 USB_FlushRxFifo + 0x08004484 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08004484 USB_FlushRxFifo .text.USB_SetDevSpeed - 0x08004454 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08004454 USB_SetDevSpeed + 0x080044c8 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x080044c8 USB_SetDevSpeed .text.USB_GetDevSpeed - 0x08004484 0x6c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08004484 USB_GetDevSpeed + 0x080044f8 0x6c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x080044f8 USB_GetDevSpeed .text.USB_ActivateEndpoint - 0x080044f0 0x114 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x080044f0 USB_ActivateEndpoint + 0x08004564 0x114 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08004564 USB_ActivateEndpoint .text.USB_DeactivateEndpoint - 0x08004604 0xf8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08004604 USB_DeactivateEndpoint + 0x08004678 0xf8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08004678 USB_DeactivateEndpoint .text.USB_EPStartXfer - 0x080046fc 0x484 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x080046fc USB_EPStartXfer + 0x08004770 0x484 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08004770 USB_EPStartXfer .text.USB_EP0StartXfer - 0x08004b80 0x2bc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08004b80 USB_EP0StartXfer + 0x08004bf4 0x2bc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08004bf4 USB_EP0StartXfer .text.USB_WritePacket - 0x08004e3c 0x70 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08004e3c USB_WritePacket + 0x08004eb0 0x70 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08004eb0 USB_WritePacket .text.USB_ReadPacket - 0x08004eac 0x54 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08004eac USB_ReadPacket + 0x08004f20 0x54 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08004f20 USB_ReadPacket .text.USB_EPSetStall - 0x08004f00 0xe4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08004f00 USB_EPSetStall + 0x08004f74 0xe4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08004f74 USB_EPSetStall .text.USB_EPClearStall - 0x08004fe4 0xdc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08004fe4 USB_EPClearStall + 0x08005058 0xdc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08005058 USB_EPClearStall .text.USB_StopDevice - 0x080050c0 0x88 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x080050c0 USB_StopDevice + 0x08005134 0x88 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08005134 USB_StopDevice .text.USB_SetDevAddress - 0x08005148 0x4c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08005148 USB_SetDevAddress + 0x080051bc 0x4c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x080051bc USB_SetDevAddress .text.USB_DevConnect - 0x08005194 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08005194 USB_DevConnect + 0x08005208 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08005208 USB_DevConnect .text.USB_DevDisconnect - 0x080051c4 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x080051c4 USB_DevDisconnect + 0x08005238 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08005238 USB_DevDisconnect .text.USB_ReadInterrupts - 0x080051f4 0x2c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x080051f4 USB_ReadInterrupts + 0x08005268 0x2c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08005268 USB_ReadInterrupts .text.USB_ReadDevAllOutEpInterrupt - 0x08005220 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08005220 USB_ReadDevAllOutEpInterrupt + 0x08005294 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08005294 USB_ReadDevAllOutEpInterrupt .text.USB_ReadDevAllInEpInterrupt - 0x08005250 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08005250 USB_ReadDevAllInEpInterrupt + 0x080052c4 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x080052c4 USB_ReadDevAllInEpInterrupt .text.USB_ReadDevOutEPInterrupt - 0x08005280 0x38 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08005280 USB_ReadDevOutEPInterrupt + 0x080052f4 0x38 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x080052f4 USB_ReadDevOutEPInterrupt .text.USB_ReadDevInEPInterrupt - 0x080052b8 0x54 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x080052b8 USB_ReadDevInEPInterrupt + 0x0800532c 0x54 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x0800532c USB_ReadDevInEPInterrupt .text.USB_GetMode - 0x0800530c 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x0800530c USB_GetMode + 0x08005380 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08005380 USB_GetMode .text.USB_ActivateSetup - 0x08005328 0x6c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08005328 USB_ActivateSetup + 0x0800539c 0x6c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x0800539c USB_ActivateSetup .text.USB_EP0_OutStart - 0x08005394 0x8c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - 0x08005394 USB_EP0_OutStart + 0x08005408 0x8c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08005408 USB_EP0_OutStart .text.USB_CoreReset - 0x08005420 0x68 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x08005494 0x68 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o .text.HAL_SPI_Init - 0x08005488 0xcc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x08005488 HAL_SPI_Init + 0x080054fc 0xcc Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x080054fc HAL_SPI_Init .text.HAL_SPI_TransmitReceive_IT - 0x08005554 0x12c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x08005554 HAL_SPI_TransmitReceive_IT + 0x080055c8 0x12c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x080055c8 HAL_SPI_TransmitReceive_IT .text.HAL_SPI_IRQHandler - 0x08005680 0x194 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x08005680 HAL_SPI_IRQHandler + 0x080056f4 0x194 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x080056f4 HAL_SPI_IRQHandler .text.HAL_SPI_TxCpltCallback - 0x08005814 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - 0x08005814 HAL_SPI_TxCpltCallback + 0x08005888 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x08005888 HAL_SPI_TxCpltCallback .text.SPI_TxCloseIRQHandler - 0x08005828 0xd4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x0800589c 0xd4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.SPI_TxISR - 0x080058fc 0x74 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x08005970 0x74 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.SPI_RxCloseIRQHandler - 0x08005970 0x138 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x080059e4 0x138 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.SPI_2LinesRxISR - 0x08005aa8 0x60 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x08005b1c 0x60 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.SPI_WaitOnFlagUntilTimeout - 0x08005b08 0x148 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x08005b7c 0x148 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .text.HAL_RCC_OscConfig - 0x08005c50 0x3c8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - 0x08005c50 HAL_RCC_OscConfig + 0x08005cc4 0x3c8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x08005cc4 HAL_RCC_OscConfig .text.HAL_RCC_ClockConfig - 0x08006018 0x2b0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - 0x08006018 HAL_RCC_ClockConfig + 0x0800608c 0x2b0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x0800608c HAL_RCC_ClockConfig .text.HAL_RCC_GetSysClockFreq - 0x080062c8 0x118 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - 0x080062c8 HAL_RCC_GetSysClockFreq + 0x0800633c 0x118 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x0800633c HAL_RCC_GetSysClockFreq .text.HAL_RCC_GetHCLKFreq - 0x080063e0 0x58 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - 0x080063e0 HAL_RCC_GetHCLKFreq + 0x08006454 0x58 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x08006454 HAL_RCC_GetHCLKFreq .text.HAL_PCDEx_SetTxFiFo - 0x08006438 0x9c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o - 0x08006438 HAL_PCDEx_SetTxFiFo + 0x080064ac 0x9c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o + 0x080064ac HAL_PCDEx_SetTxFiFo .text.HAL_PCDEx_SetRxFiFo - 0x080064d4 0x24 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o - 0x080064d4 HAL_PCDEx_SetRxFiFo + 0x08006548 0x24 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o + 0x08006548 HAL_PCDEx_SetRxFiFo .text.HAL_PCD_Init - 0x080064f8 0x210 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - 0x080064f8 HAL_PCD_Init + 0x0800656c 0x210 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x0800656c HAL_PCD_Init .text.HAL_PCD_Start - 0x08006708 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - 0x08006708 HAL_PCD_Start + 0x0800677c 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x0800677c HAL_PCD_Start .text.HAL_PCD_Stop - 0x0800674c 0x50 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - 0x0800674c HAL_PCD_Stop + 0x080067c0 0x50 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x080067c0 HAL_PCD_Stop .text.HAL_PCD_IRQHandler - 0x0800679c 0x764 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - 0x0800679c HAL_PCD_IRQHandler + 0x08006810 0x764 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x08006810 HAL_PCD_IRQHandler .text.HAL_PCD_SetAddress - 0x08006f00 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - 0x08006f00 HAL_PCD_SetAddress + 0x08006f74 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x08006f74 HAL_PCD_SetAddress .text.HAL_PCD_EP_Open - 0x08006f44 0xd0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - 0x08006f44 HAL_PCD_EP_Open + 0x08006fb8 0xd0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x08006fb8 HAL_PCD_EP_Open .text.HAL_PCD_EP_Close - 0x08007014 0x94 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - 0x08007014 HAL_PCD_EP_Close + 0x08007088 0x94 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x08007088 HAL_PCD_EP_Close .text.HAL_PCD_EP_Receive - 0x080070a8 0xb8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - 0x080070a8 HAL_PCD_EP_Receive + 0x0800711c 0xb8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x0800711c HAL_PCD_EP_Receive .text.HAL_PCD_EP_GetRxCount - 0x08007160 0x34 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - 0x08007160 HAL_PCD_EP_GetRxCount + 0x080071d4 0x34 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x080071d4 HAL_PCD_EP_GetRxCount .text.HAL_PCD_EP_Transmit - 0x08007194 0xb8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - 0x08007194 HAL_PCD_EP_Transmit + 0x08007208 0xb8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x08007208 HAL_PCD_EP_Transmit .text.HAL_PCD_EP_SetStall - 0x0800724c 0xb8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - 0x0800724c HAL_PCD_EP_SetStall + 0x080072c0 0xb8 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x080072c0 HAL_PCD_EP_SetStall .text.HAL_PCD_EP_ClrStall - 0x08007304 0x94 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - 0x08007304 HAL_PCD_EP_ClrStall + 0x08007378 0x94 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x08007378 HAL_PCD_EP_ClrStall .text.HAL_PCD_EP_Flush - 0x08007398 0x5c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - 0x08007398 HAL_PCD_EP_Flush + 0x0800740c 0x5c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x0800740c HAL_PCD_EP_Flush .text.PCD_WriteEmptyTxFifo - 0x080073f4 0x118 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x08007468 0x118 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o .text.HAL_GPIO_Init - 0x0800750c 0x32c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - 0x0800750c HAL_GPIO_Init + 0x08007580 0x32c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + 0x08007580 HAL_GPIO_Init .text.NVIC_SetPriorityGrouping - 0x08007838 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x080078ac 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.NVIC_GetPriorityGrouping - 0x08007880 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x080078f4 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.NVIC_EnableIRQ - 0x0800789c 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x08007910 0x30 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.NVIC_SetPriority - 0x080078cc 0x54 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x08007940 0x54 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.NVIC_EncodePriority - 0x08007920 0x68 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x08007994 0x68 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.SysTick_Config - 0x08007988 0x3c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x080079fc 0x3c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .text.HAL_NVIC_SetPriorityGrouping - 0x080079c4 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - 0x080079c4 HAL_NVIC_SetPriorityGrouping + 0x08007a38 0x14 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x08007a38 HAL_NVIC_SetPriorityGrouping .text.HAL_NVIC_SetPriority - 0x080079d8 0x38 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - 0x080079d8 HAL_NVIC_SetPriority + 0x08007a4c 0x38 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x08007a4c HAL_NVIC_SetPriority .text.HAL_NVIC_EnableIRQ - 0x08007a10 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - 0x08007a10 HAL_NVIC_EnableIRQ + 0x08007a84 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x08007a84 HAL_NVIC_EnableIRQ .text.HAL_SYSTICK_Config - 0x08007a2c 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - 0x08007a2c HAL_SYSTICK_Config + 0x08007aa0 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x08007aa0 HAL_SYSTICK_Config .text.HAL_SYSTICK_CLKSourceConfig - 0x08007a44 0x38 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - 0x08007a44 HAL_SYSTICK_CLKSourceConfig + 0x08007ab8 0x38 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x08007ab8 HAL_SYSTICK_CLKSourceConfig .text.HAL_Init - 0x08007a7c 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x08007a7c HAL_Init + 0x08007af0 0x44 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x08007af0 HAL_Init .text.HAL_InitTick - 0x08007ac0 0x2c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x08007ac0 HAL_InitTick + 0x08007b34 0x2c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x08007b34 HAL_InitTick .text.HAL_IncTick - 0x08007aec 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x08007aec HAL_IncTick + 0x08007b60 0x1c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x08007b60 HAL_IncTick .text.HAL_GetTick - 0x08007b08 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x08007b08 HAL_GetTick + 0x08007b7c 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x08007b7c HAL_GetTick .text.HAL_Delay - 0x08007b20 0x2c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - 0x08007b20 HAL_Delay + 0x08007b94 0x2c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x08007b94 HAL_Delay .text.SystemInit - 0x08007b4c 0x5c Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o - 0x08007b4c SystemInit + 0x08007bc0 0x5c Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o + 0x08007bc0 SystemInit .text.Reset_Handler - 0x08007ba8 0x4c Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o - 0x08007ba8 Reset_Handler + 0x08007c1c 0x4c Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o + 0x08007c1c Reset_Handler .text.Default_Handler - 0x08007bf4 0x2 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o - 0x08007bf4 RTC_Alarm_IRQHandler - 0x08007bf4 HASH_RNG_IRQHandler - 0x08007bf4 EXTI2_IRQHandler - 0x08007bf4 TIM8_CC_IRQHandler - 0x08007bf4 DebugMon_Handler - 0x08007bf4 TIM1_CC_IRQHandler - 0x08007bf4 DMA2_Stream5_IRQHandler - 0x08007bf4 HardFault_Handler - 0x08007bf4 DMA1_Stream5_IRQHandler - 0x08007bf4 PVD_IRQHandler - 0x08007bf4 SDIO_IRQHandler - 0x08007bf4 TAMP_STAMP_IRQHandler - 0x08007bf4 PendSV_Handler - 0x08007bf4 NMI_Handler - 0x08007bf4 CAN2_RX1_IRQHandler - 0x08007bf4 TIM8_TRG_COM_TIM14_IRQHandler - 0x08007bf4 TIM1_UP_TIM10_IRQHandler - 0x08007bf4 TIM8_UP_TIM13_IRQHandler - 0x08007bf4 I2C3_ER_IRQHandler - 0x08007bf4 EXTI0_IRQHandler - 0x08007bf4 I2C2_EV_IRQHandler - 0x08007bf4 DMA1_Stream2_IRQHandler - 0x08007bf4 CAN1_RX0_IRQHandler - 0x08007bf4 FPU_IRQHandler - 0x08007bf4 OTG_HS_WKUP_IRQHandler - 0x08007bf4 UsageFault_Handler - 0x08007bf4 CAN2_SCE_IRQHandler - 0x08007bf4 DMA2_Stream2_IRQHandler - 0x08007bf4 TIM6_DAC_IRQHandler - 0x08007bf4 TIM1_BRK_TIM9_IRQHandler - 0x08007bf4 CAN2_RX0_IRQHandler - 0x08007bf4 DMA2_Stream3_IRQHandler - 0x08007bf4 USART6_IRQHandler - 0x08007bf4 USART3_IRQHandler - 0x08007bf4 CAN1_RX1_IRQHandler - 0x08007bf4 UART5_IRQHandler - 0x08007bf4 DMA2_Stream0_IRQHandler - 0x08007bf4 TIM4_IRQHandler - 0x08007bf4 I2C1_EV_IRQHandler - 0x08007bf4 DMA1_Stream6_IRQHandler - 0x08007bf4 DMA1_Stream1_IRQHandler - 0x08007bf4 UART4_IRQHandler - 0x08007bf4 TIM3_IRQHandler - 0x08007bf4 RCC_IRQHandler - 0x08007bf4 TIM8_BRK_TIM12_IRQHandler - 0x08007bf4 Default_Handler - 0x08007bf4 EXTI15_10_IRQHandler - 0x08007bf4 ADC_IRQHandler - 0x08007bf4 DMA1_Stream7_IRQHandler - 0x08007bf4 TIM7_IRQHandler - 0x08007bf4 CAN2_TX_IRQHandler - 0x08007bf4 TIM5_IRQHandler - 0x08007bf4 DMA2_Stream7_IRQHandler - 0x08007bf4 I2C3_EV_IRQHandler - 0x08007bf4 EXTI9_5_IRQHandler - 0x08007bf4 RTC_WKUP_IRQHandler - 0x08007bf4 SPI2_IRQHandler - 0x08007bf4 OTG_HS_EP1_IN_IRQHandler - 0x08007bf4 MemManage_Handler - 0x08007bf4 DMA1_Stream0_IRQHandler - 0x08007bf4 CAN1_TX_IRQHandler - 0x08007bf4 SVC_Handler - 0x08007bf4 EXTI4_IRQHandler - 0x08007bf4 FSMC_IRQHandler - 0x08007bf4 OTG_HS_EP1_OUT_IRQHandler - 0x08007bf4 WWDG_IRQHandler - 0x08007bf4 TIM2_IRQHandler - 0x08007bf4 OTG_FS_WKUP_IRQHandler - 0x08007bf4 TIM1_TRG_COM_TIM11_IRQHandler - 0x08007bf4 OTG_HS_IRQHandler - 0x08007bf4 EXTI1_IRQHandler - 0x08007bf4 USART2_IRQHandler - 0x08007bf4 I2C2_ER_IRQHandler - 0x08007bf4 DMA2_Stream1_IRQHandler - 0x08007bf4 CAN1_SCE_IRQHandler - 0x08007bf4 FLASH_IRQHandler - 0x08007bf4 DMA2_Stream4_IRQHandler - 0x08007bf4 BusFault_Handler - 0x08007bf4 USART1_IRQHandler - 0x08007bf4 SPI3_IRQHandler - 0x08007bf4 DMA1_Stream4_IRQHandler - 0x08007bf4 I2C1_ER_IRQHandler - 0x08007bf4 DMA2_Stream6_IRQHandler - 0x08007bf4 DMA1_Stream3_IRQHandler - *fill* 0x08007bf6 0x2 - .text.malloc 0x08007bf8 0x10 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-malloc.o) - 0x08007bf8 malloc - .text.free 0x08007c08 0x10 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-malloc.o) - 0x08007c08 free - .text._free_r 0x08007c18 0x88 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-nano-freer.o) - 0x08007c18 _free_r + 0x08007c68 0x2 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o + 0x08007c68 RTC_Alarm_IRQHandler + 0x08007c68 HASH_RNG_IRQHandler + 0x08007c68 EXTI2_IRQHandler + 0x08007c68 TIM8_CC_IRQHandler + 0x08007c68 DebugMon_Handler + 0x08007c68 TIM1_CC_IRQHandler + 0x08007c68 DMA2_Stream5_IRQHandler + 0x08007c68 HardFault_Handler + 0x08007c68 DMA1_Stream5_IRQHandler + 0x08007c68 PVD_IRQHandler + 0x08007c68 SDIO_IRQHandler + 0x08007c68 TAMP_STAMP_IRQHandler + 0x08007c68 PendSV_Handler + 0x08007c68 NMI_Handler + 0x08007c68 CAN2_RX1_IRQHandler + 0x08007c68 TIM8_TRG_COM_TIM14_IRQHandler + 0x08007c68 TIM1_UP_TIM10_IRQHandler + 0x08007c68 TIM8_UP_TIM13_IRQHandler + 0x08007c68 I2C3_ER_IRQHandler + 0x08007c68 EXTI0_IRQHandler + 0x08007c68 I2C2_EV_IRQHandler + 0x08007c68 DMA1_Stream2_IRQHandler + 0x08007c68 CAN1_RX0_IRQHandler + 0x08007c68 FPU_IRQHandler + 0x08007c68 OTG_HS_WKUP_IRQHandler + 0x08007c68 UsageFault_Handler + 0x08007c68 CAN2_SCE_IRQHandler + 0x08007c68 DMA2_Stream2_IRQHandler + 0x08007c68 TIM6_DAC_IRQHandler + 0x08007c68 TIM1_BRK_TIM9_IRQHandler + 0x08007c68 CAN2_RX0_IRQHandler + 0x08007c68 DMA2_Stream3_IRQHandler + 0x08007c68 USART6_IRQHandler + 0x08007c68 USART3_IRQHandler + 0x08007c68 CAN1_RX1_IRQHandler + 0x08007c68 UART5_IRQHandler + 0x08007c68 DMA2_Stream0_IRQHandler + 0x08007c68 TIM4_IRQHandler + 0x08007c68 I2C1_EV_IRQHandler + 0x08007c68 DMA1_Stream6_IRQHandler + 0x08007c68 DMA1_Stream1_IRQHandler + 0x08007c68 UART4_IRQHandler + 0x08007c68 TIM3_IRQHandler + 0x08007c68 RCC_IRQHandler + 0x08007c68 TIM8_BRK_TIM12_IRQHandler + 0x08007c68 Default_Handler + 0x08007c68 EXTI15_10_IRQHandler + 0x08007c68 ADC_IRQHandler + 0x08007c68 DMA1_Stream7_IRQHandler + 0x08007c68 TIM7_IRQHandler + 0x08007c68 CAN2_TX_IRQHandler + 0x08007c68 TIM5_IRQHandler + 0x08007c68 DMA2_Stream7_IRQHandler + 0x08007c68 I2C3_EV_IRQHandler + 0x08007c68 EXTI9_5_IRQHandler + 0x08007c68 RTC_WKUP_IRQHandler + 0x08007c68 SPI2_IRQHandler + 0x08007c68 OTG_HS_EP1_IN_IRQHandler + 0x08007c68 MemManage_Handler + 0x08007c68 DMA1_Stream0_IRQHandler + 0x08007c68 CAN1_TX_IRQHandler + 0x08007c68 SVC_Handler + 0x08007c68 EXTI4_IRQHandler + 0x08007c68 FSMC_IRQHandler + 0x08007c68 OTG_HS_EP1_OUT_IRQHandler + 0x08007c68 WWDG_IRQHandler + 0x08007c68 TIM2_IRQHandler + 0x08007c68 OTG_FS_WKUP_IRQHandler + 0x08007c68 TIM1_TRG_COM_TIM11_IRQHandler + 0x08007c68 OTG_HS_IRQHandler + 0x08007c68 EXTI1_IRQHandler + 0x08007c68 USART2_IRQHandler + 0x08007c68 I2C2_ER_IRQHandler + 0x08007c68 DMA2_Stream1_IRQHandler + 0x08007c68 CAN1_SCE_IRQHandler + 0x08007c68 FLASH_IRQHandler + 0x08007c68 DMA2_Stream4_IRQHandler + 0x08007c68 BusFault_Handler + 0x08007c68 USART1_IRQHandler + 0x08007c68 SPI3_IRQHandler + 0x08007c68 DMA1_Stream4_IRQHandler + 0x08007c68 I2C1_ER_IRQHandler + 0x08007c68 DMA2_Stream6_IRQHandler + 0x08007c68 DMA1_Stream3_IRQHandler + *fill* 0x08007c6a 0x2 + .text.malloc 0x08007c6c 0x10 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-malloc.o) + 0x08007c6c malloc + .text.free 0x08007c7c 0x10 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-malloc.o) + 0x08007c7c free + .text._free_r 0x08007c8c 0x88 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-nano-freer.o) + 0x08007c8c _free_r .text._malloc_r - 0x08007ca0 0xac /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-nano-mallocr.o) - 0x08007ca0 _malloc_r - .text._sbrk_r 0x08007d4c 0x20 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-sbrkr.o) - 0x08007d4c _sbrk_r - .text._sbrk 0x08007d6c 0x1c /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libnosys.a(sbrk.o) - 0x08007d6c _sbrk + 0x08007d14 0xac /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-nano-mallocr.o) + 0x08007d14 _malloc_r + .text._sbrk_r 0x08007dc0 0x20 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-sbrkr.o) + 0x08007dc0 _sbrk_r + .text._sbrk 0x08007de0 0x1c /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libnosys.a(sbrk.o) + 0x08007de0 _sbrk *(.init) *(.fini) *(.rodata*) .rodata.STORAGE_Inquirydata_FS - 0x08007d88 0x24 Src/usbd_descriptors.o - 0x08007d88 STORAGE_Inquirydata_FS - .rodata 0x08007dac 0x54 Src/usbd_descriptors.o + 0x08007dfc 0x24 Src/usbd_descriptors.o + 0x08007dfc STORAGE_Inquirydata_FS + .rodata 0x08007e20 0x54 Src/usbd_descriptors.o .rodata.MSC_Page00_Inquiry_Data - 0x08007e00 0x8 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o - 0x08007e00 MSC_Page00_Inquiry_Data + 0x08007e74 0x8 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o + 0x08007e74 MSC_Page00_Inquiry_Data .rodata.MSC_Mode_Sense6_data - 0x08007e08 0x8 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o - 0x08007e08 MSC_Mode_Sense6_data + 0x08007e7c 0x8 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o + 0x08007e7c MSC_Mode_Sense6_data .rodata.MSC_Mode_Sense10_data - 0x08007e10 0x8 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o - 0x08007e10 MSC_Mode_Sense10_data + 0x08007e84 0x8 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o + 0x08007e84 MSC_Mode_Sense10_data .rodata.APBAHBPrescTable - 0x08007e18 0x10 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - 0x08007e18 APBAHBPrescTable + 0x08007e8c 0x10 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x08007e8c APBAHBPrescTable .rodata.str1.1 - 0x08007e28 0x2 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-impure.o) + 0x08007e9c 0x2 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-impure.o) *(.eh_frame*) - 0x08007e2a __etext = . + 0x08007e9e __etext = . -.glue_7 0x08007e2c 0x0 +.glue_7 0x08007ea0 0x0 .glue_7 0x00000000 0x0 linker stubs -.glue_7t 0x08007e2c 0x0 +.glue_7t 0x08007ea0 0x0 .glue_7t 0x00000000 0x0 linker stubs -.vfp11_veneer 0x08007e2c 0x0 +.vfp11_veneer 0x08007ea0 0x0 .vfp11_veneer 0x00000000 0x0 linker stubs -.v4_bx 0x08007e2c 0x0 +.v4_bx 0x08007ea0 0x0 .v4_bx 0x00000000 0x0 linker stubs -.iplt 0x08007e2c 0x0 +.iplt 0x08007ea0 0x0 .iplt 0x00000000 0x0 Src/usbd_descriptors.o -.rel.dyn 0x08007e2c 0x0 +.rel.dyn 0x08007ea0 0x0 .rel.iplt 0x00000000 0x0 Src/usbd_descriptors.o -.data 0x20000000 0x144 load address 0x08007e2a +.data 0x20000000 0x144 load address 0x08007e9e 0x20000000 __data_start__ = . *(vtable) *(.data*) @@ -4056,103 +4062,106 @@ END GROUP 0x20000140 _impure_ptr 0x20000144 __data_end__ = . -.igot.plt 0x20000144 0x0 load address 0x08007f70 +.igot.plt 0x20000144 0x0 load address 0x08007fe4 .igot.plt 0x00000000 0x0 Src/usbd_descriptors.o -.bss 0x20000144 0xcb4 load address 0x08007f70 - 0x20000144 . = ALIGN (0x4) - 0x20000144 __bss_start__ = . +.bss 0x20000148 0xcc8 load address 0x08007fe8 + 0x20000148 . = ALIGN (0x4) + 0x20000148 __bss_start__ = . *(.bss*) .bss.UpstreamState - 0x20000144 0x1 Src/upstream_statemachine.o - 0x20000144 UpstreamState + 0x20000148 0x1 Src/upstream_statemachine.o + 0x20000148 UpstreamState .bss.ConfiguredDeviceClass - 0x20000145 0x1 Src/upstream_statemachine.o - 0x20000145 ConfiguredDeviceClass - *fill* 0x20000146 0x2 + 0x20000149 0x1 Src/upstream_statemachine.o + 0x20000149 ConfiguredDeviceClass + *fill* 0x2000014a 0x2 .bss.NextTxPacket - 0x20000148 0x4 Src/upstream_spi.o - 0x20000148 NextTxPacket + 0x2000014c 0x4 Src/upstream_spi.o + 0x2000014c NextTxPacket .bss.UpstreamInterfaceState - 0x2000014c 0x1 Src/upstream_spi.o - 0x2000014c UpstreamInterfaceState - *fill* 0x2000014d 0x3 + 0x20000150 0x1 Src/upstream_spi.o + 0x20000150 UpstreamInterfaceState + *fill* 0x20000151 0x3 .bss.PendingFreePacketCallback - 0x20000150 0x4 Src/upstream_spi.o - 0x20000150 PendingFreePacketCallback - .bss.ReceivePacketCallback 0x20000154 0x4 Src/upstream_spi.o - 0x20000154 ReceivePacketCallback + 0x20000154 PendingFreePacketCallback + .bss.ReceivePacketCallback + 0x20000158 0x4 Src/upstream_spi.o + 0x20000158 ReceivePacketCallback .bss.TxOkInterruptReceived - 0x20000158 0x1 Src/upstream_spi.o - 0x20000158 TxOkInterruptReceived + 0x2000015c 0x1 Src/upstream_spi.o + 0x2000015c TxOkInterruptReceived .bss.SpiInterruptCompleted - 0x20000159 0x1 Src/upstream_spi.o - 0x20000159 SpiInterruptCompleted + 0x2000015d 0x1 Src/upstream_spi.o + 0x2000015d SpiInterruptCompleted .bss.FaultLedBlinkRate - 0x2000015a 0x2 Src/led.o - 0x2000015a FaultLedBlinkRate + 0x2000015e 0x2 Src/led.o + 0x2000015e FaultLedBlinkRate .bss.FaultLedBlinkCounter - 0x2000015c 0x2 Src/led.o - 0x2000015c FaultLedBlinkCounter + 0x20000160 0x2 Src/led.o + 0x20000160 FaultLedBlinkCounter .bss.FaultLedState - 0x2000015e 0x1 Src/led.o - 0x2000015e FaultLedState + 0x20000162 0x1 Src/led.o + 0x20000162 FaultLedState .bss.cfgidx.8046 - 0x2000015f 0x1 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o - .bss.uwTick 0x20000160 0x4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x20000163 0x1 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + .bss.uwTick 0x20000164 0x4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o .bss.__malloc_sbrk_start - 0x20000164 0x4 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-nano-mallocr.o) - 0x20000164 __malloc_sbrk_start - .bss.__malloc_free_list 0x20000168 0x4 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-nano-mallocr.o) - 0x20000168 __malloc_free_list + 0x20000168 __malloc_sbrk_start + .bss.__malloc_free_list + 0x2000016c 0x4 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-nano-mallocr.o) + 0x2000016c __malloc_free_list .bss.heap_end.4079 - 0x2000016c 0x4 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libnosys.a(sbrk.o) + 0x20000170 0x4 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libnosys.a(sbrk.o) *(COMMON) - COMMON 0x20000170 0x200 Src/usbd_descriptors.o - 0x20000170 USBD_StrDesc - COMMON 0x20000370 0x3b4 Src/usbd_config.o - 0x20000370 hpcd_USB_OTG_FS - COMMON 0x20000724 0x224 Src/usb_device.o - 0x20000724 hUsbDeviceFS - COMMON 0x20000948 0x478 Src/upstream_spi.o - 0x20000948 TemporaryIncomingPacketLength - 0x2000094c SentCommand - 0x20000950 UpstreamPacket1 - 0x20000b58 CurrentWorkingPacket - 0x20000b5c UpstreamPacket0 - 0x20000d64 SentCommandClass - 0x20000d68 Hspi1 - COMMON 0x20000dc0 0x18 Src/upstream_msc.o - 0x20000dc0 ReadStreamPacket - 0x20000dc4 ReadStreamBusy - 0x20000dc8 GetCapacityCallback - 0x20000dcc TestReadyCallback - 0x20000dd0 GetStreamDataCallback - 0x20000dd4 ByteCount - COMMON 0x20000dd8 0x14 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - 0x20000dd8 SCSI_ProcessCmd_hmsc - 0x20000ddc SCSI_ProcessCmd_params - 0x20000de0 SCSI_ProcessCmd_lun - 0x20000de4 SCSI_ProcessCmd_callback - 0x20000de8 SCSI_ProcessCmd_pdev - COMMON 0x20000dec 0x8 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - 0x20000dec MSC_BOT_pdev - 0x20000df0 MSC_BOT_hmsc - COMMON 0x20000df4 0x4 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-reent.o) - 0x20000df4 errno - 0x20000df8 . = ALIGN (0x4) - 0x20000df8 __bss_end__ = . + COMMON 0x20000174 0x200 Src/usbd_descriptors.o + 0x20000174 USBD_StrDesc + COMMON 0x20000374 0x3b4 Src/usbd_config.o + 0x20000374 hpcd_USB_OTG_FS + COMMON 0x20000728 0x224 Src/usb_device.o + 0x20000728 hUsbDeviceFS + COMMON 0x2000094c 0x478 Src/upstream_spi.o + 0x2000094c TemporaryIncomingPacketLength + 0x20000950 SentCommand + 0x20000954 UpstreamPacket1 + 0x20000b5c CurrentWorkingPacket + 0x20000b60 UpstreamPacket0 + 0x20000d68 SentCommandClass + 0x20000d6c Hspi1 + *fill* 0x20000dc4 0x4 + COMMON 0x20000dc8 0x28 Src/upstream_msc.o + 0x20000dc8 ReadStreamPacket + 0x20000dd0 BlockStart + 0x20000dd8 ReadStreamBusy + 0x20000ddc GetCapacityCallback + 0x20000de0 BlockCount + 0x20000de4 TestReadyCallback + 0x20000de8 GetStreamDataCallback + 0x20000dec ByteCount + COMMON 0x20000df0 0x14 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x20000df0 SCSI_ProcessCmd_hmsc + 0x20000df4 SCSI_ProcessCmd_params + 0x20000df8 SCSI_ProcessCmd_lun + 0x20000dfc SCSI_ProcessCmd_callback + 0x20000e00 SCSI_ProcessCmd_pdev + COMMON 0x20000e04 0x8 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x20000e04 MSC_BOT_pdev + 0x20000e08 MSC_BOT_hmsc + COMMON 0x20000e0c 0x4 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-reent.o) + 0x20000e0c errno + 0x20000e10 . = ALIGN (0x4) + 0x20000e10 __bss_end__ = . -.heap 0x20000df8 0x0 - 0x20000df8 __HeapBase = . - 0x20000df8 __end__ = . - 0x20000df8 end = __end__ +.heap 0x20000e10 0x0 + 0x20000e10 __HeapBase = . + 0x20000e10 __end__ = . + 0x20000e10 end = __end__ *(.heap*) - 0x20000df8 __HeapLimit = . + 0x20000e10 __HeapLimit = . -.stack_dummy 0x20000df8 0x0 +.stack_dummy 0x20000e10 0x0 *(.stack*) 0x2001c000 __StackTop = (ORIGIN (SRAM1) + 0x1c000) 0x2001c000 __StackLimit = (__StackTop - SIZEOF (.stack_dummy)) @@ -4175,65 +4184,65 @@ END GROUP 0x10000000 _eccmram = . OUTPUT(Upstream.elf elf32-littlearm) -.debug_info 0x00000000 0xeb5e +.debug_info 0x00000000 0xebad .debug_info 0x00000000 0x3bd Src/usbd_descriptors.o .debug_info 0x000003bd 0x12ff Src/usbd_config.o .debug_info 0x000016bc 0x4de Src/usb_device.o .debug_info 0x00001b9a 0x71b Src/upstream_statemachine.o - .debug_info 0x000022b5 0xad4 Src/upstream_spi.o - .debug_info 0x00002d89 0x507 Src/upstream_msc.o - .debug_info 0x00003290 0x54e Src/main.o - .debug_info 0x000037de 0x1fe Src/led.o - .debug_info 0x000039dc 0xa43 Src/interrupts.o - .debug_info 0x0000441f 0xa85 Src/hal_msp.o - .debug_info 0x00004ea4 0x673 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o - .debug_info 0x00005517 0x873 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o - .debug_info 0x00005d8a 0x93c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - .debug_info 0x000066c6 0xc44 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - .debug_info 0x0000730a 0x11c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o - .debug_info 0x00007426 0xa8b Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - .debug_info 0x00007eb1 0xa41 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - .debug_info 0x000088f2 0x13d5 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - .debug_info 0x00009cc7 0xf65 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_info 0x0000ac2c 0xd54 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_info 0x0000b980 0x54b Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o - .debug_info 0x0000becb 0xe89 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - .debug_info 0x0000cd54 0x6c6 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_info 0x0000d41a 0xb57 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_info 0x0000df71 0x6ae Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_info 0x0000e61f 0x4a2 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o - .debug_info 0x0000eac1 0x9d Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o + .debug_info 0x000022b5 0xacf Src/upstream_spi.o + .debug_info 0x00002d84 0x55b Src/upstream_msc.o + .debug_info 0x000032df 0x54e Src/main.o + .debug_info 0x0000382d 0x1fe Src/led.o + .debug_info 0x00003a2b 0xa43 Src/interrupts.o + .debug_info 0x0000446e 0xa85 Src/hal_msp.o + .debug_info 0x00004ef3 0x673 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o + .debug_info 0x00005566 0x873 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + .debug_info 0x00005dd9 0x93c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + .debug_info 0x00006715 0xc44 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + .debug_info 0x00007359 0x11c Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o + .debug_info 0x00007475 0xa8b Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + .debug_info 0x00007f00 0xa41 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + .debug_info 0x00008941 0x13d5 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + .debug_info 0x00009d16 0xf65 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_info 0x0000ac7b 0xd54 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_info 0x0000b9cf 0x54b Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o + .debug_info 0x0000bf1a 0xe89 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + .debug_info 0x0000cda3 0x6c6 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_info 0x0000d469 0xb57 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_info 0x0000dfc0 0x6ae Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_info 0x0000e66e 0x4a2 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o + .debug_info 0x0000eb10 0x9d Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o -.debug_abbrev 0x00000000 0x2c02 +.debug_abbrev 0x00000000 0x2c0d .debug_abbrev 0x00000000 0x144 Src/usbd_descriptors.o .debug_abbrev 0x00000144 0x20e Src/usbd_config.o .debug_abbrev 0x00000352 0x12e Src/usb_device.o .debug_abbrev 0x00000480 0x1a5 Src/upstream_statemachine.o - .debug_abbrev 0x00000625 0x291 Src/upstream_spi.o - .debug_abbrev 0x000008b6 0x164 Src/upstream_msc.o - .debug_abbrev 0x00000a1a 0x138 Src/main.o - .debug_abbrev 0x00000b52 0x106 Src/led.o - .debug_abbrev 0x00000c58 0x16d Src/interrupts.o - .debug_abbrev 0x00000dc5 0x15c Src/hal_msp.o - .debug_abbrev 0x00000f21 0x12e Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o - .debug_abbrev 0x0000104f 0x1ee Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o - .debug_abbrev 0x0000123d 0x1be Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - .debug_abbrev 0x000013fb 0x26e Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - .debug_abbrev 0x00001669 0x78 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o - .debug_abbrev 0x000016e1 0x20b Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - .debug_abbrev 0x000018ec 0x1c7 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - .debug_abbrev 0x00001ab3 0x216 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - .debug_abbrev 0x00001cc9 0x20d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_abbrev 0x00001ed6 0x252 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_abbrev 0x00002128 0x161 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o - .debug_abbrev 0x00002289 0x23b Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - .debug_abbrev 0x000024c4 0x1a4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_abbrev 0x00002668 0x282 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_abbrev 0x000028ea 0x202 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_abbrev 0x00002aec 0x104 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o - .debug_abbrev 0x00002bf0 0x12 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o + .debug_abbrev 0x00000625 0x29c Src/upstream_spi.o + .debug_abbrev 0x000008c1 0x164 Src/upstream_msc.o + .debug_abbrev 0x00000a25 0x138 Src/main.o + .debug_abbrev 0x00000b5d 0x106 Src/led.o + .debug_abbrev 0x00000c63 0x16d Src/interrupts.o + .debug_abbrev 0x00000dd0 0x15c Src/hal_msp.o + .debug_abbrev 0x00000f2c 0x12e Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o + .debug_abbrev 0x0000105a 0x1ee Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + .debug_abbrev 0x00001248 0x1be Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + .debug_abbrev 0x00001406 0x26e Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + .debug_abbrev 0x00001674 0x78 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o + .debug_abbrev 0x000016ec 0x20b Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + .debug_abbrev 0x000018f7 0x1c7 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + .debug_abbrev 0x00001abe 0x216 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + .debug_abbrev 0x00001cd4 0x20d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_abbrev 0x00001ee1 0x252 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_abbrev 0x00002133 0x161 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o + .debug_abbrev 0x00002294 0x23b Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + .debug_abbrev 0x000024cf 0x1a4 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_abbrev 0x00002673 0x282 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_abbrev 0x000028f5 0x202 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_abbrev 0x00002af7 0x104 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o + .debug_abbrev 0x00002bfb 0x12 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o -.debug_aranges 0x00000000 0xdf8 +.debug_aranges 0x00000000 0xe08 .debug_aranges 0x00000000 0x50 Src/usbd_descriptors.o .debug_aranges @@ -4245,77 +4254,77 @@ OUTPUT(Upstream.elf elf32-littlearm) .debug_aranges 0x000001c0 0xa0 Src/upstream_spi.o .debug_aranges - 0x00000260 0x68 Src/upstream_msc.o + 0x00000260 0x78 Src/upstream_msc.o .debug_aranges - 0x000002c8 0x30 Src/main.o + 0x000002d8 0x30 Src/main.o .debug_aranges - 0x000002f8 0x30 Src/led.o + 0x00000308 0x30 Src/led.o .debug_aranges - 0x00000328 0x38 Src/interrupts.o + 0x00000338 0x38 Src/interrupts.o .debug_aranges - 0x00000360 0x30 Src/hal_msp.o + 0x00000370 0x30 Src/hal_msp.o .debug_aranges - 0x00000390 0x50 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o + 0x000003a0 0x50 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o .debug_aranges - 0x000003e0 0x88 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + 0x000003f0 0x88 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o .debug_aranges - 0x00000468 0xc0 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + 0x00000478 0xc0 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o .debug_aranges - 0x00000528 0xc0 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + 0x00000538 0xc0 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o .debug_aranges - 0x000005e8 0x18 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o + 0x000005f8 0x18 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o .debug_aranges - 0x00000600 0x80 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + 0x00000610 0x80 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o .debug_aranges - 0x00000680 0x68 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + 0x00000690 0x68 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o .debug_aranges - 0x000006e8 0x180 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + 0x000006f8 0x180 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o .debug_aranges - 0x00000868 0x158 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + 0x00000878 0x158 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o .debug_aranges - 0x000009c0 0x88 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + 0x000009d0 0x88 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o .debug_aranges - 0x00000a48 0x28 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o + 0x00000a58 0x28 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o .debug_aranges - 0x00000a70 0x120 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + 0x00000a80 0x120 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o .debug_aranges - 0x00000b90 0x58 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + 0x00000ba0 0x58 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o .debug_aranges - 0x00000be8 0x100 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + 0x00000bf8 0x100 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o .debug_aranges - 0x00000ce8 0xc0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + 0x00000cf8 0xc0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o .debug_aranges - 0x00000da8 0x28 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o + 0x00000db8 0x28 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o .debug_aranges - 0x00000dd0 0x28 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o + 0x00000de0 0x28 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o -.debug_ranges 0x00000000 0xc48 +.debug_ranges 0x00000000 0xc58 .debug_ranges 0x00000000 0x40 Src/usbd_descriptors.o .debug_ranges 0x00000040 0xf0 Src/usbd_config.o .debug_ranges 0x00000130 0x10 Src/usb_device.o .debug_ranges 0x00000140 0x40 Src/upstream_statemachine.o .debug_ranges 0x00000180 0x90 Src/upstream_spi.o - .debug_ranges 0x00000210 0x58 Src/upstream_msc.o - .debug_ranges 0x00000268 0x20 Src/main.o - .debug_ranges 0x00000288 0x20 Src/led.o - .debug_ranges 0x000002a8 0x28 Src/interrupts.o - .debug_ranges 0x000002d0 0x20 Src/hal_msp.o - .debug_ranges 0x000002f0 0x40 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o - .debug_ranges 0x00000330 0x78 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o - .debug_ranges 0x000003a8 0xb0 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - .debug_ranges 0x00000458 0xb0 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - .debug_ranges 0x00000508 0x70 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - .debug_ranges 0x00000578 0x58 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - .debug_ranges 0x000005d0 0x170 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - .debug_ranges 0x00000740 0x148 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_ranges 0x00000888 0x78 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_ranges 0x00000900 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o - .debug_ranges 0x00000918 0x110 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - .debug_ranges 0x00000a28 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_ranges 0x00000a70 0xf0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_ranges 0x00000b60 0xb0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_ranges 0x00000c10 0x18 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o - .debug_ranges 0x00000c28 0x20 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o + .debug_ranges 0x00000210 0x68 Src/upstream_msc.o + .debug_ranges 0x00000278 0x20 Src/main.o + .debug_ranges 0x00000298 0x20 Src/led.o + .debug_ranges 0x000002b8 0x28 Src/interrupts.o + .debug_ranges 0x000002e0 0x20 Src/hal_msp.o + .debug_ranges 0x00000300 0x40 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o + .debug_ranges 0x00000340 0x78 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + .debug_ranges 0x000003b8 0xb0 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + .debug_ranges 0x00000468 0xb0 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + .debug_ranges 0x00000518 0x70 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + .debug_ranges 0x00000588 0x58 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + .debug_ranges 0x000005e0 0x170 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + .debug_ranges 0x00000750 0x148 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_ranges 0x00000898 0x78 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_ranges 0x00000910 0x18 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o + .debug_ranges 0x00000928 0x110 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + .debug_ranges 0x00000a38 0x48 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_ranges 0x00000a80 0xf0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_ranges 0x00000b70 0xb0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_ranges 0x00000c20 0x18 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o + .debug_ranges 0x00000c38 0x20 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o .debug_macro 0x00000000 0x13de4 .debug_macro 0x00000000 0x379 Src/usbd_descriptors.o @@ -4418,36 +4427,36 @@ OUTPUT(Upstream.elf elf32-littlearm) .debug_macro 0x00013b43 0x1ed Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o .debug_macro 0x00013d30 0xb4 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o -.debug_line 0x00000000 0xd494 +.debug_line 0x00000000 0xd4a9 .debug_line 0x00000000 0x7ee Src/usbd_descriptors.o .debug_line 0x000007ee 0x904 Src/usbd_config.o .debug_line 0x000010f2 0x784 Src/usb_device.o .debug_line 0x00001876 0x8f0 Src/upstream_statemachine.o - .debug_line 0x00002166 0x9f0 Src/upstream_spi.o - .debug_line 0x00002b56 0x832 Src/upstream_msc.o - .debug_line 0x00003388 0x74c Src/main.o - .debug_line 0x00003ad4 0x579 Src/led.o - .debug_line 0x0000404d 0x707 Src/interrupts.o - .debug_line 0x00004754 0x594 Src/hal_msp.o - .debug_line 0x00004ce8 0x768 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o - .debug_line 0x00005450 0x919 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o - .debug_line 0x00005d69 0x8e0 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - .debug_line 0x00006649 0xa8f Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - .debug_line 0x000070d8 0x720 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o - .debug_line 0x000077f8 0x8e7 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - .debug_line 0x000080df 0x8b7 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - .debug_line 0x00008996 0xb86 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - .debug_line 0x0000951c 0xd52 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_line 0x0000a26e 0x855 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_line 0x0000aac3 0x58c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o - .debug_line 0x0000b04f 0xa4f Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - .debug_line 0x0000ba9e 0x742 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_line 0x0000c1e0 0x80f Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_line 0x0000c9ef 0x6fa Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_line 0x0000d0e9 0x2fe Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o - .debug_line 0x0000d3e7 0xad Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o + .debug_line 0x00002166 0x9dc Src/upstream_spi.o + .debug_line 0x00002b42 0x85a Src/upstream_msc.o + .debug_line 0x0000339c 0x74c Src/main.o + .debug_line 0x00003ae8 0x579 Src/led.o + .debug_line 0x00004061 0x707 Src/interrupts.o + .debug_line 0x00004768 0x594 Src/hal_msp.o + .debug_line 0x00004cfc 0x768 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o + .debug_line 0x00005464 0x919 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + .debug_line 0x00005d7d 0x8e0 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + .debug_line 0x0000665d 0xa8f Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + .debug_line 0x000070ec 0x720 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o + .debug_line 0x0000780c 0x8e8 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + .debug_line 0x000080f4 0x8b7 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + .debug_line 0x000089ab 0xb86 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + .debug_line 0x00009531 0xd52 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_line 0x0000a283 0x855 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_line 0x0000aad8 0x58c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o + .debug_line 0x0000b064 0xa4f Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + .debug_line 0x0000bab3 0x742 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_line 0x0000c1f5 0x80f Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_line 0x0000ca04 0x6fa Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_line 0x0000d0fe 0x2fe Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o + .debug_line 0x0000d3fc 0xad Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f405xx.o -.debug_str 0x00000000 0x68d15 +.debug_str 0x00000000 0x68d99 .debug_str 0x00000000 0x6425d Src/usbd_descriptors.o 0x64575 (size before relaxing) .debug_str 0x0006425d 0xe4b Src/usbd_config.o @@ -4456,49 +4465,49 @@ OUTPUT(Upstream.elf elf32-littlearm) 0x645f6 (size before relaxing) .debug_str 0x000650e9 0x485 Src/upstream_statemachine.o 0x64a7d (size before relaxing) - .debug_str 0x0006556e 0xc7b Src/upstream_spi.o - 0x64aa0 (size before relaxing) - .debug_str 0x000661e9 0x2e0 Src/upstream_msc.o - 0x63fee (size before relaxing) - .debug_str 0x000664c9 0x140 Src/main.o + .debug_str 0x0006556e 0xc87 Src/upstream_spi.o + 0x64aac (size before relaxing) + .debug_str 0x000661f5 0x353 Src/upstream_msc.o + 0x64077 (size before relaxing) + .debug_str 0x00066548 0x140 Src/main.o 0x64236 (size before relaxing) - .debug_str 0x00066609 0x7c Src/led.o + .debug_str 0x00066688 0x7c Src/led.o 0x604e3 (size before relaxing) - .debug_str 0x00066685 0x74 Src/interrupts.o + .debug_str 0x00066704 0x74 Src/interrupts.o 0x646d2 (size before relaxing) - .debug_str 0x000666f9 0x3f Src/hal_msp.o + .debug_str 0x00066778 0x3f Src/hal_msp.o 0x60f2c (size before relaxing) - .debug_str 0x00066738 0xc9 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o + .debug_str 0x000667b7 0xc9 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o 0x63d52 (size before relaxing) - .debug_str 0x00066801 0x133 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + .debug_str 0x00066880 0x133 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o 0x63dca (size before relaxing) - .debug_str 0x00066934 0x19c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + .debug_str 0x000669b3 0x19c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o 0x63e31 (size before relaxing) - .debug_str 0x00066ad0 0x50a Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + .debug_str 0x00066b4f 0x50a Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o 0x64c3e (size before relaxing) - .debug_str 0x00066fda 0x49 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o + .debug_str 0x00067059 0x49 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.o 0x6395b (size before relaxing) - .debug_str 0x00067023 0x15b Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + .debug_str 0x000670a2 0x15b Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o 0x648fe (size before relaxing) - .debug_str 0x0006717e 0x17f Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + .debug_str 0x000671fd 0x17f Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o 0x649ce (size before relaxing) - .debug_str 0x000672fd 0x73e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + .debug_str 0x0006737c 0x73e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o 0x609c1 (size before relaxing) - .debug_str 0x00067a3b 0x363 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_str 0x00067aba 0x363 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o 0x6088b (size before relaxing) - .debug_str 0x00067d9e 0x343 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_str 0x00067e1d 0x343 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o 0x60651 (size before relaxing) - .debug_str 0x000680e1 0x4a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o + .debug_str 0x00068160 0x4a Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o 0x603a7 (size before relaxing) - .debug_str 0x0006812b 0x1f0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + .debug_str 0x000681aa 0x1f5 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o 0x60857 (size before relaxing) - .debug_str 0x0006831b 0x25e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_str 0x0006839f 0x25e Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o 0x6042f (size before relaxing) - .debug_str 0x00068579 0x306 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_str 0x000685fd 0x306 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o 0x60902 (size before relaxing) - .debug_str 0x0006887f 0x40d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_str 0x00068903 0x40d Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o 0x6067f (size before relaxing) - .debug_str 0x00068c8c 0x89 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o + .debug_str 0x00068d10 0x89 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o 0x39fc2 (size before relaxing) .comment 0x00000000 0x70 @@ -4601,35 +4610,35 @@ OUTPUT(Upstream.elf elf32-littlearm) .ARM.attributes 0x0000065d 0x2d /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libnosys.a(sbrk.o) -.debug_frame 0x00000000 0x36d8 +.debug_frame 0x00000000 0x3718 .debug_frame 0x00000000 0x114 Src/usbd_descriptors.o .debug_frame 0x00000114 0x428 Src/usbd_config.o .debug_frame 0x0000053c 0x2c Src/usb_device.o .debug_frame 0x00000568 0xf4 Src/upstream_statemachine.o - .debug_frame 0x0000065c 0x248 Src/upstream_spi.o - .debug_frame 0x000008a4 0x178 Src/upstream_msc.o - .debug_frame 0x00000a1c 0x74 Src/main.o - .debug_frame 0x00000a90 0x74 Src/led.o - .debug_frame 0x00000b04 0x80 Src/interrupts.o - .debug_frame 0x00000b84 0x74 Src/hal_msp.o - .debug_frame 0x00000bf8 0x10c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o - .debug_frame 0x00000d04 0x210 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o - .debug_frame 0x00000f14 0x324 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o - .debug_frame 0x00001238 0x2e8 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o - .debug_frame 0x00001520 0x1e8 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o - .debug_frame 0x00001708 0x188 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o - .debug_frame 0x00001890 0x718 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o - .debug_frame 0x00001fa8 0x604 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o - .debug_frame 0x000025ac 0x204 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o - .debug_frame 0x000027b0 0x60 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o - .debug_frame 0x00002810 0x508 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o - .debug_frame 0x00002d18 0x14c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o - .debug_frame 0x00002e64 0x42c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o - .debug_frame 0x00003290 0x2c0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o - .debug_frame 0x00003550 0x58 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o - .debug_frame 0x000035a8 0x30 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-malloc.o) - .debug_frame 0x000035d8 0x2c /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-nano-freer.o) - .debug_frame 0x00003604 0x2c /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-nano-mallocr.o) - .debug_frame 0x00003630 0x2c /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-sbrkr.o) - .debug_frame 0x0000365c 0x5c /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-reent.o) - .debug_frame 0x000036b8 0x20 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libnosys.a(sbrk.o) + .debug_frame 0x0000065c 0x240 Src/upstream_spi.o + .debug_frame 0x0000089c 0x1c0 Src/upstream_msc.o + .debug_frame 0x00000a5c 0x74 Src/main.o + .debug_frame 0x00000ad0 0x74 Src/led.o + .debug_frame 0x00000b44 0x80 Src/interrupts.o + .debug_frame 0x00000bc4 0x74 Src/hal_msp.o + .debug_frame 0x00000c38 0x10c Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o + .debug_frame 0x00000d44 0x210 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o + .debug_frame 0x00000f54 0x324 Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o + .debug_frame 0x00001278 0x2e8 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.o + .debug_frame 0x00001560 0x1e8 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.o + .debug_frame 0x00001748 0x188 Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.o + .debug_frame 0x000018d0 0x718 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o + .debug_frame 0x00001fe8 0x604 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o + .debug_frame 0x000025ec 0x204 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o + .debug_frame 0x000027f0 0x60 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o + .debug_frame 0x00002850 0x508 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o + .debug_frame 0x00002d58 0x14c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o + .debug_frame 0x00002ea4 0x42c Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o + .debug_frame 0x000032d0 0x2c0 Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o + .debug_frame 0x00003590 0x58 Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.o + .debug_frame 0x000035e8 0x30 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-malloc.o) + .debug_frame 0x00003618 0x2c /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-nano-freer.o) + .debug_frame 0x00003644 0x2c /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-nano-mallocr.o) + .debug_frame 0x00003670 0x2c /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-sbrkr.o) + .debug_frame 0x0000369c 0x5c /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libg_nano.a(lib_a-reent.o) + .debug_frame 0x000036f8 0x20 /usr/local/gcc-arm-none-eabi-4_9-2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/armv7-m/libnosys.a(sbrk.o) diff --git a/Upstream/Inc/upstream_msc.h b/Upstream/Inc/upstream_msc.h index 3ebaa76..b21a1df 100644 --- a/Upstream/Inc/upstream_msc.h +++ b/Upstream/Inc/upstream_msc.h @@ -28,8 +28,8 @@ HAL_StatusTypeDef Upstream_MSC_BeginRead(UpstreamMSCCallbackTypeDef callback, uint32_t readByteCount); HAL_StatusTypeDef Upstream_MSC_GetStreamDataPacket(UpstreamMSCCallbackPacketTypeDef callback); HAL_StatusTypeDef Upstream_MSC_BeginWrite(UpstreamMSCCallbackTypeDef callback, - uint64_t readBlockStart, - uint32_t readBlockCount); + uint64_t writeBlockStart, + uint32_t writeBlockCount); HAL_StatusTypeDef Upstream_MSC_PutStreamDataPacket(UpstreamPacketTypeDef* packetToSend, uint32_t dataLength8); diff --git a/Upstream/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.c b/Upstream/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.c index f444170..959eb8f 100755 --- a/Upstream/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.c +++ b/Upstream/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.c @@ -353,6 +353,10 @@ void MSC_BOT_SendCSW (USBD_HandleTypeDef *pdev, hmsc->csw.bStatus = CSW_Status; hmsc->bot_state = USBD_BOT_IDLE; + //De-register UpstreamPacket* from USB interface, + //so we don't unintentionally free it on USB transaction completion. + hmsc->bot_packet = NULL; + USBD_LL_Transmit (pdev, MSC_EPIN_ADDR, (uint8_t *)&hmsc->csw, diff --git a/Upstream/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.c b/Upstream/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.c index d89b628..ace3f16 100755 --- a/Upstream/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.c +++ b/Upstream/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.c @@ -668,7 +668,6 @@ void SCSI_Read10ReplyCallback(UpstreamPacketTypeDef* upstreamPacket, * @param params: Command parameters * @retval status */ - static void SCSI_Write10(void) { uint32_t dataLength; @@ -716,8 +715,8 @@ static void SCSI_Write10(void) } if (Upstream_MSC_BeginWrite(SCSI_Write10BeginCallback, - SCSI_ProcessCmd_hmsc->scsi_blk_addr, - SCSI_ProcessCmd_hmsc->scsi_blk_len) != HAL_OK) + SCSI_ProcessCmd_hmsc->scsi_blk_addr, + SCSI_ProcessCmd_hmsc->scsi_blk_len) != HAL_OK) { SCSI_Write10BeginCallback(HAL_ERROR); } diff --git a/Upstream/Src/upstream_msc.c b/Upstream/Src/upstream_msc.c index 1c7d414..6df23d4 100644 --- a/Upstream/Src/upstream_msc.c +++ b/Upstream/Src/upstream_msc.c @@ -17,46 +17,59 @@ UpstreamMSCCallbackTypeDef TestReadyCallback; UpstreamMSCCallbackUintPacketTypeDef GetCapacityCallback; UpstreamMSCCallbackPacketTypeDef GetStreamDataCallback; +uint64_t BlockStart; +uint32_t BlockCount; uint32_t ByteCount; + UpstreamPacketTypeDef* ReadStreamPacket; uint8_t ReadStreamBusy; +static void Upstream_MSC_TestReadyFreePacketCallback(UpstreamPacketTypeDef* freePacket); static void Upstream_MSC_TestReadyReplyCallback(UpstreamPacketTypeDef* replyPacket); static void Upstream_MSC_GetCapacityReplyCallback(UpstreamPacketTypeDef* replyPacket); static void Upstream_MSC_GetStreamDataPacketCallback(UpstreamPacketTypeDef* replyPacket); +static void Upstream_MSC_BeginWriteFreePacketCallback(UpstreamPacketTypeDef* freePacket); static void Upstream_MSC_BeginWriteReplyCallback(UpstreamPacketTypeDef* replyPacket); HAL_StatusTypeDef Upstream_MSC_TestReady(UpstreamMSCCallbackTypeDef callback) { - UpstreamPacketTypeDef* freePacket; - if (Upstream_StateMachine_CheckClassOperationOk() != HAL_OK) { return HAL_ERROR; } TestReadyCallback = callback; - freePacket = Upstream_GetFreePacketImmediately(); - if (freePacket == NULL) - { - return HAL_ERROR; - } + return Upstream_GetFreePacket(Upstream_MSC_TestReadyFreePacketCallback); +} + + +void Upstream_MSC_TestReadyFreePacketCallback(UpstreamPacketTypeDef* freePacket) +{ freePacket->Length16 = UPSTREAM_PACKET_HEADER_LEN_16; freePacket->CommandClass = COMMAND_CLASS_MASS_STORAGE; freePacket->Command = COMMAND_MSC_TEST_UNIT_READY; + if (Upstream_TransmitPacket(freePacket) == HAL_OK) { - return Upstream_ReceivePacket(Upstream_MSC_TestReadyReplyCallback); + Upstream_ReleasePacket(freePacket); + if (Upstream_ReceivePacket(Upstream_MSC_TestReadyReplyCallback) != HAL_OK) + { + TestReadyCallback(HAL_ERROR); + } + return; } + //else: - return HAL_ERROR; + Upstream_ReleasePacket(freePacket); + TestReadyCallback(HAL_ERROR); } + void Upstream_MSC_TestReadyReplyCallback(UpstreamPacketTypeDef* replyPacket) { if (Upstream_StateMachine_CheckClassOperationOk() != HAL_OK) @@ -248,38 +261,47 @@ void Upstream_MSC_GetStreamDataPacketCallback(UpstreamPacketTypeDef* replyPacket HAL_StatusTypeDef Upstream_MSC_BeginWrite(UpstreamMSCCallbackTypeDef callback, - uint64_t readBlockStart, - uint32_t readBlockCount) + uint64_t writeBlockStart, + uint32_t writeBlockCount) { - UpstreamPacketTypeDef* freePacket; - if (Upstream_StateMachine_CheckClassOperationOk() != HAL_OK) { return HAL_ERROR; } + BlockStart = writeBlockStart; + BlockCount = writeBlockCount; TestReadyCallback = callback; - freePacket = Upstream_GetFreePacketImmediately(); - if (freePacket == NULL) - { - return HAL_ERROR; - } + return Upstream_GetFreePacket(Upstream_MSC_BeginWriteFreePacketCallback); +} + + +void Upstream_MSC_BeginWriteFreePacketCallback(UpstreamPacketTypeDef* freePacket) +{ freePacket->Length16 = UPSTREAM_PACKET_HEADER_LEN_16 + ((4 * 3) / 2); freePacket->CommandClass = COMMAND_CLASS_MASS_STORAGE; freePacket->Command = COMMAND_MSC_BEGIN_WRITE; - *(uint64_t*)&(freePacket->Data[0]) = readBlockStart; - *(uint32_t*)&(freePacket->Data[8]) = readBlockCount; + *(uint64_t*)&(freePacket->Data[0]) = BlockStart; + *(uint32_t*)&(freePacket->Data[8]) = BlockCount; if (Upstream_TransmitPacket(freePacket) == HAL_OK) { - return Upstream_ReceivePacket(Upstream_MSC_BeginWriteReplyCallback); + Upstream_ReleasePacket(freePacket); + if (Upstream_ReceivePacket(Upstream_MSC_BeginWriteReplyCallback) != HAL_OK) + { + TestReadyCallback(HAL_ERROR); + } + return; } + //else: - return HAL_ERROR; + Upstream_ReleasePacket(freePacket); + TestReadyCallback(HAL_ERROR); } + void Upstream_MSC_BeginWriteReplyCallback(UpstreamPacketTypeDef* replyPacket) { uint8_t tempResult; diff --git a/Upstream/Src/upstream_spi.c b/Upstream/Src/upstream_spi.c index 30c4c36..39d1bd0 100644 --- a/Upstream/Src/upstream_spi.c +++ b/Upstream/Src/upstream_spi.c @@ -106,18 +106,11 @@ HAL_StatusTypeDef Upstream_GetFreePacket(FreePacketCallbackTypeDef callback) UpstreamPacketTypeDef* Upstream_GetFreePacketImmediately(void) { -uint8_t temp; - if (UpstreamInterfaceState >= UPSTREAM_INTERFACE_ERROR) { return NULL; } - if (NextTxPacket != NULL) - { - temp = 0; - } - //We are expecting a free buffer now if (UpstreamPacket0.Busy == NOT_BUSY) { @@ -260,11 +253,13 @@ void Upstream_SPIProcess_InterruptSafe(void) } + //Called from main(). //Must be protected against preemption by USB and EXT3 interrupts at priority 10! void Upstream_SPIProcess(void) { SpiPacketReceivedCallbackTypeDef tempPacketCallback; + UpstreamPacketTypeDef* tempPacketToFree; SPI1_NSS_DEASSERT; @@ -294,11 +289,8 @@ void Upstream_SPIProcess(void) return; } - Upstream_ReleasePacket(CurrentWorkingPacket); - if (UpstreamInterfaceState == UPSTREAM_INTERFACE_ERROR) - { - return; //Really shouldn't happen, but we are being paranoid... - } + tempPacketToFree = CurrentWorkingPacket; + if (NextTxPacket != NULL) { //NextTxPacket has already passed the checks in Upstream_TransmitPacket. @@ -306,19 +298,26 @@ void Upstream_SPIProcess(void) UpstreamInterfaceState = UPSTREAM_INTERFACE_TX_SIZE_WAIT; CurrentWorkingPacket = NextTxPacket; NextTxPacket = NULL; + SentCommandClass = CurrentWorkingPacket->CommandClass; + SentCommand = CurrentWorkingPacket->Command; if (TxOkInterruptReceived) { TxOkInterruptReceived = 0; Upstream_BeginTransmitPacketSize(); } - return; } - - UpstreamInterfaceState = UPSTREAM_INTERFACE_IDLE; - if (ReceivePacketCallback != NULL) + else { - Upstream_CheckBeginPacketReception(); + //No packet queued for transmission: + UpstreamInterfaceState = UPSTREAM_INTERFACE_IDLE; + if (ReceivePacketCallback != NULL) + { + Upstream_CheckBeginPacketReception(); + } } + + //Release old packet after moving Next to Current + Upstream_ReleasePacket(tempPacketToFree); return; }