From: Federica Di Lauro Date: Thu, 12 Sep 2019 12:43:32 +0000 (+0200) Subject: subscriber funziona X-Git-Url: http://git.leonardobizzoni.com/?a=commitdiff_plain;h=61dffa260fc54150351d1d773f25e9b4ff7e4ed7;p=pioneer-stm32 subscriber funziona --- diff --git a/rosserial_led/Debug/Src/subdir.mk b/rosserial_led/Debug/Src/subdir.mk index 02fb630..1c2d17d 100644 --- a/rosserial_led/Debug/Src/subdir.mk +++ b/rosserial_led/Debug/Src/subdir.mk @@ -12,18 +12,18 @@ C_SRCS += \ CPP_SRCS += \ ../Src/main.cpp \ -../Src/ros_time.cpp \ -../Src/test.cpp +../Src/mainpp.cpp \ +../Src/ros_time.cpp OBJS += \ ./Src/main.o \ +./Src/mainpp.o \ ./Src/ros_time.o \ ./Src/stm32f7xx_hal_msp.o \ ./Src/stm32f7xx_it.o \ ./Src/syscalls.o \ ./Src/sysmem.o \ -./Src/system_stm32f7xx.o \ -./Src/test.o +./Src/system_stm32f7xx.o C_DEPS += \ ./Src/stm32f7xx_hal_msp.d \ @@ -34,13 +34,15 @@ C_DEPS += \ CPP_DEPS += \ ./Src/main.d \ -./Src/ros_time.d \ -./Src/test.d +./Src/mainpp.d \ +./Src/ros_time.d # Each subdirectory must supply rules for building sources it contributes Src/main.o: ../Src/main.cpp arm-none-eabi-g++ "$<" -mcpu=cortex-m7 -std=gnu++14 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-use-cxa-atexit -Wall -fstack-usage -MMD -MP -MF"Src/main.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" +Src/mainpp.o: ../Src/mainpp.cpp + arm-none-eabi-g++ "$<" -mcpu=cortex-m7 -std=gnu++14 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-use-cxa-atexit -Wall -fstack-usage -MMD -MP -MF"Src/mainpp.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Src/ros_time.o: ../Src/ros_time.cpp arm-none-eabi-g++ "$<" -mcpu=cortex-m7 -std=gnu++14 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-use-cxa-atexit -Wall -fstack-usage -MMD -MP -MF"Src/ros_time.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Src/stm32f7xx_hal_msp.o: ../Src/stm32f7xx_hal_msp.c @@ -53,6 +55,4 @@ Src/sysmem.o: ../Src/sysmem.c arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/sysmem.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Src/system_stm32f7xx.o: ../Src/system_stm32f7xx.c arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/system_stm32f7xx.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" -Src/test.o: ../Src/test.cpp - arm-none-eabi-g++ "$<" -mcpu=cortex-m7 -std=gnu++14 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-use-cxa-atexit -Wall -fstack-usage -MMD -MP -MF"Src/test.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" diff --git a/rosserial_led/Debug/objects.list b/rosserial_led/Debug/objects.list index db8f4f9..4d66601 100644 --- a/rosserial_led/Debug/objects.list +++ b/rosserial_led/Debug/objects.list @@ -17,11 +17,11 @@ "Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.o" "Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart_ex.o" "Src/main.o" +"Src/mainpp.o" "Src/ros_time.o" "Src/stm32f7xx_hal_msp.o" "Src/stm32f7xx_it.o" "Src/syscalls.o" "Src/sysmem.o" "Src/system_stm32f7xx.o" -"Src/test.o" "Startup/startup_stm32f767zitx.o" diff --git a/rosserial_led/Debug/rosserial_led.list b/rosserial_led/Debug/rosserial_led.list index 0c99270..41111bf 100644 --- a/rosserial_led/Debug/rosserial_led.list +++ b/rosserial_led/Debug/rosserial_led.list @@ -5,45 +5,45 @@ Sections: Idx Name Size VMA LMA File off Algn 0 .isr_vector 000001f8 08000000 08000000 00010000 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA - 1 .text 00005cc8 080001f8 080001f8 000101f8 2**2 + 1 .text 00005d2c 080001f8 080001f8 000101f8 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .rodata 0000026c 08005ec0 08005ec0 00015ec0 2**2 + 2 .rodata 0000026c 08005f24 08005f24 00015f24 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 3 .ARM.extab 00000000 0800612c 0800612c 00020074 2**0 + 3 .ARM.extab 00000000 08006190 08006190 00020074 2**0 CONTENTS - 4 .ARM 00000008 0800612c 0800612c 0001612c 2**2 + 4 .ARM 00000008 08006190 08006190 00016190 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 5 .preinit_array 00000000 08006134 08006134 00020074 2**0 + 5 .preinit_array 00000000 08006198 08006198 00020074 2**0 CONTENTS, ALLOC, LOAD, DATA - 6 .init_array 00000008 08006134 08006134 00016134 2**2 + 6 .init_array 00000008 08006198 08006198 00016198 2**2 CONTENTS, ALLOC, LOAD, DATA - 7 .fini_array 00000004 0800613c 0800613c 0001613c 2**2 + 7 .fini_array 00000004 080061a0 080061a0 000161a0 2**2 CONTENTS, ALLOC, LOAD, DATA - 8 .data 00000074 20000000 08006140 00020000 2**2 + 8 .data 00000074 20000000 080061a4 00020000 2**2 CONTENTS, ALLOC, LOAD, DATA - 9 .bss 000001d0 20000074 080061b4 00020074 2**2 + 9 .bss 00000890 20000074 08006218 00020074 2**2 ALLOC - 10 ._user_heap_stack 00000604 20000244 080061b4 00020244 2**0 + 10 ._user_heap_stack 00000604 20000904 08006218 00020904 2**0 ALLOC 11 .ARM.attributes 0000002e 00000000 00000000 00020074 2**0 CONTENTS, READONLY - 12 .debug_info 00012fc9 00000000 00000000 000200a2 2**0 + 12 .debug_info 000155cc 00000000 00000000 000200a2 2**0 CONTENTS, READONLY, DEBUGGING - 13 .debug_abbrev 00002779 00000000 00000000 0003306b 2**0 + 13 .debug_abbrev 00002c25 00000000 00000000 0003566e 2**0 CONTENTS, READONLY, DEBUGGING - 14 .debug_aranges 00000f38 00000000 00000000 000357e8 2**3 + 14 .debug_aranges 00000f78 00000000 00000000 00038298 2**3 CONTENTS, READONLY, DEBUGGING - 15 .debug_ranges 00000e48 00000000 00000000 00036720 2**3 + 15 .debug_ranges 00000e78 00000000 00000000 00039210 2**3 CONTENTS, READONLY, DEBUGGING - 16 .debug_macro 0002b2b6 00000000 00000000 00037568 2**0 + 16 .debug_macro 0002b4bd 00000000 00000000 0003a088 2**0 CONTENTS, READONLY, DEBUGGING - 17 .debug_line 0000b1b0 00000000 00000000 0006281e 2**0 + 17 .debug_line 0000bebb 00000000 00000000 00065545 2**0 CONTENTS, READONLY, DEBUGGING - 18 .debug_str 000fabdc 00000000 00000000 0006d9ce 2**0 + 18 .debug_str 000fad07 00000000 00000000 00071400 2**0 CONTENTS, READONLY, DEBUGGING - 19 .comment 0000007b 00000000 00000000 001685aa 2**0 + 19 .comment 0000007b 00000000 00000000 0016c107 2**0 CONTENTS, READONLY - 20 .debug_frame 00004440 00000000 00000000 00168628 2**2 + 20 .debug_frame 000044f4 00000000 00000000 0016c184 2**2 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -62,7 +62,7 @@ Disassembly of section .text: 800020e: bd10 pop {r4, pc} 8000210: 20000074 .word 0x20000074 8000214: 00000000 .word 0x00000000 - 8000218: 08005ea8 .word 0x08005ea8 + 8000218: 08005f0c .word 0x08005f0c 0800021c : 800021c: b508 push {r3, lr} @@ -74,7 +74,7 @@ Disassembly of section .text: 800022a: bd08 pop {r3, pc} 800022c: 00000000 .word 0x00000000 8000230: 20000078 .word 0x20000078 - 8000234: 08005ea8 .word 0x08005ea8 + 8000234: 08005f0c .word 0x08005f0c 08000238 : 8000238: 4603 mov r3, r0 @@ -387,7 +387,7 @@ HAL_StatusTypeDef HAL_Init(void) /* Init the low level hardware */ HAL_MspInit(); - 8000558: f005 f92c bl 80057b4 + 8000558: f005 f95e bl 8005818 /* Return function status */ return HAL_OK; @@ -488,7 +488,7 @@ __weak void HAL_IncTick(void) 80005e0: 4770 bx lr 80005e2: bf00 nop 80005e4: 20000004 .word 0x20000004 - 80005e8: 2000023c .word 0x2000023c + 80005e8: 200008fc .word 0x200008fc 080005ec : * @note This function is declared as __weak to be overwritten in case of other @@ -508,7 +508,7 @@ __weak uint32_t HAL_GetTick(void) 80005f8: f85d 7b04 ldr.w r7, [sp], #4 80005fc: 4770 bx lr 80005fe: bf00 nop - 8000600: 2000023c .word 0x2000023c + 8000600: 200008fc .word 0x200008fc 08000604 : * implementations in user file. @@ -2160,7 +2160,7 @@ static uint32_t DMA_CalcBaseAndBitshift(DMA_HandleTypeDef *hdma) 8000e98: 4770 bx lr 8000e9a: bf00 nop 8000e9c: aaaaaaab .word 0xaaaaaaab - 8000ea0: 08006008 .word 0x08006008 + 8000ea0: 0800606c .word 0x0800606c 8000ea4: fffffc00 .word 0xfffffc00 08000ea8 : @@ -4144,7 +4144,7 @@ HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, ui 80019fa: bf00 nop 80019fc: 40023c00 .word 0x40023c00 8001a00: 40023800 .word 0x40023800 - 8001a04: 08006114 .word 0x08006114 + 8001a04: 08006178 .word 0x08006178 8001a08: 20000008 .word 0x20000008 08001a0c : @@ -4380,7 +4380,7 @@ uint32_t HAL_RCC_GetPCLK1Freq(void) 8001ba4: 4618 mov r0, r3 8001ba6: bd80 pop {r7, pc} 8001ba8: 40023800 .word 0x40023800 - 8001bac: 08006124 .word 0x08006124 + 8001bac: 08006188 .word 0x08006188 08001bb0 : * @note Each time PCLK2 changes, this function must be called to update the @@ -4406,7 +4406,7 @@ uint32_t HAL_RCC_GetPCLK2Freq(void) 8001bcc: 4618 mov r0, r3 8001bce: bd80 pop {r7, pc} 8001bd0: 40023800 .word 0x40023800 - 8001bd4: 08006124 .word 0x08006124 + 8001bd4: 08006188 .word 0x08006188 08001bd8 : * the backup registers) are set to their reset values. @@ -5867,7 +5867,7 @@ HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) /* Init the low level hardware : GPIO, CLOCK, NVIC */ HAL_TIM_Base_MspInit(htim); 800244a: 6878 ldr r0, [r7, #4] - 800244c: f003 f9d6 bl 80057fc + 800244c: f003 fa08 bl 8005860 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ } @@ -6806,7 +6806,7 @@ HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) /* Init the low level hardware : GPIO, CLOCK */ HAL_UART_MspInit(huart); 8002992: 6878 ldr r0, [r7, #4] - 8002994: f002 ff50 bl 8005838 + 8002994: f002 ff82 bl 800589c #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ } @@ -6828,7 +6828,7 @@ HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) /* Set the UART Communication parameters */ if (UART_SetConfig(huart) == HAL_ERROR) 80029ae: 6878 ldr r0, [r7, #4] - 80029b0: f000 fa7a bl 8002ea8 + 80029b0: f000 fa66 bl 8002e80 80029b4: 4603 mov r3, r0 80029b6: 2b01 cmp r3, #1 80029b8: d101 bne.n 80029be @@ -6846,7 +6846,7 @@ HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) { UART_AdvFeatureConfig(huart); 80029c6: 6878 ldr r0, [r7, #4] - 80029c8: f000 fd12 bl 80033f0 + 80029c8: f000 fcfe bl 80033c8 } /* In asynchronous mode, the following bits must be kept cleared: @@ -6882,7 +6882,7 @@ HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ return (UART_CheckIdleState(huart)); 80029fc: 6878 ldr r0, [r7, #4] - 80029fe: f000 fd99 bl 8003534 + 80029fe: f000 fd85 bl 800350c 8002a02: 4603 mov r3, r0 } 8002a04: 4618 mov r0, r3 @@ -7071,9 +7071,9 @@ HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pDat 8002af2: 46bd mov sp, r7 8002af4: bd80 pop {r7, pc} 8002af6: bf00 nop - 8002af8: 0800368d .word 0x0800368d - 8002afc: 080036dd .word 0x080036dd - 8002b00: 08003779 .word 0x08003779 + 8002af8: 08003665 .word 0x08003665 + 8002afc: 080036b5 .word 0x080036b5 + 8002b00: 08003751 .word 0x08003751 08002b04 : * @param pData Pointer to data buffer. @@ -7265,9 +7265,9 @@ HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData 8002bfa: 46bd mov sp, r7 8002bfc: bd80 pop {r7, pc} 8002bfe: bf00 nop - 8002c00: 080036f9 .word 0x080036f9 - 8002c04: 0800375d .word 0x0800375d - 8002c08: 08003779 .word 0x08003779 + 8002c00: 080036d1 .word 0x080036d1 + 8002c04: 08003735 .word 0x08003735 + 8002c08: 08003751 .word 0x08003751 08002c0c : * @brief Handle UART interrupt request. @@ -7519,7 +7519,7 @@ void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) Disable Rx Interrupts, and disable Rx DMA request, if ongoing */ UART_EndRxTransfer(huart); 8002d74: 6878 ldr r0, [r7, #4] - 8002d76: f000 fc69 bl 800364c + 8002d76: f000 fc55 bl 8003624 /* Disable the UART DMA Rx request if enabled */ if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) @@ -7582,7 +7582,7 @@ void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 8002dc8: 6878 ldr r0, [r7, #4] - 8002dca: f000 f863 bl 8002e94 + 8002dca: f000 f84f bl 8002e6c if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8002dce: e00a b.n 8002de6 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) @@ -7592,7 +7592,7 @@ void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 8002dd0: 6878 ldr r0, [r7, #4] - 8002dd2: f000 f85f bl 8002e94 + 8002dd2: f000 f84b bl 8002e6c if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) 8002dd6: e006 b.n 8002de6 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) @@ -7602,7 +7602,7 @@ void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); 8002dd8: 6878 ldr r0, [r7, #4] - 8002dda: f000 f85b bl 8002e94 + 8002dda: f000 f847 bl 8002e6c #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ huart->ErrorCode = HAL_UART_ERROR_NONE; 8002dde: 687b ldr r3, [r7, #4] @@ -7660,7 +7660,7 @@ void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) { UART_EndTransmit_IT(huart); 8002e24: 6878 ldr r0, [r7, #4] - 8002e26: f000 fcf9 bl 800381c + 8002e26: f000 fce5 bl 80037f4 return; 8002e2a: bf00 nop 8002e2c: e004 b.n 8002e38 @@ -7679,14 +7679,14 @@ void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) 8002e3a: 46bd mov sp, r7 8002e3c: bd80 pop {r7, pc} 8002e3e: bf00 nop - 8002e40: 080037f1 .word 0x080037f1 + 8002e40: 080037c9 .word 0x080037c9 -08002e44 : - * @brief Tx Transfer completed callback. - * @param huart UART handle. +08002e44 : + * @brief Tx Half Transfer completed callback. + * @param huart UART handle. * @retval None */ -__weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) +__weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) { 8002e44: b480 push {r7} 8002e46: b083 sub sp, #12 @@ -7694,8 +7694,8 @@ __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) 8002e4a: 6078 str r0, [r7, #4] UNUSED(huart); - /* NOTE : This function should not be modified, when the callback is needed, - the HAL_UART_TxCpltCallback can be implemented in the user file. + /* NOTE: This function should not be modified, when the callback is needed, + the HAL_UART_TxHalfCpltCallback can be implemented in the user file. */ } 8002e4c: bf00 nop @@ -7704,12 +7704,12 @@ __weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) 8002e52: f85d 7b04 ldr.w r7, [sp], #4 8002e56: 4770 bx lr -08002e58 : - * @brief Tx Half Transfer completed callback. +08002e58 : + * @brief Rx Half Transfer completed callback. * @param huart UART handle. * @retval None */ -__weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) +__weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) { 8002e58: b480 push {r7} 8002e5a: b083 sub sp, #12 @@ -7718,7 +7718,7 @@ __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) UNUSED(huart); /* NOTE: This function should not be modified, when the callback is needed, - the HAL_UART_TxHalfCpltCallback can be implemented in the user file. + the HAL_UART_RxHalfCpltCallback can be implemented in the user file. */ } 8002e60: bf00 nop @@ -7727,12 +7727,12 @@ __weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) 8002e66: f85d 7b04 ldr.w r7, [sp], #4 8002e6a: 4770 bx lr -08002e6c : - * @brief Rx Transfer completed callback. +08002e6c : + * @brief UART error callback. * @param huart UART handle. * @retval None */ -__weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) +__weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) { 8002e6c: b480 push {r7} 8002e6e: b083 sub sp, #12 @@ -7741,7 +7741,7 @@ __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) UNUSED(huart); /* NOTE : This function should not be modified, when the callback is needed, - the HAL_UART_RxCpltCallback can be implemented in the user file. + the HAL_UART_ErrorCallback can be implemented in the user file. */ } 8002e74: bf00 nop @@ -7750,7529 +7750,7577 @@ __weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) 8002e7a: f85d 7b04 ldr.w r7, [sp], #4 8002e7e: 4770 bx lr -08002e80 : - * @brief Rx Half Transfer completed callback. - * @param huart UART handle. - * @retval None - */ -__weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) -{ - 8002e80: b480 push {r7} - 8002e82: b083 sub sp, #12 - 8002e84: af00 add r7, sp, #0 - 8002e86: 6078 str r0, [r7, #4] - UNUSED(huart); - - /* NOTE: This function should not be modified, when the callback is needed, - the HAL_UART_RxHalfCpltCallback can be implemented in the user file. - */ -} - 8002e88: bf00 nop - 8002e8a: 370c adds r7, #12 - 8002e8c: 46bd mov sp, r7 - 8002e8e: f85d 7b04 ldr.w r7, [sp], #4 - 8002e92: 4770 bx lr - -08002e94 : - * @brief UART error callback. - * @param huart UART handle. - * @retval None - */ -__weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) -{ - 8002e94: b480 push {r7} - 8002e96: b083 sub sp, #12 - 8002e98: af00 add r7, sp, #0 - 8002e9a: 6078 str r0, [r7, #4] - UNUSED(huart); - - /* NOTE : This function should not be modified, when the callback is needed, - the HAL_UART_ErrorCallback can be implemented in the user file. - */ -} - 8002e9c: bf00 nop - 8002e9e: 370c adds r7, #12 - 8002ea0: 46bd mov sp, r7 - 8002ea2: f85d 7b04 ldr.w r7, [sp], #4 - 8002ea6: 4770 bx lr - -08002ea8 : +08002e80 : * @brief Configure the UART peripheral. * @param huart UART handle. * @retval HAL status */ HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) { - 8002ea8: b580 push {r7, lr} - 8002eaa: b088 sub sp, #32 - 8002eac: af00 add r7, sp, #0 - 8002eae: 6078 str r0, [r7, #4] + 8002e80: b580 push {r7, lr} + 8002e82: b088 sub sp, #32 + 8002e84: af00 add r7, sp, #0 + 8002e86: 6078 str r0, [r7, #4] uint32_t tmpreg; uint16_t brrtemp; UART_ClockSourceTypeDef clocksource; uint32_t usartdiv = 0x00000000U; - 8002eb0: 2300 movs r3, #0 - 8002eb2: 61bb str r3, [r7, #24] + 8002e88: 2300 movs r3, #0 + 8002e8a: 61bb str r3, [r7, #24] HAL_StatusTypeDef ret = HAL_OK; - 8002eb4: 2300 movs r3, #0 - 8002eb6: 75fb strb r3, [r7, #23] + 8002e8c: 2300 movs r3, #0 + 8002e8e: 75fb strb r3, [r7, #23] * the UART Word Length, Parity, Mode and oversampling: * set the M bits according to huart->Init.WordLength value * set PCE and PS bits according to huart->Init.Parity value * set TE and RE bits according to huart->Init.Mode value * set OVER8 bit according to huart->Init.OverSampling value */ tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling ; - 8002eb8: 687b ldr r3, [r7, #4] - 8002eba: 689a ldr r2, [r3, #8] - 8002ebc: 687b ldr r3, [r7, #4] - 8002ebe: 691b ldr r3, [r3, #16] - 8002ec0: 431a orrs r2, r3 - 8002ec2: 687b ldr r3, [r7, #4] - 8002ec4: 695b ldr r3, [r3, #20] - 8002ec6: 431a orrs r2, r3 - 8002ec8: 687b ldr r3, [r7, #4] - 8002eca: 69db ldr r3, [r3, #28] - 8002ecc: 4313 orrs r3, r2 - 8002ece: 613b str r3, [r7, #16] + 8002e90: 687b ldr r3, [r7, #4] + 8002e92: 689a ldr r2, [r3, #8] + 8002e94: 687b ldr r3, [r7, #4] + 8002e96: 691b ldr r3, [r3, #16] + 8002e98: 431a orrs r2, r3 + 8002e9a: 687b ldr r3, [r7, #4] + 8002e9c: 695b ldr r3, [r3, #20] + 8002e9e: 431a orrs r2, r3 + 8002ea0: 687b ldr r3, [r7, #4] + 8002ea2: 69db ldr r3, [r3, #28] + 8002ea4: 4313 orrs r3, r2 + 8002ea6: 613b str r3, [r7, #16] MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); - 8002ed0: 687b ldr r3, [r7, #4] - 8002ed2: 681b ldr r3, [r3, #0] - 8002ed4: 681a ldr r2, [r3, #0] - 8002ed6: 4bb1 ldr r3, [pc, #708] ; (800319c ) - 8002ed8: 4013 ands r3, r2 - 8002eda: 687a ldr r2, [r7, #4] - 8002edc: 6812 ldr r2, [r2, #0] - 8002ede: 6939 ldr r1, [r7, #16] - 8002ee0: 430b orrs r3, r1 - 8002ee2: 6013 str r3, [r2, #0] + 8002ea8: 687b ldr r3, [r7, #4] + 8002eaa: 681b ldr r3, [r3, #0] + 8002eac: 681a ldr r2, [r3, #0] + 8002eae: 4bb1 ldr r3, [pc, #708] ; (8003174 ) + 8002eb0: 4013 ands r3, r2 + 8002eb2: 687a ldr r2, [r7, #4] + 8002eb4: 6812 ldr r2, [r2, #0] + 8002eb6: 6939 ldr r1, [r7, #16] + 8002eb8: 430b orrs r3, r1 + 8002eba: 6013 str r3, [r2, #0] /*-------------------------- USART CR2 Configuration -----------------------*/ /* Configure the UART Stop Bits: Set STOP[13:12] bits according * to huart->Init.StopBits value */ MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); - 8002ee4: 687b ldr r3, [r7, #4] - 8002ee6: 681b ldr r3, [r3, #0] - 8002ee8: 685b ldr r3, [r3, #4] - 8002eea: f423 5140 bic.w r1, r3, #12288 ; 0x3000 - 8002eee: 687b ldr r3, [r7, #4] - 8002ef0: 68da ldr r2, [r3, #12] - 8002ef2: 687b ldr r3, [r7, #4] - 8002ef4: 681b ldr r3, [r3, #0] - 8002ef6: 430a orrs r2, r1 - 8002ef8: 605a str r2, [r3, #4] + 8002ebc: 687b ldr r3, [r7, #4] + 8002ebe: 681b ldr r3, [r3, #0] + 8002ec0: 685b ldr r3, [r3, #4] + 8002ec2: f423 5140 bic.w r1, r3, #12288 ; 0x3000 + 8002ec6: 687b ldr r3, [r7, #4] + 8002ec8: 68da ldr r2, [r3, #12] + 8002eca: 687b ldr r3, [r7, #4] + 8002ecc: 681b ldr r3, [r3, #0] + 8002ece: 430a orrs r2, r1 + 8002ed0: 605a str r2, [r3, #4] /* Configure * - UART HardWare Flow Control: set CTSE and RTSE bits according * to huart->Init.HwFlowCtl value * - one-bit sampling method versus three samples' majority rule according * to huart->Init.OneBitSampling (not applicable to LPUART) */ tmpreg = (uint32_t)huart->Init.HwFlowCtl; - 8002efa: 687b ldr r3, [r7, #4] - 8002efc: 699b ldr r3, [r3, #24] - 8002efe: 613b str r3, [r7, #16] + 8002ed2: 687b ldr r3, [r7, #4] + 8002ed4: 699b ldr r3, [r3, #24] + 8002ed6: 613b str r3, [r7, #16] tmpreg |= huart->Init.OneBitSampling; - 8002f00: 687b ldr r3, [r7, #4] - 8002f02: 6a1b ldr r3, [r3, #32] - 8002f04: 693a ldr r2, [r7, #16] - 8002f06: 4313 orrs r3, r2 - 8002f08: 613b str r3, [r7, #16] + 8002ed8: 687b ldr r3, [r7, #4] + 8002eda: 6a1b ldr r3, [r3, #32] + 8002edc: 693a ldr r2, [r7, #16] + 8002ede: 4313 orrs r3, r2 + 8002ee0: 613b str r3, [r7, #16] MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); - 8002f0a: 687b ldr r3, [r7, #4] - 8002f0c: 681b ldr r3, [r3, #0] - 8002f0e: 689b ldr r3, [r3, #8] - 8002f10: f423 6130 bic.w r1, r3, #2816 ; 0xb00 - 8002f14: 687b ldr r3, [r7, #4] - 8002f16: 681b ldr r3, [r3, #0] - 8002f18: 693a ldr r2, [r7, #16] - 8002f1a: 430a orrs r2, r1 - 8002f1c: 609a str r2, [r3, #8] + 8002ee2: 687b ldr r3, [r7, #4] + 8002ee4: 681b ldr r3, [r3, #0] + 8002ee6: 689b ldr r3, [r3, #8] + 8002ee8: f423 6130 bic.w r1, r3, #2816 ; 0xb00 + 8002eec: 687b ldr r3, [r7, #4] + 8002eee: 681b ldr r3, [r3, #0] + 8002ef0: 693a ldr r2, [r7, #16] + 8002ef2: 430a orrs r2, r1 + 8002ef4: 609a str r2, [r3, #8] /*-------------------------- USART BRR Configuration -----------------------*/ UART_GETCLOCKSOURCE(huart, clocksource); - 8002f1e: 687b ldr r3, [r7, #4] - 8002f20: 681b ldr r3, [r3, #0] - 8002f22: 4a9f ldr r2, [pc, #636] ; (80031a0 ) - 8002f24: 4293 cmp r3, r2 - 8002f26: d121 bne.n 8002f6c - 8002f28: 4b9e ldr r3, [pc, #632] ; (80031a4 ) - 8002f2a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8002f2e: f003 0303 and.w r3, r3, #3 - 8002f32: 2b03 cmp r3, #3 - 8002f34: d816 bhi.n 8002f64 - 8002f36: a201 add r2, pc, #4 ; (adr r2, 8002f3c ) - 8002f38: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8002f3c: 08002f4d .word 0x08002f4d - 8002f40: 08002f59 .word 0x08002f59 - 8002f44: 08002f53 .word 0x08002f53 - 8002f48: 08002f5f .word 0x08002f5f - 8002f4c: 2301 movs r3, #1 - 8002f4e: 77fb strb r3, [r7, #31] - 8002f50: e151 b.n 80031f6 - 8002f52: 2302 movs r3, #2 - 8002f54: 77fb strb r3, [r7, #31] - 8002f56: e14e b.n 80031f6 - 8002f58: 2304 movs r3, #4 - 8002f5a: 77fb strb r3, [r7, #31] - 8002f5c: e14b b.n 80031f6 - 8002f5e: 2308 movs r3, #8 - 8002f60: 77fb strb r3, [r7, #31] - 8002f62: e148 b.n 80031f6 - 8002f64: 2310 movs r3, #16 - 8002f66: 77fb strb r3, [r7, #31] - 8002f68: bf00 nop - 8002f6a: e144 b.n 80031f6 - 8002f6c: 687b ldr r3, [r7, #4] - 8002f6e: 681b ldr r3, [r3, #0] - 8002f70: 4a8d ldr r2, [pc, #564] ; (80031a8 ) - 8002f72: 4293 cmp r3, r2 - 8002f74: d134 bne.n 8002fe0 - 8002f76: 4b8b ldr r3, [pc, #556] ; (80031a4 ) - 8002f78: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8002f7c: f003 030c and.w r3, r3, #12 - 8002f80: 2b0c cmp r3, #12 - 8002f82: d829 bhi.n 8002fd8 - 8002f84: a201 add r2, pc, #4 ; (adr r2, 8002f8c ) - 8002f86: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8002f8a: bf00 nop - 8002f8c: 08002fc1 .word 0x08002fc1 - 8002f90: 08002fd9 .word 0x08002fd9 - 8002f94: 08002fd9 .word 0x08002fd9 - 8002f98: 08002fd9 .word 0x08002fd9 - 8002f9c: 08002fcd .word 0x08002fcd - 8002fa0: 08002fd9 .word 0x08002fd9 - 8002fa4: 08002fd9 .word 0x08002fd9 - 8002fa8: 08002fd9 .word 0x08002fd9 - 8002fac: 08002fc7 .word 0x08002fc7 - 8002fb0: 08002fd9 .word 0x08002fd9 - 8002fb4: 08002fd9 .word 0x08002fd9 - 8002fb8: 08002fd9 .word 0x08002fd9 - 8002fbc: 08002fd3 .word 0x08002fd3 - 8002fc0: 2300 movs r3, #0 - 8002fc2: 77fb strb r3, [r7, #31] - 8002fc4: e117 b.n 80031f6 - 8002fc6: 2302 movs r3, #2 - 8002fc8: 77fb strb r3, [r7, #31] - 8002fca: e114 b.n 80031f6 - 8002fcc: 2304 movs r3, #4 - 8002fce: 77fb strb r3, [r7, #31] - 8002fd0: e111 b.n 80031f6 - 8002fd2: 2308 movs r3, #8 - 8002fd4: 77fb strb r3, [r7, #31] - 8002fd6: e10e b.n 80031f6 - 8002fd8: 2310 movs r3, #16 - 8002fda: 77fb strb r3, [r7, #31] - 8002fdc: bf00 nop - 8002fde: e10a b.n 80031f6 - 8002fe0: 687b ldr r3, [r7, #4] - 8002fe2: 681b ldr r3, [r3, #0] - 8002fe4: 4a71 ldr r2, [pc, #452] ; (80031ac ) - 8002fe6: 4293 cmp r3, r2 - 8002fe8: d120 bne.n 800302c - 8002fea: 4b6e ldr r3, [pc, #440] ; (80031a4 ) - 8002fec: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8002ff0: f003 0330 and.w r3, r3, #48 ; 0x30 - 8002ff4: 2b10 cmp r3, #16 - 8002ff6: d00f beq.n 8003018 - 8002ff8: 2b10 cmp r3, #16 - 8002ffa: d802 bhi.n 8003002 - 8002ffc: 2b00 cmp r3, #0 - 8002ffe: d005 beq.n 800300c - 8003000: e010 b.n 8003024 - 8003002: 2b20 cmp r3, #32 - 8003004: d005 beq.n 8003012 - 8003006: 2b30 cmp r3, #48 ; 0x30 - 8003008: d009 beq.n 800301e - 800300a: e00b b.n 8003024 - 800300c: 2300 movs r3, #0 - 800300e: 77fb strb r3, [r7, #31] - 8003010: e0f1 b.n 80031f6 - 8003012: 2302 movs r3, #2 - 8003014: 77fb strb r3, [r7, #31] - 8003016: e0ee b.n 80031f6 - 8003018: 2304 movs r3, #4 - 800301a: 77fb strb r3, [r7, #31] - 800301c: e0eb b.n 80031f6 - 800301e: 2308 movs r3, #8 - 8003020: 77fb strb r3, [r7, #31] - 8003022: e0e8 b.n 80031f6 - 8003024: 2310 movs r3, #16 - 8003026: 77fb strb r3, [r7, #31] - 8003028: bf00 nop - 800302a: e0e4 b.n 80031f6 - 800302c: 687b ldr r3, [r7, #4] - 800302e: 681b ldr r3, [r3, #0] - 8003030: 4a5f ldr r2, [pc, #380] ; (80031b0 ) - 8003032: 4293 cmp r3, r2 - 8003034: d120 bne.n 8003078 - 8003036: 4b5b ldr r3, [pc, #364] ; (80031a4 ) - 8003038: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 800303c: f003 03c0 and.w r3, r3, #192 ; 0xc0 - 8003040: 2b40 cmp r3, #64 ; 0x40 - 8003042: d00f beq.n 8003064 - 8003044: 2b40 cmp r3, #64 ; 0x40 - 8003046: d802 bhi.n 800304e - 8003048: 2b00 cmp r3, #0 - 800304a: d005 beq.n 8003058 - 800304c: e010 b.n 8003070 - 800304e: 2b80 cmp r3, #128 ; 0x80 - 8003050: d005 beq.n 800305e - 8003052: 2bc0 cmp r3, #192 ; 0xc0 - 8003054: d009 beq.n 800306a - 8003056: e00b b.n 8003070 - 8003058: 2300 movs r3, #0 - 800305a: 77fb strb r3, [r7, #31] - 800305c: e0cb b.n 80031f6 - 800305e: 2302 movs r3, #2 - 8003060: 77fb strb r3, [r7, #31] - 8003062: e0c8 b.n 80031f6 - 8003064: 2304 movs r3, #4 - 8003066: 77fb strb r3, [r7, #31] - 8003068: e0c5 b.n 80031f6 - 800306a: 2308 movs r3, #8 - 800306c: 77fb strb r3, [r7, #31] - 800306e: e0c2 b.n 80031f6 - 8003070: 2310 movs r3, #16 - 8003072: 77fb strb r3, [r7, #31] - 8003074: bf00 nop - 8003076: e0be b.n 80031f6 - 8003078: 687b ldr r3, [r7, #4] - 800307a: 681b ldr r3, [r3, #0] - 800307c: 4a4d ldr r2, [pc, #308] ; (80031b4 ) - 800307e: 4293 cmp r3, r2 - 8003080: d124 bne.n 80030cc - 8003082: 4b48 ldr r3, [pc, #288] ; (80031a4 ) - 8003084: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8003088: f403 7340 and.w r3, r3, #768 ; 0x300 - 800308c: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 8003090: d012 beq.n 80030b8 - 8003092: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 8003096: d802 bhi.n 800309e - 8003098: 2b00 cmp r3, #0 - 800309a: d007 beq.n 80030ac - 800309c: e012 b.n 80030c4 - 800309e: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 80030a2: d006 beq.n 80030b2 - 80030a4: f5b3 7f40 cmp.w r3, #768 ; 0x300 - 80030a8: d009 beq.n 80030be - 80030aa: e00b b.n 80030c4 - 80030ac: 2300 movs r3, #0 - 80030ae: 77fb strb r3, [r7, #31] - 80030b0: e0a1 b.n 80031f6 - 80030b2: 2302 movs r3, #2 - 80030b4: 77fb strb r3, [r7, #31] - 80030b6: e09e b.n 80031f6 - 80030b8: 2304 movs r3, #4 - 80030ba: 77fb strb r3, [r7, #31] - 80030bc: e09b b.n 80031f6 - 80030be: 2308 movs r3, #8 - 80030c0: 77fb strb r3, [r7, #31] - 80030c2: e098 b.n 80031f6 - 80030c4: 2310 movs r3, #16 - 80030c6: 77fb strb r3, [r7, #31] - 80030c8: bf00 nop - 80030ca: e094 b.n 80031f6 - 80030cc: 687b ldr r3, [r7, #4] - 80030ce: 681b ldr r3, [r3, #0] - 80030d0: 4a39 ldr r2, [pc, #228] ; (80031b8 ) - 80030d2: 4293 cmp r3, r2 - 80030d4: d124 bne.n 8003120 - 80030d6: 4b33 ldr r3, [pc, #204] ; (80031a4 ) - 80030d8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 80030dc: f403 6340 and.w r3, r3, #3072 ; 0xc00 - 80030e0: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 80030e4: d012 beq.n 800310c - 80030e6: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 80030ea: d802 bhi.n 80030f2 - 80030ec: 2b00 cmp r3, #0 - 80030ee: d007 beq.n 8003100 - 80030f0: e012 b.n 8003118 - 80030f2: f5b3 6f00 cmp.w r3, #2048 ; 0x800 - 80030f6: d006 beq.n 8003106 - 80030f8: f5b3 6f40 cmp.w r3, #3072 ; 0xc00 - 80030fc: d009 beq.n 8003112 - 80030fe: e00b b.n 8003118 - 8003100: 2301 movs r3, #1 - 8003102: 77fb strb r3, [r7, #31] - 8003104: e077 b.n 80031f6 - 8003106: 2302 movs r3, #2 - 8003108: 77fb strb r3, [r7, #31] - 800310a: e074 b.n 80031f6 - 800310c: 2304 movs r3, #4 - 800310e: 77fb strb r3, [r7, #31] - 8003110: e071 b.n 80031f6 - 8003112: 2308 movs r3, #8 - 8003114: 77fb strb r3, [r7, #31] - 8003116: e06e b.n 80031f6 - 8003118: 2310 movs r3, #16 - 800311a: 77fb strb r3, [r7, #31] - 800311c: bf00 nop - 800311e: e06a b.n 80031f6 - 8003120: 687b ldr r3, [r7, #4] - 8003122: 681b ldr r3, [r3, #0] - 8003124: 4a25 ldr r2, [pc, #148] ; (80031bc ) - 8003126: 4293 cmp r3, r2 - 8003128: d124 bne.n 8003174 - 800312a: 4b1e ldr r3, [pc, #120] ; (80031a4 ) - 800312c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8003130: f403 5340 and.w r3, r3, #12288 ; 0x3000 - 8003134: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 - 8003138: d012 beq.n 8003160 - 800313a: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 - 800313e: d802 bhi.n 8003146 - 8003140: 2b00 cmp r3, #0 - 8003142: d007 beq.n 8003154 - 8003144: e012 b.n 800316c - 8003146: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 800314a: d006 beq.n 800315a - 800314c: f5b3 5f40 cmp.w r3, #12288 ; 0x3000 - 8003150: d009 beq.n 8003166 - 8003152: e00b b.n 800316c - 8003154: 2300 movs r3, #0 - 8003156: 77fb strb r3, [r7, #31] - 8003158: e04d b.n 80031f6 - 800315a: 2302 movs r3, #2 - 800315c: 77fb strb r3, [r7, #31] - 800315e: e04a b.n 80031f6 - 8003160: 2304 movs r3, #4 - 8003162: 77fb strb r3, [r7, #31] - 8003164: e047 b.n 80031f6 - 8003166: 2308 movs r3, #8 - 8003168: 77fb strb r3, [r7, #31] - 800316a: e044 b.n 80031f6 - 800316c: 2310 movs r3, #16 - 800316e: 77fb strb r3, [r7, #31] - 8003170: bf00 nop - 8003172: e040 b.n 80031f6 - 8003174: 687b ldr r3, [r7, #4] - 8003176: 681b ldr r3, [r3, #0] - 8003178: 4a11 ldr r2, [pc, #68] ; (80031c0 ) - 800317a: 4293 cmp r3, r2 - 800317c: d139 bne.n 80031f2 - 800317e: 4b09 ldr r3, [pc, #36] ; (80031a4 ) - 8003180: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8003184: f403 4340 and.w r3, r3, #49152 ; 0xc000 - 8003188: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 - 800318c: d027 beq.n 80031de - 800318e: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 - 8003192: d817 bhi.n 80031c4 - 8003194: 2b00 cmp r3, #0 - 8003196: d01c beq.n 80031d2 - 8003198: e027 b.n 80031ea - 800319a: bf00 nop - 800319c: efff69f3 .word 0xefff69f3 - 80031a0: 40011000 .word 0x40011000 - 80031a4: 40023800 .word 0x40023800 - 80031a8: 40004400 .word 0x40004400 - 80031ac: 40004800 .word 0x40004800 - 80031b0: 40004c00 .word 0x40004c00 - 80031b4: 40005000 .word 0x40005000 - 80031b8: 40011400 .word 0x40011400 - 80031bc: 40007800 .word 0x40007800 - 80031c0: 40007c00 .word 0x40007c00 - 80031c4: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 - 80031c8: d006 beq.n 80031d8 - 80031ca: f5b3 4f40 cmp.w r3, #49152 ; 0xc000 - 80031ce: d009 beq.n 80031e4 - 80031d0: e00b b.n 80031ea - 80031d2: 2300 movs r3, #0 - 80031d4: 77fb strb r3, [r7, #31] - 80031d6: e00e b.n 80031f6 - 80031d8: 2302 movs r3, #2 - 80031da: 77fb strb r3, [r7, #31] - 80031dc: e00b b.n 80031f6 - 80031de: 2304 movs r3, #4 - 80031e0: 77fb strb r3, [r7, #31] - 80031e2: e008 b.n 80031f6 - 80031e4: 2308 movs r3, #8 - 80031e6: 77fb strb r3, [r7, #31] - 80031e8: e005 b.n 80031f6 - 80031ea: 2310 movs r3, #16 - 80031ec: 77fb strb r3, [r7, #31] - 80031ee: bf00 nop - 80031f0: e001 b.n 80031f6 - 80031f2: 2310 movs r3, #16 - 80031f4: 77fb strb r3, [r7, #31] + 8002ef6: 687b ldr r3, [r7, #4] + 8002ef8: 681b ldr r3, [r3, #0] + 8002efa: 4a9f ldr r2, [pc, #636] ; (8003178 ) + 8002efc: 4293 cmp r3, r2 + 8002efe: d121 bne.n 8002f44 + 8002f00: 4b9e ldr r3, [pc, #632] ; (800317c ) + 8002f02: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8002f06: f003 0303 and.w r3, r3, #3 + 8002f0a: 2b03 cmp r3, #3 + 8002f0c: d816 bhi.n 8002f3c + 8002f0e: a201 add r2, pc, #4 ; (adr r2, 8002f14 ) + 8002f10: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002f14: 08002f25 .word 0x08002f25 + 8002f18: 08002f31 .word 0x08002f31 + 8002f1c: 08002f2b .word 0x08002f2b + 8002f20: 08002f37 .word 0x08002f37 + 8002f24: 2301 movs r3, #1 + 8002f26: 77fb strb r3, [r7, #31] + 8002f28: e151 b.n 80031ce + 8002f2a: 2302 movs r3, #2 + 8002f2c: 77fb strb r3, [r7, #31] + 8002f2e: e14e b.n 80031ce + 8002f30: 2304 movs r3, #4 + 8002f32: 77fb strb r3, [r7, #31] + 8002f34: e14b b.n 80031ce + 8002f36: 2308 movs r3, #8 + 8002f38: 77fb strb r3, [r7, #31] + 8002f3a: e148 b.n 80031ce + 8002f3c: 2310 movs r3, #16 + 8002f3e: 77fb strb r3, [r7, #31] + 8002f40: bf00 nop + 8002f42: e144 b.n 80031ce + 8002f44: 687b ldr r3, [r7, #4] + 8002f46: 681b ldr r3, [r3, #0] + 8002f48: 4a8d ldr r2, [pc, #564] ; (8003180 ) + 8002f4a: 4293 cmp r3, r2 + 8002f4c: d134 bne.n 8002fb8 + 8002f4e: 4b8b ldr r3, [pc, #556] ; (800317c ) + 8002f50: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8002f54: f003 030c and.w r3, r3, #12 + 8002f58: 2b0c cmp r3, #12 + 8002f5a: d829 bhi.n 8002fb0 + 8002f5c: a201 add r2, pc, #4 ; (adr r2, 8002f64 ) + 8002f5e: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002f62: bf00 nop + 8002f64: 08002f99 .word 0x08002f99 + 8002f68: 08002fb1 .word 0x08002fb1 + 8002f6c: 08002fb1 .word 0x08002fb1 + 8002f70: 08002fb1 .word 0x08002fb1 + 8002f74: 08002fa5 .word 0x08002fa5 + 8002f78: 08002fb1 .word 0x08002fb1 + 8002f7c: 08002fb1 .word 0x08002fb1 + 8002f80: 08002fb1 .word 0x08002fb1 + 8002f84: 08002f9f .word 0x08002f9f + 8002f88: 08002fb1 .word 0x08002fb1 + 8002f8c: 08002fb1 .word 0x08002fb1 + 8002f90: 08002fb1 .word 0x08002fb1 + 8002f94: 08002fab .word 0x08002fab + 8002f98: 2300 movs r3, #0 + 8002f9a: 77fb strb r3, [r7, #31] + 8002f9c: e117 b.n 80031ce + 8002f9e: 2302 movs r3, #2 + 8002fa0: 77fb strb r3, [r7, #31] + 8002fa2: e114 b.n 80031ce + 8002fa4: 2304 movs r3, #4 + 8002fa6: 77fb strb r3, [r7, #31] + 8002fa8: e111 b.n 80031ce + 8002faa: 2308 movs r3, #8 + 8002fac: 77fb strb r3, [r7, #31] + 8002fae: e10e b.n 80031ce + 8002fb0: 2310 movs r3, #16 + 8002fb2: 77fb strb r3, [r7, #31] + 8002fb4: bf00 nop + 8002fb6: e10a b.n 80031ce + 8002fb8: 687b ldr r3, [r7, #4] + 8002fba: 681b ldr r3, [r3, #0] + 8002fbc: 4a71 ldr r2, [pc, #452] ; (8003184 ) + 8002fbe: 4293 cmp r3, r2 + 8002fc0: d120 bne.n 8003004 + 8002fc2: 4b6e ldr r3, [pc, #440] ; (800317c ) + 8002fc4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8002fc8: f003 0330 and.w r3, r3, #48 ; 0x30 + 8002fcc: 2b10 cmp r3, #16 + 8002fce: d00f beq.n 8002ff0 + 8002fd0: 2b10 cmp r3, #16 + 8002fd2: d802 bhi.n 8002fda + 8002fd4: 2b00 cmp r3, #0 + 8002fd6: d005 beq.n 8002fe4 + 8002fd8: e010 b.n 8002ffc + 8002fda: 2b20 cmp r3, #32 + 8002fdc: d005 beq.n 8002fea + 8002fde: 2b30 cmp r3, #48 ; 0x30 + 8002fe0: d009 beq.n 8002ff6 + 8002fe2: e00b b.n 8002ffc + 8002fe4: 2300 movs r3, #0 + 8002fe6: 77fb strb r3, [r7, #31] + 8002fe8: e0f1 b.n 80031ce + 8002fea: 2302 movs r3, #2 + 8002fec: 77fb strb r3, [r7, #31] + 8002fee: e0ee b.n 80031ce + 8002ff0: 2304 movs r3, #4 + 8002ff2: 77fb strb r3, [r7, #31] + 8002ff4: e0eb b.n 80031ce + 8002ff6: 2308 movs r3, #8 + 8002ff8: 77fb strb r3, [r7, #31] + 8002ffa: e0e8 b.n 80031ce + 8002ffc: 2310 movs r3, #16 + 8002ffe: 77fb strb r3, [r7, #31] + 8003000: bf00 nop + 8003002: e0e4 b.n 80031ce + 8003004: 687b ldr r3, [r7, #4] + 8003006: 681b ldr r3, [r3, #0] + 8003008: 4a5f ldr r2, [pc, #380] ; (8003188 ) + 800300a: 4293 cmp r3, r2 + 800300c: d120 bne.n 8003050 + 800300e: 4b5b ldr r3, [pc, #364] ; (800317c ) + 8003010: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8003014: f003 03c0 and.w r3, r3, #192 ; 0xc0 + 8003018: 2b40 cmp r3, #64 ; 0x40 + 800301a: d00f beq.n 800303c + 800301c: 2b40 cmp r3, #64 ; 0x40 + 800301e: d802 bhi.n 8003026 + 8003020: 2b00 cmp r3, #0 + 8003022: d005 beq.n 8003030 + 8003024: e010 b.n 8003048 + 8003026: 2b80 cmp r3, #128 ; 0x80 + 8003028: d005 beq.n 8003036 + 800302a: 2bc0 cmp r3, #192 ; 0xc0 + 800302c: d009 beq.n 8003042 + 800302e: e00b b.n 8003048 + 8003030: 2300 movs r3, #0 + 8003032: 77fb strb r3, [r7, #31] + 8003034: e0cb b.n 80031ce + 8003036: 2302 movs r3, #2 + 8003038: 77fb strb r3, [r7, #31] + 800303a: e0c8 b.n 80031ce + 800303c: 2304 movs r3, #4 + 800303e: 77fb strb r3, [r7, #31] + 8003040: e0c5 b.n 80031ce + 8003042: 2308 movs r3, #8 + 8003044: 77fb strb r3, [r7, #31] + 8003046: e0c2 b.n 80031ce + 8003048: 2310 movs r3, #16 + 800304a: 77fb strb r3, [r7, #31] + 800304c: bf00 nop + 800304e: e0be b.n 80031ce + 8003050: 687b ldr r3, [r7, #4] + 8003052: 681b ldr r3, [r3, #0] + 8003054: 4a4d ldr r2, [pc, #308] ; (800318c ) + 8003056: 4293 cmp r3, r2 + 8003058: d124 bne.n 80030a4 + 800305a: 4b48 ldr r3, [pc, #288] ; (800317c ) + 800305c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8003060: f403 7340 and.w r3, r3, #768 ; 0x300 + 8003064: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 8003068: d012 beq.n 8003090 + 800306a: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 800306e: d802 bhi.n 8003076 + 8003070: 2b00 cmp r3, #0 + 8003072: d007 beq.n 8003084 + 8003074: e012 b.n 800309c + 8003076: f5b3 7f00 cmp.w r3, #512 ; 0x200 + 800307a: d006 beq.n 800308a + 800307c: f5b3 7f40 cmp.w r3, #768 ; 0x300 + 8003080: d009 beq.n 8003096 + 8003082: e00b b.n 800309c + 8003084: 2300 movs r3, #0 + 8003086: 77fb strb r3, [r7, #31] + 8003088: e0a1 b.n 80031ce + 800308a: 2302 movs r3, #2 + 800308c: 77fb strb r3, [r7, #31] + 800308e: e09e b.n 80031ce + 8003090: 2304 movs r3, #4 + 8003092: 77fb strb r3, [r7, #31] + 8003094: e09b b.n 80031ce + 8003096: 2308 movs r3, #8 + 8003098: 77fb strb r3, [r7, #31] + 800309a: e098 b.n 80031ce + 800309c: 2310 movs r3, #16 + 800309e: 77fb strb r3, [r7, #31] + 80030a0: bf00 nop + 80030a2: e094 b.n 80031ce + 80030a4: 687b ldr r3, [r7, #4] + 80030a6: 681b ldr r3, [r3, #0] + 80030a8: 4a39 ldr r2, [pc, #228] ; (8003190 ) + 80030aa: 4293 cmp r3, r2 + 80030ac: d124 bne.n 80030f8 + 80030ae: 4b33 ldr r3, [pc, #204] ; (800317c ) + 80030b0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 80030b4: f403 6340 and.w r3, r3, #3072 ; 0xc00 + 80030b8: f5b3 6f80 cmp.w r3, #1024 ; 0x400 + 80030bc: d012 beq.n 80030e4 + 80030be: f5b3 6f80 cmp.w r3, #1024 ; 0x400 + 80030c2: d802 bhi.n 80030ca + 80030c4: 2b00 cmp r3, #0 + 80030c6: d007 beq.n 80030d8 + 80030c8: e012 b.n 80030f0 + 80030ca: f5b3 6f00 cmp.w r3, #2048 ; 0x800 + 80030ce: d006 beq.n 80030de + 80030d0: f5b3 6f40 cmp.w r3, #3072 ; 0xc00 + 80030d4: d009 beq.n 80030ea + 80030d6: e00b b.n 80030f0 + 80030d8: 2301 movs r3, #1 + 80030da: 77fb strb r3, [r7, #31] + 80030dc: e077 b.n 80031ce + 80030de: 2302 movs r3, #2 + 80030e0: 77fb strb r3, [r7, #31] + 80030e2: e074 b.n 80031ce + 80030e4: 2304 movs r3, #4 + 80030e6: 77fb strb r3, [r7, #31] + 80030e8: e071 b.n 80031ce + 80030ea: 2308 movs r3, #8 + 80030ec: 77fb strb r3, [r7, #31] + 80030ee: e06e b.n 80031ce + 80030f0: 2310 movs r3, #16 + 80030f2: 77fb strb r3, [r7, #31] + 80030f4: bf00 nop + 80030f6: e06a b.n 80031ce + 80030f8: 687b ldr r3, [r7, #4] + 80030fa: 681b ldr r3, [r3, #0] + 80030fc: 4a25 ldr r2, [pc, #148] ; (8003194 ) + 80030fe: 4293 cmp r3, r2 + 8003100: d124 bne.n 800314c + 8003102: 4b1e ldr r3, [pc, #120] ; (800317c ) + 8003104: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8003108: f403 5340 and.w r3, r3, #12288 ; 0x3000 + 800310c: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 + 8003110: d012 beq.n 8003138 + 8003112: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 + 8003116: d802 bhi.n 800311e + 8003118: 2b00 cmp r3, #0 + 800311a: d007 beq.n 800312c + 800311c: e012 b.n 8003144 + 800311e: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 8003122: d006 beq.n 8003132 + 8003124: f5b3 5f40 cmp.w r3, #12288 ; 0x3000 + 8003128: d009 beq.n 800313e + 800312a: e00b b.n 8003144 + 800312c: 2300 movs r3, #0 + 800312e: 77fb strb r3, [r7, #31] + 8003130: e04d b.n 80031ce + 8003132: 2302 movs r3, #2 + 8003134: 77fb strb r3, [r7, #31] + 8003136: e04a b.n 80031ce + 8003138: 2304 movs r3, #4 + 800313a: 77fb strb r3, [r7, #31] + 800313c: e047 b.n 80031ce + 800313e: 2308 movs r3, #8 + 8003140: 77fb strb r3, [r7, #31] + 8003142: e044 b.n 80031ce + 8003144: 2310 movs r3, #16 + 8003146: 77fb strb r3, [r7, #31] + 8003148: bf00 nop + 800314a: e040 b.n 80031ce + 800314c: 687b ldr r3, [r7, #4] + 800314e: 681b ldr r3, [r3, #0] + 8003150: 4a11 ldr r2, [pc, #68] ; (8003198 ) + 8003152: 4293 cmp r3, r2 + 8003154: d139 bne.n 80031ca + 8003156: 4b09 ldr r3, [pc, #36] ; (800317c ) + 8003158: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 800315c: f403 4340 and.w r3, r3, #49152 ; 0xc000 + 8003160: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 + 8003164: d027 beq.n 80031b6 + 8003166: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 + 800316a: d817 bhi.n 800319c + 800316c: 2b00 cmp r3, #0 + 800316e: d01c beq.n 80031aa + 8003170: e027 b.n 80031c2 + 8003172: bf00 nop + 8003174: efff69f3 .word 0xefff69f3 + 8003178: 40011000 .word 0x40011000 + 800317c: 40023800 .word 0x40023800 + 8003180: 40004400 .word 0x40004400 + 8003184: 40004800 .word 0x40004800 + 8003188: 40004c00 .word 0x40004c00 + 800318c: 40005000 .word 0x40005000 + 8003190: 40011400 .word 0x40011400 + 8003194: 40007800 .word 0x40007800 + 8003198: 40007c00 .word 0x40007c00 + 800319c: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 + 80031a0: d006 beq.n 80031b0 + 80031a2: f5b3 4f40 cmp.w r3, #49152 ; 0xc000 + 80031a6: d009 beq.n 80031bc + 80031a8: e00b b.n 80031c2 + 80031aa: 2300 movs r3, #0 + 80031ac: 77fb strb r3, [r7, #31] + 80031ae: e00e b.n 80031ce + 80031b0: 2302 movs r3, #2 + 80031b2: 77fb strb r3, [r7, #31] + 80031b4: e00b b.n 80031ce + 80031b6: 2304 movs r3, #4 + 80031b8: 77fb strb r3, [r7, #31] + 80031ba: e008 b.n 80031ce + 80031bc: 2308 movs r3, #8 + 80031be: 77fb strb r3, [r7, #31] + 80031c0: e005 b.n 80031ce + 80031c2: 2310 movs r3, #16 + 80031c4: 77fb strb r3, [r7, #31] + 80031c6: bf00 nop + 80031c8: e001 b.n 80031ce + 80031ca: 2310 movs r3, #16 + 80031cc: 77fb strb r3, [r7, #31] if (huart->Init.OverSampling == UART_OVERSAMPLING_8) - 80031f6: 687b ldr r3, [r7, #4] - 80031f8: 69db ldr r3, [r3, #28] - 80031fa: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 - 80031fe: d17c bne.n 80032fa + 80031ce: 687b ldr r3, [r7, #4] + 80031d0: 69db ldr r3, [r3, #28] + 80031d2: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 + 80031d6: d17c bne.n 80032d2 { switch (clocksource) - 8003200: 7ffb ldrb r3, [r7, #31] - 8003202: 2b08 cmp r3, #8 - 8003204: d859 bhi.n 80032ba - 8003206: a201 add r2, pc, #4 ; (adr r2, 800320c ) - 8003208: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800320c: 08003231 .word 0x08003231 - 8003210: 0800324f .word 0x0800324f - 8003214: 0800326d .word 0x0800326d - 8003218: 080032bb .word 0x080032bb - 800321c: 08003285 .word 0x08003285 - 8003220: 080032bb .word 0x080032bb - 8003224: 080032bb .word 0x080032bb - 8003228: 080032bb .word 0x080032bb - 800322c: 080032a3 .word 0x080032a3 + 80031d8: 7ffb ldrb r3, [r7, #31] + 80031da: 2b08 cmp r3, #8 + 80031dc: d859 bhi.n 8003292 + 80031de: a201 add r2, pc, #4 ; (adr r2, 80031e4 ) + 80031e0: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80031e4: 08003209 .word 0x08003209 + 80031e8: 08003227 .word 0x08003227 + 80031ec: 08003245 .word 0x08003245 + 80031f0: 08003293 .word 0x08003293 + 80031f4: 0800325d .word 0x0800325d + 80031f8: 08003293 .word 0x08003293 + 80031fc: 08003293 .word 0x08003293 + 8003200: 08003293 .word 0x08003293 + 8003204: 0800327b .word 0x0800327b { case UART_CLOCKSOURCE_PCLK1: usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate)); - 8003230: f7fe fcaa bl 8001b88 - 8003234: 4603 mov r3, r0 - 8003236: 005a lsls r2, r3, #1 - 8003238: 687b ldr r3, [r7, #4] - 800323a: 685b ldr r3, [r3, #4] - 800323c: 085b lsrs r3, r3, #1 - 800323e: 441a add r2, r3 - 8003240: 687b ldr r3, [r7, #4] - 8003242: 685b ldr r3, [r3, #4] - 8003244: fbb2 f3f3 udiv r3, r2, r3 - 8003248: b29b uxth r3, r3 - 800324a: 61bb str r3, [r7, #24] + 8003208: f7fe fcbe bl 8001b88 + 800320c: 4603 mov r3, r0 + 800320e: 005a lsls r2, r3, #1 + 8003210: 687b ldr r3, [r7, #4] + 8003212: 685b ldr r3, [r3, #4] + 8003214: 085b lsrs r3, r3, #1 + 8003216: 441a add r2, r3 + 8003218: 687b ldr r3, [r7, #4] + 800321a: 685b ldr r3, [r3, #4] + 800321c: fbb2 f3f3 udiv r3, r2, r3 + 8003220: b29b uxth r3, r3 + 8003222: 61bb str r3, [r7, #24] break; - 800324c: e038 b.n 80032c0 + 8003224: e038 b.n 8003298 case UART_CLOCKSOURCE_PCLK2: usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate)); - 800324e: f7fe fcaf bl 8001bb0 - 8003252: 4603 mov r3, r0 - 8003254: 005a lsls r2, r3, #1 - 8003256: 687b ldr r3, [r7, #4] - 8003258: 685b ldr r3, [r3, #4] - 800325a: 085b lsrs r3, r3, #1 - 800325c: 441a add r2, r3 - 800325e: 687b ldr r3, [r7, #4] - 8003260: 685b ldr r3, [r3, #4] - 8003262: fbb2 f3f3 udiv r3, r2, r3 - 8003266: b29b uxth r3, r3 - 8003268: 61bb str r3, [r7, #24] + 8003226: f7fe fcc3 bl 8001bb0 + 800322a: 4603 mov r3, r0 + 800322c: 005a lsls r2, r3, #1 + 800322e: 687b ldr r3, [r7, #4] + 8003230: 685b ldr r3, [r3, #4] + 8003232: 085b lsrs r3, r3, #1 + 8003234: 441a add r2, r3 + 8003236: 687b ldr r3, [r7, #4] + 8003238: 685b ldr r3, [r3, #4] + 800323a: fbb2 f3f3 udiv r3, r2, r3 + 800323e: b29b uxth r3, r3 + 8003240: 61bb str r3, [r7, #24] break; - 800326a: e029 b.n 80032c0 + 8003242: e029 b.n 8003298 case UART_CLOCKSOURCE_HSI: usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HSI_VALUE, huart->Init.BaudRate)); - 800326c: 687b ldr r3, [r7, #4] - 800326e: 685b ldr r3, [r3, #4] - 8003270: 085a lsrs r2, r3, #1 - 8003272: 4b5d ldr r3, [pc, #372] ; (80033e8 ) - 8003274: 4413 add r3, r2 - 8003276: 687a ldr r2, [r7, #4] - 8003278: 6852 ldr r2, [r2, #4] - 800327a: fbb3 f3f2 udiv r3, r3, r2 - 800327e: b29b uxth r3, r3 - 8003280: 61bb str r3, [r7, #24] + 8003244: 687b ldr r3, [r7, #4] + 8003246: 685b ldr r3, [r3, #4] + 8003248: 085a lsrs r2, r3, #1 + 800324a: 4b5d ldr r3, [pc, #372] ; (80033c0 ) + 800324c: 4413 add r3, r2 + 800324e: 687a ldr r2, [r7, #4] + 8003250: 6852 ldr r2, [r2, #4] + 8003252: fbb3 f3f2 udiv r3, r3, r2 + 8003256: b29b uxth r3, r3 + 8003258: 61bb str r3, [r7, #24] break; - 8003282: e01d b.n 80032c0 + 800325a: e01d b.n 8003298 case UART_CLOCKSOURCE_SYSCLK: usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HAL_RCC_GetSysClockFreq(), huart->Init.BaudRate)); - 8003284: f7fe fbc2 bl 8001a0c - 8003288: 4603 mov r3, r0 - 800328a: 005a lsls r2, r3, #1 - 800328c: 687b ldr r3, [r7, #4] - 800328e: 685b ldr r3, [r3, #4] - 8003290: 085b lsrs r3, r3, #1 - 8003292: 441a add r2, r3 - 8003294: 687b ldr r3, [r7, #4] - 8003296: 685b ldr r3, [r3, #4] - 8003298: fbb2 f3f3 udiv r3, r2, r3 - 800329c: b29b uxth r3, r3 - 800329e: 61bb str r3, [r7, #24] + 800325c: f7fe fbd6 bl 8001a0c + 8003260: 4603 mov r3, r0 + 8003262: 005a lsls r2, r3, #1 + 8003264: 687b ldr r3, [r7, #4] + 8003266: 685b ldr r3, [r3, #4] + 8003268: 085b lsrs r3, r3, #1 + 800326a: 441a add r2, r3 + 800326c: 687b ldr r3, [r7, #4] + 800326e: 685b ldr r3, [r3, #4] + 8003270: fbb2 f3f3 udiv r3, r2, r3 + 8003274: b29b uxth r3, r3 + 8003276: 61bb str r3, [r7, #24] break; - 80032a0: e00e b.n 80032c0 + 8003278: e00e b.n 8003298 case UART_CLOCKSOURCE_LSE: usartdiv = (uint16_t)(UART_DIV_SAMPLING8(LSE_VALUE, huart->Init.BaudRate)); - 80032a2: 687b ldr r3, [r7, #4] - 80032a4: 685b ldr r3, [r3, #4] - 80032a6: 085b lsrs r3, r3, #1 - 80032a8: f503 3280 add.w r2, r3, #65536 ; 0x10000 - 80032ac: 687b ldr r3, [r7, #4] - 80032ae: 685b ldr r3, [r3, #4] - 80032b0: fbb2 f3f3 udiv r3, r2, r3 - 80032b4: b29b uxth r3, r3 - 80032b6: 61bb str r3, [r7, #24] + 800327a: 687b ldr r3, [r7, #4] + 800327c: 685b ldr r3, [r3, #4] + 800327e: 085b lsrs r3, r3, #1 + 8003280: f503 3280 add.w r2, r3, #65536 ; 0x10000 + 8003284: 687b ldr r3, [r7, #4] + 8003286: 685b ldr r3, [r3, #4] + 8003288: fbb2 f3f3 udiv r3, r2, r3 + 800328c: b29b uxth r3, r3 + 800328e: 61bb str r3, [r7, #24] break; - 80032b8: e002 b.n 80032c0 + 8003290: e002 b.n 8003298 case UART_CLOCKSOURCE_UNDEFINED: default: ret = HAL_ERROR; - 80032ba: 2301 movs r3, #1 - 80032bc: 75fb strb r3, [r7, #23] + 8003292: 2301 movs r3, #1 + 8003294: 75fb strb r3, [r7, #23] break; - 80032be: bf00 nop + 8003296: bf00 nop } /* USARTDIV must be greater than or equal to 0d16 */ if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) - 80032c0: 69bb ldr r3, [r7, #24] - 80032c2: 2b0f cmp r3, #15 - 80032c4: d916 bls.n 80032f4 - 80032c6: 69bb ldr r3, [r7, #24] - 80032c8: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 80032cc: d212 bcs.n 80032f4 + 8003298: 69bb ldr r3, [r7, #24] + 800329a: 2b0f cmp r3, #15 + 800329c: d916 bls.n 80032cc + 800329e: 69bb ldr r3, [r7, #24] + 80032a0: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 80032a4: d212 bcs.n 80032cc { brrtemp = (uint16_t)(usartdiv & 0xFFF0U); - 80032ce: 69bb ldr r3, [r7, #24] - 80032d0: b29b uxth r3, r3 - 80032d2: f023 030f bic.w r3, r3, #15 - 80032d6: 81fb strh r3, [r7, #14] + 80032a6: 69bb ldr r3, [r7, #24] + 80032a8: b29b uxth r3, r3 + 80032aa: f023 030f bic.w r3, r3, #15 + 80032ae: 81fb strh r3, [r7, #14] brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); - 80032d8: 69bb ldr r3, [r7, #24] - 80032da: 085b lsrs r3, r3, #1 - 80032dc: b29b uxth r3, r3 - 80032de: f003 0307 and.w r3, r3, #7 - 80032e2: b29a uxth r2, r3 - 80032e4: 89fb ldrh r3, [r7, #14] - 80032e6: 4313 orrs r3, r2 - 80032e8: 81fb strh r3, [r7, #14] + 80032b0: 69bb ldr r3, [r7, #24] + 80032b2: 085b lsrs r3, r3, #1 + 80032b4: b29b uxth r3, r3 + 80032b6: f003 0307 and.w r3, r3, #7 + 80032ba: b29a uxth r2, r3 + 80032bc: 89fb ldrh r3, [r7, #14] + 80032be: 4313 orrs r3, r2 + 80032c0: 81fb strh r3, [r7, #14] huart->Instance->BRR = brrtemp; - 80032ea: 687b ldr r3, [r7, #4] - 80032ec: 681b ldr r3, [r3, #0] - 80032ee: 89fa ldrh r2, [r7, #14] - 80032f0: 60da str r2, [r3, #12] - 80032f2: e06e b.n 80033d2 + 80032c2: 687b ldr r3, [r7, #4] + 80032c4: 681b ldr r3, [r3, #0] + 80032c6: 89fa ldrh r2, [r7, #14] + 80032c8: 60da str r2, [r3, #12] + 80032ca: e06e b.n 80033aa } else { ret = HAL_ERROR; - 80032f4: 2301 movs r3, #1 - 80032f6: 75fb strb r3, [r7, #23] - 80032f8: e06b b.n 80033d2 + 80032cc: 2301 movs r3, #1 + 80032ce: 75fb strb r3, [r7, #23] + 80032d0: e06b b.n 80033aa } } else { switch (clocksource) - 80032fa: 7ffb ldrb r3, [r7, #31] - 80032fc: 2b08 cmp r3, #8 - 80032fe: d857 bhi.n 80033b0 - 8003300: a201 add r2, pc, #4 ; (adr r2, 8003308 ) - 8003302: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8003306: bf00 nop - 8003308: 0800332d .word 0x0800332d - 800330c: 08003349 .word 0x08003349 - 8003310: 08003365 .word 0x08003365 - 8003314: 080033b1 .word 0x080033b1 - 8003318: 0800337d .word 0x0800337d - 800331c: 080033b1 .word 0x080033b1 - 8003320: 080033b1 .word 0x080033b1 - 8003324: 080033b1 .word 0x080033b1 - 8003328: 08003399 .word 0x08003399 + 80032d2: 7ffb ldrb r3, [r7, #31] + 80032d4: 2b08 cmp r3, #8 + 80032d6: d857 bhi.n 8003388 + 80032d8: a201 add r2, pc, #4 ; (adr r2, 80032e0 ) + 80032da: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80032de: bf00 nop + 80032e0: 08003305 .word 0x08003305 + 80032e4: 08003321 .word 0x08003321 + 80032e8: 0800333d .word 0x0800333d + 80032ec: 08003389 .word 0x08003389 + 80032f0: 08003355 .word 0x08003355 + 80032f4: 08003389 .word 0x08003389 + 80032f8: 08003389 .word 0x08003389 + 80032fc: 08003389 .word 0x08003389 + 8003300: 08003371 .word 0x08003371 { case UART_CLOCKSOURCE_PCLK1: usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate)); - 800332c: f7fe fc2c bl 8001b88 - 8003330: 4602 mov r2, r0 - 8003332: 687b ldr r3, [r7, #4] - 8003334: 685b ldr r3, [r3, #4] - 8003336: 085b lsrs r3, r3, #1 - 8003338: 441a add r2, r3 - 800333a: 687b ldr r3, [r7, #4] - 800333c: 685b ldr r3, [r3, #4] - 800333e: fbb2 f3f3 udiv r3, r2, r3 - 8003342: b29b uxth r3, r3 - 8003344: 61bb str r3, [r7, #24] + 8003304: f7fe fc40 bl 8001b88 + 8003308: 4602 mov r2, r0 + 800330a: 687b ldr r3, [r7, #4] + 800330c: 685b ldr r3, [r3, #4] + 800330e: 085b lsrs r3, r3, #1 + 8003310: 441a add r2, r3 + 8003312: 687b ldr r3, [r7, #4] + 8003314: 685b ldr r3, [r3, #4] + 8003316: fbb2 f3f3 udiv r3, r2, r3 + 800331a: b29b uxth r3, r3 + 800331c: 61bb str r3, [r7, #24] break; - 8003346: e036 b.n 80033b6 + 800331e: e036 b.n 800338e case UART_CLOCKSOURCE_PCLK2: usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate)); - 8003348: f7fe fc32 bl 8001bb0 - 800334c: 4602 mov r2, r0 - 800334e: 687b ldr r3, [r7, #4] - 8003350: 685b ldr r3, [r3, #4] - 8003352: 085b lsrs r3, r3, #1 - 8003354: 441a add r2, r3 - 8003356: 687b ldr r3, [r7, #4] - 8003358: 685b ldr r3, [r3, #4] - 800335a: fbb2 f3f3 udiv r3, r2, r3 - 800335e: b29b uxth r3, r3 - 8003360: 61bb str r3, [r7, #24] + 8003320: f7fe fc46 bl 8001bb0 + 8003324: 4602 mov r2, r0 + 8003326: 687b ldr r3, [r7, #4] + 8003328: 685b ldr r3, [r3, #4] + 800332a: 085b lsrs r3, r3, #1 + 800332c: 441a add r2, r3 + 800332e: 687b ldr r3, [r7, #4] + 8003330: 685b ldr r3, [r3, #4] + 8003332: fbb2 f3f3 udiv r3, r2, r3 + 8003336: b29b uxth r3, r3 + 8003338: 61bb str r3, [r7, #24] break; - 8003362: e028 b.n 80033b6 + 800333a: e028 b.n 800338e case UART_CLOCKSOURCE_HSI: usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HSI_VALUE, huart->Init.BaudRate)); - 8003364: 687b ldr r3, [r7, #4] - 8003366: 685b ldr r3, [r3, #4] - 8003368: 085a lsrs r2, r3, #1 - 800336a: 4b20 ldr r3, [pc, #128] ; (80033ec ) - 800336c: 4413 add r3, r2 - 800336e: 687a ldr r2, [r7, #4] - 8003370: 6852 ldr r2, [r2, #4] - 8003372: fbb3 f3f2 udiv r3, r3, r2 - 8003376: b29b uxth r3, r3 - 8003378: 61bb str r3, [r7, #24] + 800333c: 687b ldr r3, [r7, #4] + 800333e: 685b ldr r3, [r3, #4] + 8003340: 085a lsrs r2, r3, #1 + 8003342: 4b20 ldr r3, [pc, #128] ; (80033c4 ) + 8003344: 4413 add r3, r2 + 8003346: 687a ldr r2, [r7, #4] + 8003348: 6852 ldr r2, [r2, #4] + 800334a: fbb3 f3f2 udiv r3, r3, r2 + 800334e: b29b uxth r3, r3 + 8003350: 61bb str r3, [r7, #24] break; - 800337a: e01c b.n 80033b6 + 8003352: e01c b.n 800338e case UART_CLOCKSOURCE_SYSCLK: usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetSysClockFreq(), huart->Init.BaudRate)); - 800337c: f7fe fb46 bl 8001a0c - 8003380: 4602 mov r2, r0 - 8003382: 687b ldr r3, [r7, #4] - 8003384: 685b ldr r3, [r3, #4] - 8003386: 085b lsrs r3, r3, #1 - 8003388: 441a add r2, r3 - 800338a: 687b ldr r3, [r7, #4] - 800338c: 685b ldr r3, [r3, #4] - 800338e: fbb2 f3f3 udiv r3, r2, r3 - 8003392: b29b uxth r3, r3 - 8003394: 61bb str r3, [r7, #24] + 8003354: f7fe fb5a bl 8001a0c + 8003358: 4602 mov r2, r0 + 800335a: 687b ldr r3, [r7, #4] + 800335c: 685b ldr r3, [r3, #4] + 800335e: 085b lsrs r3, r3, #1 + 8003360: 441a add r2, r3 + 8003362: 687b ldr r3, [r7, #4] + 8003364: 685b ldr r3, [r3, #4] + 8003366: fbb2 f3f3 udiv r3, r2, r3 + 800336a: b29b uxth r3, r3 + 800336c: 61bb str r3, [r7, #24] break; - 8003396: e00e b.n 80033b6 + 800336e: e00e b.n 800338e case UART_CLOCKSOURCE_LSE: usartdiv = (uint16_t)(UART_DIV_SAMPLING16(LSE_VALUE, huart->Init.BaudRate)); - 8003398: 687b ldr r3, [r7, #4] - 800339a: 685b ldr r3, [r3, #4] - 800339c: 085b lsrs r3, r3, #1 - 800339e: f503 4200 add.w r2, r3, #32768 ; 0x8000 - 80033a2: 687b ldr r3, [r7, #4] - 80033a4: 685b ldr r3, [r3, #4] - 80033a6: fbb2 f3f3 udiv r3, r2, r3 - 80033aa: b29b uxth r3, r3 - 80033ac: 61bb str r3, [r7, #24] + 8003370: 687b ldr r3, [r7, #4] + 8003372: 685b ldr r3, [r3, #4] + 8003374: 085b lsrs r3, r3, #1 + 8003376: f503 4200 add.w r2, r3, #32768 ; 0x8000 + 800337a: 687b ldr r3, [r7, #4] + 800337c: 685b ldr r3, [r3, #4] + 800337e: fbb2 f3f3 udiv r3, r2, r3 + 8003382: b29b uxth r3, r3 + 8003384: 61bb str r3, [r7, #24] break; - 80033ae: e002 b.n 80033b6 + 8003386: e002 b.n 800338e case UART_CLOCKSOURCE_UNDEFINED: default: ret = HAL_ERROR; - 80033b0: 2301 movs r3, #1 - 80033b2: 75fb strb r3, [r7, #23] + 8003388: 2301 movs r3, #1 + 800338a: 75fb strb r3, [r7, #23] break; - 80033b4: bf00 nop + 800338c: bf00 nop } /* USARTDIV must be greater than or equal to 0d16 */ if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) - 80033b6: 69bb ldr r3, [r7, #24] - 80033b8: 2b0f cmp r3, #15 - 80033ba: d908 bls.n 80033ce - 80033bc: 69bb ldr r3, [r7, #24] - 80033be: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 80033c2: d204 bcs.n 80033ce + 800338e: 69bb ldr r3, [r7, #24] + 8003390: 2b0f cmp r3, #15 + 8003392: d908 bls.n 80033a6 + 8003394: 69bb ldr r3, [r7, #24] + 8003396: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 800339a: d204 bcs.n 80033a6 { huart->Instance->BRR = usartdiv; - 80033c4: 687b ldr r3, [r7, #4] - 80033c6: 681b ldr r3, [r3, #0] - 80033c8: 69ba ldr r2, [r7, #24] - 80033ca: 60da str r2, [r3, #12] - 80033cc: e001 b.n 80033d2 + 800339c: 687b ldr r3, [r7, #4] + 800339e: 681b ldr r3, [r3, #0] + 80033a0: 69ba ldr r2, [r7, #24] + 80033a2: 60da str r2, [r3, #12] + 80033a4: e001 b.n 80033aa } else { ret = HAL_ERROR; - 80033ce: 2301 movs r3, #1 - 80033d0: 75fb strb r3, [r7, #23] + 80033a6: 2301 movs r3, #1 + 80033a8: 75fb strb r3, [r7, #23] } } /* Clear ISR function pointers */ huart->RxISR = NULL; - 80033d2: 687b ldr r3, [r7, #4] - 80033d4: 2200 movs r2, #0 - 80033d6: 661a str r2, [r3, #96] ; 0x60 + 80033aa: 687b ldr r3, [r7, #4] + 80033ac: 2200 movs r2, #0 + 80033ae: 661a str r2, [r3, #96] ; 0x60 huart->TxISR = NULL; - 80033d8: 687b ldr r3, [r7, #4] - 80033da: 2200 movs r2, #0 - 80033dc: 665a str r2, [r3, #100] ; 0x64 + 80033b0: 687b ldr r3, [r7, #4] + 80033b2: 2200 movs r2, #0 + 80033b4: 665a str r2, [r3, #100] ; 0x64 return ret; - 80033de: 7dfb ldrb r3, [r7, #23] + 80033b6: 7dfb ldrb r3, [r7, #23] } - 80033e0: 4618 mov r0, r3 - 80033e2: 3720 adds r7, #32 - 80033e4: 46bd mov sp, r7 - 80033e6: bd80 pop {r7, pc} - 80033e8: 01e84800 .word 0x01e84800 - 80033ec: 00f42400 .word 0x00f42400 - -080033f0 : + 80033b8: 4618 mov r0, r3 + 80033ba: 3720 adds r7, #32 + 80033bc: 46bd mov sp, r7 + 80033be: bd80 pop {r7, pc} + 80033c0: 01e84800 .word 0x01e84800 + 80033c4: 00f42400 .word 0x00f42400 + +080033c8 : * @brief Configure the UART peripheral advanced features. * @param huart UART handle. * @retval None */ void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) { - 80033f0: b480 push {r7} - 80033f2: b083 sub sp, #12 - 80033f4: af00 add r7, sp, #0 - 80033f6: 6078 str r0, [r7, #4] + 80033c8: b480 push {r7} + 80033ca: b083 sub sp, #12 + 80033cc: af00 add r7, sp, #0 + 80033ce: 6078 str r0, [r7, #4] /* Check whether the set of advanced features to configure is properly set */ assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); /* if required, configure TX pin active level inversion */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) - 80033f8: 687b ldr r3, [r7, #4] - 80033fa: 6a5b ldr r3, [r3, #36] ; 0x24 - 80033fc: f003 0301 and.w r3, r3, #1 - 8003400: 2b00 cmp r3, #0 - 8003402: d00a beq.n 800341a + 80033d0: 687b ldr r3, [r7, #4] + 80033d2: 6a5b ldr r3, [r3, #36] ; 0x24 + 80033d4: f003 0301 and.w r3, r3, #1 + 80033d8: 2b00 cmp r3, #0 + 80033da: d00a beq.n 80033f2 { assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); - 8003404: 687b ldr r3, [r7, #4] - 8003406: 681b ldr r3, [r3, #0] - 8003408: 685b ldr r3, [r3, #4] - 800340a: f423 3100 bic.w r1, r3, #131072 ; 0x20000 - 800340e: 687b ldr r3, [r7, #4] - 8003410: 6a9a ldr r2, [r3, #40] ; 0x28 - 8003412: 687b ldr r3, [r7, #4] - 8003414: 681b ldr r3, [r3, #0] - 8003416: 430a orrs r2, r1 - 8003418: 605a str r2, [r3, #4] + 80033dc: 687b ldr r3, [r7, #4] + 80033de: 681b ldr r3, [r3, #0] + 80033e0: 685b ldr r3, [r3, #4] + 80033e2: f423 3100 bic.w r1, r3, #131072 ; 0x20000 + 80033e6: 687b ldr r3, [r7, #4] + 80033e8: 6a9a ldr r2, [r3, #40] ; 0x28 + 80033ea: 687b ldr r3, [r7, #4] + 80033ec: 681b ldr r3, [r3, #0] + 80033ee: 430a orrs r2, r1 + 80033f0: 605a str r2, [r3, #4] } /* if required, configure RX pin active level inversion */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) - 800341a: 687b ldr r3, [r7, #4] - 800341c: 6a5b ldr r3, [r3, #36] ; 0x24 - 800341e: f003 0302 and.w r3, r3, #2 - 8003422: 2b00 cmp r3, #0 - 8003424: d00a beq.n 800343c + 80033f2: 687b ldr r3, [r7, #4] + 80033f4: 6a5b ldr r3, [r3, #36] ; 0x24 + 80033f6: f003 0302 and.w r3, r3, #2 + 80033fa: 2b00 cmp r3, #0 + 80033fc: d00a beq.n 8003414 { assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); - 8003426: 687b ldr r3, [r7, #4] - 8003428: 681b ldr r3, [r3, #0] - 800342a: 685b ldr r3, [r3, #4] - 800342c: f423 3180 bic.w r1, r3, #65536 ; 0x10000 - 8003430: 687b ldr r3, [r7, #4] - 8003432: 6ada ldr r2, [r3, #44] ; 0x2c - 8003434: 687b ldr r3, [r7, #4] - 8003436: 681b ldr r3, [r3, #0] - 8003438: 430a orrs r2, r1 - 800343a: 605a str r2, [r3, #4] + 80033fe: 687b ldr r3, [r7, #4] + 8003400: 681b ldr r3, [r3, #0] + 8003402: 685b ldr r3, [r3, #4] + 8003404: f423 3180 bic.w r1, r3, #65536 ; 0x10000 + 8003408: 687b ldr r3, [r7, #4] + 800340a: 6ada ldr r2, [r3, #44] ; 0x2c + 800340c: 687b ldr r3, [r7, #4] + 800340e: 681b ldr r3, [r3, #0] + 8003410: 430a orrs r2, r1 + 8003412: 605a str r2, [r3, #4] } /* if required, configure data inversion */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) - 800343c: 687b ldr r3, [r7, #4] - 800343e: 6a5b ldr r3, [r3, #36] ; 0x24 - 8003440: f003 0304 and.w r3, r3, #4 - 8003444: 2b00 cmp r3, #0 - 8003446: d00a beq.n 800345e + 8003414: 687b ldr r3, [r7, #4] + 8003416: 6a5b ldr r3, [r3, #36] ; 0x24 + 8003418: f003 0304 and.w r3, r3, #4 + 800341c: 2b00 cmp r3, #0 + 800341e: d00a beq.n 8003436 { assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); - 8003448: 687b ldr r3, [r7, #4] - 800344a: 681b ldr r3, [r3, #0] - 800344c: 685b ldr r3, [r3, #4] - 800344e: f423 2180 bic.w r1, r3, #262144 ; 0x40000 - 8003452: 687b ldr r3, [r7, #4] - 8003454: 6b1a ldr r2, [r3, #48] ; 0x30 - 8003456: 687b ldr r3, [r7, #4] - 8003458: 681b ldr r3, [r3, #0] - 800345a: 430a orrs r2, r1 - 800345c: 605a str r2, [r3, #4] + 8003420: 687b ldr r3, [r7, #4] + 8003422: 681b ldr r3, [r3, #0] + 8003424: 685b ldr r3, [r3, #4] + 8003426: f423 2180 bic.w r1, r3, #262144 ; 0x40000 + 800342a: 687b ldr r3, [r7, #4] + 800342c: 6b1a ldr r2, [r3, #48] ; 0x30 + 800342e: 687b ldr r3, [r7, #4] + 8003430: 681b ldr r3, [r3, #0] + 8003432: 430a orrs r2, r1 + 8003434: 605a str r2, [r3, #4] } /* if required, configure RX/TX pins swap */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) - 800345e: 687b ldr r3, [r7, #4] - 8003460: 6a5b ldr r3, [r3, #36] ; 0x24 - 8003462: f003 0308 and.w r3, r3, #8 - 8003466: 2b00 cmp r3, #0 - 8003468: d00a beq.n 8003480 + 8003436: 687b ldr r3, [r7, #4] + 8003438: 6a5b ldr r3, [r3, #36] ; 0x24 + 800343a: f003 0308 and.w r3, r3, #8 + 800343e: 2b00 cmp r3, #0 + 8003440: d00a beq.n 8003458 { assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); - 800346a: 687b ldr r3, [r7, #4] - 800346c: 681b ldr r3, [r3, #0] - 800346e: 685b ldr r3, [r3, #4] - 8003470: f423 4100 bic.w r1, r3, #32768 ; 0x8000 - 8003474: 687b ldr r3, [r7, #4] - 8003476: 6b5a ldr r2, [r3, #52] ; 0x34 - 8003478: 687b ldr r3, [r7, #4] - 800347a: 681b ldr r3, [r3, #0] - 800347c: 430a orrs r2, r1 - 800347e: 605a str r2, [r3, #4] + 8003442: 687b ldr r3, [r7, #4] + 8003444: 681b ldr r3, [r3, #0] + 8003446: 685b ldr r3, [r3, #4] + 8003448: f423 4100 bic.w r1, r3, #32768 ; 0x8000 + 800344c: 687b ldr r3, [r7, #4] + 800344e: 6b5a ldr r2, [r3, #52] ; 0x34 + 8003450: 687b ldr r3, [r7, #4] + 8003452: 681b ldr r3, [r3, #0] + 8003454: 430a orrs r2, r1 + 8003456: 605a str r2, [r3, #4] } /* if required, configure RX overrun detection disabling */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) - 8003480: 687b ldr r3, [r7, #4] - 8003482: 6a5b ldr r3, [r3, #36] ; 0x24 - 8003484: f003 0310 and.w r3, r3, #16 - 8003488: 2b00 cmp r3, #0 - 800348a: d00a beq.n 80034a2 + 8003458: 687b ldr r3, [r7, #4] + 800345a: 6a5b ldr r3, [r3, #36] ; 0x24 + 800345c: f003 0310 and.w r3, r3, #16 + 8003460: 2b00 cmp r3, #0 + 8003462: d00a beq.n 800347a { assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); - 800348c: 687b ldr r3, [r7, #4] - 800348e: 681b ldr r3, [r3, #0] - 8003490: 689b ldr r3, [r3, #8] - 8003492: f423 5180 bic.w r1, r3, #4096 ; 0x1000 - 8003496: 687b ldr r3, [r7, #4] - 8003498: 6b9a ldr r2, [r3, #56] ; 0x38 - 800349a: 687b ldr r3, [r7, #4] - 800349c: 681b ldr r3, [r3, #0] - 800349e: 430a orrs r2, r1 - 80034a0: 609a str r2, [r3, #8] + 8003464: 687b ldr r3, [r7, #4] + 8003466: 681b ldr r3, [r3, #0] + 8003468: 689b ldr r3, [r3, #8] + 800346a: f423 5180 bic.w r1, r3, #4096 ; 0x1000 + 800346e: 687b ldr r3, [r7, #4] + 8003470: 6b9a ldr r2, [r3, #56] ; 0x38 + 8003472: 687b ldr r3, [r7, #4] + 8003474: 681b ldr r3, [r3, #0] + 8003476: 430a orrs r2, r1 + 8003478: 609a str r2, [r3, #8] } /* if required, configure DMA disabling on reception error */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) - 80034a2: 687b ldr r3, [r7, #4] - 80034a4: 6a5b ldr r3, [r3, #36] ; 0x24 - 80034a6: f003 0320 and.w r3, r3, #32 - 80034aa: 2b00 cmp r3, #0 - 80034ac: d00a beq.n 80034c4 + 800347a: 687b ldr r3, [r7, #4] + 800347c: 6a5b ldr r3, [r3, #36] ; 0x24 + 800347e: f003 0320 and.w r3, r3, #32 + 8003482: 2b00 cmp r3, #0 + 8003484: d00a beq.n 800349c { assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); - 80034ae: 687b ldr r3, [r7, #4] - 80034b0: 681b ldr r3, [r3, #0] - 80034b2: 689b ldr r3, [r3, #8] - 80034b4: f423 5100 bic.w r1, r3, #8192 ; 0x2000 - 80034b8: 687b ldr r3, [r7, #4] - 80034ba: 6bda ldr r2, [r3, #60] ; 0x3c - 80034bc: 687b ldr r3, [r7, #4] - 80034be: 681b ldr r3, [r3, #0] - 80034c0: 430a orrs r2, r1 - 80034c2: 609a str r2, [r3, #8] + 8003486: 687b ldr r3, [r7, #4] + 8003488: 681b ldr r3, [r3, #0] + 800348a: 689b ldr r3, [r3, #8] + 800348c: f423 5100 bic.w r1, r3, #8192 ; 0x2000 + 8003490: 687b ldr r3, [r7, #4] + 8003492: 6bda ldr r2, [r3, #60] ; 0x3c + 8003494: 687b ldr r3, [r7, #4] + 8003496: 681b ldr r3, [r3, #0] + 8003498: 430a orrs r2, r1 + 800349a: 609a str r2, [r3, #8] } /* if required, configure auto Baud rate detection scheme */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) - 80034c4: 687b ldr r3, [r7, #4] - 80034c6: 6a5b ldr r3, [r3, #36] ; 0x24 - 80034c8: f003 0340 and.w r3, r3, #64 ; 0x40 - 80034cc: 2b00 cmp r3, #0 - 80034ce: d01a beq.n 8003506 + 800349c: 687b ldr r3, [r7, #4] + 800349e: 6a5b ldr r3, [r3, #36] ; 0x24 + 80034a0: f003 0340 and.w r3, r3, #64 ; 0x40 + 80034a4: 2b00 cmp r3, #0 + 80034a6: d01a beq.n 80034de { assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); - 80034d0: 687b ldr r3, [r7, #4] - 80034d2: 681b ldr r3, [r3, #0] - 80034d4: 685b ldr r3, [r3, #4] - 80034d6: f423 1180 bic.w r1, r3, #1048576 ; 0x100000 - 80034da: 687b ldr r3, [r7, #4] - 80034dc: 6c1a ldr r2, [r3, #64] ; 0x40 - 80034de: 687b ldr r3, [r7, #4] - 80034e0: 681b ldr r3, [r3, #0] - 80034e2: 430a orrs r2, r1 - 80034e4: 605a str r2, [r3, #4] + 80034a8: 687b ldr r3, [r7, #4] + 80034aa: 681b ldr r3, [r3, #0] + 80034ac: 685b ldr r3, [r3, #4] + 80034ae: f423 1180 bic.w r1, r3, #1048576 ; 0x100000 + 80034b2: 687b ldr r3, [r7, #4] + 80034b4: 6c1a ldr r2, [r3, #64] ; 0x40 + 80034b6: 687b ldr r3, [r7, #4] + 80034b8: 681b ldr r3, [r3, #0] + 80034ba: 430a orrs r2, r1 + 80034bc: 605a str r2, [r3, #4] /* set auto Baudrate detection parameters if detection is enabled */ if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) - 80034e6: 687b ldr r3, [r7, #4] - 80034e8: 6c1b ldr r3, [r3, #64] ; 0x40 - 80034ea: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 - 80034ee: d10a bne.n 8003506 + 80034be: 687b ldr r3, [r7, #4] + 80034c0: 6c1b ldr r3, [r3, #64] ; 0x40 + 80034c2: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 + 80034c6: d10a bne.n 80034de { assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); - 80034f0: 687b ldr r3, [r7, #4] - 80034f2: 681b ldr r3, [r3, #0] - 80034f4: 685b ldr r3, [r3, #4] - 80034f6: f423 01c0 bic.w r1, r3, #6291456 ; 0x600000 - 80034fa: 687b ldr r3, [r7, #4] - 80034fc: 6c5a ldr r2, [r3, #68] ; 0x44 - 80034fe: 687b ldr r3, [r7, #4] - 8003500: 681b ldr r3, [r3, #0] - 8003502: 430a orrs r2, r1 - 8003504: 605a str r2, [r3, #4] + 80034c8: 687b ldr r3, [r7, #4] + 80034ca: 681b ldr r3, [r3, #0] + 80034cc: 685b ldr r3, [r3, #4] + 80034ce: f423 01c0 bic.w r1, r3, #6291456 ; 0x600000 + 80034d2: 687b ldr r3, [r7, #4] + 80034d4: 6c5a ldr r2, [r3, #68] ; 0x44 + 80034d6: 687b ldr r3, [r7, #4] + 80034d8: 681b ldr r3, [r3, #0] + 80034da: 430a orrs r2, r1 + 80034dc: 605a str r2, [r3, #4] } } /* if required, configure MSB first on communication line */ if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) - 8003506: 687b ldr r3, [r7, #4] - 8003508: 6a5b ldr r3, [r3, #36] ; 0x24 - 800350a: f003 0380 and.w r3, r3, #128 ; 0x80 - 800350e: 2b00 cmp r3, #0 - 8003510: d00a beq.n 8003528 + 80034de: 687b ldr r3, [r7, #4] + 80034e0: 6a5b ldr r3, [r3, #36] ; 0x24 + 80034e2: f003 0380 and.w r3, r3, #128 ; 0x80 + 80034e6: 2b00 cmp r3, #0 + 80034e8: d00a beq.n 8003500 { assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); - 8003512: 687b ldr r3, [r7, #4] - 8003514: 681b ldr r3, [r3, #0] - 8003516: 685b ldr r3, [r3, #4] - 8003518: f423 2100 bic.w r1, r3, #524288 ; 0x80000 - 800351c: 687b ldr r3, [r7, #4] - 800351e: 6c9a ldr r2, [r3, #72] ; 0x48 - 8003520: 687b ldr r3, [r7, #4] - 8003522: 681b ldr r3, [r3, #0] - 8003524: 430a orrs r2, r1 - 8003526: 605a str r2, [r3, #4] + 80034ea: 687b ldr r3, [r7, #4] + 80034ec: 681b ldr r3, [r3, #0] + 80034ee: 685b ldr r3, [r3, #4] + 80034f0: f423 2100 bic.w r1, r3, #524288 ; 0x80000 + 80034f4: 687b ldr r3, [r7, #4] + 80034f6: 6c9a ldr r2, [r3, #72] ; 0x48 + 80034f8: 687b ldr r3, [r7, #4] + 80034fa: 681b ldr r3, [r3, #0] + 80034fc: 430a orrs r2, r1 + 80034fe: 605a str r2, [r3, #4] } } - 8003528: bf00 nop - 800352a: 370c adds r7, #12 - 800352c: 46bd mov sp, r7 - 800352e: f85d 7b04 ldr.w r7, [sp], #4 - 8003532: 4770 bx lr + 8003500: bf00 nop + 8003502: 370c adds r7, #12 + 8003504: 46bd mov sp, r7 + 8003506: f85d 7b04 ldr.w r7, [sp], #4 + 800350a: 4770 bx lr -08003534 : +0800350c : * @brief Check the UART Idle State. * @param huart UART handle. * @retval HAL status */ HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) { - 8003534: b580 push {r7, lr} - 8003536: b086 sub sp, #24 - 8003538: af02 add r7, sp, #8 - 800353a: 6078 str r0, [r7, #4] + 800350c: b580 push {r7, lr} + 800350e: b086 sub sp, #24 + 8003510: af02 add r7, sp, #8 + 8003512: 6078 str r0, [r7, #4] uint32_t tickstart; /* Initialize the UART ErrorCode */ huart->ErrorCode = HAL_UART_ERROR_NONE; - 800353c: 687b ldr r3, [r7, #4] - 800353e: 2200 movs r2, #0 - 8003540: 67da str r2, [r3, #124] ; 0x7c + 8003514: 687b ldr r3, [r7, #4] + 8003516: 2200 movs r2, #0 + 8003518: 67da str r2, [r3, #124] ; 0x7c /* Init tickstart for timeout managment*/ tickstart = HAL_GetTick(); - 8003542: f7fd f853 bl 80005ec - 8003546: 60f8 str r0, [r7, #12] + 800351a: f7fd f867 bl 80005ec + 800351e: 60f8 str r0, [r7, #12] /* Check if the Transmitter is enabled */ if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) - 8003548: 687b ldr r3, [r7, #4] - 800354a: 681b ldr r3, [r3, #0] - 800354c: 681b ldr r3, [r3, #0] - 800354e: f003 0308 and.w r3, r3, #8 - 8003552: 2b08 cmp r3, #8 - 8003554: d10e bne.n 8003574 + 8003520: 687b ldr r3, [r7, #4] + 8003522: 681b ldr r3, [r3, #0] + 8003524: 681b ldr r3, [r3, #0] + 8003526: f003 0308 and.w r3, r3, #8 + 800352a: 2b08 cmp r3, #8 + 800352c: d10e bne.n 800354c { /* Wait until TEACK flag is set */ if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) - 8003556: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000 - 800355a: 9300 str r3, [sp, #0] - 800355c: 68fb ldr r3, [r7, #12] - 800355e: 2200 movs r2, #0 - 8003560: f44f 1100 mov.w r1, #2097152 ; 0x200000 - 8003564: 6878 ldr r0, [r7, #4] - 8003566: f000 f814 bl 8003592 - 800356a: 4603 mov r3, r0 - 800356c: 2b00 cmp r3, #0 - 800356e: d001 beq.n 8003574 + 800352e: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000 + 8003532: 9300 str r3, [sp, #0] + 8003534: 68fb ldr r3, [r7, #12] + 8003536: 2200 movs r2, #0 + 8003538: f44f 1100 mov.w r1, #2097152 ; 0x200000 + 800353c: 6878 ldr r0, [r7, #4] + 800353e: f000 f814 bl 800356a + 8003542: 4603 mov r3, r0 + 8003544: 2b00 cmp r3, #0 + 8003546: d001 beq.n 800354c { /* Timeout occurred */ return HAL_TIMEOUT; - 8003570: 2303 movs r3, #3 - 8003572: e00a b.n 800358a + 8003548: 2303 movs r3, #3 + 800354a: e00a b.n 8003562 } } /* Initialize the UART State */ huart->gState = HAL_UART_STATE_READY; - 8003574: 687b ldr r3, [r7, #4] - 8003576: 2220 movs r2, #32 - 8003578: 675a str r2, [r3, #116] ; 0x74 + 800354c: 687b ldr r3, [r7, #4] + 800354e: 2220 movs r2, #32 + 8003550: 675a str r2, [r3, #116] ; 0x74 huart->RxState = HAL_UART_STATE_READY; - 800357a: 687b ldr r3, [r7, #4] - 800357c: 2220 movs r2, #32 - 800357e: 679a str r2, [r3, #120] ; 0x78 + 8003552: 687b ldr r3, [r7, #4] + 8003554: 2220 movs r2, #32 + 8003556: 679a str r2, [r3, #120] ; 0x78 /* Process Unlocked */ __HAL_UNLOCK(huart); - 8003580: 687b ldr r3, [r7, #4] - 8003582: 2200 movs r2, #0 - 8003584: f883 2070 strb.w r2, [r3, #112] ; 0x70 + 8003558: 687b ldr r3, [r7, #4] + 800355a: 2200 movs r2, #0 + 800355c: f883 2070 strb.w r2, [r3, #112] ; 0x70 return HAL_OK; - 8003588: 2300 movs r3, #0 + 8003560: 2300 movs r3, #0 } - 800358a: 4618 mov r0, r3 - 800358c: 3710 adds r7, #16 - 800358e: 46bd mov sp, r7 - 8003590: bd80 pop {r7, pc} + 8003562: 4618 mov r0, r3 + 8003564: 3710 adds r7, #16 + 8003566: 46bd mov sp, r7 + 8003568: bd80 pop {r7, pc} -08003592 : +0800356a : * @param Tickstart Tick start value * @param Timeout Timeout duration * @retval HAL status */ HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout) { - 8003592: b580 push {r7, lr} - 8003594: b084 sub sp, #16 - 8003596: af00 add r7, sp, #0 - 8003598: 60f8 str r0, [r7, #12] - 800359a: 60b9 str r1, [r7, #8] - 800359c: 603b str r3, [r7, #0] - 800359e: 4613 mov r3, r2 - 80035a0: 71fb strb r3, [r7, #7] + 800356a: b580 push {r7, lr} + 800356c: b084 sub sp, #16 + 800356e: af00 add r7, sp, #0 + 8003570: 60f8 str r0, [r7, #12] + 8003572: 60b9 str r1, [r7, #8] + 8003574: 603b str r3, [r7, #0] + 8003576: 4613 mov r3, r2 + 8003578: 71fb strb r3, [r7, #7] /* Wait until flag is set */ while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) - 80035a2: e02a b.n 80035fa + 800357a: e02a b.n 80035d2 { /* Check for the Timeout */ if (Timeout != HAL_MAX_DELAY) - 80035a4: 69bb ldr r3, [r7, #24] - 80035a6: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 80035aa: d026 beq.n 80035fa + 800357c: 69bb ldr r3, [r7, #24] + 800357e: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 8003582: d026 beq.n 80035d2 { if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 80035ac: f7fd f81e bl 80005ec - 80035b0: 4602 mov r2, r0 - 80035b2: 683b ldr r3, [r7, #0] - 80035b4: 1ad3 subs r3, r2, r3 - 80035b6: 69ba ldr r2, [r7, #24] - 80035b8: 429a cmp r2, r3 - 80035ba: d302 bcc.n 80035c2 - 80035bc: 69bb ldr r3, [r7, #24] - 80035be: 2b00 cmp r3, #0 - 80035c0: d11b bne.n 80035fa + 8003584: f7fd f832 bl 80005ec + 8003588: 4602 mov r2, r0 + 800358a: 683b ldr r3, [r7, #0] + 800358c: 1ad3 subs r3, r2, r3 + 800358e: 69ba ldr r2, [r7, #24] + 8003590: 429a cmp r2, r3 + 8003592: d302 bcc.n 800359a + 8003594: 69bb ldr r3, [r7, #24] + 8003596: 2b00 cmp r3, #0 + 8003598: d11b bne.n 80035d2 { /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for the interrupt process */ CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE)); - 80035c2: 68fb ldr r3, [r7, #12] - 80035c4: 681b ldr r3, [r3, #0] - 80035c6: 681a ldr r2, [r3, #0] - 80035c8: 68fb ldr r3, [r7, #12] - 80035ca: 681b ldr r3, [r3, #0] - 80035cc: f422 72d0 bic.w r2, r2, #416 ; 0x1a0 - 80035d0: 601a str r2, [r3, #0] + 800359a: 68fb ldr r3, [r7, #12] + 800359c: 681b ldr r3, [r3, #0] + 800359e: 681a ldr r2, [r3, #0] + 80035a0: 68fb ldr r3, [r7, #12] + 80035a2: 681b ldr r3, [r3, #0] + 80035a4: f422 72d0 bic.w r2, r2, #416 ; 0x1a0 + 80035a8: 601a str r2, [r3, #0] CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); - 80035d2: 68fb ldr r3, [r7, #12] - 80035d4: 681b ldr r3, [r3, #0] - 80035d6: 689a ldr r2, [r3, #8] - 80035d8: 68fb ldr r3, [r7, #12] - 80035da: 681b ldr r3, [r3, #0] - 80035dc: f022 0201 bic.w r2, r2, #1 - 80035e0: 609a str r2, [r3, #8] + 80035aa: 68fb ldr r3, [r7, #12] + 80035ac: 681b ldr r3, [r3, #0] + 80035ae: 689a ldr r2, [r3, #8] + 80035b0: 68fb ldr r3, [r7, #12] + 80035b2: 681b ldr r3, [r3, #0] + 80035b4: f022 0201 bic.w r2, r2, #1 + 80035b8: 609a str r2, [r3, #8] huart->gState = HAL_UART_STATE_READY; - 80035e2: 68fb ldr r3, [r7, #12] - 80035e4: 2220 movs r2, #32 - 80035e6: 675a str r2, [r3, #116] ; 0x74 + 80035ba: 68fb ldr r3, [r7, #12] + 80035bc: 2220 movs r2, #32 + 80035be: 675a str r2, [r3, #116] ; 0x74 huart->RxState = HAL_UART_STATE_READY; - 80035e8: 68fb ldr r3, [r7, #12] - 80035ea: 2220 movs r2, #32 - 80035ec: 679a str r2, [r3, #120] ; 0x78 + 80035c0: 68fb ldr r3, [r7, #12] + 80035c2: 2220 movs r2, #32 + 80035c4: 679a str r2, [r3, #120] ; 0x78 /* Process Unlocked */ __HAL_UNLOCK(huart); - 80035ee: 68fb ldr r3, [r7, #12] - 80035f0: 2200 movs r2, #0 - 80035f2: f883 2070 strb.w r2, [r3, #112] ; 0x70 + 80035c6: 68fb ldr r3, [r7, #12] + 80035c8: 2200 movs r2, #0 + 80035ca: f883 2070 strb.w r2, [r3, #112] ; 0x70 return HAL_TIMEOUT; - 80035f6: 2303 movs r3, #3 - 80035f8: e00f b.n 800361a + 80035ce: 2303 movs r3, #3 + 80035d0: e00f b.n 80035f2 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) - 80035fa: 68fb ldr r3, [r7, #12] - 80035fc: 681b ldr r3, [r3, #0] - 80035fe: 69da ldr r2, [r3, #28] - 8003600: 68bb ldr r3, [r7, #8] - 8003602: 4013 ands r3, r2 - 8003604: 68ba ldr r2, [r7, #8] - 8003606: 429a cmp r2, r3 - 8003608: bf0c ite eq - 800360a: 2301 moveq r3, #1 - 800360c: 2300 movne r3, #0 - 800360e: b2db uxtb r3, r3 - 8003610: 461a mov r2, r3 - 8003612: 79fb ldrb r3, [r7, #7] - 8003614: 429a cmp r2, r3 - 8003616: d0c5 beq.n 80035a4 + 80035d2: 68fb ldr r3, [r7, #12] + 80035d4: 681b ldr r3, [r3, #0] + 80035d6: 69da ldr r2, [r3, #28] + 80035d8: 68bb ldr r3, [r7, #8] + 80035da: 4013 ands r3, r2 + 80035dc: 68ba ldr r2, [r7, #8] + 80035de: 429a cmp r2, r3 + 80035e0: bf0c ite eq + 80035e2: 2301 moveq r3, #1 + 80035e4: 2300 movne r3, #0 + 80035e6: b2db uxtb r3, r3 + 80035e8: 461a mov r2, r3 + 80035ea: 79fb ldrb r3, [r7, #7] + 80035ec: 429a cmp r2, r3 + 80035ee: d0c5 beq.n 800357c } } } return HAL_OK; - 8003618: 2300 movs r3, #0 + 80035f0: 2300 movs r3, #0 } - 800361a: 4618 mov r0, r3 - 800361c: 3710 adds r7, #16 - 800361e: 46bd mov sp, r7 - 8003620: bd80 pop {r7, pc} + 80035f2: 4618 mov r0, r3 + 80035f4: 3710 adds r7, #16 + 80035f6: 46bd mov sp, r7 + 80035f8: bd80 pop {r7, pc} -08003622 : +080035fa : * @brief End ongoing Tx transfer on UART peripheral (following error detection or Transmit completion). * @param huart UART handle. * @retval None */ static void UART_EndTxTransfer(UART_HandleTypeDef *huart) { - 8003622: b480 push {r7} - 8003624: b083 sub sp, #12 - 8003626: af00 add r7, sp, #0 - 8003628: 6078 str r0, [r7, #4] + 80035fa: b480 push {r7} + 80035fc: b083 sub sp, #12 + 80035fe: af00 add r7, sp, #0 + 8003600: 6078 str r0, [r7, #4] /* Disable TXEIE and TCIE interrupts */ CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); - 800362a: 687b ldr r3, [r7, #4] - 800362c: 681b ldr r3, [r3, #0] - 800362e: 681a ldr r2, [r3, #0] - 8003630: 687b ldr r3, [r7, #4] - 8003632: 681b ldr r3, [r3, #0] - 8003634: f022 02c0 bic.w r2, r2, #192 ; 0xc0 - 8003638: 601a str r2, [r3, #0] + 8003602: 687b ldr r3, [r7, #4] + 8003604: 681b ldr r3, [r3, #0] + 8003606: 681a ldr r2, [r3, #0] + 8003608: 687b ldr r3, [r7, #4] + 800360a: 681b ldr r3, [r3, #0] + 800360c: f022 02c0 bic.w r2, r2, #192 ; 0xc0 + 8003610: 601a str r2, [r3, #0] /* At end of Tx process, restore huart->gState to Ready */ huart->gState = HAL_UART_STATE_READY; - 800363a: 687b ldr r3, [r7, #4] - 800363c: 2220 movs r2, #32 - 800363e: 675a str r2, [r3, #116] ; 0x74 + 8003612: 687b ldr r3, [r7, #4] + 8003614: 2220 movs r2, #32 + 8003616: 675a str r2, [r3, #116] ; 0x74 } - 8003640: bf00 nop - 8003642: 370c adds r7, #12 - 8003644: 46bd mov sp, r7 - 8003646: f85d 7b04 ldr.w r7, [sp], #4 - 800364a: 4770 bx lr + 8003618: bf00 nop + 800361a: 370c adds r7, #12 + 800361c: 46bd mov sp, r7 + 800361e: f85d 7b04 ldr.w r7, [sp], #4 + 8003622: 4770 bx lr -0800364c : +08003624 : * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception completion). * @param huart UART handle. * @retval None */ static void UART_EndRxTransfer(UART_HandleTypeDef *huart) { - 800364c: b480 push {r7} - 800364e: b083 sub sp, #12 - 8003650: af00 add r7, sp, #0 - 8003652: 6078 str r0, [r7, #4] + 8003624: b480 push {r7} + 8003626: b083 sub sp, #12 + 8003628: af00 add r7, sp, #0 + 800362a: 6078 str r0, [r7, #4] /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); - 8003654: 687b ldr r3, [r7, #4] - 8003656: 681b ldr r3, [r3, #0] - 8003658: 681a ldr r2, [r3, #0] - 800365a: 687b ldr r3, [r7, #4] - 800365c: 681b ldr r3, [r3, #0] - 800365e: f422 7290 bic.w r2, r2, #288 ; 0x120 - 8003662: 601a str r2, [r3, #0] + 800362c: 687b ldr r3, [r7, #4] + 800362e: 681b ldr r3, [r3, #0] + 8003630: 681a ldr r2, [r3, #0] + 8003632: 687b ldr r3, [r7, #4] + 8003634: 681b ldr r3, [r3, #0] + 8003636: f422 7290 bic.w r2, r2, #288 ; 0x120 + 800363a: 601a str r2, [r3, #0] CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); - 8003664: 687b ldr r3, [r7, #4] - 8003666: 681b ldr r3, [r3, #0] - 8003668: 689a ldr r2, [r3, #8] - 800366a: 687b ldr r3, [r7, #4] - 800366c: 681b ldr r3, [r3, #0] - 800366e: f022 0201 bic.w r2, r2, #1 - 8003672: 609a str r2, [r3, #8] + 800363c: 687b ldr r3, [r7, #4] + 800363e: 681b ldr r3, [r3, #0] + 8003640: 689a ldr r2, [r3, #8] + 8003642: 687b ldr r3, [r7, #4] + 8003644: 681b ldr r3, [r3, #0] + 8003646: f022 0201 bic.w r2, r2, #1 + 800364a: 609a str r2, [r3, #8] /* At end of Rx process, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; - 8003674: 687b ldr r3, [r7, #4] - 8003676: 2220 movs r2, #32 - 8003678: 679a str r2, [r3, #120] ; 0x78 + 800364c: 687b ldr r3, [r7, #4] + 800364e: 2220 movs r2, #32 + 8003650: 679a str r2, [r3, #120] ; 0x78 /* Reset RxIsr function pointer */ huart->RxISR = NULL; - 800367a: 687b ldr r3, [r7, #4] - 800367c: 2200 movs r2, #0 - 800367e: 661a str r2, [r3, #96] ; 0x60 + 8003652: 687b ldr r3, [r7, #4] + 8003654: 2200 movs r2, #0 + 8003656: 661a str r2, [r3, #96] ; 0x60 } - 8003680: bf00 nop - 8003682: 370c adds r7, #12 - 8003684: 46bd mov sp, r7 - 8003686: f85d 7b04 ldr.w r7, [sp], #4 - 800368a: 4770 bx lr + 8003658: bf00 nop + 800365a: 370c adds r7, #12 + 800365c: 46bd mov sp, r7 + 800365e: f85d 7b04 ldr.w r7, [sp], #4 + 8003662: 4770 bx lr -0800368c : +08003664 : * @brief DMA UART transmit process complete callback. * @param hdma DMA handle. * @retval None */ static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma) { - 800368c: b580 push {r7, lr} - 800368e: b084 sub sp, #16 - 8003690: af00 add r7, sp, #0 - 8003692: 6078 str r0, [r7, #4] + 8003664: b580 push {r7, lr} + 8003666: b084 sub sp, #16 + 8003668: af00 add r7, sp, #0 + 800366a: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); - 8003694: 687b ldr r3, [r7, #4] - 8003696: 6b9b ldr r3, [r3, #56] ; 0x38 - 8003698: 60fb str r3, [r7, #12] + 800366c: 687b ldr r3, [r7, #4] + 800366e: 6b9b ldr r3, [r3, #56] ; 0x38 + 8003670: 60fb str r3, [r7, #12] /* DMA Normal mode */ if (hdma->Init.Mode != DMA_CIRCULAR) - 800369a: 687b ldr r3, [r7, #4] - 800369c: 69db ldr r3, [r3, #28] - 800369e: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 80036a2: d014 beq.n 80036ce + 8003672: 687b ldr r3, [r7, #4] + 8003674: 69db ldr r3, [r3, #28] + 8003676: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 800367a: d014 beq.n 80036a6 { huart->TxXferCount = 0U; - 80036a4: 68fb ldr r3, [r7, #12] - 80036a6: 2200 movs r2, #0 - 80036a8: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 + 800367c: 68fb ldr r3, [r7, #12] + 800367e: 2200 movs r2, #0 + 8003680: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 /* Disable the DMA transfer for transmit request by resetting the DMAT bit in the UART CR3 register */ CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); - 80036ac: 68fb ldr r3, [r7, #12] - 80036ae: 681b ldr r3, [r3, #0] - 80036b0: 689a ldr r2, [r3, #8] - 80036b2: 68fb ldr r3, [r7, #12] - 80036b4: 681b ldr r3, [r3, #0] - 80036b6: f022 0280 bic.w r2, r2, #128 ; 0x80 - 80036ba: 609a str r2, [r3, #8] + 8003684: 68fb ldr r3, [r7, #12] + 8003686: 681b ldr r3, [r3, #0] + 8003688: 689a ldr r2, [r3, #8] + 800368a: 68fb ldr r3, [r7, #12] + 800368c: 681b ldr r3, [r3, #0] + 800368e: f022 0280 bic.w r2, r2, #128 ; 0x80 + 8003692: 609a str r2, [r3, #8] /* Enable the UART Transmit Complete Interrupt */ SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); - 80036bc: 68fb ldr r3, [r7, #12] - 80036be: 681b ldr r3, [r3, #0] - 80036c0: 681a ldr r2, [r3, #0] - 80036c2: 68fb ldr r3, [r7, #12] - 80036c4: 681b ldr r3, [r3, #0] - 80036c6: f042 0240 orr.w r2, r2, #64 ; 0x40 - 80036ca: 601a str r2, [r3, #0] + 8003694: 68fb ldr r3, [r7, #12] + 8003696: 681b ldr r3, [r3, #0] + 8003698: 681a ldr r2, [r3, #0] + 800369a: 68fb ldr r3, [r7, #12] + 800369c: 681b ldr r3, [r3, #0] + 800369e: f042 0240 orr.w r2, r2, #64 ; 0x40 + 80036a2: 601a str r2, [r3, #0] #else /*Call legacy weak Tx complete callback*/ HAL_UART_TxCpltCallback(huart); #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } } - 80036cc: e002 b.n 80036d4 + 80036a4: e002 b.n 80036ac HAL_UART_TxCpltCallback(huart); - 80036ce: 68f8 ldr r0, [r7, #12] - 80036d0: f7ff fbb8 bl 8002e44 + 80036a6: 68f8 ldr r0, [r7, #12] + 80036a8: f001 fa38 bl 8004b1c } - 80036d4: bf00 nop - 80036d6: 3710 adds r7, #16 - 80036d8: 46bd mov sp, r7 - 80036da: bd80 pop {r7, pc} + 80036ac: bf00 nop + 80036ae: 3710 adds r7, #16 + 80036b0: 46bd mov sp, r7 + 80036b2: bd80 pop {r7, pc} -080036dc : +080036b4 : * @brief DMA UART transmit process half complete callback. * @param hdma DMA handle. * @retval None */ static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma) { - 80036dc: b580 push {r7, lr} - 80036de: b084 sub sp, #16 - 80036e0: af00 add r7, sp, #0 - 80036e2: 6078 str r0, [r7, #4] + 80036b4: b580 push {r7, lr} + 80036b6: b084 sub sp, #16 + 80036b8: af00 add r7, sp, #0 + 80036ba: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); - 80036e4: 687b ldr r3, [r7, #4] - 80036e6: 6b9b ldr r3, [r3, #56] ; 0x38 - 80036e8: 60fb str r3, [r7, #12] + 80036bc: 687b ldr r3, [r7, #4] + 80036be: 6b9b ldr r3, [r3, #56] ; 0x38 + 80036c0: 60fb str r3, [r7, #12] #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered Tx Half complete callback*/ huart->TxHalfCpltCallback(huart); #else /*Call legacy weak Tx Half complete callback*/ HAL_UART_TxHalfCpltCallback(huart); - 80036ea: 68f8 ldr r0, [r7, #12] - 80036ec: f7ff fbb4 bl 8002e58 + 80036c2: 68f8 ldr r0, [r7, #12] + 80036c4: f7ff fbbe bl 8002e44 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } - 80036f0: bf00 nop - 80036f2: 3710 adds r7, #16 - 80036f4: 46bd mov sp, r7 - 80036f6: bd80 pop {r7, pc} + 80036c8: bf00 nop + 80036ca: 3710 adds r7, #16 + 80036cc: 46bd mov sp, r7 + 80036ce: bd80 pop {r7, pc} -080036f8 : +080036d0 : * @brief DMA UART receive process complete callback. * @param hdma DMA handle. * @retval None */ static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma) { - 80036f8: b580 push {r7, lr} - 80036fa: b084 sub sp, #16 - 80036fc: af00 add r7, sp, #0 - 80036fe: 6078 str r0, [r7, #4] + 80036d0: b580 push {r7, lr} + 80036d2: b084 sub sp, #16 + 80036d4: af00 add r7, sp, #0 + 80036d6: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); - 8003700: 687b ldr r3, [r7, #4] - 8003702: 6b9b ldr r3, [r3, #56] ; 0x38 - 8003704: 60fb str r3, [r7, #12] + 80036d8: 687b ldr r3, [r7, #4] + 80036da: 6b9b ldr r3, [r3, #56] ; 0x38 + 80036dc: 60fb str r3, [r7, #12] /* DMA Normal mode */ if (hdma->Init.Mode != DMA_CIRCULAR) - 8003706: 687b ldr r3, [r7, #4] - 8003708: 69db ldr r3, [r3, #28] - 800370a: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 800370e: d01e beq.n 800374e + 80036de: 687b ldr r3, [r7, #4] + 80036e0: 69db ldr r3, [r3, #28] + 80036e2: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 80036e6: d01e beq.n 8003726 { huart->RxXferCount = 0U; - 8003710: 68fb ldr r3, [r7, #12] - 8003712: 2200 movs r2, #0 - 8003714: f8a3 205a strh.w r2, [r3, #90] ; 0x5a + 80036e8: 68fb ldr r3, [r7, #12] + 80036ea: 2200 movs r2, #0 + 80036ec: f8a3 205a strh.w r2, [r3, #90] ; 0x5a /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); - 8003718: 68fb ldr r3, [r7, #12] - 800371a: 681b ldr r3, [r3, #0] - 800371c: 681a ldr r2, [r3, #0] - 800371e: 68fb ldr r3, [r7, #12] - 8003720: 681b ldr r3, [r3, #0] - 8003722: f422 7280 bic.w r2, r2, #256 ; 0x100 - 8003726: 601a str r2, [r3, #0] + 80036f0: 68fb ldr r3, [r7, #12] + 80036f2: 681b ldr r3, [r3, #0] + 80036f4: 681a ldr r2, [r3, #0] + 80036f6: 68fb ldr r3, [r7, #12] + 80036f8: 681b ldr r3, [r3, #0] + 80036fa: f422 7280 bic.w r2, r2, #256 ; 0x100 + 80036fe: 601a str r2, [r3, #0] CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); - 8003728: 68fb ldr r3, [r7, #12] - 800372a: 681b ldr r3, [r3, #0] - 800372c: 689a ldr r2, [r3, #8] - 800372e: 68fb ldr r3, [r7, #12] - 8003730: 681b ldr r3, [r3, #0] - 8003732: f022 0201 bic.w r2, r2, #1 - 8003736: 609a str r2, [r3, #8] + 8003700: 68fb ldr r3, [r7, #12] + 8003702: 681b ldr r3, [r3, #0] + 8003704: 689a ldr r2, [r3, #8] + 8003706: 68fb ldr r3, [r7, #12] + 8003708: 681b ldr r3, [r3, #0] + 800370a: f022 0201 bic.w r2, r2, #1 + 800370e: 609a str r2, [r3, #8] /* Disable the DMA transfer for the receiver request by resetting the DMAR bit in the UART CR3 register */ CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); - 8003738: 68fb ldr r3, [r7, #12] - 800373a: 681b ldr r3, [r3, #0] - 800373c: 689a ldr r2, [r3, #8] - 800373e: 68fb ldr r3, [r7, #12] - 8003740: 681b ldr r3, [r3, #0] - 8003742: f022 0240 bic.w r2, r2, #64 ; 0x40 - 8003746: 609a str r2, [r3, #8] + 8003710: 68fb ldr r3, [r7, #12] + 8003712: 681b ldr r3, [r3, #0] + 8003714: 689a ldr r2, [r3, #8] + 8003716: 68fb ldr r3, [r7, #12] + 8003718: 681b ldr r3, [r3, #0] + 800371a: f022 0240 bic.w r2, r2, #64 ; 0x40 + 800371e: 609a str r2, [r3, #8] /* At end of Rx process, restore huart->RxState to Ready */ huart->RxState = HAL_UART_STATE_READY; - 8003748: 68fb ldr r3, [r7, #12] - 800374a: 2220 movs r2, #32 - 800374c: 679a str r2, [r3, #120] ; 0x78 + 8003720: 68fb ldr r3, [r7, #12] + 8003722: 2220 movs r2, #32 + 8003724: 679a str r2, [r3, #120] ; 0x78 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered Rx complete callback*/ huart->RxCpltCallback(huart); #else /*Call legacy weak Rx complete callback*/ HAL_UART_RxCpltCallback(huart); - 800374e: 68f8 ldr r0, [r7, #12] - 8003750: f7ff fb8c bl 8002e6c + 8003726: 68f8 ldr r0, [r7, #12] + 8003728: f001 fa0a bl 8004b40 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } - 8003754: bf00 nop - 8003756: 3710 adds r7, #16 - 8003758: 46bd mov sp, r7 - 800375a: bd80 pop {r7, pc} + 800372c: bf00 nop + 800372e: 3710 adds r7, #16 + 8003730: 46bd mov sp, r7 + 8003732: bd80 pop {r7, pc} -0800375c : +08003734 : * @brief DMA UART receive process half complete callback. * @param hdma DMA handle. * @retval None */ static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma) { - 800375c: b580 push {r7, lr} - 800375e: b084 sub sp, #16 - 8003760: af00 add r7, sp, #0 - 8003762: 6078 str r0, [r7, #4] + 8003734: b580 push {r7, lr} + 8003736: b084 sub sp, #16 + 8003738: af00 add r7, sp, #0 + 800373a: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); - 8003764: 687b ldr r3, [r7, #4] - 8003766: 6b9b ldr r3, [r3, #56] ; 0x38 - 8003768: 60fb str r3, [r7, #12] + 800373c: 687b ldr r3, [r7, #4] + 800373e: 6b9b ldr r3, [r3, #56] ; 0x38 + 8003740: 60fb str r3, [r7, #12] #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered Rx Half complete callback*/ huart->RxHalfCpltCallback(huart); #else /*Call legacy weak Rx Half complete callback*/ HAL_UART_RxHalfCpltCallback(huart); - 800376a: 68f8 ldr r0, [r7, #12] - 800376c: f7ff fb88 bl 8002e80 + 8003742: 68f8 ldr r0, [r7, #12] + 8003744: f7ff fb88 bl 8002e58 #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } - 8003770: bf00 nop - 8003772: 3710 adds r7, #16 - 8003774: 46bd mov sp, r7 - 8003776: bd80 pop {r7, pc} + 8003748: bf00 nop + 800374a: 3710 adds r7, #16 + 800374c: 46bd mov sp, r7 + 800374e: bd80 pop {r7, pc} -08003778 : +08003750 : * @brief DMA UART communication error callback. * @param hdma DMA handle. * @retval None */ static void UART_DMAError(DMA_HandleTypeDef *hdma) { - 8003778: b580 push {r7, lr} - 800377a: b086 sub sp, #24 - 800377c: af00 add r7, sp, #0 - 800377e: 6078 str r0, [r7, #4] + 8003750: b580 push {r7, lr} + 8003752: b086 sub sp, #24 + 8003754: af00 add r7, sp, #0 + 8003756: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); - 8003780: 687b ldr r3, [r7, #4] - 8003782: 6b9b ldr r3, [r3, #56] ; 0x38 - 8003784: 617b str r3, [r7, #20] + 8003758: 687b ldr r3, [r7, #4] + 800375a: 6b9b ldr r3, [r3, #56] ; 0x38 + 800375c: 617b str r3, [r7, #20] const HAL_UART_StateTypeDef gstate = huart->gState; - 8003786: 697b ldr r3, [r7, #20] - 8003788: 6f5b ldr r3, [r3, #116] ; 0x74 - 800378a: 613b str r3, [r7, #16] + 800375e: 697b ldr r3, [r7, #20] + 8003760: 6f5b ldr r3, [r3, #116] ; 0x74 + 8003762: 613b str r3, [r7, #16] const HAL_UART_StateTypeDef rxstate = huart->RxState; - 800378c: 697b ldr r3, [r7, #20] - 800378e: 6f9b ldr r3, [r3, #120] ; 0x78 - 8003790: 60fb str r3, [r7, #12] + 8003764: 697b ldr r3, [r7, #20] + 8003766: 6f9b ldr r3, [r3, #120] ; 0x78 + 8003768: 60fb str r3, [r7, #12] /* Stop UART DMA Tx request if ongoing */ if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && - 8003792: 697b ldr r3, [r7, #20] - 8003794: 681b ldr r3, [r3, #0] - 8003796: 689b ldr r3, [r3, #8] - 8003798: f003 0380 and.w r3, r3, #128 ; 0x80 - 800379c: 2b80 cmp r3, #128 ; 0x80 - 800379e: d109 bne.n 80037b4 - 80037a0: 693b ldr r3, [r7, #16] - 80037a2: 2b21 cmp r3, #33 ; 0x21 - 80037a4: d106 bne.n 80037b4 + 800376a: 697b ldr r3, [r7, #20] + 800376c: 681b ldr r3, [r3, #0] + 800376e: 689b ldr r3, [r3, #8] + 8003770: f003 0380 and.w r3, r3, #128 ; 0x80 + 8003774: 2b80 cmp r3, #128 ; 0x80 + 8003776: d109 bne.n 800378c + 8003778: 693b ldr r3, [r7, #16] + 800377a: 2b21 cmp r3, #33 ; 0x21 + 800377c: d106 bne.n 800378c (gstate == HAL_UART_STATE_BUSY_TX)) { huart->TxXferCount = 0U; - 80037a6: 697b ldr r3, [r7, #20] - 80037a8: 2200 movs r2, #0 - 80037aa: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 + 800377e: 697b ldr r3, [r7, #20] + 8003780: 2200 movs r2, #0 + 8003782: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 UART_EndTxTransfer(huart); - 80037ae: 6978 ldr r0, [r7, #20] - 80037b0: f7ff ff37 bl 8003622 + 8003786: 6978 ldr r0, [r7, #20] + 8003788: f7ff ff37 bl 80035fa } /* Stop UART DMA Rx request if ongoing */ if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && - 80037b4: 697b ldr r3, [r7, #20] - 80037b6: 681b ldr r3, [r3, #0] - 80037b8: 689b ldr r3, [r3, #8] - 80037ba: f003 0340 and.w r3, r3, #64 ; 0x40 - 80037be: 2b40 cmp r3, #64 ; 0x40 - 80037c0: d109 bne.n 80037d6 - 80037c2: 68fb ldr r3, [r7, #12] - 80037c4: 2b22 cmp r3, #34 ; 0x22 - 80037c6: d106 bne.n 80037d6 + 800378c: 697b ldr r3, [r7, #20] + 800378e: 681b ldr r3, [r3, #0] + 8003790: 689b ldr r3, [r3, #8] + 8003792: f003 0340 and.w r3, r3, #64 ; 0x40 + 8003796: 2b40 cmp r3, #64 ; 0x40 + 8003798: d109 bne.n 80037ae + 800379a: 68fb ldr r3, [r7, #12] + 800379c: 2b22 cmp r3, #34 ; 0x22 + 800379e: d106 bne.n 80037ae (rxstate == HAL_UART_STATE_BUSY_RX)) { huart->RxXferCount = 0U; - 80037c8: 697b ldr r3, [r7, #20] - 80037ca: 2200 movs r2, #0 - 80037cc: f8a3 205a strh.w r2, [r3, #90] ; 0x5a + 80037a0: 697b ldr r3, [r7, #20] + 80037a2: 2200 movs r2, #0 + 80037a4: f8a3 205a strh.w r2, [r3, #90] ; 0x5a UART_EndRxTransfer(huart); - 80037d0: 6978 ldr r0, [r7, #20] - 80037d2: f7ff ff3b bl 800364c + 80037a8: 6978 ldr r0, [r7, #20] + 80037aa: f7ff ff3b bl 8003624 } huart->ErrorCode |= HAL_UART_ERROR_DMA; - 80037d6: 697b ldr r3, [r7, #20] - 80037d8: 6fdb ldr r3, [r3, #124] ; 0x7c - 80037da: f043 0210 orr.w r2, r3, #16 - 80037de: 697b ldr r3, [r7, #20] - 80037e0: 67da str r2, [r3, #124] ; 0x7c + 80037ae: 697b ldr r3, [r7, #20] + 80037b0: 6fdb ldr r3, [r3, #124] ; 0x7c + 80037b2: f043 0210 orr.w r2, r3, #16 + 80037b6: 697b ldr r3, [r7, #20] + 80037b8: 67da str r2, [r3, #124] ; 0x7c #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); - 80037e2: 6978 ldr r0, [r7, #20] - 80037e4: f7ff fb56 bl 8002e94 + 80037ba: 6978 ldr r0, [r7, #20] + 80037bc: f7ff fb56 bl 8002e6c #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } - 80037e8: bf00 nop - 80037ea: 3718 adds r7, #24 - 80037ec: 46bd mov sp, r7 - 80037ee: bd80 pop {r7, pc} + 80037c0: bf00 nop + 80037c2: 3718 adds r7, #24 + 80037c4: 46bd mov sp, r7 + 80037c6: bd80 pop {r7, pc} -080037f0 : +080037c8 : * (To be called at end of DMA Abort procedure following error occurrence). * @param hdma DMA handle. * @retval None */ static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) { - 80037f0: b580 push {r7, lr} - 80037f2: b084 sub sp, #16 - 80037f4: af00 add r7, sp, #0 - 80037f6: 6078 str r0, [r7, #4] + 80037c8: b580 push {r7, lr} + 80037ca: b084 sub sp, #16 + 80037cc: af00 add r7, sp, #0 + 80037ce: 6078 str r0, [r7, #4] UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); - 80037f8: 687b ldr r3, [r7, #4] - 80037fa: 6b9b ldr r3, [r3, #56] ; 0x38 - 80037fc: 60fb str r3, [r7, #12] + 80037d0: 687b ldr r3, [r7, #4] + 80037d2: 6b9b ldr r3, [r3, #56] ; 0x38 + 80037d4: 60fb str r3, [r7, #12] huart->RxXferCount = 0U; - 80037fe: 68fb ldr r3, [r7, #12] - 8003800: 2200 movs r2, #0 - 8003802: f8a3 205a strh.w r2, [r3, #90] ; 0x5a + 80037d6: 68fb ldr r3, [r7, #12] + 80037d8: 2200 movs r2, #0 + 80037da: f8a3 205a strh.w r2, [r3, #90] ; 0x5a huart->TxXferCount = 0U; - 8003806: 68fb ldr r3, [r7, #12] - 8003808: 2200 movs r2, #0 - 800380a: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 + 80037de: 68fb ldr r3, [r7, #12] + 80037e0: 2200 movs r2, #0 + 80037e2: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered error callback*/ huart->ErrorCallback(huart); #else /*Call legacy weak error callback*/ HAL_UART_ErrorCallback(huart); - 800380e: 68f8 ldr r0, [r7, #12] - 8003810: f7ff fb40 bl 8002e94 + 80037e6: 68f8 ldr r0, [r7, #12] + 80037e8: f7ff fb40 bl 8002e6c #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } - 8003814: bf00 nop - 8003816: 3710 adds r7, #16 - 8003818: 46bd mov sp, r7 - 800381a: bd80 pop {r7, pc} + 80037ec: bf00 nop + 80037ee: 3710 adds r7, #16 + 80037f0: 46bd mov sp, r7 + 80037f2: bd80 pop {r7, pc} -0800381c : +080037f4 : * @param huart pointer to a UART_HandleTypeDef structure that contains * the configuration information for the specified UART module. * @retval None */ static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) { - 800381c: b580 push {r7, lr} - 800381e: b082 sub sp, #8 - 8003820: af00 add r7, sp, #0 - 8003822: 6078 str r0, [r7, #4] + 80037f4: b580 push {r7, lr} + 80037f6: b082 sub sp, #8 + 80037f8: af00 add r7, sp, #0 + 80037fa: 6078 str r0, [r7, #4] /* Disable the UART Transmit Complete Interrupt */ CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); - 8003824: 687b ldr r3, [r7, #4] - 8003826: 681b ldr r3, [r3, #0] - 8003828: 681a ldr r2, [r3, #0] - 800382a: 687b ldr r3, [r7, #4] - 800382c: 681b ldr r3, [r3, #0] - 800382e: f022 0240 bic.w r2, r2, #64 ; 0x40 - 8003832: 601a str r2, [r3, #0] + 80037fc: 687b ldr r3, [r7, #4] + 80037fe: 681b ldr r3, [r3, #0] + 8003800: 681a ldr r2, [r3, #0] + 8003802: 687b ldr r3, [r7, #4] + 8003804: 681b ldr r3, [r3, #0] + 8003806: f022 0240 bic.w r2, r2, #64 ; 0x40 + 800380a: 601a str r2, [r3, #0] /* Tx process is ended, restore huart->gState to Ready */ huart->gState = HAL_UART_STATE_READY; - 8003834: 687b ldr r3, [r7, #4] - 8003836: 2220 movs r2, #32 - 8003838: 675a str r2, [r3, #116] ; 0x74 + 800380c: 687b ldr r3, [r7, #4] + 800380e: 2220 movs r2, #32 + 8003810: 675a str r2, [r3, #116] ; 0x74 /* Cleat TxISR function pointer */ huart->TxISR = NULL; - 800383a: 687b ldr r3, [r7, #4] - 800383c: 2200 movs r2, #0 - 800383e: 665a str r2, [r3, #100] ; 0x64 + 8003812: 687b ldr r3, [r7, #4] + 8003814: 2200 movs r2, #0 + 8003816: 665a str r2, [r3, #100] ; 0x64 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) /*Call registered Tx complete callback*/ huart->TxCpltCallback(huart); #else /*Call legacy weak Tx complete callback*/ HAL_UART_TxCpltCallback(huart); - 8003840: 6878 ldr r0, [r7, #4] - 8003842: f7ff faff bl 8002e44 + 8003818: 6878 ldr r0, [r7, #4] + 800381a: f001 f97f bl 8004b1c #endif /* USE_HAL_UART_REGISTER_CALLBACKS */ } - 8003846: bf00 nop - 8003848: 3708 adds r7, #8 - 800384a: 46bd mov sp, r7 - 800384c: bd80 pop {r7, pc} - ... - -08003850 <_ZN3ros3MsgC1Ev>: + 800381e: bf00 nop + 8003820: 3708 adds r7, #8 + 8003822: 46bd mov sp, r7 + 8003824: bd80 pop {r7, pc} -namespace ros +08003826
: +/** + * @brief The application entry point. + * @retval int + */ +int main(void) { + 8003826: b580 push {r7, lr} + 8003828: af00 add r7, sp, #0 + -/* Base Message Type */ -class Msg - 8003850: b480 push {r7} - 8003852: b083 sub sp, #12 - 8003854: af00 add r7, sp, #0 - 8003856: 6078 str r0, [r7, #4] - 8003858: 4a04 ldr r2, [pc, #16] ; (800386c <_ZN3ros3MsgC1Ev+0x1c>) - 800385a: 687b ldr r3, [r7, #4] - 800385c: 601a str r2, [r3, #0] - 800385e: 687b ldr r3, [r7, #4] - 8003860: 4618 mov r0, r3 - 8003862: 370c adds r7, #12 - 8003864: 46bd mov sp, r7 - 8003866: f85d 7b04 ldr.w r7, [sp], #4 - 800386a: 4770 bx lr - 800386c: 08006104 .word 0x08006104 - -08003870 <_ZN8std_msgs5UInt8C1Ev>: - { - public: - typedef uint8_t _data_type; - _data_type data; + /* MCU Configuration--------------------------------------------------------*/ - UInt8(): - 8003870: b580 push {r7, lr} - 8003872: b082 sub sp, #8 - 8003874: af00 add r7, sp, #0 - 8003876: 6078 str r0, [r7, #4] - data(0) - 8003878: 687b ldr r3, [r7, #4] - 800387a: 4618 mov r0, r3 - 800387c: f7ff ffe8 bl 8003850 <_ZN3ros3MsgC1Ev> - 8003880: 4a05 ldr r2, [pc, #20] ; (8003898 <_ZN8std_msgs5UInt8C1Ev+0x28>) - 8003882: 687b ldr r3, [r7, #4] - 8003884: 601a str r2, [r3, #0] - 8003886: 687b ldr r3, [r7, #4] - 8003888: 2200 movs r2, #0 - 800388a: 711a strb r2, [r3, #4] - { - } - 800388c: 687b ldr r3, [r7, #4] - 800388e: 4618 mov r0, r3 - 8003890: 3708 adds r7, #8 - 8003892: 46bd mov sp, r7 - 8003894: bd80 pop {r7, pc} - 8003896: bf00 nop - 8003898: 080060ec .word 0x080060ec + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + 800382a: f7fc fe8d bl 8000548 + /* USER CODE BEGIN Init */ -0800389c <_ZNK8std_msgs5UInt89serializeEPh>: + /* USER CODE END Init */ - virtual int serialize(unsigned char *outbuffer) const - 800389c: b480 push {r7} - 800389e: b085 sub sp, #20 - 80038a0: af00 add r7, sp, #0 - 80038a2: 6078 str r0, [r7, #4] - 80038a4: 6039 str r1, [r7, #0] - { - int offset = 0; - 80038a6: 2300 movs r3, #0 - 80038a8: 60fb str r3, [r7, #12] - *(outbuffer + offset + 0) = (this->data >> (8 * 0)) & 0xFF; - 80038aa: 68fb ldr r3, [r7, #12] - 80038ac: 683a ldr r2, [r7, #0] - 80038ae: 4413 add r3, r2 - 80038b0: 687a ldr r2, [r7, #4] - 80038b2: 7912 ldrb r2, [r2, #4] - 80038b4: 701a strb r2, [r3, #0] - offset += sizeof(this->data); - 80038b6: 68fb ldr r3, [r7, #12] - 80038b8: 3301 adds r3, #1 - 80038ba: 60fb str r3, [r7, #12] - return offset; - 80038bc: 68fb ldr r3, [r7, #12] - } - 80038be: 4618 mov r0, r3 - 80038c0: 3714 adds r7, #20 - 80038c2: 46bd mov sp, r7 - 80038c4: f85d 7b04 ldr.w r7, [sp], #4 - 80038c8: 4770 bx lr + /* Configure the system clock */ + SystemClock_Config(); + 800382e: f000 f80d bl 800384c <_Z18SystemClock_Configv> + /* USER CODE BEGIN SysInit */ -080038ca <_ZN8std_msgs5UInt811deserializeEPh>: + /* USER CODE END SysInit */ - virtual int deserialize(unsigned char *inbuffer) - 80038ca: b480 push {r7} - 80038cc: b085 sub sp, #20 - 80038ce: af00 add r7, sp, #0 - 80038d0: 6078 str r0, [r7, #4] - 80038d2: 6039 str r1, [r7, #0] - { - int offset = 0; - 80038d4: 2300 movs r3, #0 - 80038d6: 60fb str r3, [r7, #12] - this->data = ((uint8_t) (*(inbuffer + offset))); - 80038d8: 68fb ldr r3, [r7, #12] - 80038da: 683a ldr r2, [r7, #0] - 80038dc: 4413 add r3, r2 - 80038de: 781a ldrb r2, [r3, #0] - 80038e0: 687b ldr r3, [r7, #4] - 80038e2: 711a strb r2, [r3, #4] - offset += sizeof(this->data); - 80038e4: 68fb ldr r3, [r7, #12] - 80038e6: 3301 adds r3, #1 - 80038e8: 60fb str r3, [r7, #12] - return offset; - 80038ea: 68fb ldr r3, [r7, #12] - } - 80038ec: 4618 mov r0, r3 - 80038ee: 3714 adds r7, #20 - 80038f0: 46bd mov sp, r7 - 80038f2: f85d 7b04 ldr.w r7, [sp], #4 - 80038f6: 4770 bx lr + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + 8003832: f000 f94b bl 8003acc <_ZL12MX_GPIO_Initv> + MX_DMA_Init(); + 8003836: f000 f923 bl 8003a80 <_ZL11MX_DMA_Initv> + MX_TIM2_Init(); + 800383a: f000 f891 bl 8003960 <_ZL12MX_TIM2_Initv> + MX_USART3_UART_Init(); + 800383e: f000 f8eb bl 8003a18 <_ZL19MX_USART3_UART_Initv> + /* USER CODE BEGIN 2 */ + setup(); + 8003842: f001 f98f bl 8004b64 <_Z5setupv> + /* USER CODE END 2 */ -080038f8 <_ZN8std_msgs5UInt87getTypeEv>: + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) { + loop(); + 8003846: f001 f99d bl 8004b84 <_Z4loopv> + 800384a: e7fc b.n 8003846 - const char * getType(){ return "std_msgs/UInt8"; }; - 80038f8: b480 push {r7} - 80038fa: b083 sub sp, #12 - 80038fc: af00 add r7, sp, #0 - 80038fe: 6078 str r0, [r7, #4] - 8003900: 4b03 ldr r3, [pc, #12] ; (8003910 <_ZN8std_msgs5UInt87getTypeEv+0x18>) - 8003902: 4618 mov r0, r3 - 8003904: 370c adds r7, #12 - 8003906: 46bd mov sp, r7 - 8003908: f85d 7b04 ldr.w r7, [sp], #4 - 800390c: 4770 bx lr - 800390e: bf00 nop - 8003910: 08005ec0 .word 0x08005ec0 - -08003914 <_ZN8std_msgs5UInt86getMD5Ev>: - const char * getMD5(){ return "7c8164229e7d2c17eb95e9231617fdee"; }; - 8003914: b480 push {r7} - 8003916: b083 sub sp, #12 - 8003918: af00 add r7, sp, #0 - 800391a: 6078 str r0, [r7, #4] - 800391c: 4b03 ldr r3, [pc, #12] ; (800392c <_ZN8std_msgs5UInt86getMD5Ev+0x18>) - 800391e: 4618 mov r0, r3 - 8003920: 370c adds r7, #12 - 8003922: 46bd mov sp, r7 - 8003924: f85d 7b04 ldr.w r7, [sp], #4 - 8003928: 4770 bx lr - 800392a: bf00 nop - 800392c: 08005ed0 .word 0x08005ed0 - -08003930 <_ZN3ros4TimeC1Ev>: -class Time +0800384c <_Z18SystemClock_Configv>: +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) { -public: - uint32_t sec, nsec; + 800384c: b580 push {r7, lr} + 800384e: b0b8 sub sp, #224 ; 0xe0 + 8003850: af00 add r7, sp, #0 + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + 8003852: f107 03ac add.w r3, r7, #172 ; 0xac + 8003856: 2234 movs r2, #52 ; 0x34 + 8003858: 2100 movs r1, #0 + 800385a: 4618 mov r0, r3 + 800385c: f002 fa19 bl 8005c92 + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + 8003860: f107 0398 add.w r3, r7, #152 ; 0x98 + 8003864: 2200 movs r2, #0 + 8003866: 601a str r2, [r3, #0] + 8003868: 605a str r2, [r3, #4] + 800386a: 609a str r2, [r3, #8] + 800386c: 60da str r2, [r3, #12] + 800386e: 611a str r2, [r3, #16] + RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; + 8003870: f107 0308 add.w r3, r7, #8 + 8003874: 2290 movs r2, #144 ; 0x90 + 8003876: 2100 movs r1, #0 + 8003878: 4618 mov r0, r3 + 800387a: f002 fa0a bl 8005c92 - Time() : sec(0), nsec(0) {} - 8003930: b480 push {r7} - 8003932: b083 sub sp, #12 - 8003934: af00 add r7, sp, #0 - 8003936: 6078 str r0, [r7, #4] - 8003938: 687b ldr r3, [r7, #4] - 800393a: 2200 movs r2, #0 - 800393c: 601a str r2, [r3, #0] - 800393e: 687b ldr r3, [r7, #4] - 8003940: 2200 movs r2, #0 - 8003942: 605a str r2, [r3, #4] - 8003944: 687b ldr r3, [r7, #4] - 8003946: 4618 mov r0, r3 - 8003948: 370c adds r7, #12 - 800394a: 46bd mov sp, r7 - 800394c: f85d 7b04 ldr.w r7, [sp], #4 - 8003950: 4770 bx lr - ... + /** Configure the main internal regulator output voltage + */ + __HAL_RCC_PWR_CLK_ENABLE(); + 800387e: 4b36 ldr r3, [pc, #216] ; (8003958 <_Z18SystemClock_Configv+0x10c>) + 8003880: 6c1b ldr r3, [r3, #64] ; 0x40 + 8003882: 4a35 ldr r2, [pc, #212] ; (8003958 <_Z18SystemClock_Configv+0x10c>) + 8003884: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8003888: 6413 str r3, [r2, #64] ; 0x40 + 800388a: 4b33 ldr r3, [pc, #204] ; (8003958 <_Z18SystemClock_Configv+0x10c>) + 800388c: 6c1b ldr r3, [r3, #64] ; 0x40 + 800388e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8003892: 607b str r3, [r7, #4] + 8003894: 687b ldr r3, [r7, #4] + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3); + 8003896: 4b31 ldr r3, [pc, #196] ; (800395c <_Z18SystemClock_Configv+0x110>) + 8003898: 681b ldr r3, [r3, #0] + 800389a: f423 4340 bic.w r3, r3, #49152 ; 0xc000 + 800389e: 4a2f ldr r2, [pc, #188] ; (800395c <_Z18SystemClock_Configv+0x110>) + 80038a0: f443 4380 orr.w r3, r3, #16384 ; 0x4000 + 80038a4: 6013 str r3, [r2, #0] + 80038a6: 4b2d ldr r3, [pc, #180] ; (800395c <_Z18SystemClock_Configv+0x110>) + 80038a8: 681b ldr r3, [r3, #0] + 80038aa: f403 4340 and.w r3, r3, #49152 ; 0xc000 + 80038ae: 603b str r3, [r7, #0] + 80038b0: 683b ldr r3, [r7, #0] + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + 80038b2: 2302 movs r3, #2 + 80038b4: f8c7 30ac str.w r3, [r7, #172] ; 0xac + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + 80038b8: 2301 movs r3, #1 + 80038ba: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8 + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + 80038be: 2310 movs r3, #16 + 80038c0: f8c7 30bc str.w r3, [r7, #188] ; 0xbc + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; + 80038c4: 2300 movs r3, #0 + 80038c6: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + 80038ca: f107 03ac add.w r3, r7, #172 ; 0xac + 80038ce: 4618 mov r0, r3 + 80038d0: f7fd fd42 bl 8001358 + 80038d4: 4603 mov r3, r0 + 80038d6: 2b00 cmp r3, #0 + 80038d8: bf14 ite ne + 80038da: 2301 movne r3, #1 + 80038dc: 2300 moveq r3, #0 + 80038de: b2db uxtb r3, r3 + 80038e0: 2b00 cmp r3, #0 + 80038e2: d001 beq.n 80038e8 <_Z18SystemClock_Configv+0x9c> + { + Error_Handler(); + 80038e4: f000 f932 bl 8003b4c + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + 80038e8: 230f movs r3, #15 + 80038ea: f8c7 3098 str.w r3, [r7, #152] ; 0x98 + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; + 80038ee: 2300 movs r3, #0 + 80038f0: f8c7 309c str.w r3, [r7, #156] ; 0x9c + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + 80038f4: 2300 movs r3, #0 + 80038f6: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + 80038fa: 2300 movs r3, #0 + 80038fc: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + 8003900: 2300 movs r3, #0 + 8003902: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 -08003954 <_ZN8std_msgs4TimeC1Ev>: + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) + 8003906: f107 0398 add.w r3, r7, #152 ; 0x98 + 800390a: 2100 movs r1, #0 + 800390c: 4618 mov r0, r3 + 800390e: f7fd ff95 bl 800183c + 8003912: 4603 mov r3, r0 + 8003914: 2b00 cmp r3, #0 + 8003916: bf14 ite ne + 8003918: 2301 movne r3, #1 + 800391a: 2300 moveq r3, #0 + 800391c: b2db uxtb r3, r3 + 800391e: 2b00 cmp r3, #0 + 8003920: d001 beq.n 8003926 <_Z18SystemClock_Configv+0xda> { - public: - typedef ros::Time _data_type; - _data_type data; + Error_Handler(); + 8003922: f000 f913 bl 8003b4c + } + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3; + 8003926: f44f 7380 mov.w r3, #256 ; 0x100 + 800392a: 60bb str r3, [r7, #8] + PeriphClkInitStruct.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1; + 800392c: 2300 movs r3, #0 + 800392e: 657b str r3, [r7, #84] ; 0x54 + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) + 8003930: f107 0308 add.w r3, r7, #8 + 8003934: 4618 mov r0, r3 + 8003936: f7fe f94f bl 8001bd8 + 800393a: 4603 mov r3, r0 + 800393c: 2b00 cmp r3, #0 + 800393e: bf14 ite ne + 8003940: 2301 movne r3, #1 + 8003942: 2300 moveq r3, #0 + 8003944: b2db uxtb r3, r3 + 8003946: 2b00 cmp r3, #0 + 8003948: d001 beq.n 800394e <_Z18SystemClock_Configv+0x102> + { + Error_Handler(); + 800394a: f000 f8ff bl 8003b4c + } +} + 800394e: bf00 nop + 8003950: 37e0 adds r7, #224 ; 0xe0 + 8003952: 46bd mov sp, r7 + 8003954: bd80 pop {r7, pc} + 8003956: bf00 nop + 8003958: 40023800 .word 0x40023800 + 800395c: 40007000 .word 0x40007000 + +08003960 <_ZL12MX_TIM2_Initv>: + * @brief TIM2 Initialization Function + * @param None + * @retval None + */ +static void MX_TIM2_Init(void) +{ + 8003960: b580 push {r7, lr} + 8003962: b088 sub sp, #32 + 8003964: af00 add r7, sp, #0 - Time(): - 8003954: b580 push {r7, lr} - 8003956: b082 sub sp, #8 - 8003958: af00 add r7, sp, #0 - 800395a: 6078 str r0, [r7, #4] - data() - 800395c: 687b ldr r3, [r7, #4] - 800395e: 4618 mov r0, r3 - 8003960: f7ff ff76 bl 8003850 <_ZN3ros3MsgC1Ev> - 8003964: 4a06 ldr r2, [pc, #24] ; (8003980 <_ZN8std_msgs4TimeC1Ev+0x2c>) - 8003966: 687b ldr r3, [r7, #4] - 8003968: 601a str r2, [r3, #0] - 800396a: 687b ldr r3, [r7, #4] - 800396c: 3304 adds r3, #4 - 800396e: 4618 mov r0, r3 - 8003970: f7ff ffde bl 8003930 <_ZN3ros4TimeC1Ev> - { - } - 8003974: 687b ldr r3, [r7, #4] - 8003976: 4618 mov r0, r3 - 8003978: 3708 adds r7, #8 - 800397a: 46bd mov sp, r7 - 800397c: bd80 pop {r7, pc} - 800397e: bf00 nop - 8003980: 080060d4 .word 0x080060d4 + /* USER CODE BEGIN TIM2_Init 0 */ -08003984 <_ZNK8std_msgs4Time9serializeEPh>: + /* USER CODE END TIM2_Init 0 */ - virtual int serialize(unsigned char *outbuffer) const - 8003984: b480 push {r7} - 8003986: b085 sub sp, #20 - 8003988: af00 add r7, sp, #0 - 800398a: 6078 str r0, [r7, #4] - 800398c: 6039 str r1, [r7, #0] - { - int offset = 0; - 800398e: 2300 movs r3, #0 - 8003990: 60fb str r3, [r7, #12] - *(outbuffer + offset + 0) = (this->data.sec >> (8 * 0)) & 0xFF; - 8003992: 687b ldr r3, [r7, #4] - 8003994: 6859 ldr r1, [r3, #4] - 8003996: 68fb ldr r3, [r7, #12] - 8003998: 683a ldr r2, [r7, #0] - 800399a: 4413 add r3, r2 - 800399c: b2ca uxtb r2, r1 - 800399e: 701a strb r2, [r3, #0] - *(outbuffer + offset + 1) = (this->data.sec >> (8 * 1)) & 0xFF; - 80039a0: 687b ldr r3, [r7, #4] - 80039a2: 685b ldr r3, [r3, #4] - 80039a4: 0a19 lsrs r1, r3, #8 - 80039a6: 68fb ldr r3, [r7, #12] - 80039a8: 3301 adds r3, #1 - 80039aa: 683a ldr r2, [r7, #0] - 80039ac: 4413 add r3, r2 - 80039ae: b2ca uxtb r2, r1 - 80039b0: 701a strb r2, [r3, #0] - *(outbuffer + offset + 2) = (this->data.sec >> (8 * 2)) & 0xFF; - 80039b2: 687b ldr r3, [r7, #4] - 80039b4: 685b ldr r3, [r3, #4] - 80039b6: 0c19 lsrs r1, r3, #16 - 80039b8: 68fb ldr r3, [r7, #12] - 80039ba: 3302 adds r3, #2 - 80039bc: 683a ldr r2, [r7, #0] - 80039be: 4413 add r3, r2 - 80039c0: b2ca uxtb r2, r1 - 80039c2: 701a strb r2, [r3, #0] - *(outbuffer + offset + 3) = (this->data.sec >> (8 * 3)) & 0xFF; - 80039c4: 687b ldr r3, [r7, #4] - 80039c6: 685b ldr r3, [r3, #4] - 80039c8: 0e19 lsrs r1, r3, #24 - 80039ca: 68fb ldr r3, [r7, #12] - 80039cc: 3303 adds r3, #3 - 80039ce: 683a ldr r2, [r7, #0] - 80039d0: 4413 add r3, r2 - 80039d2: b2ca uxtb r2, r1 - 80039d4: 701a strb r2, [r3, #0] - offset += sizeof(this->data.sec); - 80039d6: 68fb ldr r3, [r7, #12] - 80039d8: 3304 adds r3, #4 - 80039da: 60fb str r3, [r7, #12] - *(outbuffer + offset + 0) = (this->data.nsec >> (8 * 0)) & 0xFF; - 80039dc: 687b ldr r3, [r7, #4] - 80039de: 6899 ldr r1, [r3, #8] - 80039e0: 68fb ldr r3, [r7, #12] - 80039e2: 683a ldr r2, [r7, #0] - 80039e4: 4413 add r3, r2 - 80039e6: b2ca uxtb r2, r1 - 80039e8: 701a strb r2, [r3, #0] - *(outbuffer + offset + 1) = (this->data.nsec >> (8 * 1)) & 0xFF; - 80039ea: 687b ldr r3, [r7, #4] - 80039ec: 689b ldr r3, [r3, #8] - 80039ee: 0a19 lsrs r1, r3, #8 - 80039f0: 68fb ldr r3, [r7, #12] - 80039f2: 3301 adds r3, #1 - 80039f4: 683a ldr r2, [r7, #0] - 80039f6: 4413 add r3, r2 - 80039f8: b2ca uxtb r2, r1 - 80039fa: 701a strb r2, [r3, #0] - *(outbuffer + offset + 2) = (this->data.nsec >> (8 * 2)) & 0xFF; - 80039fc: 687b ldr r3, [r7, #4] - 80039fe: 689b ldr r3, [r3, #8] - 8003a00: 0c19 lsrs r1, r3, #16 - 8003a02: 68fb ldr r3, [r7, #12] - 8003a04: 3302 adds r3, #2 - 8003a06: 683a ldr r2, [r7, #0] - 8003a08: 4413 add r3, r2 - 8003a0a: b2ca uxtb r2, r1 - 8003a0c: 701a strb r2, [r3, #0] - *(outbuffer + offset + 3) = (this->data.nsec >> (8 * 3)) & 0xFF; - 8003a0e: 687b ldr r3, [r7, #4] - 8003a10: 689b ldr r3, [r3, #8] - 8003a12: 0e19 lsrs r1, r3, #24 - 8003a14: 68fb ldr r3, [r7, #12] - 8003a16: 3303 adds r3, #3 - 8003a18: 683a ldr r2, [r7, #0] - 8003a1a: 4413 add r3, r2 - 8003a1c: b2ca uxtb r2, r1 - 8003a1e: 701a strb r2, [r3, #0] - offset += sizeof(this->data.nsec); - 8003a20: 68fb ldr r3, [r7, #12] - 8003a22: 3304 adds r3, #4 - 8003a24: 60fb str r3, [r7, #12] - return offset; - 8003a26: 68fb ldr r3, [r7, #12] - } - 8003a28: 4618 mov r0, r3 - 8003a2a: 3714 adds r7, #20 - 8003a2c: 46bd mov sp, r7 - 8003a2e: f85d 7b04 ldr.w r7, [sp], #4 - 8003a32: 4770 bx lr + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + 8003966: f107 0310 add.w r3, r7, #16 + 800396a: 2200 movs r2, #0 + 800396c: 601a str r2, [r3, #0] + 800396e: 605a str r2, [r3, #4] + 8003970: 609a str r2, [r3, #8] + 8003972: 60da str r2, [r3, #12] + TIM_MasterConfigTypeDef sMasterConfig = {0}; + 8003974: 1d3b adds r3, r7, #4 + 8003976: 2200 movs r2, #0 + 8003978: 601a str r2, [r3, #0] + 800397a: 605a str r2, [r3, #4] + 800397c: 609a str r2, [r3, #8] -08003a34 <_ZN8std_msgs4Time11deserializeEPh>: + /* USER CODE BEGIN TIM2_Init 1 */ - virtual int deserialize(unsigned char *inbuffer) - 8003a34: b480 push {r7} - 8003a36: b085 sub sp, #20 - 8003a38: af00 add r7, sp, #0 - 8003a3a: 6078 str r0, [r7, #4] - 8003a3c: 6039 str r1, [r7, #0] - { - int offset = 0; - 8003a3e: 2300 movs r3, #0 - 8003a40: 60fb str r3, [r7, #12] - this->data.sec = ((uint32_t) (*(inbuffer + offset))); - 8003a42: 68fb ldr r3, [r7, #12] - 8003a44: 683a ldr r2, [r7, #0] - 8003a46: 4413 add r3, r2 - 8003a48: 781b ldrb r3, [r3, #0] - 8003a4a: 461a mov r2, r3 - 8003a4c: 687b ldr r3, [r7, #4] - 8003a4e: 605a str r2, [r3, #4] - this->data.sec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 8003a50: 687b ldr r3, [r7, #4] - 8003a52: 685a ldr r2, [r3, #4] - 8003a54: 68fb ldr r3, [r7, #12] - 8003a56: 3301 adds r3, #1 - 8003a58: 6839 ldr r1, [r7, #0] - 8003a5a: 440b add r3, r1 - 8003a5c: 781b ldrb r3, [r3, #0] - 8003a5e: 021b lsls r3, r3, #8 - 8003a60: 431a orrs r2, r3 - 8003a62: 687b ldr r3, [r7, #4] - 8003a64: 605a str r2, [r3, #4] - this->data.sec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 8003a66: 687b ldr r3, [r7, #4] - 8003a68: 685a ldr r2, [r3, #4] - 8003a6a: 68fb ldr r3, [r7, #12] - 8003a6c: 3302 adds r3, #2 - 8003a6e: 6839 ldr r1, [r7, #0] - 8003a70: 440b add r3, r1 - 8003a72: 781b ldrb r3, [r3, #0] - 8003a74: 041b lsls r3, r3, #16 - 8003a76: 431a orrs r2, r3 - 8003a78: 687b ldr r3, [r7, #4] - 8003a7a: 605a str r2, [r3, #4] - this->data.sec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 8003a7c: 687b ldr r3, [r7, #4] - 8003a7e: 685a ldr r2, [r3, #4] - 8003a80: 68fb ldr r3, [r7, #12] - 8003a82: 3303 adds r3, #3 - 8003a84: 6839 ldr r1, [r7, #0] - 8003a86: 440b add r3, r1 - 8003a88: 781b ldrb r3, [r3, #0] - 8003a8a: 061b lsls r3, r3, #24 - 8003a8c: 431a orrs r2, r3 - 8003a8e: 687b ldr r3, [r7, #4] - 8003a90: 605a str r2, [r3, #4] - offset += sizeof(this->data.sec); - 8003a92: 68fb ldr r3, [r7, #12] - 8003a94: 3304 adds r3, #4 - 8003a96: 60fb str r3, [r7, #12] - this->data.nsec = ((uint32_t) (*(inbuffer + offset))); - 8003a98: 68fb ldr r3, [r7, #12] - 8003a9a: 683a ldr r2, [r7, #0] - 8003a9c: 4413 add r3, r2 - 8003a9e: 781b ldrb r3, [r3, #0] - 8003aa0: 461a mov r2, r3 - 8003aa2: 687b ldr r3, [r7, #4] - 8003aa4: 609a str r2, [r3, #8] - this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 8003aa6: 687b ldr r3, [r7, #4] - 8003aa8: 689a ldr r2, [r3, #8] - 8003aaa: 68fb ldr r3, [r7, #12] - 8003aac: 3301 adds r3, #1 - 8003aae: 6839 ldr r1, [r7, #0] - 8003ab0: 440b add r3, r1 - 8003ab2: 781b ldrb r3, [r3, #0] - 8003ab4: 021b lsls r3, r3, #8 - 8003ab6: 431a orrs r2, r3 - 8003ab8: 687b ldr r3, [r7, #4] - 8003aba: 609a str r2, [r3, #8] - this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 8003abc: 687b ldr r3, [r7, #4] - 8003abe: 689a ldr r2, [r3, #8] - 8003ac0: 68fb ldr r3, [r7, #12] - 8003ac2: 3302 adds r3, #2 - 8003ac4: 6839 ldr r1, [r7, #0] - 8003ac6: 440b add r3, r1 - 8003ac8: 781b ldrb r3, [r3, #0] - 8003aca: 041b lsls r3, r3, #16 - 8003acc: 431a orrs r2, r3 - 8003ace: 687b ldr r3, [r7, #4] - 8003ad0: 609a str r2, [r3, #8] - this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 8003ad2: 687b ldr r3, [r7, #4] - 8003ad4: 689a ldr r2, [r3, #8] - 8003ad6: 68fb ldr r3, [r7, #12] - 8003ad8: 3303 adds r3, #3 - 8003ada: 6839 ldr r1, [r7, #0] - 8003adc: 440b add r3, r1 - 8003ade: 781b ldrb r3, [r3, #0] - 8003ae0: 061b lsls r3, r3, #24 - 8003ae2: 431a orrs r2, r3 - 8003ae4: 687b ldr r3, [r7, #4] - 8003ae6: 609a str r2, [r3, #8] - offset += sizeof(this->data.nsec); - 8003ae8: 68fb ldr r3, [r7, #12] - 8003aea: 3304 adds r3, #4 - 8003aec: 60fb str r3, [r7, #12] - return offset; - 8003aee: 68fb ldr r3, [r7, #12] - } - 8003af0: 4618 mov r0, r3 - 8003af2: 3714 adds r7, #20 - 8003af4: 46bd mov sp, r7 - 8003af6: f85d 7b04 ldr.w r7, [sp], #4 - 8003afa: 4770 bx lr + /* USER CODE END TIM2_Init 1 */ + htim2.Instance = TIM2; + 800397e: 4b25 ldr r3, [pc, #148] ; (8003a14 <_ZL12MX_TIM2_Initv+0xb4>) + 8003980: f04f 4280 mov.w r2, #1073741824 ; 0x40000000 + 8003984: 601a str r2, [r3, #0] + htim2.Init.Prescaler = 0; + 8003986: 4b23 ldr r3, [pc, #140] ; (8003a14 <_ZL12MX_TIM2_Initv+0xb4>) + 8003988: 2200 movs r2, #0 + 800398a: 605a str r2, [r3, #4] + htim2.Init.CounterMode = TIM_COUNTERMODE_UP; + 800398c: 4b21 ldr r3, [pc, #132] ; (8003a14 <_ZL12MX_TIM2_Initv+0xb4>) + 800398e: 2200 movs r2, #0 + 8003990: 609a str r2, [r3, #8] + htim2.Init.Period = 0; + 8003992: 4b20 ldr r3, [pc, #128] ; (8003a14 <_ZL12MX_TIM2_Initv+0xb4>) + 8003994: 2200 movs r2, #0 + 8003996: 60da str r2, [r3, #12] + htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + 8003998: 4b1e ldr r3, [pc, #120] ; (8003a14 <_ZL12MX_TIM2_Initv+0xb4>) + 800399a: 2200 movs r2, #0 + 800399c: 611a str r2, [r3, #16] + htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + 800399e: 4b1d ldr r3, [pc, #116] ; (8003a14 <_ZL12MX_TIM2_Initv+0xb4>) + 80039a0: 2200 movs r2, #0 + 80039a2: 619a str r2, [r3, #24] + if (HAL_TIM_Base_Init(&htim2) != HAL_OK) + 80039a4: 481b ldr r0, [pc, #108] ; (8003a14 <_ZL12MX_TIM2_Initv+0xb4>) + 80039a6: f7fe fd3d bl 8002424 + 80039aa: 4603 mov r3, r0 + 80039ac: 2b00 cmp r3, #0 + 80039ae: bf14 ite ne + 80039b0: 2301 movne r3, #1 + 80039b2: 2300 moveq r3, #0 + 80039b4: b2db uxtb r3, r3 + 80039b6: 2b00 cmp r3, #0 + 80039b8: d001 beq.n 80039be <_ZL12MX_TIM2_Initv+0x5e> + { + Error_Handler(); + 80039ba: f000 f8c7 bl 8003b4c + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + 80039be: f44f 5380 mov.w r3, #4096 ; 0x1000 + 80039c2: 613b str r3, [r7, #16] + if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) + 80039c4: f107 0310 add.w r3, r7, #16 + 80039c8: 4619 mov r1, r3 + 80039ca: 4812 ldr r0, [pc, #72] ; (8003a14 <_ZL12MX_TIM2_Initv+0xb4>) + 80039cc: f7fe fd80 bl 80024d0 + 80039d0: 4603 mov r3, r0 + 80039d2: 2b00 cmp r3, #0 + 80039d4: bf14 ite ne + 80039d6: 2301 movne r3, #1 + 80039d8: 2300 moveq r3, #0 + 80039da: b2db uxtb r3, r3 + 80039dc: 2b00 cmp r3, #0 + 80039de: d001 beq.n 80039e4 <_ZL12MX_TIM2_Initv+0x84> + { + Error_Handler(); + 80039e0: f000 f8b4 bl 8003b4c + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + 80039e4: 2300 movs r3, #0 + 80039e6: 607b str r3, [r7, #4] + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + 80039e8: 2300 movs r3, #0 + 80039ea: 60fb str r3, [r7, #12] + if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) + 80039ec: 1d3b adds r3, r7, #4 + 80039ee: 4619 mov r1, r3 + 80039f0: 4808 ldr r0, [pc, #32] ; (8003a14 <_ZL12MX_TIM2_Initv+0xb4>) + 80039f2: f7fe ff61 bl 80028b8 + 80039f6: 4603 mov r3, r0 + 80039f8: 2b00 cmp r3, #0 + 80039fa: bf14 ite ne + 80039fc: 2301 movne r3, #1 + 80039fe: 2300 moveq r3, #0 + 8003a00: b2db uxtb r3, r3 + 8003a02: 2b00 cmp r3, #0 + 8003a04: d001 beq.n 8003a0a <_ZL12MX_TIM2_Initv+0xaa> + { + Error_Handler(); + 8003a06: f000 f8a1 bl 8003b4c + } + /* USER CODE BEGIN TIM2_Init 2 */ -08003afc <_ZN8std_msgs4Time7getTypeEv>: + /* USER CODE END TIM2_Init 2 */ - const char * getType(){ return "std_msgs/Time"; }; - 8003afc: b480 push {r7} - 8003afe: b083 sub sp, #12 - 8003b00: af00 add r7, sp, #0 - 8003b02: 6078 str r0, [r7, #4] - 8003b04: 4b03 ldr r3, [pc, #12] ; (8003b14 <_ZN8std_msgs4Time7getTypeEv+0x18>) - 8003b06: 4618 mov r0, r3 - 8003b08: 370c adds r7, #12 - 8003b0a: 46bd mov sp, r7 - 8003b0c: f85d 7b04 ldr.w r7, [sp], #4 - 8003b10: 4770 bx lr - 8003b12: bf00 nop - 8003b14: 08005ef4 .word 0x08005ef4 - -08003b18 <_ZN8std_msgs4Time6getMD5Ev>: - const char * getMD5(){ return "cd7166c74c552c311fbcc2fe5a7bc289"; }; - 8003b18: b480 push {r7} - 8003b1a: b083 sub sp, #12 - 8003b1c: af00 add r7, sp, #0 - 8003b1e: 6078 str r0, [r7, #4] - 8003b20: 4b03 ldr r3, [pc, #12] ; (8003b30 <_ZN8std_msgs4Time6getMD5Ev+0x18>) - 8003b22: 4618 mov r0, r3 - 8003b24: 370c adds r7, #12 - 8003b26: 46bd mov sp, r7 - 8003b28: f85d 7b04 ldr.w r7, [sp], #4 - 8003b2c: 4770 bx lr - 8003b2e: bf00 nop - 8003b30: 08005f04 .word 0x08005f04 - -08003b34 <_ZN14rosserial_msgs9TopicInfoC1Ev>: - enum { ID_PARAMETER_REQUEST = 6 }; - enum { ID_LOG = 7 }; - enum { ID_TIME = 10 }; - enum { ID_TX_STOP = 11 }; +} + 8003a0a: bf00 nop + 8003a0c: 3720 adds r7, #32 + 8003a0e: 46bd mov sp, r7 + 8003a10: bd80 pop {r7, pc} + 8003a12: bf00 nop + 8003a14: 20000090 .word 0x20000090 + +08003a18 <_ZL19MX_USART3_UART_Initv>: + * @brief USART3 Initialization Function + * @param None + * @retval None + */ +static void MX_USART3_UART_Init(void) +{ + 8003a18: b580 push {r7, lr} + 8003a1a: af00 add r7, sp, #0 + /* USER CODE END USART3_Init 0 */ - TopicInfo(): - 8003b34: b580 push {r7, lr} - 8003b36: b082 sub sp, #8 - 8003b38: af00 add r7, sp, #0 - 8003b3a: 6078 str r0, [r7, #4] + /* USER CODE BEGIN USART3_Init 1 */ + + /* USER CODE END USART3_Init 1 */ + huart3.Instance = USART3; + 8003a1c: 4b16 ldr r3, [pc, #88] ; (8003a78 <_ZL19MX_USART3_UART_Initv+0x60>) + 8003a1e: 4a17 ldr r2, [pc, #92] ; (8003a7c <_ZL19MX_USART3_UART_Initv+0x64>) + 8003a20: 601a str r2, [r3, #0] + huart3.Init.BaudRate = 115200; + 8003a22: 4b15 ldr r3, [pc, #84] ; (8003a78 <_ZL19MX_USART3_UART_Initv+0x60>) + 8003a24: f44f 32e1 mov.w r2, #115200 ; 0x1c200 + 8003a28: 605a str r2, [r3, #4] + huart3.Init.WordLength = UART_WORDLENGTH_8B; + 8003a2a: 4b13 ldr r3, [pc, #76] ; (8003a78 <_ZL19MX_USART3_UART_Initv+0x60>) + 8003a2c: 2200 movs r2, #0 + 8003a2e: 609a str r2, [r3, #8] + huart3.Init.StopBits = UART_STOPBITS_1; + 8003a30: 4b11 ldr r3, [pc, #68] ; (8003a78 <_ZL19MX_USART3_UART_Initv+0x60>) + 8003a32: 2200 movs r2, #0 + 8003a34: 60da str r2, [r3, #12] + huart3.Init.Parity = UART_PARITY_NONE; + 8003a36: 4b10 ldr r3, [pc, #64] ; (8003a78 <_ZL19MX_USART3_UART_Initv+0x60>) + 8003a38: 2200 movs r2, #0 + 8003a3a: 611a str r2, [r3, #16] + huart3.Init.Mode = UART_MODE_TX_RX; + 8003a3c: 4b0e ldr r3, [pc, #56] ; (8003a78 <_ZL19MX_USART3_UART_Initv+0x60>) + 8003a3e: 220c movs r2, #12 + 8003a40: 615a str r2, [r3, #20] + huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; + 8003a42: 4b0d ldr r3, [pc, #52] ; (8003a78 <_ZL19MX_USART3_UART_Initv+0x60>) + 8003a44: 2200 movs r2, #0 + 8003a46: 619a str r2, [r3, #24] + huart3.Init.OverSampling = UART_OVERSAMPLING_16; + 8003a48: 4b0b ldr r3, [pc, #44] ; (8003a78 <_ZL19MX_USART3_UART_Initv+0x60>) + 8003a4a: 2200 movs r2, #0 + 8003a4c: 61da str r2, [r3, #28] + huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + 8003a4e: 4b0a ldr r3, [pc, #40] ; (8003a78 <_ZL19MX_USART3_UART_Initv+0x60>) + 8003a50: 2200 movs r2, #0 + 8003a52: 621a str r2, [r3, #32] + huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + 8003a54: 4b08 ldr r3, [pc, #32] ; (8003a78 <_ZL19MX_USART3_UART_Initv+0x60>) + 8003a56: 2200 movs r2, #0 + 8003a58: 625a str r2, [r3, #36] ; 0x24 + if (HAL_UART_Init(&huart3) != HAL_OK) + 8003a5a: 4807 ldr r0, [pc, #28] ; (8003a78 <_ZL19MX_USART3_UART_Initv+0x60>) + 8003a5c: f7fe ff88 bl 8002970 + 8003a60: 4603 mov r3, r0 + 8003a62: 2b00 cmp r3, #0 + 8003a64: bf14 ite ne + 8003a66: 2301 movne r3, #1 + 8003a68: 2300 moveq r3, #0 + 8003a6a: b2db uxtb r3, r3 + 8003a6c: 2b00 cmp r3, #0 + 8003a6e: d001 beq.n 8003a74 <_ZL19MX_USART3_UART_Initv+0x5c> + { + Error_Handler(); + 8003a70: f000 f86c bl 8003b4c + } + /* USER CODE BEGIN USART3_Init 2 */ + + /* USER CODE END USART3_Init 2 */ + +} + 8003a74: bf00 nop + 8003a76: bd80 pop {r7, pc} + 8003a78: 200000d0 .word 0x200000d0 + 8003a7c: 40004800 .word 0x40004800 + +08003a80 <_ZL11MX_DMA_Initv>: + +/** + * Enable DMA controller clock + */ +static void MX_DMA_Init(void) +{ + 8003a80: b580 push {r7, lr} + 8003a82: b082 sub sp, #8 + 8003a84: af00 add r7, sp, #0 + + /* DMA controller clock enable */ + __HAL_RCC_DMA1_CLK_ENABLE(); + 8003a86: 4b10 ldr r3, [pc, #64] ; (8003ac8 <_ZL11MX_DMA_Initv+0x48>) + 8003a88: 6b1b ldr r3, [r3, #48] ; 0x30 + 8003a8a: 4a0f ldr r2, [pc, #60] ; (8003ac8 <_ZL11MX_DMA_Initv+0x48>) + 8003a8c: f443 1300 orr.w r3, r3, #2097152 ; 0x200000 + 8003a90: 6313 str r3, [r2, #48] ; 0x30 + 8003a92: 4b0d ldr r3, [pc, #52] ; (8003ac8 <_ZL11MX_DMA_Initv+0x48>) + 8003a94: 6b1b ldr r3, [r3, #48] ; 0x30 + 8003a96: f403 1300 and.w r3, r3, #2097152 ; 0x200000 + 8003a9a: 607b str r3, [r7, #4] + 8003a9c: 687b ldr r3, [r7, #4] + + /* DMA interrupt init */ + /* DMA1_Stream1_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0); + 8003a9e: 2200 movs r2, #0 + 8003aa0: 2100 movs r1, #0 + 8003aa2: 200c movs r0, #12 + 8003aa4: f7fc feab bl 80007fe + HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn); + 8003aa8: 200c movs r0, #12 + 8003aaa: f7fc fec4 bl 8000836 + /* DMA1_Stream3_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Stream3_IRQn, 0, 0); + 8003aae: 2200 movs r2, #0 + 8003ab0: 2100 movs r1, #0 + 8003ab2: 200e movs r0, #14 + 8003ab4: f7fc fea3 bl 80007fe + HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn); + 8003ab8: 200e movs r0, #14 + 8003aba: f7fc febc bl 8000836 + +} + 8003abe: bf00 nop + 8003ac0: 3708 adds r7, #8 + 8003ac2: 46bd mov sp, r7 + 8003ac4: bd80 pop {r7, pc} + 8003ac6: bf00 nop + 8003ac8: 40023800 .word 0x40023800 + +08003acc <_ZL12MX_GPIO_Initv>: + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + 8003acc: b580 push {r7, lr} + 8003ace: b088 sub sp, #32 + 8003ad0: af00 add r7, sp, #0 + GPIO_InitTypeDef GPIO_InitStruct = {0}; + 8003ad2: f107 030c add.w r3, r7, #12 + 8003ad6: 2200 movs r2, #0 + 8003ad8: 601a str r2, [r3, #0] + 8003ada: 605a str r2, [r3, #4] + 8003adc: 609a str r2, [r3, #8] + 8003ade: 60da str r2, [r3, #12] + 8003ae0: 611a str r2, [r3, #16] + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOF_CLK_ENABLE(); + 8003ae2: 4b18 ldr r3, [pc, #96] ; (8003b44 <_ZL12MX_GPIO_Initv+0x78>) + 8003ae4: 6b1b ldr r3, [r3, #48] ; 0x30 + 8003ae6: 4a17 ldr r2, [pc, #92] ; (8003b44 <_ZL12MX_GPIO_Initv+0x78>) + 8003ae8: f043 0320 orr.w r3, r3, #32 + 8003aec: 6313 str r3, [r2, #48] ; 0x30 + 8003aee: 4b15 ldr r3, [pc, #84] ; (8003b44 <_ZL12MX_GPIO_Initv+0x78>) + 8003af0: 6b1b ldr r3, [r3, #48] ; 0x30 + 8003af2: f003 0320 and.w r3, r3, #32 + 8003af6: 60bb str r3, [r7, #8] + 8003af8: 68bb ldr r3, [r7, #8] + __HAL_RCC_GPIOD_CLK_ENABLE(); + 8003afa: 4b12 ldr r3, [pc, #72] ; (8003b44 <_ZL12MX_GPIO_Initv+0x78>) + 8003afc: 6b1b ldr r3, [r3, #48] ; 0x30 + 8003afe: 4a11 ldr r2, [pc, #68] ; (8003b44 <_ZL12MX_GPIO_Initv+0x78>) + 8003b00: f043 0308 orr.w r3, r3, #8 + 8003b04: 6313 str r3, [r2, #48] ; 0x30 + 8003b06: 4b0f ldr r3, [pc, #60] ; (8003b44 <_ZL12MX_GPIO_Initv+0x78>) + 8003b08: 6b1b ldr r3, [r3, #48] ; 0x30 + 8003b0a: f003 0308 and.w r3, r3, #8 + 8003b0e: 607b str r3, [r7, #4] + 8003b10: 687b ldr r3, [r7, #4] + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(GPIOF, GPIO_PIN_15, GPIO_PIN_RESET); + 8003b12: 2200 movs r2, #0 + 8003b14: f44f 4100 mov.w r1, #32768 ; 0x8000 + 8003b18: 480b ldr r0, [pc, #44] ; (8003b48 <_ZL12MX_GPIO_Initv+0x7c>) + 8003b1a: f7fd fbe9 bl 80012f0 + + /*Configure GPIO pin : PF15 */ + GPIO_InitStruct.Pin = GPIO_PIN_15; + 8003b1e: f44f 4300 mov.w r3, #32768 ; 0x8000 + 8003b22: 60fb str r3, [r7, #12] + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + 8003b24: 2301 movs r3, #1 + 8003b26: 613b str r3, [r7, #16] + GPIO_InitStruct.Pull = GPIO_NOPULL; + 8003b28: 2300 movs r3, #0 + 8003b2a: 617b str r3, [r7, #20] + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + 8003b2c: 2300 movs r3, #0 + 8003b2e: 61bb str r3, [r7, #24] + HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); + 8003b30: f107 030c add.w r3, r7, #12 + 8003b34: 4619 mov r1, r3 + 8003b36: 4804 ldr r0, [pc, #16] ; (8003b48 <_ZL12MX_GPIO_Initv+0x7c>) + 8003b38: f7fd fa30 bl 8000f9c + +} + 8003b3c: bf00 nop + 8003b3e: 3720 adds r7, #32 + 8003b40: 46bd mov sp, r7 + 8003b42: bd80 pop {r7, pc} + 8003b44: 40023800 .word 0x40023800 + 8003b48: 40021400 .word 0x40021400 + +08003b4c : +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + 8003b4c: b480 push {r7} + 8003b4e: af00 add r7, sp, #0 + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + + /* USER CODE END Error_Handler_Debug */ +} + 8003b50: bf00 nop + 8003b52: 46bd mov sp, r7 + 8003b54: f85d 7b04 ldr.w r7, [sp], #4 + 8003b58: 4770 bx lr + ... + +08003b5c <_ZN3ros3MsgC1Ev>: + +namespace ros +{ + +/* Base Message Type */ +class Msg + 8003b5c: b480 push {r7} + 8003b5e: b083 sub sp, #12 + 8003b60: af00 add r7, sp, #0 + 8003b62: 6078 str r0, [r7, #4] + 8003b64: 4a04 ldr r2, [pc, #16] ; (8003b78 <_ZN3ros3MsgC1Ev+0x1c>) + 8003b66: 687b ldr r3, [r7, #4] + 8003b68: 601a str r2, [r3, #0] + 8003b6a: 687b ldr r3, [r7, #4] + 8003b6c: 4618 mov r0, r3 + 8003b6e: 370c adds r7, #12 + 8003b70: 46bd mov sp, r7 + 8003b72: f85d 7b04 ldr.w r7, [sp], #4 + 8003b76: 4770 bx lr + 8003b78: 08006168 .word 0x08006168 + +08003b7c <_ZN8std_msgs5UInt8C1Ev>: + { + public: + typedef uint8_t _data_type; + _data_type data; + + UInt8(): + 8003b7c: b580 push {r7, lr} + 8003b7e: b082 sub sp, #8 + 8003b80: af00 add r7, sp, #0 + 8003b82: 6078 str r0, [r7, #4] + data(0) + 8003b84: 687b ldr r3, [r7, #4] + 8003b86: 4618 mov r0, r3 + 8003b88: f7ff ffe8 bl 8003b5c <_ZN3ros3MsgC1Ev> + 8003b8c: 4a05 ldr r2, [pc, #20] ; (8003ba4 <_ZN8std_msgs5UInt8C1Ev+0x28>) + 8003b8e: 687b ldr r3, [r7, #4] + 8003b90: 601a str r2, [r3, #0] + 8003b92: 687b ldr r3, [r7, #4] + 8003b94: 2200 movs r2, #0 + 8003b96: 711a strb r2, [r3, #4] + { + } + 8003b98: 687b ldr r3, [r7, #4] + 8003b9a: 4618 mov r0, r3 + 8003b9c: 3708 adds r7, #8 + 8003b9e: 46bd mov sp, r7 + 8003ba0: bd80 pop {r7, pc} + 8003ba2: bf00 nop + 8003ba4: 08006150 .word 0x08006150 + +08003ba8 <_ZNK8std_msgs5UInt89serializeEPh>: + + virtual int serialize(unsigned char *outbuffer) const + 8003ba8: b480 push {r7} + 8003baa: b085 sub sp, #20 + 8003bac: af00 add r7, sp, #0 + 8003bae: 6078 str r0, [r7, #4] + 8003bb0: 6039 str r1, [r7, #0] + { + int offset = 0; + 8003bb2: 2300 movs r3, #0 + 8003bb4: 60fb str r3, [r7, #12] + *(outbuffer + offset + 0) = (this->data >> (8 * 0)) & 0xFF; + 8003bb6: 68fb ldr r3, [r7, #12] + 8003bb8: 683a ldr r2, [r7, #0] + 8003bba: 4413 add r3, r2 + 8003bbc: 687a ldr r2, [r7, #4] + 8003bbe: 7912 ldrb r2, [r2, #4] + 8003bc0: 701a strb r2, [r3, #0] + offset += sizeof(this->data); + 8003bc2: 68fb ldr r3, [r7, #12] + 8003bc4: 3301 adds r3, #1 + 8003bc6: 60fb str r3, [r7, #12] + return offset; + 8003bc8: 68fb ldr r3, [r7, #12] + } + 8003bca: 4618 mov r0, r3 + 8003bcc: 3714 adds r7, #20 + 8003bce: 46bd mov sp, r7 + 8003bd0: f85d 7b04 ldr.w r7, [sp], #4 + 8003bd4: 4770 bx lr + +08003bd6 <_ZN8std_msgs5UInt811deserializeEPh>: + + virtual int deserialize(unsigned char *inbuffer) + 8003bd6: b480 push {r7} + 8003bd8: b085 sub sp, #20 + 8003bda: af00 add r7, sp, #0 + 8003bdc: 6078 str r0, [r7, #4] + 8003bde: 6039 str r1, [r7, #0] + { + int offset = 0; + 8003be0: 2300 movs r3, #0 + 8003be2: 60fb str r3, [r7, #12] + this->data = ((uint8_t) (*(inbuffer + offset))); + 8003be4: 68fb ldr r3, [r7, #12] + 8003be6: 683a ldr r2, [r7, #0] + 8003be8: 4413 add r3, r2 + 8003bea: 781a ldrb r2, [r3, #0] + 8003bec: 687b ldr r3, [r7, #4] + 8003bee: 711a strb r2, [r3, #4] + offset += sizeof(this->data); + 8003bf0: 68fb ldr r3, [r7, #12] + 8003bf2: 3301 adds r3, #1 + 8003bf4: 60fb str r3, [r7, #12] + return offset; + 8003bf6: 68fb ldr r3, [r7, #12] + } + 8003bf8: 4618 mov r0, r3 + 8003bfa: 3714 adds r7, #20 + 8003bfc: 46bd mov sp, r7 + 8003bfe: f85d 7b04 ldr.w r7, [sp], #4 + 8003c02: 4770 bx lr + +08003c04 <_ZN8std_msgs5UInt87getTypeEv>: + + const char * getType(){ return "std_msgs/UInt8"; }; + 8003c04: b480 push {r7} + 8003c06: b083 sub sp, #12 + 8003c08: af00 add r7, sp, #0 + 8003c0a: 6078 str r0, [r7, #4] + 8003c0c: 4b03 ldr r3, [pc, #12] ; (8003c1c <_ZN8std_msgs5UInt87getTypeEv+0x18>) + 8003c0e: 4618 mov r0, r3 + 8003c10: 370c adds r7, #12 + 8003c12: 46bd mov sp, r7 + 8003c14: f85d 7b04 ldr.w r7, [sp], #4 + 8003c18: 4770 bx lr + 8003c1a: bf00 nop + 8003c1c: 08005f24 .word 0x08005f24 + +08003c20 <_ZN8std_msgs5UInt86getMD5Ev>: + const char * getMD5(){ return "7c8164229e7d2c17eb95e9231617fdee"; }; + 8003c20: b480 push {r7} + 8003c22: b083 sub sp, #12 + 8003c24: af00 add r7, sp, #0 + 8003c26: 6078 str r0, [r7, #4] + 8003c28: 4b03 ldr r3, [pc, #12] ; (8003c38 <_ZN8std_msgs5UInt86getMD5Ev+0x18>) + 8003c2a: 4618 mov r0, r3 + 8003c2c: 370c adds r7, #12 + 8003c2e: 46bd mov sp, r7 + 8003c30: f85d 7b04 ldr.w r7, [sp], #4 + 8003c34: 4770 bx lr + 8003c36: bf00 nop + 8003c38: 08005f34 .word 0x08005f34 + +08003c3c <_ZN3ros4TimeC1Ev>: +class Time +{ +public: + uint32_t sec, nsec; + + Time() : sec(0), nsec(0) {} + 8003c3c: b480 push {r7} + 8003c3e: b083 sub sp, #12 + 8003c40: af00 add r7, sp, #0 + 8003c42: 6078 str r0, [r7, #4] + 8003c44: 687b ldr r3, [r7, #4] + 8003c46: 2200 movs r2, #0 + 8003c48: 601a str r2, [r3, #0] + 8003c4a: 687b ldr r3, [r7, #4] + 8003c4c: 2200 movs r2, #0 + 8003c4e: 605a str r2, [r3, #4] + 8003c50: 687b ldr r3, [r7, #4] + 8003c52: 4618 mov r0, r3 + 8003c54: 370c adds r7, #12 + 8003c56: 46bd mov sp, r7 + 8003c58: f85d 7b04 ldr.w r7, [sp], #4 + 8003c5c: 4770 bx lr + ... + +08003c60 <_ZN8std_msgs4TimeC1Ev>: + { + public: + typedef ros::Time _data_type; + _data_type data; + + Time(): + 8003c60: b580 push {r7, lr} + 8003c62: b082 sub sp, #8 + 8003c64: af00 add r7, sp, #0 + 8003c66: 6078 str r0, [r7, #4] + data() + 8003c68: 687b ldr r3, [r7, #4] + 8003c6a: 4618 mov r0, r3 + 8003c6c: f7ff ff76 bl 8003b5c <_ZN3ros3MsgC1Ev> + 8003c70: 4a06 ldr r2, [pc, #24] ; (8003c8c <_ZN8std_msgs4TimeC1Ev+0x2c>) + 8003c72: 687b ldr r3, [r7, #4] + 8003c74: 601a str r2, [r3, #0] + 8003c76: 687b ldr r3, [r7, #4] + 8003c78: 3304 adds r3, #4 + 8003c7a: 4618 mov r0, r3 + 8003c7c: f7ff ffde bl 8003c3c <_ZN3ros4TimeC1Ev> + { + } + 8003c80: 687b ldr r3, [r7, #4] + 8003c82: 4618 mov r0, r3 + 8003c84: 3708 adds r7, #8 + 8003c86: 46bd mov sp, r7 + 8003c88: bd80 pop {r7, pc} + 8003c8a: bf00 nop + 8003c8c: 08006138 .word 0x08006138 + +08003c90 <_ZNK8std_msgs4Time9serializeEPh>: + + virtual int serialize(unsigned char *outbuffer) const + 8003c90: b480 push {r7} + 8003c92: b085 sub sp, #20 + 8003c94: af00 add r7, sp, #0 + 8003c96: 6078 str r0, [r7, #4] + 8003c98: 6039 str r1, [r7, #0] + { + int offset = 0; + 8003c9a: 2300 movs r3, #0 + 8003c9c: 60fb str r3, [r7, #12] + *(outbuffer + offset + 0) = (this->data.sec >> (8 * 0)) & 0xFF; + 8003c9e: 687b ldr r3, [r7, #4] + 8003ca0: 6859 ldr r1, [r3, #4] + 8003ca2: 68fb ldr r3, [r7, #12] + 8003ca4: 683a ldr r2, [r7, #0] + 8003ca6: 4413 add r3, r2 + 8003ca8: b2ca uxtb r2, r1 + 8003caa: 701a strb r2, [r3, #0] + *(outbuffer + offset + 1) = (this->data.sec >> (8 * 1)) & 0xFF; + 8003cac: 687b ldr r3, [r7, #4] + 8003cae: 685b ldr r3, [r3, #4] + 8003cb0: 0a19 lsrs r1, r3, #8 + 8003cb2: 68fb ldr r3, [r7, #12] + 8003cb4: 3301 adds r3, #1 + 8003cb6: 683a ldr r2, [r7, #0] + 8003cb8: 4413 add r3, r2 + 8003cba: b2ca uxtb r2, r1 + 8003cbc: 701a strb r2, [r3, #0] + *(outbuffer + offset + 2) = (this->data.sec >> (8 * 2)) & 0xFF; + 8003cbe: 687b ldr r3, [r7, #4] + 8003cc0: 685b ldr r3, [r3, #4] + 8003cc2: 0c19 lsrs r1, r3, #16 + 8003cc4: 68fb ldr r3, [r7, #12] + 8003cc6: 3302 adds r3, #2 + 8003cc8: 683a ldr r2, [r7, #0] + 8003cca: 4413 add r3, r2 + 8003ccc: b2ca uxtb r2, r1 + 8003cce: 701a strb r2, [r3, #0] + *(outbuffer + offset + 3) = (this->data.sec >> (8 * 3)) & 0xFF; + 8003cd0: 687b ldr r3, [r7, #4] + 8003cd2: 685b ldr r3, [r3, #4] + 8003cd4: 0e19 lsrs r1, r3, #24 + 8003cd6: 68fb ldr r3, [r7, #12] + 8003cd8: 3303 adds r3, #3 + 8003cda: 683a ldr r2, [r7, #0] + 8003cdc: 4413 add r3, r2 + 8003cde: b2ca uxtb r2, r1 + 8003ce0: 701a strb r2, [r3, #0] + offset += sizeof(this->data.sec); + 8003ce2: 68fb ldr r3, [r7, #12] + 8003ce4: 3304 adds r3, #4 + 8003ce6: 60fb str r3, [r7, #12] + *(outbuffer + offset + 0) = (this->data.nsec >> (8 * 0)) & 0xFF; + 8003ce8: 687b ldr r3, [r7, #4] + 8003cea: 6899 ldr r1, [r3, #8] + 8003cec: 68fb ldr r3, [r7, #12] + 8003cee: 683a ldr r2, [r7, #0] + 8003cf0: 4413 add r3, r2 + 8003cf2: b2ca uxtb r2, r1 + 8003cf4: 701a strb r2, [r3, #0] + *(outbuffer + offset + 1) = (this->data.nsec >> (8 * 1)) & 0xFF; + 8003cf6: 687b ldr r3, [r7, #4] + 8003cf8: 689b ldr r3, [r3, #8] + 8003cfa: 0a19 lsrs r1, r3, #8 + 8003cfc: 68fb ldr r3, [r7, #12] + 8003cfe: 3301 adds r3, #1 + 8003d00: 683a ldr r2, [r7, #0] + 8003d02: 4413 add r3, r2 + 8003d04: b2ca uxtb r2, r1 + 8003d06: 701a strb r2, [r3, #0] + *(outbuffer + offset + 2) = (this->data.nsec >> (8 * 2)) & 0xFF; + 8003d08: 687b ldr r3, [r7, #4] + 8003d0a: 689b ldr r3, [r3, #8] + 8003d0c: 0c19 lsrs r1, r3, #16 + 8003d0e: 68fb ldr r3, [r7, #12] + 8003d10: 3302 adds r3, #2 + 8003d12: 683a ldr r2, [r7, #0] + 8003d14: 4413 add r3, r2 + 8003d16: b2ca uxtb r2, r1 + 8003d18: 701a strb r2, [r3, #0] + *(outbuffer + offset + 3) = (this->data.nsec >> (8 * 3)) & 0xFF; + 8003d1a: 687b ldr r3, [r7, #4] + 8003d1c: 689b ldr r3, [r3, #8] + 8003d1e: 0e19 lsrs r1, r3, #24 + 8003d20: 68fb ldr r3, [r7, #12] + 8003d22: 3303 adds r3, #3 + 8003d24: 683a ldr r2, [r7, #0] + 8003d26: 4413 add r3, r2 + 8003d28: b2ca uxtb r2, r1 + 8003d2a: 701a strb r2, [r3, #0] + offset += sizeof(this->data.nsec); + 8003d2c: 68fb ldr r3, [r7, #12] + 8003d2e: 3304 adds r3, #4 + 8003d30: 60fb str r3, [r7, #12] + return offset; + 8003d32: 68fb ldr r3, [r7, #12] + } + 8003d34: 4618 mov r0, r3 + 8003d36: 3714 adds r7, #20 + 8003d38: 46bd mov sp, r7 + 8003d3a: f85d 7b04 ldr.w r7, [sp], #4 + 8003d3e: 4770 bx lr + +08003d40 <_ZN8std_msgs4Time11deserializeEPh>: + + virtual int deserialize(unsigned char *inbuffer) + 8003d40: b480 push {r7} + 8003d42: b085 sub sp, #20 + 8003d44: af00 add r7, sp, #0 + 8003d46: 6078 str r0, [r7, #4] + 8003d48: 6039 str r1, [r7, #0] + { + int offset = 0; + 8003d4a: 2300 movs r3, #0 + 8003d4c: 60fb str r3, [r7, #12] + this->data.sec = ((uint32_t) (*(inbuffer + offset))); + 8003d4e: 68fb ldr r3, [r7, #12] + 8003d50: 683a ldr r2, [r7, #0] + 8003d52: 4413 add r3, r2 + 8003d54: 781b ldrb r3, [r3, #0] + 8003d56: 461a mov r2, r3 + 8003d58: 687b ldr r3, [r7, #4] + 8003d5a: 605a str r2, [r3, #4] + this->data.sec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); + 8003d5c: 687b ldr r3, [r7, #4] + 8003d5e: 685a ldr r2, [r3, #4] + 8003d60: 68fb ldr r3, [r7, #12] + 8003d62: 3301 adds r3, #1 + 8003d64: 6839 ldr r1, [r7, #0] + 8003d66: 440b add r3, r1 + 8003d68: 781b ldrb r3, [r3, #0] + 8003d6a: 021b lsls r3, r3, #8 + 8003d6c: 431a orrs r2, r3 + 8003d6e: 687b ldr r3, [r7, #4] + 8003d70: 605a str r2, [r3, #4] + this->data.sec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); + 8003d72: 687b ldr r3, [r7, #4] + 8003d74: 685a ldr r2, [r3, #4] + 8003d76: 68fb ldr r3, [r7, #12] + 8003d78: 3302 adds r3, #2 + 8003d7a: 6839 ldr r1, [r7, #0] + 8003d7c: 440b add r3, r1 + 8003d7e: 781b ldrb r3, [r3, #0] + 8003d80: 041b lsls r3, r3, #16 + 8003d82: 431a orrs r2, r3 + 8003d84: 687b ldr r3, [r7, #4] + 8003d86: 605a str r2, [r3, #4] + this->data.sec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); + 8003d88: 687b ldr r3, [r7, #4] + 8003d8a: 685a ldr r2, [r3, #4] + 8003d8c: 68fb ldr r3, [r7, #12] + 8003d8e: 3303 adds r3, #3 + 8003d90: 6839 ldr r1, [r7, #0] + 8003d92: 440b add r3, r1 + 8003d94: 781b ldrb r3, [r3, #0] + 8003d96: 061b lsls r3, r3, #24 + 8003d98: 431a orrs r2, r3 + 8003d9a: 687b ldr r3, [r7, #4] + 8003d9c: 605a str r2, [r3, #4] + offset += sizeof(this->data.sec); + 8003d9e: 68fb ldr r3, [r7, #12] + 8003da0: 3304 adds r3, #4 + 8003da2: 60fb str r3, [r7, #12] + this->data.nsec = ((uint32_t) (*(inbuffer + offset))); + 8003da4: 68fb ldr r3, [r7, #12] + 8003da6: 683a ldr r2, [r7, #0] + 8003da8: 4413 add r3, r2 + 8003daa: 781b ldrb r3, [r3, #0] + 8003dac: 461a mov r2, r3 + 8003dae: 687b ldr r3, [r7, #4] + 8003db0: 609a str r2, [r3, #8] + this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); + 8003db2: 687b ldr r3, [r7, #4] + 8003db4: 689a ldr r2, [r3, #8] + 8003db6: 68fb ldr r3, [r7, #12] + 8003db8: 3301 adds r3, #1 + 8003dba: 6839 ldr r1, [r7, #0] + 8003dbc: 440b add r3, r1 + 8003dbe: 781b ldrb r3, [r3, #0] + 8003dc0: 021b lsls r3, r3, #8 + 8003dc2: 431a orrs r2, r3 + 8003dc4: 687b ldr r3, [r7, #4] + 8003dc6: 609a str r2, [r3, #8] + this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); + 8003dc8: 687b ldr r3, [r7, #4] + 8003dca: 689a ldr r2, [r3, #8] + 8003dcc: 68fb ldr r3, [r7, #12] + 8003dce: 3302 adds r3, #2 + 8003dd0: 6839 ldr r1, [r7, #0] + 8003dd2: 440b add r3, r1 + 8003dd4: 781b ldrb r3, [r3, #0] + 8003dd6: 041b lsls r3, r3, #16 + 8003dd8: 431a orrs r2, r3 + 8003dda: 687b ldr r3, [r7, #4] + 8003ddc: 609a str r2, [r3, #8] + this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); + 8003dde: 687b ldr r3, [r7, #4] + 8003de0: 689a ldr r2, [r3, #8] + 8003de2: 68fb ldr r3, [r7, #12] + 8003de4: 3303 adds r3, #3 + 8003de6: 6839 ldr r1, [r7, #0] + 8003de8: 440b add r3, r1 + 8003dea: 781b ldrb r3, [r3, #0] + 8003dec: 061b lsls r3, r3, #24 + 8003dee: 431a orrs r2, r3 + 8003df0: 687b ldr r3, [r7, #4] + 8003df2: 609a str r2, [r3, #8] + offset += sizeof(this->data.nsec); + 8003df4: 68fb ldr r3, [r7, #12] + 8003df6: 3304 adds r3, #4 + 8003df8: 60fb str r3, [r7, #12] + return offset; + 8003dfa: 68fb ldr r3, [r7, #12] + } + 8003dfc: 4618 mov r0, r3 + 8003dfe: 3714 adds r7, #20 + 8003e00: 46bd mov sp, r7 + 8003e02: f85d 7b04 ldr.w r7, [sp], #4 + 8003e06: 4770 bx lr + +08003e08 <_ZN8std_msgs4Time7getTypeEv>: + + const char * getType(){ return "std_msgs/Time"; }; + 8003e08: b480 push {r7} + 8003e0a: b083 sub sp, #12 + 8003e0c: af00 add r7, sp, #0 + 8003e0e: 6078 str r0, [r7, #4] + 8003e10: 4b03 ldr r3, [pc, #12] ; (8003e20 <_ZN8std_msgs4Time7getTypeEv+0x18>) + 8003e12: 4618 mov r0, r3 + 8003e14: 370c adds r7, #12 + 8003e16: 46bd mov sp, r7 + 8003e18: f85d 7b04 ldr.w r7, [sp], #4 + 8003e1c: 4770 bx lr + 8003e1e: bf00 nop + 8003e20: 08005f58 .word 0x08005f58 + +08003e24 <_ZN8std_msgs4Time6getMD5Ev>: + const char * getMD5(){ return "cd7166c74c552c311fbcc2fe5a7bc289"; }; + 8003e24: b480 push {r7} + 8003e26: b083 sub sp, #12 + 8003e28: af00 add r7, sp, #0 + 8003e2a: 6078 str r0, [r7, #4] + 8003e2c: 4b03 ldr r3, [pc, #12] ; (8003e3c <_ZN8std_msgs4Time6getMD5Ev+0x18>) + 8003e2e: 4618 mov r0, r3 + 8003e30: 370c adds r7, #12 + 8003e32: 46bd mov sp, r7 + 8003e34: f85d 7b04 ldr.w r7, [sp], #4 + 8003e38: 4770 bx lr + 8003e3a: bf00 nop + 8003e3c: 08005f68 .word 0x08005f68 + +08003e40 <_ZN14rosserial_msgs9TopicInfoC1Ev>: + enum { ID_PARAMETER_REQUEST = 6 }; + enum { ID_LOG = 7 }; + enum { ID_TIME = 10 }; + enum { ID_TX_STOP = 11 }; + + TopicInfo(): + 8003e40: b580 push {r7, lr} + 8003e42: b082 sub sp, #8 + 8003e44: af00 add r7, sp, #0 + 8003e46: 6078 str r0, [r7, #4] topic_id(0), topic_name(""), message_type(""), md5sum(""), buffer_size(0) - 8003b3c: 687b ldr r3, [r7, #4] - 8003b3e: 4618 mov r0, r3 - 8003b40: f7ff fe86 bl 8003850 <_ZN3ros3MsgC1Ev> - 8003b44: 4a0b ldr r2, [pc, #44] ; (8003b74 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x40>) - 8003b46: 687b ldr r3, [r7, #4] - 8003b48: 601a str r2, [r3, #0] - 8003b4a: 687b ldr r3, [r7, #4] - 8003b4c: 2200 movs r2, #0 - 8003b4e: 809a strh r2, [r3, #4] - 8003b50: 687b ldr r3, [r7, #4] - 8003b52: 4a09 ldr r2, [pc, #36] ; (8003b78 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x44>) - 8003b54: 609a str r2, [r3, #8] - 8003b56: 687b ldr r3, [r7, #4] - 8003b58: 4a07 ldr r2, [pc, #28] ; (8003b78 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x44>) - 8003b5a: 60da str r2, [r3, #12] - 8003b5c: 687b ldr r3, [r7, #4] - 8003b5e: 4a06 ldr r2, [pc, #24] ; (8003b78 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x44>) - 8003b60: 611a str r2, [r3, #16] - 8003b62: 687b ldr r3, [r7, #4] - 8003b64: 2200 movs r2, #0 - 8003b66: 615a str r2, [r3, #20] + 8003e48: 687b ldr r3, [r7, #4] + 8003e4a: 4618 mov r0, r3 + 8003e4c: f7ff fe86 bl 8003b5c <_ZN3ros3MsgC1Ev> + 8003e50: 4a0b ldr r2, [pc, #44] ; (8003e80 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x40>) + 8003e52: 687b ldr r3, [r7, #4] + 8003e54: 601a str r2, [r3, #0] + 8003e56: 687b ldr r3, [r7, #4] + 8003e58: 2200 movs r2, #0 + 8003e5a: 809a strh r2, [r3, #4] + 8003e5c: 687b ldr r3, [r7, #4] + 8003e5e: 4a09 ldr r2, [pc, #36] ; (8003e84 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x44>) + 8003e60: 609a str r2, [r3, #8] + 8003e62: 687b ldr r3, [r7, #4] + 8003e64: 4a07 ldr r2, [pc, #28] ; (8003e84 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x44>) + 8003e66: 60da str r2, [r3, #12] + 8003e68: 687b ldr r3, [r7, #4] + 8003e6a: 4a06 ldr r2, [pc, #24] ; (8003e84 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x44>) + 8003e6c: 611a str r2, [r3, #16] + 8003e6e: 687b ldr r3, [r7, #4] + 8003e70: 2200 movs r2, #0 + 8003e72: 615a str r2, [r3, #20] { } - 8003b68: 687b ldr r3, [r7, #4] - 8003b6a: 4618 mov r0, r3 - 8003b6c: 3708 adds r7, #8 - 8003b6e: 46bd mov sp, r7 - 8003b70: bd80 pop {r7, pc} - 8003b72: bf00 nop - 8003b74: 080060bc .word 0x080060bc - 8003b78: 08005f28 .word 0x08005f28 + 8003e74: 687b ldr r3, [r7, #4] + 8003e76: 4618 mov r0, r3 + 8003e78: 3708 adds r7, #8 + 8003e7a: 46bd mov sp, r7 + 8003e7c: bd80 pop {r7, pc} + 8003e7e: bf00 nop + 8003e80: 08006120 .word 0x08006120 + 8003e84: 08005f8c .word 0x08005f8c -08003b7c <_ZNK14rosserial_msgs9TopicInfo9serializeEPh>: +08003e88 <_ZNK14rosserial_msgs9TopicInfo9serializeEPh>: virtual int serialize(unsigned char *outbuffer) const - 8003b7c: b580 push {r7, lr} - 8003b7e: b088 sub sp, #32 - 8003b80: af00 add r7, sp, #0 - 8003b82: 6078 str r0, [r7, #4] - 8003b84: 6039 str r1, [r7, #0] + 8003e88: b580 push {r7, lr} + 8003e8a: b088 sub sp, #32 + 8003e8c: af00 add r7, sp, #0 + 8003e8e: 6078 str r0, [r7, #4] + 8003e90: 6039 str r1, [r7, #0] { int offset = 0; - 8003b86: 2300 movs r3, #0 - 8003b88: 61fb str r3, [r7, #28] + 8003e92: 2300 movs r3, #0 + 8003e94: 61fb str r3, [r7, #28] *(outbuffer + offset + 0) = (this->topic_id >> (8 * 0)) & 0xFF; - 8003b8a: 687b ldr r3, [r7, #4] - 8003b8c: 8899 ldrh r1, [r3, #4] - 8003b8e: 69fb ldr r3, [r7, #28] - 8003b90: 683a ldr r2, [r7, #0] - 8003b92: 4413 add r3, r2 - 8003b94: b2ca uxtb r2, r1 - 8003b96: 701a strb r2, [r3, #0] + 8003e96: 687b ldr r3, [r7, #4] + 8003e98: 8899 ldrh r1, [r3, #4] + 8003e9a: 69fb ldr r3, [r7, #28] + 8003e9c: 683a ldr r2, [r7, #0] + 8003e9e: 4413 add r3, r2 + 8003ea0: b2ca uxtb r2, r1 + 8003ea2: 701a strb r2, [r3, #0] *(outbuffer + offset + 1) = (this->topic_id >> (8 * 1)) & 0xFF; - 8003b98: 687b ldr r3, [r7, #4] - 8003b9a: 889b ldrh r3, [r3, #4] - 8003b9c: 0a1b lsrs r3, r3, #8 - 8003b9e: b299 uxth r1, r3 - 8003ba0: 69fb ldr r3, [r7, #28] - 8003ba2: 3301 adds r3, #1 - 8003ba4: 683a ldr r2, [r7, #0] - 8003ba6: 4413 add r3, r2 - 8003ba8: b2ca uxtb r2, r1 - 8003baa: 701a strb r2, [r3, #0] + 8003ea4: 687b ldr r3, [r7, #4] + 8003ea6: 889b ldrh r3, [r3, #4] + 8003ea8: 0a1b lsrs r3, r3, #8 + 8003eaa: b299 uxth r1, r3 + 8003eac: 69fb ldr r3, [r7, #28] + 8003eae: 3301 adds r3, #1 + 8003eb0: 683a ldr r2, [r7, #0] + 8003eb2: 4413 add r3, r2 + 8003eb4: b2ca uxtb r2, r1 + 8003eb6: 701a strb r2, [r3, #0] offset += sizeof(this->topic_id); - 8003bac: 69fb ldr r3, [r7, #28] - 8003bae: 3302 adds r3, #2 - 8003bb0: 61fb str r3, [r7, #28] + 8003eb8: 69fb ldr r3, [r7, #28] + 8003eba: 3302 adds r3, #2 + 8003ebc: 61fb str r3, [r7, #28] uint32_t length_topic_name = strlen(this->topic_name); - 8003bb2: 687b ldr r3, [r7, #4] - 8003bb4: 689b ldr r3, [r3, #8] - 8003bb6: 4618 mov r0, r3 - 8003bb8: f7fc fb3e bl 8000238 - 8003bbc: 61b8 str r0, [r7, #24] + 8003ebe: 687b ldr r3, [r7, #4] + 8003ec0: 689b ldr r3, [r3, #8] + 8003ec2: 4618 mov r0, r3 + 8003ec4: f7fc f9b8 bl 8000238 + 8003ec8: 61b8 str r0, [r7, #24] varToArr(outbuffer + offset, length_topic_name); - 8003bbe: 69fb ldr r3, [r7, #28] - 8003bc0: 683a ldr r2, [r7, #0] - 8003bc2: 4413 add r3, r2 - 8003bc4: 69b9 ldr r1, [r7, #24] - 8003bc6: 4618 mov r0, r3 - 8003bc8: f000 ffe5 bl 8004b96 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> + 8003eca: 69fb ldr r3, [r7, #28] + 8003ecc: 683a ldr r2, [r7, #0] + 8003ece: 4413 add r3, r2 + 8003ed0: 69b9 ldr r1, [r7, #24] + 8003ed2: 4618 mov r0, r3 + 8003ed4: f000 fe80 bl 8004bd8 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> offset += 4; - 8003bcc: 69fb ldr r3, [r7, #28] - 8003bce: 3304 adds r3, #4 - 8003bd0: 61fb str r3, [r7, #28] + 8003ed8: 69fb ldr r3, [r7, #28] + 8003eda: 3304 adds r3, #4 + 8003edc: 61fb str r3, [r7, #28] memcpy(outbuffer + offset, this->topic_name, length_topic_name); - 8003bd2: 69fb ldr r3, [r7, #28] - 8003bd4: 683a ldr r2, [r7, #0] - 8003bd6: 18d0 adds r0, r2, r3 - 8003bd8: 687b ldr r3, [r7, #4] - 8003bda: 689b ldr r3, [r3, #8] - 8003bdc: 69ba ldr r2, [r7, #24] - 8003bde: 4619 mov r1, r3 - 8003be0: f002 f81a bl 8005c18 + 8003ede: 69fb ldr r3, [r7, #28] + 8003ee0: 683a ldr r2, [r7, #0] + 8003ee2: 18d0 adds r0, r2, r3 + 8003ee4: 687b ldr r3, [r7, #4] + 8003ee6: 689b ldr r3, [r3, #8] + 8003ee8: 69ba ldr r2, [r7, #24] + 8003eea: 4619 mov r1, r3 + 8003eec: f001 fec6 bl 8005c7c offset += length_topic_name; - 8003be4: 69fa ldr r2, [r7, #28] - 8003be6: 69bb ldr r3, [r7, #24] - 8003be8: 4413 add r3, r2 - 8003bea: 61fb str r3, [r7, #28] + 8003ef0: 69fa ldr r2, [r7, #28] + 8003ef2: 69bb ldr r3, [r7, #24] + 8003ef4: 4413 add r3, r2 + 8003ef6: 61fb str r3, [r7, #28] uint32_t length_message_type = strlen(this->message_type); - 8003bec: 687b ldr r3, [r7, #4] - 8003bee: 68db ldr r3, [r3, #12] - 8003bf0: 4618 mov r0, r3 - 8003bf2: f7fc fb21 bl 8000238 - 8003bf6: 6178 str r0, [r7, #20] + 8003ef8: 687b ldr r3, [r7, #4] + 8003efa: 68db ldr r3, [r3, #12] + 8003efc: 4618 mov r0, r3 + 8003efe: f7fc f99b bl 8000238 + 8003f02: 6178 str r0, [r7, #20] varToArr(outbuffer + offset, length_message_type); - 8003bf8: 69fb ldr r3, [r7, #28] - 8003bfa: 683a ldr r2, [r7, #0] - 8003bfc: 4413 add r3, r2 - 8003bfe: 6979 ldr r1, [r7, #20] - 8003c00: 4618 mov r0, r3 - 8003c02: f000 ffc8 bl 8004b96 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> + 8003f04: 69fb ldr r3, [r7, #28] + 8003f06: 683a ldr r2, [r7, #0] + 8003f08: 4413 add r3, r2 + 8003f0a: 6979 ldr r1, [r7, #20] + 8003f0c: 4618 mov r0, r3 + 8003f0e: f000 fe63 bl 8004bd8 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> offset += 4; - 8003c06: 69fb ldr r3, [r7, #28] - 8003c08: 3304 adds r3, #4 - 8003c0a: 61fb str r3, [r7, #28] + 8003f12: 69fb ldr r3, [r7, #28] + 8003f14: 3304 adds r3, #4 + 8003f16: 61fb str r3, [r7, #28] memcpy(outbuffer + offset, this->message_type, length_message_type); - 8003c0c: 69fb ldr r3, [r7, #28] - 8003c0e: 683a ldr r2, [r7, #0] - 8003c10: 18d0 adds r0, r2, r3 - 8003c12: 687b ldr r3, [r7, #4] - 8003c14: 68db ldr r3, [r3, #12] - 8003c16: 697a ldr r2, [r7, #20] - 8003c18: 4619 mov r1, r3 - 8003c1a: f001 fffd bl 8005c18 + 8003f18: 69fb ldr r3, [r7, #28] + 8003f1a: 683a ldr r2, [r7, #0] + 8003f1c: 18d0 adds r0, r2, r3 + 8003f1e: 687b ldr r3, [r7, #4] + 8003f20: 68db ldr r3, [r3, #12] + 8003f22: 697a ldr r2, [r7, #20] + 8003f24: 4619 mov r1, r3 + 8003f26: f001 fea9 bl 8005c7c offset += length_message_type; - 8003c1e: 69fa ldr r2, [r7, #28] - 8003c20: 697b ldr r3, [r7, #20] - 8003c22: 4413 add r3, r2 - 8003c24: 61fb str r3, [r7, #28] + 8003f2a: 69fa ldr r2, [r7, #28] + 8003f2c: 697b ldr r3, [r7, #20] + 8003f2e: 4413 add r3, r2 + 8003f30: 61fb str r3, [r7, #28] uint32_t length_md5sum = strlen(this->md5sum); - 8003c26: 687b ldr r3, [r7, #4] - 8003c28: 691b ldr r3, [r3, #16] - 8003c2a: 4618 mov r0, r3 - 8003c2c: f7fc fb04 bl 8000238 - 8003c30: 6138 str r0, [r7, #16] + 8003f32: 687b ldr r3, [r7, #4] + 8003f34: 691b ldr r3, [r3, #16] + 8003f36: 4618 mov r0, r3 + 8003f38: f7fc f97e bl 8000238 + 8003f3c: 6138 str r0, [r7, #16] varToArr(outbuffer + offset, length_md5sum); - 8003c32: 69fb ldr r3, [r7, #28] - 8003c34: 683a ldr r2, [r7, #0] - 8003c36: 4413 add r3, r2 - 8003c38: 6939 ldr r1, [r7, #16] - 8003c3a: 4618 mov r0, r3 - 8003c3c: f000 ffab bl 8004b96 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> + 8003f3e: 69fb ldr r3, [r7, #28] + 8003f40: 683a ldr r2, [r7, #0] + 8003f42: 4413 add r3, r2 + 8003f44: 6939 ldr r1, [r7, #16] + 8003f46: 4618 mov r0, r3 + 8003f48: f000 fe46 bl 8004bd8 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> offset += 4; - 8003c40: 69fb ldr r3, [r7, #28] - 8003c42: 3304 adds r3, #4 - 8003c44: 61fb str r3, [r7, #28] + 8003f4c: 69fb ldr r3, [r7, #28] + 8003f4e: 3304 adds r3, #4 + 8003f50: 61fb str r3, [r7, #28] memcpy(outbuffer + offset, this->md5sum, length_md5sum); - 8003c46: 69fb ldr r3, [r7, #28] - 8003c48: 683a ldr r2, [r7, #0] - 8003c4a: 18d0 adds r0, r2, r3 - 8003c4c: 687b ldr r3, [r7, #4] - 8003c4e: 691b ldr r3, [r3, #16] - 8003c50: 693a ldr r2, [r7, #16] - 8003c52: 4619 mov r1, r3 - 8003c54: f001 ffe0 bl 8005c18 + 8003f52: 69fb ldr r3, [r7, #28] + 8003f54: 683a ldr r2, [r7, #0] + 8003f56: 18d0 adds r0, r2, r3 + 8003f58: 687b ldr r3, [r7, #4] + 8003f5a: 691b ldr r3, [r3, #16] + 8003f5c: 693a ldr r2, [r7, #16] + 8003f5e: 4619 mov r1, r3 + 8003f60: f001 fe8c bl 8005c7c offset += length_md5sum; - 8003c58: 69fa ldr r2, [r7, #28] - 8003c5a: 693b ldr r3, [r7, #16] - 8003c5c: 4413 add r3, r2 - 8003c5e: 61fb str r3, [r7, #28] + 8003f64: 69fa ldr r2, [r7, #28] + 8003f66: 693b ldr r3, [r7, #16] + 8003f68: 4413 add r3, r2 + 8003f6a: 61fb str r3, [r7, #28] union { int32_t real; uint32_t base; } u_buffer_size; u_buffer_size.real = this->buffer_size; - 8003c60: 687b ldr r3, [r7, #4] - 8003c62: 695b ldr r3, [r3, #20] - 8003c64: 60fb str r3, [r7, #12] + 8003f6c: 687b ldr r3, [r7, #4] + 8003f6e: 695b ldr r3, [r3, #20] + 8003f70: 60fb str r3, [r7, #12] *(outbuffer + offset + 0) = (u_buffer_size.base >> (8 * 0)) & 0xFF; - 8003c66: 68f9 ldr r1, [r7, #12] - 8003c68: 69fb ldr r3, [r7, #28] - 8003c6a: 683a ldr r2, [r7, #0] - 8003c6c: 4413 add r3, r2 - 8003c6e: b2ca uxtb r2, r1 - 8003c70: 701a strb r2, [r3, #0] + 8003f72: 68f9 ldr r1, [r7, #12] + 8003f74: 69fb ldr r3, [r7, #28] + 8003f76: 683a ldr r2, [r7, #0] + 8003f78: 4413 add r3, r2 + 8003f7a: b2ca uxtb r2, r1 + 8003f7c: 701a strb r2, [r3, #0] *(outbuffer + offset + 1) = (u_buffer_size.base >> (8 * 1)) & 0xFF; - 8003c72: 68fb ldr r3, [r7, #12] - 8003c74: 0a19 lsrs r1, r3, #8 - 8003c76: 69fb ldr r3, [r7, #28] - 8003c78: 3301 adds r3, #1 - 8003c7a: 683a ldr r2, [r7, #0] - 8003c7c: 4413 add r3, r2 - 8003c7e: b2ca uxtb r2, r1 - 8003c80: 701a strb r2, [r3, #0] + 8003f7e: 68fb ldr r3, [r7, #12] + 8003f80: 0a19 lsrs r1, r3, #8 + 8003f82: 69fb ldr r3, [r7, #28] + 8003f84: 3301 adds r3, #1 + 8003f86: 683a ldr r2, [r7, #0] + 8003f88: 4413 add r3, r2 + 8003f8a: b2ca uxtb r2, r1 + 8003f8c: 701a strb r2, [r3, #0] *(outbuffer + offset + 2) = (u_buffer_size.base >> (8 * 2)) & 0xFF; - 8003c82: 68fb ldr r3, [r7, #12] - 8003c84: 0c19 lsrs r1, r3, #16 - 8003c86: 69fb ldr r3, [r7, #28] - 8003c88: 3302 adds r3, #2 - 8003c8a: 683a ldr r2, [r7, #0] - 8003c8c: 4413 add r3, r2 - 8003c8e: b2ca uxtb r2, r1 - 8003c90: 701a strb r2, [r3, #0] + 8003f8e: 68fb ldr r3, [r7, #12] + 8003f90: 0c19 lsrs r1, r3, #16 + 8003f92: 69fb ldr r3, [r7, #28] + 8003f94: 3302 adds r3, #2 + 8003f96: 683a ldr r2, [r7, #0] + 8003f98: 4413 add r3, r2 + 8003f9a: b2ca uxtb r2, r1 + 8003f9c: 701a strb r2, [r3, #0] *(outbuffer + offset + 3) = (u_buffer_size.base >> (8 * 3)) & 0xFF; - 8003c92: 68fb ldr r3, [r7, #12] - 8003c94: 0e19 lsrs r1, r3, #24 - 8003c96: 69fb ldr r3, [r7, #28] - 8003c98: 3303 adds r3, #3 - 8003c9a: 683a ldr r2, [r7, #0] - 8003c9c: 4413 add r3, r2 - 8003c9e: b2ca uxtb r2, r1 - 8003ca0: 701a strb r2, [r3, #0] + 8003f9e: 68fb ldr r3, [r7, #12] + 8003fa0: 0e19 lsrs r1, r3, #24 + 8003fa2: 69fb ldr r3, [r7, #28] + 8003fa4: 3303 adds r3, #3 + 8003fa6: 683a ldr r2, [r7, #0] + 8003fa8: 4413 add r3, r2 + 8003faa: b2ca uxtb r2, r1 + 8003fac: 701a strb r2, [r3, #0] offset += sizeof(this->buffer_size); - 8003ca2: 69fb ldr r3, [r7, #28] - 8003ca4: 3304 adds r3, #4 - 8003ca6: 61fb str r3, [r7, #28] + 8003fae: 69fb ldr r3, [r7, #28] + 8003fb0: 3304 adds r3, #4 + 8003fb2: 61fb str r3, [r7, #28] return offset; - 8003ca8: 69fb ldr r3, [r7, #28] + 8003fb4: 69fb ldr r3, [r7, #28] } - 8003caa: 4618 mov r0, r3 - 8003cac: 3720 adds r7, #32 - 8003cae: 46bd mov sp, r7 - 8003cb0: bd80 pop {r7, pc} + 8003fb6: 4618 mov r0, r3 + 8003fb8: 3720 adds r7, #32 + 8003fba: 46bd mov sp, r7 + 8003fbc: bd80 pop {r7, pc} -08003cb2 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh>: +08003fbe <_ZN14rosserial_msgs9TopicInfo11deserializeEPh>: virtual int deserialize(unsigned char *inbuffer) - 8003cb2: b580 push {r7, lr} - 8003cb4: b08a sub sp, #40 ; 0x28 - 8003cb6: af00 add r7, sp, #0 - 8003cb8: 6078 str r0, [r7, #4] - 8003cba: 6039 str r1, [r7, #0] + 8003fbe: b580 push {r7, lr} + 8003fc0: b08a sub sp, #40 ; 0x28 + 8003fc2: af00 add r7, sp, #0 + 8003fc4: 6078 str r0, [r7, #4] + 8003fc6: 6039 str r1, [r7, #0] { int offset = 0; - 8003cbc: 2300 movs r3, #0 - 8003cbe: 61bb str r3, [r7, #24] + 8003fc8: 2300 movs r3, #0 + 8003fca: 61bb str r3, [r7, #24] this->topic_id = ((uint16_t) (*(inbuffer + offset))); - 8003cc0: 69bb ldr r3, [r7, #24] - 8003cc2: 683a ldr r2, [r7, #0] - 8003cc4: 4413 add r3, r2 - 8003cc6: 781b ldrb r3, [r3, #0] - 8003cc8: b29a uxth r2, r3 - 8003cca: 687b ldr r3, [r7, #4] - 8003ccc: 809a strh r2, [r3, #4] + 8003fcc: 69bb ldr r3, [r7, #24] + 8003fce: 683a ldr r2, [r7, #0] + 8003fd0: 4413 add r3, r2 + 8003fd2: 781b ldrb r3, [r3, #0] + 8003fd4: b29a uxth r2, r3 + 8003fd6: 687b ldr r3, [r7, #4] + 8003fd8: 809a strh r2, [r3, #4] this->topic_id |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1); - 8003cce: 687b ldr r3, [r7, #4] - 8003cd0: 889b ldrh r3, [r3, #4] - 8003cd2: b21a sxth r2, r3 - 8003cd4: 69bb ldr r3, [r7, #24] - 8003cd6: 3301 adds r3, #1 - 8003cd8: 6839 ldr r1, [r7, #0] - 8003cda: 440b add r3, r1 - 8003cdc: 781b ldrb r3, [r3, #0] - 8003cde: 021b lsls r3, r3, #8 - 8003ce0: b21b sxth r3, r3 - 8003ce2: 4313 orrs r3, r2 - 8003ce4: b21b sxth r3, r3 - 8003ce6: b29a uxth r2, r3 - 8003ce8: 687b ldr r3, [r7, #4] - 8003cea: 809a strh r2, [r3, #4] + 8003fda: 687b ldr r3, [r7, #4] + 8003fdc: 889b ldrh r3, [r3, #4] + 8003fde: b21a sxth r2, r3 + 8003fe0: 69bb ldr r3, [r7, #24] + 8003fe2: 3301 adds r3, #1 + 8003fe4: 6839 ldr r1, [r7, #0] + 8003fe6: 440b add r3, r1 + 8003fe8: 781b ldrb r3, [r3, #0] + 8003fea: 021b lsls r3, r3, #8 + 8003fec: b21b sxth r3, r3 + 8003fee: 4313 orrs r3, r2 + 8003ff0: b21b sxth r3, r3 + 8003ff2: b29a uxth r2, r3 + 8003ff4: 687b ldr r3, [r7, #4] + 8003ff6: 809a strh r2, [r3, #4] offset += sizeof(this->topic_id); - 8003cec: 69bb ldr r3, [r7, #24] - 8003cee: 3302 adds r3, #2 - 8003cf0: 61bb str r3, [r7, #24] + 8003ff8: 69bb ldr r3, [r7, #24] + 8003ffa: 3302 adds r3, #2 + 8003ffc: 61bb str r3, [r7, #24] uint32_t length_topic_name; arrToVar(length_topic_name, (inbuffer + offset)); - 8003cf2: 69bb ldr r3, [r7, #24] - 8003cf4: 683a ldr r2, [r7, #0] - 8003cf6: 441a add r2, r3 - 8003cf8: f107 0314 add.w r3, r7, #20 - 8003cfc: 4611 mov r1, r2 - 8003cfe: 4618 mov r0, r3 - 8003d00: f000 ff67 bl 8004bd2 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> + 8003ffe: 69bb ldr r3, [r7, #24] + 8004000: 683a ldr r2, [r7, #0] + 8004002: 441a add r2, r3 + 8004004: f107 0314 add.w r3, r7, #20 + 8004008: 4611 mov r1, r2 + 800400a: 4618 mov r0, r3 + 800400c: f000 fe02 bl 8004c14 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> offset += 4; - 8003d04: 69bb ldr r3, [r7, #24] - 8003d06: 3304 adds r3, #4 - 8003d08: 61bb str r3, [r7, #24] + 8004010: 69bb ldr r3, [r7, #24] + 8004012: 3304 adds r3, #4 + 8004014: 61bb str r3, [r7, #24] for(unsigned int k= offset; k< offset+length_topic_name; ++k){ - 8003d0a: 69bb ldr r3, [r7, #24] - 8003d0c: 627b str r3, [r7, #36] ; 0x24 - 8003d0e: 69ba ldr r2, [r7, #24] - 8003d10: 697b ldr r3, [r7, #20] - 8003d12: 4413 add r3, r2 - 8003d14: 6a7a ldr r2, [r7, #36] ; 0x24 - 8003d16: 429a cmp r2, r3 - 8003d18: d20c bcs.n 8003d34 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x82> + 8004016: 69bb ldr r3, [r7, #24] + 8004018: 627b str r3, [r7, #36] ; 0x24 + 800401a: 69ba ldr r2, [r7, #24] + 800401c: 697b ldr r3, [r7, #20] + 800401e: 4413 add r3, r2 + 8004020: 6a7a ldr r2, [r7, #36] ; 0x24 + 8004022: 429a cmp r2, r3 + 8004024: d20c bcs.n 8004040 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x82> inbuffer[k-1]=inbuffer[k]; - 8003d1a: 683a ldr r2, [r7, #0] - 8003d1c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8003d1e: 441a add r2, r3 - 8003d20: 6a7b ldr r3, [r7, #36] ; 0x24 - 8003d22: 3b01 subs r3, #1 - 8003d24: 6839 ldr r1, [r7, #0] - 8003d26: 440b add r3, r1 - 8003d28: 7812 ldrb r2, [r2, #0] - 8003d2a: 701a strb r2, [r3, #0] + 8004026: 683a ldr r2, [r7, #0] + 8004028: 6a7b ldr r3, [r7, #36] ; 0x24 + 800402a: 441a add r2, r3 + 800402c: 6a7b ldr r3, [r7, #36] ; 0x24 + 800402e: 3b01 subs r3, #1 + 8004030: 6839 ldr r1, [r7, #0] + 8004032: 440b add r3, r1 + 8004034: 7812 ldrb r2, [r2, #0] + 8004036: 701a strb r2, [r3, #0] for(unsigned int k= offset; k< offset+length_topic_name; ++k){ - 8003d2c: 6a7b ldr r3, [r7, #36] ; 0x24 - 8003d2e: 3301 adds r3, #1 - 8003d30: 627b str r3, [r7, #36] ; 0x24 - 8003d32: e7ec b.n 8003d0e <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x5c> + 8004038: 6a7b ldr r3, [r7, #36] ; 0x24 + 800403a: 3301 adds r3, #1 + 800403c: 627b str r3, [r7, #36] ; 0x24 + 800403e: e7ec b.n 800401a <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x5c> } inbuffer[offset+length_topic_name-1]=0; - 8003d34: 69ba ldr r2, [r7, #24] - 8003d36: 697b ldr r3, [r7, #20] - 8003d38: 4413 add r3, r2 - 8003d3a: 3b01 subs r3, #1 - 8003d3c: 683a ldr r2, [r7, #0] - 8003d3e: 4413 add r3, r2 - 8003d40: 2200 movs r2, #0 - 8003d42: 701a strb r2, [r3, #0] + 8004040: 69ba ldr r2, [r7, #24] + 8004042: 697b ldr r3, [r7, #20] + 8004044: 4413 add r3, r2 + 8004046: 3b01 subs r3, #1 + 8004048: 683a ldr r2, [r7, #0] + 800404a: 4413 add r3, r2 + 800404c: 2200 movs r2, #0 + 800404e: 701a strb r2, [r3, #0] this->topic_name = (char *)(inbuffer + offset-1); - 8003d44: 69bb ldr r3, [r7, #24] - 8003d46: 3b01 subs r3, #1 - 8003d48: 683a ldr r2, [r7, #0] - 8003d4a: 441a add r2, r3 - 8003d4c: 687b ldr r3, [r7, #4] - 8003d4e: 609a str r2, [r3, #8] + 8004050: 69bb ldr r3, [r7, #24] + 8004052: 3b01 subs r3, #1 + 8004054: 683a ldr r2, [r7, #0] + 8004056: 441a add r2, r3 + 8004058: 687b ldr r3, [r7, #4] + 800405a: 609a str r2, [r3, #8] offset += length_topic_name; - 8003d50: 69ba ldr r2, [r7, #24] - 8003d52: 697b ldr r3, [r7, #20] - 8003d54: 4413 add r3, r2 - 8003d56: 61bb str r3, [r7, #24] + 800405c: 69ba ldr r2, [r7, #24] + 800405e: 697b ldr r3, [r7, #20] + 8004060: 4413 add r3, r2 + 8004062: 61bb str r3, [r7, #24] uint32_t length_message_type; arrToVar(length_message_type, (inbuffer + offset)); - 8003d58: 69bb ldr r3, [r7, #24] - 8003d5a: 683a ldr r2, [r7, #0] - 8003d5c: 441a add r2, r3 - 8003d5e: f107 0310 add.w r3, r7, #16 - 8003d62: 4611 mov r1, r2 - 8003d64: 4618 mov r0, r3 - 8003d66: f000 ff34 bl 8004bd2 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> + 8004064: 69bb ldr r3, [r7, #24] + 8004066: 683a ldr r2, [r7, #0] + 8004068: 441a add r2, r3 + 800406a: f107 0310 add.w r3, r7, #16 + 800406e: 4611 mov r1, r2 + 8004070: 4618 mov r0, r3 + 8004072: f000 fdcf bl 8004c14 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> offset += 4; - 8003d6a: 69bb ldr r3, [r7, #24] - 8003d6c: 3304 adds r3, #4 - 8003d6e: 61bb str r3, [r7, #24] + 8004076: 69bb ldr r3, [r7, #24] + 8004078: 3304 adds r3, #4 + 800407a: 61bb str r3, [r7, #24] for(unsigned int k= offset; k< offset+length_message_type; ++k){ - 8003d70: 69bb ldr r3, [r7, #24] - 8003d72: 623b str r3, [r7, #32] - 8003d74: 69ba ldr r2, [r7, #24] - 8003d76: 693b ldr r3, [r7, #16] - 8003d78: 4413 add r3, r2 - 8003d7a: 6a3a ldr r2, [r7, #32] - 8003d7c: 429a cmp r2, r3 - 8003d7e: d20c bcs.n 8003d9a <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0xe8> + 800407c: 69bb ldr r3, [r7, #24] + 800407e: 623b str r3, [r7, #32] + 8004080: 69ba ldr r2, [r7, #24] + 8004082: 693b ldr r3, [r7, #16] + 8004084: 4413 add r3, r2 + 8004086: 6a3a ldr r2, [r7, #32] + 8004088: 429a cmp r2, r3 + 800408a: d20c bcs.n 80040a6 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0xe8> inbuffer[k-1]=inbuffer[k]; - 8003d80: 683a ldr r2, [r7, #0] - 8003d82: 6a3b ldr r3, [r7, #32] - 8003d84: 441a add r2, r3 - 8003d86: 6a3b ldr r3, [r7, #32] - 8003d88: 3b01 subs r3, #1 - 8003d8a: 6839 ldr r1, [r7, #0] - 8003d8c: 440b add r3, r1 - 8003d8e: 7812 ldrb r2, [r2, #0] - 8003d90: 701a strb r2, [r3, #0] + 800408c: 683a ldr r2, [r7, #0] + 800408e: 6a3b ldr r3, [r7, #32] + 8004090: 441a add r2, r3 + 8004092: 6a3b ldr r3, [r7, #32] + 8004094: 3b01 subs r3, #1 + 8004096: 6839 ldr r1, [r7, #0] + 8004098: 440b add r3, r1 + 800409a: 7812 ldrb r2, [r2, #0] + 800409c: 701a strb r2, [r3, #0] for(unsigned int k= offset; k< offset+length_message_type; ++k){ - 8003d92: 6a3b ldr r3, [r7, #32] - 8003d94: 3301 adds r3, #1 - 8003d96: 623b str r3, [r7, #32] - 8003d98: e7ec b.n 8003d74 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0xc2> + 800409e: 6a3b ldr r3, [r7, #32] + 80040a0: 3301 adds r3, #1 + 80040a2: 623b str r3, [r7, #32] + 80040a4: e7ec b.n 8004080 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0xc2> } inbuffer[offset+length_message_type-1]=0; - 8003d9a: 69ba ldr r2, [r7, #24] - 8003d9c: 693b ldr r3, [r7, #16] - 8003d9e: 4413 add r3, r2 - 8003da0: 3b01 subs r3, #1 - 8003da2: 683a ldr r2, [r7, #0] - 8003da4: 4413 add r3, r2 - 8003da6: 2200 movs r2, #0 - 8003da8: 701a strb r2, [r3, #0] + 80040a6: 69ba ldr r2, [r7, #24] + 80040a8: 693b ldr r3, [r7, #16] + 80040aa: 4413 add r3, r2 + 80040ac: 3b01 subs r3, #1 + 80040ae: 683a ldr r2, [r7, #0] + 80040b0: 4413 add r3, r2 + 80040b2: 2200 movs r2, #0 + 80040b4: 701a strb r2, [r3, #0] this->message_type = (char *)(inbuffer + offset-1); - 8003daa: 69bb ldr r3, [r7, #24] - 8003dac: 3b01 subs r3, #1 - 8003dae: 683a ldr r2, [r7, #0] - 8003db0: 441a add r2, r3 - 8003db2: 687b ldr r3, [r7, #4] - 8003db4: 60da str r2, [r3, #12] + 80040b6: 69bb ldr r3, [r7, #24] + 80040b8: 3b01 subs r3, #1 + 80040ba: 683a ldr r2, [r7, #0] + 80040bc: 441a add r2, r3 + 80040be: 687b ldr r3, [r7, #4] + 80040c0: 60da str r2, [r3, #12] offset += length_message_type; - 8003db6: 69ba ldr r2, [r7, #24] - 8003db8: 693b ldr r3, [r7, #16] - 8003dba: 4413 add r3, r2 - 8003dbc: 61bb str r3, [r7, #24] + 80040c2: 69ba ldr r2, [r7, #24] + 80040c4: 693b ldr r3, [r7, #16] + 80040c6: 4413 add r3, r2 + 80040c8: 61bb str r3, [r7, #24] uint32_t length_md5sum; arrToVar(length_md5sum, (inbuffer + offset)); - 8003dbe: 69bb ldr r3, [r7, #24] - 8003dc0: 683a ldr r2, [r7, #0] - 8003dc2: 441a add r2, r3 - 8003dc4: f107 030c add.w r3, r7, #12 - 8003dc8: 4611 mov r1, r2 - 8003dca: 4618 mov r0, r3 - 8003dcc: f000 ff01 bl 8004bd2 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> + 80040ca: 69bb ldr r3, [r7, #24] + 80040cc: 683a ldr r2, [r7, #0] + 80040ce: 441a add r2, r3 + 80040d0: f107 030c add.w r3, r7, #12 + 80040d4: 4611 mov r1, r2 + 80040d6: 4618 mov r0, r3 + 80040d8: f000 fd9c bl 8004c14 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> offset += 4; - 8003dd0: 69bb ldr r3, [r7, #24] - 8003dd2: 3304 adds r3, #4 - 8003dd4: 61bb str r3, [r7, #24] + 80040dc: 69bb ldr r3, [r7, #24] + 80040de: 3304 adds r3, #4 + 80040e0: 61bb str r3, [r7, #24] for(unsigned int k= offset; k< offset+length_md5sum; ++k){ - 8003dd6: 69bb ldr r3, [r7, #24] - 8003dd8: 61fb str r3, [r7, #28] - 8003dda: 69ba ldr r2, [r7, #24] - 8003ddc: 68fb ldr r3, [r7, #12] - 8003dde: 4413 add r3, r2 - 8003de0: 69fa ldr r2, [r7, #28] - 8003de2: 429a cmp r2, r3 - 8003de4: d20c bcs.n 8003e00 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x14e> + 80040e2: 69bb ldr r3, [r7, #24] + 80040e4: 61fb str r3, [r7, #28] + 80040e6: 69ba ldr r2, [r7, #24] + 80040e8: 68fb ldr r3, [r7, #12] + 80040ea: 4413 add r3, r2 + 80040ec: 69fa ldr r2, [r7, #28] + 80040ee: 429a cmp r2, r3 + 80040f0: d20c bcs.n 800410c <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x14e> inbuffer[k-1]=inbuffer[k]; - 8003de6: 683a ldr r2, [r7, #0] - 8003de8: 69fb ldr r3, [r7, #28] - 8003dea: 441a add r2, r3 - 8003dec: 69fb ldr r3, [r7, #28] - 8003dee: 3b01 subs r3, #1 - 8003df0: 6839 ldr r1, [r7, #0] - 8003df2: 440b add r3, r1 - 8003df4: 7812 ldrb r2, [r2, #0] - 8003df6: 701a strb r2, [r3, #0] + 80040f2: 683a ldr r2, [r7, #0] + 80040f4: 69fb ldr r3, [r7, #28] + 80040f6: 441a add r2, r3 + 80040f8: 69fb ldr r3, [r7, #28] + 80040fa: 3b01 subs r3, #1 + 80040fc: 6839 ldr r1, [r7, #0] + 80040fe: 440b add r3, r1 + 8004100: 7812 ldrb r2, [r2, #0] + 8004102: 701a strb r2, [r3, #0] for(unsigned int k= offset; k< offset+length_md5sum; ++k){ - 8003df8: 69fb ldr r3, [r7, #28] - 8003dfa: 3301 adds r3, #1 - 8003dfc: 61fb str r3, [r7, #28] - 8003dfe: e7ec b.n 8003dda <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x128> + 8004104: 69fb ldr r3, [r7, #28] + 8004106: 3301 adds r3, #1 + 8004108: 61fb str r3, [r7, #28] + 800410a: e7ec b.n 80040e6 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x128> } inbuffer[offset+length_md5sum-1]=0; - 8003e00: 69ba ldr r2, [r7, #24] - 8003e02: 68fb ldr r3, [r7, #12] - 8003e04: 4413 add r3, r2 - 8003e06: 3b01 subs r3, #1 - 8003e08: 683a ldr r2, [r7, #0] - 8003e0a: 4413 add r3, r2 - 8003e0c: 2200 movs r2, #0 - 8003e0e: 701a strb r2, [r3, #0] + 800410c: 69ba ldr r2, [r7, #24] + 800410e: 68fb ldr r3, [r7, #12] + 8004110: 4413 add r3, r2 + 8004112: 3b01 subs r3, #1 + 8004114: 683a ldr r2, [r7, #0] + 8004116: 4413 add r3, r2 + 8004118: 2200 movs r2, #0 + 800411a: 701a strb r2, [r3, #0] this->md5sum = (char *)(inbuffer + offset-1); - 8003e10: 69bb ldr r3, [r7, #24] - 8003e12: 3b01 subs r3, #1 - 8003e14: 683a ldr r2, [r7, #0] - 8003e16: 441a add r2, r3 - 8003e18: 687b ldr r3, [r7, #4] - 8003e1a: 611a str r2, [r3, #16] + 800411c: 69bb ldr r3, [r7, #24] + 800411e: 3b01 subs r3, #1 + 8004120: 683a ldr r2, [r7, #0] + 8004122: 441a add r2, r3 + 8004124: 687b ldr r3, [r7, #4] + 8004126: 611a str r2, [r3, #16] offset += length_md5sum; - 8003e1c: 69ba ldr r2, [r7, #24] - 8003e1e: 68fb ldr r3, [r7, #12] - 8003e20: 4413 add r3, r2 - 8003e22: 61bb str r3, [r7, #24] + 8004128: 69ba ldr r2, [r7, #24] + 800412a: 68fb ldr r3, [r7, #12] + 800412c: 4413 add r3, r2 + 800412e: 61bb str r3, [r7, #24] union { int32_t real; uint32_t base; } u_buffer_size; u_buffer_size.base = 0; - 8003e24: 2300 movs r3, #0 - 8003e26: 60bb str r3, [r7, #8] + 8004130: 2300 movs r3, #0 + 8004132: 60bb str r3, [r7, #8] u_buffer_size.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); - 8003e28: 68bb ldr r3, [r7, #8] - 8003e2a: 69ba ldr r2, [r7, #24] - 8003e2c: 6839 ldr r1, [r7, #0] - 8003e2e: 440a add r2, r1 - 8003e30: 7812 ldrb r2, [r2, #0] - 8003e32: 4313 orrs r3, r2 - 8003e34: 60bb str r3, [r7, #8] + 8004134: 68bb ldr r3, [r7, #8] + 8004136: 69ba ldr r2, [r7, #24] + 8004138: 6839 ldr r1, [r7, #0] + 800413a: 440a add r2, r1 + 800413c: 7812 ldrb r2, [r2, #0] + 800413e: 4313 orrs r3, r2 + 8004140: 60bb str r3, [r7, #8] u_buffer_size.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 8003e36: 68ba ldr r2, [r7, #8] - 8003e38: 69bb ldr r3, [r7, #24] - 8003e3a: 3301 adds r3, #1 - 8003e3c: 6839 ldr r1, [r7, #0] - 8003e3e: 440b add r3, r1 - 8003e40: 781b ldrb r3, [r3, #0] - 8003e42: 021b lsls r3, r3, #8 - 8003e44: 4313 orrs r3, r2 - 8003e46: 60bb str r3, [r7, #8] + 8004142: 68ba ldr r2, [r7, #8] + 8004144: 69bb ldr r3, [r7, #24] + 8004146: 3301 adds r3, #1 + 8004148: 6839 ldr r1, [r7, #0] + 800414a: 440b add r3, r1 + 800414c: 781b ldrb r3, [r3, #0] + 800414e: 021b lsls r3, r3, #8 + 8004150: 4313 orrs r3, r2 + 8004152: 60bb str r3, [r7, #8] u_buffer_size.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 8003e48: 68ba ldr r2, [r7, #8] - 8003e4a: 69bb ldr r3, [r7, #24] - 8003e4c: 3302 adds r3, #2 - 8003e4e: 6839 ldr r1, [r7, #0] - 8003e50: 440b add r3, r1 - 8003e52: 781b ldrb r3, [r3, #0] - 8003e54: 041b lsls r3, r3, #16 - 8003e56: 4313 orrs r3, r2 - 8003e58: 60bb str r3, [r7, #8] + 8004154: 68ba ldr r2, [r7, #8] + 8004156: 69bb ldr r3, [r7, #24] + 8004158: 3302 adds r3, #2 + 800415a: 6839 ldr r1, [r7, #0] + 800415c: 440b add r3, r1 + 800415e: 781b ldrb r3, [r3, #0] + 8004160: 041b lsls r3, r3, #16 + 8004162: 4313 orrs r3, r2 + 8004164: 60bb str r3, [r7, #8] u_buffer_size.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 8003e5a: 68ba ldr r2, [r7, #8] - 8003e5c: 69bb ldr r3, [r7, #24] - 8003e5e: 3303 adds r3, #3 - 8003e60: 6839 ldr r1, [r7, #0] - 8003e62: 440b add r3, r1 - 8003e64: 781b ldrb r3, [r3, #0] - 8003e66: 061b lsls r3, r3, #24 - 8003e68: 4313 orrs r3, r2 - 8003e6a: 60bb str r3, [r7, #8] + 8004166: 68ba ldr r2, [r7, #8] + 8004168: 69bb ldr r3, [r7, #24] + 800416a: 3303 adds r3, #3 + 800416c: 6839 ldr r1, [r7, #0] + 800416e: 440b add r3, r1 + 8004170: 781b ldrb r3, [r3, #0] + 8004172: 061b lsls r3, r3, #24 + 8004174: 4313 orrs r3, r2 + 8004176: 60bb str r3, [r7, #8] this->buffer_size = u_buffer_size.real; - 8003e6c: 68ba ldr r2, [r7, #8] - 8003e6e: 687b ldr r3, [r7, #4] - 8003e70: 615a str r2, [r3, #20] + 8004178: 68ba ldr r2, [r7, #8] + 800417a: 687b ldr r3, [r7, #4] + 800417c: 615a str r2, [r3, #20] offset += sizeof(this->buffer_size); - 8003e72: 69bb ldr r3, [r7, #24] - 8003e74: 3304 adds r3, #4 - 8003e76: 61bb str r3, [r7, #24] + 800417e: 69bb ldr r3, [r7, #24] + 8004180: 3304 adds r3, #4 + 8004182: 61bb str r3, [r7, #24] return offset; - 8003e78: 69bb ldr r3, [r7, #24] + 8004184: 69bb ldr r3, [r7, #24] } - 8003e7a: 4618 mov r0, r3 - 8003e7c: 3728 adds r7, #40 ; 0x28 - 8003e7e: 46bd mov sp, r7 - 8003e80: bd80 pop {r7, pc} + 8004186: 4618 mov r0, r3 + 8004188: 3728 adds r7, #40 ; 0x28 + 800418a: 46bd mov sp, r7 + 800418c: bd80 pop {r7, pc} ... -08003e84 <_ZN14rosserial_msgs9TopicInfo7getTypeEv>: +08004190 <_ZN14rosserial_msgs9TopicInfo7getTypeEv>: const char * getType(){ return "rosserial_msgs/TopicInfo"; }; - 8003e84: b480 push {r7} - 8003e86: b083 sub sp, #12 - 8003e88: af00 add r7, sp, #0 - 8003e8a: 6078 str r0, [r7, #4] - 8003e8c: 4b03 ldr r3, [pc, #12] ; (8003e9c <_ZN14rosserial_msgs9TopicInfo7getTypeEv+0x18>) - 8003e8e: 4618 mov r0, r3 - 8003e90: 370c adds r7, #12 - 8003e92: 46bd mov sp, r7 - 8003e94: f85d 7b04 ldr.w r7, [sp], #4 - 8003e98: 4770 bx lr - 8003e9a: bf00 nop - 8003e9c: 08005f2c .word 0x08005f2c - -08003ea0 <_ZN14rosserial_msgs9TopicInfo6getMD5Ev>: + 8004190: b480 push {r7} + 8004192: b083 sub sp, #12 + 8004194: af00 add r7, sp, #0 + 8004196: 6078 str r0, [r7, #4] + 8004198: 4b03 ldr r3, [pc, #12] ; (80041a8 <_ZN14rosserial_msgs9TopicInfo7getTypeEv+0x18>) + 800419a: 4618 mov r0, r3 + 800419c: 370c adds r7, #12 + 800419e: 46bd mov sp, r7 + 80041a0: f85d 7b04 ldr.w r7, [sp], #4 + 80041a4: 4770 bx lr + 80041a6: bf00 nop + 80041a8: 08005f90 .word 0x08005f90 + +080041ac <_ZN14rosserial_msgs9TopicInfo6getMD5Ev>: const char * getMD5(){ return "0ad51f88fc44892f8c10684077646005"; }; - 8003ea0: b480 push {r7} - 8003ea2: b083 sub sp, #12 - 8003ea4: af00 add r7, sp, #0 - 8003ea6: 6078 str r0, [r7, #4] - 8003ea8: 4b03 ldr r3, [pc, #12] ; (8003eb8 <_ZN14rosserial_msgs9TopicInfo6getMD5Ev+0x18>) - 8003eaa: 4618 mov r0, r3 - 8003eac: 370c adds r7, #12 - 8003eae: 46bd mov sp, r7 - 8003eb0: f85d 7b04 ldr.w r7, [sp], #4 - 8003eb4: 4770 bx lr - 8003eb6: bf00 nop - 8003eb8: 08005f48 .word 0x08005f48 - -08003ebc <_ZN14rosserial_msgs3LogC1Ev>: + 80041ac: b480 push {r7} + 80041ae: b083 sub sp, #12 + 80041b0: af00 add r7, sp, #0 + 80041b2: 6078 str r0, [r7, #4] + 80041b4: 4b03 ldr r3, [pc, #12] ; (80041c4 <_ZN14rosserial_msgs9TopicInfo6getMD5Ev+0x18>) + 80041b6: 4618 mov r0, r3 + 80041b8: 370c adds r7, #12 + 80041ba: 46bd mov sp, r7 + 80041bc: f85d 7b04 ldr.w r7, [sp], #4 + 80041c0: 4770 bx lr + 80041c2: bf00 nop + 80041c4: 08005fac .word 0x08005fac + +080041c8 <_ZN14rosserial_msgs3LogC1Ev>: enum { INFO = 1 }; enum { WARN = 2 }; enum { ERROR = 3 }; enum { FATAL = 4 }; Log(): - 8003ebc: b580 push {r7, lr} - 8003ebe: b082 sub sp, #8 - 8003ec0: af00 add r7, sp, #0 - 8003ec2: 6078 str r0, [r7, #4] + 80041c8: b580 push {r7, lr} + 80041ca: b082 sub sp, #8 + 80041cc: af00 add r7, sp, #0 + 80041ce: 6078 str r0, [r7, #4] level(0), msg("") - 8003ec4: 687b ldr r3, [r7, #4] - 8003ec6: 4618 mov r0, r3 - 8003ec8: f7ff fcc2 bl 8003850 <_ZN3ros3MsgC1Ev> - 8003ecc: 4a06 ldr r2, [pc, #24] ; (8003ee8 <_ZN14rosserial_msgs3LogC1Ev+0x2c>) - 8003ece: 687b ldr r3, [r7, #4] - 8003ed0: 601a str r2, [r3, #0] - 8003ed2: 687b ldr r3, [r7, #4] - 8003ed4: 2200 movs r2, #0 - 8003ed6: 711a strb r2, [r3, #4] - 8003ed8: 687b ldr r3, [r7, #4] - 8003eda: 4a04 ldr r2, [pc, #16] ; (8003eec <_ZN14rosserial_msgs3LogC1Ev+0x30>) - 8003edc: 609a str r2, [r3, #8] + 80041d0: 687b ldr r3, [r7, #4] + 80041d2: 4618 mov r0, r3 + 80041d4: f7ff fcc2 bl 8003b5c <_ZN3ros3MsgC1Ev> + 80041d8: 4a06 ldr r2, [pc, #24] ; (80041f4 <_ZN14rosserial_msgs3LogC1Ev+0x2c>) + 80041da: 687b ldr r3, [r7, #4] + 80041dc: 601a str r2, [r3, #0] + 80041de: 687b ldr r3, [r7, #4] + 80041e0: 2200 movs r2, #0 + 80041e2: 711a strb r2, [r3, #4] + 80041e4: 687b ldr r3, [r7, #4] + 80041e6: 4a04 ldr r2, [pc, #16] ; (80041f8 <_ZN14rosserial_msgs3LogC1Ev+0x30>) + 80041e8: 609a str r2, [r3, #8] { } - 8003ede: 687b ldr r3, [r7, #4] - 8003ee0: 4618 mov r0, r3 - 8003ee2: 3708 adds r7, #8 - 8003ee4: 46bd mov sp, r7 - 8003ee6: bd80 pop {r7, pc} - 8003ee8: 080060a4 .word 0x080060a4 - 8003eec: 08005f28 .word 0x08005f28 + 80041ea: 687b ldr r3, [r7, #4] + 80041ec: 4618 mov r0, r3 + 80041ee: 3708 adds r7, #8 + 80041f0: 46bd mov sp, r7 + 80041f2: bd80 pop {r7, pc} + 80041f4: 08006108 .word 0x08006108 + 80041f8: 08005f8c .word 0x08005f8c -08003ef0 <_ZNK14rosserial_msgs3Log9serializeEPh>: +080041fc <_ZNK14rosserial_msgs3Log9serializeEPh>: virtual int serialize(unsigned char *outbuffer) const - 8003ef0: b580 push {r7, lr} - 8003ef2: b084 sub sp, #16 - 8003ef4: af00 add r7, sp, #0 - 8003ef6: 6078 str r0, [r7, #4] - 8003ef8: 6039 str r1, [r7, #0] + 80041fc: b580 push {r7, lr} + 80041fe: b084 sub sp, #16 + 8004200: af00 add r7, sp, #0 + 8004202: 6078 str r0, [r7, #4] + 8004204: 6039 str r1, [r7, #0] { int offset = 0; - 8003efa: 2300 movs r3, #0 - 8003efc: 60fb str r3, [r7, #12] + 8004206: 2300 movs r3, #0 + 8004208: 60fb str r3, [r7, #12] *(outbuffer + offset + 0) = (this->level >> (8 * 0)) & 0xFF; - 8003efe: 68fb ldr r3, [r7, #12] - 8003f00: 683a ldr r2, [r7, #0] - 8003f02: 4413 add r3, r2 - 8003f04: 687a ldr r2, [r7, #4] - 8003f06: 7912 ldrb r2, [r2, #4] - 8003f08: 701a strb r2, [r3, #0] + 800420a: 68fb ldr r3, [r7, #12] + 800420c: 683a ldr r2, [r7, #0] + 800420e: 4413 add r3, r2 + 8004210: 687a ldr r2, [r7, #4] + 8004212: 7912 ldrb r2, [r2, #4] + 8004214: 701a strb r2, [r3, #0] offset += sizeof(this->level); - 8003f0a: 68fb ldr r3, [r7, #12] - 8003f0c: 3301 adds r3, #1 - 8003f0e: 60fb str r3, [r7, #12] + 8004216: 68fb ldr r3, [r7, #12] + 8004218: 3301 adds r3, #1 + 800421a: 60fb str r3, [r7, #12] uint32_t length_msg = strlen(this->msg); - 8003f10: 687b ldr r3, [r7, #4] - 8003f12: 689b ldr r3, [r3, #8] - 8003f14: 4618 mov r0, r3 - 8003f16: f7fc f98f bl 8000238 - 8003f1a: 60b8 str r0, [r7, #8] + 800421c: 687b ldr r3, [r7, #4] + 800421e: 689b ldr r3, [r3, #8] + 8004220: 4618 mov r0, r3 + 8004222: f7fc f809 bl 8000238 + 8004226: 60b8 str r0, [r7, #8] varToArr(outbuffer + offset, length_msg); - 8003f1c: 68fb ldr r3, [r7, #12] - 8003f1e: 683a ldr r2, [r7, #0] - 8003f20: 4413 add r3, r2 - 8003f22: 68b9 ldr r1, [r7, #8] - 8003f24: 4618 mov r0, r3 - 8003f26: f000 fe36 bl 8004b96 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> + 8004228: 68fb ldr r3, [r7, #12] + 800422a: 683a ldr r2, [r7, #0] + 800422c: 4413 add r3, r2 + 800422e: 68b9 ldr r1, [r7, #8] + 8004230: 4618 mov r0, r3 + 8004232: f000 fcd1 bl 8004bd8 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> offset += 4; - 8003f2a: 68fb ldr r3, [r7, #12] - 8003f2c: 3304 adds r3, #4 - 8003f2e: 60fb str r3, [r7, #12] + 8004236: 68fb ldr r3, [r7, #12] + 8004238: 3304 adds r3, #4 + 800423a: 60fb str r3, [r7, #12] memcpy(outbuffer + offset, this->msg, length_msg); - 8003f30: 68fb ldr r3, [r7, #12] - 8003f32: 683a ldr r2, [r7, #0] - 8003f34: 18d0 adds r0, r2, r3 - 8003f36: 687b ldr r3, [r7, #4] - 8003f38: 689b ldr r3, [r3, #8] - 8003f3a: 68ba ldr r2, [r7, #8] - 8003f3c: 4619 mov r1, r3 - 8003f3e: f001 fe6b bl 8005c18 + 800423c: 68fb ldr r3, [r7, #12] + 800423e: 683a ldr r2, [r7, #0] + 8004240: 18d0 adds r0, r2, r3 + 8004242: 687b ldr r3, [r7, #4] + 8004244: 689b ldr r3, [r3, #8] + 8004246: 68ba ldr r2, [r7, #8] + 8004248: 4619 mov r1, r3 + 800424a: f001 fd17 bl 8005c7c offset += length_msg; - 8003f42: 68fa ldr r2, [r7, #12] - 8003f44: 68bb ldr r3, [r7, #8] - 8003f46: 4413 add r3, r2 - 8003f48: 60fb str r3, [r7, #12] + 800424e: 68fa ldr r2, [r7, #12] + 8004250: 68bb ldr r3, [r7, #8] + 8004252: 4413 add r3, r2 + 8004254: 60fb str r3, [r7, #12] return offset; - 8003f4a: 68fb ldr r3, [r7, #12] + 8004256: 68fb ldr r3, [r7, #12] } - 8003f4c: 4618 mov r0, r3 - 8003f4e: 3710 adds r7, #16 - 8003f50: 46bd mov sp, r7 - 8003f52: bd80 pop {r7, pc} + 8004258: 4618 mov r0, r3 + 800425a: 3710 adds r7, #16 + 800425c: 46bd mov sp, r7 + 800425e: bd80 pop {r7, pc} -08003f54 <_ZN14rosserial_msgs3Log11deserializeEPh>: +08004260 <_ZN14rosserial_msgs3Log11deserializeEPh>: virtual int deserialize(unsigned char *inbuffer) - 8003f54: b580 push {r7, lr} - 8003f56: b086 sub sp, #24 - 8003f58: af00 add r7, sp, #0 - 8003f5a: 6078 str r0, [r7, #4] - 8003f5c: 6039 str r1, [r7, #0] + 8004260: b580 push {r7, lr} + 8004262: b086 sub sp, #24 + 8004264: af00 add r7, sp, #0 + 8004266: 6078 str r0, [r7, #4] + 8004268: 6039 str r1, [r7, #0] { int offset = 0; - 8003f5e: 2300 movs r3, #0 - 8003f60: 613b str r3, [r7, #16] + 800426a: 2300 movs r3, #0 + 800426c: 613b str r3, [r7, #16] this->level = ((uint8_t) (*(inbuffer + offset))); - 8003f62: 693b ldr r3, [r7, #16] - 8003f64: 683a ldr r2, [r7, #0] - 8003f66: 4413 add r3, r2 - 8003f68: 781a ldrb r2, [r3, #0] - 8003f6a: 687b ldr r3, [r7, #4] - 8003f6c: 711a strb r2, [r3, #4] + 800426e: 693b ldr r3, [r7, #16] + 8004270: 683a ldr r2, [r7, #0] + 8004272: 4413 add r3, r2 + 8004274: 781a ldrb r2, [r3, #0] + 8004276: 687b ldr r3, [r7, #4] + 8004278: 711a strb r2, [r3, #4] offset += sizeof(this->level); - 8003f6e: 693b ldr r3, [r7, #16] - 8003f70: 3301 adds r3, #1 - 8003f72: 613b str r3, [r7, #16] + 800427a: 693b ldr r3, [r7, #16] + 800427c: 3301 adds r3, #1 + 800427e: 613b str r3, [r7, #16] uint32_t length_msg; arrToVar(length_msg, (inbuffer + offset)); - 8003f74: 693b ldr r3, [r7, #16] - 8003f76: 683a ldr r2, [r7, #0] - 8003f78: 441a add r2, r3 - 8003f7a: f107 030c add.w r3, r7, #12 - 8003f7e: 4611 mov r1, r2 - 8003f80: 4618 mov r0, r3 - 8003f82: f000 fe26 bl 8004bd2 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> + 8004280: 693b ldr r3, [r7, #16] + 8004282: 683a ldr r2, [r7, #0] + 8004284: 441a add r2, r3 + 8004286: f107 030c add.w r3, r7, #12 + 800428a: 4611 mov r1, r2 + 800428c: 4618 mov r0, r3 + 800428e: f000 fcc1 bl 8004c14 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> offset += 4; - 8003f86: 693b ldr r3, [r7, #16] - 8003f88: 3304 adds r3, #4 - 8003f8a: 613b str r3, [r7, #16] + 8004292: 693b ldr r3, [r7, #16] + 8004294: 3304 adds r3, #4 + 8004296: 613b str r3, [r7, #16] for(unsigned int k= offset; k< offset+length_msg; ++k){ - 8003f8c: 693b ldr r3, [r7, #16] - 8003f8e: 617b str r3, [r7, #20] - 8003f90: 693a ldr r2, [r7, #16] - 8003f92: 68fb ldr r3, [r7, #12] - 8003f94: 4413 add r3, r2 - 8003f96: 697a ldr r2, [r7, #20] - 8003f98: 429a cmp r2, r3 - 8003f9a: d20c bcs.n 8003fb6 <_ZN14rosserial_msgs3Log11deserializeEPh+0x62> + 8004298: 693b ldr r3, [r7, #16] + 800429a: 617b str r3, [r7, #20] + 800429c: 693a ldr r2, [r7, #16] + 800429e: 68fb ldr r3, [r7, #12] + 80042a0: 4413 add r3, r2 + 80042a2: 697a ldr r2, [r7, #20] + 80042a4: 429a cmp r2, r3 + 80042a6: d20c bcs.n 80042c2 <_ZN14rosserial_msgs3Log11deserializeEPh+0x62> inbuffer[k-1]=inbuffer[k]; - 8003f9c: 683a ldr r2, [r7, #0] - 8003f9e: 697b ldr r3, [r7, #20] - 8003fa0: 441a add r2, r3 - 8003fa2: 697b ldr r3, [r7, #20] - 8003fa4: 3b01 subs r3, #1 - 8003fa6: 6839 ldr r1, [r7, #0] - 8003fa8: 440b add r3, r1 - 8003faa: 7812 ldrb r2, [r2, #0] - 8003fac: 701a strb r2, [r3, #0] + 80042a8: 683a ldr r2, [r7, #0] + 80042aa: 697b ldr r3, [r7, #20] + 80042ac: 441a add r2, r3 + 80042ae: 697b ldr r3, [r7, #20] + 80042b0: 3b01 subs r3, #1 + 80042b2: 6839 ldr r1, [r7, #0] + 80042b4: 440b add r3, r1 + 80042b6: 7812 ldrb r2, [r2, #0] + 80042b8: 701a strb r2, [r3, #0] for(unsigned int k= offset; k< offset+length_msg; ++k){ - 8003fae: 697b ldr r3, [r7, #20] - 8003fb0: 3301 adds r3, #1 - 8003fb2: 617b str r3, [r7, #20] - 8003fb4: e7ec b.n 8003f90 <_ZN14rosserial_msgs3Log11deserializeEPh+0x3c> + 80042ba: 697b ldr r3, [r7, #20] + 80042bc: 3301 adds r3, #1 + 80042be: 617b str r3, [r7, #20] + 80042c0: e7ec b.n 800429c <_ZN14rosserial_msgs3Log11deserializeEPh+0x3c> } inbuffer[offset+length_msg-1]=0; - 8003fb6: 693a ldr r2, [r7, #16] - 8003fb8: 68fb ldr r3, [r7, #12] - 8003fba: 4413 add r3, r2 - 8003fbc: 3b01 subs r3, #1 - 8003fbe: 683a ldr r2, [r7, #0] - 8003fc0: 4413 add r3, r2 - 8003fc2: 2200 movs r2, #0 - 8003fc4: 701a strb r2, [r3, #0] + 80042c2: 693a ldr r2, [r7, #16] + 80042c4: 68fb ldr r3, [r7, #12] + 80042c6: 4413 add r3, r2 + 80042c8: 3b01 subs r3, #1 + 80042ca: 683a ldr r2, [r7, #0] + 80042cc: 4413 add r3, r2 + 80042ce: 2200 movs r2, #0 + 80042d0: 701a strb r2, [r3, #0] this->msg = (char *)(inbuffer + offset-1); - 8003fc6: 693b ldr r3, [r7, #16] - 8003fc8: 3b01 subs r3, #1 - 8003fca: 683a ldr r2, [r7, #0] - 8003fcc: 441a add r2, r3 - 8003fce: 687b ldr r3, [r7, #4] - 8003fd0: 609a str r2, [r3, #8] + 80042d2: 693b ldr r3, [r7, #16] + 80042d4: 3b01 subs r3, #1 + 80042d6: 683a ldr r2, [r7, #0] + 80042d8: 441a add r2, r3 + 80042da: 687b ldr r3, [r7, #4] + 80042dc: 609a str r2, [r3, #8] offset += length_msg; - 8003fd2: 693a ldr r2, [r7, #16] - 8003fd4: 68fb ldr r3, [r7, #12] - 8003fd6: 4413 add r3, r2 - 8003fd8: 613b str r3, [r7, #16] + 80042de: 693a ldr r2, [r7, #16] + 80042e0: 68fb ldr r3, [r7, #12] + 80042e2: 4413 add r3, r2 + 80042e4: 613b str r3, [r7, #16] return offset; - 8003fda: 693b ldr r3, [r7, #16] + 80042e6: 693b ldr r3, [r7, #16] } - 8003fdc: 4618 mov r0, r3 - 8003fde: 3718 adds r7, #24 - 8003fe0: 46bd mov sp, r7 - 8003fe2: bd80 pop {r7, pc} + 80042e8: 4618 mov r0, r3 + 80042ea: 3718 adds r7, #24 + 80042ec: 46bd mov sp, r7 + 80042ee: bd80 pop {r7, pc} -08003fe4 <_ZN14rosserial_msgs3Log7getTypeEv>: +080042f0 <_ZN14rosserial_msgs3Log7getTypeEv>: const char * getType(){ return "rosserial_msgs/Log"; }; - 8003fe4: b480 push {r7} - 8003fe6: b083 sub sp, #12 - 8003fe8: af00 add r7, sp, #0 - 8003fea: 6078 str r0, [r7, #4] - 8003fec: 4b03 ldr r3, [pc, #12] ; (8003ffc <_ZN14rosserial_msgs3Log7getTypeEv+0x18>) - 8003fee: 4618 mov r0, r3 - 8003ff0: 370c adds r7, #12 - 8003ff2: 46bd mov sp, r7 - 8003ff4: f85d 7b04 ldr.w r7, [sp], #4 - 8003ff8: 4770 bx lr - 8003ffa: bf00 nop - 8003ffc: 08005f6c .word 0x08005f6c - -08004000 <_ZN14rosserial_msgs3Log6getMD5Ev>: + 80042f0: b480 push {r7} + 80042f2: b083 sub sp, #12 + 80042f4: af00 add r7, sp, #0 + 80042f6: 6078 str r0, [r7, #4] + 80042f8: 4b03 ldr r3, [pc, #12] ; (8004308 <_ZN14rosserial_msgs3Log7getTypeEv+0x18>) + 80042fa: 4618 mov r0, r3 + 80042fc: 370c adds r7, #12 + 80042fe: 46bd mov sp, r7 + 8004300: f85d 7b04 ldr.w r7, [sp], #4 + 8004304: 4770 bx lr + 8004306: bf00 nop + 8004308: 08005fd0 .word 0x08005fd0 + +0800430c <_ZN14rosserial_msgs3Log6getMD5Ev>: const char * getMD5(){ return "11abd731c25933261cd6183bd12d6295"; }; - 8004000: b480 push {r7} - 8004002: b083 sub sp, #12 - 8004004: af00 add r7, sp, #0 - 8004006: 6078 str r0, [r7, #4] - 8004008: 4b03 ldr r3, [pc, #12] ; (8004018 <_ZN14rosserial_msgs3Log6getMD5Ev+0x18>) - 800400a: 4618 mov r0, r3 - 800400c: 370c adds r7, #12 - 800400e: 46bd mov sp, r7 - 8004010: f85d 7b04 ldr.w r7, [sp], #4 - 8004014: 4770 bx lr - 8004016: bf00 nop - 8004018: 08005f80 .word 0x08005f80 - -0800401c <_ZN14rosserial_msgs20RequestParamResponseC1Ev>: + 800430c: b480 push {r7} + 800430e: b083 sub sp, #12 + 8004310: af00 add r7, sp, #0 + 8004312: 6078 str r0, [r7, #4] + 8004314: 4b03 ldr r3, [pc, #12] ; (8004324 <_ZN14rosserial_msgs3Log6getMD5Ev+0x18>) + 8004316: 4618 mov r0, r3 + 8004318: 370c adds r7, #12 + 800431a: 46bd mov sp, r7 + 800431c: f85d 7b04 ldr.w r7, [sp], #4 + 8004320: 4770 bx lr + 8004322: bf00 nop + 8004324: 08005fe4 .word 0x08005fe4 + +08004328 <_ZN14rosserial_msgs20RequestParamResponseC1Ev>: uint32_t strings_length; typedef char* _strings_type; _strings_type st_strings; _strings_type * strings; RequestParamResponse(): - 800401c: b580 push {r7, lr} - 800401e: b082 sub sp, #8 - 8004020: af00 add r7, sp, #0 - 8004022: 6078 str r0, [r7, #4] + 8004328: b580 push {r7, lr} + 800432a: b082 sub sp, #8 + 800432c: af00 add r7, sp, #0 + 800432e: 6078 str r0, [r7, #4] ints_length(0), ints(NULL), floats_length(0), floats(NULL), strings_length(0), strings(NULL) - 8004024: 687b ldr r3, [r7, #4] - 8004026: 4618 mov r0, r3 - 8004028: f7ff fc12 bl 8003850 <_ZN3ros3MsgC1Ev> - 800402c: 4a0c ldr r2, [pc, #48] ; (8004060 <_ZN14rosserial_msgs20RequestParamResponseC1Ev+0x44>) - 800402e: 687b ldr r3, [r7, #4] - 8004030: 601a str r2, [r3, #0] - 8004032: 687b ldr r3, [r7, #4] - 8004034: 2200 movs r2, #0 - 8004036: 605a str r2, [r3, #4] - 8004038: 687b ldr r3, [r7, #4] - 800403a: 2200 movs r2, #0 - 800403c: 60da str r2, [r3, #12] - 800403e: 687b ldr r3, [r7, #4] - 8004040: 2200 movs r2, #0 - 8004042: 611a str r2, [r3, #16] - 8004044: 687b ldr r3, [r7, #4] - 8004046: 2200 movs r2, #0 - 8004048: 619a str r2, [r3, #24] - 800404a: 687b ldr r3, [r7, #4] - 800404c: 2200 movs r2, #0 - 800404e: 61da str r2, [r3, #28] - 8004050: 687b ldr r3, [r7, #4] - 8004052: 2200 movs r2, #0 - 8004054: 625a str r2, [r3, #36] ; 0x24 + 8004330: 687b ldr r3, [r7, #4] + 8004332: 4618 mov r0, r3 + 8004334: f7ff fc12 bl 8003b5c <_ZN3ros3MsgC1Ev> + 8004338: 4a0c ldr r2, [pc, #48] ; (800436c <_ZN14rosserial_msgs20RequestParamResponseC1Ev+0x44>) + 800433a: 687b ldr r3, [r7, #4] + 800433c: 601a str r2, [r3, #0] + 800433e: 687b ldr r3, [r7, #4] + 8004340: 2200 movs r2, #0 + 8004342: 605a str r2, [r3, #4] + 8004344: 687b ldr r3, [r7, #4] + 8004346: 2200 movs r2, #0 + 8004348: 60da str r2, [r3, #12] + 800434a: 687b ldr r3, [r7, #4] + 800434c: 2200 movs r2, #0 + 800434e: 611a str r2, [r3, #16] + 8004350: 687b ldr r3, [r7, #4] + 8004352: 2200 movs r2, #0 + 8004354: 619a str r2, [r3, #24] + 8004356: 687b ldr r3, [r7, #4] + 8004358: 2200 movs r2, #0 + 800435a: 61da str r2, [r3, #28] + 800435c: 687b ldr r3, [r7, #4] + 800435e: 2200 movs r2, #0 + 8004360: 625a str r2, [r3, #36] ; 0x24 { } - 8004056: 687b ldr r3, [r7, #4] - 8004058: 4618 mov r0, r3 - 800405a: 3708 adds r7, #8 - 800405c: 46bd mov sp, r7 - 800405e: bd80 pop {r7, pc} - 8004060: 0800608c .word 0x0800608c + 8004362: 687b ldr r3, [r7, #4] + 8004364: 4618 mov r0, r3 + 8004366: 3708 adds r7, #8 + 8004368: 46bd mov sp, r7 + 800436a: bd80 pop {r7, pc} + 800436c: 080060f0 .word 0x080060f0 -08004064 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh>: +08004370 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh>: virtual int serialize(unsigned char *outbuffer) const - 8004064: b580 push {r7, lr} - 8004066: b08a sub sp, #40 ; 0x28 - 8004068: af00 add r7, sp, #0 - 800406a: 6078 str r0, [r7, #4] - 800406c: 6039 str r1, [r7, #0] + 8004370: b580 push {r7, lr} + 8004372: b08a sub sp, #40 ; 0x28 + 8004374: af00 add r7, sp, #0 + 8004376: 6078 str r0, [r7, #4] + 8004378: 6039 str r1, [r7, #0] { int offset = 0; - 800406e: 2300 movs r3, #0 - 8004070: 627b str r3, [r7, #36] ; 0x24 + 800437a: 2300 movs r3, #0 + 800437c: 627b str r3, [r7, #36] ; 0x24 *(outbuffer + offset + 0) = (this->ints_length >> (8 * 0)) & 0xFF; - 8004072: 687b ldr r3, [r7, #4] - 8004074: 6859 ldr r1, [r3, #4] - 8004076: 6a7b ldr r3, [r7, #36] ; 0x24 - 8004078: 683a ldr r2, [r7, #0] - 800407a: 4413 add r3, r2 - 800407c: b2ca uxtb r2, r1 - 800407e: 701a strb r2, [r3, #0] + 800437e: 687b ldr r3, [r7, #4] + 8004380: 6859 ldr r1, [r3, #4] + 8004382: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004384: 683a ldr r2, [r7, #0] + 8004386: 4413 add r3, r2 + 8004388: b2ca uxtb r2, r1 + 800438a: 701a strb r2, [r3, #0] *(outbuffer + offset + 1) = (this->ints_length >> (8 * 1)) & 0xFF; - 8004080: 687b ldr r3, [r7, #4] - 8004082: 685b ldr r3, [r3, #4] - 8004084: 0a19 lsrs r1, r3, #8 - 8004086: 6a7b ldr r3, [r7, #36] ; 0x24 - 8004088: 3301 adds r3, #1 - 800408a: 683a ldr r2, [r7, #0] - 800408c: 4413 add r3, r2 - 800408e: b2ca uxtb r2, r1 - 8004090: 701a strb r2, [r3, #0] + 800438c: 687b ldr r3, [r7, #4] + 800438e: 685b ldr r3, [r3, #4] + 8004390: 0a19 lsrs r1, r3, #8 + 8004392: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004394: 3301 adds r3, #1 + 8004396: 683a ldr r2, [r7, #0] + 8004398: 4413 add r3, r2 + 800439a: b2ca uxtb r2, r1 + 800439c: 701a strb r2, [r3, #0] *(outbuffer + offset + 2) = (this->ints_length >> (8 * 2)) & 0xFF; - 8004092: 687b ldr r3, [r7, #4] - 8004094: 685b ldr r3, [r3, #4] - 8004096: 0c19 lsrs r1, r3, #16 - 8004098: 6a7b ldr r3, [r7, #36] ; 0x24 - 800409a: 3302 adds r3, #2 - 800409c: 683a ldr r2, [r7, #0] - 800409e: 4413 add r3, r2 - 80040a0: b2ca uxtb r2, r1 - 80040a2: 701a strb r2, [r3, #0] + 800439e: 687b ldr r3, [r7, #4] + 80043a0: 685b ldr r3, [r3, #4] + 80043a2: 0c19 lsrs r1, r3, #16 + 80043a4: 6a7b ldr r3, [r7, #36] ; 0x24 + 80043a6: 3302 adds r3, #2 + 80043a8: 683a ldr r2, [r7, #0] + 80043aa: 4413 add r3, r2 + 80043ac: b2ca uxtb r2, r1 + 80043ae: 701a strb r2, [r3, #0] *(outbuffer + offset + 3) = (this->ints_length >> (8 * 3)) & 0xFF; - 80040a4: 687b ldr r3, [r7, #4] - 80040a6: 685b ldr r3, [r3, #4] - 80040a8: 0e19 lsrs r1, r3, #24 - 80040aa: 6a7b ldr r3, [r7, #36] ; 0x24 - 80040ac: 3303 adds r3, #3 - 80040ae: 683a ldr r2, [r7, #0] - 80040b0: 4413 add r3, r2 - 80040b2: b2ca uxtb r2, r1 - 80040b4: 701a strb r2, [r3, #0] + 80043b0: 687b ldr r3, [r7, #4] + 80043b2: 685b ldr r3, [r3, #4] + 80043b4: 0e19 lsrs r1, r3, #24 + 80043b6: 6a7b ldr r3, [r7, #36] ; 0x24 + 80043b8: 3303 adds r3, #3 + 80043ba: 683a ldr r2, [r7, #0] + 80043bc: 4413 add r3, r2 + 80043be: b2ca uxtb r2, r1 + 80043c0: 701a strb r2, [r3, #0] offset += sizeof(this->ints_length); - 80040b6: 6a7b ldr r3, [r7, #36] ; 0x24 - 80040b8: 3304 adds r3, #4 - 80040ba: 627b str r3, [r7, #36] ; 0x24 + 80043c2: 6a7b ldr r3, [r7, #36] ; 0x24 + 80043c4: 3304 adds r3, #4 + 80043c6: 627b str r3, [r7, #36] ; 0x24 for( uint32_t i = 0; i < ints_length; i++){ - 80040bc: 2300 movs r3, #0 - 80040be: 623b str r3, [r7, #32] - 80040c0: 687b ldr r3, [r7, #4] - 80040c2: 685b ldr r3, [r3, #4] - 80040c4: 6a3a ldr r2, [r7, #32] - 80040c6: 429a cmp r2, r3 - 80040c8: d22b bcs.n 8004122 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0xbe> + 80043c8: 2300 movs r3, #0 + 80043ca: 623b str r3, [r7, #32] + 80043cc: 687b ldr r3, [r7, #4] + 80043ce: 685b ldr r3, [r3, #4] + 80043d0: 6a3a ldr r2, [r7, #32] + 80043d2: 429a cmp r2, r3 + 80043d4: d22b bcs.n 800442e <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0xbe> union { int32_t real; uint32_t base; } u_intsi; u_intsi.real = this->ints[i]; - 80040ca: 687b ldr r3, [r7, #4] - 80040cc: 68da ldr r2, [r3, #12] - 80040ce: 6a3b ldr r3, [r7, #32] - 80040d0: 009b lsls r3, r3, #2 - 80040d2: 4413 add r3, r2 - 80040d4: 681b ldr r3, [r3, #0] - 80040d6: 613b str r3, [r7, #16] + 80043d6: 687b ldr r3, [r7, #4] + 80043d8: 68da ldr r2, [r3, #12] + 80043da: 6a3b ldr r3, [r7, #32] + 80043dc: 009b lsls r3, r3, #2 + 80043de: 4413 add r3, r2 + 80043e0: 681b ldr r3, [r3, #0] + 80043e2: 613b str r3, [r7, #16] *(outbuffer + offset + 0) = (u_intsi.base >> (8 * 0)) & 0xFF; - 80040d8: 6939 ldr r1, [r7, #16] - 80040da: 6a7b ldr r3, [r7, #36] ; 0x24 - 80040dc: 683a ldr r2, [r7, #0] - 80040de: 4413 add r3, r2 - 80040e0: b2ca uxtb r2, r1 - 80040e2: 701a strb r2, [r3, #0] + 80043e4: 6939 ldr r1, [r7, #16] + 80043e6: 6a7b ldr r3, [r7, #36] ; 0x24 + 80043e8: 683a ldr r2, [r7, #0] + 80043ea: 4413 add r3, r2 + 80043ec: b2ca uxtb r2, r1 + 80043ee: 701a strb r2, [r3, #0] *(outbuffer + offset + 1) = (u_intsi.base >> (8 * 1)) & 0xFF; - 80040e4: 693b ldr r3, [r7, #16] - 80040e6: 0a19 lsrs r1, r3, #8 - 80040e8: 6a7b ldr r3, [r7, #36] ; 0x24 - 80040ea: 3301 adds r3, #1 - 80040ec: 683a ldr r2, [r7, #0] - 80040ee: 4413 add r3, r2 - 80040f0: b2ca uxtb r2, r1 - 80040f2: 701a strb r2, [r3, #0] + 80043f0: 693b ldr r3, [r7, #16] + 80043f2: 0a19 lsrs r1, r3, #8 + 80043f4: 6a7b ldr r3, [r7, #36] ; 0x24 + 80043f6: 3301 adds r3, #1 + 80043f8: 683a ldr r2, [r7, #0] + 80043fa: 4413 add r3, r2 + 80043fc: b2ca uxtb r2, r1 + 80043fe: 701a strb r2, [r3, #0] *(outbuffer + offset + 2) = (u_intsi.base >> (8 * 2)) & 0xFF; - 80040f4: 693b ldr r3, [r7, #16] - 80040f6: 0c19 lsrs r1, r3, #16 - 80040f8: 6a7b ldr r3, [r7, #36] ; 0x24 - 80040fa: 3302 adds r3, #2 - 80040fc: 683a ldr r2, [r7, #0] - 80040fe: 4413 add r3, r2 - 8004100: b2ca uxtb r2, r1 - 8004102: 701a strb r2, [r3, #0] + 8004400: 693b ldr r3, [r7, #16] + 8004402: 0c19 lsrs r1, r3, #16 + 8004404: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004406: 3302 adds r3, #2 + 8004408: 683a ldr r2, [r7, #0] + 800440a: 4413 add r3, r2 + 800440c: b2ca uxtb r2, r1 + 800440e: 701a strb r2, [r3, #0] *(outbuffer + offset + 3) = (u_intsi.base >> (8 * 3)) & 0xFF; - 8004104: 693b ldr r3, [r7, #16] - 8004106: 0e19 lsrs r1, r3, #24 - 8004108: 6a7b ldr r3, [r7, #36] ; 0x24 - 800410a: 3303 adds r3, #3 - 800410c: 683a ldr r2, [r7, #0] - 800410e: 4413 add r3, r2 - 8004110: b2ca uxtb r2, r1 - 8004112: 701a strb r2, [r3, #0] + 8004410: 693b ldr r3, [r7, #16] + 8004412: 0e19 lsrs r1, r3, #24 + 8004414: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004416: 3303 adds r3, #3 + 8004418: 683a ldr r2, [r7, #0] + 800441a: 4413 add r3, r2 + 800441c: b2ca uxtb r2, r1 + 800441e: 701a strb r2, [r3, #0] offset += sizeof(this->ints[i]); - 8004114: 6a7b ldr r3, [r7, #36] ; 0x24 - 8004116: 3304 adds r3, #4 - 8004118: 627b str r3, [r7, #36] ; 0x24 + 8004420: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004422: 3304 adds r3, #4 + 8004424: 627b str r3, [r7, #36] ; 0x24 for( uint32_t i = 0; i < ints_length; i++){ - 800411a: 6a3b ldr r3, [r7, #32] - 800411c: 3301 adds r3, #1 - 800411e: 623b str r3, [r7, #32] - 8004120: e7ce b.n 80040c0 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x5c> + 8004426: 6a3b ldr r3, [r7, #32] + 8004428: 3301 adds r3, #1 + 800442a: 623b str r3, [r7, #32] + 800442c: e7ce b.n 80043cc <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x5c> } *(outbuffer + offset + 0) = (this->floats_length >> (8 * 0)) & 0xFF; - 8004122: 687b ldr r3, [r7, #4] - 8004124: 6919 ldr r1, [r3, #16] - 8004126: 6a7b ldr r3, [r7, #36] ; 0x24 - 8004128: 683a ldr r2, [r7, #0] - 800412a: 4413 add r3, r2 - 800412c: b2ca uxtb r2, r1 - 800412e: 701a strb r2, [r3, #0] + 800442e: 687b ldr r3, [r7, #4] + 8004430: 6919 ldr r1, [r3, #16] + 8004432: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004434: 683a ldr r2, [r7, #0] + 8004436: 4413 add r3, r2 + 8004438: b2ca uxtb r2, r1 + 800443a: 701a strb r2, [r3, #0] *(outbuffer + offset + 1) = (this->floats_length >> (8 * 1)) & 0xFF; - 8004130: 687b ldr r3, [r7, #4] - 8004132: 691b ldr r3, [r3, #16] - 8004134: 0a19 lsrs r1, r3, #8 - 8004136: 6a7b ldr r3, [r7, #36] ; 0x24 - 8004138: 3301 adds r3, #1 - 800413a: 683a ldr r2, [r7, #0] - 800413c: 4413 add r3, r2 - 800413e: b2ca uxtb r2, r1 - 8004140: 701a strb r2, [r3, #0] + 800443c: 687b ldr r3, [r7, #4] + 800443e: 691b ldr r3, [r3, #16] + 8004440: 0a19 lsrs r1, r3, #8 + 8004442: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004444: 3301 adds r3, #1 + 8004446: 683a ldr r2, [r7, #0] + 8004448: 4413 add r3, r2 + 800444a: b2ca uxtb r2, r1 + 800444c: 701a strb r2, [r3, #0] *(outbuffer + offset + 2) = (this->floats_length >> (8 * 2)) & 0xFF; - 8004142: 687b ldr r3, [r7, #4] - 8004144: 691b ldr r3, [r3, #16] - 8004146: 0c19 lsrs r1, r3, #16 - 8004148: 6a7b ldr r3, [r7, #36] ; 0x24 - 800414a: 3302 adds r3, #2 - 800414c: 683a ldr r2, [r7, #0] - 800414e: 4413 add r3, r2 - 8004150: b2ca uxtb r2, r1 - 8004152: 701a strb r2, [r3, #0] + 800444e: 687b ldr r3, [r7, #4] + 8004450: 691b ldr r3, [r3, #16] + 8004452: 0c19 lsrs r1, r3, #16 + 8004454: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004456: 3302 adds r3, #2 + 8004458: 683a ldr r2, [r7, #0] + 800445a: 4413 add r3, r2 + 800445c: b2ca uxtb r2, r1 + 800445e: 701a strb r2, [r3, #0] *(outbuffer + offset + 3) = (this->floats_length >> (8 * 3)) & 0xFF; - 8004154: 687b ldr r3, [r7, #4] - 8004156: 691b ldr r3, [r3, #16] - 8004158: 0e19 lsrs r1, r3, #24 - 800415a: 6a7b ldr r3, [r7, #36] ; 0x24 - 800415c: 3303 adds r3, #3 - 800415e: 683a ldr r2, [r7, #0] - 8004160: 4413 add r3, r2 - 8004162: b2ca uxtb r2, r1 - 8004164: 701a strb r2, [r3, #0] + 8004460: 687b ldr r3, [r7, #4] + 8004462: 691b ldr r3, [r3, #16] + 8004464: 0e19 lsrs r1, r3, #24 + 8004466: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004468: 3303 adds r3, #3 + 800446a: 683a ldr r2, [r7, #0] + 800446c: 4413 add r3, r2 + 800446e: b2ca uxtb r2, r1 + 8004470: 701a strb r2, [r3, #0] offset += sizeof(this->floats_length); - 8004166: 6a7b ldr r3, [r7, #36] ; 0x24 - 8004168: 3304 adds r3, #4 - 800416a: 627b str r3, [r7, #36] ; 0x24 + 8004472: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004474: 3304 adds r3, #4 + 8004476: 627b str r3, [r7, #36] ; 0x24 for( uint32_t i = 0; i < floats_length; i++){ - 800416c: 2300 movs r3, #0 - 800416e: 61fb str r3, [r7, #28] - 8004170: 687b ldr r3, [r7, #4] - 8004172: 691b ldr r3, [r3, #16] - 8004174: 69fa ldr r2, [r7, #28] - 8004176: 429a cmp r2, r3 - 8004178: d22b bcs.n 80041d2 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x16e> + 8004478: 2300 movs r3, #0 + 800447a: 61fb str r3, [r7, #28] + 800447c: 687b ldr r3, [r7, #4] + 800447e: 691b ldr r3, [r3, #16] + 8004480: 69fa ldr r2, [r7, #28] + 8004482: 429a cmp r2, r3 + 8004484: d22b bcs.n 80044de <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x16e> union { float real; uint32_t base; } u_floatsi; u_floatsi.real = this->floats[i]; - 800417a: 687b ldr r3, [r7, #4] - 800417c: 699a ldr r2, [r3, #24] - 800417e: 69fb ldr r3, [r7, #28] - 8004180: 009b lsls r3, r3, #2 - 8004182: 4413 add r3, r2 - 8004184: 681b ldr r3, [r3, #0] - 8004186: 60fb str r3, [r7, #12] + 8004486: 687b ldr r3, [r7, #4] + 8004488: 699a ldr r2, [r3, #24] + 800448a: 69fb ldr r3, [r7, #28] + 800448c: 009b lsls r3, r3, #2 + 800448e: 4413 add r3, r2 + 8004490: 681b ldr r3, [r3, #0] + 8004492: 60fb str r3, [r7, #12] *(outbuffer + offset + 0) = (u_floatsi.base >> (8 * 0)) & 0xFF; - 8004188: 68f9 ldr r1, [r7, #12] - 800418a: 6a7b ldr r3, [r7, #36] ; 0x24 - 800418c: 683a ldr r2, [r7, #0] - 800418e: 4413 add r3, r2 - 8004190: b2ca uxtb r2, r1 - 8004192: 701a strb r2, [r3, #0] + 8004494: 68f9 ldr r1, [r7, #12] + 8004496: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004498: 683a ldr r2, [r7, #0] + 800449a: 4413 add r3, r2 + 800449c: b2ca uxtb r2, r1 + 800449e: 701a strb r2, [r3, #0] *(outbuffer + offset + 1) = (u_floatsi.base >> (8 * 1)) & 0xFF; - 8004194: 68fb ldr r3, [r7, #12] - 8004196: 0a19 lsrs r1, r3, #8 - 8004198: 6a7b ldr r3, [r7, #36] ; 0x24 - 800419a: 3301 adds r3, #1 - 800419c: 683a ldr r2, [r7, #0] - 800419e: 4413 add r3, r2 - 80041a0: b2ca uxtb r2, r1 - 80041a2: 701a strb r2, [r3, #0] + 80044a0: 68fb ldr r3, [r7, #12] + 80044a2: 0a19 lsrs r1, r3, #8 + 80044a4: 6a7b ldr r3, [r7, #36] ; 0x24 + 80044a6: 3301 adds r3, #1 + 80044a8: 683a ldr r2, [r7, #0] + 80044aa: 4413 add r3, r2 + 80044ac: b2ca uxtb r2, r1 + 80044ae: 701a strb r2, [r3, #0] *(outbuffer + offset + 2) = (u_floatsi.base >> (8 * 2)) & 0xFF; - 80041a4: 68fb ldr r3, [r7, #12] - 80041a6: 0c19 lsrs r1, r3, #16 - 80041a8: 6a7b ldr r3, [r7, #36] ; 0x24 - 80041aa: 3302 adds r3, #2 - 80041ac: 683a ldr r2, [r7, #0] - 80041ae: 4413 add r3, r2 - 80041b0: b2ca uxtb r2, r1 - 80041b2: 701a strb r2, [r3, #0] + 80044b0: 68fb ldr r3, [r7, #12] + 80044b2: 0c19 lsrs r1, r3, #16 + 80044b4: 6a7b ldr r3, [r7, #36] ; 0x24 + 80044b6: 3302 adds r3, #2 + 80044b8: 683a ldr r2, [r7, #0] + 80044ba: 4413 add r3, r2 + 80044bc: b2ca uxtb r2, r1 + 80044be: 701a strb r2, [r3, #0] *(outbuffer + offset + 3) = (u_floatsi.base >> (8 * 3)) & 0xFF; - 80041b4: 68fb ldr r3, [r7, #12] - 80041b6: 0e19 lsrs r1, r3, #24 - 80041b8: 6a7b ldr r3, [r7, #36] ; 0x24 - 80041ba: 3303 adds r3, #3 - 80041bc: 683a ldr r2, [r7, #0] - 80041be: 4413 add r3, r2 - 80041c0: b2ca uxtb r2, r1 - 80041c2: 701a strb r2, [r3, #0] + 80044c0: 68fb ldr r3, [r7, #12] + 80044c2: 0e19 lsrs r1, r3, #24 + 80044c4: 6a7b ldr r3, [r7, #36] ; 0x24 + 80044c6: 3303 adds r3, #3 + 80044c8: 683a ldr r2, [r7, #0] + 80044ca: 4413 add r3, r2 + 80044cc: b2ca uxtb r2, r1 + 80044ce: 701a strb r2, [r3, #0] offset += sizeof(this->floats[i]); - 80041c4: 6a7b ldr r3, [r7, #36] ; 0x24 - 80041c6: 3304 adds r3, #4 - 80041c8: 627b str r3, [r7, #36] ; 0x24 + 80044d0: 6a7b ldr r3, [r7, #36] ; 0x24 + 80044d2: 3304 adds r3, #4 + 80044d4: 627b str r3, [r7, #36] ; 0x24 for( uint32_t i = 0; i < floats_length; i++){ - 80041ca: 69fb ldr r3, [r7, #28] - 80041cc: 3301 adds r3, #1 - 80041ce: 61fb str r3, [r7, #28] - 80041d0: e7ce b.n 8004170 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x10c> + 80044d6: 69fb ldr r3, [r7, #28] + 80044d8: 3301 adds r3, #1 + 80044da: 61fb str r3, [r7, #28] + 80044dc: e7ce b.n 800447c <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x10c> } *(outbuffer + offset + 0) = (this->strings_length >> (8 * 0)) & 0xFF; - 80041d2: 687b ldr r3, [r7, #4] - 80041d4: 69d9 ldr r1, [r3, #28] - 80041d6: 6a7b ldr r3, [r7, #36] ; 0x24 - 80041d8: 683a ldr r2, [r7, #0] - 80041da: 4413 add r3, r2 - 80041dc: b2ca uxtb r2, r1 - 80041de: 701a strb r2, [r3, #0] + 80044de: 687b ldr r3, [r7, #4] + 80044e0: 69d9 ldr r1, [r3, #28] + 80044e2: 6a7b ldr r3, [r7, #36] ; 0x24 + 80044e4: 683a ldr r2, [r7, #0] + 80044e6: 4413 add r3, r2 + 80044e8: b2ca uxtb r2, r1 + 80044ea: 701a strb r2, [r3, #0] *(outbuffer + offset + 1) = (this->strings_length >> (8 * 1)) & 0xFF; - 80041e0: 687b ldr r3, [r7, #4] - 80041e2: 69db ldr r3, [r3, #28] - 80041e4: 0a19 lsrs r1, r3, #8 - 80041e6: 6a7b ldr r3, [r7, #36] ; 0x24 - 80041e8: 3301 adds r3, #1 - 80041ea: 683a ldr r2, [r7, #0] - 80041ec: 4413 add r3, r2 - 80041ee: b2ca uxtb r2, r1 - 80041f0: 701a strb r2, [r3, #0] + 80044ec: 687b ldr r3, [r7, #4] + 80044ee: 69db ldr r3, [r3, #28] + 80044f0: 0a19 lsrs r1, r3, #8 + 80044f2: 6a7b ldr r3, [r7, #36] ; 0x24 + 80044f4: 3301 adds r3, #1 + 80044f6: 683a ldr r2, [r7, #0] + 80044f8: 4413 add r3, r2 + 80044fa: b2ca uxtb r2, r1 + 80044fc: 701a strb r2, [r3, #0] *(outbuffer + offset + 2) = (this->strings_length >> (8 * 2)) & 0xFF; - 80041f2: 687b ldr r3, [r7, #4] - 80041f4: 69db ldr r3, [r3, #28] - 80041f6: 0c19 lsrs r1, r3, #16 - 80041f8: 6a7b ldr r3, [r7, #36] ; 0x24 - 80041fa: 3302 adds r3, #2 - 80041fc: 683a ldr r2, [r7, #0] - 80041fe: 4413 add r3, r2 - 8004200: b2ca uxtb r2, r1 - 8004202: 701a strb r2, [r3, #0] + 80044fe: 687b ldr r3, [r7, #4] + 8004500: 69db ldr r3, [r3, #28] + 8004502: 0c19 lsrs r1, r3, #16 + 8004504: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004506: 3302 adds r3, #2 + 8004508: 683a ldr r2, [r7, #0] + 800450a: 4413 add r3, r2 + 800450c: b2ca uxtb r2, r1 + 800450e: 701a strb r2, [r3, #0] *(outbuffer + offset + 3) = (this->strings_length >> (8 * 3)) & 0xFF; - 8004204: 687b ldr r3, [r7, #4] - 8004206: 69db ldr r3, [r3, #28] - 8004208: 0e19 lsrs r1, r3, #24 - 800420a: 6a7b ldr r3, [r7, #36] ; 0x24 - 800420c: 3303 adds r3, #3 - 800420e: 683a ldr r2, [r7, #0] - 8004210: 4413 add r3, r2 - 8004212: b2ca uxtb r2, r1 - 8004214: 701a strb r2, [r3, #0] + 8004510: 687b ldr r3, [r7, #4] + 8004512: 69db ldr r3, [r3, #28] + 8004514: 0e19 lsrs r1, r3, #24 + 8004516: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004518: 3303 adds r3, #3 + 800451a: 683a ldr r2, [r7, #0] + 800451c: 4413 add r3, r2 + 800451e: b2ca uxtb r2, r1 + 8004520: 701a strb r2, [r3, #0] offset += sizeof(this->strings_length); - 8004216: 6a7b ldr r3, [r7, #36] ; 0x24 - 8004218: 3304 adds r3, #4 - 800421a: 627b str r3, [r7, #36] ; 0x24 + 8004522: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004524: 3304 adds r3, #4 + 8004526: 627b str r3, [r7, #36] ; 0x24 for( uint32_t i = 0; i < strings_length; i++){ - 800421c: 2300 movs r3, #0 - 800421e: 61bb str r3, [r7, #24] - 8004220: 687b ldr r3, [r7, #4] - 8004222: 69db ldr r3, [r3, #28] - 8004224: 69ba ldr r2, [r7, #24] - 8004226: 429a cmp r2, r3 - 8004228: d228 bcs.n 800427c <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x218> + 8004528: 2300 movs r3, #0 + 800452a: 61bb str r3, [r7, #24] + 800452c: 687b ldr r3, [r7, #4] + 800452e: 69db ldr r3, [r3, #28] + 8004530: 69ba ldr r2, [r7, #24] + 8004532: 429a cmp r2, r3 + 8004534: d228 bcs.n 8004588 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x218> uint32_t length_stringsi = strlen(this->strings[i]); - 800422a: 687b ldr r3, [r7, #4] - 800422c: 6a5a ldr r2, [r3, #36] ; 0x24 - 800422e: 69bb ldr r3, [r7, #24] - 8004230: 009b lsls r3, r3, #2 - 8004232: 4413 add r3, r2 - 8004234: 681b ldr r3, [r3, #0] - 8004236: 4618 mov r0, r3 - 8004238: f7fb fffe bl 8000238 - 800423c: 6178 str r0, [r7, #20] + 8004536: 687b ldr r3, [r7, #4] + 8004538: 6a5a ldr r2, [r3, #36] ; 0x24 + 800453a: 69bb ldr r3, [r7, #24] + 800453c: 009b lsls r3, r3, #2 + 800453e: 4413 add r3, r2 + 8004540: 681b ldr r3, [r3, #0] + 8004542: 4618 mov r0, r3 + 8004544: f7fb fe78 bl 8000238 + 8004548: 6178 str r0, [r7, #20] varToArr(outbuffer + offset, length_stringsi); - 800423e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8004240: 683a ldr r2, [r7, #0] - 8004242: 4413 add r3, r2 - 8004244: 6979 ldr r1, [r7, #20] - 8004246: 4618 mov r0, r3 - 8004248: f000 fca5 bl 8004b96 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> + 800454a: 6a7b ldr r3, [r7, #36] ; 0x24 + 800454c: 683a ldr r2, [r7, #0] + 800454e: 4413 add r3, r2 + 8004550: 6979 ldr r1, [r7, #20] + 8004552: 4618 mov r0, r3 + 8004554: f000 fb40 bl 8004bd8 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> offset += 4; - 800424c: 6a7b ldr r3, [r7, #36] ; 0x24 - 800424e: 3304 adds r3, #4 - 8004250: 627b str r3, [r7, #36] ; 0x24 + 8004558: 6a7b ldr r3, [r7, #36] ; 0x24 + 800455a: 3304 adds r3, #4 + 800455c: 627b str r3, [r7, #36] ; 0x24 memcpy(outbuffer + offset, this->strings[i], length_stringsi); - 8004252: 6a7b ldr r3, [r7, #36] ; 0x24 - 8004254: 683a ldr r2, [r7, #0] - 8004256: 18d0 adds r0, r2, r3 - 8004258: 687b ldr r3, [r7, #4] - 800425a: 6a5a ldr r2, [r3, #36] ; 0x24 - 800425c: 69bb ldr r3, [r7, #24] - 800425e: 009b lsls r3, r3, #2 - 8004260: 4413 add r3, r2 - 8004262: 681b ldr r3, [r3, #0] - 8004264: 697a ldr r2, [r7, #20] - 8004266: 4619 mov r1, r3 - 8004268: f001 fcd6 bl 8005c18 + 800455e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004560: 683a ldr r2, [r7, #0] + 8004562: 18d0 adds r0, r2, r3 + 8004564: 687b ldr r3, [r7, #4] + 8004566: 6a5a ldr r2, [r3, #36] ; 0x24 + 8004568: 69bb ldr r3, [r7, #24] + 800456a: 009b lsls r3, r3, #2 + 800456c: 4413 add r3, r2 + 800456e: 681b ldr r3, [r3, #0] + 8004570: 697a ldr r2, [r7, #20] + 8004572: 4619 mov r1, r3 + 8004574: f001 fb82 bl 8005c7c offset += length_stringsi; - 800426c: 6a7a ldr r2, [r7, #36] ; 0x24 - 800426e: 697b ldr r3, [r7, #20] - 8004270: 4413 add r3, r2 - 8004272: 627b str r3, [r7, #36] ; 0x24 + 8004578: 6a7a ldr r2, [r7, #36] ; 0x24 + 800457a: 697b ldr r3, [r7, #20] + 800457c: 4413 add r3, r2 + 800457e: 627b str r3, [r7, #36] ; 0x24 for( uint32_t i = 0; i < strings_length; i++){ - 8004274: 69bb ldr r3, [r7, #24] - 8004276: 3301 adds r3, #1 - 8004278: 61bb str r3, [r7, #24] - 800427a: e7d1 b.n 8004220 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x1bc> + 8004580: 69bb ldr r3, [r7, #24] + 8004582: 3301 adds r3, #1 + 8004584: 61bb str r3, [r7, #24] + 8004586: e7d1 b.n 800452c <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x1bc> } return offset; - 800427c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004588: 6a7b ldr r3, [r7, #36] ; 0x24 } - 800427e: 4618 mov r0, r3 - 8004280: 3728 adds r7, #40 ; 0x28 - 8004282: 46bd mov sp, r7 - 8004284: bd80 pop {r7, pc} + 800458a: 4618 mov r0, r3 + 800458c: 3728 adds r7, #40 ; 0x28 + 800458e: 46bd mov sp, r7 + 8004590: bd80 pop {r7, pc} -08004286 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh>: +08004592 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh>: virtual int deserialize(unsigned char *inbuffer) - 8004286: b580 push {r7, lr} - 8004288: b08e sub sp, #56 ; 0x38 - 800428a: af00 add r7, sp, #0 - 800428c: 6078 str r0, [r7, #4] - 800428e: 6039 str r1, [r7, #0] + 8004592: b580 push {r7, lr} + 8004594: b08e sub sp, #56 ; 0x38 + 8004596: af00 add r7, sp, #0 + 8004598: 6078 str r0, [r7, #4] + 800459a: 6039 str r1, [r7, #0] { int offset = 0; - 8004290: 2300 movs r3, #0 - 8004292: 637b str r3, [r7, #52] ; 0x34 + 800459c: 2300 movs r3, #0 + 800459e: 637b str r3, [r7, #52] ; 0x34 uint32_t ints_lengthT = ((uint32_t) (*(inbuffer + offset))); - 8004294: 6b7b ldr r3, [r7, #52] ; 0x34 - 8004296: 683a ldr r2, [r7, #0] - 8004298: 4413 add r3, r2 - 800429a: 781b ldrb r3, [r3, #0] - 800429c: 623b str r3, [r7, #32] + 80045a0: 6b7b ldr r3, [r7, #52] ; 0x34 + 80045a2: 683a ldr r2, [r7, #0] + 80045a4: 4413 add r3, r2 + 80045a6: 781b ldrb r3, [r3, #0] + 80045a8: 623b str r3, [r7, #32] ints_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 800429e: 6b7b ldr r3, [r7, #52] ; 0x34 - 80042a0: 3301 adds r3, #1 - 80042a2: 683a ldr r2, [r7, #0] - 80042a4: 4413 add r3, r2 - 80042a6: 781b ldrb r3, [r3, #0] - 80042a8: 021b lsls r3, r3, #8 - 80042aa: 6a3a ldr r2, [r7, #32] - 80042ac: 4313 orrs r3, r2 - 80042ae: 623b str r3, [r7, #32] + 80045aa: 6b7b ldr r3, [r7, #52] ; 0x34 + 80045ac: 3301 adds r3, #1 + 80045ae: 683a ldr r2, [r7, #0] + 80045b0: 4413 add r3, r2 + 80045b2: 781b ldrb r3, [r3, #0] + 80045b4: 021b lsls r3, r3, #8 + 80045b6: 6a3a ldr r2, [r7, #32] + 80045b8: 4313 orrs r3, r2 + 80045ba: 623b str r3, [r7, #32] ints_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 80042b0: 6b7b ldr r3, [r7, #52] ; 0x34 - 80042b2: 3302 adds r3, #2 - 80042b4: 683a ldr r2, [r7, #0] - 80042b6: 4413 add r3, r2 - 80042b8: 781b ldrb r3, [r3, #0] - 80042ba: 041b lsls r3, r3, #16 - 80042bc: 6a3a ldr r2, [r7, #32] - 80042be: 4313 orrs r3, r2 - 80042c0: 623b str r3, [r7, #32] + 80045bc: 6b7b ldr r3, [r7, #52] ; 0x34 + 80045be: 3302 adds r3, #2 + 80045c0: 683a ldr r2, [r7, #0] + 80045c2: 4413 add r3, r2 + 80045c4: 781b ldrb r3, [r3, #0] + 80045c6: 041b lsls r3, r3, #16 + 80045c8: 6a3a ldr r2, [r7, #32] + 80045ca: 4313 orrs r3, r2 + 80045cc: 623b str r3, [r7, #32] ints_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 80042c2: 6b7b ldr r3, [r7, #52] ; 0x34 - 80042c4: 3303 adds r3, #3 - 80042c6: 683a ldr r2, [r7, #0] - 80042c8: 4413 add r3, r2 - 80042ca: 781b ldrb r3, [r3, #0] - 80042cc: 061b lsls r3, r3, #24 - 80042ce: 6a3a ldr r2, [r7, #32] - 80042d0: 4313 orrs r3, r2 - 80042d2: 623b str r3, [r7, #32] + 80045ce: 6b7b ldr r3, [r7, #52] ; 0x34 + 80045d0: 3303 adds r3, #3 + 80045d2: 683a ldr r2, [r7, #0] + 80045d4: 4413 add r3, r2 + 80045d6: 781b ldrb r3, [r3, #0] + 80045d8: 061b lsls r3, r3, #24 + 80045da: 6a3a ldr r2, [r7, #32] + 80045dc: 4313 orrs r3, r2 + 80045de: 623b str r3, [r7, #32] offset += sizeof(this->ints_length); - 80042d4: 6b7b ldr r3, [r7, #52] ; 0x34 - 80042d6: 3304 adds r3, #4 - 80042d8: 637b str r3, [r7, #52] ; 0x34 + 80045e0: 6b7b ldr r3, [r7, #52] ; 0x34 + 80045e2: 3304 adds r3, #4 + 80045e4: 637b str r3, [r7, #52] ; 0x34 if(ints_lengthT > ints_length) - 80042da: 687b ldr r3, [r7, #4] - 80042dc: 685b ldr r3, [r3, #4] - 80042de: 6a3a ldr r2, [r7, #32] - 80042e0: 429a cmp r2, r3 - 80042e2: d90a bls.n 80042fa <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x74> + 80045e6: 687b ldr r3, [r7, #4] + 80045e8: 685b ldr r3, [r3, #4] + 80045ea: 6a3a ldr r2, [r7, #32] + 80045ec: 429a cmp r2, r3 + 80045ee: d90a bls.n 8004606 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x74> this->ints = (int32_t*)realloc(this->ints, ints_lengthT * sizeof(int32_t)); - 80042e4: 687b ldr r3, [r7, #4] - 80042e6: 68da ldr r2, [r3, #12] - 80042e8: 6a3b ldr r3, [r7, #32] - 80042ea: 009b lsls r3, r3, #2 - 80042ec: 4619 mov r1, r3 - 80042ee: 4610 mov r0, r2 - 80042f0: f001 fca6 bl 8005c40 - 80042f4: 4602 mov r2, r0 - 80042f6: 687b ldr r3, [r7, #4] - 80042f8: 60da str r2, [r3, #12] + 80045f0: 687b ldr r3, [r7, #4] + 80045f2: 68da ldr r2, [r3, #12] + 80045f4: 6a3b ldr r3, [r7, #32] + 80045f6: 009b lsls r3, r3, #2 + 80045f8: 4619 mov r1, r3 + 80045fa: 4610 mov r0, r2 + 80045fc: f001 fb52 bl 8005ca4 + 8004600: 4602 mov r2, r0 + 8004602: 687b ldr r3, [r7, #4] + 8004604: 60da str r2, [r3, #12] ints_length = ints_lengthT; - 80042fa: 687b ldr r3, [r7, #4] - 80042fc: 6a3a ldr r2, [r7, #32] - 80042fe: 605a str r2, [r3, #4] + 8004606: 687b ldr r3, [r7, #4] + 8004608: 6a3a ldr r2, [r7, #32] + 800460a: 605a str r2, [r3, #4] for( uint32_t i = 0; i < ints_length; i++){ - 8004300: 2300 movs r3, #0 - 8004302: 633b str r3, [r7, #48] ; 0x30 - 8004304: 687b ldr r3, [r7, #4] - 8004306: 685b ldr r3, [r3, #4] - 8004308: 6b3a ldr r2, [r7, #48] ; 0x30 - 800430a: 429a cmp r2, r3 - 800430c: d236 bcs.n 800437c <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0xf6> + 800460c: 2300 movs r3, #0 + 800460e: 633b str r3, [r7, #48] ; 0x30 + 8004610: 687b ldr r3, [r7, #4] + 8004612: 685b ldr r3, [r3, #4] + 8004614: 6b3a ldr r2, [r7, #48] ; 0x30 + 8004616: 429a cmp r2, r3 + 8004618: d236 bcs.n 8004688 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0xf6> union { int32_t real; uint32_t base; } u_st_ints; u_st_ints.base = 0; - 800430e: 2300 movs r3, #0 - 8004310: 617b str r3, [r7, #20] + 800461a: 2300 movs r3, #0 + 800461c: 617b str r3, [r7, #20] u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); - 8004312: 697b ldr r3, [r7, #20] - 8004314: 6b7a ldr r2, [r7, #52] ; 0x34 - 8004316: 6839 ldr r1, [r7, #0] - 8004318: 440a add r2, r1 - 800431a: 7812 ldrb r2, [r2, #0] - 800431c: 4313 orrs r3, r2 - 800431e: 617b str r3, [r7, #20] + 800461e: 697b ldr r3, [r7, #20] + 8004620: 6b7a ldr r2, [r7, #52] ; 0x34 + 8004622: 6839 ldr r1, [r7, #0] + 8004624: 440a add r2, r1 + 8004626: 7812 ldrb r2, [r2, #0] + 8004628: 4313 orrs r3, r2 + 800462a: 617b str r3, [r7, #20] u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 8004320: 697a ldr r2, [r7, #20] - 8004322: 6b7b ldr r3, [r7, #52] ; 0x34 - 8004324: 3301 adds r3, #1 - 8004326: 6839 ldr r1, [r7, #0] - 8004328: 440b add r3, r1 - 800432a: 781b ldrb r3, [r3, #0] - 800432c: 021b lsls r3, r3, #8 - 800432e: 4313 orrs r3, r2 - 8004330: 617b str r3, [r7, #20] + 800462c: 697a ldr r2, [r7, #20] + 800462e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004630: 3301 adds r3, #1 + 8004632: 6839 ldr r1, [r7, #0] + 8004634: 440b add r3, r1 + 8004636: 781b ldrb r3, [r3, #0] + 8004638: 021b lsls r3, r3, #8 + 800463a: 4313 orrs r3, r2 + 800463c: 617b str r3, [r7, #20] u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 8004332: 697a ldr r2, [r7, #20] - 8004334: 6b7b ldr r3, [r7, #52] ; 0x34 - 8004336: 3302 adds r3, #2 - 8004338: 6839 ldr r1, [r7, #0] - 800433a: 440b add r3, r1 - 800433c: 781b ldrb r3, [r3, #0] - 800433e: 041b lsls r3, r3, #16 - 8004340: 4313 orrs r3, r2 - 8004342: 617b str r3, [r7, #20] + 800463e: 697a ldr r2, [r7, #20] + 8004640: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004642: 3302 adds r3, #2 + 8004644: 6839 ldr r1, [r7, #0] + 8004646: 440b add r3, r1 + 8004648: 781b ldrb r3, [r3, #0] + 800464a: 041b lsls r3, r3, #16 + 800464c: 4313 orrs r3, r2 + 800464e: 617b str r3, [r7, #20] u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 8004344: 697a ldr r2, [r7, #20] - 8004346: 6b7b ldr r3, [r7, #52] ; 0x34 - 8004348: 3303 adds r3, #3 - 800434a: 6839 ldr r1, [r7, #0] - 800434c: 440b add r3, r1 - 800434e: 781b ldrb r3, [r3, #0] - 8004350: 061b lsls r3, r3, #24 - 8004352: 4313 orrs r3, r2 - 8004354: 617b str r3, [r7, #20] + 8004650: 697a ldr r2, [r7, #20] + 8004652: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004654: 3303 adds r3, #3 + 8004656: 6839 ldr r1, [r7, #0] + 8004658: 440b add r3, r1 + 800465a: 781b ldrb r3, [r3, #0] + 800465c: 061b lsls r3, r3, #24 + 800465e: 4313 orrs r3, r2 + 8004660: 617b str r3, [r7, #20] this->st_ints = u_st_ints.real; - 8004356: 697a ldr r2, [r7, #20] - 8004358: 687b ldr r3, [r7, #4] - 800435a: 609a str r2, [r3, #8] + 8004662: 697a ldr r2, [r7, #20] + 8004664: 687b ldr r3, [r7, #4] + 8004666: 609a str r2, [r3, #8] offset += sizeof(this->st_ints); - 800435c: 6b7b ldr r3, [r7, #52] ; 0x34 - 800435e: 3304 adds r3, #4 - 8004360: 637b str r3, [r7, #52] ; 0x34 + 8004668: 6b7b ldr r3, [r7, #52] ; 0x34 + 800466a: 3304 adds r3, #4 + 800466c: 637b str r3, [r7, #52] ; 0x34 memcpy( &(this->ints[i]), &(this->st_ints), sizeof(int32_t)); - 8004362: 687b ldr r3, [r7, #4] - 8004364: 68da ldr r2, [r3, #12] - 8004366: 6b3b ldr r3, [r7, #48] ; 0x30 - 8004368: 009b lsls r3, r3, #2 - 800436a: 4413 add r3, r2 - 800436c: 687a ldr r2, [r7, #4] - 800436e: 3208 adds r2, #8 - 8004370: 6812 ldr r2, [r2, #0] - 8004372: 601a str r2, [r3, #0] + 800466e: 687b ldr r3, [r7, #4] + 8004670: 68da ldr r2, [r3, #12] + 8004672: 6b3b ldr r3, [r7, #48] ; 0x30 + 8004674: 009b lsls r3, r3, #2 + 8004676: 4413 add r3, r2 + 8004678: 687a ldr r2, [r7, #4] + 800467a: 3208 adds r2, #8 + 800467c: 6812 ldr r2, [r2, #0] + 800467e: 601a str r2, [r3, #0] for( uint32_t i = 0; i < ints_length; i++){ - 8004374: 6b3b ldr r3, [r7, #48] ; 0x30 - 8004376: 3301 adds r3, #1 - 8004378: 633b str r3, [r7, #48] ; 0x30 - 800437a: e7c3 b.n 8004304 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x7e> + 8004680: 6b3b ldr r3, [r7, #48] ; 0x30 + 8004682: 3301 adds r3, #1 + 8004684: 633b str r3, [r7, #48] ; 0x30 + 8004686: e7c3 b.n 8004610 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x7e> } uint32_t floats_lengthT = ((uint32_t) (*(inbuffer + offset))); - 800437c: 6b7b ldr r3, [r7, #52] ; 0x34 - 800437e: 683a ldr r2, [r7, #0] - 8004380: 4413 add r3, r2 - 8004382: 781b ldrb r3, [r3, #0] - 8004384: 61fb str r3, [r7, #28] + 8004688: 6b7b ldr r3, [r7, #52] ; 0x34 + 800468a: 683a ldr r2, [r7, #0] + 800468c: 4413 add r3, r2 + 800468e: 781b ldrb r3, [r3, #0] + 8004690: 61fb str r3, [r7, #28] floats_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 8004386: 6b7b ldr r3, [r7, #52] ; 0x34 - 8004388: 3301 adds r3, #1 - 800438a: 683a ldr r2, [r7, #0] - 800438c: 4413 add r3, r2 - 800438e: 781b ldrb r3, [r3, #0] - 8004390: 021b lsls r3, r3, #8 - 8004392: 69fa ldr r2, [r7, #28] - 8004394: 4313 orrs r3, r2 - 8004396: 61fb str r3, [r7, #28] + 8004692: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004694: 3301 adds r3, #1 + 8004696: 683a ldr r2, [r7, #0] + 8004698: 4413 add r3, r2 + 800469a: 781b ldrb r3, [r3, #0] + 800469c: 021b lsls r3, r3, #8 + 800469e: 69fa ldr r2, [r7, #28] + 80046a0: 4313 orrs r3, r2 + 80046a2: 61fb str r3, [r7, #28] floats_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 8004398: 6b7b ldr r3, [r7, #52] ; 0x34 - 800439a: 3302 adds r3, #2 - 800439c: 683a ldr r2, [r7, #0] - 800439e: 4413 add r3, r2 - 80043a0: 781b ldrb r3, [r3, #0] - 80043a2: 041b lsls r3, r3, #16 - 80043a4: 69fa ldr r2, [r7, #28] - 80043a6: 4313 orrs r3, r2 - 80043a8: 61fb str r3, [r7, #28] + 80046a4: 6b7b ldr r3, [r7, #52] ; 0x34 + 80046a6: 3302 adds r3, #2 + 80046a8: 683a ldr r2, [r7, #0] + 80046aa: 4413 add r3, r2 + 80046ac: 781b ldrb r3, [r3, #0] + 80046ae: 041b lsls r3, r3, #16 + 80046b0: 69fa ldr r2, [r7, #28] + 80046b2: 4313 orrs r3, r2 + 80046b4: 61fb str r3, [r7, #28] floats_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 80043aa: 6b7b ldr r3, [r7, #52] ; 0x34 - 80043ac: 3303 adds r3, #3 - 80043ae: 683a ldr r2, [r7, #0] - 80043b0: 4413 add r3, r2 - 80043b2: 781b ldrb r3, [r3, #0] - 80043b4: 061b lsls r3, r3, #24 - 80043b6: 69fa ldr r2, [r7, #28] - 80043b8: 4313 orrs r3, r2 - 80043ba: 61fb str r3, [r7, #28] + 80046b6: 6b7b ldr r3, [r7, #52] ; 0x34 + 80046b8: 3303 adds r3, #3 + 80046ba: 683a ldr r2, [r7, #0] + 80046bc: 4413 add r3, r2 + 80046be: 781b ldrb r3, [r3, #0] + 80046c0: 061b lsls r3, r3, #24 + 80046c2: 69fa ldr r2, [r7, #28] + 80046c4: 4313 orrs r3, r2 + 80046c6: 61fb str r3, [r7, #28] offset += sizeof(this->floats_length); - 80043bc: 6b7b ldr r3, [r7, #52] ; 0x34 - 80043be: 3304 adds r3, #4 - 80043c0: 637b str r3, [r7, #52] ; 0x34 + 80046c8: 6b7b ldr r3, [r7, #52] ; 0x34 + 80046ca: 3304 adds r3, #4 + 80046cc: 637b str r3, [r7, #52] ; 0x34 if(floats_lengthT > floats_length) - 80043c2: 687b ldr r3, [r7, #4] - 80043c4: 691b ldr r3, [r3, #16] - 80043c6: 69fa ldr r2, [r7, #28] - 80043c8: 429a cmp r2, r3 - 80043ca: d90a bls.n 80043e2 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x15c> + 80046ce: 687b ldr r3, [r7, #4] + 80046d0: 691b ldr r3, [r3, #16] + 80046d2: 69fa ldr r2, [r7, #28] + 80046d4: 429a cmp r2, r3 + 80046d6: d90a bls.n 80046ee <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x15c> this->floats = (float*)realloc(this->floats, floats_lengthT * sizeof(float)); - 80043cc: 687b ldr r3, [r7, #4] - 80043ce: 699a ldr r2, [r3, #24] - 80043d0: 69fb ldr r3, [r7, #28] - 80043d2: 009b lsls r3, r3, #2 - 80043d4: 4619 mov r1, r3 - 80043d6: 4610 mov r0, r2 - 80043d8: f001 fc32 bl 8005c40 - 80043dc: 4602 mov r2, r0 - 80043de: 687b ldr r3, [r7, #4] - 80043e0: 619a str r2, [r3, #24] + 80046d8: 687b ldr r3, [r7, #4] + 80046da: 699a ldr r2, [r3, #24] + 80046dc: 69fb ldr r3, [r7, #28] + 80046de: 009b lsls r3, r3, #2 + 80046e0: 4619 mov r1, r3 + 80046e2: 4610 mov r0, r2 + 80046e4: f001 fade bl 8005ca4 + 80046e8: 4602 mov r2, r0 + 80046ea: 687b ldr r3, [r7, #4] + 80046ec: 619a str r2, [r3, #24] floats_length = floats_lengthT; - 80043e2: 687b ldr r3, [r7, #4] - 80043e4: 69fa ldr r2, [r7, #28] - 80043e6: 611a str r2, [r3, #16] + 80046ee: 687b ldr r3, [r7, #4] + 80046f0: 69fa ldr r2, [r7, #28] + 80046f2: 611a str r2, [r3, #16] for( uint32_t i = 0; i < floats_length; i++){ - 80043e8: 2300 movs r3, #0 - 80043ea: 62fb str r3, [r7, #44] ; 0x2c - 80043ec: 687b ldr r3, [r7, #4] - 80043ee: 691b ldr r3, [r3, #16] - 80043f0: 6afa ldr r2, [r7, #44] ; 0x2c - 80043f2: 429a cmp r2, r3 - 80043f4: d236 bcs.n 8004464 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x1de> + 80046f4: 2300 movs r3, #0 + 80046f6: 62fb str r3, [r7, #44] ; 0x2c + 80046f8: 687b ldr r3, [r7, #4] + 80046fa: 691b ldr r3, [r3, #16] + 80046fc: 6afa ldr r2, [r7, #44] ; 0x2c + 80046fe: 429a cmp r2, r3 + 8004700: d236 bcs.n 8004770 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x1de> union { float real; uint32_t base; } u_st_floats; u_st_floats.base = 0; - 80043f6: 2300 movs r3, #0 - 80043f8: 613b str r3, [r7, #16] + 8004702: 2300 movs r3, #0 + 8004704: 613b str r3, [r7, #16] u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); - 80043fa: 693b ldr r3, [r7, #16] - 80043fc: 6b7a ldr r2, [r7, #52] ; 0x34 - 80043fe: 6839 ldr r1, [r7, #0] - 8004400: 440a add r2, r1 - 8004402: 7812 ldrb r2, [r2, #0] - 8004404: 4313 orrs r3, r2 - 8004406: 613b str r3, [r7, #16] + 8004706: 693b ldr r3, [r7, #16] + 8004708: 6b7a ldr r2, [r7, #52] ; 0x34 + 800470a: 6839 ldr r1, [r7, #0] + 800470c: 440a add r2, r1 + 800470e: 7812 ldrb r2, [r2, #0] + 8004710: 4313 orrs r3, r2 + 8004712: 613b str r3, [r7, #16] u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 8004408: 693a ldr r2, [r7, #16] - 800440a: 6b7b ldr r3, [r7, #52] ; 0x34 - 800440c: 3301 adds r3, #1 - 800440e: 6839 ldr r1, [r7, #0] - 8004410: 440b add r3, r1 - 8004412: 781b ldrb r3, [r3, #0] - 8004414: 021b lsls r3, r3, #8 - 8004416: 4313 orrs r3, r2 - 8004418: 613b str r3, [r7, #16] + 8004714: 693a ldr r2, [r7, #16] + 8004716: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004718: 3301 adds r3, #1 + 800471a: 6839 ldr r1, [r7, #0] + 800471c: 440b add r3, r1 + 800471e: 781b ldrb r3, [r3, #0] + 8004720: 021b lsls r3, r3, #8 + 8004722: 4313 orrs r3, r2 + 8004724: 613b str r3, [r7, #16] u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 800441a: 693a ldr r2, [r7, #16] - 800441c: 6b7b ldr r3, [r7, #52] ; 0x34 - 800441e: 3302 adds r3, #2 - 8004420: 6839 ldr r1, [r7, #0] - 8004422: 440b add r3, r1 - 8004424: 781b ldrb r3, [r3, #0] - 8004426: 041b lsls r3, r3, #16 - 8004428: 4313 orrs r3, r2 - 800442a: 613b str r3, [r7, #16] + 8004726: 693a ldr r2, [r7, #16] + 8004728: 6b7b ldr r3, [r7, #52] ; 0x34 + 800472a: 3302 adds r3, #2 + 800472c: 6839 ldr r1, [r7, #0] + 800472e: 440b add r3, r1 + 8004730: 781b ldrb r3, [r3, #0] + 8004732: 041b lsls r3, r3, #16 + 8004734: 4313 orrs r3, r2 + 8004736: 613b str r3, [r7, #16] u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 800442c: 693a ldr r2, [r7, #16] - 800442e: 6b7b ldr r3, [r7, #52] ; 0x34 - 8004430: 3303 adds r3, #3 - 8004432: 6839 ldr r1, [r7, #0] - 8004434: 440b add r3, r1 - 8004436: 781b ldrb r3, [r3, #0] - 8004438: 061b lsls r3, r3, #24 - 800443a: 4313 orrs r3, r2 - 800443c: 613b str r3, [r7, #16] + 8004738: 693a ldr r2, [r7, #16] + 800473a: 6b7b ldr r3, [r7, #52] ; 0x34 + 800473c: 3303 adds r3, #3 + 800473e: 6839 ldr r1, [r7, #0] + 8004740: 440b add r3, r1 + 8004742: 781b ldrb r3, [r3, #0] + 8004744: 061b lsls r3, r3, #24 + 8004746: 4313 orrs r3, r2 + 8004748: 613b str r3, [r7, #16] this->st_floats = u_st_floats.real; - 800443e: 693a ldr r2, [r7, #16] - 8004440: 687b ldr r3, [r7, #4] - 8004442: 615a str r2, [r3, #20] + 800474a: 693a ldr r2, [r7, #16] + 800474c: 687b ldr r3, [r7, #4] + 800474e: 615a str r2, [r3, #20] offset += sizeof(this->st_floats); - 8004444: 6b7b ldr r3, [r7, #52] ; 0x34 - 8004446: 3304 adds r3, #4 - 8004448: 637b str r3, [r7, #52] ; 0x34 + 8004750: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004752: 3304 adds r3, #4 + 8004754: 637b str r3, [r7, #52] ; 0x34 memcpy( &(this->floats[i]), &(this->st_floats), sizeof(float)); - 800444a: 687b ldr r3, [r7, #4] - 800444c: 699a ldr r2, [r3, #24] - 800444e: 6afb ldr r3, [r7, #44] ; 0x2c - 8004450: 009b lsls r3, r3, #2 - 8004452: 4413 add r3, r2 - 8004454: 687a ldr r2, [r7, #4] - 8004456: 3214 adds r2, #20 - 8004458: 6812 ldr r2, [r2, #0] - 800445a: 601a str r2, [r3, #0] + 8004756: 687b ldr r3, [r7, #4] + 8004758: 699a ldr r2, [r3, #24] + 800475a: 6afb ldr r3, [r7, #44] ; 0x2c + 800475c: 009b lsls r3, r3, #2 + 800475e: 4413 add r3, r2 + 8004760: 687a ldr r2, [r7, #4] + 8004762: 3214 adds r2, #20 + 8004764: 6812 ldr r2, [r2, #0] + 8004766: 601a str r2, [r3, #0] for( uint32_t i = 0; i < floats_length; i++){ - 800445c: 6afb ldr r3, [r7, #44] ; 0x2c - 800445e: 3301 adds r3, #1 - 8004460: 62fb str r3, [r7, #44] ; 0x2c - 8004462: e7c3 b.n 80043ec <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x166> + 8004768: 6afb ldr r3, [r7, #44] ; 0x2c + 800476a: 3301 adds r3, #1 + 800476c: 62fb str r3, [r7, #44] ; 0x2c + 800476e: e7c3 b.n 80046f8 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x166> } uint32_t strings_lengthT = ((uint32_t) (*(inbuffer + offset))); - 8004464: 6b7b ldr r3, [r7, #52] ; 0x34 - 8004466: 683a ldr r2, [r7, #0] - 8004468: 4413 add r3, r2 - 800446a: 781b ldrb r3, [r3, #0] - 800446c: 61bb str r3, [r7, #24] + 8004770: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004772: 683a ldr r2, [r7, #0] + 8004774: 4413 add r3, r2 + 8004776: 781b ldrb r3, [r3, #0] + 8004778: 61bb str r3, [r7, #24] strings_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 800446e: 6b7b ldr r3, [r7, #52] ; 0x34 - 8004470: 3301 adds r3, #1 - 8004472: 683a ldr r2, [r7, #0] - 8004474: 4413 add r3, r2 - 8004476: 781b ldrb r3, [r3, #0] - 8004478: 021b lsls r3, r3, #8 - 800447a: 69ba ldr r2, [r7, #24] - 800447c: 4313 orrs r3, r2 - 800447e: 61bb str r3, [r7, #24] + 800477a: 6b7b ldr r3, [r7, #52] ; 0x34 + 800477c: 3301 adds r3, #1 + 800477e: 683a ldr r2, [r7, #0] + 8004780: 4413 add r3, r2 + 8004782: 781b ldrb r3, [r3, #0] + 8004784: 021b lsls r3, r3, #8 + 8004786: 69ba ldr r2, [r7, #24] + 8004788: 4313 orrs r3, r2 + 800478a: 61bb str r3, [r7, #24] strings_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 8004480: 6b7b ldr r3, [r7, #52] ; 0x34 - 8004482: 3302 adds r3, #2 - 8004484: 683a ldr r2, [r7, #0] - 8004486: 4413 add r3, r2 - 8004488: 781b ldrb r3, [r3, #0] - 800448a: 041b lsls r3, r3, #16 - 800448c: 69ba ldr r2, [r7, #24] - 800448e: 4313 orrs r3, r2 - 8004490: 61bb str r3, [r7, #24] + 800478c: 6b7b ldr r3, [r7, #52] ; 0x34 + 800478e: 3302 adds r3, #2 + 8004790: 683a ldr r2, [r7, #0] + 8004792: 4413 add r3, r2 + 8004794: 781b ldrb r3, [r3, #0] + 8004796: 041b lsls r3, r3, #16 + 8004798: 69ba ldr r2, [r7, #24] + 800479a: 4313 orrs r3, r2 + 800479c: 61bb str r3, [r7, #24] strings_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 8004492: 6b7b ldr r3, [r7, #52] ; 0x34 - 8004494: 3303 adds r3, #3 - 8004496: 683a ldr r2, [r7, #0] - 8004498: 4413 add r3, r2 - 800449a: 781b ldrb r3, [r3, #0] - 800449c: 061b lsls r3, r3, #24 - 800449e: 69ba ldr r2, [r7, #24] - 80044a0: 4313 orrs r3, r2 - 80044a2: 61bb str r3, [r7, #24] + 800479e: 6b7b ldr r3, [r7, #52] ; 0x34 + 80047a0: 3303 adds r3, #3 + 80047a2: 683a ldr r2, [r7, #0] + 80047a4: 4413 add r3, r2 + 80047a6: 781b ldrb r3, [r3, #0] + 80047a8: 061b lsls r3, r3, #24 + 80047aa: 69ba ldr r2, [r7, #24] + 80047ac: 4313 orrs r3, r2 + 80047ae: 61bb str r3, [r7, #24] offset += sizeof(this->strings_length); - 80044a4: 6b7b ldr r3, [r7, #52] ; 0x34 - 80044a6: 3304 adds r3, #4 - 80044a8: 637b str r3, [r7, #52] ; 0x34 + 80047b0: 6b7b ldr r3, [r7, #52] ; 0x34 + 80047b2: 3304 adds r3, #4 + 80047b4: 637b str r3, [r7, #52] ; 0x34 if(strings_lengthT > strings_length) - 80044aa: 687b ldr r3, [r7, #4] - 80044ac: 69db ldr r3, [r3, #28] - 80044ae: 69ba ldr r2, [r7, #24] - 80044b0: 429a cmp r2, r3 - 80044b2: d90a bls.n 80044ca <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x244> + 80047b6: 687b ldr r3, [r7, #4] + 80047b8: 69db ldr r3, [r3, #28] + 80047ba: 69ba ldr r2, [r7, #24] + 80047bc: 429a cmp r2, r3 + 80047be: d90a bls.n 80047d6 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x244> this->strings = (char**)realloc(this->strings, strings_lengthT * sizeof(char*)); - 80044b4: 687b ldr r3, [r7, #4] - 80044b6: 6a5a ldr r2, [r3, #36] ; 0x24 - 80044b8: 69bb ldr r3, [r7, #24] - 80044ba: 009b lsls r3, r3, #2 - 80044bc: 4619 mov r1, r3 - 80044be: 4610 mov r0, r2 - 80044c0: f001 fbbe bl 8005c40 - 80044c4: 4602 mov r2, r0 - 80044c6: 687b ldr r3, [r7, #4] - 80044c8: 625a str r2, [r3, #36] ; 0x24 + 80047c0: 687b ldr r3, [r7, #4] + 80047c2: 6a5a ldr r2, [r3, #36] ; 0x24 + 80047c4: 69bb ldr r3, [r7, #24] + 80047c6: 009b lsls r3, r3, #2 + 80047c8: 4619 mov r1, r3 + 80047ca: 4610 mov r0, r2 + 80047cc: f001 fa6a bl 8005ca4 + 80047d0: 4602 mov r2, r0 + 80047d2: 687b ldr r3, [r7, #4] + 80047d4: 625a str r2, [r3, #36] ; 0x24 strings_length = strings_lengthT; - 80044ca: 687b ldr r3, [r7, #4] - 80044cc: 69ba ldr r2, [r7, #24] - 80044ce: 61da str r2, [r3, #28] + 80047d6: 687b ldr r3, [r7, #4] + 80047d8: 69ba ldr r2, [r7, #24] + 80047da: 61da str r2, [r3, #28] for( uint32_t i = 0; i < strings_length; i++){ - 80044d0: 2300 movs r3, #0 - 80044d2: 62bb str r3, [r7, #40] ; 0x28 - 80044d4: 687b ldr r3, [r7, #4] - 80044d6: 69db ldr r3, [r3, #28] - 80044d8: 6aba ldr r2, [r7, #40] ; 0x28 - 80044da: 429a cmp r2, r3 - 80044dc: d23f bcs.n 800455e <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x2d8> + 80047dc: 2300 movs r3, #0 + 80047de: 62bb str r3, [r7, #40] ; 0x28 + 80047e0: 687b ldr r3, [r7, #4] + 80047e2: 69db ldr r3, [r3, #28] + 80047e4: 6aba ldr r2, [r7, #40] ; 0x28 + 80047e6: 429a cmp r2, r3 + 80047e8: d23f bcs.n 800486a <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x2d8> uint32_t length_st_strings; arrToVar(length_st_strings, (inbuffer + offset)); - 80044de: 6b7b ldr r3, [r7, #52] ; 0x34 - 80044e0: 683a ldr r2, [r7, #0] - 80044e2: 441a add r2, r3 - 80044e4: f107 030c add.w r3, r7, #12 - 80044e8: 4611 mov r1, r2 - 80044ea: 4618 mov r0, r3 - 80044ec: f000 fb71 bl 8004bd2 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> + 80047ea: 6b7b ldr r3, [r7, #52] ; 0x34 + 80047ec: 683a ldr r2, [r7, #0] + 80047ee: 441a add r2, r3 + 80047f0: f107 030c add.w r3, r7, #12 + 80047f4: 4611 mov r1, r2 + 80047f6: 4618 mov r0, r3 + 80047f8: f000 fa0c bl 8004c14 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> offset += 4; - 80044f0: 6b7b ldr r3, [r7, #52] ; 0x34 - 80044f2: 3304 adds r3, #4 - 80044f4: 637b str r3, [r7, #52] ; 0x34 + 80047fc: 6b7b ldr r3, [r7, #52] ; 0x34 + 80047fe: 3304 adds r3, #4 + 8004800: 637b str r3, [r7, #52] ; 0x34 for(unsigned int k= offset; k< offset+length_st_strings; ++k){ - 80044f6: 6b7b ldr r3, [r7, #52] ; 0x34 - 80044f8: 627b str r3, [r7, #36] ; 0x24 - 80044fa: 6b7a ldr r2, [r7, #52] ; 0x34 - 80044fc: 68fb ldr r3, [r7, #12] - 80044fe: 4413 add r3, r2 - 8004500: 6a7a ldr r2, [r7, #36] ; 0x24 - 8004502: 429a cmp r2, r3 - 8004504: d20c bcs.n 8004520 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x29a> + 8004802: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004804: 627b str r3, [r7, #36] ; 0x24 + 8004806: 6b7a ldr r2, [r7, #52] ; 0x34 + 8004808: 68fb ldr r3, [r7, #12] + 800480a: 4413 add r3, r2 + 800480c: 6a7a ldr r2, [r7, #36] ; 0x24 + 800480e: 429a cmp r2, r3 + 8004810: d20c bcs.n 800482c <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x29a> inbuffer[k-1]=inbuffer[k]; - 8004506: 683a ldr r2, [r7, #0] - 8004508: 6a7b ldr r3, [r7, #36] ; 0x24 - 800450a: 441a add r2, r3 - 800450c: 6a7b ldr r3, [r7, #36] ; 0x24 - 800450e: 3b01 subs r3, #1 - 8004510: 6839 ldr r1, [r7, #0] - 8004512: 440b add r3, r1 - 8004514: 7812 ldrb r2, [r2, #0] - 8004516: 701a strb r2, [r3, #0] + 8004812: 683a ldr r2, [r7, #0] + 8004814: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004816: 441a add r2, r3 + 8004818: 6a7b ldr r3, [r7, #36] ; 0x24 + 800481a: 3b01 subs r3, #1 + 800481c: 6839 ldr r1, [r7, #0] + 800481e: 440b add r3, r1 + 8004820: 7812 ldrb r2, [r2, #0] + 8004822: 701a strb r2, [r3, #0] for(unsigned int k= offset; k< offset+length_st_strings; ++k){ - 8004518: 6a7b ldr r3, [r7, #36] ; 0x24 - 800451a: 3301 adds r3, #1 - 800451c: 627b str r3, [r7, #36] ; 0x24 - 800451e: e7ec b.n 80044fa <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x274> + 8004824: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004826: 3301 adds r3, #1 + 8004828: 627b str r3, [r7, #36] ; 0x24 + 800482a: e7ec b.n 8004806 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x274> } inbuffer[offset+length_st_strings-1]=0; - 8004520: 6b7a ldr r2, [r7, #52] ; 0x34 - 8004522: 68fb ldr r3, [r7, #12] - 8004524: 4413 add r3, r2 - 8004526: 3b01 subs r3, #1 - 8004528: 683a ldr r2, [r7, #0] - 800452a: 4413 add r3, r2 - 800452c: 2200 movs r2, #0 - 800452e: 701a strb r2, [r3, #0] + 800482c: 6b7a ldr r2, [r7, #52] ; 0x34 + 800482e: 68fb ldr r3, [r7, #12] + 8004830: 4413 add r3, r2 + 8004832: 3b01 subs r3, #1 + 8004834: 683a ldr r2, [r7, #0] + 8004836: 4413 add r3, r2 + 8004838: 2200 movs r2, #0 + 800483a: 701a strb r2, [r3, #0] this->st_strings = (char *)(inbuffer + offset-1); - 8004530: 6b7b ldr r3, [r7, #52] ; 0x34 - 8004532: 3b01 subs r3, #1 - 8004534: 683a ldr r2, [r7, #0] - 8004536: 441a add r2, r3 - 8004538: 687b ldr r3, [r7, #4] - 800453a: 621a str r2, [r3, #32] + 800483c: 6b7b ldr r3, [r7, #52] ; 0x34 + 800483e: 3b01 subs r3, #1 + 8004840: 683a ldr r2, [r7, #0] + 8004842: 441a add r2, r3 + 8004844: 687b ldr r3, [r7, #4] + 8004846: 621a str r2, [r3, #32] offset += length_st_strings; - 800453c: 6b7a ldr r2, [r7, #52] ; 0x34 - 800453e: 68fb ldr r3, [r7, #12] - 8004540: 4413 add r3, r2 - 8004542: 637b str r3, [r7, #52] ; 0x34 + 8004848: 6b7a ldr r2, [r7, #52] ; 0x34 + 800484a: 68fb ldr r3, [r7, #12] + 800484c: 4413 add r3, r2 + 800484e: 637b str r3, [r7, #52] ; 0x34 memcpy( &(this->strings[i]), &(this->st_strings), sizeof(char*)); - 8004544: 687b ldr r3, [r7, #4] - 8004546: 6a5a ldr r2, [r3, #36] ; 0x24 - 8004548: 6abb ldr r3, [r7, #40] ; 0x28 - 800454a: 009b lsls r3, r3, #2 - 800454c: 4413 add r3, r2 - 800454e: 687a ldr r2, [r7, #4] - 8004550: 3220 adds r2, #32 - 8004552: 6812 ldr r2, [r2, #0] - 8004554: 601a str r2, [r3, #0] + 8004850: 687b ldr r3, [r7, #4] + 8004852: 6a5a ldr r2, [r3, #36] ; 0x24 + 8004854: 6abb ldr r3, [r7, #40] ; 0x28 + 8004856: 009b lsls r3, r3, #2 + 8004858: 4413 add r3, r2 + 800485a: 687a ldr r2, [r7, #4] + 800485c: 3220 adds r2, #32 + 800485e: 6812 ldr r2, [r2, #0] + 8004860: 601a str r2, [r3, #0] for( uint32_t i = 0; i < strings_length; i++){ - 8004556: 6abb ldr r3, [r7, #40] ; 0x28 - 8004558: 3301 adds r3, #1 - 800455a: 62bb str r3, [r7, #40] ; 0x28 - 800455c: e7ba b.n 80044d4 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x24e> + 8004862: 6abb ldr r3, [r7, #40] ; 0x28 + 8004864: 3301 adds r3, #1 + 8004866: 62bb str r3, [r7, #40] ; 0x28 + 8004868: e7ba b.n 80047e0 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x24e> } return offset; - 800455e: 6b7b ldr r3, [r7, #52] ; 0x34 + 800486a: 6b7b ldr r3, [r7, #52] ; 0x34 } - 8004560: 4618 mov r0, r3 - 8004562: 3738 adds r7, #56 ; 0x38 - 8004564: 46bd mov sp, r7 - 8004566: bd80 pop {r7, pc} + 800486c: 4618 mov r0, r3 + 800486e: 3738 adds r7, #56 ; 0x38 + 8004870: 46bd mov sp, r7 + 8004872: bd80 pop {r7, pc} -08004568 <_ZN14rosserial_msgs20RequestParamResponse7getTypeEv>: +08004874 <_ZN14rosserial_msgs20RequestParamResponse7getTypeEv>: const char * getType(){ return REQUESTPARAM; }; - 8004568: b480 push {r7} - 800456a: b083 sub sp, #12 - 800456c: af00 add r7, sp, #0 - 800456e: 6078 str r0, [r7, #4] - 8004570: 4b03 ldr r3, [pc, #12] ; (8004580 <_ZN14rosserial_msgs20RequestParamResponse7getTypeEv+0x18>) - 8004572: 4618 mov r0, r3 - 8004574: 370c adds r7, #12 - 8004576: 46bd mov sp, r7 - 8004578: f85d 7b04 ldr.w r7, [sp], #4 - 800457c: 4770 bx lr - 800457e: bf00 nop - 8004580: 08006010 .word 0x08006010 - -08004584 <_ZN14rosserial_msgs20RequestParamResponse6getMD5Ev>: + 8004874: b480 push {r7} + 8004876: b083 sub sp, #12 + 8004878: af00 add r7, sp, #0 + 800487a: 6078 str r0, [r7, #4] + 800487c: 4b03 ldr r3, [pc, #12] ; (800488c <_ZN14rosserial_msgs20RequestParamResponse7getTypeEv+0x18>) + 800487e: 4618 mov r0, r3 + 8004880: 370c adds r7, #12 + 8004882: 46bd mov sp, r7 + 8004884: f85d 7b04 ldr.w r7, [sp], #4 + 8004888: 4770 bx lr + 800488a: bf00 nop + 800488c: 08006074 .word 0x08006074 + +08004890 <_ZN14rosserial_msgs20RequestParamResponse6getMD5Ev>: const char * getMD5(){ return "9f0e98bda65981986ddf53afa7a40e49"; }; - 8004584: b480 push {r7} - 8004586: b083 sub sp, #12 - 8004588: af00 add r7, sp, #0 - 800458a: 6078 str r0, [r7, #4] - 800458c: 4b03 ldr r3, [pc, #12] ; (800459c <_ZN14rosserial_msgs20RequestParamResponse6getMD5Ev+0x18>) - 800458e: 4618 mov r0, r3 - 8004590: 370c adds r7, #12 - 8004592: 46bd mov sp, r7 - 8004594: f85d 7b04 ldr.w r7, [sp], #4 - 8004598: 4770 bx lr - 800459a: bf00 nop - 800459c: 08005fa4 .word 0x08005fa4 - -080045a0 <_ZN3ros9Publisher15getEndpointTypeEv>: + 8004890: b480 push {r7} + 8004892: b083 sub sp, #12 + 8004894: af00 add r7, sp, #0 + 8004896: 6078 str r0, [r7, #4] + 8004898: 4b03 ldr r3, [pc, #12] ; (80048a8 <_ZN14rosserial_msgs20RequestParamResponse6getMD5Ev+0x18>) + 800489a: 4618 mov r0, r3 + 800489c: 370c adds r7, #12 + 800489e: 46bd mov sp, r7 + 80048a0: f85d 7b04 ldr.w r7, [sp], #4 + 80048a4: 4770 bx lr + 80048a6: bf00 nop + 80048a8: 08006008 .word 0x08006008 + +080048ac <_ZN3ros9Publisher15getEndpointTypeEv>: int publish(const Msg * msg) { return nh_->publish(id_, msg); }; int getEndpointType() - 80045a0: b480 push {r7} - 80045a2: b083 sub sp, #12 - 80045a4: af00 add r7, sp, #0 - 80045a6: 6078 str r0, [r7, #4] + 80048ac: b480 push {r7} + 80048ae: b083 sub sp, #12 + 80048b0: af00 add r7, sp, #0 + 80048b2: 6078 str r0, [r7, #4] { return endpoint_; - 80045a8: 687b ldr r3, [r7, #4] - 80045aa: 691b ldr r3, [r3, #16] + 80048b4: 687b ldr r3, [r7, #4] + 80048b6: 691b ldr r3, [r3, #16] } - 80045ac: 4618 mov r0, r3 - 80045ae: 370c adds r7, #12 - 80045b0: 46bd mov sp, r7 - 80045b2: f85d 7b04 ldr.w r7, [sp], #4 - 80045b6: 4770 bx lr + 80048b8: 4618 mov r0, r3 + 80048ba: 370c adds r7, #12 + 80048bc: 46bd mov sp, r7 + 80048be: f85d 7b04 ldr.w r7, [sp], #4 + 80048c2: 4770 bx lr -080045b8 <_ZN13STM32Hardware10getRdmaIndEv>: +080048c4 <_ZN13STM32Hardware10getRdmaIndEv>: UART_HandleTypeDef *huart; const static uint16_t rbuflen = 128; uint8_t rbuf[rbuflen]; uint32_t rind; inline uint32_t getRdmaInd(void){ return (rbuflen - huart->hdmarx->Instance->NDTR) & (rbuflen - 1); } - 80045b8: b480 push {r7} - 80045ba: b083 sub sp, #12 - 80045bc: af00 add r7, sp, #0 - 80045be: 6078 str r0, [r7, #4] - 80045c0: 687b ldr r3, [r7, #4] - 80045c2: 685b ldr r3, [r3, #4] - 80045c4: 6edb ldr r3, [r3, #108] ; 0x6c - 80045c6: 681b ldr r3, [r3, #0] - 80045c8: 685b ldr r3, [r3, #4] - 80045ca: 425b negs r3, r3 - 80045cc: f003 037f and.w r3, r3, #127 ; 0x7f - 80045d0: 4618 mov r0, r3 - 80045d2: 370c adds r7, #12 - 80045d4: 46bd mov sp, r7 - 80045d6: f85d 7b04 ldr.w r7, [sp], #4 - 80045da: 4770 bx lr - -080045dc <_ZN13STM32HardwareC1Ev>: + 80048c4: b480 push {r7} + 80048c6: b083 sub sp, #12 + 80048c8: af00 add r7, sp, #0 + 80048ca: 6078 str r0, [r7, #4] + 80048cc: 687b ldr r3, [r7, #4] + 80048ce: 685b ldr r3, [r3, #4] + 80048d0: 6edb ldr r3, [r3, #108] ; 0x6c + 80048d2: 681b ldr r3, [r3, #0] + 80048d4: 685b ldr r3, [r3, #4] + 80048d6: 425b negs r3, r3 + 80048d8: f003 037f and.w r3, r3, #127 ; 0x7f + 80048dc: 4618 mov r0, r3 + 80048de: 370c adds r7, #12 + 80048e0: 46bd mov sp, r7 + 80048e2: f85d 7b04 ldr.w r7, [sp], #4 + 80048e6: 4770 bx lr + +080048e8 <_ZN13STM32HardwareC1Ev>: const static uint16_t tbuflen = 256; uint8_t tbuf[tbuflen]; uint32_t twind, tfind; public: STM32Hardware(): - 80045dc: b480 push {r7} - 80045de: b083 sub sp, #12 - 80045e0: af00 add r7, sp, #0 - 80045e2: 6078 str r0, [r7, #4] + 80048e8: b480 push {r7} + 80048ea: b083 sub sp, #12 + 80048ec: af00 add r7, sp, #0 + 80048ee: 6078 str r0, [r7, #4] htim(&htim2), huart(&huart3), rind(0), twind(0), tfind(0){ - 80045e4: 687b ldr r3, [r7, #4] - 80045e6: 4a0c ldr r2, [pc, #48] ; (8004618 <_ZN13STM32HardwareC1Ev+0x3c>) - 80045e8: 601a str r2, [r3, #0] - 80045ea: 687b ldr r3, [r7, #4] - 80045ec: 4a0b ldr r2, [pc, #44] ; (800461c <_ZN13STM32HardwareC1Ev+0x40>) - 80045ee: 605a str r2, [r3, #4] - 80045f0: 687b ldr r3, [r7, #4] - 80045f2: 2200 movs r2, #0 - 80045f4: f8c3 2088 str.w r2, [r3, #136] ; 0x88 - 80045f8: 687b ldr r3, [r7, #4] - 80045fa: 2200 movs r2, #0 - 80045fc: f8c3 218c str.w r2, [r3, #396] ; 0x18c - 8004600: 687b ldr r3, [r7, #4] - 8004602: 2200 movs r2, #0 - 8004604: f8c3 2190 str.w r2, [r3, #400] ; 0x190 + 80048f0: 687b ldr r3, [r7, #4] + 80048f2: 4a0c ldr r2, [pc, #48] ; (8004924 <_ZN13STM32HardwareC1Ev+0x3c>) + 80048f4: 601a str r2, [r3, #0] + 80048f6: 687b ldr r3, [r7, #4] + 80048f8: 4a0b ldr r2, [pc, #44] ; (8004928 <_ZN13STM32HardwareC1Ev+0x40>) + 80048fa: 605a str r2, [r3, #4] + 80048fc: 687b ldr r3, [r7, #4] + 80048fe: 2200 movs r2, #0 + 8004900: f8c3 2088 str.w r2, [r3, #136] ; 0x88 + 8004904: 687b ldr r3, [r7, #4] + 8004906: 2200 movs r2, #0 + 8004908: f8c3 218c str.w r2, [r3, #396] ; 0x18c + 800490c: 687b ldr r3, [r7, #4] + 800490e: 2200 movs r2, #0 + 8004910: f8c3 2190 str.w r2, [r3, #400] ; 0x190 } - 8004608: 687b ldr r3, [r7, #4] - 800460a: 4618 mov r0, r3 - 800460c: 370c adds r7, #12 - 800460e: 46bd mov sp, r7 - 8004610: f85d 7b04 ldr.w r7, [sp], #4 - 8004614: 4770 bx lr - 8004616: bf00 nop - 8004618: 20000094 .word 0x20000094 - 800461c: 200000d4 .word 0x200000d4 - -08004620 <_ZN13STM32Hardware4initEv>: + 8004914: 687b ldr r3, [r7, #4] + 8004916: 4618 mov r0, r3 + 8004918: 370c adds r7, #12 + 800491a: 46bd mov sp, r7 + 800491c: f85d 7b04 ldr.w r7, [sp], #4 + 8004920: 4770 bx lr + 8004922: bf00 nop + 8004924: 20000090 .word 0x20000090 + 8004928: 200000d0 .word 0x200000d0 + +0800492c <_ZN13STM32Hardware4initEv>: STM32Hardware(TIM_HandleTypeDef *htim_, UART_HandleTypeDef *huart_): htim(htim_), huart(huart_), rind(0), twind(0), tfind(0){ } void init(){ - 8004620: b580 push {r7, lr} - 8004622: b082 sub sp, #8 - 8004624: af00 add r7, sp, #0 - 8004626: 6078 str r0, [r7, #4] + 800492c: b580 push {r7, lr} + 800492e: b082 sub sp, #8 + 8004930: af00 add r7, sp, #0 + 8004932: 6078 str r0, [r7, #4] reset_rbuf(); - 8004628: 6878 ldr r0, [r7, #4] - 800462a: f000 f809 bl 8004640 <_ZN13STM32Hardware10reset_rbufEv> + 8004934: 6878 ldr r0, [r7, #4] + 8004936: f000 f809 bl 800494c <_ZN13STM32Hardware10reset_rbufEv> HAL_TIM_Base_Start(htim); - 800462e: 687b ldr r3, [r7, #4] - 8004630: 681b ldr r3, [r3, #0] - 8004632: 4618 mov r0, r3 - 8004634: f7fd ff22 bl 800247c + 800493a: 687b ldr r3, [r7, #4] + 800493c: 681b ldr r3, [r3, #0] + 800493e: 4618 mov r0, r3 + 8004940: f7fd fd9c bl 800247c } - 8004638: bf00 nop - 800463a: 3708 adds r7, #8 - 800463c: 46bd mov sp, r7 - 800463e: bd80 pop {r7, pc} + 8004944: bf00 nop + 8004946: 3708 adds r7, #8 + 8004948: 46bd mov sp, r7 + 800494a: bd80 pop {r7, pc} -08004640 <_ZN13STM32Hardware10reset_rbufEv>: +0800494c <_ZN13STM32Hardware10reset_rbufEv>: void reset_rbuf(void){ - 8004640: b580 push {r7, lr} - 8004642: b082 sub sp, #8 - 8004644: af00 add r7, sp, #0 - 8004646: 6078 str r0, [r7, #4] + 800494c: b580 push {r7, lr} + 800494e: b082 sub sp, #8 + 8004950: af00 add r7, sp, #0 + 8004952: 6078 str r0, [r7, #4] HAL_UART_Receive_DMA(huart, rbuf, rbuflen); - 8004648: 687b ldr r3, [r7, #4] - 800464a: 6858 ldr r0, [r3, #4] - 800464c: 687b ldr r3, [r7, #4] - 800464e: 3308 adds r3, #8 - 8004650: 2280 movs r2, #128 ; 0x80 - 8004652: 4619 mov r1, r3 - 8004654: f7fe fa56 bl 8002b04 + 8004954: 687b ldr r3, [r7, #4] + 8004956: 6858 ldr r0, [r3, #4] + 8004958: 687b ldr r3, [r7, #4] + 800495a: 3308 adds r3, #8 + 800495c: 2280 movs r2, #128 ; 0x80 + 800495e: 4619 mov r1, r3 + 8004960: f7fe f8d0 bl 8002b04 } - 8004658: bf00 nop - 800465a: 3708 adds r7, #8 - 800465c: 46bd mov sp, r7 - 800465e: bd80 pop {r7, pc} + 8004964: bf00 nop + 8004966: 3708 adds r7, #8 + 8004968: 46bd mov sp, r7 + 800496a: bd80 pop {r7, pc} -08004660 <_ZN13STM32Hardware4readEv>: +0800496c <_ZN13STM32Hardware4readEv>: int read(){ - 8004660: b590 push {r4, r7, lr} - 8004662: b085 sub sp, #20 - 8004664: af00 add r7, sp, #0 - 8004666: 6078 str r0, [r7, #4] + 800496c: b590 push {r4, r7, lr} + 800496e: b085 sub sp, #20 + 8004970: af00 add r7, sp, #0 + 8004972: 6078 str r0, [r7, #4] int c = -1; - 8004668: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 800466c: 60fb str r3, [r7, #12] + 8004974: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 8004978: 60fb str r3, [r7, #12] if(rind != getRdmaInd()){ - 800466e: 687b ldr r3, [r7, #4] - 8004670: f8d3 4088 ldr.w r4, [r3, #136] ; 0x88 - 8004674: 6878 ldr r0, [r7, #4] - 8004676: f7ff ff9f bl 80045b8 <_ZN13STM32Hardware10getRdmaIndEv> - 800467a: 4603 mov r3, r0 - 800467c: 429c cmp r4, r3 - 800467e: bf14 ite ne - 8004680: 2301 movne r3, #1 - 8004682: 2300 moveq r3, #0 - 8004684: b2db uxtb r3, r3 - 8004686: 2b00 cmp r3, #0 - 8004688: d012 beq.n 80046b0 <_ZN13STM32Hardware4readEv+0x50> + 800497a: 687b ldr r3, [r7, #4] + 800497c: f8d3 4088 ldr.w r4, [r3, #136] ; 0x88 + 8004980: 6878 ldr r0, [r7, #4] + 8004982: f7ff ff9f bl 80048c4 <_ZN13STM32Hardware10getRdmaIndEv> + 8004986: 4603 mov r3, r0 + 8004988: 429c cmp r4, r3 + 800498a: bf14 ite ne + 800498c: 2301 movne r3, #1 + 800498e: 2300 moveq r3, #0 + 8004990: b2db uxtb r3, r3 + 8004992: 2b00 cmp r3, #0 + 8004994: d012 beq.n 80049bc <_ZN13STM32Hardware4readEv+0x50> c = rbuf[rind++]; - 800468a: 687b ldr r3, [r7, #4] - 800468c: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8004690: 1c59 adds r1, r3, #1 - 8004692: 687a ldr r2, [r7, #4] - 8004694: f8c2 1088 str.w r1, [r2, #136] ; 0x88 - 8004698: 687a ldr r2, [r7, #4] - 800469a: 4413 add r3, r2 - 800469c: 7a1b ldrb r3, [r3, #8] - 800469e: 60fb str r3, [r7, #12] + 8004996: 687b ldr r3, [r7, #4] + 8004998: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 800499c: 1c59 adds r1, r3, #1 + 800499e: 687a ldr r2, [r7, #4] + 80049a0: f8c2 1088 str.w r1, [r2, #136] ; 0x88 + 80049a4: 687a ldr r2, [r7, #4] + 80049a6: 4413 add r3, r2 + 80049a8: 7a1b ldrb r3, [r3, #8] + 80049aa: 60fb str r3, [r7, #12] rind &= rbuflen - 1; - 80046a0: 687b ldr r3, [r7, #4] - 80046a2: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 80046a6: f003 027f and.w r2, r3, #127 ; 0x7f - 80046aa: 687b ldr r3, [r7, #4] - 80046ac: f8c3 2088 str.w r2, [r3, #136] ; 0x88 + 80049ac: 687b ldr r3, [r7, #4] + 80049ae: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 80049b2: f003 027f and.w r2, r3, #127 ; 0x7f + 80049b6: 687b ldr r3, [r7, #4] + 80049b8: f8c3 2088 str.w r2, [r3, #136] ; 0x88 } return c; - 80046b0: 68fb ldr r3, [r7, #12] + 80049bc: 68fb ldr r3, [r7, #12] } - 80046b2: 4618 mov r0, r3 - 80046b4: 3714 adds r7, #20 - 80046b6: 46bd mov sp, r7 - 80046b8: bd90 pop {r4, r7, pc} + 80049be: 4618 mov r0, r3 + 80049c0: 3714 adds r7, #20 + 80049c2: 46bd mov sp, r7 + 80049c4: bd90 pop {r4, r7, pc} ... -080046bc <_ZN13STM32Hardware5flushEv>: +080049c8 <_ZN13STM32Hardware5flushEv>: void flush(void){ - 80046bc: b580 push {r7, lr} - 80046be: b084 sub sp, #16 - 80046c0: af00 add r7, sp, #0 - 80046c2: 6078 str r0, [r7, #4] + 80049c8: b580 push {r7, lr} + 80049ca: b084 sub sp, #16 + 80049cc: af00 add r7, sp, #0 + 80049ce: 6078 str r0, [r7, #4] static bool mutex = false; if((huart->gState == HAL_UART_STATE_READY) && !mutex){ - 80046c4: 687b ldr r3, [r7, #4] - 80046c6: 685b ldr r3, [r3, #4] - 80046c8: 6f5b ldr r3, [r3, #116] ; 0x74 - 80046ca: 2b20 cmp r3, #32 - 80046cc: d108 bne.n 80046e0 <_ZN13STM32Hardware5flushEv+0x24> - 80046ce: 4b27 ldr r3, [pc, #156] ; (800476c <_ZN13STM32Hardware5flushEv+0xb0>) - 80046d0: 781b ldrb r3, [r3, #0] - 80046d2: f083 0301 eor.w r3, r3, #1 - 80046d6: b2db uxtb r3, r3 - 80046d8: 2b00 cmp r3, #0 - 80046da: d001 beq.n 80046e0 <_ZN13STM32Hardware5flushEv+0x24> - 80046dc: 2301 movs r3, #1 - 80046de: e000 b.n 80046e2 <_ZN13STM32Hardware5flushEv+0x26> - 80046e0: 2300 movs r3, #0 - 80046e2: 2b00 cmp r3, #0 - 80046e4: d03e beq.n 8004764 <_ZN13STM32Hardware5flushEv+0xa8> + 80049d0: 687b ldr r3, [r7, #4] + 80049d2: 685b ldr r3, [r3, #4] + 80049d4: 6f5b ldr r3, [r3, #116] ; 0x74 + 80049d6: 2b20 cmp r3, #32 + 80049d8: d108 bne.n 80049ec <_ZN13STM32Hardware5flushEv+0x24> + 80049da: 4b27 ldr r3, [pc, #156] ; (8004a78 <_ZN13STM32Hardware5flushEv+0xb0>) + 80049dc: 781b ldrb r3, [r3, #0] + 80049de: f083 0301 eor.w r3, r3, #1 + 80049e2: b2db uxtb r3, r3 + 80049e4: 2b00 cmp r3, #0 + 80049e6: d001 beq.n 80049ec <_ZN13STM32Hardware5flushEv+0x24> + 80049e8: 2301 movs r3, #1 + 80049ea: e000 b.n 80049ee <_ZN13STM32Hardware5flushEv+0x26> + 80049ec: 2300 movs r3, #0 + 80049ee: 2b00 cmp r3, #0 + 80049f0: d03e beq.n 8004a70 <_ZN13STM32Hardware5flushEv+0xa8> mutex = true; - 80046e6: 4b21 ldr r3, [pc, #132] ; (800476c <_ZN13STM32Hardware5flushEv+0xb0>) - 80046e8: 2201 movs r2, #1 - 80046ea: 701a strb r2, [r3, #0] + 80049f2: 4b21 ldr r3, [pc, #132] ; (8004a78 <_ZN13STM32Hardware5flushEv+0xb0>) + 80049f4: 2201 movs r2, #1 + 80049f6: 701a strb r2, [r3, #0] if(twind != tfind){ - 80046ec: 687b ldr r3, [r7, #4] - 80046ee: f8d3 218c ldr.w r2, [r3, #396] ; 0x18c - 80046f2: 687b ldr r3, [r7, #4] - 80046f4: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 - 80046f8: 429a cmp r2, r3 - 80046fa: d030 beq.n 800475e <_ZN13STM32Hardware5flushEv+0xa2> + 80049f8: 687b ldr r3, [r7, #4] + 80049fa: f8d3 218c ldr.w r2, [r3, #396] ; 0x18c + 80049fe: 687b ldr r3, [r7, #4] + 8004a00: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 + 8004a04: 429a cmp r2, r3 + 8004a06: d030 beq.n 8004a6a <_ZN13STM32Hardware5flushEv+0xa2> uint16_t len = tfind < twind ? twind - tfind : tbuflen - tfind; - 80046fc: 687b ldr r3, [r7, #4] - 80046fe: f8d3 2190 ldr.w r2, [r3, #400] ; 0x190 - 8004702: 687b ldr r3, [r7, #4] - 8004704: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c - 8004708: 429a cmp r2, r3 - 800470a: d20a bcs.n 8004722 <_ZN13STM32Hardware5flushEv+0x66> - 800470c: 687b ldr r3, [r7, #4] - 800470e: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c - 8004712: b29a uxth r2, r3 - 8004714: 687b ldr r3, [r7, #4] - 8004716: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 - 800471a: b29b uxth r3, r3 - 800471c: 1ad3 subs r3, r2, r3 - 800471e: b29b uxth r3, r3 - 8004720: e006 b.n 8004730 <_ZN13STM32Hardware5flushEv+0x74> - 8004722: 687b ldr r3, [r7, #4] - 8004724: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 - 8004728: b29b uxth r3, r3 - 800472a: f5c3 7380 rsb r3, r3, #256 ; 0x100 - 800472e: b29b uxth r3, r3 - 8004730: 81fb strh r3, [r7, #14] + 8004a08: 687b ldr r3, [r7, #4] + 8004a0a: f8d3 2190 ldr.w r2, [r3, #400] ; 0x190 + 8004a0e: 687b ldr r3, [r7, #4] + 8004a10: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c + 8004a14: 429a cmp r2, r3 + 8004a16: d20a bcs.n 8004a2e <_ZN13STM32Hardware5flushEv+0x66> + 8004a18: 687b ldr r3, [r7, #4] + 8004a1a: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c + 8004a1e: b29a uxth r2, r3 + 8004a20: 687b ldr r3, [r7, #4] + 8004a22: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 + 8004a26: b29b uxth r3, r3 + 8004a28: 1ad3 subs r3, r2, r3 + 8004a2a: b29b uxth r3, r3 + 8004a2c: e006 b.n 8004a3c <_ZN13STM32Hardware5flushEv+0x74> + 8004a2e: 687b ldr r3, [r7, #4] + 8004a30: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 + 8004a34: b29b uxth r3, r3 + 8004a36: f5c3 7380 rsb r3, r3, #256 ; 0x100 + 8004a3a: b29b uxth r3, r3 + 8004a3c: 81fb strh r3, [r7, #14] HAL_UART_Transmit_DMA(huart, &(tbuf[tfind]), len); - 8004732: 687b ldr r3, [r7, #4] - 8004734: 6858 ldr r0, [r3, #4] - 8004736: 687b ldr r3, [r7, #4] - 8004738: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 - 800473c: 3388 adds r3, #136 ; 0x88 - 800473e: 687a ldr r2, [r7, #4] - 8004740: 4413 add r3, r2 - 8004742: 3304 adds r3, #4 - 8004744: 89fa ldrh r2, [r7, #14] - 8004746: 4619 mov r1, r3 - 8004748: f7fe f960 bl 8002a0c + 8004a3e: 687b ldr r3, [r7, #4] + 8004a40: 6858 ldr r0, [r3, #4] + 8004a42: 687b ldr r3, [r7, #4] + 8004a44: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 + 8004a48: 3388 adds r3, #136 ; 0x88 + 8004a4a: 687a ldr r2, [r7, #4] + 8004a4c: 4413 add r3, r2 + 8004a4e: 3304 adds r3, #4 + 8004a50: 89fa ldrh r2, [r7, #14] + 8004a52: 4619 mov r1, r3 + 8004a54: f7fd ffda bl 8002a0c tfind = (tfind + len) & (tbuflen - 1); - 800474c: 687b ldr r3, [r7, #4] - 800474e: f8d3 2190 ldr.w r2, [r3, #400] ; 0x190 - 8004752: 89fb ldrh r3, [r7, #14] - 8004754: 4413 add r3, r2 - 8004756: b2da uxtb r2, r3 - 8004758: 687b ldr r3, [r7, #4] - 800475a: f8c3 2190 str.w r2, [r3, #400] ; 0x190 + 8004a58: 687b ldr r3, [r7, #4] + 8004a5a: f8d3 2190 ldr.w r2, [r3, #400] ; 0x190 + 8004a5e: 89fb ldrh r3, [r7, #14] + 8004a60: 4413 add r3, r2 + 8004a62: b2da uxtb r2, r3 + 8004a64: 687b ldr r3, [r7, #4] + 8004a66: f8c3 2190 str.w r2, [r3, #400] ; 0x190 } mutex = false; - 800475e: 4b03 ldr r3, [pc, #12] ; (800476c <_ZN13STM32Hardware5flushEv+0xb0>) - 8004760: 2200 movs r2, #0 - 8004762: 701a strb r2, [r3, #0] + 8004a6a: 4b03 ldr r3, [pc, #12] ; (8004a78 <_ZN13STM32Hardware5flushEv+0xb0>) + 8004a6c: 2200 movs r2, #0 + 8004a6e: 701a strb r2, [r3, #0] } } - 8004764: bf00 nop - 8004766: 3710 adds r7, #16 - 8004768: 46bd mov sp, r7 - 800476a: bd80 pop {r7, pc} - 800476c: 20000090 .word 0x20000090 + 8004a70: bf00 nop + 8004a72: 3710 adds r7, #16 + 8004a74: 46bd mov sp, r7 + 8004a76: bd80 pop {r7, pc} + 8004a78: 20000210 .word 0x20000210 -08004770 <_ZN13STM32Hardware5writeEPhi>: +08004a7c <_ZN13STM32Hardware5writeEPhi>: void write(uint8_t* data, int length){ - 8004770: b580 push {r7, lr} - 8004772: b086 sub sp, #24 - 8004774: af00 add r7, sp, #0 - 8004776: 60f8 str r0, [r7, #12] - 8004778: 60b9 str r1, [r7, #8] - 800477a: 607a str r2, [r7, #4] + 8004a7c: b580 push {r7, lr} + 8004a7e: b086 sub sp, #24 + 8004a80: af00 add r7, sp, #0 + 8004a82: 60f8 str r0, [r7, #12] + 8004a84: 60b9 str r1, [r7, #8] + 8004a86: 607a str r2, [r7, #4] int n = length; - 800477c: 687b ldr r3, [r7, #4] - 800477e: 617b str r3, [r7, #20] + 8004a88: 687b ldr r3, [r7, #4] + 8004a8a: 617b str r3, [r7, #20] n = n <= tbuflen ? n : tbuflen; - 8004780: 697b ldr r3, [r7, #20] - 8004782: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 8004786: bfa8 it ge - 8004788: f44f 7380 movge.w r3, #256 ; 0x100 - 800478c: 617b str r3, [r7, #20] + 8004a8c: 697b ldr r3, [r7, #20] + 8004a8e: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 8004a92: bfa8 it ge + 8004a94: f44f 7380 movge.w r3, #256 ; 0x100 + 8004a98: 617b str r3, [r7, #20] int n_tail = n <= tbuflen - twind ? n : tbuflen - twind; - 800478e: 68fb ldr r3, [r7, #12] - 8004790: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c - 8004794: f5c3 7280 rsb r2, r3, #256 ; 0x100 - 8004798: 697b ldr r3, [r7, #20] - 800479a: 4293 cmp r3, r2 - 800479c: bf28 it cs - 800479e: 4613 movcs r3, r2 - 80047a0: 613b str r3, [r7, #16] + 8004a9a: 68fb ldr r3, [r7, #12] + 8004a9c: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c + 8004aa0: f5c3 7280 rsb r2, r3, #256 ; 0x100 + 8004aa4: 697b ldr r3, [r7, #20] + 8004aa6: 4293 cmp r3, r2 + 8004aa8: bf28 it cs + 8004aaa: 4613 movcs r3, r2 + 8004aac: 613b str r3, [r7, #16] memcpy(&(tbuf[twind]), data, n_tail); - 80047a2: 68fb ldr r3, [r7, #12] - 80047a4: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c - 80047a8: 3388 adds r3, #136 ; 0x88 - 80047aa: 68fa ldr r2, [r7, #12] - 80047ac: 4413 add r3, r2 - 80047ae: 3304 adds r3, #4 - 80047b0: 693a ldr r2, [r7, #16] - 80047b2: 68b9 ldr r1, [r7, #8] - 80047b4: 4618 mov r0, r3 - 80047b6: f001 fa2f bl 8005c18 + 8004aae: 68fb ldr r3, [r7, #12] + 8004ab0: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c + 8004ab4: 3388 adds r3, #136 ; 0x88 + 8004ab6: 68fa ldr r2, [r7, #12] + 8004ab8: 4413 add r3, r2 + 8004aba: 3304 adds r3, #4 + 8004abc: 693a ldr r2, [r7, #16] + 8004abe: 68b9 ldr r1, [r7, #8] + 8004ac0: 4618 mov r0, r3 + 8004ac2: f001 f8db bl 8005c7c twind = (twind + n) & (tbuflen - 1); - 80047ba: 68fb ldr r3, [r7, #12] - 80047bc: f8d3 218c ldr.w r2, [r3, #396] ; 0x18c - 80047c0: 697b ldr r3, [r7, #20] - 80047c2: 4413 add r3, r2 - 80047c4: b2da uxtb r2, r3 - 80047c6: 68fb ldr r3, [r7, #12] - 80047c8: f8c3 218c str.w r2, [r3, #396] ; 0x18c + 8004ac6: 68fb ldr r3, [r7, #12] + 8004ac8: f8d3 218c ldr.w r2, [r3, #396] ; 0x18c + 8004acc: 697b ldr r3, [r7, #20] + 8004ace: 4413 add r3, r2 + 8004ad0: b2da uxtb r2, r3 + 8004ad2: 68fb ldr r3, [r7, #12] + 8004ad4: f8c3 218c str.w r2, [r3, #396] ; 0x18c if(n != n_tail){ - 80047cc: 697a ldr r2, [r7, #20] - 80047ce: 693b ldr r3, [r7, #16] - 80047d0: 429a cmp r2, r3 - 80047d2: d00b beq.n 80047ec <_ZN13STM32Hardware5writeEPhi+0x7c> + 8004ad8: 697a ldr r2, [r7, #20] + 8004ada: 693b ldr r3, [r7, #16] + 8004adc: 429a cmp r2, r3 + 8004ade: d00b beq.n 8004af8 <_ZN13STM32Hardware5writeEPhi+0x7c> memcpy(tbuf, &(data[n_tail]), n - n_tail); - 80047d4: 68fb ldr r3, [r7, #12] - 80047d6: f103 008c add.w r0, r3, #140 ; 0x8c - 80047da: 693b ldr r3, [r7, #16] - 80047dc: 68ba ldr r2, [r7, #8] - 80047de: 18d1 adds r1, r2, r3 - 80047e0: 697a ldr r2, [r7, #20] - 80047e2: 693b ldr r3, [r7, #16] - 80047e4: 1ad3 subs r3, r2, r3 - 80047e6: 461a mov r2, r3 - 80047e8: f001 fa16 bl 8005c18 + 8004ae0: 68fb ldr r3, [r7, #12] + 8004ae2: f103 008c add.w r0, r3, #140 ; 0x8c + 8004ae6: 693b ldr r3, [r7, #16] + 8004ae8: 68ba ldr r2, [r7, #8] + 8004aea: 18d1 adds r1, r2, r3 + 8004aec: 697a ldr r2, [r7, #20] + 8004aee: 693b ldr r3, [r7, #16] + 8004af0: 1ad3 subs r3, r2, r3 + 8004af2: 461a mov r2, r3 + 8004af4: f001 f8c2 bl 8005c7c } flush(); - 80047ec: 68f8 ldr r0, [r7, #12] - 80047ee: f7ff ff65 bl 80046bc <_ZN13STM32Hardware5flushEv> + 8004af8: 68f8 ldr r0, [r7, #12] + 8004afa: f7ff ff65 bl 80049c8 <_ZN13STM32Hardware5flushEv> } - 80047f2: bf00 nop - 80047f4: 3718 adds r7, #24 - 80047f6: 46bd mov sp, r7 - 80047f8: bd80 pop {r7, pc} - -080047fa <_ZN13STM32Hardware4timeEv>: - - unsigned long time(){ return HAL_GetTick(); } - 80047fa: b580 push {r7, lr} - 80047fc: b082 sub sp, #8 - 80047fe: af00 add r7, sp, #0 - 8004800: 6078 str r0, [r7, #4] - 8004802: f7fb fef3 bl 80005ec - 8004806: 4603 mov r3, r0 - 8004808: 4618 mov r0, r3 - 800480a: 3708 adds r7, #8 - 800480c: 46bd mov sp, r7 - 800480e: bd80 pop {r7, pc} - -08004810 <_Z6led_cbRKN8std_msgs5UInt8E>: - -/* Private user code ---------------------------------------------------------*/ -/* USER CODE BEGIN 0 */ -ros::Subscriber led_sub("led", &led_cb); - -void led_cb(const std_msgs::UInt8& msg){ - 8004810: b580 push {r7, lr} - 8004812: b084 sub sp, #16 - 8004814: af00 add r7, sp, #0 - 8004816: 6078 str r0, [r7, #4] - int i = msg.data; - 8004818: 687b ldr r3, [r7, #4] - 800481a: 791b ldrb r3, [r3, #4] - 800481c: 60fb str r3, [r7, #12] - HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_15); - 800481e: f44f 4100 mov.w r1, #32768 ; 0x8000 - 8004822: 4808 ldr r0, [pc, #32] ; (8004844 <_Z6led_cbRKN8std_msgs5UInt8E+0x34>) - 8004824: f7fc fd7d bl 8001322 - HAL_Delay(i); - 8004828: 68fb ldr r3, [r7, #12] - 800482a: 4618 mov r0, r3 - 800482c: f7fb feea bl 8000604 - HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_15); - 8004830: f44f 4100 mov.w r1, #32768 ; 0x8000 - 8004834: 4803 ldr r0, [pc, #12] ; (8004844 <_Z6led_cbRKN8std_msgs5UInt8E+0x34>) - 8004836: f7fc fd74 bl 8001322 - -} - 800483a: bf00 nop - 800483c: 3710 adds r7, #16 - 800483e: 46bd mov sp, r7 - 8004840: bd80 pop {r7, pc} - 8004842: bf00 nop - 8004844: 40021400 .word 0x40021400 - -08004848
: -/** - * @brief The application entry point. - * @retval int - */ -int main(void) -{ - 8004848: b580 push {r7, lr} - 800484a: f5ad 6dd8 sub.w sp, sp, #1728 ; 0x6c0 - 800484e: af00 add r7, sp, #0 - - - /* MCU Configuration--------------------------------------------------------*/ - - /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ - HAL_Init(); - 8004850: f7fb fe7a bl 8000548 - /* USER CODE BEGIN Init */ - - /* USER CODE END Init */ - - /* Configure the system clock */ - SystemClock_Config(); - 8004854: f000 f818 bl 8004888 <_Z18SystemClock_Configv> - /* USER CODE BEGIN SysInit */ - - /* USER CODE END SysInit */ - - /* Initialize all configured peripherals */ - MX_GPIO_Init(); - 8004858: f000 f956 bl 8004b08 <_ZL12MX_GPIO_Initv> - MX_DMA_Init(); - 800485c: f000 f92e bl 8004abc <_ZL11MX_DMA_Initv> - MX_TIM2_Init(); - 8004860: f000 f89c bl 800499c <_ZL12MX_TIM2_Initv> - MX_USART3_UART_Init(); - 8004864: f000 f8f6 bl 8004a54 <_ZL19MX_USART3_UART_Initv> - /* USER CODE BEGIN 2 */ - ros::NodeHandle nh; - 8004868: 463b mov r3, r7 - 800486a: 4618 mov r0, r3 - 800486c: f000 fa1a bl 8004ca4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev> - - nh.initNode(); - 8004870: 463b mov r3, r7 - 8004872: 4618 mov r0, r3 - 8004874: f000 fa96 bl 8004da4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8initNodeEv> - nh.subscribe(led_sub); - 8004878: 463b mov r3, r7 - 800487a: 4902 ldr r1, [pc, #8] ; (8004884 ) - 800487c: 4618 mov r0, r3 - 800487e: f000 faae bl 8004dde <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9subscribeINS_10SubscriberIN8std_msgs5UInt8EvEEEEbRT_> - - /* USER CODE END 2 */ - - /* Infinite loop */ - /* USER CODE BEGIN WHILE */ - while (1) { - 8004882: e7fe b.n 8004882 - 8004884: 20000214 .word 0x20000214 - -08004888 <_Z18SystemClock_Configv>: -/** - * @brief System Clock Configuration - * @retval None - */ -void SystemClock_Config(void) -{ - 8004888: b580 push {r7, lr} - 800488a: b0b8 sub sp, #224 ; 0xe0 - 800488c: af00 add r7, sp, #0 - RCC_OscInitTypeDef RCC_OscInitStruct = {0}; - 800488e: f107 03ac add.w r3, r7, #172 ; 0xac - 8004892: 2234 movs r2, #52 ; 0x34 - 8004894: 2100 movs r1, #0 - 8004896: 4618 mov r0, r3 - 8004898: f001 f9c9 bl 8005c2e - RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; - 800489c: f107 0398 add.w r3, r7, #152 ; 0x98 - 80048a0: 2200 movs r2, #0 - 80048a2: 601a str r2, [r3, #0] - 80048a4: 605a str r2, [r3, #4] - 80048a6: 609a str r2, [r3, #8] - 80048a8: 60da str r2, [r3, #12] - 80048aa: 611a str r2, [r3, #16] - RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; - 80048ac: f107 0308 add.w r3, r7, #8 - 80048b0: 2290 movs r2, #144 ; 0x90 - 80048b2: 2100 movs r1, #0 - 80048b4: 4618 mov r0, r3 - 80048b6: f001 f9ba bl 8005c2e - - /** Configure the main internal regulator output voltage - */ - __HAL_RCC_PWR_CLK_ENABLE(); - 80048ba: 4b36 ldr r3, [pc, #216] ; (8004994 <_Z18SystemClock_Configv+0x10c>) - 80048bc: 6c1b ldr r3, [r3, #64] ; 0x40 - 80048be: 4a35 ldr r2, [pc, #212] ; (8004994 <_Z18SystemClock_Configv+0x10c>) - 80048c0: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 80048c4: 6413 str r3, [r2, #64] ; 0x40 - 80048c6: 4b33 ldr r3, [pc, #204] ; (8004994 <_Z18SystemClock_Configv+0x10c>) - 80048c8: 6c1b ldr r3, [r3, #64] ; 0x40 - 80048ca: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 80048ce: 607b str r3, [r7, #4] - 80048d0: 687b ldr r3, [r7, #4] - __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3); - 80048d2: 4b31 ldr r3, [pc, #196] ; (8004998 <_Z18SystemClock_Configv+0x110>) - 80048d4: 681b ldr r3, [r3, #0] - 80048d6: f423 4340 bic.w r3, r3, #49152 ; 0xc000 - 80048da: 4a2f ldr r2, [pc, #188] ; (8004998 <_Z18SystemClock_Configv+0x110>) - 80048dc: f443 4380 orr.w r3, r3, #16384 ; 0x4000 - 80048e0: 6013 str r3, [r2, #0] - 80048e2: 4b2d ldr r3, [pc, #180] ; (8004998 <_Z18SystemClock_Configv+0x110>) - 80048e4: 681b ldr r3, [r3, #0] - 80048e6: f403 4340 and.w r3, r3, #49152 ; 0xc000 - 80048ea: 603b str r3, [r7, #0] - 80048ec: 683b ldr r3, [r7, #0] - /** Initializes the CPU, AHB and APB busses clocks - */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; - 80048ee: 2302 movs r3, #2 - 80048f0: f8c7 30ac str.w r3, [r7, #172] ; 0xac - RCC_OscInitStruct.HSIState = RCC_HSI_ON; - 80048f4: 2301 movs r3, #1 - 80048f6: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8 - RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; - 80048fa: 2310 movs r3, #16 - 80048fc: f8c7 30bc str.w r3, [r7, #188] ; 0xbc - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; - 8004900: 2300 movs r3, #0 - 8004902: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - 8004906: f107 03ac add.w r3, r7, #172 ; 0xac - 800490a: 4618 mov r0, r3 - 800490c: f7fc fd24 bl 8001358 - 8004910: 4603 mov r3, r0 - 8004912: 2b00 cmp r3, #0 - 8004914: bf14 ite ne - 8004916: 2301 movne r3, #1 - 8004918: 2300 moveq r3, #0 - 800491a: b2db uxtb r3, r3 - 800491c: 2b00 cmp r3, #0 - 800491e: d001 beq.n 8004924 <_Z18SystemClock_Configv+0x9c> - { - Error_Handler(); - 8004920: f000 f932 bl 8004b88 - } - /** Initializes the CPU, AHB and APB busses clocks - */ - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - 8004924: 230f movs r3, #15 - 8004926: f8c7 3098 str.w r3, [r7, #152] ; 0x98 - |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; - 800492a: 2300 movs r3, #0 - 800492c: f8c7 309c str.w r3, [r7, #156] ; 0x9c - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - 8004930: 2300 movs r3, #0 - 8004932: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 - RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; - 8004936: 2300 movs r3, #0 - 8004938: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 - RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; - 800493c: 2300 movs r3, #0 - 800493e: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 - - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) - 8004942: f107 0398 add.w r3, r7, #152 ; 0x98 - 8004946: 2100 movs r1, #0 - 8004948: 4618 mov r0, r3 - 800494a: f7fc ff77 bl 800183c - 800494e: 4603 mov r3, r0 - 8004950: 2b00 cmp r3, #0 - 8004952: bf14 ite ne - 8004954: 2301 movne r3, #1 - 8004956: 2300 moveq r3, #0 - 8004958: b2db uxtb r3, r3 - 800495a: 2b00 cmp r3, #0 - 800495c: d001 beq.n 8004962 <_Z18SystemClock_Configv+0xda> - { - Error_Handler(); - 800495e: f000 f913 bl 8004b88 - } - PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3; - 8004962: f44f 7380 mov.w r3, #256 ; 0x100 - 8004966: 60bb str r3, [r7, #8] - PeriphClkInitStruct.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1; - 8004968: 2300 movs r3, #0 - 800496a: 657b str r3, [r7, #84] ; 0x54 - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) - 800496c: f107 0308 add.w r3, r7, #8 - 8004970: 4618 mov r0, r3 - 8004972: f7fd f931 bl 8001bd8 - 8004976: 4603 mov r3, r0 - 8004978: 2b00 cmp r3, #0 - 800497a: bf14 ite ne - 800497c: 2301 movne r3, #1 - 800497e: 2300 moveq r3, #0 - 8004980: b2db uxtb r3, r3 - 8004982: 2b00 cmp r3, #0 - 8004984: d001 beq.n 800498a <_Z18SystemClock_Configv+0x102> - { - Error_Handler(); - 8004986: f000 f8ff bl 8004b88 - } -} - 800498a: bf00 nop - 800498c: 37e0 adds r7, #224 ; 0xe0 - 800498e: 46bd mov sp, r7 - 8004990: bd80 pop {r7, pc} - 8004992: bf00 nop - 8004994: 40023800 .word 0x40023800 - 8004998: 40007000 .word 0x40007000 - -0800499c <_ZL12MX_TIM2_Initv>: - * @brief TIM2 Initialization Function - * @param None - * @retval None - */ -static void MX_TIM2_Init(void) -{ - 800499c: b580 push {r7, lr} - 800499e: b088 sub sp, #32 - 80049a0: af00 add r7, sp, #0 - - /* USER CODE BEGIN TIM2_Init 0 */ - - /* USER CODE END TIM2_Init 0 */ - - TIM_ClockConfigTypeDef sClockSourceConfig = {0}; - 80049a2: f107 0310 add.w r3, r7, #16 - 80049a6: 2200 movs r2, #0 - 80049a8: 601a str r2, [r3, #0] - 80049aa: 605a str r2, [r3, #4] - 80049ac: 609a str r2, [r3, #8] - 80049ae: 60da str r2, [r3, #12] - TIM_MasterConfigTypeDef sMasterConfig = {0}; - 80049b0: 1d3b adds r3, r7, #4 - 80049b2: 2200 movs r2, #0 - 80049b4: 601a str r2, [r3, #0] - 80049b6: 605a str r2, [r3, #4] - 80049b8: 609a str r2, [r3, #8] - - /* USER CODE BEGIN TIM2_Init 1 */ - - /* USER CODE END TIM2_Init 1 */ - htim2.Instance = TIM2; - 80049ba: 4b25 ldr r3, [pc, #148] ; (8004a50 <_ZL12MX_TIM2_Initv+0xb4>) - 80049bc: f04f 4280 mov.w r2, #1073741824 ; 0x40000000 - 80049c0: 601a str r2, [r3, #0] - htim2.Init.Prescaler = 0; - 80049c2: 4b23 ldr r3, [pc, #140] ; (8004a50 <_ZL12MX_TIM2_Initv+0xb4>) - 80049c4: 2200 movs r2, #0 - 80049c6: 605a str r2, [r3, #4] - htim2.Init.CounterMode = TIM_COUNTERMODE_UP; - 80049c8: 4b21 ldr r3, [pc, #132] ; (8004a50 <_ZL12MX_TIM2_Initv+0xb4>) - 80049ca: 2200 movs r2, #0 - 80049cc: 609a str r2, [r3, #8] - htim2.Init.Period = 0; - 80049ce: 4b20 ldr r3, [pc, #128] ; (8004a50 <_ZL12MX_TIM2_Initv+0xb4>) - 80049d0: 2200 movs r2, #0 - 80049d2: 60da str r2, [r3, #12] - htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; - 80049d4: 4b1e ldr r3, [pc, #120] ; (8004a50 <_ZL12MX_TIM2_Initv+0xb4>) - 80049d6: 2200 movs r2, #0 - 80049d8: 611a str r2, [r3, #16] - htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; - 80049da: 4b1d ldr r3, [pc, #116] ; (8004a50 <_ZL12MX_TIM2_Initv+0xb4>) - 80049dc: 2200 movs r2, #0 - 80049de: 619a str r2, [r3, #24] - if (HAL_TIM_Base_Init(&htim2) != HAL_OK) - 80049e0: 481b ldr r0, [pc, #108] ; (8004a50 <_ZL12MX_TIM2_Initv+0xb4>) - 80049e2: f7fd fd1f bl 8002424 - 80049e6: 4603 mov r3, r0 - 80049e8: 2b00 cmp r3, #0 - 80049ea: bf14 ite ne - 80049ec: 2301 movne r3, #1 - 80049ee: 2300 moveq r3, #0 - 80049f0: b2db uxtb r3, r3 - 80049f2: 2b00 cmp r3, #0 - 80049f4: d001 beq.n 80049fa <_ZL12MX_TIM2_Initv+0x5e> - { - Error_Handler(); - 80049f6: f000 f8c7 bl 8004b88 - } - sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; - 80049fa: f44f 5380 mov.w r3, #4096 ; 0x1000 - 80049fe: 613b str r3, [r7, #16] - if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) - 8004a00: f107 0310 add.w r3, r7, #16 - 8004a04: 4619 mov r1, r3 - 8004a06: 4812 ldr r0, [pc, #72] ; (8004a50 <_ZL12MX_TIM2_Initv+0xb4>) - 8004a08: f7fd fd62 bl 80024d0 - 8004a0c: 4603 mov r3, r0 - 8004a0e: 2b00 cmp r3, #0 - 8004a10: bf14 ite ne - 8004a12: 2301 movne r3, #1 - 8004a14: 2300 moveq r3, #0 - 8004a16: b2db uxtb r3, r3 - 8004a18: 2b00 cmp r3, #0 - 8004a1a: d001 beq.n 8004a20 <_ZL12MX_TIM2_Initv+0x84> - { - Error_Handler(); - 8004a1c: f000 f8b4 bl 8004b88 - } - sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; - 8004a20: 2300 movs r3, #0 - 8004a22: 607b str r3, [r7, #4] - sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; - 8004a24: 2300 movs r3, #0 - 8004a26: 60fb str r3, [r7, #12] - if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) - 8004a28: 1d3b adds r3, r7, #4 - 8004a2a: 4619 mov r1, r3 - 8004a2c: 4808 ldr r0, [pc, #32] ; (8004a50 <_ZL12MX_TIM2_Initv+0xb4>) - 8004a2e: f7fd ff43 bl 80028b8 - 8004a32: 4603 mov r3, r0 - 8004a34: 2b00 cmp r3, #0 - 8004a36: bf14 ite ne - 8004a38: 2301 movne r3, #1 - 8004a3a: 2300 moveq r3, #0 - 8004a3c: b2db uxtb r3, r3 - 8004a3e: 2b00 cmp r3, #0 - 8004a40: d001 beq.n 8004a46 <_ZL12MX_TIM2_Initv+0xaa> - { - Error_Handler(); - 8004a42: f000 f8a1 bl 8004b88 - } - /* USER CODE BEGIN TIM2_Init 2 */ - - /* USER CODE END TIM2_Init 2 */ - -} - 8004a46: bf00 nop - 8004a48: 3720 adds r7, #32 - 8004a4a: 46bd mov sp, r7 - 8004a4c: bd80 pop {r7, pc} - 8004a4e: bf00 nop - 8004a50: 20000094 .word 0x20000094 - -08004a54 <_ZL19MX_USART3_UART_Initv>: - * @brief USART3 Initialization Function - * @param None - * @retval None - */ -static void MX_USART3_UART_Init(void) -{ - 8004a54: b580 push {r7, lr} - 8004a56: af00 add r7, sp, #0 - /* USER CODE END USART3_Init 0 */ + 8004afe: bf00 nop + 8004b00: 3718 adds r7, #24 + 8004b02: 46bd mov sp, r7 + 8004b04: bd80 pop {r7, pc} - /* USER CODE BEGIN USART3_Init 1 */ - - /* USER CODE END USART3_Init 1 */ - huart3.Instance = USART3; - 8004a58: 4b16 ldr r3, [pc, #88] ; (8004ab4 <_ZL19MX_USART3_UART_Initv+0x60>) - 8004a5a: 4a17 ldr r2, [pc, #92] ; (8004ab8 <_ZL19MX_USART3_UART_Initv+0x64>) - 8004a5c: 601a str r2, [r3, #0] - huart3.Init.BaudRate = 115200; - 8004a5e: 4b15 ldr r3, [pc, #84] ; (8004ab4 <_ZL19MX_USART3_UART_Initv+0x60>) - 8004a60: f44f 32e1 mov.w r2, #115200 ; 0x1c200 - 8004a64: 605a str r2, [r3, #4] - huart3.Init.WordLength = UART_WORDLENGTH_8B; - 8004a66: 4b13 ldr r3, [pc, #76] ; (8004ab4 <_ZL19MX_USART3_UART_Initv+0x60>) - 8004a68: 2200 movs r2, #0 - 8004a6a: 609a str r2, [r3, #8] - huart3.Init.StopBits = UART_STOPBITS_1; - 8004a6c: 4b11 ldr r3, [pc, #68] ; (8004ab4 <_ZL19MX_USART3_UART_Initv+0x60>) - 8004a6e: 2200 movs r2, #0 - 8004a70: 60da str r2, [r3, #12] - huart3.Init.Parity = UART_PARITY_NONE; - 8004a72: 4b10 ldr r3, [pc, #64] ; (8004ab4 <_ZL19MX_USART3_UART_Initv+0x60>) - 8004a74: 2200 movs r2, #0 - 8004a76: 611a str r2, [r3, #16] - huart3.Init.Mode = UART_MODE_TX_RX; - 8004a78: 4b0e ldr r3, [pc, #56] ; (8004ab4 <_ZL19MX_USART3_UART_Initv+0x60>) - 8004a7a: 220c movs r2, #12 - 8004a7c: 615a str r2, [r3, #20] - huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; - 8004a7e: 4b0d ldr r3, [pc, #52] ; (8004ab4 <_ZL19MX_USART3_UART_Initv+0x60>) - 8004a80: 2200 movs r2, #0 - 8004a82: 619a str r2, [r3, #24] - huart3.Init.OverSampling = UART_OVERSAMPLING_16; - 8004a84: 4b0b ldr r3, [pc, #44] ; (8004ab4 <_ZL19MX_USART3_UART_Initv+0x60>) - 8004a86: 2200 movs r2, #0 - 8004a88: 61da str r2, [r3, #28] - huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - 8004a8a: 4b0a ldr r3, [pc, #40] ; (8004ab4 <_ZL19MX_USART3_UART_Initv+0x60>) - 8004a8c: 2200 movs r2, #0 - 8004a8e: 621a str r2, [r3, #32] - huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - 8004a90: 4b08 ldr r3, [pc, #32] ; (8004ab4 <_ZL19MX_USART3_UART_Initv+0x60>) - 8004a92: 2200 movs r2, #0 - 8004a94: 625a str r2, [r3, #36] ; 0x24 - if (HAL_UART_Init(&huart3) != HAL_OK) - 8004a96: 4807 ldr r0, [pc, #28] ; (8004ab4 <_ZL19MX_USART3_UART_Initv+0x60>) - 8004a98: f7fd ff6a bl 8002970 - 8004a9c: 4603 mov r3, r0 - 8004a9e: 2b00 cmp r3, #0 - 8004aa0: bf14 ite ne - 8004aa2: 2301 movne r3, #1 - 8004aa4: 2300 moveq r3, #0 - 8004aa6: b2db uxtb r3, r3 - 8004aa8: 2b00 cmp r3, #0 - 8004aaa: d001 beq.n 8004ab0 <_ZL19MX_USART3_UART_Initv+0x5c> - { - Error_Handler(); - 8004aac: f000 f86c bl 8004b88 - } - /* USER CODE BEGIN USART3_Init 2 */ - - /* USER CODE END USART3_Init 2 */ - -} - 8004ab0: bf00 nop - 8004ab2: bd80 pop {r7, pc} - 8004ab4: 200000d4 .word 0x200000d4 - 8004ab8: 40004800 .word 0x40004800 - -08004abc <_ZL11MX_DMA_Initv>: - -/** - * Enable DMA controller clock - */ -static void MX_DMA_Init(void) -{ - 8004abc: b580 push {r7, lr} - 8004abe: b082 sub sp, #8 - 8004ac0: af00 add r7, sp, #0 - - /* DMA controller clock enable */ - __HAL_RCC_DMA1_CLK_ENABLE(); - 8004ac2: 4b10 ldr r3, [pc, #64] ; (8004b04 <_ZL11MX_DMA_Initv+0x48>) - 8004ac4: 6b1b ldr r3, [r3, #48] ; 0x30 - 8004ac6: 4a0f ldr r2, [pc, #60] ; (8004b04 <_ZL11MX_DMA_Initv+0x48>) - 8004ac8: f443 1300 orr.w r3, r3, #2097152 ; 0x200000 - 8004acc: 6313 str r3, [r2, #48] ; 0x30 - 8004ace: 4b0d ldr r3, [pc, #52] ; (8004b04 <_ZL11MX_DMA_Initv+0x48>) - 8004ad0: 6b1b ldr r3, [r3, #48] ; 0x30 - 8004ad2: f403 1300 and.w r3, r3, #2097152 ; 0x200000 - 8004ad6: 607b str r3, [r7, #4] - 8004ad8: 687b ldr r3, [r7, #4] - - /* DMA interrupt init */ - /* DMA1_Stream1_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0); - 8004ada: 2200 movs r2, #0 - 8004adc: 2100 movs r1, #0 - 8004ade: 200c movs r0, #12 - 8004ae0: f7fb fe8d bl 80007fe - HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn); - 8004ae4: 200c movs r0, #12 - 8004ae6: f7fb fea6 bl 8000836 - /* DMA1_Stream3_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Stream3_IRQn, 0, 0); - 8004aea: 2200 movs r2, #0 - 8004aec: 2100 movs r1, #0 - 8004aee: 200e movs r0, #14 - 8004af0: f7fb fe85 bl 80007fe - HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn); - 8004af4: 200e movs r0, #14 - 8004af6: f7fb fe9e bl 8000836 - -} - 8004afa: bf00 nop - 8004afc: 3708 adds r7, #8 - 8004afe: 46bd mov sp, r7 - 8004b00: bd80 pop {r7, pc} - 8004b02: bf00 nop - 8004b04: 40023800 .word 0x40023800 - -08004b08 <_ZL12MX_GPIO_Initv>: - * @brief GPIO Initialization Function - * @param None - * @retval None - */ -static void MX_GPIO_Init(void) -{ - 8004b08: b580 push {r7, lr} - 8004b0a: b088 sub sp, #32 - 8004b0c: af00 add r7, sp, #0 - GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8004b0e: f107 030c add.w r3, r7, #12 - 8004b12: 2200 movs r2, #0 - 8004b14: 601a str r2, [r3, #0] - 8004b16: 605a str r2, [r3, #4] - 8004b18: 609a str r2, [r3, #8] - 8004b1a: 60da str r2, [r3, #12] - 8004b1c: 611a str r2, [r3, #16] - - /* GPIO Ports Clock Enable */ - __HAL_RCC_GPIOF_CLK_ENABLE(); - 8004b1e: 4b18 ldr r3, [pc, #96] ; (8004b80 <_ZL12MX_GPIO_Initv+0x78>) - 8004b20: 6b1b ldr r3, [r3, #48] ; 0x30 - 8004b22: 4a17 ldr r2, [pc, #92] ; (8004b80 <_ZL12MX_GPIO_Initv+0x78>) - 8004b24: f043 0320 orr.w r3, r3, #32 - 8004b28: 6313 str r3, [r2, #48] ; 0x30 - 8004b2a: 4b15 ldr r3, [pc, #84] ; (8004b80 <_ZL12MX_GPIO_Initv+0x78>) - 8004b2c: 6b1b ldr r3, [r3, #48] ; 0x30 - 8004b2e: f003 0320 and.w r3, r3, #32 - 8004b32: 60bb str r3, [r7, #8] - 8004b34: 68bb ldr r3, [r7, #8] - __HAL_RCC_GPIOD_CLK_ENABLE(); - 8004b36: 4b12 ldr r3, [pc, #72] ; (8004b80 <_ZL12MX_GPIO_Initv+0x78>) - 8004b38: 6b1b ldr r3, [r3, #48] ; 0x30 - 8004b3a: 4a11 ldr r2, [pc, #68] ; (8004b80 <_ZL12MX_GPIO_Initv+0x78>) - 8004b3c: f043 0308 orr.w r3, r3, #8 - 8004b40: 6313 str r3, [r2, #48] ; 0x30 - 8004b42: 4b0f ldr r3, [pc, #60] ; (8004b80 <_ZL12MX_GPIO_Initv+0x78>) - 8004b44: 6b1b ldr r3, [r3, #48] ; 0x30 - 8004b46: f003 0308 and.w r3, r3, #8 - 8004b4a: 607b str r3, [r7, #4] - 8004b4c: 687b ldr r3, [r7, #4] - - /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOF, GPIO_PIN_15, GPIO_PIN_RESET); - 8004b4e: 2200 movs r2, #0 - 8004b50: f44f 4100 mov.w r1, #32768 ; 0x8000 - 8004b54: 480b ldr r0, [pc, #44] ; (8004b84 <_ZL12MX_GPIO_Initv+0x7c>) - 8004b56: f7fc fbcb bl 80012f0 - - /*Configure GPIO pin : PF15 */ - GPIO_InitStruct.Pin = GPIO_PIN_15; - 8004b5a: f44f 4300 mov.w r3, #32768 ; 0x8000 - 8004b5e: 60fb str r3, [r7, #12] - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - 8004b60: 2301 movs r3, #1 - 8004b62: 613b str r3, [r7, #16] - GPIO_InitStruct.Pull = GPIO_NOPULL; - 8004b64: 2300 movs r3, #0 - 8004b66: 617b str r3, [r7, #20] - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - 8004b68: 2300 movs r3, #0 - 8004b6a: 61bb str r3, [r7, #24] - HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); - 8004b6c: f107 030c add.w r3, r7, #12 - 8004b70: 4619 mov r1, r3 - 8004b72: 4804 ldr r0, [pc, #16] ; (8004b84 <_ZL12MX_GPIO_Initv+0x7c>) - 8004b74: f7fc fa12 bl 8000f9c - -} - 8004b78: bf00 nop - 8004b7a: 3720 adds r7, #32 - 8004b7c: 46bd mov sp, r7 - 8004b7e: bd80 pop {r7, pc} - 8004b80: 40023800 .word 0x40023800 - 8004b84: 40021400 .word 0x40021400 - -08004b88 : -/** - * @brief This function is executed in case of error occurrence. - * @retval None - */ -void Error_Handler(void) -{ - 8004b88: b480 push {r7} - 8004b8a: af00 add r7, sp, #0 - /* USER CODE BEGIN Error_Handler_Debug */ - /* User can add his own implementation to report the HAL error return state */ +08004b06 <_ZN13STM32Hardware4timeEv>: - /* USER CODE END Error_Handler_Debug */ + unsigned long time(){ return HAL_GetTick(); } + 8004b06: b580 push {r7, lr} + 8004b08: b082 sub sp, #8 + 8004b0a: af00 add r7, sp, #0 + 8004b0c: 6078 str r0, [r7, #4] + 8004b0e: f7fb fd6d bl 80005ec + 8004b12: 4603 mov r3, r0 + 8004b14: 4618 mov r0, r3 + 8004b16: 3708 adds r7, #8 + 8004b18: 46bd mov sp, r7 + 8004b1a: bd80 pop {r7, pc} + +08004b1c : +#include "mainpp.h" + +ros::Subscriber led_sub("led", &led_cb); +ros::NodeHandle nh; + +void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { + 8004b1c: b580 push {r7, lr} + 8004b1e: b082 sub sp, #8 + 8004b20: af00 add r7, sp, #0 + 8004b22: 6078 str r0, [r7, #4] + nh.getHardware()->flush(); + 8004b24: 4805 ldr r0, [pc, #20] ; (8004b3c ) + 8004b26: f000 f95f bl 8004de8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE11getHardwareEv> + 8004b2a: 4603 mov r3, r0 + 8004b2c: 4618 mov r0, r3 + 8004b2e: f7ff ff4b bl 80049c8 <_ZN13STM32Hardware5flushEv> +} + 8004b32: bf00 nop + 8004b34: 3708 adds r7, #8 + 8004b36: 46bd mov sp, r7 + 8004b38: bd80 pop {r7, pc} + 8004b3a: bf00 nop + 8004b3c: 20000230 .word 0x20000230 + +08004b40 : + +void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { + 8004b40: b580 push {r7, lr} + 8004b42: b082 sub sp, #8 + 8004b44: af00 add r7, sp, #0 + 8004b46: 6078 str r0, [r7, #4] + nh.getHardware()->reset_rbuf(); + 8004b48: 4805 ldr r0, [pc, #20] ; (8004b60 ) + 8004b4a: f000 f94d bl 8004de8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE11getHardwareEv> + 8004b4e: 4603 mov r3, r0 + 8004b50: 4618 mov r0, r3 + 8004b52: f7ff fefb bl 800494c <_ZN13STM32Hardware10reset_rbufEv> +} + 8004b56: bf00 nop + 8004b58: 3708 adds r7, #8 + 8004b5a: 46bd mov sp, r7 + 8004b5c: bd80 pop {r7, pc} + 8004b5e: bf00 nop + 8004b60: 20000230 .word 0x20000230 + +08004b64 <_Z5setupv>: + +void setup(void) { + 8004b64: b580 push {r7, lr} + 8004b66: af00 add r7, sp, #0 + nh.initNode(); + 8004b68: 4804 ldr r0, [pc, #16] ; (8004b7c <_Z5setupv+0x18>) + 8004b6a: f000 f949 bl 8004e00 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8initNodeEv> + nh.subscribe(led_sub); + 8004b6e: 4904 ldr r1, [pc, #16] ; (8004b80 <_Z5setupv+0x1c>) + 8004b70: 4802 ldr r0, [pc, #8] ; (8004b7c <_Z5setupv+0x18>) + 8004b72: f000 f962 bl 8004e3a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9subscribeINS_10SubscriberIN8std_msgs5UInt8EvEEEEbRT_> } - 8004b8c: bf00 nop - 8004b8e: 46bd mov sp, r7 - 8004b90: f85d 7b04 ldr.w r7, [sp], #4 - 8004b94: 4770 bx lr + 8004b76: bf00 nop + 8004b78: bd80 pop {r7, pc} + 8004b7a: bf00 nop + 8004b7c: 20000230 .word 0x20000230 + 8004b80: 20000214 .word 0x20000214 + +08004b84 <_Z4loopv>: + +void loop(void) { + 8004b84: b580 push {r7, lr} + 8004b86: af00 add r7, sp, #0 + nh.spinOnce(); + 8004b88: 4804 ldr r0, [pc, #16] ; (8004b9c <_Z4loopv+0x18>) + 8004b8a: f000 f983 bl 8004e94 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv> + HAL_Delay(1000); + 8004b8e: f44f 707a mov.w r0, #1000 ; 0x3e8 + 8004b92: f7fb fd37 bl 8000604 +} + 8004b96: bf00 nop + 8004b98: bd80 pop {r7, pc} + 8004b9a: bf00 nop + 8004b9c: 20000230 .word 0x20000230 + +08004ba0 <_Z6led_cbRKN8std_msgs5UInt8E>: + +void led_cb(const std_msgs::UInt8& msg) { + 8004ba0: b580 push {r7, lr} + 8004ba2: b084 sub sp, #16 + 8004ba4: af00 add r7, sp, #0 + 8004ba6: 6078 str r0, [r7, #4] + int i = msg.data; + 8004ba8: 687b ldr r3, [r7, #4] + 8004baa: 791b ldrb r3, [r3, #4] + 8004bac: 60fb str r3, [r7, #12] + HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_15); + 8004bae: f44f 4100 mov.w r1, #32768 ; 0x8000 + 8004bb2: 4808 ldr r0, [pc, #32] ; (8004bd4 <_Z6led_cbRKN8std_msgs5UInt8E+0x34>) + 8004bb4: f7fc fbb5 bl 8001322 + HAL_Delay(500); + 8004bb8: f44f 70fa mov.w r0, #500 ; 0x1f4 + 8004bbc: f7fb fd22 bl 8000604 + HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_15); + 8004bc0: f44f 4100 mov.w r1, #32768 ; 0x8000 + 8004bc4: 4803 ldr r0, [pc, #12] ; (8004bd4 <_Z6led_cbRKN8std_msgs5UInt8E+0x34>) + 8004bc6: f7fc fbac bl 8001322 -08004b96 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_>: +} + 8004bca: bf00 nop + 8004bcc: 3710 adds r7, #16 + 8004bce: 46bd mov sp, r7 + 8004bd0: bd80 pop {r7, pc} + 8004bd2: bf00 nop + 8004bd4: 40021400 .word 0x40021400 + +08004bd8 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_>: return 8; } // Copy data from variable into a byte array template static void varToArr(A arr, const V var) - 8004b96: b480 push {r7} - 8004b98: b085 sub sp, #20 - 8004b9a: af00 add r7, sp, #0 - 8004b9c: 6078 str r0, [r7, #4] - 8004b9e: 6039 str r1, [r7, #0] + 8004bd8: b480 push {r7} + 8004bda: b085 sub sp, #20 + 8004bdc: af00 add r7, sp, #0 + 8004bde: 6078 str r0, [r7, #4] + 8004be0: 6039 str r1, [r7, #0] { for (size_t i = 0; i < sizeof(V); i++) - 8004ba0: 2300 movs r3, #0 - 8004ba2: 60fb str r3, [r7, #12] - 8004ba4: 68fb ldr r3, [r7, #12] - 8004ba6: 2b03 cmp r3, #3 - 8004ba8: d80d bhi.n 8004bc6 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_+0x30> + 8004be2: 2300 movs r3, #0 + 8004be4: 60fb str r3, [r7, #12] + 8004be6: 68fb ldr r3, [r7, #12] + 8004be8: 2b03 cmp r3, #3 + 8004bea: d80d bhi.n 8004c08 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_+0x30> arr[i] = (var >> (8 * i)); - 8004baa: 68fb ldr r3, [r7, #12] - 8004bac: 00db lsls r3, r3, #3 - 8004bae: 683a ldr r2, [r7, #0] - 8004bb0: fa22 f103 lsr.w r1, r2, r3 - 8004bb4: 687a ldr r2, [r7, #4] - 8004bb6: 68fb ldr r3, [r7, #12] - 8004bb8: 4413 add r3, r2 - 8004bba: b2ca uxtb r2, r1 - 8004bbc: 701a strb r2, [r3, #0] + 8004bec: 68fb ldr r3, [r7, #12] + 8004bee: 00db lsls r3, r3, #3 + 8004bf0: 683a ldr r2, [r7, #0] + 8004bf2: fa22 f103 lsr.w r1, r2, r3 + 8004bf6: 687a ldr r2, [r7, #4] + 8004bf8: 68fb ldr r3, [r7, #12] + 8004bfa: 4413 add r3, r2 + 8004bfc: b2ca uxtb r2, r1 + 8004bfe: 701a strb r2, [r3, #0] for (size_t i = 0; i < sizeof(V); i++) - 8004bbe: 68fb ldr r3, [r7, #12] - 8004bc0: 3301 adds r3, #1 - 8004bc2: 60fb str r3, [r7, #12] - 8004bc4: e7ee b.n 8004ba4 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_+0xe> + 8004c00: 68fb ldr r3, [r7, #12] + 8004c02: 3301 adds r3, #1 + 8004c04: 60fb str r3, [r7, #12] + 8004c06: e7ee b.n 8004be6 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_+0xe> } - 8004bc6: bf00 nop - 8004bc8: 3714 adds r7, #20 - 8004bca: 46bd mov sp, r7 - 8004bcc: f85d 7b04 ldr.w r7, [sp], #4 - 8004bd0: 4770 bx lr + 8004c08: bf00 nop + 8004c0a: 3714 adds r7, #20 + 8004c0c: 46bd mov sp, r7 + 8004c0e: f85d 7b04 ldr.w r7, [sp], #4 + 8004c12: 4770 bx lr -08004bd2 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_>: +08004c14 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_>: // Copy data from a byte array into variable template static void arrToVar(V& var, const A arr) - 8004bd2: b480 push {r7} - 8004bd4: b085 sub sp, #20 - 8004bd6: af00 add r7, sp, #0 - 8004bd8: 6078 str r0, [r7, #4] - 8004bda: 6039 str r1, [r7, #0] + 8004c14: b480 push {r7} + 8004c16: b085 sub sp, #20 + 8004c18: af00 add r7, sp, #0 + 8004c1a: 6078 str r0, [r7, #4] + 8004c1c: 6039 str r1, [r7, #0] { var = 0; - 8004bdc: 687b ldr r3, [r7, #4] - 8004bde: 2200 movs r2, #0 - 8004be0: 601a str r2, [r3, #0] + 8004c1e: 687b ldr r3, [r7, #4] + 8004c20: 2200 movs r2, #0 + 8004c22: 601a str r2, [r3, #0] for (size_t i = 0; i < sizeof(V); i++) - 8004be2: 2300 movs r3, #0 - 8004be4: 60fb str r3, [r7, #12] - 8004be6: 68fb ldr r3, [r7, #12] - 8004be8: 2b03 cmp r3, #3 - 8004bea: d811 bhi.n 8004c10 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_+0x3e> + 8004c24: 2300 movs r3, #0 + 8004c26: 60fb str r3, [r7, #12] + 8004c28: 68fb ldr r3, [r7, #12] + 8004c2a: 2b03 cmp r3, #3 + 8004c2c: d811 bhi.n 8004c52 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_+0x3e> var |= (arr[i] << (8 * i)); - 8004bec: 687b ldr r3, [r7, #4] - 8004bee: 681b ldr r3, [r3, #0] - 8004bf0: 6839 ldr r1, [r7, #0] - 8004bf2: 68fa ldr r2, [r7, #12] - 8004bf4: 440a add r2, r1 - 8004bf6: 7812 ldrb r2, [r2, #0] - 8004bf8: 4611 mov r1, r2 - 8004bfa: 68fa ldr r2, [r7, #12] - 8004bfc: 00d2 lsls r2, r2, #3 - 8004bfe: fa01 f202 lsl.w r2, r1, r2 - 8004c02: 431a orrs r2, r3 - 8004c04: 687b ldr r3, [r7, #4] - 8004c06: 601a str r2, [r3, #0] + 8004c2e: 687b ldr r3, [r7, #4] + 8004c30: 681b ldr r3, [r3, #0] + 8004c32: 6839 ldr r1, [r7, #0] + 8004c34: 68fa ldr r2, [r7, #12] + 8004c36: 440a add r2, r1 + 8004c38: 7812 ldrb r2, [r2, #0] + 8004c3a: 4611 mov r1, r2 + 8004c3c: 68fa ldr r2, [r7, #12] + 8004c3e: 00d2 lsls r2, r2, #3 + 8004c40: fa01 f202 lsl.w r2, r1, r2 + 8004c44: 431a orrs r2, r3 + 8004c46: 687b ldr r3, [r7, #4] + 8004c48: 601a str r2, [r3, #0] for (size_t i = 0; i < sizeof(V); i++) - 8004c08: 68fb ldr r3, [r7, #12] - 8004c0a: 3301 adds r3, #1 - 8004c0c: 60fb str r3, [r7, #12] - 8004c0e: e7ea b.n 8004be6 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_+0x14> - } - 8004c10: bf00 nop - 8004c12: 3714 adds r7, #20 - 8004c14: 46bd mov sp, r7 - 8004c16: f85d 7b04 ldr.w r7, [sp], #4 - 8004c1a: 4770 bx lr + 8004c4a: 68fb ldr r3, [r7, #12] + 8004c4c: 3301 adds r3, #1 + 8004c4e: 60fb str r3, [r7, #12] + 8004c50: e7ea b.n 8004c28 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_+0x14> + } + 8004c52: bf00 nop + 8004c54: 3714 adds r7, #20 + 8004c56: 46bd mov sp, r7 + 8004c58: f85d 7b04 ldr.w r7, [sp], #4 + 8004c5c: 4770 bx lr + ... -08004c1c <_ZN3ros11Subscriber_C1Ev>: +08004c60 <_ZN3ros11Subscriber_C1Ev>: namespace ros { /* Base class for objects subscribers. */ class Subscriber_ - 8004c1c: b480 push {r7} - 8004c1e: b083 sub sp, #12 - 8004c20: af00 add r7, sp, #0 - 8004c22: 6078 str r0, [r7, #4] - 8004c24: 4a04 ldr r2, [pc, #16] ; (8004c38 <_ZN3ros11Subscriber_C1Ev+0x1c>) - 8004c26: 687b ldr r3, [r7, #4] - 8004c28: 601a str r2, [r3, #0] - 8004c2a: 687b ldr r3, [r7, #4] - 8004c2c: 4618 mov r0, r3 - 8004c2e: 370c adds r7, #12 - 8004c30: 46bd mov sp, r7 - 8004c32: f85d 7b04 ldr.w r7, [sp], #4 - 8004c36: 4770 bx lr - 8004c38: 08006060 .word 0x08006060 - -08004c3c <_ZN3ros10SubscriberIN8std_msgs5UInt8EvEC1EPKcPFvRKS2_Ei>: + 8004c60: b480 push {r7} + 8004c62: b083 sub sp, #12 + 8004c64: af00 add r7, sp, #0 + 8004c66: 6078 str r0, [r7, #4] + 8004c68: 4a04 ldr r2, [pc, #16] ; (8004c7c <_ZN3ros11Subscriber_C1Ev+0x1c>) + 8004c6a: 687b ldr r3, [r7, #4] + 8004c6c: 601a str r2, [r3, #0] + 8004c6e: 687b ldr r3, [r7, #4] + 8004c70: 4618 mov r0, r3 + 8004c72: 370c adds r7, #12 + 8004c74: 46bd mov sp, r7 + 8004c76: f85d 7b04 ldr.w r7, [sp], #4 + 8004c7a: 4770 bx lr + 8004c7c: 080060c4 .word 0x080060c4 + +08004c80 <_ZN3ros10SubscriberIN8std_msgs5UInt8EvEC1EPKcPFvRKS2_Ei>: { public: typedef void(*CallbackT)(const MsgT&); MsgT msg; Subscriber(const char * topic_name, CallbackT cb, int endpoint = rosserial_msgs::TopicInfo::ID_SUBSCRIBER) : - 8004c3c: b580 push {r7, lr} - 8004c3e: b084 sub sp, #16 - 8004c40: af00 add r7, sp, #0 - 8004c42: 60f8 str r0, [r7, #12] - 8004c44: 60b9 str r1, [r7, #8] - 8004c46: 607a str r2, [r7, #4] - 8004c48: 603b str r3, [r7, #0] + 8004c80: b580 push {r7, lr} + 8004c82: b084 sub sp, #16 + 8004c84: af00 add r7, sp, #0 + 8004c86: 60f8 str r0, [r7, #12] + 8004c88: 60b9 str r1, [r7, #8] + 8004c8a: 607a str r2, [r7, #4] + 8004c8c: 603b str r3, [r7, #0] cb_(cb), endpoint_(endpoint) - 8004c4a: 68fb ldr r3, [r7, #12] - 8004c4c: 4618 mov r0, r3 - 8004c4e: f7ff ffe5 bl 8004c1c <_ZN3ros11Subscriber_C1Ev> - 8004c52: 4a0b ldr r2, [pc, #44] ; (8004c80 <_ZN3ros10SubscriberIN8std_msgs5UInt8EvEC1EPKcPFvRKS2_Ei+0x44>) - 8004c54: 68fb ldr r3, [r7, #12] - 8004c56: 601a str r2, [r3, #0] - 8004c58: 68fb ldr r3, [r7, #12] - 8004c5a: 330c adds r3, #12 - 8004c5c: 4618 mov r0, r3 - 8004c5e: f7fe fe07 bl 8003870 <_ZN8std_msgs5UInt8C1Ev> - 8004c62: 68fb ldr r3, [r7, #12] - 8004c64: 687a ldr r2, [r7, #4] - 8004c66: 615a str r2, [r3, #20] - 8004c68: 68fb ldr r3, [r7, #12] - 8004c6a: 683a ldr r2, [r7, #0] - 8004c6c: 619a str r2, [r3, #24] + 8004c8e: 68fb ldr r3, [r7, #12] + 8004c90: 4618 mov r0, r3 + 8004c92: f7ff ffe5 bl 8004c60 <_ZN3ros11Subscriber_C1Ev> + 8004c96: 4a0b ldr r2, [pc, #44] ; (8004cc4 <_ZN3ros10SubscriberIN8std_msgs5UInt8EvEC1EPKcPFvRKS2_Ei+0x44>) + 8004c98: 68fb ldr r3, [r7, #12] + 8004c9a: 601a str r2, [r3, #0] + 8004c9c: 68fb ldr r3, [r7, #12] + 8004c9e: 330c adds r3, #12 + 8004ca0: 4618 mov r0, r3 + 8004ca2: f7fe ff6b bl 8003b7c <_ZN8std_msgs5UInt8C1Ev> + 8004ca6: 68fb ldr r3, [r7, #12] + 8004ca8: 687a ldr r2, [r7, #4] + 8004caa: 615a str r2, [r3, #20] + 8004cac: 68fb ldr r3, [r7, #12] + 8004cae: 683a ldr r2, [r7, #0] + 8004cb0: 619a str r2, [r3, #24] { topic_ = topic_name; - 8004c6e: 68fb ldr r3, [r7, #12] - 8004c70: 68ba ldr r2, [r7, #8] - 8004c72: 609a str r2, [r3, #8] + 8004cb2: 68fb ldr r3, [r7, #12] + 8004cb4: 68ba ldr r2, [r7, #8] + 8004cb6: 609a str r2, [r3, #8] }; - 8004c74: 68fb ldr r3, [r7, #12] - 8004c76: 4618 mov r0, r3 - 8004c78: 3710 adds r7, #16 - 8004c7a: 46bd mov sp, r7 - 8004c7c: bd80 pop {r7, pc} - 8004c7e: bf00 nop - 8004c80: 08006048 .word 0x08006048 - -08004c84 <_ZN3ros15NodeHandleBase_C1Ev>: + 8004cb8: 68fb ldr r3, [r7, #12] + 8004cba: 4618 mov r0, r3 + 8004cbc: 3710 adds r7, #16 + 8004cbe: 46bd mov sp, r7 + 8004cc0: bd80 pop {r7, pc} + 8004cc2: bf00 nop + 8004cc4: 080060ac .word 0x080060ac + +08004cc8 <_ZN3ros15NodeHandleBase_C1Ev>: #include "ros/msg.h" namespace ros { class NodeHandleBase_ - 8004c84: b480 push {r7} - 8004c86: b083 sub sp, #12 - 8004c88: af00 add r7, sp, #0 - 8004c8a: 6078 str r0, [r7, #4] - 8004c8c: 4a04 ldr r2, [pc, #16] ; (8004ca0 <_ZN3ros15NodeHandleBase_C1Ev+0x1c>) - 8004c8e: 687b ldr r3, [r7, #4] - 8004c90: 601a str r2, [r3, #0] - 8004c92: 687b ldr r3, [r7, #4] - 8004c94: 4618 mov r0, r3 - 8004c96: 370c adds r7, #12 - 8004c98: 46bd mov sp, r7 - 8004c9a: f85d 7b04 ldr.w r7, [sp], #4 - 8004c9e: 4770 bx lr - 8004ca0: 08006078 .word 0x08006078 - -08004ca4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev>: + 8004cc8: b480 push {r7} + 8004cca: b083 sub sp, #12 + 8004ccc: af00 add r7, sp, #0 + 8004cce: 6078 str r0, [r7, #4] + 8004cd0: 4a04 ldr r2, [pc, #16] ; (8004ce4 <_ZN3ros15NodeHandleBase_C1Ev+0x1c>) + 8004cd2: 687b ldr r3, [r7, #4] + 8004cd4: 601a str r2, [r3, #0] + 8004cd6: 687b ldr r3, [r7, #4] + 8004cd8: 4618 mov r0, r3 + 8004cda: 370c adds r7, #12 + 8004cdc: 46bd mov sp, r7 + 8004cde: f85d 7b04 ldr.w r7, [sp], #4 + 8004ce2: 4770 bx lr + 8004ce4: 080060dc .word 0x080060dc + +08004ce8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev>: /* * Setup Functions */ public: NodeHandle_() : configured_(false) - 8004ca4: b580 push {r7, lr} - 8004ca6: b086 sub sp, #24 - 8004ca8: af00 add r7, sp, #0 - 8004caa: 6078 str r0, [r7, #4] - 8004cac: 687b ldr r3, [r7, #4] - 8004cae: 4618 mov r0, r3 - 8004cb0: f7ff ffe8 bl 8004c84 <_ZN3ros15NodeHandleBase_C1Ev> - 8004cb4: 4a3a ldr r2, [pc, #232] ; (8004da0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0xfc>) - 8004cb6: 687b ldr r3, [r7, #4] - 8004cb8: 601a str r2, [r3, #0] - 8004cba: 687b ldr r3, [r7, #4] - 8004cbc: 3304 adds r3, #4 - 8004cbe: 4618 mov r0, r3 - 8004cc0: f7ff fc8c bl 80045dc <_ZN13STM32HardwareC1Ev> - 8004cc4: 687b ldr r3, [r7, #4] - 8004cc6: 2200 movs r2, #0 - 8004cc8: f883 2684 strb.w r2, [r3, #1668] ; 0x684 - 8004ccc: 687b ldr r3, [r7, #4] - 8004cce: f503 63d3 add.w r3, r3, #1688 ; 0x698 - 8004cd2: 4618 mov r0, r3 - 8004cd4: f7ff f9a2 bl 800401c <_ZN14rosserial_msgs20RequestParamResponseC1Ev> + 8004ce8: b580 push {r7, lr} + 8004cea: b086 sub sp, #24 + 8004cec: af00 add r7, sp, #0 + 8004cee: 6078 str r0, [r7, #4] + 8004cf0: 687b ldr r3, [r7, #4] + 8004cf2: 4618 mov r0, r3 + 8004cf4: f7ff ffe8 bl 8004cc8 <_ZN3ros15NodeHandleBase_C1Ev> + 8004cf8: 4a3a ldr r2, [pc, #232] ; (8004de4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0xfc>) + 8004cfa: 687b ldr r3, [r7, #4] + 8004cfc: 601a str r2, [r3, #0] + 8004cfe: 687b ldr r3, [r7, #4] + 8004d00: 3304 adds r3, #4 + 8004d02: 4618 mov r0, r3 + 8004d04: f7ff fdf0 bl 80048e8 <_ZN13STM32HardwareC1Ev> + 8004d08: 687b ldr r3, [r7, #4] + 8004d0a: 2200 movs r2, #0 + 8004d0c: f883 2684 strb.w r2, [r3, #1668] ; 0x684 + 8004d10: 687b ldr r3, [r7, #4] + 8004d12: f503 63d3 add.w r3, r3, #1688 ; 0x698 + 8004d16: 4618 mov r0, r3 + 8004d18: f7ff fb06 bl 8004328 <_ZN14rosserial_msgs20RequestParamResponseC1Ev> { for (unsigned int i = 0; i < MAX_PUBLISHERS; i++) - 8004cd8: 2300 movs r3, #0 - 8004cda: 617b str r3, [r7, #20] - 8004cdc: 697b ldr r3, [r7, #20] - 8004cde: 2b18 cmp r3, #24 - 8004ce0: d80a bhi.n 8004cf8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x54> + 8004d1c: 2300 movs r3, #0 + 8004d1e: 617b str r3, [r7, #20] + 8004d20: 697b ldr r3, [r7, #20] + 8004d22: 2b18 cmp r3, #24 + 8004d24: d80a bhi.n 8004d3c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x54> publishers[i] = 0; - 8004ce2: 687b ldr r3, [r7, #4] - 8004ce4: 697a ldr r2, [r7, #20] - 8004ce6: f502 72b5 add.w r2, r2, #362 ; 0x16a - 8004cea: 2100 movs r1, #0 - 8004cec: f843 1022 str.w r1, [r3, r2, lsl #2] + 8004d26: 687b ldr r3, [r7, #4] + 8004d28: 697a ldr r2, [r7, #20] + 8004d2a: f502 72b5 add.w r2, r2, #362 ; 0x16a + 8004d2e: 2100 movs r1, #0 + 8004d30: f843 1022 str.w r1, [r3, r2, lsl #2] for (unsigned int i = 0; i < MAX_PUBLISHERS; i++) - 8004cf0: 697b ldr r3, [r7, #20] - 8004cf2: 3301 adds r3, #1 - 8004cf4: 617b str r3, [r7, #20] - 8004cf6: e7f1 b.n 8004cdc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x38> + 8004d34: 697b ldr r3, [r7, #20] + 8004d36: 3301 adds r3, #1 + 8004d38: 617b str r3, [r7, #20] + 8004d3a: e7f1 b.n 8004d20 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x38> for (unsigned int i = 0; i < MAX_SUBSCRIBERS; i++) - 8004cf8: 2300 movs r3, #0 - 8004cfa: 613b str r3, [r7, #16] - 8004cfc: 693b ldr r3, [r7, #16] - 8004cfe: 2b18 cmp r3, #24 - 8004d00: d80b bhi.n 8004d1a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x76> + 8004d3c: 2300 movs r3, #0 + 8004d3e: 613b str r3, [r7, #16] + 8004d40: 693b ldr r3, [r7, #16] + 8004d42: 2b18 cmp r3, #24 + 8004d44: d80b bhi.n 8004d5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x76> subscribers[i] = 0; - 8004d02: 687a ldr r2, [r7, #4] - 8004d04: 693b ldr r3, [r7, #16] - 8004d06: f503 73c1 add.w r3, r3, #386 ; 0x182 - 8004d0a: 009b lsls r3, r3, #2 - 8004d0c: 4413 add r3, r2 - 8004d0e: 2200 movs r2, #0 - 8004d10: 605a str r2, [r3, #4] + 8004d46: 687a ldr r2, [r7, #4] + 8004d48: 693b ldr r3, [r7, #16] + 8004d4a: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8004d4e: 009b lsls r3, r3, #2 + 8004d50: 4413 add r3, r2 + 8004d52: 2200 movs r2, #0 + 8004d54: 605a str r2, [r3, #4] for (unsigned int i = 0; i < MAX_SUBSCRIBERS; i++) - 8004d12: 693b ldr r3, [r7, #16] - 8004d14: 3301 adds r3, #1 - 8004d16: 613b str r3, [r7, #16] - 8004d18: e7f0 b.n 8004cfc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x58> + 8004d56: 693b ldr r3, [r7, #16] + 8004d58: 3301 adds r3, #1 + 8004d5a: 613b str r3, [r7, #16] + 8004d5c: e7f0 b.n 8004d40 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x58> for (unsigned int i = 0; i < INPUT_SIZE; i++) - 8004d1a: 2300 movs r3, #0 - 8004d1c: 60fb str r3, [r7, #12] - 8004d1e: 68fb ldr r3, [r7, #12] - 8004d20: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 8004d24: d20a bcs.n 8004d3c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x98> + 8004d5e: 2300 movs r3, #0 + 8004d60: 60fb str r3, [r7, #12] + 8004d62: 68fb ldr r3, [r7, #12] + 8004d64: f5b3 7f00 cmp.w r3, #512 ; 0x200 + 8004d68: d20a bcs.n 8004d80 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x98> message_in[i] = 0; - 8004d26: 687a ldr r2, [r7, #4] - 8004d28: 68fb ldr r3, [r7, #12] - 8004d2a: 4413 add r3, r2 - 8004d2c: f503 73d4 add.w r3, r3, #424 ; 0x1a8 - 8004d30: 2200 movs r2, #0 - 8004d32: 701a strb r2, [r3, #0] + 8004d6a: 687a ldr r2, [r7, #4] + 8004d6c: 68fb ldr r3, [r7, #12] + 8004d6e: 4413 add r3, r2 + 8004d70: f503 73d4 add.w r3, r3, #424 ; 0x1a8 + 8004d74: 2200 movs r2, #0 + 8004d76: 701a strb r2, [r3, #0] for (unsigned int i = 0; i < INPUT_SIZE; i++) - 8004d34: 68fb ldr r3, [r7, #12] - 8004d36: 3301 adds r3, #1 - 8004d38: 60fb str r3, [r7, #12] - 8004d3a: e7f0 b.n 8004d1e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x7a> + 8004d78: 68fb ldr r3, [r7, #12] + 8004d7a: 3301 adds r3, #1 + 8004d7c: 60fb str r3, [r7, #12] + 8004d7e: e7f0 b.n 8004d62 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x7a> for (unsigned int i = 0; i < OUTPUT_SIZE; i++) - 8004d3c: 2300 movs r3, #0 - 8004d3e: 60bb str r3, [r7, #8] - 8004d40: 68bb ldr r3, [r7, #8] - 8004d42: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 8004d46: d20a bcs.n 8004d5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0xba> + 8004d80: 2300 movs r3, #0 + 8004d82: 60bb str r3, [r7, #8] + 8004d84: 68bb ldr r3, [r7, #8] + 8004d86: f5b3 7f00 cmp.w r3, #512 ; 0x200 + 8004d8a: d20a bcs.n 8004da2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0xba> message_out[i] = 0; - 8004d48: 687a ldr r2, [r7, #4] - 8004d4a: 68bb ldr r3, [r7, #8] - 8004d4c: 4413 add r3, r2 - 8004d4e: f503 736a add.w r3, r3, #936 ; 0x3a8 - 8004d52: 2200 movs r2, #0 - 8004d54: 701a strb r2, [r3, #0] + 8004d8c: 687a ldr r2, [r7, #4] + 8004d8e: 68bb ldr r3, [r7, #8] + 8004d90: 4413 add r3, r2 + 8004d92: f503 736a add.w r3, r3, #936 ; 0x3a8 + 8004d96: 2200 movs r2, #0 + 8004d98: 701a strb r2, [r3, #0] for (unsigned int i = 0; i < OUTPUT_SIZE; i++) - 8004d56: 68bb ldr r3, [r7, #8] - 8004d58: 3301 adds r3, #1 - 8004d5a: 60bb str r3, [r7, #8] - 8004d5c: e7f0 b.n 8004d40 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x9c> + 8004d9a: 68bb ldr r3, [r7, #8] + 8004d9c: 3301 adds r3, #1 + 8004d9e: 60bb str r3, [r7, #8] + 8004da0: e7f0 b.n 8004d84 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x9c> req_param_resp.ints_length = 0; - 8004d5e: 687b ldr r3, [r7, #4] - 8004d60: 2200 movs r2, #0 - 8004d62: f8c3 269c str.w r2, [r3, #1692] ; 0x69c + 8004da2: 687b ldr r3, [r7, #4] + 8004da4: 2200 movs r2, #0 + 8004da6: f8c3 269c str.w r2, [r3, #1692] ; 0x69c req_param_resp.ints = NULL; - 8004d66: 687b ldr r3, [r7, #4] - 8004d68: 2200 movs r2, #0 - 8004d6a: f8c3 26a4 str.w r2, [r3, #1700] ; 0x6a4 + 8004daa: 687b ldr r3, [r7, #4] + 8004dac: 2200 movs r2, #0 + 8004dae: f8c3 26a4 str.w r2, [r3, #1700] ; 0x6a4 req_param_resp.floats_length = 0; - 8004d6e: 687b ldr r3, [r7, #4] - 8004d70: 2200 movs r2, #0 - 8004d72: f8c3 26a8 str.w r2, [r3, #1704] ; 0x6a8 + 8004db2: 687b ldr r3, [r7, #4] + 8004db4: 2200 movs r2, #0 + 8004db6: f8c3 26a8 str.w r2, [r3, #1704] ; 0x6a8 req_param_resp.floats = NULL; - 8004d76: 687b ldr r3, [r7, #4] - 8004d78: 2200 movs r2, #0 - 8004d7a: f8c3 26b0 str.w r2, [r3, #1712] ; 0x6b0 + 8004dba: 687b ldr r3, [r7, #4] + 8004dbc: 2200 movs r2, #0 + 8004dbe: f8c3 26b0 str.w r2, [r3, #1712] ; 0x6b0 req_param_resp.ints_length = 0; - 8004d7e: 687b ldr r3, [r7, #4] - 8004d80: 2200 movs r2, #0 - 8004d82: f8c3 269c str.w r2, [r3, #1692] ; 0x69c + 8004dc2: 687b ldr r3, [r7, #4] + 8004dc4: 2200 movs r2, #0 + 8004dc6: f8c3 269c str.w r2, [r3, #1692] ; 0x69c req_param_resp.ints = NULL; - 8004d86: 687b ldr r3, [r7, #4] - 8004d88: 2200 movs r2, #0 - 8004d8a: f8c3 26a4 str.w r2, [r3, #1700] ; 0x6a4 + 8004dca: 687b ldr r3, [r7, #4] + 8004dcc: 2200 movs r2, #0 + 8004dce: f8c3 26a4 str.w r2, [r3, #1700] ; 0x6a4 spin_timeout_ = 0; - 8004d8e: 687b ldr r3, [r7, #4] - 8004d90: 2200 movs r2, #0 - 8004d92: f8c3 21a4 str.w r2, [r3, #420] ; 0x1a4 + 8004dd2: 687b ldr r3, [r7, #4] + 8004dd4: 2200 movs r2, #0 + 8004dd6: f8c3 21a4 str.w r2, [r3, #420] ; 0x1a4 } - 8004d96: 687b ldr r3, [r7, #4] - 8004d98: 4618 mov r0, r3 - 8004d9a: 3718 adds r7, #24 - 8004d9c: 46bd mov sp, r7 - 8004d9e: bd80 pop {r7, pc} - 8004da0: 08006034 .word 0x08006034 + 8004dda: 687b ldr r3, [r7, #4] + 8004ddc: 4618 mov r0, r3 + 8004dde: 3718 adds r7, #24 + 8004de0: 46bd mov sp, r7 + 8004de2: bd80 pop {r7, pc} + 8004de4: 08006098 .word 0x08006098 + +08004de8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE11getHardwareEv>: -08004da4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8initNodeEv>: + Hardware* getHardware() + 8004de8: b480 push {r7} + 8004dea: b083 sub sp, #12 + 8004dec: af00 add r7, sp, #0 + 8004dee: 6078 str r0, [r7, #4] { return &hardware_; + 8004df0: 687b ldr r3, [r7, #4] + 8004df2: 3304 adds r3, #4 } + 8004df4: 4618 mov r0, r3 + 8004df6: 370c adds r7, #12 + 8004df8: 46bd mov sp, r7 + 8004dfa: f85d 7b04 ldr.w r7, [sp], #4 + 8004dfe: 4770 bx lr + +08004e00 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8initNodeEv>: /* Start serial, initialize buffers */ void initNode() - 8004da4: b580 push {r7, lr} - 8004da6: b082 sub sp, #8 - 8004da8: af00 add r7, sp, #0 - 8004daa: 6078 str r0, [r7, #4] + 8004e00: b580 push {r7, lr} + 8004e02: b082 sub sp, #8 + 8004e04: af00 add r7, sp, #0 + 8004e06: 6078 str r0, [r7, #4] { hardware_.init(); - 8004dac: 687b ldr r3, [r7, #4] - 8004dae: 3304 adds r3, #4 - 8004db0: 4618 mov r0, r3 - 8004db2: f7ff fc35 bl 8004620 <_ZN13STM32Hardware4initEv> + 8004e08: 687b ldr r3, [r7, #4] + 8004e0a: 3304 adds r3, #4 + 8004e0c: 4618 mov r0, r3 + 8004e0e: f7ff fd8d bl 800492c <_ZN13STM32Hardware4initEv> mode_ = 0; - 8004db6: 687b ldr r3, [r7, #4] - 8004db8: 2200 movs r2, #0 - 8004dba: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8004e12: 687b ldr r3, [r7, #4] + 8004e14: 2200 movs r2, #0 + 8004e16: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 bytes_ = 0; - 8004dbe: 687b ldr r3, [r7, #4] - 8004dc0: 2200 movs r2, #0 - 8004dc2: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 + 8004e1a: 687b ldr r3, [r7, #4] + 8004e1c: 2200 movs r2, #0 + 8004e1e: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 index_ = 0; - 8004dc6: 687b ldr r3, [r7, #4] - 8004dc8: 2200 movs r2, #0 - 8004dca: f8c3 267c str.w r2, [r3, #1660] ; 0x67c + 8004e22: 687b ldr r3, [r7, #4] + 8004e24: 2200 movs r2, #0 + 8004e26: f8c3 267c str.w r2, [r3, #1660] ; 0x67c topic_ = 0; - 8004dce: 687b ldr r3, [r7, #4] - 8004dd0: 2200 movs r2, #0 - 8004dd2: f8c3 2678 str.w r2, [r3, #1656] ; 0x678 + 8004e2a: 687b ldr r3, [r7, #4] + 8004e2c: 2200 movs r2, #0 + 8004e2e: f8c3 2678 str.w r2, [r3, #1656] ; 0x678 }; - 8004dd6: bf00 nop - 8004dd8: 3708 adds r7, #8 - 8004dda: 46bd mov sp, r7 - 8004ddc: bd80 pop {r7, pc} + 8004e32: bf00 nop + 8004e34: 3708 adds r7, #8 + 8004e36: 46bd mov sp, r7 + 8004e38: bd80 pop {r7, pc} -08004dde <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9subscribeINS_10SubscriberIN8std_msgs5UInt8EvEEEEbRT_>: +08004e3a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9subscribeINS_10SubscriberIN8std_msgs5UInt8EvEEEEbRT_>: return false; } /* Register a new subscriber */ template bool subscribe(SubscriberT& s) - 8004dde: b480 push {r7} - 8004de0: b085 sub sp, #20 - 8004de2: af00 add r7, sp, #0 - 8004de4: 6078 str r0, [r7, #4] - 8004de6: 6039 str r1, [r7, #0] + 8004e3a: b480 push {r7} + 8004e3c: b085 sub sp, #20 + 8004e3e: af00 add r7, sp, #0 + 8004e40: 6078 str r0, [r7, #4] + 8004e42: 6039 str r1, [r7, #0] { for (int i = 0; i < MAX_SUBSCRIBERS; i++) - 8004de8: 2300 movs r3, #0 - 8004dea: 60fb str r3, [r7, #12] - 8004dec: 68fb ldr r3, [r7, #12] - 8004dee: 2b18 cmp r3, #24 - 8004df0: dc1b bgt.n 8004e2a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9subscribeINS_10SubscriberIN8std_msgs5UInt8EvEEEEbRT_+0x4c> + 8004e44: 2300 movs r3, #0 + 8004e46: 60fb str r3, [r7, #12] + 8004e48: 68fb ldr r3, [r7, #12] + 8004e4a: 2b18 cmp r3, #24 + 8004e4c: dc1b bgt.n 8004e86 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9subscribeINS_10SubscriberIN8std_msgs5UInt8EvEEEEbRT_+0x4c> { if (subscribers[i] == 0) // empty slot - 8004df2: 687a ldr r2, [r7, #4] - 8004df4: 68fb ldr r3, [r7, #12] - 8004df6: f503 73c1 add.w r3, r3, #386 ; 0x182 - 8004dfa: 009b lsls r3, r3, #2 - 8004dfc: 4413 add r3, r2 - 8004dfe: 685b ldr r3, [r3, #4] - 8004e00: 2b00 cmp r3, #0 - 8004e02: d10e bne.n 8004e22 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9subscribeINS_10SubscriberIN8std_msgs5UInt8EvEEEEbRT_+0x44> + 8004e4e: 687a ldr r2, [r7, #4] + 8004e50: 68fb ldr r3, [r7, #12] + 8004e52: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8004e56: 009b lsls r3, r3, #2 + 8004e58: 4413 add r3, r2 + 8004e5a: 685b ldr r3, [r3, #4] + 8004e5c: 2b00 cmp r3, #0 + 8004e5e: d10e bne.n 8004e7e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9subscribeINS_10SubscriberIN8std_msgs5UInt8EvEEEEbRT_+0x44> { subscribers[i] = static_cast(&s); - 8004e04: 683a ldr r2, [r7, #0] - 8004e06: 6879 ldr r1, [r7, #4] - 8004e08: 68fb ldr r3, [r7, #12] - 8004e0a: f503 73c1 add.w r3, r3, #386 ; 0x182 - 8004e0e: 009b lsls r3, r3, #2 - 8004e10: 440b add r3, r1 - 8004e12: 605a str r2, [r3, #4] + 8004e60: 683a ldr r2, [r7, #0] + 8004e62: 6879 ldr r1, [r7, #4] + 8004e64: 68fb ldr r3, [r7, #12] + 8004e66: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8004e6a: 009b lsls r3, r3, #2 + 8004e6c: 440b add r3, r1 + 8004e6e: 605a str r2, [r3, #4] s.id_ = i + 100; - 8004e14: 68fb ldr r3, [r7, #12] - 8004e16: f103 0264 add.w r2, r3, #100 ; 0x64 - 8004e1a: 683b ldr r3, [r7, #0] - 8004e1c: 605a str r2, [r3, #4] + 8004e70: 68fb ldr r3, [r7, #12] + 8004e72: f103 0264 add.w r2, r3, #100 ; 0x64 + 8004e76: 683b ldr r3, [r7, #0] + 8004e78: 605a str r2, [r3, #4] return true; - 8004e1e: 2301 movs r3, #1 - 8004e20: e004 b.n 8004e2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9subscribeINS_10SubscriberIN8std_msgs5UInt8EvEEEEbRT_+0x4e> + 8004e7a: 2301 movs r3, #1 + 8004e7c: e004 b.n 8004e88 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9subscribeINS_10SubscriberIN8std_msgs5UInt8EvEEEEbRT_+0x4e> for (int i = 0; i < MAX_SUBSCRIBERS; i++) - 8004e22: 68fb ldr r3, [r7, #12] - 8004e24: 3301 adds r3, #1 - 8004e26: 60fb str r3, [r7, #12] - 8004e28: e7e0 b.n 8004dec <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9subscribeINS_10SubscriberIN8std_msgs5UInt8EvEEEEbRT_+0xe> + 8004e7e: 68fb ldr r3, [r7, #12] + 8004e80: 3301 adds r3, #1 + 8004e82: 60fb str r3, [r7, #12] + 8004e84: e7e0 b.n 8004e48 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9subscribeINS_10SubscriberIN8std_msgs5UInt8EvEEEEbRT_+0xe> } } return false; - 8004e2a: 2300 movs r3, #0 - } - 8004e2c: 4618 mov r0, r3 - 8004e2e: 3714 adds r7, #20 - 8004e30: 46bd mov sp, r7 - 8004e32: f85d 7b04 ldr.w r7, [sp], #4 - 8004e36: 4770 bx lr - -08004e38 <_Z41__static_initialization_and_destruction_0ii>: - 8004e38: b580 push {r7, lr} - 8004e3a: b082 sub sp, #8 - 8004e3c: af00 add r7, sp, #0 - 8004e3e: 6078 str r0, [r7, #4] - 8004e40: 6039 str r1, [r7, #0] - 8004e42: 687b ldr r3, [r7, #4] - 8004e44: 2b01 cmp r3, #1 - 8004e46: d10a bne.n 8004e5e <_Z41__static_initialization_and_destruction_0ii+0x26> - 8004e48: 683b ldr r3, [r7, #0] - 8004e4a: f64f 72ff movw r2, #65535 ; 0xffff - 8004e4e: 4293 cmp r3, r2 - 8004e50: d105 bne.n 8004e5e <_Z41__static_initialization_and_destruction_0ii+0x26> -ros::Subscriber led_sub("led", &led_cb); - 8004e52: 2301 movs r3, #1 - 8004e54: 4a04 ldr r2, [pc, #16] ; (8004e68 <_Z41__static_initialization_and_destruction_0ii+0x30>) - 8004e56: 4905 ldr r1, [pc, #20] ; (8004e6c <_Z41__static_initialization_and_destruction_0ii+0x34>) - 8004e58: 4805 ldr r0, [pc, #20] ; (8004e70 <_Z41__static_initialization_and_destruction_0ii+0x38>) - 8004e5a: f7ff feef bl 8004c3c <_ZN3ros10SubscriberIN8std_msgs5UInt8EvEC1EPKcPFvRKS2_Ei> -} - 8004e5e: bf00 nop - 8004e60: 3708 adds r7, #8 - 8004e62: 46bd mov sp, r7 - 8004e64: bd80 pop {r7, pc} - 8004e66: bf00 nop - 8004e68: 08004811 .word 0x08004811 - 8004e6c: 08005fc8 .word 0x08005fc8 - 8004e70: 20000214 .word 0x20000214 - -08004e74 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE>: - } - } - configured_ = true; - } - - virtual int publish(int id, const Msg * msg) - 8004e74: b580 push {r7, lr} - 8004e76: b088 sub sp, #32 - 8004e78: af00 add r7, sp, #0 - 8004e7a: 60f8 str r0, [r7, #12] - 8004e7c: 60b9 str r1, [r7, #8] - 8004e7e: 607a str r2, [r7, #4] - { - if (id >= 100 && !configured_) - 8004e80: 68bb ldr r3, [r7, #8] - 8004e82: 2b63 cmp r3, #99 ; 0x63 - 8004e84: dd09 ble.n 8004e9a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x26> - 8004e86: 68fb ldr r3, [r7, #12] - 8004e88: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 - 8004e8c: f083 0301 eor.w r3, r3, #1 - 8004e90: b2db uxtb r3, r3 - 8004e92: 2b00 cmp r3, #0 - 8004e94: d001 beq.n 8004e9a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x26> - return 0; - 8004e96: 2300 movs r3, #0 - 8004e98: e077 b.n 8004f8a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x116> - - /* serialize message */ - int l = msg->serialize(message_out + 7); - 8004e9a: 687b ldr r3, [r7, #4] - 8004e9c: 681b ldr r3, [r3, #0] - 8004e9e: 681b ldr r3, [r3, #0] - 8004ea0: 68fa ldr r2, [r7, #12] - 8004ea2: f502 726a add.w r2, r2, #936 ; 0x3a8 - 8004ea6: 3207 adds r2, #7 - 8004ea8: 4611 mov r1, r2 - 8004eaa: 6878 ldr r0, [r7, #4] - 8004eac: 4798 blx r3 - 8004eae: 6178 str r0, [r7, #20] - - /* setup the header */ - message_out[0] = 0xff; - 8004eb0: 68fb ldr r3, [r7, #12] - 8004eb2: 22ff movs r2, #255 ; 0xff - 8004eb4: f883 23a8 strb.w r2, [r3, #936] ; 0x3a8 - message_out[1] = PROTOCOL_VER; - 8004eb8: 68fb ldr r3, [r7, #12] - 8004eba: 22fe movs r2, #254 ; 0xfe - 8004ebc: f883 23a9 strb.w r2, [r3, #937] ; 0x3a9 - message_out[2] = (uint8_t)((uint16_t)l & 255); - 8004ec0: 697b ldr r3, [r7, #20] - 8004ec2: b2da uxtb r2, r3 - 8004ec4: 68fb ldr r3, [r7, #12] - 8004ec6: f883 23aa strb.w r2, [r3, #938] ; 0x3aa - message_out[3] = (uint8_t)((uint16_t)l >> 8); - 8004eca: 697b ldr r3, [r7, #20] - 8004ecc: b29b uxth r3, r3 - 8004ece: 121b asrs r3, r3, #8 - 8004ed0: b2da uxtb r2, r3 - 8004ed2: 68fb ldr r3, [r7, #12] - 8004ed4: f883 23ab strb.w r2, [r3, #939] ; 0x3ab - message_out[4] = 255 - ((message_out[2] + message_out[3]) % 256); - 8004ed8: 68fb ldr r3, [r7, #12] - 8004eda: f893 23aa ldrb.w r2, [r3, #938] ; 0x3aa - 8004ede: 68fb ldr r3, [r7, #12] - 8004ee0: f893 33ab ldrb.w r3, [r3, #939] ; 0x3ab - 8004ee4: 4413 add r3, r2 - 8004ee6: b2db uxtb r3, r3 - 8004ee8: 43db mvns r3, r3 - 8004eea: b2da uxtb r2, r3 - 8004eec: 68fb ldr r3, [r7, #12] - 8004eee: f883 23ac strb.w r2, [r3, #940] ; 0x3ac - message_out[5] = (uint8_t)((int16_t)id & 255); - 8004ef2: 68bb ldr r3, [r7, #8] - 8004ef4: b2da uxtb r2, r3 - 8004ef6: 68fb ldr r3, [r7, #12] - 8004ef8: f883 23ad strb.w r2, [r3, #941] ; 0x3ad - message_out[6] = (uint8_t)((int16_t)id >> 8); - 8004efc: 68bb ldr r3, [r7, #8] - 8004efe: b21b sxth r3, r3 - 8004f00: 121b asrs r3, r3, #8 - 8004f02: b2da uxtb r2, r3 - 8004f04: 68fb ldr r3, [r7, #12] - 8004f06: f883 23ae strb.w r2, [r3, #942] ; 0x3ae - - /* calculate checksum */ - int chk = 0; - 8004f0a: 2300 movs r3, #0 - 8004f0c: 61fb str r3, [r7, #28] - for (int i = 5; i < l + 7; i++) - 8004f0e: 2305 movs r3, #5 - 8004f10: 61bb str r3, [r7, #24] - 8004f12: 697b ldr r3, [r7, #20] - 8004f14: 3307 adds r3, #7 - 8004f16: 69ba ldr r2, [r7, #24] - 8004f18: 429a cmp r2, r3 - 8004f1a: da0d bge.n 8004f38 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0xc4> - chk += message_out[i]; - 8004f1c: 68fa ldr r2, [r7, #12] - 8004f1e: 69bb ldr r3, [r7, #24] - 8004f20: 4413 add r3, r2 - 8004f22: f503 736a add.w r3, r3, #936 ; 0x3a8 - 8004f26: 781b ldrb r3, [r3, #0] - 8004f28: 461a mov r2, r3 - 8004f2a: 69fb ldr r3, [r7, #28] - 8004f2c: 4413 add r3, r2 - 8004f2e: 61fb str r3, [r7, #28] - for (int i = 5; i < l + 7; i++) - 8004f30: 69bb ldr r3, [r7, #24] - 8004f32: 3301 adds r3, #1 - 8004f34: 61bb str r3, [r7, #24] - 8004f36: e7ec b.n 8004f12 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x9e> - l += 7; - 8004f38: 697b ldr r3, [r7, #20] - 8004f3a: 3307 adds r3, #7 - 8004f3c: 617b str r3, [r7, #20] - message_out[l++] = 255 - (chk % 256); - 8004f3e: 69fb ldr r3, [r7, #28] - 8004f40: 425a negs r2, r3 - 8004f42: b2db uxtb r3, r3 - 8004f44: b2d2 uxtb r2, r2 - 8004f46: bf58 it pl - 8004f48: 4253 negpl r3, r2 - 8004f4a: b2da uxtb r2, r3 - 8004f4c: 697b ldr r3, [r7, #20] - 8004f4e: 1c59 adds r1, r3, #1 - 8004f50: 6179 str r1, [r7, #20] - 8004f52: 43d2 mvns r2, r2 - 8004f54: b2d1 uxtb r1, r2 - 8004f56: 68fa ldr r2, [r7, #12] - 8004f58: 4413 add r3, r2 - 8004f5a: 460a mov r2, r1 - 8004f5c: f883 23a8 strb.w r2, [r3, #936] ; 0x3a8 - - if (l <= OUTPUT_SIZE) - 8004f60: 697b ldr r3, [r7, #20] - 8004f62: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 8004f66: dc0a bgt.n 8004f7e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x10a> - { - hardware_.write(message_out, l); - 8004f68: 68fb ldr r3, [r7, #12] - 8004f6a: 1d18 adds r0, r3, #4 - 8004f6c: 68fb ldr r3, [r7, #12] - 8004f6e: f503 736a add.w r3, r3, #936 ; 0x3a8 - 8004f72: 697a ldr r2, [r7, #20] - 8004f74: 4619 mov r1, r3 - 8004f76: f7ff fbfb bl 8004770 <_ZN13STM32Hardware5writeEPhi> - return l; - 8004f7a: 697b ldr r3, [r7, #20] - 8004f7c: e005 b.n 8004f8a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x116> - } - else - { - logerror("Message from device dropped: message larger than buffer."); - 8004f7e: 4905 ldr r1, [pc, #20] ; (8004f94 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x120>) - 8004f80: 68f8 ldr r0, [r7, #12] - 8004f82: f000 fa2f bl 80053e4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8logerrorEPKc> - return -1; - 8004f86: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - } + 8004e86: 2300 movs r3, #0 } - 8004f8a: 4618 mov r0, r3 - 8004f8c: 3720 adds r7, #32 - 8004f8e: 46bd mov sp, r7 - 8004f90: bd80 pop {r7, pc} - 8004f92: bf00 nop - 8004f94: 08005fcc .word 0x08005fcc + 8004e88: 4618 mov r0, r3 + 8004e8a: 3714 adds r7, #20 + 8004e8c: 46bd mov sp, r7 + 8004e8e: f85d 7b04 ldr.w r7, [sp], #4 + 8004e92: 4770 bx lr -08004f98 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv>: +08004e94 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv>: virtual int spinOnce() - 8004f98: b580 push {r7, lr} - 8004f9a: b084 sub sp, #16 - 8004f9c: af00 add r7, sp, #0 - 8004f9e: 6078 str r0, [r7, #4] + 8004e94: b580 push {r7, lr} + 8004e96: b084 sub sp, #16 + 8004e98: af00 add r7, sp, #0 + 8004e9a: 6078 str r0, [r7, #4] uint32_t c_time = hardware_.time(); - 8004fa0: 687b ldr r3, [r7, #4] - 8004fa2: 3304 adds r3, #4 - 8004fa4: 4618 mov r0, r3 - 8004fa6: f7ff fc28 bl 80047fa <_ZN13STM32Hardware4timeEv> - 8004faa: 60f8 str r0, [r7, #12] + 8004e9c: 687b ldr r3, [r7, #4] + 8004e9e: 3304 adds r3, #4 + 8004ea0: 4618 mov r0, r3 + 8004ea2: f7ff fe30 bl 8004b06 <_ZN13STM32Hardware4timeEv> + 8004ea6: 60f8 str r0, [r7, #12] if ((c_time - last_sync_receive_time) > (SYNC_SECONDS * 2200)) - 8004fac: 687b ldr r3, [r7, #4] - 8004fae: f8d3 368c ldr.w r3, [r3, #1676] ; 0x68c - 8004fb2: 68fa ldr r2, [r7, #12] - 8004fb4: 1ad3 subs r3, r2, r3 - 8004fb6: f642 22f8 movw r2, #11000 ; 0x2af8 - 8004fba: 4293 cmp r3, r2 - 8004fbc: d903 bls.n 8004fc6 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x2e> + 8004ea8: 687b ldr r3, [r7, #4] + 8004eaa: f8d3 368c ldr.w r3, [r3, #1676] ; 0x68c + 8004eae: 68fa ldr r2, [r7, #12] + 8004eb0: 1ad3 subs r3, r2, r3 + 8004eb2: f642 22f8 movw r2, #11000 ; 0x2af8 + 8004eb6: 4293 cmp r3, r2 + 8004eb8: d903 bls.n 8004ec2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x2e> configured_ = false; - 8004fbe: 687b ldr r3, [r7, #4] - 8004fc0: 2200 movs r2, #0 - 8004fc2: f883 2684 strb.w r2, [r3, #1668] ; 0x684 + 8004eba: 687b ldr r3, [r7, #4] + 8004ebc: 2200 movs r2, #0 + 8004ebe: f883 2684 strb.w r2, [r3, #1668] ; 0x684 if (mode_ != MODE_FIRST_FF) - 8004fc6: 687b ldr r3, [r7, #4] - 8004fc8: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 8004fcc: 2b00 cmp r3, #0 - 8004fce: d009 beq.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8004ec2: 687b ldr r3, [r7, #4] + 8004ec4: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004ec8: 2b00 cmp r3, #0 + 8004eca: d009 beq.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> if (c_time > last_msg_timeout_time) - 8004fd0: 687b ldr r3, [r7, #4] - 8004fd2: f8d3 3690 ldr.w r3, [r3, #1680] ; 0x690 - 8004fd6: 68fa ldr r2, [r7, #12] - 8004fd8: 429a cmp r2, r3 - 8004fda: d903 bls.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8004ecc: 687b ldr r3, [r7, #4] + 8004ece: f8d3 3690 ldr.w r3, [r3, #1680] ; 0x690 + 8004ed2: 68fa ldr r2, [r7, #12] + 8004ed4: 429a cmp r2, r3 + 8004ed6: d903 bls.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> mode_ = MODE_FIRST_FF; - 8004fdc: 687b ldr r3, [r7, #4] - 8004fde: 2200 movs r2, #0 - 8004fe0: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8004ed8: 687b ldr r3, [r7, #4] + 8004eda: 2200 movs r2, #0 + 8004edc: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 if (spin_timeout_ > 0) - 8004fe4: 687b ldr r3, [r7, #4] - 8004fe6: f8d3 31a4 ldr.w r3, [r3, #420] ; 0x1a4 - 8004fea: 2b00 cmp r3, #0 - 8004fec: d014 beq.n 8005018 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x80> + 8004ee0: 687b ldr r3, [r7, #4] + 8004ee2: f8d3 31a4 ldr.w r3, [r3, #420] ; 0x1a4 + 8004ee6: 2b00 cmp r3, #0 + 8004ee8: d014 beq.n 8004f14 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x80> if ((hardware_.time() - c_time) > spin_timeout_) - 8004fee: 687b ldr r3, [r7, #4] - 8004ff0: 3304 adds r3, #4 - 8004ff2: 4618 mov r0, r3 - 8004ff4: f7ff fc01 bl 80047fa <_ZN13STM32Hardware4timeEv> - 8004ff8: 4602 mov r2, r0 - 8004ffa: 68fb ldr r3, [r7, #12] - 8004ffc: 1ad2 subs r2, r2, r3 - 8004ffe: 687b ldr r3, [r7, #4] - 8005000: f8d3 31a4 ldr.w r3, [r3, #420] ; 0x1a4 - 8005004: 429a cmp r2, r3 - 8005006: bf8c ite hi - 8005008: 2301 movhi r3, #1 - 800500a: 2300 movls r3, #0 - 800500c: b2db uxtb r3, r3 - 800500e: 2b00 cmp r3, #0 - 8005010: d002 beq.n 8005018 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x80> + 8004eea: 687b ldr r3, [r7, #4] + 8004eec: 3304 adds r3, #4 + 8004eee: 4618 mov r0, r3 + 8004ef0: f7ff fe09 bl 8004b06 <_ZN13STM32Hardware4timeEv> + 8004ef4: 4602 mov r2, r0 + 8004ef6: 68fb ldr r3, [r7, #12] + 8004ef8: 1ad2 subs r2, r2, r3 + 8004efa: 687b ldr r3, [r7, #4] + 8004efc: f8d3 31a4 ldr.w r3, [r3, #420] ; 0x1a4 + 8004f00: 429a cmp r2, r3 + 8004f02: bf8c ite hi + 8004f04: 2301 movhi r3, #1 + 8004f06: 2300 movls r3, #0 + 8004f08: b2db uxtb r3, r3 + 8004f0a: 2b00 cmp r3, #0 + 8004f0c: d002 beq.n 8004f14 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x80> return SPIN_TIMEOUT; - 8005012: f06f 0301 mvn.w r3, #1 - 8005016: e197 b.n 8005348 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3b0> + 8004f0e: f06f 0301 mvn.w r3, #1 + 8004f12: e197 b.n 8005244 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3b0> int data = hardware_.read(); - 8005018: 687b ldr r3, [r7, #4] - 800501a: 3304 adds r3, #4 - 800501c: 4618 mov r0, r3 - 800501e: f7ff fb1f bl 8004660 <_ZN13STM32Hardware4readEv> - 8005022: 60b8 str r0, [r7, #8] + 8004f14: 687b ldr r3, [r7, #4] + 8004f16: 3304 adds r3, #4 + 8004f18: 4618 mov r0, r3 + 8004f1a: f7ff fd27 bl 800496c <_ZN13STM32Hardware4readEv> + 8004f1e: 60b8 str r0, [r7, #8] if (data < 0) - 8005024: 68bb ldr r3, [r7, #8] - 8005026: 2b00 cmp r3, #0 - 8005028: f2c0 8177 blt.w 800531a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x382> + 8004f20: 68bb ldr r3, [r7, #8] + 8004f22: 2b00 cmp r3, #0 + 8004f24: f2c0 8177 blt.w 8005216 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x382> checksum_ += data; - 800502c: 687b ldr r3, [r7, #4] - 800502e: f8d3 2680 ldr.w r2, [r3, #1664] ; 0x680 - 8005032: 68bb ldr r3, [r7, #8] - 8005034: 441a add r2, r3 - 8005036: 687b ldr r3, [r7, #4] - 8005038: f8c3 2680 str.w r2, [r3, #1664] ; 0x680 + 8004f28: 687b ldr r3, [r7, #4] + 8004f2a: f8d3 2680 ldr.w r2, [r3, #1664] ; 0x680 + 8004f2e: 68bb ldr r3, [r7, #8] + 8004f30: 441a add r2, r3 + 8004f32: 687b ldr r3, [r7, #4] + 8004f34: f8c3 2680 str.w r2, [r3, #1664] ; 0x680 if (mode_ == MODE_MESSAGE) /* message data being recieved */ - 800503c: 687b ldr r3, [r7, #4] - 800503e: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 8005042: 2b07 cmp r3, #7 - 8005044: d11e bne.n 8005084 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0xec> + 8004f38: 687b ldr r3, [r7, #4] + 8004f3a: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004f3e: 2b07 cmp r3, #7 + 8004f40: d11e bne.n 8004f80 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0xec> message_in[index_++] = data; - 8005046: 687b ldr r3, [r7, #4] - 8005048: f8d3 367c ldr.w r3, [r3, #1660] ; 0x67c - 800504c: 1c59 adds r1, r3, #1 - 800504e: 687a ldr r2, [r7, #4] - 8005050: f8c2 167c str.w r1, [r2, #1660] ; 0x67c - 8005054: 68ba ldr r2, [r7, #8] - 8005056: b2d1 uxtb r1, r2 - 8005058: 687a ldr r2, [r7, #4] - 800505a: 4413 add r3, r2 - 800505c: 460a mov r2, r1 - 800505e: f883 21a8 strb.w r2, [r3, #424] ; 0x1a8 + 8004f42: 687b ldr r3, [r7, #4] + 8004f44: f8d3 367c ldr.w r3, [r3, #1660] ; 0x67c + 8004f48: 1c59 adds r1, r3, #1 + 8004f4a: 687a ldr r2, [r7, #4] + 8004f4c: f8c2 167c str.w r1, [r2, #1660] ; 0x67c + 8004f50: 68ba ldr r2, [r7, #8] + 8004f52: b2d1 uxtb r1, r2 + 8004f54: 687a ldr r2, [r7, #4] + 8004f56: 4413 add r3, r2 + 8004f58: 460a mov r2, r1 + 8004f5a: f883 21a8 strb.w r2, [r3, #424] ; 0x1a8 bytes_--; - 8005062: 687b ldr r3, [r7, #4] - 8005064: f8d3 3674 ldr.w r3, [r3, #1652] ; 0x674 - 8005068: 1e5a subs r2, r3, #1 - 800506a: 687b ldr r3, [r7, #4] - 800506c: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 + 8004f5e: 687b ldr r3, [r7, #4] + 8004f60: f8d3 3674 ldr.w r3, [r3, #1652] ; 0x674 + 8004f64: 1e5a subs r2, r3, #1 + 8004f66: 687b ldr r3, [r7, #4] + 8004f68: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 if (bytes_ == 0) /* is message complete? if so, checksum */ - 8005070: 687b ldr r3, [r7, #4] - 8005072: f8d3 3674 ldr.w r3, [r3, #1652] ; 0x674 - 8005076: 2b00 cmp r3, #0 - 8005078: d1b4 bne.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8004f6c: 687b ldr r3, [r7, #4] + 8004f6e: f8d3 3674 ldr.w r3, [r3, #1652] ; 0x674 + 8004f72: 2b00 cmp r3, #0 + 8004f74: d1b4 bne.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> mode_ = MODE_MSG_CHECKSUM; - 800507a: 687b ldr r3, [r7, #4] - 800507c: 2208 movs r2, #8 - 800507e: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - 8005082: e7af b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8004f76: 687b ldr r3, [r7, #4] + 8004f78: 2208 movs r2, #8 + 8004f7a: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8004f7e: e7af b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> else if (mode_ == MODE_FIRST_FF) - 8005084: 687b ldr r3, [r7, #4] - 8005086: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800508a: 2b00 cmp r3, #0 - 800508c: d128 bne.n 80050e0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x148> + 8004f80: 687b ldr r3, [r7, #4] + 8004f82: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004f86: 2b00 cmp r3, #0 + 8004f88: d128 bne.n 8004fdc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x148> if (data == 0xff) - 800508e: 68bb ldr r3, [r7, #8] - 8005090: 2bff cmp r3, #255 ; 0xff - 8005092: d10d bne.n 80050b0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x118> + 8004f8a: 68bb ldr r3, [r7, #8] + 8004f8c: 2bff cmp r3, #255 ; 0xff + 8004f8e: d10d bne.n 8004fac <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x118> mode_++; - 8005094: 687b ldr r3, [r7, #4] - 8005096: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800509a: 1c5a adds r2, r3, #1 - 800509c: 687b ldr r3, [r7, #4] - 800509e: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8004f90: 687b ldr r3, [r7, #4] + 8004f92: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004f96: 1c5a adds r2, r3, #1 + 8004f98: 687b ldr r3, [r7, #4] + 8004f9a: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 last_msg_timeout_time = c_time + SERIAL_MSG_TIMEOUT; - 80050a2: 68fb ldr r3, [r7, #12] - 80050a4: f103 0214 add.w r2, r3, #20 - 80050a8: 687b ldr r3, [r7, #4] - 80050aa: f8c3 2690 str.w r2, [r3, #1680] ; 0x690 - 80050ae: e799 b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8004f9e: 68fb ldr r3, [r7, #12] + 8004fa0: f103 0214 add.w r2, r3, #20 + 8004fa4: 687b ldr r3, [r7, #4] + 8004fa6: f8c3 2690 str.w r2, [r3, #1680] ; 0x690 + 8004faa: e799 b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> else if (hardware_.time() - c_time > (SYNC_SECONDS * 1000)) - 80050b0: 687b ldr r3, [r7, #4] - 80050b2: 3304 adds r3, #4 - 80050b4: 4618 mov r0, r3 - 80050b6: f7ff fba0 bl 80047fa <_ZN13STM32Hardware4timeEv> - 80050ba: 4602 mov r2, r0 - 80050bc: 68fb ldr r3, [r7, #12] - 80050be: 1ad3 subs r3, r2, r3 - 80050c0: f241 3288 movw r2, #5000 ; 0x1388 - 80050c4: 4293 cmp r3, r2 - 80050c6: bf8c ite hi - 80050c8: 2301 movhi r3, #1 - 80050ca: 2300 movls r3, #0 - 80050cc: b2db uxtb r3, r3 - 80050ce: 2b00 cmp r3, #0 - 80050d0: d088 beq.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8004fac: 687b ldr r3, [r7, #4] + 8004fae: 3304 adds r3, #4 + 8004fb0: 4618 mov r0, r3 + 8004fb2: f7ff fda8 bl 8004b06 <_ZN13STM32Hardware4timeEv> + 8004fb6: 4602 mov r2, r0 + 8004fb8: 68fb ldr r3, [r7, #12] + 8004fba: 1ad3 subs r3, r2, r3 + 8004fbc: f241 3288 movw r2, #5000 ; 0x1388 + 8004fc0: 4293 cmp r3, r2 + 8004fc2: bf8c ite hi + 8004fc4: 2301 movhi r3, #1 + 8004fc6: 2300 movls r3, #0 + 8004fc8: b2db uxtb r3, r3 + 8004fca: 2b00 cmp r3, #0 + 8004fcc: d088 beq.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> configured_ = false; - 80050d2: 687b ldr r3, [r7, #4] - 80050d4: 2200 movs r2, #0 - 80050d6: f883 2684 strb.w r2, [r3, #1668] ; 0x684 + 8004fce: 687b ldr r3, [r7, #4] + 8004fd0: 2200 movs r2, #0 + 8004fd2: f883 2684 strb.w r2, [r3, #1668] ; 0x684 return SPIN_TIMEOUT; - 80050da: f06f 0301 mvn.w r3, #1 - 80050de: e133 b.n 8005348 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3b0> + 8004fd6: f06f 0301 mvn.w r3, #1 + 8004fda: e133 b.n 8005244 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3b0> else if (mode_ == MODE_PROTOCOL_VER) - 80050e0: 687b ldr r3, [r7, #4] - 80050e2: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 80050e6: 2b01 cmp r3, #1 - 80050e8: d11b bne.n 8005122 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x18a> + 8004fdc: 687b ldr r3, [r7, #4] + 8004fde: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004fe2: 2b01 cmp r3, #1 + 8004fe4: d11b bne.n 800501e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x18a> if (data == PROTOCOL_VER) - 80050ea: 68bb ldr r3, [r7, #8] - 80050ec: 2bfe cmp r3, #254 ; 0xfe - 80050ee: d107 bne.n 8005100 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x168> + 8004fe6: 68bb ldr r3, [r7, #8] + 8004fe8: 2bfe cmp r3, #254 ; 0xfe + 8004fea: d107 bne.n 8004ffc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x168> mode_++; - 80050f0: 687b ldr r3, [r7, #4] - 80050f2: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 80050f6: 1c5a adds r2, r3, #1 - 80050f8: 687b ldr r3, [r7, #4] - 80050fa: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - 80050fe: e771 b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8004fec: 687b ldr r3, [r7, #4] + 8004fee: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004ff2: 1c5a adds r2, r3, #1 + 8004ff4: 687b ldr r3, [r7, #4] + 8004ff6: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8004ffa: e771 b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> mode_ = MODE_FIRST_FF; - 8005100: 687b ldr r3, [r7, #4] - 8005102: 2200 movs r2, #0 - 8005104: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8004ffc: 687b ldr r3, [r7, #4] + 8004ffe: 2200 movs r2, #0 + 8005000: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 if (configured_ == false) - 8005108: 687b ldr r3, [r7, #4] - 800510a: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 - 800510e: f083 0301 eor.w r3, r3, #1 - 8005112: b2db uxtb r3, r3 - 8005114: 2b00 cmp r3, #0 - 8005116: f43f af65 beq.w 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8005004: 687b ldr r3, [r7, #4] + 8005006: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 + 800500a: f083 0301 eor.w r3, r3, #1 + 800500e: b2db uxtb r3, r3 + 8005010: 2b00 cmp r3, #0 + 8005012: f43f af65 beq.w 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> requestSyncTime(); /* send a msg back showing our protocol version */ - 800511a: 6878 ldr r0, [r7, #4] - 800511c: f000 f970 bl 8005400 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv> - 8005120: e760 b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8005016: 6878 ldr r0, [r7, #4] + 8005018: f000 f918 bl 800524c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv> + 800501c: e760 b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> else if (mode_ == MODE_SIZE_L) /* bottom half of message size */ - 8005122: 687b ldr r3, [r7, #4] - 8005124: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 8005128: 2b02 cmp r3, #2 - 800512a: d113 bne.n 8005154 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x1bc> + 800501e: 687b ldr r3, [r7, #4] + 8005020: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8005024: 2b02 cmp r3, #2 + 8005026: d113 bne.n 8005050 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x1bc> bytes_ = data; - 800512c: 687b ldr r3, [r7, #4] - 800512e: 68ba ldr r2, [r7, #8] - 8005130: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 + 8005028: 687b ldr r3, [r7, #4] + 800502a: 68ba ldr r2, [r7, #8] + 800502c: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 index_ = 0; - 8005134: 687b ldr r3, [r7, #4] - 8005136: 2200 movs r2, #0 - 8005138: f8c3 267c str.w r2, [r3, #1660] ; 0x67c + 8005030: 687b ldr r3, [r7, #4] + 8005032: 2200 movs r2, #0 + 8005034: f8c3 267c str.w r2, [r3, #1660] ; 0x67c mode_++; - 800513c: 687b ldr r3, [r7, #4] - 800513e: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 8005142: 1c5a adds r2, r3, #1 - 8005144: 687b ldr r3, [r7, #4] - 8005146: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8005038: 687b ldr r3, [r7, #4] + 800503a: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 800503e: 1c5a adds r2, r3, #1 + 8005040: 687b ldr r3, [r7, #4] + 8005042: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 checksum_ = data; /* first byte for calculating size checksum */ - 800514a: 687b ldr r3, [r7, #4] - 800514c: 68ba ldr r2, [r7, #8] - 800514e: f8c3 2680 str.w r2, [r3, #1664] ; 0x680 - 8005152: e747 b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8005046: 687b ldr r3, [r7, #4] + 8005048: 68ba ldr r2, [r7, #8] + 800504a: f8c3 2680 str.w r2, [r3, #1664] ; 0x680 + 800504e: e747 b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> else if (mode_ == MODE_SIZE_H) /* top half of message size */ - 8005154: 687b ldr r3, [r7, #4] - 8005156: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800515a: 2b03 cmp r3, #3 - 800515c: d110 bne.n 8005180 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x1e8> + 8005050: 687b ldr r3, [r7, #4] + 8005052: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8005056: 2b03 cmp r3, #3 + 8005058: d110 bne.n 800507c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x1e8> bytes_ += data << 8; - 800515e: 687b ldr r3, [r7, #4] - 8005160: f8d3 2674 ldr.w r2, [r3, #1652] ; 0x674 - 8005164: 68bb ldr r3, [r7, #8] - 8005166: 021b lsls r3, r3, #8 - 8005168: 441a add r2, r3 - 800516a: 687b ldr r3, [r7, #4] - 800516c: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 + 800505a: 687b ldr r3, [r7, #4] + 800505c: f8d3 2674 ldr.w r2, [r3, #1652] ; 0x674 + 8005060: 68bb ldr r3, [r7, #8] + 8005062: 021b lsls r3, r3, #8 + 8005064: 441a add r2, r3 + 8005066: 687b ldr r3, [r7, #4] + 8005068: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 mode_++; - 8005170: 687b ldr r3, [r7, #4] - 8005172: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 8005176: 1c5a adds r2, r3, #1 - 8005178: 687b ldr r3, [r7, #4] - 800517a: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - 800517e: e731 b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 800506c: 687b ldr r3, [r7, #4] + 800506e: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8005072: 1c5a adds r2, r3, #1 + 8005074: 687b ldr r3, [r7, #4] + 8005076: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 800507a: e731 b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> else if (mode_ == MODE_SIZE_CHECKSUM) - 8005180: 687b ldr r3, [r7, #4] - 8005182: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 8005186: 2b04 cmp r3, #4 - 8005188: d116 bne.n 80051b8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x220> + 800507c: 687b ldr r3, [r7, #4] + 800507e: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8005082: 2b04 cmp r3, #4 + 8005084: d116 bne.n 80050b4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x220> if ((checksum_ % 256) == 255) - 800518a: 687b ldr r3, [r7, #4] - 800518c: f8d3 3680 ldr.w r3, [r3, #1664] ; 0x680 - 8005190: 425a negs r2, r3 - 8005192: b2db uxtb r3, r3 - 8005194: b2d2 uxtb r2, r2 - 8005196: bf58 it pl - 8005198: 4253 negpl r3, r2 - 800519a: 2bff cmp r3, #255 ; 0xff - 800519c: d107 bne.n 80051ae <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x216> + 8005086: 687b ldr r3, [r7, #4] + 8005088: f8d3 3680 ldr.w r3, [r3, #1664] ; 0x680 + 800508c: 425a negs r2, r3 + 800508e: b2db uxtb r3, r3 + 8005090: b2d2 uxtb r2, r2 + 8005092: bf58 it pl + 8005094: 4253 negpl r3, r2 + 8005096: 2bff cmp r3, #255 ; 0xff + 8005098: d107 bne.n 80050aa <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x216> mode_++; - 800519e: 687b ldr r3, [r7, #4] - 80051a0: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 80051a4: 1c5a adds r2, r3, #1 - 80051a6: 687b ldr r3, [r7, #4] - 80051a8: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - 80051ac: e71a b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 800509a: 687b ldr r3, [r7, #4] + 800509c: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 80050a0: 1c5a adds r2, r3, #1 + 80050a2: 687b ldr r3, [r7, #4] + 80050a4: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 80050a8: e71a b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> mode_ = MODE_FIRST_FF; /* Abandon the frame if the msg len is wrong */ - 80051ae: 687b ldr r3, [r7, #4] - 80051b0: 2200 movs r2, #0 - 80051b2: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - 80051b6: e715 b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 80050aa: 687b ldr r3, [r7, #4] + 80050ac: 2200 movs r2, #0 + 80050ae: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 80050b2: e715 b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> else if (mode_ == MODE_TOPIC_L) /* bottom half of topic id */ - 80051b8: 687b ldr r3, [r7, #4] - 80051ba: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 80051be: 2b05 cmp r3, #5 - 80051c0: d10f bne.n 80051e2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x24a> + 80050b4: 687b ldr r3, [r7, #4] + 80050b6: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 80050ba: 2b05 cmp r3, #5 + 80050bc: d10f bne.n 80050de <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x24a> topic_ = data; - 80051c2: 687b ldr r3, [r7, #4] - 80051c4: 68ba ldr r2, [r7, #8] - 80051c6: f8c3 2678 str.w r2, [r3, #1656] ; 0x678 + 80050be: 687b ldr r3, [r7, #4] + 80050c0: 68ba ldr r2, [r7, #8] + 80050c2: f8c3 2678 str.w r2, [r3, #1656] ; 0x678 mode_++; - 80051ca: 687b ldr r3, [r7, #4] - 80051cc: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 80051d0: 1c5a adds r2, r3, #1 - 80051d2: 687b ldr r3, [r7, #4] - 80051d4: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 80050c6: 687b ldr r3, [r7, #4] + 80050c8: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 80050cc: 1c5a adds r2, r3, #1 + 80050ce: 687b ldr r3, [r7, #4] + 80050d0: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 checksum_ = data; /* first byte included in checksum */ - 80051d8: 687b ldr r3, [r7, #4] - 80051da: 68ba ldr r2, [r7, #8] - 80051dc: f8c3 2680 str.w r2, [r3, #1664] ; 0x680 - 80051e0: e700 b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 80050d4: 687b ldr r3, [r7, #4] + 80050d6: 68ba ldr r2, [r7, #8] + 80050d8: f8c3 2680 str.w r2, [r3, #1664] ; 0x680 + 80050dc: e700 b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> else if (mode_ == MODE_TOPIC_H) /* top half of topic id */ - 80051e2: 687b ldr r3, [r7, #4] - 80051e4: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 80051e8: 2b06 cmp r3, #6 - 80051ea: d117 bne.n 800521c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x284> + 80050de: 687b ldr r3, [r7, #4] + 80050e0: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 80050e4: 2b06 cmp r3, #6 + 80050e6: d117 bne.n 8005118 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x284> topic_ += data << 8; - 80051ec: 687b ldr r3, [r7, #4] - 80051ee: f8d3 2678 ldr.w r2, [r3, #1656] ; 0x678 - 80051f2: 68bb ldr r3, [r7, #8] - 80051f4: 021b lsls r3, r3, #8 - 80051f6: 441a add r2, r3 - 80051f8: 687b ldr r3, [r7, #4] - 80051fa: f8c3 2678 str.w r2, [r3, #1656] ; 0x678 + 80050e8: 687b ldr r3, [r7, #4] + 80050ea: f8d3 2678 ldr.w r2, [r3, #1656] ; 0x678 + 80050ee: 68bb ldr r3, [r7, #8] + 80050f0: 021b lsls r3, r3, #8 + 80050f2: 441a add r2, r3 + 80050f4: 687b ldr r3, [r7, #4] + 80050f6: f8c3 2678 str.w r2, [r3, #1656] ; 0x678 mode_ = MODE_MESSAGE; - 80051fe: 687b ldr r3, [r7, #4] - 8005200: 2207 movs r2, #7 - 8005202: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 80050fa: 687b ldr r3, [r7, #4] + 80050fc: 2207 movs r2, #7 + 80050fe: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 if (bytes_ == 0) - 8005206: 687b ldr r3, [r7, #4] - 8005208: f8d3 3674 ldr.w r3, [r3, #1652] ; 0x674 - 800520c: 2b00 cmp r3, #0 - 800520e: f47f aee9 bne.w 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8005102: 687b ldr r3, [r7, #4] + 8005104: f8d3 3674 ldr.w r3, [r3, #1652] ; 0x674 + 8005108: 2b00 cmp r3, #0 + 800510a: f47f aee9 bne.w 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> mode_ = MODE_MSG_CHECKSUM; - 8005212: 687b ldr r3, [r7, #4] - 8005214: 2208 movs r2, #8 - 8005216: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - 800521a: e6e3 b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 800510e: 687b ldr r3, [r7, #4] + 8005110: 2208 movs r2, #8 + 8005112: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8005116: e6e3 b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> else if (mode_ == MODE_MSG_CHECKSUM) /* do checksum */ - 800521c: 687b ldr r3, [r7, #4] - 800521e: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 8005222: 2b08 cmp r3, #8 - 8005224: f47f aede bne.w 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8005118: 687b ldr r3, [r7, #4] + 800511a: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 800511e: 2b08 cmp r3, #8 + 8005120: f47f aede bne.w 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> mode_ = MODE_FIRST_FF; - 8005228: 687b ldr r3, [r7, #4] - 800522a: 2200 movs r2, #0 - 800522c: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8005124: 687b ldr r3, [r7, #4] + 8005126: 2200 movs r2, #0 + 8005128: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 if ((checksum_ % 256) == 255) - 8005230: 687b ldr r3, [r7, #4] - 8005232: f8d3 3680 ldr.w r3, [r3, #1664] ; 0x680 - 8005236: 425a negs r2, r3 - 8005238: b2db uxtb r3, r3 - 800523a: b2d2 uxtb r2, r2 - 800523c: bf58 it pl - 800523e: 4253 negpl r3, r2 - 8005240: 2bff cmp r3, #255 ; 0xff - 8005242: f47f aecf bne.w 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 800512c: 687b ldr r3, [r7, #4] + 800512e: f8d3 3680 ldr.w r3, [r3, #1664] ; 0x680 + 8005132: 425a negs r2, r3 + 8005134: b2db uxtb r3, r3 + 8005136: b2d2 uxtb r2, r2 + 8005138: bf58 it pl + 800513a: 4253 negpl r3, r2 + 800513c: 2bff cmp r3, #255 ; 0xff + 800513e: f47f aecf bne.w 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> if (topic_ == TopicInfo::ID_PUBLISHER) - 8005246: 687b ldr r3, [r7, #4] - 8005248: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 800524c: 2b00 cmp r3, #0 - 800524e: d110 bne.n 8005272 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x2da> + 8005142: 687b ldr r3, [r7, #4] + 8005144: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 8005148: 2b00 cmp r3, #0 + 800514a: d110 bne.n 800516e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x2da> requestSyncTime(); - 8005250: 6878 ldr r0, [r7, #4] - 8005252: f000 f8d5 bl 8005400 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv> + 800514c: 6878 ldr r0, [r7, #4] + 800514e: f000 f87d bl 800524c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv> negotiateTopics(); - 8005256: 6878 ldr r0, [r7, #4] - 8005258: f000 f8f0 bl 800543c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv> + 8005152: 6878 ldr r0, [r7, #4] + 8005154: f000 f898 bl 8005288 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv> last_sync_time = c_time; - 800525c: 687b ldr r3, [r7, #4] - 800525e: 68fa ldr r2, [r7, #12] - 8005260: f8c3 2688 str.w r2, [r3, #1672] ; 0x688 + 8005158: 687b ldr r3, [r7, #4] + 800515a: 68fa ldr r2, [r7, #12] + 800515c: f8c3 2688 str.w r2, [r3, #1672] ; 0x688 last_sync_receive_time = c_time; - 8005264: 687b ldr r3, [r7, #4] - 8005266: 68fa ldr r2, [r7, #12] - 8005268: f8c3 268c str.w r2, [r3, #1676] ; 0x68c + 8005160: 687b ldr r3, [r7, #4] + 8005162: 68fa ldr r2, [r7, #12] + 8005164: f8c3 268c str.w r2, [r3, #1676] ; 0x68c return SPIN_ERR; - 800526c: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 8005270: e06a b.n 8005348 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3b0> + 8005168: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 800516c: e06a b.n 8005244 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3b0> else if (topic_ == TopicInfo::ID_TIME) - 8005272: 687b ldr r3, [r7, #4] - 8005274: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 8005278: 2b0a cmp r3, #10 - 800527a: d107 bne.n 800528c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x2f4> + 800516e: 687b ldr r3, [r7, #4] + 8005170: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 8005174: 2b0a cmp r3, #10 + 8005176: d107 bne.n 8005188 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x2f4> syncTime(message_in); - 800527c: 687b ldr r3, [r7, #4] - 800527e: f503 73d4 add.w r3, r3, #424 ; 0x1a8 - 8005282: 4619 mov r1, r3 - 8005284: 6878 ldr r0, [r7, #4] - 8005286: f000 f9b9 bl 80055fc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh> - 800528a: e6ab b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8005178: 687b ldr r3, [r7, #4] + 800517a: f503 73d4 add.w r3, r3, #424 ; 0x1a8 + 800517e: 4619 mov r1, r3 + 8005180: 6878 ldr r0, [r7, #4] + 8005182: f000 f961 bl 8005448 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh> + 8005186: e6ab b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> else if (topic_ == TopicInfo::ID_PARAMETER_REQUEST) - 800528c: 687b ldr r3, [r7, #4] - 800528e: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 8005292: 2b06 cmp r3, #6 - 8005294: d10e bne.n 80052b4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x31c> + 8005188: 687b ldr r3, [r7, #4] + 800518a: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 800518e: 2b06 cmp r3, #6 + 8005190: d10e bne.n 80051b0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x31c> req_param_resp.deserialize(message_in); - 8005296: 687b ldr r3, [r7, #4] - 8005298: f503 62d3 add.w r2, r3, #1688 ; 0x698 - 800529c: 687b ldr r3, [r7, #4] - 800529e: f503 73d4 add.w r3, r3, #424 ; 0x1a8 - 80052a2: 4619 mov r1, r3 - 80052a4: 4610 mov r0, r2 - 80052a6: f7fe ffee bl 8004286 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh> + 8005192: 687b ldr r3, [r7, #4] + 8005194: f503 62d3 add.w r2, r3, #1688 ; 0x698 + 8005198: 687b ldr r3, [r7, #4] + 800519a: f503 73d4 add.w r3, r3, #424 ; 0x1a8 + 800519e: 4619 mov r1, r3 + 80051a0: 4610 mov r0, r2 + 80051a2: f7ff f9f6 bl 8004592 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh> param_recieved = true; - 80052aa: 687b ldr r3, [r7, #4] - 80052ac: 2201 movs r2, #1 - 80052ae: f883 2694 strb.w r2, [r3, #1684] ; 0x694 - 80052b2: e697 b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 80051a6: 687b ldr r3, [r7, #4] + 80051a8: 2201 movs r2, #1 + 80051aa: f883 2694 strb.w r2, [r3, #1684] ; 0x694 + 80051ae: e697 b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> else if (topic_ == TopicInfo::ID_TX_STOP) - 80052b4: 687b ldr r3, [r7, #4] - 80052b6: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 80052ba: 2b0b cmp r3, #11 - 80052bc: d104 bne.n 80052c8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x330> + 80051b0: 687b ldr r3, [r7, #4] + 80051b2: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 80051b6: 2b0b cmp r3, #11 + 80051b8: d104 bne.n 80051c4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x330> configured_ = false; - 80052be: 687b ldr r3, [r7, #4] - 80052c0: 2200 movs r2, #0 - 80052c2: f883 2684 strb.w r2, [r3, #1668] ; 0x684 - 80052c6: e68d b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 80051ba: 687b ldr r3, [r7, #4] + 80051bc: 2200 movs r2, #0 + 80051be: f883 2684 strb.w r2, [r3, #1668] ; 0x684 + 80051c2: e68d b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> if (subscribers[topic_ - 100]) - 80052c8: 687b ldr r3, [r7, #4] - 80052ca: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 80052ce: 3b64 subs r3, #100 ; 0x64 - 80052d0: 687a ldr r2, [r7, #4] - 80052d2: f503 73c1 add.w r3, r3, #386 ; 0x182 - 80052d6: 009b lsls r3, r3, #2 - 80052d8: 4413 add r3, r2 - 80052da: 685b ldr r3, [r3, #4] - 80052dc: 2b00 cmp r3, #0 - 80052de: f43f ae81 beq.w 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 80051c4: 687b ldr r3, [r7, #4] + 80051c6: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 80051ca: 3b64 subs r3, #100 ; 0x64 + 80051cc: 687a ldr r2, [r7, #4] + 80051ce: f503 73c1 add.w r3, r3, #386 ; 0x182 + 80051d2: 009b lsls r3, r3, #2 + 80051d4: 4413 add r3, r2 + 80051d6: 685b ldr r3, [r3, #4] + 80051d8: 2b00 cmp r3, #0 + 80051da: f43f ae81 beq.w 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> subscribers[topic_ - 100]->callback(message_in); - 80052e2: 687b ldr r3, [r7, #4] - 80052e4: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 80052e8: 3b64 subs r3, #100 ; 0x64 - 80052ea: 687a ldr r2, [r7, #4] - 80052ec: f503 73c1 add.w r3, r3, #386 ; 0x182 - 80052f0: 009b lsls r3, r3, #2 - 80052f2: 4413 add r3, r2 - 80052f4: 6858 ldr r0, [r3, #4] - 80052f6: 687b ldr r3, [r7, #4] - 80052f8: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 80052fc: 3b64 subs r3, #100 ; 0x64 - 80052fe: 687a ldr r2, [r7, #4] - 8005300: f503 73c1 add.w r3, r3, #386 ; 0x182 - 8005304: 009b lsls r3, r3, #2 - 8005306: 4413 add r3, r2 - 8005308: 685b ldr r3, [r3, #4] - 800530a: 681b ldr r3, [r3, #0] - 800530c: 681b ldr r3, [r3, #0] - 800530e: 687a ldr r2, [r7, #4] - 8005310: f502 72d4 add.w r2, r2, #424 ; 0x1a8 - 8005314: 4611 mov r1, r2 - 8005316: 4798 blx r3 + 80051de: 687b ldr r3, [r7, #4] + 80051e0: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 80051e4: 3b64 subs r3, #100 ; 0x64 + 80051e6: 687a ldr r2, [r7, #4] + 80051e8: f503 73c1 add.w r3, r3, #386 ; 0x182 + 80051ec: 009b lsls r3, r3, #2 + 80051ee: 4413 add r3, r2 + 80051f0: 6858 ldr r0, [r3, #4] + 80051f2: 687b ldr r3, [r7, #4] + 80051f4: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 80051f8: 3b64 subs r3, #100 ; 0x64 + 80051fa: 687a ldr r2, [r7, #4] + 80051fc: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8005200: 009b lsls r3, r3, #2 + 8005202: 4413 add r3, r2 + 8005204: 685b ldr r3, [r3, #4] + 8005206: 681b ldr r3, [r3, #0] + 8005208: 681b ldr r3, [r3, #0] + 800520a: 687a ldr r2, [r7, #4] + 800520c: f502 72d4 add.w r2, r2, #424 ; 0x1a8 + 8005210: 4611 mov r1, r2 + 8005212: 4798 blx r3 while (true) - 8005318: e664 b.n 8004fe4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + 8005214: e664 b.n 8004ee0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> break; - 800531a: bf00 nop + 8005216: bf00 nop if (configured_ && ((c_time - last_sync_time) > (SYNC_SECONDS * 500))) - 800531c: 687b ldr r3, [r7, #4] - 800531e: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 - 8005322: 2b00 cmp r3, #0 - 8005324: d00f beq.n 8005346 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3ae> - 8005326: 687b ldr r3, [r7, #4] - 8005328: f8d3 3688 ldr.w r3, [r3, #1672] ; 0x688 - 800532c: 68fa ldr r2, [r7, #12] - 800532e: 1ad3 subs r3, r2, r3 - 8005330: f640 12c4 movw r2, #2500 ; 0x9c4 - 8005334: 4293 cmp r3, r2 - 8005336: d906 bls.n 8005346 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3ae> + 8005218: 687b ldr r3, [r7, #4] + 800521a: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 + 800521e: 2b00 cmp r3, #0 + 8005220: d00f beq.n 8005242 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3ae> + 8005222: 687b ldr r3, [r7, #4] + 8005224: f8d3 3688 ldr.w r3, [r3, #1672] ; 0x688 + 8005228: 68fa ldr r2, [r7, #12] + 800522a: 1ad3 subs r3, r2, r3 + 800522c: f640 12c4 movw r2, #2500 ; 0x9c4 + 8005230: 4293 cmp r3, r2 + 8005232: d906 bls.n 8005242 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3ae> requestSyncTime(); - 8005338: 6878 ldr r0, [r7, #4] - 800533a: f000 f861 bl 8005400 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv> + 8005234: 6878 ldr r0, [r7, #4] + 8005236: f000 f809 bl 800524c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv> last_sync_time = c_time; - 800533e: 687b ldr r3, [r7, #4] - 8005340: 68fa ldr r2, [r7, #12] - 8005342: f8c3 2688 str.w r2, [r3, #1672] ; 0x688 + 800523a: 687b ldr r3, [r7, #4] + 800523c: 68fa ldr r2, [r7, #12] + 800523e: f8c3 2688 str.w r2, [r3, #1672] ; 0x688 return SPIN_OK; - 8005346: 2300 movs r3, #0 - } - 8005348: 4618 mov r0, r3 - 800534a: 3710 adds r7, #16 - 800534c: 46bd mov sp, r7 - 800534e: bd80 pop {r7, pc} - -08005350 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9connectedEv>: - virtual bool connected() - 8005350: b480 push {r7} - 8005352: b083 sub sp, #12 - 8005354: af00 add r7, sp, #0 - 8005356: 6078 str r0, [r7, #4] - return configured_; - 8005358: 687b ldr r3, [r7, #4] - 800535a: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 - }; - 800535e: 4618 mov r0, r3 - 8005360: 370c adds r7, #12 - 8005362: 46bd mov sp, r7 - 8005364: f85d 7b04 ldr.w r7, [sp], #4 - 8005368: 4770 bx lr - -0800536a <_ZN3ros10SubscriberIN8std_msgs5UInt8EvE8callbackEPh>: - - virtual void callback(unsigned char* data) - 800536a: b580 push {r7, lr} - 800536c: b082 sub sp, #8 - 800536e: af00 add r7, sp, #0 - 8005370: 6078 str r0, [r7, #4] - 8005372: 6039 str r1, [r7, #0] - { - msg.deserialize(data); - 8005374: 687b ldr r3, [r7, #4] - 8005376: 330c adds r3, #12 - 8005378: 6839 ldr r1, [r7, #0] - 800537a: 4618 mov r0, r3 - 800537c: f7fe faa5 bl 80038ca <_ZN8std_msgs5UInt811deserializeEPh> - this->cb_(msg); - 8005380: 687b ldr r3, [r7, #4] - 8005382: 695b ldr r3, [r3, #20] - 8005384: 687a ldr r2, [r7, #4] - 8005386: 320c adds r2, #12 - 8005388: 4610 mov r0, r2 - 800538a: 4798 blx r3 - } - 800538c: bf00 nop - 800538e: 3708 adds r7, #8 - 8005390: 46bd mov sp, r7 - 8005392: bd80 pop {r7, pc} - -08005394 <_ZN3ros10SubscriberIN8std_msgs5UInt8EvE15getEndpointTypeEv>: - } - virtual const char * getMsgMD5() - { - return this->msg.getMD5(); - } - virtual int getEndpointType() - 8005394: b480 push {r7} - 8005396: b083 sub sp, #12 - 8005398: af00 add r7, sp, #0 - 800539a: 6078 str r0, [r7, #4] - { - return endpoint_; - 800539c: 687b ldr r3, [r7, #4] - 800539e: 699b ldr r3, [r3, #24] - } - 80053a0: 4618 mov r0, r3 - 80053a2: 370c adds r7, #12 - 80053a4: 46bd mov sp, r7 - 80053a6: f85d 7b04 ldr.w r7, [sp], #4 - 80053aa: 4770 bx lr - -080053ac <_ZN3ros10SubscriberIN8std_msgs5UInt8EvE10getMsgTypeEv>: - virtual const char * getMsgType() - 80053ac: b580 push {r7, lr} - 80053ae: b082 sub sp, #8 - 80053b0: af00 add r7, sp, #0 - 80053b2: 6078 str r0, [r7, #4] - return this->msg.getType(); - 80053b4: 687b ldr r3, [r7, #4] - 80053b6: 330c adds r3, #12 - 80053b8: 4618 mov r0, r3 - 80053ba: f7fe fa9d bl 80038f8 <_ZN8std_msgs5UInt87getTypeEv> - 80053be: 4603 mov r3, r0 - } - 80053c0: 4618 mov r0, r3 - 80053c2: 3708 adds r7, #8 - 80053c4: 46bd mov sp, r7 - 80053c6: bd80 pop {r7, pc} - -080053c8 <_ZN3ros10SubscriberIN8std_msgs5UInt8EvE9getMsgMD5Ev>: - virtual const char * getMsgMD5() - 80053c8: b580 push {r7, lr} - 80053ca: b082 sub sp, #8 - 80053cc: af00 add r7, sp, #0 - 80053ce: 6078 str r0, [r7, #4] - return this->msg.getMD5(); - 80053d0: 687b ldr r3, [r7, #4] - 80053d2: 330c adds r3, #12 - 80053d4: 4618 mov r0, r3 - 80053d6: f7fe fa9d bl 8003914 <_ZN8std_msgs5UInt86getMD5Ev> - 80053da: 4603 mov r3, r0 - } - 80053dc: 4618 mov r0, r3 - 80053de: 3708 adds r7, #8 - 80053e0: 46bd mov sp, r7 - 80053e2: bd80 pop {r7, pc} - -080053e4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8logerrorEPKc>: - } - void logwarn(const char *msg) - { - log(rosserial_msgs::Log::WARN, msg); - } - void logerror(const char*msg) - 80053e4: b580 push {r7, lr} - 80053e6: b082 sub sp, #8 - 80053e8: af00 add r7, sp, #0 - 80053ea: 6078 str r0, [r7, #4] - 80053ec: 6039 str r1, [r7, #0] - { - log(rosserial_msgs::Log::ERROR, msg); - 80053ee: 683a ldr r2, [r7, #0] - 80053f0: 2103 movs r1, #3 - 80053f2: 6878 ldr r0, [r7, #4] - 80053f4: f000 f94e bl 8005694 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE3logEcPKc> + 8005242: 2300 movs r3, #0 } - 80053f8: bf00 nop - 80053fa: 3708 adds r7, #8 - 80053fc: 46bd mov sp, r7 - 80053fe: bd80 pop {r7, pc} + 8005244: 4618 mov r0, r3 + 8005246: 3710 adds r7, #16 + 8005248: 46bd mov sp, r7 + 800524a: bd80 pop {r7, pc} -08005400 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv>: +0800524c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv>: void requestSyncTime() - 8005400: b580 push {r7, lr} - 8005402: b086 sub sp, #24 - 8005404: af00 add r7, sp, #0 - 8005406: 6078 str r0, [r7, #4] + 800524c: b580 push {r7, lr} + 800524e: b086 sub sp, #24 + 8005250: af00 add r7, sp, #0 + 8005252: 6078 str r0, [r7, #4] std_msgs::Time t; - 8005408: f107 030c add.w r3, r7, #12 - 800540c: 4618 mov r0, r3 - 800540e: f7fe faa1 bl 8003954 <_ZN8std_msgs4TimeC1Ev> + 8005254: f107 030c add.w r3, r7, #12 + 8005258: 4618 mov r0, r3 + 800525a: f7fe fd01 bl 8003c60 <_ZN8std_msgs4TimeC1Ev> publish(TopicInfo::ID_TIME, &t); - 8005412: 687b ldr r3, [r7, #4] - 8005414: 681b ldr r3, [r3, #0] - 8005416: 681b ldr r3, [r3, #0] - 8005418: f107 020c add.w r2, r7, #12 - 800541c: 210a movs r1, #10 - 800541e: 6878 ldr r0, [r7, #4] - 8005420: 4798 blx r3 + 800525e: 687b ldr r3, [r7, #4] + 8005260: 681b ldr r3, [r3, #0] + 8005262: 681b ldr r3, [r3, #0] + 8005264: f107 020c add.w r2, r7, #12 + 8005268: 210a movs r1, #10 + 800526a: 6878 ldr r0, [r7, #4] + 800526c: 4798 blx r3 rt_time = hardware_.time(); - 8005422: 687b ldr r3, [r7, #4] - 8005424: 3304 adds r3, #4 - 8005426: 4618 mov r0, r3 - 8005428: f7ff f9e7 bl 80047fa <_ZN13STM32Hardware4timeEv> - 800542c: 4602 mov r2, r0 - 800542e: 687b ldr r3, [r7, #4] - 8005430: f8c3 2198 str.w r2, [r3, #408] ; 0x198 - } - 8005434: bf00 nop - 8005436: 3718 adds r7, #24 - 8005438: 46bd mov sp, r7 - 800543a: bd80 pop {r7, pc} - -0800543c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv>: + 800526e: 687b ldr r3, [r7, #4] + 8005270: 3304 adds r3, #4 + 8005272: 4618 mov r0, r3 + 8005274: f7ff fc47 bl 8004b06 <_ZN13STM32Hardware4timeEv> + 8005278: 4602 mov r2, r0 + 800527a: 687b ldr r3, [r7, #4] + 800527c: f8c3 2198 str.w r2, [r3, #408] ; 0x198 + } + 8005280: bf00 nop + 8005282: 3718 adds r7, #24 + 8005284: 46bd mov sp, r7 + 8005286: bd80 pop {r7, pc} + +08005288 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv>: + } + } + return false; + } + void negotiateTopics() - 800543c: b590 push {r4, r7, lr} - 800543e: b08b sub sp, #44 ; 0x2c - 8005440: af00 add r7, sp, #0 - 8005442: 6078 str r0, [r7, #4] + 8005288: b590 push {r4, r7, lr} + 800528a: b08b sub sp, #44 ; 0x2c + 800528c: af00 add r7, sp, #0 + 800528e: 6078 str r0, [r7, #4] + { rosserial_msgs::TopicInfo ti; - 8005444: f107 030c add.w r3, r7, #12 - 8005448: 4618 mov r0, r3 - 800544a: f7fe fb73 bl 8003b34 <_ZN14rosserial_msgs9TopicInfoC1Ev> + 8005290: f107 030c add.w r3, r7, #12 + 8005294: 4618 mov r0, r3 + 8005296: f7fe fdd3 bl 8003e40 <_ZN14rosserial_msgs9TopicInfoC1Ev> + int i; for (i = 0; i < MAX_PUBLISHERS; i++) - 800544e: 2300 movs r3, #0 - 8005450: 627b str r3, [r7, #36] ; 0x24 - 8005452: 6a7b ldr r3, [r7, #36] ; 0x24 - 8005454: 2b18 cmp r3, #24 - 8005456: dc5b bgt.n 8005510 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0xd4> + 800529a: 2300 movs r3, #0 + 800529c: 627b str r3, [r7, #36] ; 0x24 + 800529e: 6a7b ldr r3, [r7, #36] ; 0x24 + 80052a0: 2b18 cmp r3, #24 + 80052a2: dc5b bgt.n 800535c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0xd4> + { if (publishers[i] != 0) // non-empty slot - 8005458: 687b ldr r3, [r7, #4] - 800545a: 6a7a ldr r2, [r7, #36] ; 0x24 - 800545c: f502 72b5 add.w r2, r2, #362 ; 0x16a - 8005460: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 8005464: 2b00 cmp r3, #0 - 8005466: d04f beq.n 8005508 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0xcc> + 80052a4: 687b ldr r3, [r7, #4] + 80052a6: 6a7a ldr r2, [r7, #36] ; 0x24 + 80052a8: f502 72b5 add.w r2, r2, #362 ; 0x16a + 80052ac: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 80052b0: 2b00 cmp r3, #0 + 80052b2: d04f beq.n 8005354 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0xcc> + { ti.topic_id = publishers[i]->id_; - 8005468: 687b ldr r3, [r7, #4] - 800546a: 6a7a ldr r2, [r7, #36] ; 0x24 - 800546c: f502 72b5 add.w r2, r2, #362 ; 0x16a - 8005470: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 8005474: 689b ldr r3, [r3, #8] - 8005476: b29b uxth r3, r3 - 8005478: 823b strh r3, [r7, #16] + 80052b4: 687b ldr r3, [r7, #4] + 80052b6: 6a7a ldr r2, [r7, #36] ; 0x24 + 80052b8: f502 72b5 add.w r2, r2, #362 ; 0x16a + 80052bc: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 80052c0: 689b ldr r3, [r3, #8] + 80052c2: b29b uxth r3, r3 + 80052c4: 823b strh r3, [r7, #16] ti.topic_name = (char *) publishers[i]->topic_; - 800547a: 687b ldr r3, [r7, #4] - 800547c: 6a7a ldr r2, [r7, #36] ; 0x24 - 800547e: f502 72b5 add.w r2, r2, #362 ; 0x16a - 8005482: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 8005486: 681b ldr r3, [r3, #0] - 8005488: 617b str r3, [r7, #20] + 80052c6: 687b ldr r3, [r7, #4] + 80052c8: 6a7a ldr r2, [r7, #36] ; 0x24 + 80052ca: f502 72b5 add.w r2, r2, #362 ; 0x16a + 80052ce: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 80052d2: 681b ldr r3, [r3, #0] + 80052d4: 617b str r3, [r7, #20] ti.message_type = (char *) publishers[i]->msg_->getType(); - 800548a: 687b ldr r3, [r7, #4] - 800548c: 6a7a ldr r2, [r7, #36] ; 0x24 - 800548e: f502 72b5 add.w r2, r2, #362 ; 0x16a - 8005492: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 8005496: 6859 ldr r1, [r3, #4] - 8005498: 687b ldr r3, [r7, #4] - 800549a: 6a7a ldr r2, [r7, #36] ; 0x24 - 800549c: f502 72b5 add.w r2, r2, #362 ; 0x16a - 80054a0: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 80054a4: 685b ldr r3, [r3, #4] - 80054a6: 681b ldr r3, [r3, #0] - 80054a8: 3308 adds r3, #8 - 80054aa: 681b ldr r3, [r3, #0] - 80054ac: 4608 mov r0, r1 - 80054ae: 4798 blx r3 - 80054b0: 4603 mov r3, r0 - 80054b2: 61bb str r3, [r7, #24] + 80052d6: 687b ldr r3, [r7, #4] + 80052d8: 6a7a ldr r2, [r7, #36] ; 0x24 + 80052da: f502 72b5 add.w r2, r2, #362 ; 0x16a + 80052de: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 80052e2: 6859 ldr r1, [r3, #4] + 80052e4: 687b ldr r3, [r7, #4] + 80052e6: 6a7a ldr r2, [r7, #36] ; 0x24 + 80052e8: f502 72b5 add.w r2, r2, #362 ; 0x16a + 80052ec: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 80052f0: 685b ldr r3, [r3, #4] + 80052f2: 681b ldr r3, [r3, #0] + 80052f4: 3308 adds r3, #8 + 80052f6: 681b ldr r3, [r3, #0] + 80052f8: 4608 mov r0, r1 + 80052fa: 4798 blx r3 + 80052fc: 4603 mov r3, r0 + 80052fe: 61bb str r3, [r7, #24] ti.md5sum = (char *) publishers[i]->msg_->getMD5(); - 80054b4: 687b ldr r3, [r7, #4] - 80054b6: 6a7a ldr r2, [r7, #36] ; 0x24 - 80054b8: f502 72b5 add.w r2, r2, #362 ; 0x16a - 80054bc: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 80054c0: 6859 ldr r1, [r3, #4] - 80054c2: 687b ldr r3, [r7, #4] - 80054c4: 6a7a ldr r2, [r7, #36] ; 0x24 - 80054c6: f502 72b5 add.w r2, r2, #362 ; 0x16a - 80054ca: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 80054ce: 685b ldr r3, [r3, #4] - 80054d0: 681b ldr r3, [r3, #0] - 80054d2: 330c adds r3, #12 - 80054d4: 681b ldr r3, [r3, #0] - 80054d6: 4608 mov r0, r1 - 80054d8: 4798 blx r3 - 80054da: 4603 mov r3, r0 - 80054dc: 61fb str r3, [r7, #28] + 8005300: 687b ldr r3, [r7, #4] + 8005302: 6a7a ldr r2, [r7, #36] ; 0x24 + 8005304: f502 72b5 add.w r2, r2, #362 ; 0x16a + 8005308: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 800530c: 6859 ldr r1, [r3, #4] + 800530e: 687b ldr r3, [r7, #4] + 8005310: 6a7a ldr r2, [r7, #36] ; 0x24 + 8005312: f502 72b5 add.w r2, r2, #362 ; 0x16a + 8005316: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 800531a: 685b ldr r3, [r3, #4] + 800531c: 681b ldr r3, [r3, #0] + 800531e: 330c adds r3, #12 + 8005320: 681b ldr r3, [r3, #0] + 8005322: 4608 mov r0, r1 + 8005324: 4798 blx r3 + 8005326: 4603 mov r3, r0 + 8005328: 61fb str r3, [r7, #28] ti.buffer_size = OUTPUT_SIZE; - 80054de: f44f 7300 mov.w r3, #512 ; 0x200 - 80054e2: 623b str r3, [r7, #32] + 800532a: f44f 7300 mov.w r3, #512 ; 0x200 + 800532e: 623b str r3, [r7, #32] publish(publishers[i]->getEndpointType(), &ti); - 80054e4: 687b ldr r3, [r7, #4] - 80054e6: 681b ldr r3, [r3, #0] - 80054e8: 681c ldr r4, [r3, #0] - 80054ea: 687b ldr r3, [r7, #4] - 80054ec: 6a7a ldr r2, [r7, #36] ; 0x24 - 80054ee: f502 72b5 add.w r2, r2, #362 ; 0x16a - 80054f2: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 80054f6: 4618 mov r0, r3 - 80054f8: f7ff f852 bl 80045a0 <_ZN3ros9Publisher15getEndpointTypeEv> - 80054fc: 4601 mov r1, r0 - 80054fe: f107 030c add.w r3, r7, #12 - 8005502: 461a mov r2, r3 - 8005504: 6878 ldr r0, [r7, #4] - 8005506: 47a0 blx r4 + 8005330: 687b ldr r3, [r7, #4] + 8005332: 681b ldr r3, [r3, #0] + 8005334: 681c ldr r4, [r3, #0] + 8005336: 687b ldr r3, [r7, #4] + 8005338: 6a7a ldr r2, [r7, #36] ; 0x24 + 800533a: f502 72b5 add.w r2, r2, #362 ; 0x16a + 800533e: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8005342: 4618 mov r0, r3 + 8005344: f7ff fab2 bl 80048ac <_ZN3ros9Publisher15getEndpointTypeEv> + 8005348: 4601 mov r1, r0 + 800534a: f107 030c add.w r3, r7, #12 + 800534e: 461a mov r2, r3 + 8005350: 6878 ldr r0, [r7, #4] + 8005352: 47a0 blx r4 for (i = 0; i < MAX_PUBLISHERS; i++) - 8005508: 6a7b ldr r3, [r7, #36] ; 0x24 - 800550a: 3301 adds r3, #1 - 800550c: 627b str r3, [r7, #36] ; 0x24 - 800550e: e7a0 b.n 8005452 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0x16> + 8005354: 6a7b ldr r3, [r7, #36] ; 0x24 + 8005356: 3301 adds r3, #1 + 8005358: 627b str r3, [r7, #36] ; 0x24 + 800535a: e7a0 b.n 800529e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0x16> + } + } for (i = 0; i < MAX_SUBSCRIBERS; i++) - 8005510: 2300 movs r3, #0 - 8005512: 627b str r3, [r7, #36] ; 0x24 - 8005514: 6a7b ldr r3, [r7, #36] ; 0x24 - 8005516: 2b18 cmp r3, #24 - 8005518: dc68 bgt.n 80055ec <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0x1b0> + 800535c: 2300 movs r3, #0 + 800535e: 627b str r3, [r7, #36] ; 0x24 + 8005360: 6a7b ldr r3, [r7, #36] ; 0x24 + 8005362: 2b18 cmp r3, #24 + 8005364: dc68 bgt.n 8005438 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0x1b0> + { if (subscribers[i] != 0) // non-empty slot - 800551a: 687a ldr r2, [r7, #4] - 800551c: 6a7b ldr r3, [r7, #36] ; 0x24 - 800551e: f503 73c1 add.w r3, r3, #386 ; 0x182 - 8005522: 009b lsls r3, r3, #2 - 8005524: 4413 add r3, r2 - 8005526: 685b ldr r3, [r3, #4] - 8005528: 2b00 cmp r3, #0 - 800552a: d05b beq.n 80055e4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0x1a8> + 8005366: 687a ldr r2, [r7, #4] + 8005368: 6a7b ldr r3, [r7, #36] ; 0x24 + 800536a: f503 73c1 add.w r3, r3, #386 ; 0x182 + 800536e: 009b lsls r3, r3, #2 + 8005370: 4413 add r3, r2 + 8005372: 685b ldr r3, [r3, #4] + 8005374: 2b00 cmp r3, #0 + 8005376: d05b beq.n 8005430 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0x1a8> + { ti.topic_id = subscribers[i]->id_; - 800552c: 687a ldr r2, [r7, #4] - 800552e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8005530: f503 73c1 add.w r3, r3, #386 ; 0x182 - 8005534: 009b lsls r3, r3, #2 - 8005536: 4413 add r3, r2 - 8005538: 685b ldr r3, [r3, #4] - 800553a: 685b ldr r3, [r3, #4] - 800553c: b29b uxth r3, r3 - 800553e: 823b strh r3, [r7, #16] + 8005378: 687a ldr r2, [r7, #4] + 800537a: 6a7b ldr r3, [r7, #36] ; 0x24 + 800537c: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8005380: 009b lsls r3, r3, #2 + 8005382: 4413 add r3, r2 + 8005384: 685b ldr r3, [r3, #4] + 8005386: 685b ldr r3, [r3, #4] + 8005388: b29b uxth r3, r3 + 800538a: 823b strh r3, [r7, #16] ti.topic_name = (char *) subscribers[i]->topic_; - 8005540: 687a ldr r2, [r7, #4] - 8005542: 6a7b ldr r3, [r7, #36] ; 0x24 - 8005544: f503 73c1 add.w r3, r3, #386 ; 0x182 - 8005548: 009b lsls r3, r3, #2 - 800554a: 4413 add r3, r2 - 800554c: 685b ldr r3, [r3, #4] - 800554e: 689b ldr r3, [r3, #8] - 8005550: 617b str r3, [r7, #20] + 800538c: 687a ldr r2, [r7, #4] + 800538e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8005390: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8005394: 009b lsls r3, r3, #2 + 8005396: 4413 add r3, r2 + 8005398: 685b ldr r3, [r3, #4] + 800539a: 689b ldr r3, [r3, #8] + 800539c: 617b str r3, [r7, #20] ti.message_type = (char *) subscribers[i]->getMsgType(); - 8005552: 687a ldr r2, [r7, #4] - 8005554: 6a7b ldr r3, [r7, #36] ; 0x24 - 8005556: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800555a: 009b lsls r3, r3, #2 - 800555c: 4413 add r3, r2 - 800555e: 6859 ldr r1, [r3, #4] - 8005560: 687a ldr r2, [r7, #4] - 8005562: 6a7b ldr r3, [r7, #36] ; 0x24 - 8005564: f503 73c1 add.w r3, r3, #386 ; 0x182 - 8005568: 009b lsls r3, r3, #2 - 800556a: 4413 add r3, r2 - 800556c: 685b ldr r3, [r3, #4] - 800556e: 681b ldr r3, [r3, #0] - 8005570: 3308 adds r3, #8 - 8005572: 681b ldr r3, [r3, #0] - 8005574: 4608 mov r0, r1 - 8005576: 4798 blx r3 - 8005578: 4603 mov r3, r0 - 800557a: 61bb str r3, [r7, #24] + 800539e: 687a ldr r2, [r7, #4] + 80053a0: 6a7b ldr r3, [r7, #36] ; 0x24 + 80053a2: f503 73c1 add.w r3, r3, #386 ; 0x182 + 80053a6: 009b lsls r3, r3, #2 + 80053a8: 4413 add r3, r2 + 80053aa: 6859 ldr r1, [r3, #4] + 80053ac: 687a ldr r2, [r7, #4] + 80053ae: 6a7b ldr r3, [r7, #36] ; 0x24 + 80053b0: f503 73c1 add.w r3, r3, #386 ; 0x182 + 80053b4: 009b lsls r3, r3, #2 + 80053b6: 4413 add r3, r2 + 80053b8: 685b ldr r3, [r3, #4] + 80053ba: 681b ldr r3, [r3, #0] + 80053bc: 3308 adds r3, #8 + 80053be: 681b ldr r3, [r3, #0] + 80053c0: 4608 mov r0, r1 + 80053c2: 4798 blx r3 + 80053c4: 4603 mov r3, r0 + 80053c6: 61bb str r3, [r7, #24] ti.md5sum = (char *) subscribers[i]->getMsgMD5(); - 800557c: 687a ldr r2, [r7, #4] - 800557e: 6a7b ldr r3, [r7, #36] ; 0x24 - 8005580: f503 73c1 add.w r3, r3, #386 ; 0x182 - 8005584: 009b lsls r3, r3, #2 - 8005586: 4413 add r3, r2 - 8005588: 6859 ldr r1, [r3, #4] - 800558a: 687a ldr r2, [r7, #4] - 800558c: 6a7b ldr r3, [r7, #36] ; 0x24 - 800558e: f503 73c1 add.w r3, r3, #386 ; 0x182 - 8005592: 009b lsls r3, r3, #2 - 8005594: 4413 add r3, r2 - 8005596: 685b ldr r3, [r3, #4] - 8005598: 681b ldr r3, [r3, #0] - 800559a: 330c adds r3, #12 - 800559c: 681b ldr r3, [r3, #0] - 800559e: 4608 mov r0, r1 - 80055a0: 4798 blx r3 - 80055a2: 4603 mov r3, r0 - 80055a4: 61fb str r3, [r7, #28] + 80053c8: 687a ldr r2, [r7, #4] + 80053ca: 6a7b ldr r3, [r7, #36] ; 0x24 + 80053cc: f503 73c1 add.w r3, r3, #386 ; 0x182 + 80053d0: 009b lsls r3, r3, #2 + 80053d2: 4413 add r3, r2 + 80053d4: 6859 ldr r1, [r3, #4] + 80053d6: 687a ldr r2, [r7, #4] + 80053d8: 6a7b ldr r3, [r7, #36] ; 0x24 + 80053da: f503 73c1 add.w r3, r3, #386 ; 0x182 + 80053de: 009b lsls r3, r3, #2 + 80053e0: 4413 add r3, r2 + 80053e2: 685b ldr r3, [r3, #4] + 80053e4: 681b ldr r3, [r3, #0] + 80053e6: 330c adds r3, #12 + 80053e8: 681b ldr r3, [r3, #0] + 80053ea: 4608 mov r0, r1 + 80053ec: 4798 blx r3 + 80053ee: 4603 mov r3, r0 + 80053f0: 61fb str r3, [r7, #28] ti.buffer_size = INPUT_SIZE; - 80055a6: f44f 7300 mov.w r3, #512 ; 0x200 - 80055aa: 623b str r3, [r7, #32] + 80053f2: f44f 7300 mov.w r3, #512 ; 0x200 + 80053f6: 623b str r3, [r7, #32] publish(subscribers[i]->getEndpointType(), &ti); - 80055ac: 687b ldr r3, [r7, #4] - 80055ae: 681b ldr r3, [r3, #0] - 80055b0: 681c ldr r4, [r3, #0] - 80055b2: 687a ldr r2, [r7, #4] - 80055b4: 6a7b ldr r3, [r7, #36] ; 0x24 - 80055b6: f503 73c1 add.w r3, r3, #386 ; 0x182 - 80055ba: 009b lsls r3, r3, #2 - 80055bc: 4413 add r3, r2 - 80055be: 6859 ldr r1, [r3, #4] - 80055c0: 687a ldr r2, [r7, #4] - 80055c2: 6a7b ldr r3, [r7, #36] ; 0x24 - 80055c4: f503 73c1 add.w r3, r3, #386 ; 0x182 - 80055c8: 009b lsls r3, r3, #2 - 80055ca: 4413 add r3, r2 - 80055cc: 685b ldr r3, [r3, #4] - 80055ce: 681b ldr r3, [r3, #0] - 80055d0: 3304 adds r3, #4 - 80055d2: 681b ldr r3, [r3, #0] - 80055d4: 4608 mov r0, r1 - 80055d6: 4798 blx r3 - 80055d8: 4601 mov r1, r0 - 80055da: f107 030c add.w r3, r7, #12 - 80055de: 461a mov r2, r3 - 80055e0: 6878 ldr r0, [r7, #4] - 80055e2: 47a0 blx r4 + 80053f8: 687b ldr r3, [r7, #4] + 80053fa: 681b ldr r3, [r3, #0] + 80053fc: 681c ldr r4, [r3, #0] + 80053fe: 687a ldr r2, [r7, #4] + 8005400: 6a7b ldr r3, [r7, #36] ; 0x24 + 8005402: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8005406: 009b lsls r3, r3, #2 + 8005408: 4413 add r3, r2 + 800540a: 6859 ldr r1, [r3, #4] + 800540c: 687a ldr r2, [r7, #4] + 800540e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8005410: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8005414: 009b lsls r3, r3, #2 + 8005416: 4413 add r3, r2 + 8005418: 685b ldr r3, [r3, #4] + 800541a: 681b ldr r3, [r3, #0] + 800541c: 3304 adds r3, #4 + 800541e: 681b ldr r3, [r3, #0] + 8005420: 4608 mov r0, r1 + 8005422: 4798 blx r3 + 8005424: 4601 mov r1, r0 + 8005426: f107 030c add.w r3, r7, #12 + 800542a: 461a mov r2, r3 + 800542c: 6878 ldr r0, [r7, #4] + 800542e: 47a0 blx r4 for (i = 0; i < MAX_SUBSCRIBERS; i++) - 80055e4: 6a7b ldr r3, [r7, #36] ; 0x24 - 80055e6: 3301 adds r3, #1 - 80055e8: 627b str r3, [r7, #36] ; 0x24 - 80055ea: e793 b.n 8005514 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0xd8> + 8005430: 6a7b ldr r3, [r7, #36] ; 0x24 + 8005432: 3301 adds r3, #1 + 8005434: 627b str r3, [r7, #36] ; 0x24 + 8005436: e793 b.n 8005360 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0xd8> + } + } configured_ = true; - 80055ec: 687b ldr r3, [r7, #4] - 80055ee: 2201 movs r2, #1 - 80055f0: f883 2684 strb.w r2, [r3, #1668] ; 0x684 + 8005438: 687b ldr r3, [r7, #4] + 800543a: 2201 movs r2, #1 + 800543c: f883 2684 strb.w r2, [r3, #1668] ; 0x684 } - 80055f4: bf00 nop - 80055f6: 372c adds r7, #44 ; 0x2c - 80055f8: 46bd mov sp, r7 - 80055fa: bd90 pop {r4, r7, pc} + 8005440: bf00 nop + 8005442: 372c adds r7, #44 ; 0x2c + 8005444: 46bd mov sp, r7 + 8005446: bd90 pop {r4, r7, pc} -080055fc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh>: +08005448 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh>: void syncTime(uint8_t * data) - 80055fc: b580 push {r7, lr} - 80055fe: b086 sub sp, #24 - 8005600: af00 add r7, sp, #0 - 8005602: 6078 str r0, [r7, #4] - 8005604: 6039 str r1, [r7, #0] + 8005448: b580 push {r7, lr} + 800544a: b086 sub sp, #24 + 800544c: af00 add r7, sp, #0 + 800544e: 6078 str r0, [r7, #4] + 8005450: 6039 str r1, [r7, #0] std_msgs::Time t; - 8005606: f107 0308 add.w r3, r7, #8 - 800560a: 4618 mov r0, r3 - 800560c: f7fe f9a2 bl 8003954 <_ZN8std_msgs4TimeC1Ev> + 8005452: f107 0308 add.w r3, r7, #8 + 8005456: 4618 mov r0, r3 + 8005458: f7fe fc02 bl 8003c60 <_ZN8std_msgs4TimeC1Ev> uint32_t offset = hardware_.time() - rt_time; - 8005610: 687b ldr r3, [r7, #4] - 8005612: 3304 adds r3, #4 - 8005614: 4618 mov r0, r3 - 8005616: f7ff f8f0 bl 80047fa <_ZN13STM32Hardware4timeEv> - 800561a: 4602 mov r2, r0 - 800561c: 687b ldr r3, [r7, #4] - 800561e: f8d3 3198 ldr.w r3, [r3, #408] ; 0x198 - 8005622: 1ad3 subs r3, r2, r3 - 8005624: 617b str r3, [r7, #20] + 800545c: 687b ldr r3, [r7, #4] + 800545e: 3304 adds r3, #4 + 8005460: 4618 mov r0, r3 + 8005462: f7ff fb50 bl 8004b06 <_ZN13STM32Hardware4timeEv> + 8005466: 4602 mov r2, r0 + 8005468: 687b ldr r3, [r7, #4] + 800546a: f8d3 3198 ldr.w r3, [r3, #408] ; 0x198 + 800546e: 1ad3 subs r3, r2, r3 + 8005470: 617b str r3, [r7, #20] t.deserialize(data); - 8005626: f107 0308 add.w r3, r7, #8 - 800562a: 6839 ldr r1, [r7, #0] - 800562c: 4618 mov r0, r3 - 800562e: f7fe fa01 bl 8003a34 <_ZN8std_msgs4Time11deserializeEPh> + 8005472: f107 0308 add.w r3, r7, #8 + 8005476: 6839 ldr r1, [r7, #0] + 8005478: 4618 mov r0, r3 + 800547a: f7fe fc61 bl 8003d40 <_ZN8std_msgs4Time11deserializeEPh> t.data.sec += offset / 1000; - 8005632: 68fa ldr r2, [r7, #12] - 8005634: 697b ldr r3, [r7, #20] - 8005636: 4915 ldr r1, [pc, #84] ; (800568c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh+0x90>) - 8005638: fba1 1303 umull r1, r3, r1, r3 - 800563c: 099b lsrs r3, r3, #6 - 800563e: 4413 add r3, r2 - 8005640: 60fb str r3, [r7, #12] + 800547e: 68fa ldr r2, [r7, #12] + 8005480: 697b ldr r3, [r7, #20] + 8005482: 4915 ldr r1, [pc, #84] ; (80054d8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh+0x90>) + 8005484: fba1 1303 umull r1, r3, r1, r3 + 8005488: 099b lsrs r3, r3, #6 + 800548a: 4413 add r3, r2 + 800548c: 60fb str r3, [r7, #12] t.data.nsec += (offset % 1000) * 1000000UL; - 8005642: 6939 ldr r1, [r7, #16] - 8005644: 697a ldr r2, [r7, #20] - 8005646: 4b11 ldr r3, [pc, #68] ; (800568c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh+0x90>) - 8005648: fba3 0302 umull r0, r3, r3, r2 - 800564c: 099b lsrs r3, r3, #6 - 800564e: f44f 707a mov.w r0, #1000 ; 0x3e8 - 8005652: fb00 f303 mul.w r3, r0, r3 - 8005656: 1ad3 subs r3, r2, r3 - 8005658: 4a0d ldr r2, [pc, #52] ; (8005690 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh+0x94>) - 800565a: fb02 f303 mul.w r3, r2, r3 - 800565e: 440b add r3, r1 - 8005660: 613b str r3, [r7, #16] + 800548e: 6939 ldr r1, [r7, #16] + 8005490: 697a ldr r2, [r7, #20] + 8005492: 4b11 ldr r3, [pc, #68] ; (80054d8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh+0x90>) + 8005494: fba3 0302 umull r0, r3, r3, r2 + 8005498: 099b lsrs r3, r3, #6 + 800549a: f44f 707a mov.w r0, #1000 ; 0x3e8 + 800549e: fb00 f303 mul.w r3, r0, r3 + 80054a2: 1ad3 subs r3, r2, r3 + 80054a4: 4a0d ldr r2, [pc, #52] ; (80054dc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh+0x94>) + 80054a6: fb02 f303 mul.w r3, r2, r3 + 80054aa: 440b add r3, r1 + 80054ac: 613b str r3, [r7, #16] this->setNow(t.data); - 8005662: f107 0308 add.w r3, r7, #8 - 8005666: 3304 adds r3, #4 - 8005668: 4619 mov r1, r3 - 800566a: 6878 ldr r0, [r7, #4] - 800566c: f000 f82e bl 80056cc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE> + 80054ae: f107 0308 add.w r3, r7, #8 + 80054b2: 3304 adds r3, #4 + 80054b4: 4619 mov r1, r3 + 80054b6: 6878 ldr r0, [r7, #4] + 80054b8: f000 f8a4 bl 8005604 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE> last_sync_receive_time = hardware_.time(); - 8005670: 687b ldr r3, [r7, #4] - 8005672: 3304 adds r3, #4 - 8005674: 4618 mov r0, r3 - 8005676: f7ff f8c0 bl 80047fa <_ZN13STM32Hardware4timeEv> - 800567a: 4602 mov r2, r0 - 800567c: 687b ldr r3, [r7, #4] - 800567e: f8c3 268c str.w r2, [r3, #1676] ; 0x68c - } - 8005682: bf00 nop - 8005684: 3718 adds r7, #24 - 8005686: 46bd mov sp, r7 - 8005688: bd80 pop {r7, pc} - 800568a: bf00 nop - 800568c: 10624dd3 .word 0x10624dd3 - 8005690: 000f4240 .word 0x000f4240 - -08005694 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE3logEcPKc>: - void log(char byte, const char * msg) - 8005694: b580 push {r7, lr} - 8005696: b088 sub sp, #32 - 8005698: af00 add r7, sp, #0 - 800569a: 60f8 str r0, [r7, #12] - 800569c: 460b mov r3, r1 - 800569e: 607a str r2, [r7, #4] - 80056a0: 72fb strb r3, [r7, #11] - rosserial_msgs::Log l; - 80056a2: f107 0314 add.w r3, r7, #20 - 80056a6: 4618 mov r0, r3 - 80056a8: f7fe fc08 bl 8003ebc <_ZN14rosserial_msgs3LogC1Ev> - l.level = byte; - 80056ac: 7afb ldrb r3, [r7, #11] - 80056ae: 763b strb r3, [r7, #24] - l.msg = (char*)msg; - 80056b0: 687b ldr r3, [r7, #4] - 80056b2: 61fb str r3, [r7, #28] - publish(rosserial_msgs::TopicInfo::ID_LOG, &l); - 80056b4: 68fb ldr r3, [r7, #12] - 80056b6: 681b ldr r3, [r3, #0] - 80056b8: 681b ldr r3, [r3, #0] - 80056ba: f107 0214 add.w r2, r7, #20 - 80056be: 2107 movs r1, #7 - 80056c0: 68f8 ldr r0, [r7, #12] - 80056c2: 4798 blx r3 - } - 80056c4: bf00 nop - 80056c6: 3720 adds r7, #32 - 80056c8: 46bd mov sp, r7 - 80056ca: bd80 pop {r7, pc} - -080056cc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE>: + 80054bc: 687b ldr r3, [r7, #4] + 80054be: 3304 adds r3, #4 + 80054c0: 4618 mov r0, r3 + 80054c2: f7ff fb20 bl 8004b06 <_ZN13STM32Hardware4timeEv> + 80054c6: 4602 mov r2, r0 + 80054c8: 687b ldr r3, [r7, #4] + 80054ca: f8c3 268c str.w r2, [r3, #1676] ; 0x68c + } + 80054ce: bf00 nop + 80054d0: 3718 adds r7, #24 + 80054d2: 46bd mov sp, r7 + 80054d4: bd80 pop {r7, pc} + 80054d6: bf00 nop + 80054d8: 10624dd3 .word 0x10624dd3 + 80054dc: 000f4240 .word 0x000f4240 + +080054e0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE>: + + virtual int publish(int id, const Msg * msg) + 80054e0: b580 push {r7, lr} + 80054e2: b088 sub sp, #32 + 80054e4: af00 add r7, sp, #0 + 80054e6: 60f8 str r0, [r7, #12] + 80054e8: 60b9 str r1, [r7, #8] + 80054ea: 607a str r2, [r7, #4] + { + if (id >= 100 && !configured_) + 80054ec: 68bb ldr r3, [r7, #8] + 80054ee: 2b63 cmp r3, #99 ; 0x63 + 80054f0: dd09 ble.n 8005506 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x26> + 80054f2: 68fb ldr r3, [r7, #12] + 80054f4: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 + 80054f8: f083 0301 eor.w r3, r3, #1 + 80054fc: b2db uxtb r3, r3 + 80054fe: 2b00 cmp r3, #0 + 8005500: d001 beq.n 8005506 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x26> + return 0; + 8005502: 2300 movs r3, #0 + 8005504: e077 b.n 80055f6 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x116> + + /* serialize message */ + int l = msg->serialize(message_out + 7); + 8005506: 687b ldr r3, [r7, #4] + 8005508: 681b ldr r3, [r3, #0] + 800550a: 681b ldr r3, [r3, #0] + 800550c: 68fa ldr r2, [r7, #12] + 800550e: f502 726a add.w r2, r2, #936 ; 0x3a8 + 8005512: 3207 adds r2, #7 + 8005514: 4611 mov r1, r2 + 8005516: 6878 ldr r0, [r7, #4] + 8005518: 4798 blx r3 + 800551a: 6178 str r0, [r7, #20] + + /* setup the header */ + message_out[0] = 0xff; + 800551c: 68fb ldr r3, [r7, #12] + 800551e: 22ff movs r2, #255 ; 0xff + 8005520: f883 23a8 strb.w r2, [r3, #936] ; 0x3a8 + message_out[1] = PROTOCOL_VER; + 8005524: 68fb ldr r3, [r7, #12] + 8005526: 22fe movs r2, #254 ; 0xfe + 8005528: f883 23a9 strb.w r2, [r3, #937] ; 0x3a9 + message_out[2] = (uint8_t)((uint16_t)l & 255); + 800552c: 697b ldr r3, [r7, #20] + 800552e: b2da uxtb r2, r3 + 8005530: 68fb ldr r3, [r7, #12] + 8005532: f883 23aa strb.w r2, [r3, #938] ; 0x3aa + message_out[3] = (uint8_t)((uint16_t)l >> 8); + 8005536: 697b ldr r3, [r7, #20] + 8005538: b29b uxth r3, r3 + 800553a: 121b asrs r3, r3, #8 + 800553c: b2da uxtb r2, r3 + 800553e: 68fb ldr r3, [r7, #12] + 8005540: f883 23ab strb.w r2, [r3, #939] ; 0x3ab + message_out[4] = 255 - ((message_out[2] + message_out[3]) % 256); + 8005544: 68fb ldr r3, [r7, #12] + 8005546: f893 23aa ldrb.w r2, [r3, #938] ; 0x3aa + 800554a: 68fb ldr r3, [r7, #12] + 800554c: f893 33ab ldrb.w r3, [r3, #939] ; 0x3ab + 8005550: 4413 add r3, r2 + 8005552: b2db uxtb r3, r3 + 8005554: 43db mvns r3, r3 + 8005556: b2da uxtb r2, r3 + 8005558: 68fb ldr r3, [r7, #12] + 800555a: f883 23ac strb.w r2, [r3, #940] ; 0x3ac + message_out[5] = (uint8_t)((int16_t)id & 255); + 800555e: 68bb ldr r3, [r7, #8] + 8005560: b2da uxtb r2, r3 + 8005562: 68fb ldr r3, [r7, #12] + 8005564: f883 23ad strb.w r2, [r3, #941] ; 0x3ad + message_out[6] = (uint8_t)((int16_t)id >> 8); + 8005568: 68bb ldr r3, [r7, #8] + 800556a: b21b sxth r3, r3 + 800556c: 121b asrs r3, r3, #8 + 800556e: b2da uxtb r2, r3 + 8005570: 68fb ldr r3, [r7, #12] + 8005572: f883 23ae strb.w r2, [r3, #942] ; 0x3ae + + /* calculate checksum */ + int chk = 0; + 8005576: 2300 movs r3, #0 + 8005578: 61fb str r3, [r7, #28] + for (int i = 5; i < l + 7; i++) + 800557a: 2305 movs r3, #5 + 800557c: 61bb str r3, [r7, #24] + 800557e: 697b ldr r3, [r7, #20] + 8005580: 3307 adds r3, #7 + 8005582: 69ba ldr r2, [r7, #24] + 8005584: 429a cmp r2, r3 + 8005586: da0d bge.n 80055a4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0xc4> + chk += message_out[i]; + 8005588: 68fa ldr r2, [r7, #12] + 800558a: 69bb ldr r3, [r7, #24] + 800558c: 4413 add r3, r2 + 800558e: f503 736a add.w r3, r3, #936 ; 0x3a8 + 8005592: 781b ldrb r3, [r3, #0] + 8005594: 461a mov r2, r3 + 8005596: 69fb ldr r3, [r7, #28] + 8005598: 4413 add r3, r2 + 800559a: 61fb str r3, [r7, #28] + for (int i = 5; i < l + 7; i++) + 800559c: 69bb ldr r3, [r7, #24] + 800559e: 3301 adds r3, #1 + 80055a0: 61bb str r3, [r7, #24] + 80055a2: e7ec b.n 800557e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x9e> + l += 7; + 80055a4: 697b ldr r3, [r7, #20] + 80055a6: 3307 adds r3, #7 + 80055a8: 617b str r3, [r7, #20] + message_out[l++] = 255 - (chk % 256); + 80055aa: 69fb ldr r3, [r7, #28] + 80055ac: 425a negs r2, r3 + 80055ae: b2db uxtb r3, r3 + 80055b0: b2d2 uxtb r2, r2 + 80055b2: bf58 it pl + 80055b4: 4253 negpl r3, r2 + 80055b6: b2da uxtb r2, r3 + 80055b8: 697b ldr r3, [r7, #20] + 80055ba: 1c59 adds r1, r3, #1 + 80055bc: 6179 str r1, [r7, #20] + 80055be: 43d2 mvns r2, r2 + 80055c0: b2d1 uxtb r1, r2 + 80055c2: 68fa ldr r2, [r7, #12] + 80055c4: 4413 add r3, r2 + 80055c6: 460a mov r2, r1 + 80055c8: f883 23a8 strb.w r2, [r3, #936] ; 0x3a8 + + if (l <= OUTPUT_SIZE) + 80055cc: 697b ldr r3, [r7, #20] + 80055ce: f5b3 7f00 cmp.w r3, #512 ; 0x200 + 80055d2: dc0a bgt.n 80055ea <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x10a> + { + hardware_.write(message_out, l); + 80055d4: 68fb ldr r3, [r7, #12] + 80055d6: 1d18 adds r0, r3, #4 + 80055d8: 68fb ldr r3, [r7, #12] + 80055da: f503 736a add.w r3, r3, #936 ; 0x3a8 + 80055de: 697a ldr r2, [r7, #20] + 80055e0: 4619 mov r1, r3 + 80055e2: f7ff fa4b bl 8004a7c <_ZN13STM32Hardware5writeEPhi> + return l; + 80055e6: 697b ldr r3, [r7, #20] + 80055e8: e005 b.n 80055f6 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x116> + } + else + { + logerror("Message from device dropped: message larger than buffer."); + 80055ea: 4905 ldr r1, [pc, #20] ; (8005600 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x120>) + 80055ec: 68f8 ldr r0, [r7, #12] + 80055ee: f000 f849 bl 8005684 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8logerrorEPKc> + return -1; + 80055f2: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + } + } + 80055f6: 4618 mov r0, r3 + 80055f8: 3720 adds r7, #32 + 80055fa: 46bd mov sp, r7 + 80055fc: bd80 pop {r7, pc} + 80055fe: bf00 nop + 8005600: 0800602c .word 0x0800602c + +08005604 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE>: void setNow(Time & new_now) - 80056cc: b580 push {r7, lr} - 80056ce: b084 sub sp, #16 - 80056d0: af00 add r7, sp, #0 - 80056d2: 6078 str r0, [r7, #4] - 80056d4: 6039 str r1, [r7, #0] + 8005604: b580 push {r7, lr} + 8005606: b084 sub sp, #16 + 8005608: af00 add r7, sp, #0 + 800560a: 6078 str r0, [r7, #4] + 800560c: 6039 str r1, [r7, #0] uint32_t ms = hardware_.time(); - 80056d6: 687b ldr r3, [r7, #4] - 80056d8: 3304 adds r3, #4 - 80056da: 4618 mov r0, r3 - 80056dc: f7ff f88d bl 80047fa <_ZN13STM32Hardware4timeEv> - 80056e0: 60f8 str r0, [r7, #12] + 800560e: 687b ldr r3, [r7, #4] + 8005610: 3304 adds r3, #4 + 8005612: 4618 mov r0, r3 + 8005614: f7ff fa77 bl 8004b06 <_ZN13STM32Hardware4timeEv> + 8005618: 60f8 str r0, [r7, #12] sec_offset = new_now.sec - ms / 1000 - 1; - 80056e2: 683b ldr r3, [r7, #0] - 80056e4: 681a ldr r2, [r3, #0] - 80056e6: 68fb ldr r3, [r7, #12] - 80056e8: 4915 ldr r1, [pc, #84] ; (8005740 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x74>) - 80056ea: fba1 1303 umull r1, r3, r1, r3 - 80056ee: 099b lsrs r3, r3, #6 - 80056f0: 1ad3 subs r3, r2, r3 - 80056f2: 1e5a subs r2, r3, #1 - 80056f4: 687b ldr r3, [r7, #4] - 80056f6: f8c3 219c str.w r2, [r3, #412] ; 0x19c + 800561a: 683b ldr r3, [r7, #0] + 800561c: 681a ldr r2, [r3, #0] + 800561e: 68fb ldr r3, [r7, #12] + 8005620: 4915 ldr r1, [pc, #84] ; (8005678 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x74>) + 8005622: fba1 1303 umull r1, r3, r1, r3 + 8005626: 099b lsrs r3, r3, #6 + 8005628: 1ad3 subs r3, r2, r3 + 800562a: 1e5a subs r2, r3, #1 + 800562c: 687b ldr r3, [r7, #4] + 800562e: f8c3 219c str.w r2, [r3, #412] ; 0x19c nsec_offset = new_now.nsec - (ms % 1000) * 1000000UL + 1000000000UL; - 80056fa: 683b ldr r3, [r7, #0] - 80056fc: 6859 ldr r1, [r3, #4] - 80056fe: 68fa ldr r2, [r7, #12] - 8005700: 4b0f ldr r3, [pc, #60] ; (8005740 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x74>) - 8005702: fba3 0302 umull r0, r3, r3, r2 - 8005706: 099b lsrs r3, r3, #6 - 8005708: f44f 707a mov.w r0, #1000 ; 0x3e8 - 800570c: fb00 f303 mul.w r3, r0, r3 - 8005710: 1ad3 subs r3, r2, r3 - 8005712: 4a0c ldr r2, [pc, #48] ; (8005744 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x78>) - 8005714: fb02 f303 mul.w r3, r2, r3 - 8005718: 1aca subs r2, r1, r3 - 800571a: 4b0b ldr r3, [pc, #44] ; (8005748 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x7c>) - 800571c: 4413 add r3, r2 - 800571e: 687a ldr r2, [r7, #4] - 8005720: f8c2 31a0 str.w r3, [r2, #416] ; 0x1a0 + 8005632: 683b ldr r3, [r7, #0] + 8005634: 6859 ldr r1, [r3, #4] + 8005636: 68fa ldr r2, [r7, #12] + 8005638: 4b0f ldr r3, [pc, #60] ; (8005678 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x74>) + 800563a: fba3 0302 umull r0, r3, r3, r2 + 800563e: 099b lsrs r3, r3, #6 + 8005640: f44f 707a mov.w r0, #1000 ; 0x3e8 + 8005644: fb00 f303 mul.w r3, r0, r3 + 8005648: 1ad3 subs r3, r2, r3 + 800564a: 4a0c ldr r2, [pc, #48] ; (800567c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x78>) + 800564c: fb02 f303 mul.w r3, r2, r3 + 8005650: 1aca subs r2, r1, r3 + 8005652: 4b0b ldr r3, [pc, #44] ; (8005680 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x7c>) + 8005654: 4413 add r3, r2 + 8005656: 687a ldr r2, [r7, #4] + 8005658: f8c2 31a0 str.w r3, [r2, #416] ; 0x1a0 normalizeSecNSec(sec_offset, nsec_offset); + 800565c: 687b ldr r3, [r7, #4] + 800565e: f503 72ce add.w r2, r3, #412 ; 0x19c + 8005662: 687b ldr r3, [r7, #4] + 8005664: f503 73d0 add.w r3, r3, #416 ; 0x1a0 + 8005668: 4619 mov r1, r3 + 800566a: 4610 mov r0, r2 + 800566c: f000 f8a8 bl 80057c0 <_ZN3ros16normalizeSecNSecERmS0_> + } + 8005670: bf00 nop + 8005672: 3710 adds r7, #16 + 8005674: 46bd mov sp, r7 + 8005676: bd80 pop {r7, pc} + 8005678: 10624dd3 .word 0x10624dd3 + 800567c: 000f4240 .word 0x000f4240 + 8005680: 3b9aca00 .word 0x3b9aca00 + +08005684 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8logerrorEPKc>: + } + void logwarn(const char *msg) + { + log(rosserial_msgs::Log::WARN, msg); + } + void logerror(const char*msg) + 8005684: b580 push {r7, lr} + 8005686: b082 sub sp, #8 + 8005688: af00 add r7, sp, #0 + 800568a: 6078 str r0, [r7, #4] + 800568c: 6039 str r1, [r7, #0] + { + log(rosserial_msgs::Log::ERROR, msg); + 800568e: 683a ldr r2, [r7, #0] + 8005690: 2103 movs r1, #3 + 8005692: 6878 ldr r0, [r7, #4] + 8005694: f000 f804 bl 80056a0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE3logEcPKc> + } + 8005698: bf00 nop + 800569a: 3708 adds r7, #8 + 800569c: 46bd mov sp, r7 + 800569e: bd80 pop {r7, pc} + +080056a0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE3logEcPKc>: + void log(char byte, const char * msg) + 80056a0: b580 push {r7, lr} + 80056a2: b088 sub sp, #32 + 80056a4: af00 add r7, sp, #0 + 80056a6: 60f8 str r0, [r7, #12] + 80056a8: 460b mov r3, r1 + 80056aa: 607a str r2, [r7, #4] + 80056ac: 72fb strb r3, [r7, #11] + rosserial_msgs::Log l; + 80056ae: f107 0314 add.w r3, r7, #20 + 80056b2: 4618 mov r0, r3 + 80056b4: f7fe fd88 bl 80041c8 <_ZN14rosserial_msgs3LogC1Ev> + l.level = byte; + 80056b8: 7afb ldrb r3, [r7, #11] + 80056ba: 763b strb r3, [r7, #24] + l.msg = (char*)msg; + 80056bc: 687b ldr r3, [r7, #4] + 80056be: 61fb str r3, [r7, #28] + publish(rosserial_msgs::TopicInfo::ID_LOG, &l); + 80056c0: 68fb ldr r3, [r7, #12] + 80056c2: 681b ldr r3, [r3, #0] + 80056c4: 681b ldr r3, [r3, #0] + 80056c6: f107 0214 add.w r2, r7, #20 + 80056ca: 2107 movs r1, #7 + 80056cc: 68f8 ldr r0, [r7, #12] + 80056ce: 4798 blx r3 + } + 80056d0: bf00 nop + 80056d2: 3720 adds r7, #32 + 80056d4: 46bd mov sp, r7 + 80056d6: bd80 pop {r7, pc} + +080056d8 <_Z41__static_initialization_and_destruction_0ii>: + 80056d8: b580 push {r7, lr} + 80056da: b082 sub sp, #8 + 80056dc: af00 add r7, sp, #0 + 80056de: 6078 str r0, [r7, #4] + 80056e0: 6039 str r1, [r7, #0] + 80056e2: 687b ldr r3, [r7, #4] + 80056e4: 2b01 cmp r3, #1 + 80056e6: d10d bne.n 8005704 <_Z41__static_initialization_and_destruction_0ii+0x2c> + 80056e8: 683b ldr r3, [r7, #0] + 80056ea: f64f 72ff movw r2, #65535 ; 0xffff + 80056ee: 4293 cmp r3, r2 + 80056f0: d108 bne.n 8005704 <_Z41__static_initialization_and_destruction_0ii+0x2c> +ros::Subscriber led_sub("led", &led_cb); + 80056f2: 2301 movs r3, #1 + 80056f4: 4a05 ldr r2, [pc, #20] ; (800570c <_Z41__static_initialization_and_destruction_0ii+0x34>) + 80056f6: 4906 ldr r1, [pc, #24] ; (8005710 <_Z41__static_initialization_and_destruction_0ii+0x38>) + 80056f8: 4806 ldr r0, [pc, #24] ; (8005714 <_Z41__static_initialization_and_destruction_0ii+0x3c>) + 80056fa: f7ff fac1 bl 8004c80 <_ZN3ros10SubscriberIN8std_msgs5UInt8EvEC1EPKcPFvRKS2_Ei> +ros::NodeHandle nh; + 80056fe: 4806 ldr r0, [pc, #24] ; (8005718 <_Z41__static_initialization_and_destruction_0ii+0x40>) + 8005700: f7ff faf2 bl 8004ce8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev> +} + 8005704: bf00 nop + 8005706: 3708 adds r7, #8 + 8005708: 46bd mov sp, r7 + 800570a: bd80 pop {r7, pc} + 800570c: 08004ba1 .word 0x08004ba1 + 8005710: 08006068 .word 0x08006068 + 8005714: 20000214 .word 0x20000214 + 8005718: 20000230 .word 0x20000230 + +0800571c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9connectedEv>: + virtual bool connected() + 800571c: b480 push {r7} + 800571e: b083 sub sp, #12 + 8005720: af00 add r7, sp, #0 + 8005722: 6078 str r0, [r7, #4] + return configured_; 8005724: 687b ldr r3, [r7, #4] - 8005726: f503 72ce add.w r2, r3, #412 ; 0x19c - 800572a: 687b ldr r3, [r7, #4] - 800572c: f503 73d0 add.w r3, r3, #416 ; 0x1a0 - 8005730: 4619 mov r1, r3 - 8005732: 4610 mov r0, r2 - 8005734: f000 f812 bl 800575c <_ZN3ros16normalizeSecNSecERmS0_> - } - 8005738: bf00 nop - 800573a: 3710 adds r7, #16 - 800573c: 46bd mov sp, r7 - 800573e: bd80 pop {r7, pc} - 8005740: 10624dd3 .word 0x10624dd3 - 8005744: 000f4240 .word 0x000f4240 - 8005748: 3b9aca00 .word 0x3b9aca00 - -0800574c <_GLOBAL__sub_I_htim2>: - 800574c: b580 push {r7, lr} - 800574e: af00 add r7, sp, #0 - 8005750: f64f 71ff movw r1, #65535 ; 0xffff - 8005754: 2001 movs r0, #1 - 8005756: f7ff fb6f bl 8004e38 <_Z41__static_initialization_and_destruction_0ii> - 800575a: bd80 pop {r7, pc} - -0800575c <_ZN3ros16normalizeSecNSecERmS0_>: + 8005726: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 + }; + 800572a: 4618 mov r0, r3 + 800572c: 370c adds r7, #12 + 800572e: 46bd mov sp, r7 + 8005730: f85d 7b04 ldr.w r7, [sp], #4 + 8005734: 4770 bx lr + +08005736 <_ZN3ros10SubscriberIN8std_msgs5UInt8EvE8callbackEPh>: + + virtual void callback(unsigned char* data) + 8005736: b580 push {r7, lr} + 8005738: b082 sub sp, #8 + 800573a: af00 add r7, sp, #0 + 800573c: 6078 str r0, [r7, #4] + 800573e: 6039 str r1, [r7, #0] + { + msg.deserialize(data); + 8005740: 687b ldr r3, [r7, #4] + 8005742: 330c adds r3, #12 + 8005744: 6839 ldr r1, [r7, #0] + 8005746: 4618 mov r0, r3 + 8005748: f7fe fa45 bl 8003bd6 <_ZN8std_msgs5UInt811deserializeEPh> + this->cb_(msg); + 800574c: 687b ldr r3, [r7, #4] + 800574e: 695b ldr r3, [r3, #20] + 8005750: 687a ldr r2, [r7, #4] + 8005752: 320c adds r2, #12 + 8005754: 4610 mov r0, r2 + 8005756: 4798 blx r3 + } + 8005758: bf00 nop + 800575a: 3708 adds r7, #8 + 800575c: 46bd mov sp, r7 + 800575e: bd80 pop {r7, pc} + +08005760 <_ZN3ros10SubscriberIN8std_msgs5UInt8EvE15getEndpointTypeEv>: + } + virtual const char * getMsgMD5() + { + return this->msg.getMD5(); + } + virtual int getEndpointType() + 8005760: b480 push {r7} + 8005762: b083 sub sp, #12 + 8005764: af00 add r7, sp, #0 + 8005766: 6078 str r0, [r7, #4] + { + return endpoint_; + 8005768: 687b ldr r3, [r7, #4] + 800576a: 699b ldr r3, [r3, #24] + } + 800576c: 4618 mov r0, r3 + 800576e: 370c adds r7, #12 + 8005770: 46bd mov sp, r7 + 8005772: f85d 7b04 ldr.w r7, [sp], #4 + 8005776: 4770 bx lr + +08005778 <_ZN3ros10SubscriberIN8std_msgs5UInt8EvE10getMsgTypeEv>: + virtual const char * getMsgType() + 8005778: b580 push {r7, lr} + 800577a: b082 sub sp, #8 + 800577c: af00 add r7, sp, #0 + 800577e: 6078 str r0, [r7, #4] + return this->msg.getType(); + 8005780: 687b ldr r3, [r7, #4] + 8005782: 330c adds r3, #12 + 8005784: 4618 mov r0, r3 + 8005786: f7fe fa3d bl 8003c04 <_ZN8std_msgs5UInt87getTypeEv> + 800578a: 4603 mov r3, r0 + } + 800578c: 4618 mov r0, r3 + 800578e: 3708 adds r7, #8 + 8005790: 46bd mov sp, r7 + 8005792: bd80 pop {r7, pc} + +08005794 <_ZN3ros10SubscriberIN8std_msgs5UInt8EvE9getMsgMD5Ev>: + virtual const char * getMsgMD5() + 8005794: b580 push {r7, lr} + 8005796: b082 sub sp, #8 + 8005798: af00 add r7, sp, #0 + 800579a: 6078 str r0, [r7, #4] + return this->msg.getMD5(); + 800579c: 687b ldr r3, [r7, #4] + 800579e: 330c adds r3, #12 + 80057a0: 4618 mov r0, r3 + 80057a2: f7fe fa3d bl 8003c20 <_ZN8std_msgs5UInt86getMD5Ev> + 80057a6: 4603 mov r3, r0 + } + 80057a8: 4618 mov r0, r3 + 80057aa: 3708 adds r7, #8 + 80057ac: 46bd mov sp, r7 + 80057ae: bd80 pop {r7, pc} + +080057b0 <_GLOBAL__sub_I_led_sub>: + 80057b0: b580 push {r7, lr} + 80057b2: af00 add r7, sp, #0 + 80057b4: f64f 71ff movw r1, #65535 ; 0xffff + 80057b8: 2001 movs r0, #1 + 80057ba: f7ff ff8d bl 80056d8 <_Z41__static_initialization_and_destruction_0ii> + 80057be: bd80 pop {r7, pc} + +080057c0 <_ZN3ros16normalizeSecNSecERmS0_>: #include "ros/ros_time.h" namespace ros { void normalizeSecNSec(uint32_t& sec, uint32_t& nsec) { - 800575c: b480 push {r7} - 800575e: b085 sub sp, #20 - 8005760: af00 add r7, sp, #0 - 8005762: 6078 str r0, [r7, #4] - 8005764: 6039 str r1, [r7, #0] + 80057c0: b480 push {r7} + 80057c2: b085 sub sp, #20 + 80057c4: af00 add r7, sp, #0 + 80057c6: 6078 str r0, [r7, #4] + 80057c8: 6039 str r1, [r7, #0] uint32_t nsec_part = nsec % 1000000000UL; - 8005766: 683b ldr r3, [r7, #0] - 8005768: 681b ldr r3, [r3, #0] - 800576a: 0a5a lsrs r2, r3, #9 - 800576c: 490f ldr r1, [pc, #60] ; (80057ac <_ZN3ros16normalizeSecNSecERmS0_+0x50>) - 800576e: fba1 1202 umull r1, r2, r1, r2 - 8005772: 09d2 lsrs r2, r2, #7 - 8005774: 490e ldr r1, [pc, #56] ; (80057b0 <_ZN3ros16normalizeSecNSecERmS0_+0x54>) - 8005776: fb01 f202 mul.w r2, r1, r2 - 800577a: 1a9b subs r3, r3, r2 - 800577c: 60fb str r3, [r7, #12] + 80057ca: 683b ldr r3, [r7, #0] + 80057cc: 681b ldr r3, [r3, #0] + 80057ce: 0a5a lsrs r2, r3, #9 + 80057d0: 490f ldr r1, [pc, #60] ; (8005810 <_ZN3ros16normalizeSecNSecERmS0_+0x50>) + 80057d2: fba1 1202 umull r1, r2, r1, r2 + 80057d6: 09d2 lsrs r2, r2, #7 + 80057d8: 490e ldr r1, [pc, #56] ; (8005814 <_ZN3ros16normalizeSecNSecERmS0_+0x54>) + 80057da: fb01 f202 mul.w r2, r1, r2 + 80057de: 1a9b subs r3, r3, r2 + 80057e0: 60fb str r3, [r7, #12] uint32_t sec_part = nsec / 1000000000UL; - 800577e: 683b ldr r3, [r7, #0] - 8005780: 681b ldr r3, [r3, #0] - 8005782: 0a5b lsrs r3, r3, #9 - 8005784: 4a09 ldr r2, [pc, #36] ; (80057ac <_ZN3ros16normalizeSecNSecERmS0_+0x50>) - 8005786: fba2 2303 umull r2, r3, r2, r3 - 800578a: 09db lsrs r3, r3, #7 - 800578c: 60bb str r3, [r7, #8] + 80057e2: 683b ldr r3, [r7, #0] + 80057e4: 681b ldr r3, [r3, #0] + 80057e6: 0a5b lsrs r3, r3, #9 + 80057e8: 4a09 ldr r2, [pc, #36] ; (8005810 <_ZN3ros16normalizeSecNSecERmS0_+0x50>) + 80057ea: fba2 2303 umull r2, r3, r2, r3 + 80057ee: 09db lsrs r3, r3, #7 + 80057f0: 60bb str r3, [r7, #8] sec += sec_part; - 800578e: 687b ldr r3, [r7, #4] - 8005790: 681a ldr r2, [r3, #0] - 8005792: 68bb ldr r3, [r7, #8] - 8005794: 441a add r2, r3 - 8005796: 687b ldr r3, [r7, #4] - 8005798: 601a str r2, [r3, #0] + 80057f2: 687b ldr r3, [r7, #4] + 80057f4: 681a ldr r2, [r3, #0] + 80057f6: 68bb ldr r3, [r7, #8] + 80057f8: 441a add r2, r3 + 80057fa: 687b ldr r3, [r7, #4] + 80057fc: 601a str r2, [r3, #0] nsec = nsec_part; - 800579a: 683b ldr r3, [r7, #0] - 800579c: 68fa ldr r2, [r7, #12] - 800579e: 601a str r2, [r3, #0] + 80057fe: 683b ldr r3, [r7, #0] + 8005800: 68fa ldr r2, [r7, #12] + 8005802: 601a str r2, [r3, #0] } - 80057a0: bf00 nop - 80057a2: 3714 adds r7, #20 - 80057a4: 46bd mov sp, r7 - 80057a6: f85d 7b04 ldr.w r7, [sp], #4 - 80057aa: 4770 bx lr - 80057ac: 00044b83 .word 0x00044b83 - 80057b0: 3b9aca00 .word 0x3b9aca00 - -080057b4 : + 8005804: bf00 nop + 8005806: 3714 adds r7, #20 + 8005808: 46bd mov sp, r7 + 800580a: f85d 7b04 ldr.w r7, [sp], #4 + 800580e: 4770 bx lr + 8005810: 00044b83 .word 0x00044b83 + 8005814: 3b9aca00 .word 0x3b9aca00 + +08005818 : /* USER CODE END 0 */ /** * Initializes the Global MSP. */ void HAL_MspInit(void) { - 80057b4: b480 push {r7} - 80057b6: b083 sub sp, #12 - 80057b8: af00 add r7, sp, #0 + 8005818: b480 push {r7} + 800581a: b083 sub sp, #12 + 800581c: af00 add r7, sp, #0 /* USER CODE BEGIN MspInit 0 */ /* USER CODE END MspInit 0 */ __HAL_RCC_PWR_CLK_ENABLE(); - 80057ba: 4b0f ldr r3, [pc, #60] ; (80057f8 ) - 80057bc: 6c1b ldr r3, [r3, #64] ; 0x40 - 80057be: 4a0e ldr r2, [pc, #56] ; (80057f8 ) - 80057c0: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 80057c4: 6413 str r3, [r2, #64] ; 0x40 - 80057c6: 4b0c ldr r3, [pc, #48] ; (80057f8 ) - 80057c8: 6c1b ldr r3, [r3, #64] ; 0x40 - 80057ca: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 80057ce: 607b str r3, [r7, #4] - 80057d0: 687b ldr r3, [r7, #4] + 800581e: 4b0f ldr r3, [pc, #60] ; (800585c ) + 8005820: 6c1b ldr r3, [r3, #64] ; 0x40 + 8005822: 4a0e ldr r2, [pc, #56] ; (800585c ) + 8005824: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8005828: 6413 str r3, [r2, #64] ; 0x40 + 800582a: 4b0c ldr r3, [pc, #48] ; (800585c ) + 800582c: 6c1b ldr r3, [r3, #64] ; 0x40 + 800582e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8005832: 607b str r3, [r7, #4] + 8005834: 687b ldr r3, [r7, #4] __HAL_RCC_SYSCFG_CLK_ENABLE(); - 80057d2: 4b09 ldr r3, [pc, #36] ; (80057f8 ) - 80057d4: 6c5b ldr r3, [r3, #68] ; 0x44 - 80057d6: 4a08 ldr r2, [pc, #32] ; (80057f8 ) - 80057d8: f443 4380 orr.w r3, r3, #16384 ; 0x4000 - 80057dc: 6453 str r3, [r2, #68] ; 0x44 - 80057de: 4b06 ldr r3, [pc, #24] ; (80057f8 ) - 80057e0: 6c5b ldr r3, [r3, #68] ; 0x44 - 80057e2: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 80057e6: 603b str r3, [r7, #0] - 80057e8: 683b ldr r3, [r7, #0] + 8005836: 4b09 ldr r3, [pc, #36] ; (800585c ) + 8005838: 6c5b ldr r3, [r3, #68] ; 0x44 + 800583a: 4a08 ldr r2, [pc, #32] ; (800585c ) + 800583c: f443 4380 orr.w r3, r3, #16384 ; 0x4000 + 8005840: 6453 str r3, [r2, #68] ; 0x44 + 8005842: 4b06 ldr r3, [pc, #24] ; (800585c ) + 8005844: 6c5b ldr r3, [r3, #68] ; 0x44 + 8005846: f403 4380 and.w r3, r3, #16384 ; 0x4000 + 800584a: 603b str r3, [r7, #0] + 800584c: 683b ldr r3, [r7, #0] /* System interrupt init*/ /* USER CODE BEGIN MspInit 1 */ /* USER CODE END MspInit 1 */ } - 80057ea: bf00 nop - 80057ec: 370c adds r7, #12 - 80057ee: 46bd mov sp, r7 - 80057f0: f85d 7b04 ldr.w r7, [sp], #4 - 80057f4: 4770 bx lr - 80057f6: bf00 nop - 80057f8: 40023800 .word 0x40023800 - -080057fc : + 800584e: bf00 nop + 8005850: 370c adds r7, #12 + 8005852: 46bd mov sp, r7 + 8005854: f85d 7b04 ldr.w r7, [sp], #4 + 8005858: 4770 bx lr + 800585a: bf00 nop + 800585c: 40023800 .word 0x40023800 + +08005860 : * This function configures the hardware resources used in this example * @param htim_base: TIM_Base handle pointer * @retval None */ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) { - 80057fc: b480 push {r7} - 80057fe: b085 sub sp, #20 - 8005800: af00 add r7, sp, #0 - 8005802: 6078 str r0, [r7, #4] + 8005860: b480 push {r7} + 8005862: b085 sub sp, #20 + 8005864: af00 add r7, sp, #0 + 8005866: 6078 str r0, [r7, #4] if(htim_base->Instance==TIM2) - 8005804: 687b ldr r3, [r7, #4] - 8005806: 681b ldr r3, [r3, #0] - 8005808: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 - 800580c: d10b bne.n 8005826 + 8005868: 687b ldr r3, [r7, #4] + 800586a: 681b ldr r3, [r3, #0] + 800586c: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 8005870: d10b bne.n 800588a { /* USER CODE BEGIN TIM2_MspInit 0 */ /* USER CODE END TIM2_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_TIM2_CLK_ENABLE(); - 800580e: 4b09 ldr r3, [pc, #36] ; (8005834 ) - 8005810: 6c1b ldr r3, [r3, #64] ; 0x40 - 8005812: 4a08 ldr r2, [pc, #32] ; (8005834 ) - 8005814: f043 0301 orr.w r3, r3, #1 - 8005818: 6413 str r3, [r2, #64] ; 0x40 - 800581a: 4b06 ldr r3, [pc, #24] ; (8005834 ) - 800581c: 6c1b ldr r3, [r3, #64] ; 0x40 - 800581e: f003 0301 and.w r3, r3, #1 - 8005822: 60fb str r3, [r7, #12] - 8005824: 68fb ldr r3, [r7, #12] + 8005872: 4b09 ldr r3, [pc, #36] ; (8005898 ) + 8005874: 6c1b ldr r3, [r3, #64] ; 0x40 + 8005876: 4a08 ldr r2, [pc, #32] ; (8005898 ) + 8005878: f043 0301 orr.w r3, r3, #1 + 800587c: 6413 str r3, [r2, #64] ; 0x40 + 800587e: 4b06 ldr r3, [pc, #24] ; (8005898 ) + 8005880: 6c1b ldr r3, [r3, #64] ; 0x40 + 8005882: f003 0301 and.w r3, r3, #1 + 8005886: 60fb str r3, [r7, #12] + 8005888: 68fb ldr r3, [r7, #12] /* USER CODE BEGIN TIM2_MspInit 1 */ /* USER CODE END TIM2_MspInit 1 */ } } - 8005826: bf00 nop - 8005828: 3714 adds r7, #20 - 800582a: 46bd mov sp, r7 - 800582c: f85d 7b04 ldr.w r7, [sp], #4 - 8005830: 4770 bx lr - 8005832: bf00 nop - 8005834: 40023800 .word 0x40023800 - -08005838 : + 800588a: bf00 nop + 800588c: 3714 adds r7, #20 + 800588e: 46bd mov sp, r7 + 8005890: f85d 7b04 ldr.w r7, [sp], #4 + 8005894: 4770 bx lr + 8005896: bf00 nop + 8005898: 40023800 .word 0x40023800 + +0800589c : * This function configures the hardware resources used in this example * @param huart: UART handle pointer * @retval None */ void HAL_UART_MspInit(UART_HandleTypeDef* huart) { - 8005838: b580 push {r7, lr} - 800583a: b08a sub sp, #40 ; 0x28 - 800583c: af00 add r7, sp, #0 - 800583e: 6078 str r0, [r7, #4] + 800589c: b580 push {r7, lr} + 800589e: b08a sub sp, #40 ; 0x28 + 80058a0: af00 add r7, sp, #0 + 80058a2: 6078 str r0, [r7, #4] GPIO_InitTypeDef GPIO_InitStruct = {0}; - 8005840: f107 0314 add.w r3, r7, #20 - 8005844: 2200 movs r2, #0 - 8005846: 601a str r2, [r3, #0] - 8005848: 605a str r2, [r3, #4] - 800584a: 609a str r2, [r3, #8] - 800584c: 60da str r2, [r3, #12] - 800584e: 611a str r2, [r3, #16] + 80058a4: f107 0314 add.w r3, r7, #20 + 80058a8: 2200 movs r2, #0 + 80058aa: 601a str r2, [r3, #0] + 80058ac: 605a str r2, [r3, #4] + 80058ae: 609a str r2, [r3, #8] + 80058b0: 60da str r2, [r3, #12] + 80058b2: 611a str r2, [r3, #16] if(huart->Instance==USART3) - 8005850: 687b ldr r3, [r7, #4] - 8005852: 681b ldr r3, [r3, #0] - 8005854: 4a4a ldr r2, [pc, #296] ; (8005980 ) - 8005856: 4293 cmp r3, r2 - 8005858: f040 808d bne.w 8005976 + 80058b4: 687b ldr r3, [r7, #4] + 80058b6: 681b ldr r3, [r3, #0] + 80058b8: 4a4a ldr r2, [pc, #296] ; (80059e4 ) + 80058ba: 4293 cmp r3, r2 + 80058bc: f040 808d bne.w 80059da { /* USER CODE BEGIN USART3_MspInit 0 */ /* USER CODE END USART3_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_USART3_CLK_ENABLE(); - 800585c: 4b49 ldr r3, [pc, #292] ; (8005984 ) - 800585e: 6c1b ldr r3, [r3, #64] ; 0x40 - 8005860: 4a48 ldr r2, [pc, #288] ; (8005984 ) - 8005862: f443 2380 orr.w r3, r3, #262144 ; 0x40000 - 8005866: 6413 str r3, [r2, #64] ; 0x40 - 8005868: 4b46 ldr r3, [pc, #280] ; (8005984 ) - 800586a: 6c1b ldr r3, [r3, #64] ; 0x40 - 800586c: f403 2380 and.w r3, r3, #262144 ; 0x40000 - 8005870: 613b str r3, [r7, #16] - 8005872: 693b ldr r3, [r7, #16] + 80058c0: 4b49 ldr r3, [pc, #292] ; (80059e8 ) + 80058c2: 6c1b ldr r3, [r3, #64] ; 0x40 + 80058c4: 4a48 ldr r2, [pc, #288] ; (80059e8 ) + 80058c6: f443 2380 orr.w r3, r3, #262144 ; 0x40000 + 80058ca: 6413 str r3, [r2, #64] ; 0x40 + 80058cc: 4b46 ldr r3, [pc, #280] ; (80059e8 ) + 80058ce: 6c1b ldr r3, [r3, #64] ; 0x40 + 80058d0: f403 2380 and.w r3, r3, #262144 ; 0x40000 + 80058d4: 613b str r3, [r7, #16] + 80058d6: 693b ldr r3, [r7, #16] __HAL_RCC_GPIOD_CLK_ENABLE(); - 8005874: 4b43 ldr r3, [pc, #268] ; (8005984 ) - 8005876: 6b1b ldr r3, [r3, #48] ; 0x30 - 8005878: 4a42 ldr r2, [pc, #264] ; (8005984 ) - 800587a: f043 0308 orr.w r3, r3, #8 - 800587e: 6313 str r3, [r2, #48] ; 0x30 - 8005880: 4b40 ldr r3, [pc, #256] ; (8005984 ) - 8005882: 6b1b ldr r3, [r3, #48] ; 0x30 - 8005884: f003 0308 and.w r3, r3, #8 - 8005888: 60fb str r3, [r7, #12] - 800588a: 68fb ldr r3, [r7, #12] + 80058d8: 4b43 ldr r3, [pc, #268] ; (80059e8 ) + 80058da: 6b1b ldr r3, [r3, #48] ; 0x30 + 80058dc: 4a42 ldr r2, [pc, #264] ; (80059e8 ) + 80058de: f043 0308 orr.w r3, r3, #8 + 80058e2: 6313 str r3, [r2, #48] ; 0x30 + 80058e4: 4b40 ldr r3, [pc, #256] ; (80059e8 ) + 80058e6: 6b1b ldr r3, [r3, #48] ; 0x30 + 80058e8: f003 0308 and.w r3, r3, #8 + 80058ec: 60fb str r3, [r7, #12] + 80058ee: 68fb ldr r3, [r7, #12] /**USART3 GPIO Configuration PD8 ------> USART3_TX PD9 ------> USART3_RX */ GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9; - 800588c: f44f 7340 mov.w r3, #768 ; 0x300 - 8005890: 617b str r3, [r7, #20] + 80058f0: f44f 7340 mov.w r3, #768 ; 0x300 + 80058f4: 617b str r3, [r7, #20] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8005892: 2302 movs r3, #2 - 8005894: 61bb str r3, [r7, #24] + 80058f6: 2302 movs r3, #2 + 80058f8: 61bb str r3, [r7, #24] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8005896: 2300 movs r3, #0 - 8005898: 61fb str r3, [r7, #28] + 80058fa: 2300 movs r3, #0 + 80058fc: 61fb str r3, [r7, #28] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 800589a: 2303 movs r3, #3 - 800589c: 623b str r3, [r7, #32] + 80058fe: 2303 movs r3, #3 + 8005900: 623b str r3, [r7, #32] GPIO_InitStruct.Alternate = GPIO_AF7_USART3; - 800589e: 2307 movs r3, #7 - 80058a0: 627b str r3, [r7, #36] ; 0x24 + 8005902: 2307 movs r3, #7 + 8005904: 627b str r3, [r7, #36] ; 0x24 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - 80058a2: f107 0314 add.w r3, r7, #20 - 80058a6: 4619 mov r1, r3 - 80058a8: 4837 ldr r0, [pc, #220] ; (8005988 ) - 80058aa: f7fb fb77 bl 8000f9c + 8005906: f107 0314 add.w r3, r7, #20 + 800590a: 4619 mov r1, r3 + 800590c: 4837 ldr r0, [pc, #220] ; (80059ec ) + 800590e: f7fb fb45 bl 8000f9c /* USART3 DMA Init */ /* USART3_RX Init */ hdma_usart3_rx.Instance = DMA1_Stream1; - 80058ae: 4b37 ldr r3, [pc, #220] ; (800598c ) - 80058b0: 4a37 ldr r2, [pc, #220] ; (8005990 ) - 80058b2: 601a str r2, [r3, #0] + 8005912: 4b37 ldr r3, [pc, #220] ; (80059f0 ) + 8005914: 4a37 ldr r2, [pc, #220] ; (80059f4 ) + 8005916: 601a str r2, [r3, #0] hdma_usart3_rx.Init.Channel = DMA_CHANNEL_4; - 80058b4: 4b35 ldr r3, [pc, #212] ; (800598c ) - 80058b6: f04f 6200 mov.w r2, #134217728 ; 0x8000000 - 80058ba: 605a str r2, [r3, #4] + 8005918: 4b35 ldr r3, [pc, #212] ; (80059f0 ) + 800591a: f04f 6200 mov.w r2, #134217728 ; 0x8000000 + 800591e: 605a str r2, [r3, #4] hdma_usart3_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; - 80058bc: 4b33 ldr r3, [pc, #204] ; (800598c ) - 80058be: 2200 movs r2, #0 - 80058c0: 609a str r2, [r3, #8] + 8005920: 4b33 ldr r3, [pc, #204] ; (80059f0 ) + 8005922: 2200 movs r2, #0 + 8005924: 609a str r2, [r3, #8] hdma_usart3_rx.Init.PeriphInc = DMA_PINC_DISABLE; - 80058c2: 4b32 ldr r3, [pc, #200] ; (800598c ) - 80058c4: 2200 movs r2, #0 - 80058c6: 60da str r2, [r3, #12] + 8005926: 4b32 ldr r3, [pc, #200] ; (80059f0 ) + 8005928: 2200 movs r2, #0 + 800592a: 60da str r2, [r3, #12] hdma_usart3_rx.Init.MemInc = DMA_MINC_ENABLE; - 80058c8: 4b30 ldr r3, [pc, #192] ; (800598c ) - 80058ca: f44f 6280 mov.w r2, #1024 ; 0x400 - 80058ce: 611a str r2, [r3, #16] + 800592c: 4b30 ldr r3, [pc, #192] ; (80059f0 ) + 800592e: f44f 6280 mov.w r2, #1024 ; 0x400 + 8005932: 611a str r2, [r3, #16] hdma_usart3_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; - 80058d0: 4b2e ldr r3, [pc, #184] ; (800598c ) - 80058d2: 2200 movs r2, #0 - 80058d4: 615a str r2, [r3, #20] + 8005934: 4b2e ldr r3, [pc, #184] ; (80059f0 ) + 8005936: 2200 movs r2, #0 + 8005938: 615a str r2, [r3, #20] hdma_usart3_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; - 80058d6: 4b2d ldr r3, [pc, #180] ; (800598c ) - 80058d8: 2200 movs r2, #0 - 80058da: 619a str r2, [r3, #24] + 800593a: 4b2d ldr r3, [pc, #180] ; (80059f0 ) + 800593c: 2200 movs r2, #0 + 800593e: 619a str r2, [r3, #24] hdma_usart3_rx.Init.Mode = DMA_NORMAL; - 80058dc: 4b2b ldr r3, [pc, #172] ; (800598c ) - 80058de: 2200 movs r2, #0 - 80058e0: 61da str r2, [r3, #28] + 8005940: 4b2b ldr r3, [pc, #172] ; (80059f0 ) + 8005942: 2200 movs r2, #0 + 8005944: 61da str r2, [r3, #28] hdma_usart3_rx.Init.Priority = DMA_PRIORITY_LOW; - 80058e2: 4b2a ldr r3, [pc, #168] ; (800598c ) - 80058e4: 2200 movs r2, #0 - 80058e6: 621a str r2, [r3, #32] + 8005946: 4b2a ldr r3, [pc, #168] ; (80059f0 ) + 8005948: 2200 movs r2, #0 + 800594a: 621a str r2, [r3, #32] hdma_usart3_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; - 80058e8: 4b28 ldr r3, [pc, #160] ; (800598c ) - 80058ea: 2200 movs r2, #0 - 80058ec: 625a str r2, [r3, #36] ; 0x24 + 800594c: 4b28 ldr r3, [pc, #160] ; (80059f0 ) + 800594e: 2200 movs r2, #0 + 8005950: 625a str r2, [r3, #36] ; 0x24 if (HAL_DMA_Init(&hdma_usart3_rx) != HAL_OK) - 80058ee: 4827 ldr r0, [pc, #156] ; (800598c ) - 80058f0: f7fa ffbc bl 800086c - 80058f4: 4603 mov r3, r0 - 80058f6: 2b00 cmp r3, #0 - 80058f8: d001 beq.n 80058fe + 8005952: 4827 ldr r0, [pc, #156] ; (80059f0 ) + 8005954: f7fa ff8a bl 800086c + 8005958: 4603 mov r3, r0 + 800595a: 2b00 cmp r3, #0 + 800595c: d001 beq.n 8005962 { Error_Handler(); - 80058fa: f7ff f945 bl 8004b88 + 800595e: f7fe f8f5 bl 8003b4c } __HAL_LINKDMA(huart,hdmarx,hdma_usart3_rx); - 80058fe: 687b ldr r3, [r7, #4] - 8005900: 4a22 ldr r2, [pc, #136] ; (800598c ) - 8005902: 66da str r2, [r3, #108] ; 0x6c - 8005904: 4a21 ldr r2, [pc, #132] ; (800598c ) - 8005906: 687b ldr r3, [r7, #4] - 8005908: 6393 str r3, [r2, #56] ; 0x38 + 8005962: 687b ldr r3, [r7, #4] + 8005964: 4a22 ldr r2, [pc, #136] ; (80059f0 ) + 8005966: 66da str r2, [r3, #108] ; 0x6c + 8005968: 4a21 ldr r2, [pc, #132] ; (80059f0 ) + 800596a: 687b ldr r3, [r7, #4] + 800596c: 6393 str r3, [r2, #56] ; 0x38 /* USART3_TX Init */ hdma_usart3_tx.Instance = DMA1_Stream3; - 800590a: 4b22 ldr r3, [pc, #136] ; (8005994 ) - 800590c: 4a22 ldr r2, [pc, #136] ; (8005998 ) - 800590e: 601a str r2, [r3, #0] + 800596e: 4b22 ldr r3, [pc, #136] ; (80059f8 ) + 8005970: 4a22 ldr r2, [pc, #136] ; (80059fc ) + 8005972: 601a str r2, [r3, #0] hdma_usart3_tx.Init.Channel = DMA_CHANNEL_4; - 8005910: 4b20 ldr r3, [pc, #128] ; (8005994 ) - 8005912: f04f 6200 mov.w r2, #134217728 ; 0x8000000 - 8005916: 605a str r2, [r3, #4] + 8005974: 4b20 ldr r3, [pc, #128] ; (80059f8 ) + 8005976: f04f 6200 mov.w r2, #134217728 ; 0x8000000 + 800597a: 605a str r2, [r3, #4] hdma_usart3_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; - 8005918: 4b1e ldr r3, [pc, #120] ; (8005994 ) - 800591a: 2240 movs r2, #64 ; 0x40 - 800591c: 609a str r2, [r3, #8] + 800597c: 4b1e ldr r3, [pc, #120] ; (80059f8 ) + 800597e: 2240 movs r2, #64 ; 0x40 + 8005980: 609a str r2, [r3, #8] hdma_usart3_tx.Init.PeriphInc = DMA_PINC_DISABLE; - 800591e: 4b1d ldr r3, [pc, #116] ; (8005994 ) - 8005920: 2200 movs r2, #0 - 8005922: 60da str r2, [r3, #12] + 8005982: 4b1d ldr r3, [pc, #116] ; (80059f8 ) + 8005984: 2200 movs r2, #0 + 8005986: 60da str r2, [r3, #12] hdma_usart3_tx.Init.MemInc = DMA_MINC_ENABLE; - 8005924: 4b1b ldr r3, [pc, #108] ; (8005994 ) - 8005926: f44f 6280 mov.w r2, #1024 ; 0x400 - 800592a: 611a str r2, [r3, #16] + 8005988: 4b1b ldr r3, [pc, #108] ; (80059f8 ) + 800598a: f44f 6280 mov.w r2, #1024 ; 0x400 + 800598e: 611a str r2, [r3, #16] hdma_usart3_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; - 800592c: 4b19 ldr r3, [pc, #100] ; (8005994 ) - 800592e: 2200 movs r2, #0 - 8005930: 615a str r2, [r3, #20] + 8005990: 4b19 ldr r3, [pc, #100] ; (80059f8 ) + 8005992: 2200 movs r2, #0 + 8005994: 615a str r2, [r3, #20] hdma_usart3_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; - 8005932: 4b18 ldr r3, [pc, #96] ; (8005994 ) - 8005934: 2200 movs r2, #0 - 8005936: 619a str r2, [r3, #24] + 8005996: 4b18 ldr r3, [pc, #96] ; (80059f8 ) + 8005998: 2200 movs r2, #0 + 800599a: 619a str r2, [r3, #24] hdma_usart3_tx.Init.Mode = DMA_NORMAL; - 8005938: 4b16 ldr r3, [pc, #88] ; (8005994 ) - 800593a: 2200 movs r2, #0 - 800593c: 61da str r2, [r3, #28] + 800599c: 4b16 ldr r3, [pc, #88] ; (80059f8 ) + 800599e: 2200 movs r2, #0 + 80059a0: 61da str r2, [r3, #28] hdma_usart3_tx.Init.Priority = DMA_PRIORITY_LOW; - 800593e: 4b15 ldr r3, [pc, #84] ; (8005994 ) - 8005940: 2200 movs r2, #0 - 8005942: 621a str r2, [r3, #32] + 80059a2: 4b15 ldr r3, [pc, #84] ; (80059f8 ) + 80059a4: 2200 movs r2, #0 + 80059a6: 621a str r2, [r3, #32] hdma_usart3_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; - 8005944: 4b13 ldr r3, [pc, #76] ; (8005994 ) - 8005946: 2200 movs r2, #0 - 8005948: 625a str r2, [r3, #36] ; 0x24 + 80059a8: 4b13 ldr r3, [pc, #76] ; (80059f8 ) + 80059aa: 2200 movs r2, #0 + 80059ac: 625a str r2, [r3, #36] ; 0x24 if (HAL_DMA_Init(&hdma_usart3_tx) != HAL_OK) - 800594a: 4812 ldr r0, [pc, #72] ; (8005994 ) - 800594c: f7fa ff8e bl 800086c - 8005950: 4603 mov r3, r0 - 8005952: 2b00 cmp r3, #0 - 8005954: d001 beq.n 800595a + 80059ae: 4812 ldr r0, [pc, #72] ; (80059f8 ) + 80059b0: f7fa ff5c bl 800086c + 80059b4: 4603 mov r3, r0 + 80059b6: 2b00 cmp r3, #0 + 80059b8: d001 beq.n 80059be { Error_Handler(); - 8005956: f7ff f917 bl 8004b88 + 80059ba: f7fe f8c7 bl 8003b4c } __HAL_LINKDMA(huart,hdmatx,hdma_usart3_tx); - 800595a: 687b ldr r3, [r7, #4] - 800595c: 4a0d ldr r2, [pc, #52] ; (8005994 ) - 800595e: 669a str r2, [r3, #104] ; 0x68 - 8005960: 4a0c ldr r2, [pc, #48] ; (8005994 ) - 8005962: 687b ldr r3, [r7, #4] - 8005964: 6393 str r3, [r2, #56] ; 0x38 + 80059be: 687b ldr r3, [r7, #4] + 80059c0: 4a0d ldr r2, [pc, #52] ; (80059f8 ) + 80059c2: 669a str r2, [r3, #104] ; 0x68 + 80059c4: 4a0c ldr r2, [pc, #48] ; (80059f8 ) + 80059c6: 687b ldr r3, [r7, #4] + 80059c8: 6393 str r3, [r2, #56] ; 0x38 /* USART3 interrupt Init */ HAL_NVIC_SetPriority(USART3_IRQn, 0, 0); - 8005966: 2200 movs r2, #0 - 8005968: 2100 movs r1, #0 - 800596a: 2027 movs r0, #39 ; 0x27 - 800596c: f7fa ff47 bl 80007fe + 80059ca: 2200 movs r2, #0 + 80059cc: 2100 movs r1, #0 + 80059ce: 2027 movs r0, #39 ; 0x27 + 80059d0: f7fa ff15 bl 80007fe HAL_NVIC_EnableIRQ(USART3_IRQn); - 8005970: 2027 movs r0, #39 ; 0x27 - 8005972: f7fa ff60 bl 8000836 + 80059d4: 2027 movs r0, #39 ; 0x27 + 80059d6: f7fa ff2e bl 8000836 /* USER CODE BEGIN USART3_MspInit 1 */ /* USER CODE END USART3_MspInit 1 */ } } - 8005976: bf00 nop - 8005978: 3728 adds r7, #40 ; 0x28 - 800597a: 46bd mov sp, r7 - 800597c: bd80 pop {r7, pc} - 800597e: bf00 nop - 8005980: 40004800 .word 0x40004800 - 8005984: 40023800 .word 0x40023800 - 8005988: 40020c00 .word 0x40020c00 - 800598c: 20000154 .word 0x20000154 - 8005990: 40026028 .word 0x40026028 - 8005994: 200001b4 .word 0x200001b4 - 8005998: 40026058 .word 0x40026058 - -0800599c : + 80059da: bf00 nop + 80059dc: 3728 adds r7, #40 ; 0x28 + 80059de: 46bd mov sp, r7 + 80059e0: bd80 pop {r7, pc} + 80059e2: bf00 nop + 80059e4: 40004800 .word 0x40004800 + 80059e8: 40023800 .word 0x40023800 + 80059ec: 40020c00 .word 0x40020c00 + 80059f0: 20000150 .word 0x20000150 + 80059f4: 40026028 .word 0x40026028 + 80059f8: 200001b0 .word 0x200001b0 + 80059fc: 40026058 .word 0x40026058 + +08005a00 : /******************************************************************************/ /** * @brief This function handles Non maskable interrupt. */ void NMI_Handler(void) { - 800599c: b480 push {r7} - 800599e: af00 add r7, sp, #0 + 8005a00: b480 push {r7} + 8005a02: af00 add r7, sp, #0 /* USER CODE END NonMaskableInt_IRQn 0 */ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ /* USER CODE END NonMaskableInt_IRQn 1 */ } - 80059a0: bf00 nop - 80059a2: 46bd mov sp, r7 - 80059a4: f85d 7b04 ldr.w r7, [sp], #4 - 80059a8: 4770 bx lr + 8005a04: bf00 nop + 8005a06: 46bd mov sp, r7 + 8005a08: f85d 7b04 ldr.w r7, [sp], #4 + 8005a0c: 4770 bx lr -080059aa : +08005a0e : /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { - 80059aa: b480 push {r7} - 80059ac: af00 add r7, sp, #0 + 8005a0e: b480 push {r7} + 8005a10: af00 add r7, sp, #0 /* USER CODE BEGIN HardFault_IRQn 0 */ /* USER CODE END HardFault_IRQn 0 */ while (1) - 80059ae: e7fe b.n 80059ae + 8005a12: e7fe b.n 8005a12 -080059b0 : +08005a14 : /** * @brief This function handles Memory management fault. */ void MemManage_Handler(void) { - 80059b0: b480 push {r7} - 80059b2: af00 add r7, sp, #0 + 8005a14: b480 push {r7} + 8005a16: af00 add r7, sp, #0 /* USER CODE BEGIN MemoryManagement_IRQn 0 */ /* USER CODE END MemoryManagement_IRQn 0 */ while (1) - 80059b4: e7fe b.n 80059b4 + 8005a18: e7fe b.n 8005a18 -080059b6 : +08005a1a : /** * @brief This function handles Pre-fetch fault, memory access fault. */ void BusFault_Handler(void) { - 80059b6: b480 push {r7} - 80059b8: af00 add r7, sp, #0 + 8005a1a: b480 push {r7} + 8005a1c: af00 add r7, sp, #0 /* USER CODE BEGIN BusFault_IRQn 0 */ /* USER CODE END BusFault_IRQn 0 */ while (1) - 80059ba: e7fe b.n 80059ba + 8005a1e: e7fe b.n 8005a1e -080059bc : +08005a20 : /** * @brief This function handles Undefined instruction or illegal state. */ void UsageFault_Handler(void) { - 80059bc: b480 push {r7} - 80059be: af00 add r7, sp, #0 + 8005a20: b480 push {r7} + 8005a22: af00 add r7, sp, #0 /* USER CODE BEGIN UsageFault_IRQn 0 */ /* USER CODE END UsageFault_IRQn 0 */ while (1) - 80059c0: e7fe b.n 80059c0 + 8005a24: e7fe b.n 8005a24 -080059c2 : +08005a26 : /** * @brief This function handles System service call via SWI instruction. */ void SVC_Handler(void) { - 80059c2: b480 push {r7} - 80059c4: af00 add r7, sp, #0 + 8005a26: b480 push {r7} + 8005a28: af00 add r7, sp, #0 /* USER CODE END SVCall_IRQn 0 */ /* USER CODE BEGIN SVCall_IRQn 1 */ /* USER CODE END SVCall_IRQn 1 */ } - 80059c6: bf00 nop - 80059c8: 46bd mov sp, r7 - 80059ca: f85d 7b04 ldr.w r7, [sp], #4 - 80059ce: 4770 bx lr + 8005a2a: bf00 nop + 8005a2c: 46bd mov sp, r7 + 8005a2e: f85d 7b04 ldr.w r7, [sp], #4 + 8005a32: 4770 bx lr -080059d0 : +08005a34 : /** * @brief This function handles Debug monitor. */ void DebugMon_Handler(void) { - 80059d0: b480 push {r7} - 80059d2: af00 add r7, sp, #0 + 8005a34: b480 push {r7} + 8005a36: af00 add r7, sp, #0 /* USER CODE END DebugMonitor_IRQn 0 */ /* USER CODE BEGIN DebugMonitor_IRQn 1 */ /* USER CODE END DebugMonitor_IRQn 1 */ } - 80059d4: bf00 nop - 80059d6: 46bd mov sp, r7 - 80059d8: f85d 7b04 ldr.w r7, [sp], #4 - 80059dc: 4770 bx lr + 8005a38: bf00 nop + 8005a3a: 46bd mov sp, r7 + 8005a3c: f85d 7b04 ldr.w r7, [sp], #4 + 8005a40: 4770 bx lr -080059de : +08005a42 : /** * @brief This function handles Pendable request for system service. */ void PendSV_Handler(void) { - 80059de: b480 push {r7} - 80059e0: af00 add r7, sp, #0 + 8005a42: b480 push {r7} + 8005a44: af00 add r7, sp, #0 /* USER CODE END PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 1 */ /* USER CODE END PendSV_IRQn 1 */ } - 80059e2: bf00 nop - 80059e4: 46bd mov sp, r7 - 80059e6: f85d 7b04 ldr.w r7, [sp], #4 - 80059ea: 4770 bx lr + 8005a46: bf00 nop + 8005a48: 46bd mov sp, r7 + 8005a4a: f85d 7b04 ldr.w r7, [sp], #4 + 8005a4e: 4770 bx lr -080059ec : +08005a50 : /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { - 80059ec: b580 push {r7, lr} - 80059ee: af00 add r7, sp, #0 + 8005a50: b580 push {r7, lr} + 8005a52: af00 add r7, sp, #0 /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); - 80059f0: f7fa fde8 bl 80005c4 + 8005a54: f7fa fdb6 bl 80005c4 /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } - 80059f4: bf00 nop - 80059f6: bd80 pop {r7, pc} + 8005a58: bf00 nop + 8005a5a: bd80 pop {r7, pc} -080059f8 : +08005a5c : /** * @brief This function handles DMA1 stream1 global interrupt. */ void DMA1_Stream1_IRQHandler(void) { - 80059f8: b580 push {r7, lr} - 80059fa: af00 add r7, sp, #0 + 8005a5c: b580 push {r7, lr} + 8005a5e: af00 add r7, sp, #0 /* USER CODE BEGIN DMA1_Stream1_IRQn 0 */ /* USER CODE END DMA1_Stream1_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_usart3_rx); - 80059fc: 4802 ldr r0, [pc, #8] ; (8005a08 ) - 80059fe: f7fb f865 bl 8000acc + 8005a60: 4802 ldr r0, [pc, #8] ; (8005a6c ) + 8005a62: f7fb f833 bl 8000acc /* USER CODE BEGIN DMA1_Stream1_IRQn 1 */ /* USER CODE END DMA1_Stream1_IRQn 1 */ } - 8005a02: bf00 nop - 8005a04: bd80 pop {r7, pc} - 8005a06: bf00 nop - 8005a08: 20000154 .word 0x20000154 + 8005a66: bf00 nop + 8005a68: bd80 pop {r7, pc} + 8005a6a: bf00 nop + 8005a6c: 20000150 .word 0x20000150 -08005a0c : +08005a70 : /** * @brief This function handles DMA1 stream3 global interrupt. */ void DMA1_Stream3_IRQHandler(void) { - 8005a0c: b580 push {r7, lr} - 8005a0e: af00 add r7, sp, #0 + 8005a70: b580 push {r7, lr} + 8005a72: af00 add r7, sp, #0 /* USER CODE BEGIN DMA1_Stream3_IRQn 0 */ /* USER CODE END DMA1_Stream3_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_usart3_tx); - 8005a10: 4802 ldr r0, [pc, #8] ; (8005a1c ) - 8005a12: f7fb f85b bl 8000acc + 8005a74: 4802 ldr r0, [pc, #8] ; (8005a80 ) + 8005a76: f7fb f829 bl 8000acc /* USER CODE BEGIN DMA1_Stream3_IRQn 1 */ /* USER CODE END DMA1_Stream3_IRQn 1 */ } - 8005a16: bf00 nop - 8005a18: bd80 pop {r7, pc} - 8005a1a: bf00 nop - 8005a1c: 200001b4 .word 0x200001b4 + 8005a7a: bf00 nop + 8005a7c: bd80 pop {r7, pc} + 8005a7e: bf00 nop + 8005a80: 200001b0 .word 0x200001b0 -08005a20 : +08005a84 : /** * @brief This function handles USART3 global interrupt. */ void USART3_IRQHandler(void) { - 8005a20: b580 push {r7, lr} - 8005a22: af00 add r7, sp, #0 + 8005a84: b580 push {r7, lr} + 8005a86: af00 add r7, sp, #0 /* USER CODE BEGIN USART3_IRQn 0 */ /* USER CODE END USART3_IRQn 0 */ HAL_UART_IRQHandler(&huart3); - 8005a24: 4802 ldr r0, [pc, #8] ; (8005a30 ) - 8005a26: f7fd f8f1 bl 8002c0c + 8005a88: 4802 ldr r0, [pc, #8] ; (8005a94 ) + 8005a8a: f7fd f8bf bl 8002c0c /* USER CODE BEGIN USART3_IRQn 1 */ /* USER CODE END USART3_IRQn 1 */ } - 8005a2a: bf00 nop - 8005a2c: bd80 pop {r7, pc} - 8005a2e: bf00 nop - 8005a30: 200000d4 .word 0x200000d4 + 8005a8e: bf00 nop + 8005a90: bd80 pop {r7, pc} + 8005a92: bf00 nop + 8005a94: 200000d0 .word 0x200000d0 -08005a34 <_getpid>: +08005a98 <_getpid>: void initialise_monitor_handles() { } int _getpid(void) { - 8005a34: b480 push {r7} - 8005a36: af00 add r7, sp, #0 + 8005a98: b480 push {r7} + 8005a9a: af00 add r7, sp, #0 return 1; - 8005a38: 2301 movs r3, #1 + 8005a9c: 2301 movs r3, #1 } - 8005a3a: 4618 mov r0, r3 - 8005a3c: 46bd mov sp, r7 - 8005a3e: f85d 7b04 ldr.w r7, [sp], #4 - 8005a42: 4770 bx lr + 8005a9e: 4618 mov r0, r3 + 8005aa0: 46bd mov sp, r7 + 8005aa2: f85d 7b04 ldr.w r7, [sp], #4 + 8005aa6: 4770 bx lr -08005a44 <_kill>: +08005aa8 <_kill>: int _kill(int pid, int sig) { - 8005a44: b580 push {r7, lr} - 8005a46: b082 sub sp, #8 - 8005a48: af00 add r7, sp, #0 - 8005a4a: 6078 str r0, [r7, #4] - 8005a4c: 6039 str r1, [r7, #0] + 8005aa8: b580 push {r7, lr} + 8005aaa: b082 sub sp, #8 + 8005aac: af00 add r7, sp, #0 + 8005aae: 6078 str r0, [r7, #4] + 8005ab0: 6039 str r1, [r7, #0] errno = EINVAL; - 8005a4e: f000 f8b9 bl 8005bc4 <__errno> - 8005a52: 4602 mov r2, r0 - 8005a54: 2316 movs r3, #22 - 8005a56: 6013 str r3, [r2, #0] + 8005ab2: f000 f8b9 bl 8005c28 <__errno> + 8005ab6: 4602 mov r2, r0 + 8005ab8: 2316 movs r3, #22 + 8005aba: 6013 str r3, [r2, #0] return -1; - 8005a58: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 8005abc: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff } - 8005a5c: 4618 mov r0, r3 - 8005a5e: 3708 adds r7, #8 - 8005a60: 46bd mov sp, r7 - 8005a62: bd80 pop {r7, pc} + 8005ac0: 4618 mov r0, r3 + 8005ac2: 3708 adds r7, #8 + 8005ac4: 46bd mov sp, r7 + 8005ac6: bd80 pop {r7, pc} -08005a64 <_exit>: +08005ac8 <_exit>: void _exit (int status) { - 8005a64: b580 push {r7, lr} - 8005a66: b082 sub sp, #8 - 8005a68: af00 add r7, sp, #0 - 8005a6a: 6078 str r0, [r7, #4] + 8005ac8: b580 push {r7, lr} + 8005aca: b082 sub sp, #8 + 8005acc: af00 add r7, sp, #0 + 8005ace: 6078 str r0, [r7, #4] _kill(status, -1); - 8005a6c: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff - 8005a70: 6878 ldr r0, [r7, #4] - 8005a72: f7ff ffe7 bl 8005a44 <_kill> + 8005ad0: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff + 8005ad4: 6878 ldr r0, [r7, #4] + 8005ad6: f7ff ffe7 bl 8005aa8 <_kill> while (1) {} /* Make sure we hang here */ - 8005a76: e7fe b.n 8005a76 <_exit+0x12> + 8005ada: e7fe b.n 8005ada <_exit+0x12> -08005a78 <_sbrk>: +08005adc <_sbrk>: /** _sbrk Increase program data space. Malloc and related functions depend on this **/ caddr_t _sbrk(int incr) { - 8005a78: b580 push {r7, lr} - 8005a7a: b084 sub sp, #16 - 8005a7c: af00 add r7, sp, #0 - 8005a7e: 6078 str r0, [r7, #4] + 8005adc: b580 push {r7, lr} + 8005ade: b084 sub sp, #16 + 8005ae0: af00 add r7, sp, #0 + 8005ae2: 6078 str r0, [r7, #4] extern char end asm("end"); static char *heap_end; char *prev_heap_end; if (heap_end == 0) - 8005a80: 4b11 ldr r3, [pc, #68] ; (8005ac8 <_sbrk+0x50>) - 8005a82: 681b ldr r3, [r3, #0] - 8005a84: 2b00 cmp r3, #0 - 8005a86: d102 bne.n 8005a8e <_sbrk+0x16> + 8005ae4: 4b11 ldr r3, [pc, #68] ; (8005b2c <_sbrk+0x50>) + 8005ae6: 681b ldr r3, [r3, #0] + 8005ae8: 2b00 cmp r3, #0 + 8005aea: d102 bne.n 8005af2 <_sbrk+0x16> heap_end = &end; - 8005a88: 4b0f ldr r3, [pc, #60] ; (8005ac8 <_sbrk+0x50>) - 8005a8a: 4a10 ldr r2, [pc, #64] ; (8005acc <_sbrk+0x54>) - 8005a8c: 601a str r2, [r3, #0] + 8005aec: 4b0f ldr r3, [pc, #60] ; (8005b2c <_sbrk+0x50>) + 8005aee: 4a10 ldr r2, [pc, #64] ; (8005b30 <_sbrk+0x54>) + 8005af0: 601a str r2, [r3, #0] prev_heap_end = heap_end; - 8005a8e: 4b0e ldr r3, [pc, #56] ; (8005ac8 <_sbrk+0x50>) - 8005a90: 681b ldr r3, [r3, #0] - 8005a92: 60fb str r3, [r7, #12] + 8005af2: 4b0e ldr r3, [pc, #56] ; (8005b2c <_sbrk+0x50>) + 8005af4: 681b ldr r3, [r3, #0] + 8005af6: 60fb str r3, [r7, #12] if (heap_end + incr > stack_ptr) - 8005a94: 4b0c ldr r3, [pc, #48] ; (8005ac8 <_sbrk+0x50>) - 8005a96: 681a ldr r2, [r3, #0] - 8005a98: 687b ldr r3, [r7, #4] - 8005a9a: 4413 add r3, r2 - 8005a9c: 466a mov r2, sp - 8005a9e: 4293 cmp r3, r2 - 8005aa0: d907 bls.n 8005ab2 <_sbrk+0x3a> + 8005af8: 4b0c ldr r3, [pc, #48] ; (8005b2c <_sbrk+0x50>) + 8005afa: 681a ldr r2, [r3, #0] + 8005afc: 687b ldr r3, [r7, #4] + 8005afe: 4413 add r3, r2 + 8005b00: 466a mov r2, sp + 8005b02: 4293 cmp r3, r2 + 8005b04: d907 bls.n 8005b16 <_sbrk+0x3a> { errno = ENOMEM; - 8005aa2: f000 f88f bl 8005bc4 <__errno> - 8005aa6: 4602 mov r2, r0 - 8005aa8: 230c movs r3, #12 - 8005aaa: 6013 str r3, [r2, #0] + 8005b06: f000 f88f bl 8005c28 <__errno> + 8005b0a: 4602 mov r2, r0 + 8005b0c: 230c movs r3, #12 + 8005b0e: 6013 str r3, [r2, #0] return (caddr_t) -1; - 8005aac: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 8005ab0: e006 b.n 8005ac0 <_sbrk+0x48> + 8005b10: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 8005b14: e006 b.n 8005b24 <_sbrk+0x48> } heap_end += incr; - 8005ab2: 4b05 ldr r3, [pc, #20] ; (8005ac8 <_sbrk+0x50>) - 8005ab4: 681a ldr r2, [r3, #0] - 8005ab6: 687b ldr r3, [r7, #4] - 8005ab8: 4413 add r3, r2 - 8005aba: 4a03 ldr r2, [pc, #12] ; (8005ac8 <_sbrk+0x50>) - 8005abc: 6013 str r3, [r2, #0] + 8005b16: 4b05 ldr r3, [pc, #20] ; (8005b2c <_sbrk+0x50>) + 8005b18: 681a ldr r2, [r3, #0] + 8005b1a: 687b ldr r3, [r7, #4] + 8005b1c: 4413 add r3, r2 + 8005b1e: 4a03 ldr r2, [pc, #12] ; (8005b2c <_sbrk+0x50>) + 8005b20: 6013 str r3, [r2, #0] return (caddr_t) prev_heap_end; - 8005abe: 68fb ldr r3, [r7, #12] + 8005b22: 68fb ldr r3, [r7, #12] } - 8005ac0: 4618 mov r0, r3 - 8005ac2: 3710 adds r7, #16 - 8005ac4: 46bd mov sp, r7 - 8005ac6: bd80 pop {r7, pc} - 8005ac8: 20000230 .word 0x20000230 - 8005acc: 20000248 .word 0x20000248 - -08005ad0 : + 8005b24: 4618 mov r0, r3 + 8005b26: 3710 adds r7, #16 + 8005b28: 46bd mov sp, r7 + 8005b2a: bd80 pop {r7, pc} + 8005b2c: 200008f0 .word 0x200008f0 + 8005b30: 20000908 .word 0x20000908 + +08005b34 : * SystemFrequency variable. * @param None * @retval None */ void SystemInit(void) { - 8005ad0: b480 push {r7} - 8005ad2: af00 add r7, sp, #0 + 8005b34: b480 push {r7} + 8005b36: af00 add r7, sp, #0 /* FPU settings ------------------------------------------------------------*/ #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ - 8005ad4: 4b15 ldr r3, [pc, #84] ; (8005b2c ) - 8005ad6: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8005ada: 4a14 ldr r2, [pc, #80] ; (8005b2c ) - 8005adc: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 - 8005ae0: f8c2 3088 str.w r3, [r2, #136] ; 0x88 + 8005b38: 4b15 ldr r3, [pc, #84] ; (8005b90 ) + 8005b3a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 8005b3e: 4a14 ldr r2, [pc, #80] ; (8005b90 ) + 8005b40: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 + 8005b44: f8c2 3088 str.w r3, [r2, #136] ; 0x88 #endif /* Reset the RCC clock configuration to the default reset state ------------*/ /* Set HSION bit */ RCC->CR |= (uint32_t)0x00000001; - 8005ae4: 4b12 ldr r3, [pc, #72] ; (8005b30 ) - 8005ae6: 681b ldr r3, [r3, #0] - 8005ae8: 4a11 ldr r2, [pc, #68] ; (8005b30 ) - 8005aea: f043 0301 orr.w r3, r3, #1 - 8005aee: 6013 str r3, [r2, #0] + 8005b48: 4b12 ldr r3, [pc, #72] ; (8005b94 ) + 8005b4a: 681b ldr r3, [r3, #0] + 8005b4c: 4a11 ldr r2, [pc, #68] ; (8005b94 ) + 8005b4e: f043 0301 orr.w r3, r3, #1 + 8005b52: 6013 str r3, [r2, #0] /* Reset CFGR register */ RCC->CFGR = 0x00000000; - 8005af0: 4b0f ldr r3, [pc, #60] ; (8005b30 ) - 8005af2: 2200 movs r2, #0 - 8005af4: 609a str r2, [r3, #8] + 8005b54: 4b0f ldr r3, [pc, #60] ; (8005b94 ) + 8005b56: 2200 movs r2, #0 + 8005b58: 609a str r2, [r3, #8] /* Reset HSEON, CSSON and PLLON bits */ RCC->CR &= (uint32_t)0xFEF6FFFF; - 8005af6: 4b0e ldr r3, [pc, #56] ; (8005b30 ) - 8005af8: 681a ldr r2, [r3, #0] - 8005afa: 490d ldr r1, [pc, #52] ; (8005b30 ) - 8005afc: 4b0d ldr r3, [pc, #52] ; (8005b34 ) - 8005afe: 4013 ands r3, r2 - 8005b00: 600b str r3, [r1, #0] + 8005b5a: 4b0e ldr r3, [pc, #56] ; (8005b94 ) + 8005b5c: 681a ldr r2, [r3, #0] + 8005b5e: 490d ldr r1, [pc, #52] ; (8005b94 ) + 8005b60: 4b0d ldr r3, [pc, #52] ; (8005b98 ) + 8005b62: 4013 ands r3, r2 + 8005b64: 600b str r3, [r1, #0] /* Reset PLLCFGR register */ RCC->PLLCFGR = 0x24003010; - 8005b02: 4b0b ldr r3, [pc, #44] ; (8005b30 ) - 8005b04: 4a0c ldr r2, [pc, #48] ; (8005b38 ) - 8005b06: 605a str r2, [r3, #4] + 8005b66: 4b0b ldr r3, [pc, #44] ; (8005b94 ) + 8005b68: 4a0c ldr r2, [pc, #48] ; (8005b9c ) + 8005b6a: 605a str r2, [r3, #4] /* Reset HSEBYP bit */ RCC->CR &= (uint32_t)0xFFFBFFFF; - 8005b08: 4b09 ldr r3, [pc, #36] ; (8005b30 ) - 8005b0a: 681b ldr r3, [r3, #0] - 8005b0c: 4a08 ldr r2, [pc, #32] ; (8005b30 ) - 8005b0e: f423 2380 bic.w r3, r3, #262144 ; 0x40000 - 8005b12: 6013 str r3, [r2, #0] + 8005b6c: 4b09 ldr r3, [pc, #36] ; (8005b94 ) + 8005b6e: 681b ldr r3, [r3, #0] + 8005b70: 4a08 ldr r2, [pc, #32] ; (8005b94 ) + 8005b72: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 8005b76: 6013 str r3, [r2, #0] /* Disable all interrupts */ RCC->CIR = 0x00000000; - 8005b14: 4b06 ldr r3, [pc, #24] ; (8005b30 ) - 8005b16: 2200 movs r2, #0 - 8005b18: 60da str r2, [r3, #12] + 8005b78: 4b06 ldr r3, [pc, #24] ; (8005b94 ) + 8005b7a: 2200 movs r2, #0 + 8005b7c: 60da str r2, [r3, #12] /* Configure the Vector Table location add offset address ------------------*/ #ifdef VECT_TAB_SRAM SCB->VTOR = RAMDTCM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ #else SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ - 8005b1a: 4b04 ldr r3, [pc, #16] ; (8005b2c ) - 8005b1c: f04f 6200 mov.w r2, #134217728 ; 0x8000000 - 8005b20: 609a str r2, [r3, #8] + 8005b7e: 4b04 ldr r3, [pc, #16] ; (8005b90 ) + 8005b80: f04f 6200 mov.w r2, #134217728 ; 0x8000000 + 8005b84: 609a str r2, [r3, #8] #endif } - 8005b22: bf00 nop - 8005b24: 46bd mov sp, r7 - 8005b26: f85d 7b04 ldr.w r7, [sp], #4 - 8005b2a: 4770 bx lr - 8005b2c: e000ed00 .word 0xe000ed00 - 8005b30: 40023800 .word 0x40023800 - 8005b34: fef6ffff .word 0xfef6ffff - 8005b38: 24003010 .word 0x24003010 + 8005b86: bf00 nop + 8005b88: 46bd mov sp, r7 + 8005b8a: f85d 7b04 ldr.w r7, [sp], #4 + 8005b8e: 4770 bx lr + 8005b90: e000ed00 .word 0xe000ed00 + 8005b94: 40023800 .word 0x40023800 + 8005b98: fef6ffff .word 0xfef6ffff + 8005b9c: 24003010 .word 0x24003010 -08005b3c : +08005ba0 : .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: ldr sp, =_estack /* set stack pointer */ - 8005b3c: f8df d034 ldr.w sp, [pc, #52] ; 8005b74 + 8005ba0: f8df d034 ldr.w sp, [pc, #52] ; 8005bd8 /* Copy the data segment initializers from flash to SRAM */ movs r1, #0 - 8005b40: 2100 movs r1, #0 + 8005ba4: 2100 movs r1, #0 b LoopCopyDataInit - 8005b42: e003 b.n 8005b4c + 8005ba6: e003 b.n 8005bb0 -08005b44 : +08005ba8 : CopyDataInit: ldr r3, =_sidata - 8005b44: 4b0c ldr r3, [pc, #48] ; (8005b78 ) + 8005ba8: 4b0c ldr r3, [pc, #48] ; (8005bdc ) ldr r3, [r3, r1] - 8005b46: 585b ldr r3, [r3, r1] + 8005baa: 585b ldr r3, [r3, r1] str r3, [r0, r1] - 8005b48: 5043 str r3, [r0, r1] + 8005bac: 5043 str r3, [r0, r1] adds r1, r1, #4 - 8005b4a: 3104 adds r1, #4 + 8005bae: 3104 adds r1, #4 -08005b4c : +08005bb0 : LoopCopyDataInit: ldr r0, =_sdata - 8005b4c: 480b ldr r0, [pc, #44] ; (8005b7c ) + 8005bb0: 480b ldr r0, [pc, #44] ; (8005be0 ) ldr r3, =_edata - 8005b4e: 4b0c ldr r3, [pc, #48] ; (8005b80 ) + 8005bb2: 4b0c ldr r3, [pc, #48] ; (8005be4 ) adds r2, r0, r1 - 8005b50: 1842 adds r2, r0, r1 + 8005bb4: 1842 adds r2, r0, r1 cmp r2, r3 - 8005b52: 429a cmp r2, r3 + 8005bb6: 429a cmp r2, r3 bcc CopyDataInit - 8005b54: d3f6 bcc.n 8005b44 + 8005bb8: d3f6 bcc.n 8005ba8 ldr r2, =_sbss - 8005b56: 4a0b ldr r2, [pc, #44] ; (8005b84 ) + 8005bba: 4a0b ldr r2, [pc, #44] ; (8005be8 ) b LoopFillZerobss - 8005b58: e002 b.n 8005b60 + 8005bbc: e002 b.n 8005bc4 -08005b5a : +08005bbe : /* Zero fill the bss segment. */ FillZerobss: movs r3, #0 - 8005b5a: 2300 movs r3, #0 + 8005bbe: 2300 movs r3, #0 str r3, [r2], #4 - 8005b5c: f842 3b04 str.w r3, [r2], #4 + 8005bc0: f842 3b04 str.w r3, [r2], #4 -08005b60 : +08005bc4 : LoopFillZerobss: ldr r3, = _ebss - 8005b60: 4b09 ldr r3, [pc, #36] ; (8005b88 ) + 8005bc4: 4b09 ldr r3, [pc, #36] ; (8005bec ) cmp r2, r3 - 8005b62: 429a cmp r2, r3 + 8005bc6: 429a cmp r2, r3 bcc FillZerobss - 8005b64: d3f9 bcc.n 8005b5a + 8005bc8: d3f9 bcc.n 8005bbe /* Call the clock system initialization function.*/ bl SystemInit - 8005b66: f7ff ffb3 bl 8005ad0 + 8005bca: f7ff ffb3 bl 8005b34 /* Call static constructors */ bl __libc_init_array - 8005b6a: f000 f831 bl 8005bd0 <__libc_init_array> + 8005bce: f000 f831 bl 8005c34 <__libc_init_array> /* Call the application's entry point.*/ bl main - 8005b6e: f7fe fe6b bl 8004848
+ 8005bd2: f7fd fe28 bl 8003826
bx lr - 8005b72: 4770 bx lr + 8005bd6: 4770 bx lr ldr sp, =_estack /* set stack pointer */ - 8005b74: 20080000 .word 0x20080000 + 8005bd8: 20080000 .word 0x20080000 ldr r3, =_sidata - 8005b78: 08006140 .word 0x08006140 + 8005bdc: 080061a4 .word 0x080061a4 ldr r0, =_sdata - 8005b7c: 20000000 .word 0x20000000 + 8005be0: 20000000 .word 0x20000000 ldr r3, =_edata - 8005b80: 20000074 .word 0x20000074 + 8005be4: 20000074 .word 0x20000074 ldr r2, =_sbss - 8005b84: 20000074 .word 0x20000074 + 8005be8: 20000074 .word 0x20000074 ldr r3, = _ebss - 8005b88: 20000244 .word 0x20000244 + 8005bec: 20000904 .word 0x20000904 -08005b8c : +08005bf0 : * @retval None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop - 8005b8c: e7fe b.n 8005b8c - -08005b8e <__cxa_pure_virtual>: - 8005b8e: b508 push {r3, lr} - 8005b90: f000 f80c bl 8005bac <_ZSt9terminatev> - -08005b94 <_ZN10__cxxabiv111__terminateEPFvvE>: - 8005b94: b508 push {r3, lr} - 8005b96: 4780 blx r0 - 8005b98: f000 f80d bl 8005bb6 - -08005b9c <_ZSt13get_terminatev>: - 8005b9c: 4b02 ldr r3, [pc, #8] ; (8005ba8 <_ZSt13get_terminatev+0xc>) - 8005b9e: 6818 ldr r0, [r3, #0] - 8005ba0: f3bf 8f5b dmb ish - 8005ba4: 4770 bx lr - 8005ba6: bf00 nop - 8005ba8: 2000000c .word 0x2000000c - -08005bac <_ZSt9terminatev>: - 8005bac: b508 push {r3, lr} - 8005bae: f7ff fff5 bl 8005b9c <_ZSt13get_terminatev> - 8005bb2: f7ff ffef bl 8005b94 <_ZN10__cxxabiv111__terminateEPFvvE> - -08005bb6 : - 8005bb6: b508 push {r3, lr} - 8005bb8: 2006 movs r0, #6 - 8005bba: f000 f871 bl 8005ca0 - 8005bbe: 2001 movs r0, #1 - 8005bc0: f7ff ff50 bl 8005a64 <_exit> - -08005bc4 <__errno>: - 8005bc4: 4b01 ldr r3, [pc, #4] ; (8005bcc <__errno+0x8>) - 8005bc6: 6818 ldr r0, [r3, #0] - 8005bc8: 4770 bx lr - 8005bca: bf00 nop - 8005bcc: 20000010 .word 0x20000010 - -08005bd0 <__libc_init_array>: - 8005bd0: b570 push {r4, r5, r6, lr} - 8005bd2: 4e0d ldr r6, [pc, #52] ; (8005c08 <__libc_init_array+0x38>) - 8005bd4: 4c0d ldr r4, [pc, #52] ; (8005c0c <__libc_init_array+0x3c>) - 8005bd6: 1ba4 subs r4, r4, r6 - 8005bd8: 10a4 asrs r4, r4, #2 - 8005bda: 2500 movs r5, #0 - 8005bdc: 42a5 cmp r5, r4 - 8005bde: d109 bne.n 8005bf4 <__libc_init_array+0x24> - 8005be0: 4e0b ldr r6, [pc, #44] ; (8005c10 <__libc_init_array+0x40>) - 8005be2: 4c0c ldr r4, [pc, #48] ; (8005c14 <__libc_init_array+0x44>) - 8005be4: f000 f960 bl 8005ea8 <_init> - 8005be8: 1ba4 subs r4, r4, r6 - 8005bea: 10a4 asrs r4, r4, #2 - 8005bec: 2500 movs r5, #0 - 8005bee: 42a5 cmp r5, r4 - 8005bf0: d105 bne.n 8005bfe <__libc_init_array+0x2e> - 8005bf2: bd70 pop {r4, r5, r6, pc} - 8005bf4: f856 3025 ldr.w r3, [r6, r5, lsl #2] - 8005bf8: 4798 blx r3 - 8005bfa: 3501 adds r5, #1 - 8005bfc: e7ee b.n 8005bdc <__libc_init_array+0xc> - 8005bfe: f856 3025 ldr.w r3, [r6, r5, lsl #2] - 8005c02: 4798 blx r3 - 8005c04: 3501 adds r5, #1 - 8005c06: e7f2 b.n 8005bee <__libc_init_array+0x1e> - 8005c08: 08006134 .word 0x08006134 - 8005c0c: 08006134 .word 0x08006134 - 8005c10: 08006134 .word 0x08006134 - 8005c14: 0800613c .word 0x0800613c - -08005c18 : - 8005c18: b510 push {r4, lr} - 8005c1a: 1e43 subs r3, r0, #1 - 8005c1c: 440a add r2, r1 - 8005c1e: 4291 cmp r1, r2 - 8005c20: d100 bne.n 8005c24 - 8005c22: bd10 pop {r4, pc} - 8005c24: f811 4b01 ldrb.w r4, [r1], #1 - 8005c28: f803 4f01 strb.w r4, [r3, #1]! - 8005c2c: e7f7 b.n 8005c1e - -08005c2e : - 8005c2e: 4402 add r2, r0 - 8005c30: 4603 mov r3, r0 - 8005c32: 4293 cmp r3, r2 - 8005c34: d100 bne.n 8005c38 - 8005c36: 4770 bx lr - 8005c38: f803 1b01 strb.w r1, [r3], #1 - 8005c3c: e7f9 b.n 8005c32 + 8005bf0: e7fe b.n 8005bf0 + +08005bf2 <__cxa_pure_virtual>: + 8005bf2: b508 push {r3, lr} + 8005bf4: f000 f80c bl 8005c10 <_ZSt9terminatev> + +08005bf8 <_ZN10__cxxabiv111__terminateEPFvvE>: + 8005bf8: b508 push {r3, lr} + 8005bfa: 4780 blx r0 + 8005bfc: f000 f80d bl 8005c1a + +08005c00 <_ZSt13get_terminatev>: + 8005c00: 4b02 ldr r3, [pc, #8] ; (8005c0c <_ZSt13get_terminatev+0xc>) + 8005c02: 6818 ldr r0, [r3, #0] + 8005c04: f3bf 8f5b dmb ish + 8005c08: 4770 bx lr + 8005c0a: bf00 nop + 8005c0c: 2000000c .word 0x2000000c + +08005c10 <_ZSt9terminatev>: + 8005c10: b508 push {r3, lr} + 8005c12: f7ff fff5 bl 8005c00 <_ZSt13get_terminatev> + 8005c16: f7ff ffef bl 8005bf8 <_ZN10__cxxabiv111__terminateEPFvvE> + +08005c1a : + 8005c1a: b508 push {r3, lr} + 8005c1c: 2006 movs r0, #6 + 8005c1e: f000 f871 bl 8005d04 + 8005c22: 2001 movs r0, #1 + 8005c24: f7ff ff50 bl 8005ac8 <_exit> + +08005c28 <__errno>: + 8005c28: 4b01 ldr r3, [pc, #4] ; (8005c30 <__errno+0x8>) + 8005c2a: 6818 ldr r0, [r3, #0] + 8005c2c: 4770 bx lr + 8005c2e: bf00 nop + 8005c30: 20000010 .word 0x20000010 + +08005c34 <__libc_init_array>: + 8005c34: b570 push {r4, r5, r6, lr} + 8005c36: 4e0d ldr r6, [pc, #52] ; (8005c6c <__libc_init_array+0x38>) + 8005c38: 4c0d ldr r4, [pc, #52] ; (8005c70 <__libc_init_array+0x3c>) + 8005c3a: 1ba4 subs r4, r4, r6 + 8005c3c: 10a4 asrs r4, r4, #2 + 8005c3e: 2500 movs r5, #0 + 8005c40: 42a5 cmp r5, r4 + 8005c42: d109 bne.n 8005c58 <__libc_init_array+0x24> + 8005c44: 4e0b ldr r6, [pc, #44] ; (8005c74 <__libc_init_array+0x40>) + 8005c46: 4c0c ldr r4, [pc, #48] ; (8005c78 <__libc_init_array+0x44>) + 8005c48: f000 f960 bl 8005f0c <_init> + 8005c4c: 1ba4 subs r4, r4, r6 + 8005c4e: 10a4 asrs r4, r4, #2 + 8005c50: 2500 movs r5, #0 + 8005c52: 42a5 cmp r5, r4 + 8005c54: d105 bne.n 8005c62 <__libc_init_array+0x2e> + 8005c56: bd70 pop {r4, r5, r6, pc} + 8005c58: f856 3025 ldr.w r3, [r6, r5, lsl #2] + 8005c5c: 4798 blx r3 + 8005c5e: 3501 adds r5, #1 + 8005c60: e7ee b.n 8005c40 <__libc_init_array+0xc> + 8005c62: f856 3025 ldr.w r3, [r6, r5, lsl #2] + 8005c66: 4798 blx r3 + 8005c68: 3501 adds r5, #1 + 8005c6a: e7f2 b.n 8005c52 <__libc_init_array+0x1e> + 8005c6c: 08006198 .word 0x08006198 + 8005c70: 08006198 .word 0x08006198 + 8005c74: 08006198 .word 0x08006198 + 8005c78: 080061a0 .word 0x080061a0 + +08005c7c : + 8005c7c: b510 push {r4, lr} + 8005c7e: 1e43 subs r3, r0, #1 + 8005c80: 440a add r2, r1 + 8005c82: 4291 cmp r1, r2 + 8005c84: d100 bne.n 8005c88 + 8005c86: bd10 pop {r4, pc} + 8005c88: f811 4b01 ldrb.w r4, [r1], #1 + 8005c8c: f803 4f01 strb.w r4, [r3, #1]! + 8005c90: e7f7 b.n 8005c82 + +08005c92 : + 8005c92: 4402 add r2, r0 + 8005c94: 4603 mov r3, r0 + 8005c96: 4293 cmp r3, r2 + 8005c98: d100 bne.n 8005c9c + 8005c9a: 4770 bx lr + 8005c9c: f803 1b01 strb.w r1, [r3], #1 + 8005ca0: e7f9 b.n 8005c96 ... -08005c40 : - 8005c40: 4b02 ldr r3, [pc, #8] ; (8005c4c ) - 8005c42: 460a mov r2, r1 - 8005c44: 4601 mov r1, r0 - 8005c46: 6818 ldr r0, [r3, #0] - 8005c48: f000 b8a0 b.w 8005d8c <_realloc_r> - 8005c4c: 20000010 .word 0x20000010 - -08005c50 <_raise_r>: - 8005c50: 291f cmp r1, #31 - 8005c52: b538 push {r3, r4, r5, lr} - 8005c54: 4604 mov r4, r0 - 8005c56: 460d mov r5, r1 - 8005c58: d904 bls.n 8005c64 <_raise_r+0x14> - 8005c5a: 2316 movs r3, #22 - 8005c5c: 6003 str r3, [r0, #0] - 8005c5e: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 8005c62: bd38 pop {r3, r4, r5, pc} - 8005c64: 6c42 ldr r2, [r0, #68] ; 0x44 - 8005c66: b112 cbz r2, 8005c6e <_raise_r+0x1e> - 8005c68: f852 3021 ldr.w r3, [r2, r1, lsl #2] - 8005c6c: b94b cbnz r3, 8005c82 <_raise_r+0x32> - 8005c6e: 4620 mov r0, r4 - 8005c70: f000 f830 bl 8005cd4 <_getpid_r> - 8005c74: 462a mov r2, r5 - 8005c76: 4601 mov r1, r0 - 8005c78: 4620 mov r0, r4 - 8005c7a: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} - 8005c7e: f000 b817 b.w 8005cb0 <_kill_r> - 8005c82: 2b01 cmp r3, #1 - 8005c84: d00a beq.n 8005c9c <_raise_r+0x4c> - 8005c86: 1c59 adds r1, r3, #1 - 8005c88: d103 bne.n 8005c92 <_raise_r+0x42> - 8005c8a: 2316 movs r3, #22 - 8005c8c: 6003 str r3, [r0, #0] - 8005c8e: 2001 movs r0, #1 - 8005c90: e7e7 b.n 8005c62 <_raise_r+0x12> - 8005c92: 2400 movs r4, #0 - 8005c94: f842 4025 str.w r4, [r2, r5, lsl #2] - 8005c98: 4628 mov r0, r5 - 8005c9a: 4798 blx r3 - 8005c9c: 2000 movs r0, #0 - 8005c9e: e7e0 b.n 8005c62 <_raise_r+0x12> - -08005ca0 : - 8005ca0: 4b02 ldr r3, [pc, #8] ; (8005cac ) - 8005ca2: 4601 mov r1, r0 - 8005ca4: 6818 ldr r0, [r3, #0] - 8005ca6: f7ff bfd3 b.w 8005c50 <_raise_r> - 8005caa: bf00 nop - 8005cac: 20000010 .word 0x20000010 - -08005cb0 <_kill_r>: - 8005cb0: b538 push {r3, r4, r5, lr} - 8005cb2: 4c07 ldr r4, [pc, #28] ; (8005cd0 <_kill_r+0x20>) - 8005cb4: 2300 movs r3, #0 - 8005cb6: 4605 mov r5, r0 - 8005cb8: 4608 mov r0, r1 - 8005cba: 4611 mov r1, r2 - 8005cbc: 6023 str r3, [r4, #0] - 8005cbe: f7ff fec1 bl 8005a44 <_kill> - 8005cc2: 1c43 adds r3, r0, #1 - 8005cc4: d102 bne.n 8005ccc <_kill_r+0x1c> - 8005cc6: 6823 ldr r3, [r4, #0] - 8005cc8: b103 cbz r3, 8005ccc <_kill_r+0x1c> - 8005cca: 602b str r3, [r5, #0] - 8005ccc: bd38 pop {r3, r4, r5, pc} - 8005cce: bf00 nop - 8005cd0: 20000240 .word 0x20000240 - -08005cd4 <_getpid_r>: - 8005cd4: f7ff beae b.w 8005a34 <_getpid> - -08005cd8 <_malloc_r>: - 8005cd8: b570 push {r4, r5, r6, lr} - 8005cda: 1ccd adds r5, r1, #3 - 8005cdc: f025 0503 bic.w r5, r5, #3 - 8005ce0: 3508 adds r5, #8 - 8005ce2: 2d0c cmp r5, #12 - 8005ce4: bf38 it cc - 8005ce6: 250c movcc r5, #12 - 8005ce8: 2d00 cmp r5, #0 - 8005cea: 4606 mov r6, r0 - 8005cec: db01 blt.n 8005cf2 <_malloc_r+0x1a> - 8005cee: 42a9 cmp r1, r5 - 8005cf0: d903 bls.n 8005cfa <_malloc_r+0x22> - 8005cf2: 230c movs r3, #12 - 8005cf4: 6033 str r3, [r6, #0] - 8005cf6: 2000 movs r0, #0 - 8005cf8: bd70 pop {r4, r5, r6, pc} - 8005cfa: f000 f87d bl 8005df8 <__malloc_lock> - 8005cfe: 4a21 ldr r2, [pc, #132] ; (8005d84 <_malloc_r+0xac>) - 8005d00: 6814 ldr r4, [r2, #0] - 8005d02: 4621 mov r1, r4 - 8005d04: b991 cbnz r1, 8005d2c <_malloc_r+0x54> - 8005d06: 4c20 ldr r4, [pc, #128] ; (8005d88 <_malloc_r+0xb0>) - 8005d08: 6823 ldr r3, [r4, #0] - 8005d0a: b91b cbnz r3, 8005d14 <_malloc_r+0x3c> - 8005d0c: 4630 mov r0, r6 - 8005d0e: f000 f863 bl 8005dd8 <_sbrk_r> - 8005d12: 6020 str r0, [r4, #0] - 8005d14: 4629 mov r1, r5 - 8005d16: 4630 mov r0, r6 - 8005d18: f000 f85e bl 8005dd8 <_sbrk_r> - 8005d1c: 1c43 adds r3, r0, #1 - 8005d1e: d124 bne.n 8005d6a <_malloc_r+0x92> - 8005d20: 230c movs r3, #12 - 8005d22: 6033 str r3, [r6, #0] - 8005d24: 4630 mov r0, r6 - 8005d26: f000 f868 bl 8005dfa <__malloc_unlock> - 8005d2a: e7e4 b.n 8005cf6 <_malloc_r+0x1e> - 8005d2c: 680b ldr r3, [r1, #0] - 8005d2e: 1b5b subs r3, r3, r5 - 8005d30: d418 bmi.n 8005d64 <_malloc_r+0x8c> - 8005d32: 2b0b cmp r3, #11 - 8005d34: d90f bls.n 8005d56 <_malloc_r+0x7e> - 8005d36: 600b str r3, [r1, #0] - 8005d38: 50cd str r5, [r1, r3] - 8005d3a: 18cc adds r4, r1, r3 - 8005d3c: 4630 mov r0, r6 - 8005d3e: f000 f85c bl 8005dfa <__malloc_unlock> - 8005d42: f104 000b add.w r0, r4, #11 - 8005d46: 1d23 adds r3, r4, #4 - 8005d48: f020 0007 bic.w r0, r0, #7 - 8005d4c: 1ac3 subs r3, r0, r3 - 8005d4e: d0d3 beq.n 8005cf8 <_malloc_r+0x20> - 8005d50: 425a negs r2, r3 - 8005d52: 50e2 str r2, [r4, r3] - 8005d54: e7d0 b.n 8005cf8 <_malloc_r+0x20> - 8005d56: 428c cmp r4, r1 - 8005d58: 684b ldr r3, [r1, #4] - 8005d5a: bf16 itet ne - 8005d5c: 6063 strne r3, [r4, #4] - 8005d5e: 6013 streq r3, [r2, #0] - 8005d60: 460c movne r4, r1 - 8005d62: e7eb b.n 8005d3c <_malloc_r+0x64> - 8005d64: 460c mov r4, r1 - 8005d66: 6849 ldr r1, [r1, #4] - 8005d68: e7cc b.n 8005d04 <_malloc_r+0x2c> - 8005d6a: 1cc4 adds r4, r0, #3 - 8005d6c: f024 0403 bic.w r4, r4, #3 - 8005d70: 42a0 cmp r0, r4 - 8005d72: d005 beq.n 8005d80 <_malloc_r+0xa8> - 8005d74: 1a21 subs r1, r4, r0 - 8005d76: 4630 mov r0, r6 - 8005d78: f000 f82e bl 8005dd8 <_sbrk_r> - 8005d7c: 3001 adds r0, #1 - 8005d7e: d0cf beq.n 8005d20 <_malloc_r+0x48> - 8005d80: 6025 str r5, [r4, #0] - 8005d82: e7db b.n 8005d3c <_malloc_r+0x64> - 8005d84: 20000234 .word 0x20000234 - 8005d88: 20000238 .word 0x20000238 - -08005d8c <_realloc_r>: - 8005d8c: b5f8 push {r3, r4, r5, r6, r7, lr} - 8005d8e: 4607 mov r7, r0 - 8005d90: 4614 mov r4, r2 - 8005d92: 460e mov r6, r1 - 8005d94: b921 cbnz r1, 8005da0 <_realloc_r+0x14> - 8005d96: 4611 mov r1, r2 - 8005d98: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} - 8005d9c: f7ff bf9c b.w 8005cd8 <_malloc_r> - 8005da0: b922 cbnz r2, 8005dac <_realloc_r+0x20> - 8005da2: f000 f82b bl 8005dfc <_free_r> - 8005da6: 4625 mov r5, r4 - 8005da8: 4628 mov r0, r5 - 8005daa: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8005dac: f000 f874 bl 8005e98 <_malloc_usable_size_r> - 8005db0: 42a0 cmp r0, r4 - 8005db2: d20f bcs.n 8005dd4 <_realloc_r+0x48> - 8005db4: 4621 mov r1, r4 - 8005db6: 4638 mov r0, r7 - 8005db8: f7ff ff8e bl 8005cd8 <_malloc_r> - 8005dbc: 4605 mov r5, r0 - 8005dbe: 2800 cmp r0, #0 - 8005dc0: d0f2 beq.n 8005da8 <_realloc_r+0x1c> - 8005dc2: 4631 mov r1, r6 - 8005dc4: 4622 mov r2, r4 - 8005dc6: f7ff ff27 bl 8005c18 - 8005dca: 4631 mov r1, r6 - 8005dcc: 4638 mov r0, r7 - 8005dce: f000 f815 bl 8005dfc <_free_r> - 8005dd2: e7e9 b.n 8005da8 <_realloc_r+0x1c> - 8005dd4: 4635 mov r5, r6 - 8005dd6: e7e7 b.n 8005da8 <_realloc_r+0x1c> - -08005dd8 <_sbrk_r>: - 8005dd8: b538 push {r3, r4, r5, lr} - 8005dda: 4c06 ldr r4, [pc, #24] ; (8005df4 <_sbrk_r+0x1c>) - 8005ddc: 2300 movs r3, #0 - 8005dde: 4605 mov r5, r0 - 8005de0: 4608 mov r0, r1 - 8005de2: 6023 str r3, [r4, #0] - 8005de4: f7ff fe48 bl 8005a78 <_sbrk> - 8005de8: 1c43 adds r3, r0, #1 - 8005dea: d102 bne.n 8005df2 <_sbrk_r+0x1a> - 8005dec: 6823 ldr r3, [r4, #0] - 8005dee: b103 cbz r3, 8005df2 <_sbrk_r+0x1a> - 8005df0: 602b str r3, [r5, #0] - 8005df2: bd38 pop {r3, r4, r5, pc} - 8005df4: 20000240 .word 0x20000240 - -08005df8 <__malloc_lock>: - 8005df8: 4770 bx lr - -08005dfa <__malloc_unlock>: - 8005dfa: 4770 bx lr - -08005dfc <_free_r>: - 8005dfc: b538 push {r3, r4, r5, lr} - 8005dfe: 4605 mov r5, r0 - 8005e00: 2900 cmp r1, #0 - 8005e02: d045 beq.n 8005e90 <_free_r+0x94> - 8005e04: f851 3c04 ldr.w r3, [r1, #-4] - 8005e08: 1f0c subs r4, r1, #4 - 8005e0a: 2b00 cmp r3, #0 - 8005e0c: bfb8 it lt - 8005e0e: 18e4 addlt r4, r4, r3 - 8005e10: f7ff fff2 bl 8005df8 <__malloc_lock> - 8005e14: 4a1f ldr r2, [pc, #124] ; (8005e94 <_free_r+0x98>) - 8005e16: 6813 ldr r3, [r2, #0] - 8005e18: 4610 mov r0, r2 - 8005e1a: b933 cbnz r3, 8005e2a <_free_r+0x2e> - 8005e1c: 6063 str r3, [r4, #4] - 8005e1e: 6014 str r4, [r2, #0] - 8005e20: 4628 mov r0, r5 - 8005e22: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} - 8005e26: f7ff bfe8 b.w 8005dfa <__malloc_unlock> - 8005e2a: 42a3 cmp r3, r4 - 8005e2c: d90c bls.n 8005e48 <_free_r+0x4c> - 8005e2e: 6821 ldr r1, [r4, #0] - 8005e30: 1862 adds r2, r4, r1 - 8005e32: 4293 cmp r3, r2 - 8005e34: bf04 itt eq - 8005e36: 681a ldreq r2, [r3, #0] - 8005e38: 685b ldreq r3, [r3, #4] - 8005e3a: 6063 str r3, [r4, #4] - 8005e3c: bf04 itt eq - 8005e3e: 1852 addeq r2, r2, r1 - 8005e40: 6022 streq r2, [r4, #0] - 8005e42: 6004 str r4, [r0, #0] - 8005e44: e7ec b.n 8005e20 <_free_r+0x24> - 8005e46: 4613 mov r3, r2 - 8005e48: 685a ldr r2, [r3, #4] - 8005e4a: b10a cbz r2, 8005e50 <_free_r+0x54> - 8005e4c: 42a2 cmp r2, r4 - 8005e4e: d9fa bls.n 8005e46 <_free_r+0x4a> - 8005e50: 6819 ldr r1, [r3, #0] - 8005e52: 1858 adds r0, r3, r1 - 8005e54: 42a0 cmp r0, r4 - 8005e56: d10b bne.n 8005e70 <_free_r+0x74> - 8005e58: 6820 ldr r0, [r4, #0] - 8005e5a: 4401 add r1, r0 - 8005e5c: 1858 adds r0, r3, r1 - 8005e5e: 4282 cmp r2, r0 - 8005e60: 6019 str r1, [r3, #0] - 8005e62: d1dd bne.n 8005e20 <_free_r+0x24> - 8005e64: 6810 ldr r0, [r2, #0] - 8005e66: 6852 ldr r2, [r2, #4] - 8005e68: 605a str r2, [r3, #4] - 8005e6a: 4401 add r1, r0 - 8005e6c: 6019 str r1, [r3, #0] - 8005e6e: e7d7 b.n 8005e20 <_free_r+0x24> - 8005e70: d902 bls.n 8005e78 <_free_r+0x7c> - 8005e72: 230c movs r3, #12 - 8005e74: 602b str r3, [r5, #0] - 8005e76: e7d3 b.n 8005e20 <_free_r+0x24> - 8005e78: 6820 ldr r0, [r4, #0] - 8005e7a: 1821 adds r1, r4, r0 - 8005e7c: 428a cmp r2, r1 - 8005e7e: bf04 itt eq - 8005e80: 6811 ldreq r1, [r2, #0] - 8005e82: 6852 ldreq r2, [r2, #4] - 8005e84: 6062 str r2, [r4, #4] - 8005e86: bf04 itt eq - 8005e88: 1809 addeq r1, r1, r0 - 8005e8a: 6021 streq r1, [r4, #0] - 8005e8c: 605c str r4, [r3, #4] - 8005e8e: e7c7 b.n 8005e20 <_free_r+0x24> - 8005e90: bd38 pop {r3, r4, r5, pc} - 8005e92: bf00 nop - 8005e94: 20000234 .word 0x20000234 - -08005e98 <_malloc_usable_size_r>: - 8005e98: f851 3c04 ldr.w r3, [r1, #-4] - 8005e9c: 1f18 subs r0, r3, #4 - 8005e9e: 2b00 cmp r3, #0 - 8005ea0: bfbc itt lt - 8005ea2: 580b ldrlt r3, [r1, r0] - 8005ea4: 18c0 addlt r0, r0, r3 - 8005ea6: 4770 bx lr - -08005ea8 <_init>: - 8005ea8: b5f8 push {r3, r4, r5, r6, r7, lr} - 8005eaa: bf00 nop - 8005eac: bcf8 pop {r3, r4, r5, r6, r7} - 8005eae: bc08 pop {r3} - 8005eb0: 469e mov lr, r3 - 8005eb2: 4770 bx lr - -08005eb4 <_fini>: - 8005eb4: b5f8 push {r3, r4, r5, r6, r7, lr} - 8005eb6: bf00 nop - 8005eb8: bcf8 pop {r3, r4, r5, r6, r7} - 8005eba: bc08 pop {r3} - 8005ebc: 469e mov lr, r3 - 8005ebe: 4770 bx lr +08005ca4 : + 8005ca4: 4b02 ldr r3, [pc, #8] ; (8005cb0 ) + 8005ca6: 460a mov r2, r1 + 8005ca8: 4601 mov r1, r0 + 8005caa: 6818 ldr r0, [r3, #0] + 8005cac: f000 b8a0 b.w 8005df0 <_realloc_r> + 8005cb0: 20000010 .word 0x20000010 + +08005cb4 <_raise_r>: + 8005cb4: 291f cmp r1, #31 + 8005cb6: b538 push {r3, r4, r5, lr} + 8005cb8: 4604 mov r4, r0 + 8005cba: 460d mov r5, r1 + 8005cbc: d904 bls.n 8005cc8 <_raise_r+0x14> + 8005cbe: 2316 movs r3, #22 + 8005cc0: 6003 str r3, [r0, #0] + 8005cc2: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff + 8005cc6: bd38 pop {r3, r4, r5, pc} + 8005cc8: 6c42 ldr r2, [r0, #68] ; 0x44 + 8005cca: b112 cbz r2, 8005cd2 <_raise_r+0x1e> + 8005ccc: f852 3021 ldr.w r3, [r2, r1, lsl #2] + 8005cd0: b94b cbnz r3, 8005ce6 <_raise_r+0x32> + 8005cd2: 4620 mov r0, r4 + 8005cd4: f000 f830 bl 8005d38 <_getpid_r> + 8005cd8: 462a mov r2, r5 + 8005cda: 4601 mov r1, r0 + 8005cdc: 4620 mov r0, r4 + 8005cde: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} + 8005ce2: f000 b817 b.w 8005d14 <_kill_r> + 8005ce6: 2b01 cmp r3, #1 + 8005ce8: d00a beq.n 8005d00 <_raise_r+0x4c> + 8005cea: 1c59 adds r1, r3, #1 + 8005cec: d103 bne.n 8005cf6 <_raise_r+0x42> + 8005cee: 2316 movs r3, #22 + 8005cf0: 6003 str r3, [r0, #0] + 8005cf2: 2001 movs r0, #1 + 8005cf4: e7e7 b.n 8005cc6 <_raise_r+0x12> + 8005cf6: 2400 movs r4, #0 + 8005cf8: f842 4025 str.w r4, [r2, r5, lsl #2] + 8005cfc: 4628 mov r0, r5 + 8005cfe: 4798 blx r3 + 8005d00: 2000 movs r0, #0 + 8005d02: e7e0 b.n 8005cc6 <_raise_r+0x12> + +08005d04 : + 8005d04: 4b02 ldr r3, [pc, #8] ; (8005d10 ) + 8005d06: 4601 mov r1, r0 + 8005d08: 6818 ldr r0, [r3, #0] + 8005d0a: f7ff bfd3 b.w 8005cb4 <_raise_r> + 8005d0e: bf00 nop + 8005d10: 20000010 .word 0x20000010 + +08005d14 <_kill_r>: + 8005d14: b538 push {r3, r4, r5, lr} + 8005d16: 4c07 ldr r4, [pc, #28] ; (8005d34 <_kill_r+0x20>) + 8005d18: 2300 movs r3, #0 + 8005d1a: 4605 mov r5, r0 + 8005d1c: 4608 mov r0, r1 + 8005d1e: 4611 mov r1, r2 + 8005d20: 6023 str r3, [r4, #0] + 8005d22: f7ff fec1 bl 8005aa8 <_kill> + 8005d26: 1c43 adds r3, r0, #1 + 8005d28: d102 bne.n 8005d30 <_kill_r+0x1c> + 8005d2a: 6823 ldr r3, [r4, #0] + 8005d2c: b103 cbz r3, 8005d30 <_kill_r+0x1c> + 8005d2e: 602b str r3, [r5, #0] + 8005d30: bd38 pop {r3, r4, r5, pc} + 8005d32: bf00 nop + 8005d34: 20000900 .word 0x20000900 + +08005d38 <_getpid_r>: + 8005d38: f7ff beae b.w 8005a98 <_getpid> + +08005d3c <_malloc_r>: + 8005d3c: b570 push {r4, r5, r6, lr} + 8005d3e: 1ccd adds r5, r1, #3 + 8005d40: f025 0503 bic.w r5, r5, #3 + 8005d44: 3508 adds r5, #8 + 8005d46: 2d0c cmp r5, #12 + 8005d48: bf38 it cc + 8005d4a: 250c movcc r5, #12 + 8005d4c: 2d00 cmp r5, #0 + 8005d4e: 4606 mov r6, r0 + 8005d50: db01 blt.n 8005d56 <_malloc_r+0x1a> + 8005d52: 42a9 cmp r1, r5 + 8005d54: d903 bls.n 8005d5e <_malloc_r+0x22> + 8005d56: 230c movs r3, #12 + 8005d58: 6033 str r3, [r6, #0] + 8005d5a: 2000 movs r0, #0 + 8005d5c: bd70 pop {r4, r5, r6, pc} + 8005d5e: f000 f87d bl 8005e5c <__malloc_lock> + 8005d62: 4a21 ldr r2, [pc, #132] ; (8005de8 <_malloc_r+0xac>) + 8005d64: 6814 ldr r4, [r2, #0] + 8005d66: 4621 mov r1, r4 + 8005d68: b991 cbnz r1, 8005d90 <_malloc_r+0x54> + 8005d6a: 4c20 ldr r4, [pc, #128] ; (8005dec <_malloc_r+0xb0>) + 8005d6c: 6823 ldr r3, [r4, #0] + 8005d6e: b91b cbnz r3, 8005d78 <_malloc_r+0x3c> + 8005d70: 4630 mov r0, r6 + 8005d72: f000 f863 bl 8005e3c <_sbrk_r> + 8005d76: 6020 str r0, [r4, #0] + 8005d78: 4629 mov r1, r5 + 8005d7a: 4630 mov r0, r6 + 8005d7c: f000 f85e bl 8005e3c <_sbrk_r> + 8005d80: 1c43 adds r3, r0, #1 + 8005d82: d124 bne.n 8005dce <_malloc_r+0x92> + 8005d84: 230c movs r3, #12 + 8005d86: 6033 str r3, [r6, #0] + 8005d88: 4630 mov r0, r6 + 8005d8a: f000 f868 bl 8005e5e <__malloc_unlock> + 8005d8e: e7e4 b.n 8005d5a <_malloc_r+0x1e> + 8005d90: 680b ldr r3, [r1, #0] + 8005d92: 1b5b subs r3, r3, r5 + 8005d94: d418 bmi.n 8005dc8 <_malloc_r+0x8c> + 8005d96: 2b0b cmp r3, #11 + 8005d98: d90f bls.n 8005dba <_malloc_r+0x7e> + 8005d9a: 600b str r3, [r1, #0] + 8005d9c: 50cd str r5, [r1, r3] + 8005d9e: 18cc adds r4, r1, r3 + 8005da0: 4630 mov r0, r6 + 8005da2: f000 f85c bl 8005e5e <__malloc_unlock> + 8005da6: f104 000b add.w r0, r4, #11 + 8005daa: 1d23 adds r3, r4, #4 + 8005dac: f020 0007 bic.w r0, r0, #7 + 8005db0: 1ac3 subs r3, r0, r3 + 8005db2: d0d3 beq.n 8005d5c <_malloc_r+0x20> + 8005db4: 425a negs r2, r3 + 8005db6: 50e2 str r2, [r4, r3] + 8005db8: e7d0 b.n 8005d5c <_malloc_r+0x20> + 8005dba: 428c cmp r4, r1 + 8005dbc: 684b ldr r3, [r1, #4] + 8005dbe: bf16 itet ne + 8005dc0: 6063 strne r3, [r4, #4] + 8005dc2: 6013 streq r3, [r2, #0] + 8005dc4: 460c movne r4, r1 + 8005dc6: e7eb b.n 8005da0 <_malloc_r+0x64> + 8005dc8: 460c mov r4, r1 + 8005dca: 6849 ldr r1, [r1, #4] + 8005dcc: e7cc b.n 8005d68 <_malloc_r+0x2c> + 8005dce: 1cc4 adds r4, r0, #3 + 8005dd0: f024 0403 bic.w r4, r4, #3 + 8005dd4: 42a0 cmp r0, r4 + 8005dd6: d005 beq.n 8005de4 <_malloc_r+0xa8> + 8005dd8: 1a21 subs r1, r4, r0 + 8005dda: 4630 mov r0, r6 + 8005ddc: f000 f82e bl 8005e3c <_sbrk_r> + 8005de0: 3001 adds r0, #1 + 8005de2: d0cf beq.n 8005d84 <_malloc_r+0x48> + 8005de4: 6025 str r5, [r4, #0] + 8005de6: e7db b.n 8005da0 <_malloc_r+0x64> + 8005de8: 200008f4 .word 0x200008f4 + 8005dec: 200008f8 .word 0x200008f8 + +08005df0 <_realloc_r>: + 8005df0: b5f8 push {r3, r4, r5, r6, r7, lr} + 8005df2: 4607 mov r7, r0 + 8005df4: 4614 mov r4, r2 + 8005df6: 460e mov r6, r1 + 8005df8: b921 cbnz r1, 8005e04 <_realloc_r+0x14> + 8005dfa: 4611 mov r1, r2 + 8005dfc: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} + 8005e00: f7ff bf9c b.w 8005d3c <_malloc_r> + 8005e04: b922 cbnz r2, 8005e10 <_realloc_r+0x20> + 8005e06: f000 f82b bl 8005e60 <_free_r> + 8005e0a: 4625 mov r5, r4 + 8005e0c: 4628 mov r0, r5 + 8005e0e: bdf8 pop {r3, r4, r5, r6, r7, pc} + 8005e10: f000 f874 bl 8005efc <_malloc_usable_size_r> + 8005e14: 42a0 cmp r0, r4 + 8005e16: d20f bcs.n 8005e38 <_realloc_r+0x48> + 8005e18: 4621 mov r1, r4 + 8005e1a: 4638 mov r0, r7 + 8005e1c: f7ff ff8e bl 8005d3c <_malloc_r> + 8005e20: 4605 mov r5, r0 + 8005e22: 2800 cmp r0, #0 + 8005e24: d0f2 beq.n 8005e0c <_realloc_r+0x1c> + 8005e26: 4631 mov r1, r6 + 8005e28: 4622 mov r2, r4 + 8005e2a: f7ff ff27 bl 8005c7c + 8005e2e: 4631 mov r1, r6 + 8005e30: 4638 mov r0, r7 + 8005e32: f000 f815 bl 8005e60 <_free_r> + 8005e36: e7e9 b.n 8005e0c <_realloc_r+0x1c> + 8005e38: 4635 mov r5, r6 + 8005e3a: e7e7 b.n 8005e0c <_realloc_r+0x1c> + +08005e3c <_sbrk_r>: + 8005e3c: b538 push {r3, r4, r5, lr} + 8005e3e: 4c06 ldr r4, [pc, #24] ; (8005e58 <_sbrk_r+0x1c>) + 8005e40: 2300 movs r3, #0 + 8005e42: 4605 mov r5, r0 + 8005e44: 4608 mov r0, r1 + 8005e46: 6023 str r3, [r4, #0] + 8005e48: f7ff fe48 bl 8005adc <_sbrk> + 8005e4c: 1c43 adds r3, r0, #1 + 8005e4e: d102 bne.n 8005e56 <_sbrk_r+0x1a> + 8005e50: 6823 ldr r3, [r4, #0] + 8005e52: b103 cbz r3, 8005e56 <_sbrk_r+0x1a> + 8005e54: 602b str r3, [r5, #0] + 8005e56: bd38 pop {r3, r4, r5, pc} + 8005e58: 20000900 .word 0x20000900 + +08005e5c <__malloc_lock>: + 8005e5c: 4770 bx lr + +08005e5e <__malloc_unlock>: + 8005e5e: 4770 bx lr + +08005e60 <_free_r>: + 8005e60: b538 push {r3, r4, r5, lr} + 8005e62: 4605 mov r5, r0 + 8005e64: 2900 cmp r1, #0 + 8005e66: d045 beq.n 8005ef4 <_free_r+0x94> + 8005e68: f851 3c04 ldr.w r3, [r1, #-4] + 8005e6c: 1f0c subs r4, r1, #4 + 8005e6e: 2b00 cmp r3, #0 + 8005e70: bfb8 it lt + 8005e72: 18e4 addlt r4, r4, r3 + 8005e74: f7ff fff2 bl 8005e5c <__malloc_lock> + 8005e78: 4a1f ldr r2, [pc, #124] ; (8005ef8 <_free_r+0x98>) + 8005e7a: 6813 ldr r3, [r2, #0] + 8005e7c: 4610 mov r0, r2 + 8005e7e: b933 cbnz r3, 8005e8e <_free_r+0x2e> + 8005e80: 6063 str r3, [r4, #4] + 8005e82: 6014 str r4, [r2, #0] + 8005e84: 4628 mov r0, r5 + 8005e86: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} + 8005e8a: f7ff bfe8 b.w 8005e5e <__malloc_unlock> + 8005e8e: 42a3 cmp r3, r4 + 8005e90: d90c bls.n 8005eac <_free_r+0x4c> + 8005e92: 6821 ldr r1, [r4, #0] + 8005e94: 1862 adds r2, r4, r1 + 8005e96: 4293 cmp r3, r2 + 8005e98: bf04 itt eq + 8005e9a: 681a ldreq r2, [r3, #0] + 8005e9c: 685b ldreq r3, [r3, #4] + 8005e9e: 6063 str r3, [r4, #4] + 8005ea0: bf04 itt eq + 8005ea2: 1852 addeq r2, r2, r1 + 8005ea4: 6022 streq r2, [r4, #0] + 8005ea6: 6004 str r4, [r0, #0] + 8005ea8: e7ec b.n 8005e84 <_free_r+0x24> + 8005eaa: 4613 mov r3, r2 + 8005eac: 685a ldr r2, [r3, #4] + 8005eae: b10a cbz r2, 8005eb4 <_free_r+0x54> + 8005eb0: 42a2 cmp r2, r4 + 8005eb2: d9fa bls.n 8005eaa <_free_r+0x4a> + 8005eb4: 6819 ldr r1, [r3, #0] + 8005eb6: 1858 adds r0, r3, r1 + 8005eb8: 42a0 cmp r0, r4 + 8005eba: d10b bne.n 8005ed4 <_free_r+0x74> + 8005ebc: 6820 ldr r0, [r4, #0] + 8005ebe: 4401 add r1, r0 + 8005ec0: 1858 adds r0, r3, r1 + 8005ec2: 4282 cmp r2, r0 + 8005ec4: 6019 str r1, [r3, #0] + 8005ec6: d1dd bne.n 8005e84 <_free_r+0x24> + 8005ec8: 6810 ldr r0, [r2, #0] + 8005eca: 6852 ldr r2, [r2, #4] + 8005ecc: 605a str r2, [r3, #4] + 8005ece: 4401 add r1, r0 + 8005ed0: 6019 str r1, [r3, #0] + 8005ed2: e7d7 b.n 8005e84 <_free_r+0x24> + 8005ed4: d902 bls.n 8005edc <_free_r+0x7c> + 8005ed6: 230c movs r3, #12 + 8005ed8: 602b str r3, [r5, #0] + 8005eda: e7d3 b.n 8005e84 <_free_r+0x24> + 8005edc: 6820 ldr r0, [r4, #0] + 8005ede: 1821 adds r1, r4, r0 + 8005ee0: 428a cmp r2, r1 + 8005ee2: bf04 itt eq + 8005ee4: 6811 ldreq r1, [r2, #0] + 8005ee6: 6852 ldreq r2, [r2, #4] + 8005ee8: 6062 str r2, [r4, #4] + 8005eea: bf04 itt eq + 8005eec: 1809 addeq r1, r1, r0 + 8005eee: 6021 streq r1, [r4, #0] + 8005ef0: 605c str r4, [r3, #4] + 8005ef2: e7c7 b.n 8005e84 <_free_r+0x24> + 8005ef4: bd38 pop {r3, r4, r5, pc} + 8005ef6: bf00 nop + 8005ef8: 200008f4 .word 0x200008f4 + +08005efc <_malloc_usable_size_r>: + 8005efc: f851 3c04 ldr.w r3, [r1, #-4] + 8005f00: 1f18 subs r0, r3, #4 + 8005f02: 2b00 cmp r3, #0 + 8005f04: bfbc itt lt + 8005f06: 580b ldrlt r3, [r1, r0] + 8005f08: 18c0 addlt r0, r0, r3 + 8005f0a: 4770 bx lr + +08005f0c <_init>: + 8005f0c: b5f8 push {r3, r4, r5, r6, r7, lr} + 8005f0e: bf00 nop + 8005f10: bcf8 pop {r3, r4, r5, r6, r7} + 8005f12: bc08 pop {r3} + 8005f14: 469e mov lr, r3 + 8005f16: 4770 bx lr + +08005f18 <_fini>: + 8005f18: b5f8 push {r3, r4, r5, r6, r7, lr} + 8005f1a: bf00 nop + 8005f1c: bcf8 pop {r3, r4, r5, r6, r7} + 8005f1e: bc08 pop {r3} + 8005f20: 469e mov lr, r3 + 8005f22: 4770 bx lr diff --git a/rosserial_led/Inc/mainpp.h b/rosserial_led/Inc/mainpp.h new file mode 100644 index 0000000..634576e --- /dev/null +++ b/rosserial_led/Inc/mainpp.h @@ -0,0 +1,8 @@ +#pragma once + +#include +#include + +void led_cb(const std_msgs::UInt8& msg); +void setup(); +void loop(); diff --git a/rosserial_led/Inc/test.hpp b/rosserial_led/Inc/test.hpp deleted file mode 100644 index 87bbc22..0000000 --- a/rosserial_led/Inc/test.hpp +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -void write(uint8_t* data, int length, UART_HandleTypeDef huart); diff --git a/rosserial_led/Src/main.cpp b/rosserial_led/Src/main.cpp index 9c55654..1b2a71a 100644 --- a/rosserial_led/Src/main.cpp +++ b/rosserial_led/Src/main.cpp @@ -19,12 +19,11 @@ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ +#include #include "main.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ -#include -#include /* USER CODE END Includes */ @@ -62,20 +61,11 @@ static void MX_DMA_Init(void); static void MX_TIM2_Init(void); static void MX_USART3_UART_Init(void); /* USER CODE BEGIN PFP */ -void led_cb(const std_msgs::UInt8& msg); + /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ -ros::Subscriber led_sub("led", &led_cb); - -void led_cb(const std_msgs::UInt8& msg){ - int i = msg.data; - HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_15); - HAL_Delay(i); - HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_15); - -} /* USER CODE END 0 */ /** @@ -111,17 +101,13 @@ int main(void) MX_TIM2_Init(); MX_USART3_UART_Init(); /* USER CODE BEGIN 2 */ - ros::NodeHandle nh; - - nh.initNode(); - nh.subscribe(led_sub); - + setup(); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { - + loop(); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ diff --git a/rosserial_led/Src/mainpp.cpp b/rosserial_led/Src/mainpp.cpp new file mode 100644 index 0000000..9829513 --- /dev/null +++ b/rosserial_led/Src/mainpp.cpp @@ -0,0 +1,30 @@ +#include "mainpp.h" + +ros::Subscriber led_sub("led", &led_cb); +ros::NodeHandle nh; + +void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { + nh.getHardware()->flush(); +} + +void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { + nh.getHardware()->reset_rbuf(); +} + +void setup(void) { + nh.initNode(); + nh.subscribe(led_sub); +} + +void loop(void) { + nh.spinOnce(); + HAL_Delay(1000); +} + +void led_cb(const std_msgs::UInt8& msg) { + int i = msg.data; + HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_15); + HAL_Delay(500); + HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_15); + +} diff --git a/rosserial_led/Src/test.cpp b/rosserial_led/Src/test.cpp deleted file mode 100644 index 980ccf1..0000000 --- a/rosserial_led/Src/test.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include "stm32f7xx_hal.h" -#include "stm32f7xx_hal_uart.h" -#include "test.hpp" - -void write(uint8_t* data, int length, UART_HandleTypeDef huart) { - HAL_UART_Transmit(&huart, data, length, 100); -}