]> git.leonardobizzoni.com Git - pioneer-stm32/commitdiff
subscriber funziona
authorFederica Di Lauro <federicadilauro1998@gmail.com>
Thu, 12 Sep 2019 12:43:32 +0000 (14:43 +0200)
committerFederica Di Lauro <federicadilauro1998@gmail.com>
Thu, 12 Sep 2019 12:43:32 +0000 (14:43 +0200)
rosserial_led/Debug/Src/subdir.mk
rosserial_led/Debug/objects.list
rosserial_led/Debug/rosserial_led.list
rosserial_led/Inc/mainpp.h [new file with mode: 0644]
rosserial_led/Inc/test.hpp [deleted file]
rosserial_led/Src/main.cpp
rosserial_led/Src/mainpp.cpp [new file with mode: 0644]
rosserial_led/Src/test.cpp [deleted file]

index 02fb6301c0ba58de3394a165f769291b9eafd1b8..1c2d17de2fd32488085ed84de21eb54c916f525f 100644 (file)
@@ -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 "$@"
 
index db8f4f99ef6f788fac25b0b13ab2b04e5cf6bb75..4d66601524131f481a245bc9e74d59c971ff0164 100644 (file)
 "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"
index 0c992702a6888f096b7a9316ad8be13cdc218a11..41111bf1e32c6232be1228395999cfbe8c437ba6 100644 (file)
@@ -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 <frame_dummy>:
  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 <strlen>:
  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 <HAL_MspInit>
+ 8000558:      f005 f95e       bl      8005818 <HAL_MspInit>
   
   /* 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 <HAL_GetTick>:
   * @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 <HAL_Delay>:
   *       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 <DMA_CheckFifoParam>:
@@ -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 <HAL_RCC_GetSysClockFreq>:
@@ -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 <HAL_RCC_GetPCLK2Freq>:
   * @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 <HAL_RCCEx_PeriphCLKConfig>:
   *         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 <HAL_TIM_Base_MspInit>
+ 800244c:      f003 fa08       bl      8005860 <HAL_TIM_Base_MspInit>
 #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 <HAL_UART_MspInit>
+ 8002994:      f002 ff82       bl      800589c <HAL_UART_MspInit>
 #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 <UART_SetConfig>
+ 80029b0:      f000 fa66       bl      8002e80 <UART_SetConfig>
  80029b4:      4603            mov     r3, r0
  80029b6:      2b01            cmp     r3, #1
  80029b8:      d101            bne.n   80029be <HAL_UART_Init+0x4e>
@@ -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 <UART_AdvFeatureConfig>
+ 80029c8:      f000 fcfe       bl      80033c8 <UART_AdvFeatureConfig>
   }
 
   /* 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 <UART_CheckIdleState>
+ 80029fe:      f000 fd85       bl      800350c <UART_CheckIdleState>
  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 <HAL_UART_Receive_DMA>:
   * @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 <HAL_UART_IRQHandler>:
   * @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 <UART_EndRxTransfer>
+ 8002d76:      f000 fc55       bl      8003624 <UART_EndRxTransfer>
 
         /* 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 <HAL_UART_ErrorCallback>
+ 8002dca:      f000 f84f       bl      8002e6c <HAL_UART_ErrorCallback>
         if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
  8002dce:      e00a            b.n     8002de6 <HAL_UART_IRQHandler+0x1da>
 #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 <HAL_UART_ErrorCallback>
+ 8002dd2:      f000 f84b       bl      8002e6c <HAL_UART_ErrorCallback>
         if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
  8002dd6:      e006            b.n     8002de6 <HAL_UART_IRQHandler+0x1da>
 #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 <HAL_UART_ErrorCallback>
+ 8002dda:      f000 f847       bl      8002e6c <HAL_UART_ErrorCallback>
 #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 <UART_EndTransmit_IT>
+ 8002e26:      f000 fce5       bl      80037f4 <UART_EndTransmit_IT>
     return;
  8002e2a:      bf00            nop
  8002e2c:      e004            b.n     8002e38 <HAL_UART_IRQHandler+0x22c>
@@ -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 <HAL_UART_TxCpltCallback>:
-  * @brief Tx Transfer completed callback.
-  * @param huart UART handle.
+08002e44 <HAL_UART_TxHalfCpltCallback>:
+  * @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 <HAL_UART_TxHalfCpltCallback>:
-  * @brief  Tx Half Transfer completed callback.
+08002e58 <HAL_UART_RxHalfCpltCallback>:
+  * @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 <HAL_UART_RxCpltCallback>:
-  * @brief  Rx Transfer completed callback.
+08002e6c <HAL_UART_ErrorCallback>:
+  * @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 <HAL_UART_RxHalfCpltCallback>:
-  * @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 <HAL_UART_ErrorCallback>:
-  * @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 <UART_SetConfig>:
+08002e80 <UART_SetConfig>:
   * @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 <UART_SetConfig+0x2f4>)
- 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 <UART_SetConfig+0x2f4>)
+ 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 <UART_SetConfig+0x2f8>)
- 8002f24:      4293            cmp     r3, r2
- 8002f26:      d121            bne.n   8002f6c <UART_SetConfig+0xc4>
- 8002f28:      4b9e            ldr     r3, [pc, #632]  ; (80031a4 <UART_SetConfig+0x2fc>)
- 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 <UART_SetConfig+0xbc>
- 8002f36:      a201            add     r2, pc, #4      ; (adr r2, 8002f3c <UART_SetConfig+0x94>)
- 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 <UART_SetConfig+0x34e>
- 8002f52:      2302            movs    r3, #2
- 8002f54:      77fb            strb    r3, [r7, #31]
- 8002f56:      e14e            b.n     80031f6 <UART_SetConfig+0x34e>
- 8002f58:      2304            movs    r3, #4
- 8002f5a:      77fb            strb    r3, [r7, #31]
- 8002f5c:      e14b            b.n     80031f6 <UART_SetConfig+0x34e>
- 8002f5e:      2308            movs    r3, #8
- 8002f60:      77fb            strb    r3, [r7, #31]
- 8002f62:      e148            b.n     80031f6 <UART_SetConfig+0x34e>
- 8002f64:      2310            movs    r3, #16
- 8002f66:      77fb            strb    r3, [r7, #31]
- 8002f68:      bf00            nop
- 8002f6a:      e144            b.n     80031f6 <UART_SetConfig+0x34e>
- 8002f6c:      687b            ldr     r3, [r7, #4]
- 8002f6e:      681b            ldr     r3, [r3, #0]
- 8002f70:      4a8d            ldr     r2, [pc, #564]  ; (80031a8 <UART_SetConfig+0x300>)
- 8002f72:      4293            cmp     r3, r2
- 8002f74:      d134            bne.n   8002fe0 <UART_SetConfig+0x138>
- 8002f76:      4b8b            ldr     r3, [pc, #556]  ; (80031a4 <UART_SetConfig+0x2fc>)
- 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 <UART_SetConfig+0x130>
- 8002f84:      a201            add     r2, pc, #4      ; (adr r2, 8002f8c <UART_SetConfig+0xe4>)
- 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 <UART_SetConfig+0x34e>
- 8002fc6:      2302            movs    r3, #2
- 8002fc8:      77fb            strb    r3, [r7, #31]
- 8002fca:      e114            b.n     80031f6 <UART_SetConfig+0x34e>
- 8002fcc:      2304            movs    r3, #4
- 8002fce:      77fb            strb    r3, [r7, #31]
- 8002fd0:      e111            b.n     80031f6 <UART_SetConfig+0x34e>
- 8002fd2:      2308            movs    r3, #8
- 8002fd4:      77fb            strb    r3, [r7, #31]
- 8002fd6:      e10e            b.n     80031f6 <UART_SetConfig+0x34e>
- 8002fd8:      2310            movs    r3, #16
- 8002fda:      77fb            strb    r3, [r7, #31]
- 8002fdc:      bf00            nop
- 8002fde:      e10a            b.n     80031f6 <UART_SetConfig+0x34e>
- 8002fe0:      687b            ldr     r3, [r7, #4]
- 8002fe2:      681b            ldr     r3, [r3, #0]
- 8002fe4:      4a71            ldr     r2, [pc, #452]  ; (80031ac <UART_SetConfig+0x304>)
- 8002fe6:      4293            cmp     r3, r2
- 8002fe8:      d120            bne.n   800302c <UART_SetConfig+0x184>
- 8002fea:      4b6e            ldr     r3, [pc, #440]  ; (80031a4 <UART_SetConfig+0x2fc>)
- 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 <UART_SetConfig+0x170>
- 8002ff8:      2b10            cmp     r3, #16
- 8002ffa:      d802            bhi.n   8003002 <UART_SetConfig+0x15a>
- 8002ffc:      2b00            cmp     r3, #0
- 8002ffe:      d005            beq.n   800300c <UART_SetConfig+0x164>
- 8003000:      e010            b.n     8003024 <UART_SetConfig+0x17c>
- 8003002:      2b20            cmp     r3, #32
- 8003004:      d005            beq.n   8003012 <UART_SetConfig+0x16a>
- 8003006:      2b30            cmp     r3, #48 ; 0x30
- 8003008:      d009            beq.n   800301e <UART_SetConfig+0x176>
- 800300a:      e00b            b.n     8003024 <UART_SetConfig+0x17c>
- 800300c:      2300            movs    r3, #0
- 800300e:      77fb            strb    r3, [r7, #31]
- 8003010:      e0f1            b.n     80031f6 <UART_SetConfig+0x34e>
- 8003012:      2302            movs    r3, #2
- 8003014:      77fb            strb    r3, [r7, #31]
- 8003016:      e0ee            b.n     80031f6 <UART_SetConfig+0x34e>
- 8003018:      2304            movs    r3, #4
- 800301a:      77fb            strb    r3, [r7, #31]
- 800301c:      e0eb            b.n     80031f6 <UART_SetConfig+0x34e>
- 800301e:      2308            movs    r3, #8
- 8003020:      77fb            strb    r3, [r7, #31]
- 8003022:      e0e8            b.n     80031f6 <UART_SetConfig+0x34e>
- 8003024:      2310            movs    r3, #16
- 8003026:      77fb            strb    r3, [r7, #31]
- 8003028:      bf00            nop
- 800302a:      e0e4            b.n     80031f6 <UART_SetConfig+0x34e>
- 800302c:      687b            ldr     r3, [r7, #4]
- 800302e:      681b            ldr     r3, [r3, #0]
- 8003030:      4a5f            ldr     r2, [pc, #380]  ; (80031b0 <UART_SetConfig+0x308>)
- 8003032:      4293            cmp     r3, r2
- 8003034:      d120            bne.n   8003078 <UART_SetConfig+0x1d0>
- 8003036:      4b5b            ldr     r3, [pc, #364]  ; (80031a4 <UART_SetConfig+0x2fc>)
- 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 <UART_SetConfig+0x1bc>
- 8003044:      2b40            cmp     r3, #64 ; 0x40
- 8003046:      d802            bhi.n   800304e <UART_SetConfig+0x1a6>
- 8003048:      2b00            cmp     r3, #0
- 800304a:      d005            beq.n   8003058 <UART_SetConfig+0x1b0>
- 800304c:      e010            b.n     8003070 <UART_SetConfig+0x1c8>
- 800304e:      2b80            cmp     r3, #128        ; 0x80
- 8003050:      d005            beq.n   800305e <UART_SetConfig+0x1b6>
- 8003052:      2bc0            cmp     r3, #192        ; 0xc0
- 8003054:      d009            beq.n   800306a <UART_SetConfig+0x1c2>
- 8003056:      e00b            b.n     8003070 <UART_SetConfig+0x1c8>
- 8003058:      2300            movs    r3, #0
- 800305a:      77fb            strb    r3, [r7, #31]
- 800305c:      e0cb            b.n     80031f6 <UART_SetConfig+0x34e>
- 800305e:      2302            movs    r3, #2
- 8003060:      77fb            strb    r3, [r7, #31]
- 8003062:      e0c8            b.n     80031f6 <UART_SetConfig+0x34e>
- 8003064:      2304            movs    r3, #4
- 8003066:      77fb            strb    r3, [r7, #31]
- 8003068:      e0c5            b.n     80031f6 <UART_SetConfig+0x34e>
- 800306a:      2308            movs    r3, #8
- 800306c:      77fb            strb    r3, [r7, #31]
- 800306e:      e0c2            b.n     80031f6 <UART_SetConfig+0x34e>
- 8003070:      2310            movs    r3, #16
- 8003072:      77fb            strb    r3, [r7, #31]
- 8003074:      bf00            nop
- 8003076:      e0be            b.n     80031f6 <UART_SetConfig+0x34e>
- 8003078:      687b            ldr     r3, [r7, #4]
- 800307a:      681b            ldr     r3, [r3, #0]
- 800307c:      4a4d            ldr     r2, [pc, #308]  ; (80031b4 <UART_SetConfig+0x30c>)
- 800307e:      4293            cmp     r3, r2
- 8003080:      d124            bne.n   80030cc <UART_SetConfig+0x224>
- 8003082:      4b48            ldr     r3, [pc, #288]  ; (80031a4 <UART_SetConfig+0x2fc>)
- 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 <UART_SetConfig+0x210>
- 8003092:      f5b3 7f80       cmp.w   r3, #256        ; 0x100
- 8003096:      d802            bhi.n   800309e <UART_SetConfig+0x1f6>
- 8003098:      2b00            cmp     r3, #0
- 800309a:      d007            beq.n   80030ac <UART_SetConfig+0x204>
- 800309c:      e012            b.n     80030c4 <UART_SetConfig+0x21c>
- 800309e:      f5b3 7f00       cmp.w   r3, #512        ; 0x200
- 80030a2:      d006            beq.n   80030b2 <UART_SetConfig+0x20a>
- 80030a4:      f5b3 7f40       cmp.w   r3, #768        ; 0x300
- 80030a8:      d009            beq.n   80030be <UART_SetConfig+0x216>
- 80030aa:      e00b            b.n     80030c4 <UART_SetConfig+0x21c>
- 80030ac:      2300            movs    r3, #0
- 80030ae:      77fb            strb    r3, [r7, #31]
- 80030b0:      e0a1            b.n     80031f6 <UART_SetConfig+0x34e>
- 80030b2:      2302            movs    r3, #2
- 80030b4:      77fb            strb    r3, [r7, #31]
- 80030b6:      e09e            b.n     80031f6 <UART_SetConfig+0x34e>
- 80030b8:      2304            movs    r3, #4
- 80030ba:      77fb            strb    r3, [r7, #31]
- 80030bc:      e09b            b.n     80031f6 <UART_SetConfig+0x34e>
- 80030be:      2308            movs    r3, #8
- 80030c0:      77fb            strb    r3, [r7, #31]
- 80030c2:      e098            b.n     80031f6 <UART_SetConfig+0x34e>
- 80030c4:      2310            movs    r3, #16
- 80030c6:      77fb            strb    r3, [r7, #31]
- 80030c8:      bf00            nop
- 80030ca:      e094            b.n     80031f6 <UART_SetConfig+0x34e>
- 80030cc:      687b            ldr     r3, [r7, #4]
- 80030ce:      681b            ldr     r3, [r3, #0]
- 80030d0:      4a39            ldr     r2, [pc, #228]  ; (80031b8 <UART_SetConfig+0x310>)
- 80030d2:      4293            cmp     r3, r2
- 80030d4:      d124            bne.n   8003120 <UART_SetConfig+0x278>
- 80030d6:      4b33            ldr     r3, [pc, #204]  ; (80031a4 <UART_SetConfig+0x2fc>)
- 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 <UART_SetConfig+0x264>
- 80030e6:      f5b3 6f80       cmp.w   r3, #1024       ; 0x400
- 80030ea:      d802            bhi.n   80030f2 <UART_SetConfig+0x24a>
- 80030ec:      2b00            cmp     r3, #0
- 80030ee:      d007            beq.n   8003100 <UART_SetConfig+0x258>
- 80030f0:      e012            b.n     8003118 <UART_SetConfig+0x270>
- 80030f2:      f5b3 6f00       cmp.w   r3, #2048       ; 0x800
- 80030f6:      d006            beq.n   8003106 <UART_SetConfig+0x25e>
- 80030f8:      f5b3 6f40       cmp.w   r3, #3072       ; 0xc00
- 80030fc:      d009            beq.n   8003112 <UART_SetConfig+0x26a>
- 80030fe:      e00b            b.n     8003118 <UART_SetConfig+0x270>
- 8003100:      2301            movs    r3, #1
- 8003102:      77fb            strb    r3, [r7, #31]
- 8003104:      e077            b.n     80031f6 <UART_SetConfig+0x34e>
- 8003106:      2302            movs    r3, #2
- 8003108:      77fb            strb    r3, [r7, #31]
- 800310a:      e074            b.n     80031f6 <UART_SetConfig+0x34e>
- 800310c:      2304            movs    r3, #4
- 800310e:      77fb            strb    r3, [r7, #31]
- 8003110:      e071            b.n     80031f6 <UART_SetConfig+0x34e>
- 8003112:      2308            movs    r3, #8
- 8003114:      77fb            strb    r3, [r7, #31]
- 8003116:      e06e            b.n     80031f6 <UART_SetConfig+0x34e>
- 8003118:      2310            movs    r3, #16
- 800311a:      77fb            strb    r3, [r7, #31]
- 800311c:      bf00            nop
- 800311e:      e06a            b.n     80031f6 <UART_SetConfig+0x34e>
- 8003120:      687b            ldr     r3, [r7, #4]
- 8003122:      681b            ldr     r3, [r3, #0]
- 8003124:      4a25            ldr     r2, [pc, #148]  ; (80031bc <UART_SetConfig+0x314>)
- 8003126:      4293            cmp     r3, r2
- 8003128:      d124            bne.n   8003174 <UART_SetConfig+0x2cc>
- 800312a:      4b1e            ldr     r3, [pc, #120]  ; (80031a4 <UART_SetConfig+0x2fc>)
- 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 <UART_SetConfig+0x2b8>
- 800313a:      f5b3 5f80       cmp.w   r3, #4096       ; 0x1000
- 800313e:      d802            bhi.n   8003146 <UART_SetConfig+0x29e>
- 8003140:      2b00            cmp     r3, #0
- 8003142:      d007            beq.n   8003154 <UART_SetConfig+0x2ac>
- 8003144:      e012            b.n     800316c <UART_SetConfig+0x2c4>
- 8003146:      f5b3 5f00       cmp.w   r3, #8192       ; 0x2000
- 800314a:      d006            beq.n   800315a <UART_SetConfig+0x2b2>
- 800314c:      f5b3 5f40       cmp.w   r3, #12288      ; 0x3000
- 8003150:      d009            beq.n   8003166 <UART_SetConfig+0x2be>
- 8003152:      e00b            b.n     800316c <UART_SetConfig+0x2c4>
- 8003154:      2300            movs    r3, #0
- 8003156:      77fb            strb    r3, [r7, #31]
- 8003158:      e04d            b.n     80031f6 <UART_SetConfig+0x34e>
- 800315a:      2302            movs    r3, #2
- 800315c:      77fb            strb    r3, [r7, #31]
- 800315e:      e04a            b.n     80031f6 <UART_SetConfig+0x34e>
- 8003160:      2304            movs    r3, #4
- 8003162:      77fb            strb    r3, [r7, #31]
- 8003164:      e047            b.n     80031f6 <UART_SetConfig+0x34e>
- 8003166:      2308            movs    r3, #8
- 8003168:      77fb            strb    r3, [r7, #31]
- 800316a:      e044            b.n     80031f6 <UART_SetConfig+0x34e>
- 800316c:      2310            movs    r3, #16
- 800316e:      77fb            strb    r3, [r7, #31]
- 8003170:      bf00            nop
- 8003172:      e040            b.n     80031f6 <UART_SetConfig+0x34e>
- 8003174:      687b            ldr     r3, [r7, #4]
- 8003176:      681b            ldr     r3, [r3, #0]
- 8003178:      4a11            ldr     r2, [pc, #68]   ; (80031c0 <UART_SetConfig+0x318>)
- 800317a:      4293            cmp     r3, r2
- 800317c:      d139            bne.n   80031f2 <UART_SetConfig+0x34a>
- 800317e:      4b09            ldr     r3, [pc, #36]   ; (80031a4 <UART_SetConfig+0x2fc>)
- 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 <UART_SetConfig+0x336>
- 800318e:      f5b3 4f80       cmp.w   r3, #16384      ; 0x4000
- 8003192:      d817            bhi.n   80031c4 <UART_SetConfig+0x31c>
- 8003194:      2b00            cmp     r3, #0
- 8003196:      d01c            beq.n   80031d2 <UART_SetConfig+0x32a>
- 8003198:      e027            b.n     80031ea <UART_SetConfig+0x342>
- 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 <UART_SetConfig+0x330>
- 80031ca:      f5b3 4f40       cmp.w   r3, #49152      ; 0xc000
- 80031ce:      d009            beq.n   80031e4 <UART_SetConfig+0x33c>
- 80031d0:      e00b            b.n     80031ea <UART_SetConfig+0x342>
- 80031d2:      2300            movs    r3, #0
- 80031d4:      77fb            strb    r3, [r7, #31]
- 80031d6:      e00e            b.n     80031f6 <UART_SetConfig+0x34e>
- 80031d8:      2302            movs    r3, #2
- 80031da:      77fb            strb    r3, [r7, #31]
- 80031dc:      e00b            b.n     80031f6 <UART_SetConfig+0x34e>
- 80031de:      2304            movs    r3, #4
- 80031e0:      77fb            strb    r3, [r7, #31]
- 80031e2:      e008            b.n     80031f6 <UART_SetConfig+0x34e>
- 80031e4:      2308            movs    r3, #8
- 80031e6:      77fb            strb    r3, [r7, #31]
- 80031e8:      e005            b.n     80031f6 <UART_SetConfig+0x34e>
- 80031ea:      2310            movs    r3, #16
- 80031ec:      77fb            strb    r3, [r7, #31]
- 80031ee:      bf00            nop
- 80031f0:      e001            b.n     80031f6 <UART_SetConfig+0x34e>
- 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 <UART_SetConfig+0x2f8>)
+ 8002efc:      4293            cmp     r3, r2
+ 8002efe:      d121            bne.n   8002f44 <UART_SetConfig+0xc4>
+ 8002f00:      4b9e            ldr     r3, [pc, #632]  ; (800317c <UART_SetConfig+0x2fc>)
+ 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 <UART_SetConfig+0xbc>
+ 8002f0e:      a201            add     r2, pc, #4      ; (adr r2, 8002f14 <UART_SetConfig+0x94>)
+ 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 <UART_SetConfig+0x34e>
+ 8002f2a:      2302            movs    r3, #2
+ 8002f2c:      77fb            strb    r3, [r7, #31]
+ 8002f2e:      e14e            b.n     80031ce <UART_SetConfig+0x34e>
+ 8002f30:      2304            movs    r3, #4
+ 8002f32:      77fb            strb    r3, [r7, #31]
+ 8002f34:      e14b            b.n     80031ce <UART_SetConfig+0x34e>
+ 8002f36:      2308            movs    r3, #8
+ 8002f38:      77fb            strb    r3, [r7, #31]
+ 8002f3a:      e148            b.n     80031ce <UART_SetConfig+0x34e>
+ 8002f3c:      2310            movs    r3, #16
+ 8002f3e:      77fb            strb    r3, [r7, #31]
+ 8002f40:      bf00            nop
+ 8002f42:      e144            b.n     80031ce <UART_SetConfig+0x34e>
+ 8002f44:      687b            ldr     r3, [r7, #4]
+ 8002f46:      681b            ldr     r3, [r3, #0]
+ 8002f48:      4a8d            ldr     r2, [pc, #564]  ; (8003180 <UART_SetConfig+0x300>)
+ 8002f4a:      4293            cmp     r3, r2
+ 8002f4c:      d134            bne.n   8002fb8 <UART_SetConfig+0x138>
+ 8002f4e:      4b8b            ldr     r3, [pc, #556]  ; (800317c <UART_SetConfig+0x2fc>)
+ 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 <UART_SetConfig+0x130>
+ 8002f5c:      a201            add     r2, pc, #4      ; (adr r2, 8002f64 <UART_SetConfig+0xe4>)
+ 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 <UART_SetConfig+0x34e>
+ 8002f9e:      2302            movs    r3, #2
+ 8002fa0:      77fb            strb    r3, [r7, #31]
+ 8002fa2:      e114            b.n     80031ce <UART_SetConfig+0x34e>
+ 8002fa4:      2304            movs    r3, #4
+ 8002fa6:      77fb            strb    r3, [r7, #31]
+ 8002fa8:      e111            b.n     80031ce <UART_SetConfig+0x34e>
+ 8002faa:      2308            movs    r3, #8
+ 8002fac:      77fb            strb    r3, [r7, #31]
+ 8002fae:      e10e            b.n     80031ce <UART_SetConfig+0x34e>
+ 8002fb0:      2310            movs    r3, #16
+ 8002fb2:      77fb            strb    r3, [r7, #31]
+ 8002fb4:      bf00            nop
+ 8002fb6:      e10a            b.n     80031ce <UART_SetConfig+0x34e>
+ 8002fb8:      687b            ldr     r3, [r7, #4]
+ 8002fba:      681b            ldr     r3, [r3, #0]
+ 8002fbc:      4a71            ldr     r2, [pc, #452]  ; (8003184 <UART_SetConfig+0x304>)
+ 8002fbe:      4293            cmp     r3, r2
+ 8002fc0:      d120            bne.n   8003004 <UART_SetConfig+0x184>
+ 8002fc2:      4b6e            ldr     r3, [pc, #440]  ; (800317c <UART_SetConfig+0x2fc>)
+ 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 <UART_SetConfig+0x170>
+ 8002fd0:      2b10            cmp     r3, #16
+ 8002fd2:      d802            bhi.n   8002fda <UART_SetConfig+0x15a>
+ 8002fd4:      2b00            cmp     r3, #0
+ 8002fd6:      d005            beq.n   8002fe4 <UART_SetConfig+0x164>
+ 8002fd8:      e010            b.n     8002ffc <UART_SetConfig+0x17c>
+ 8002fda:      2b20            cmp     r3, #32
+ 8002fdc:      d005            beq.n   8002fea <UART_SetConfig+0x16a>
+ 8002fde:      2b30            cmp     r3, #48 ; 0x30
+ 8002fe0:      d009            beq.n   8002ff6 <UART_SetConfig+0x176>
+ 8002fe2:      e00b            b.n     8002ffc <UART_SetConfig+0x17c>
+ 8002fe4:      2300            movs    r3, #0
+ 8002fe6:      77fb            strb    r3, [r7, #31]
+ 8002fe8:      e0f1            b.n     80031ce <UART_SetConfig+0x34e>
+ 8002fea:      2302            movs    r3, #2
+ 8002fec:      77fb            strb    r3, [r7, #31]
+ 8002fee:      e0ee            b.n     80031ce <UART_SetConfig+0x34e>
+ 8002ff0:      2304            movs    r3, #4
+ 8002ff2:      77fb            strb    r3, [r7, #31]
+ 8002ff4:      e0eb            b.n     80031ce <UART_SetConfig+0x34e>
+ 8002ff6:      2308            movs    r3, #8
+ 8002ff8:      77fb            strb    r3, [r7, #31]
+ 8002ffa:      e0e8            b.n     80031ce <UART_SetConfig+0x34e>
+ 8002ffc:      2310            movs    r3, #16
+ 8002ffe:      77fb            strb    r3, [r7, #31]
+ 8003000:      bf00            nop
+ 8003002:      e0e4            b.n     80031ce <UART_SetConfig+0x34e>
+ 8003004:      687b            ldr     r3, [r7, #4]
+ 8003006:      681b            ldr     r3, [r3, #0]
+ 8003008:      4a5f            ldr     r2, [pc, #380]  ; (8003188 <UART_SetConfig+0x308>)
+ 800300a:      4293            cmp     r3, r2
+ 800300c:      d120            bne.n   8003050 <UART_SetConfig+0x1d0>
+ 800300e:      4b5b            ldr     r3, [pc, #364]  ; (800317c <UART_SetConfig+0x2fc>)
+ 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 <UART_SetConfig+0x1bc>
+ 800301c:      2b40            cmp     r3, #64 ; 0x40
+ 800301e:      d802            bhi.n   8003026 <UART_SetConfig+0x1a6>
+ 8003020:      2b00            cmp     r3, #0
+ 8003022:      d005            beq.n   8003030 <UART_SetConfig+0x1b0>
+ 8003024:      e010            b.n     8003048 <UART_SetConfig+0x1c8>
+ 8003026:      2b80            cmp     r3, #128        ; 0x80
+ 8003028:      d005            beq.n   8003036 <UART_SetConfig+0x1b6>
+ 800302a:      2bc0            cmp     r3, #192        ; 0xc0
+ 800302c:      d009            beq.n   8003042 <UART_SetConfig+0x1c2>
+ 800302e:      e00b            b.n     8003048 <UART_SetConfig+0x1c8>
+ 8003030:      2300            movs    r3, #0
+ 8003032:      77fb            strb    r3, [r7, #31]
+ 8003034:      e0cb            b.n     80031ce <UART_SetConfig+0x34e>
+ 8003036:      2302            movs    r3, #2
+ 8003038:      77fb            strb    r3, [r7, #31]
+ 800303a:      e0c8            b.n     80031ce <UART_SetConfig+0x34e>
+ 800303c:      2304            movs    r3, #4
+ 800303e:      77fb            strb    r3, [r7, #31]
+ 8003040:      e0c5            b.n     80031ce <UART_SetConfig+0x34e>
+ 8003042:      2308            movs    r3, #8
+ 8003044:      77fb            strb    r3, [r7, #31]
+ 8003046:      e0c2            b.n     80031ce <UART_SetConfig+0x34e>
+ 8003048:      2310            movs    r3, #16
+ 800304a:      77fb            strb    r3, [r7, #31]
+ 800304c:      bf00            nop
+ 800304e:      e0be            b.n     80031ce <UART_SetConfig+0x34e>
+ 8003050:      687b            ldr     r3, [r7, #4]
+ 8003052:      681b            ldr     r3, [r3, #0]
+ 8003054:      4a4d            ldr     r2, [pc, #308]  ; (800318c <UART_SetConfig+0x30c>)
+ 8003056:      4293            cmp     r3, r2
+ 8003058:      d124            bne.n   80030a4 <UART_SetConfig+0x224>
+ 800305a:      4b48            ldr     r3, [pc, #288]  ; (800317c <UART_SetConfig+0x2fc>)
+ 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 <UART_SetConfig+0x210>
+ 800306a:      f5b3 7f80       cmp.w   r3, #256        ; 0x100
+ 800306e:      d802            bhi.n   8003076 <UART_SetConfig+0x1f6>
+ 8003070:      2b00            cmp     r3, #0
+ 8003072:      d007            beq.n   8003084 <UART_SetConfig+0x204>
+ 8003074:      e012            b.n     800309c <UART_SetConfig+0x21c>
+ 8003076:      f5b3 7f00       cmp.w   r3, #512        ; 0x200
+ 800307a:      d006            beq.n   800308a <UART_SetConfig+0x20a>
+ 800307c:      f5b3 7f40       cmp.w   r3, #768        ; 0x300
+ 8003080:      d009            beq.n   8003096 <UART_SetConfig+0x216>
+ 8003082:      e00b            b.n     800309c <UART_SetConfig+0x21c>
+ 8003084:      2300            movs    r3, #0
+ 8003086:      77fb            strb    r3, [r7, #31]
+ 8003088:      e0a1            b.n     80031ce <UART_SetConfig+0x34e>
+ 800308a:      2302            movs    r3, #2
+ 800308c:      77fb            strb    r3, [r7, #31]
+ 800308e:      e09e            b.n     80031ce <UART_SetConfig+0x34e>
+ 8003090:      2304            movs    r3, #4
+ 8003092:      77fb            strb    r3, [r7, #31]
+ 8003094:      e09b            b.n     80031ce <UART_SetConfig+0x34e>
+ 8003096:      2308            movs    r3, #8
+ 8003098:      77fb            strb    r3, [r7, #31]
+ 800309a:      e098            b.n     80031ce <UART_SetConfig+0x34e>
+ 800309c:      2310            movs    r3, #16
+ 800309e:      77fb            strb    r3, [r7, #31]
+ 80030a0:      bf00            nop
+ 80030a2:      e094            b.n     80031ce <UART_SetConfig+0x34e>
+ 80030a4:      687b            ldr     r3, [r7, #4]
+ 80030a6:      681b            ldr     r3, [r3, #0]
+ 80030a8:      4a39            ldr     r2, [pc, #228]  ; (8003190 <UART_SetConfig+0x310>)
+ 80030aa:      4293            cmp     r3, r2
+ 80030ac:      d124            bne.n   80030f8 <UART_SetConfig+0x278>
+ 80030ae:      4b33            ldr     r3, [pc, #204]  ; (800317c <UART_SetConfig+0x2fc>)
+ 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 <UART_SetConfig+0x264>
+ 80030be:      f5b3 6f80       cmp.w   r3, #1024       ; 0x400
+ 80030c2:      d802            bhi.n   80030ca <UART_SetConfig+0x24a>
+ 80030c4:      2b00            cmp     r3, #0
+ 80030c6:      d007            beq.n   80030d8 <UART_SetConfig+0x258>
+ 80030c8:      e012            b.n     80030f0 <UART_SetConfig+0x270>
+ 80030ca:      f5b3 6f00       cmp.w   r3, #2048       ; 0x800
+ 80030ce:      d006            beq.n   80030de <UART_SetConfig+0x25e>
+ 80030d0:      f5b3 6f40       cmp.w   r3, #3072       ; 0xc00
+ 80030d4:      d009            beq.n   80030ea <UART_SetConfig+0x26a>
+ 80030d6:      e00b            b.n     80030f0 <UART_SetConfig+0x270>
+ 80030d8:      2301            movs    r3, #1
+ 80030da:      77fb            strb    r3, [r7, #31]
+ 80030dc:      e077            b.n     80031ce <UART_SetConfig+0x34e>
+ 80030de:      2302            movs    r3, #2
+ 80030e0:      77fb            strb    r3, [r7, #31]
+ 80030e2:      e074            b.n     80031ce <UART_SetConfig+0x34e>
+ 80030e4:      2304            movs    r3, #4
+ 80030e6:      77fb            strb    r3, [r7, #31]
+ 80030e8:      e071            b.n     80031ce <UART_SetConfig+0x34e>
+ 80030ea:      2308            movs    r3, #8
+ 80030ec:      77fb            strb    r3, [r7, #31]
+ 80030ee:      e06e            b.n     80031ce <UART_SetConfig+0x34e>
+ 80030f0:      2310            movs    r3, #16
+ 80030f2:      77fb            strb    r3, [r7, #31]
+ 80030f4:      bf00            nop
+ 80030f6:      e06a            b.n     80031ce <UART_SetConfig+0x34e>
+ 80030f8:      687b            ldr     r3, [r7, #4]
+ 80030fa:      681b            ldr     r3, [r3, #0]
+ 80030fc:      4a25            ldr     r2, [pc, #148]  ; (8003194 <UART_SetConfig+0x314>)
+ 80030fe:      4293            cmp     r3, r2
+ 8003100:      d124            bne.n   800314c <UART_SetConfig+0x2cc>
+ 8003102:      4b1e            ldr     r3, [pc, #120]  ; (800317c <UART_SetConfig+0x2fc>)
+ 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 <UART_SetConfig+0x2b8>
+ 8003112:      f5b3 5f80       cmp.w   r3, #4096       ; 0x1000
+ 8003116:      d802            bhi.n   800311e <UART_SetConfig+0x29e>
+ 8003118:      2b00            cmp     r3, #0
+ 800311a:      d007            beq.n   800312c <UART_SetConfig+0x2ac>
+ 800311c:      e012            b.n     8003144 <UART_SetConfig+0x2c4>
+ 800311e:      f5b3 5f00       cmp.w   r3, #8192       ; 0x2000
+ 8003122:      d006            beq.n   8003132 <UART_SetConfig+0x2b2>
+ 8003124:      f5b3 5f40       cmp.w   r3, #12288      ; 0x3000
+ 8003128:      d009            beq.n   800313e <UART_SetConfig+0x2be>
+ 800312a:      e00b            b.n     8003144 <UART_SetConfig+0x2c4>
+ 800312c:      2300            movs    r3, #0
+ 800312e:      77fb            strb    r3, [r7, #31]
+ 8003130:      e04d            b.n     80031ce <UART_SetConfig+0x34e>
+ 8003132:      2302            movs    r3, #2
+ 8003134:      77fb            strb    r3, [r7, #31]
+ 8003136:      e04a            b.n     80031ce <UART_SetConfig+0x34e>
+ 8003138:      2304            movs    r3, #4
+ 800313a:      77fb            strb    r3, [r7, #31]
+ 800313c:      e047            b.n     80031ce <UART_SetConfig+0x34e>
+ 800313e:      2308            movs    r3, #8
+ 8003140:      77fb            strb    r3, [r7, #31]
+ 8003142:      e044            b.n     80031ce <UART_SetConfig+0x34e>
+ 8003144:      2310            movs    r3, #16
+ 8003146:      77fb            strb    r3, [r7, #31]
+ 8003148:      bf00            nop
+ 800314a:      e040            b.n     80031ce <UART_SetConfig+0x34e>
+ 800314c:      687b            ldr     r3, [r7, #4]
+ 800314e:      681b            ldr     r3, [r3, #0]
+ 8003150:      4a11            ldr     r2, [pc, #68]   ; (8003198 <UART_SetConfig+0x318>)
+ 8003152:      4293            cmp     r3, r2
+ 8003154:      d139            bne.n   80031ca <UART_SetConfig+0x34a>
+ 8003156:      4b09            ldr     r3, [pc, #36]   ; (800317c <UART_SetConfig+0x2fc>)
+ 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 <UART_SetConfig+0x336>
+ 8003166:      f5b3 4f80       cmp.w   r3, #16384      ; 0x4000
+ 800316a:      d817            bhi.n   800319c <UART_SetConfig+0x31c>
+ 800316c:      2b00            cmp     r3, #0
+ 800316e:      d01c            beq.n   80031aa <UART_SetConfig+0x32a>
+ 8003170:      e027            b.n     80031c2 <UART_SetConfig+0x342>
+ 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 <UART_SetConfig+0x330>
+ 80031a2:      f5b3 4f40       cmp.w   r3, #49152      ; 0xc000
+ 80031a6:      d009            beq.n   80031bc <UART_SetConfig+0x33c>
+ 80031a8:      e00b            b.n     80031c2 <UART_SetConfig+0x342>
+ 80031aa:      2300            movs    r3, #0
+ 80031ac:      77fb            strb    r3, [r7, #31]
+ 80031ae:      e00e            b.n     80031ce <UART_SetConfig+0x34e>
+ 80031b0:      2302            movs    r3, #2
+ 80031b2:      77fb            strb    r3, [r7, #31]
+ 80031b4:      e00b            b.n     80031ce <UART_SetConfig+0x34e>
+ 80031b6:      2304            movs    r3, #4
+ 80031b8:      77fb            strb    r3, [r7, #31]
+ 80031ba:      e008            b.n     80031ce <UART_SetConfig+0x34e>
+ 80031bc:      2308            movs    r3, #8
+ 80031be:      77fb            strb    r3, [r7, #31]
+ 80031c0:      e005            b.n     80031ce <UART_SetConfig+0x34e>
+ 80031c2:      2310            movs    r3, #16
+ 80031c4:      77fb            strb    r3, [r7, #31]
+ 80031c6:      bf00            nop
+ 80031c8:      e001            b.n     80031ce <UART_SetConfig+0x34e>
+ 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 <UART_SetConfig+0x452>
+ 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 <UART_SetConfig+0x452>
   {
     switch (clocksource)
- 8003200:      7ffb            ldrb    r3, [r7, #31]
- 8003202:      2b08            cmp     r3, #8
- 8003204:      d859            bhi.n   80032ba <UART_SetConfig+0x412>
- 8003206:      a201            add     r2, pc, #4      ; (adr r2, 800320c <UART_SetConfig+0x364>)
- 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 <UART_SetConfig+0x412>
+ 80031de:      a201            add     r2, pc, #4      ; (adr r2, 80031e4 <UART_SetConfig+0x364>)
+ 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 <HAL_RCC_GetPCLK1Freq>
- 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 <HAL_RCC_GetPCLK1Freq>
+ 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 <UART_SetConfig+0x418>
+ 8003224:      e038            b.n     8003298 <UART_SetConfig+0x418>
       case UART_CLOCKSOURCE_PCLK2:
         usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate));
- 800324e:      f7fe fcaf       bl      8001bb0 <HAL_RCC_GetPCLK2Freq>
- 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 <HAL_RCC_GetPCLK2Freq>
+ 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 <UART_SetConfig+0x418>
+ 8003242:      e029            b.n     8003298 <UART_SetConfig+0x418>
       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 <UART_SetConfig+0x540>)
- 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 <UART_SetConfig+0x540>)
+ 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 <UART_SetConfig+0x418>
+ 800325a:      e01d            b.n     8003298 <UART_SetConfig+0x418>
       case UART_CLOCKSOURCE_SYSCLK:
         usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HAL_RCC_GetSysClockFreq(), huart->Init.BaudRate));
- 8003284:      f7fe fbc2       bl      8001a0c <HAL_RCC_GetSysClockFreq>
- 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 <HAL_RCC_GetSysClockFreq>
+ 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 <UART_SetConfig+0x418>
+ 8003278:      e00e            b.n     8003298 <UART_SetConfig+0x418>
       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 <UART_SetConfig+0x418>
+ 8003290:      e002            b.n     8003298 <UART_SetConfig+0x418>
       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 <UART_SetConfig+0x44c>
- 80032c6:      69bb            ldr     r3, [r7, #24]
- 80032c8:      f5b3 3f80       cmp.w   r3, #65536      ; 0x10000
- 80032cc:      d212            bcs.n   80032f4 <UART_SetConfig+0x44c>
+ 8003298:      69bb            ldr     r3, [r7, #24]
+ 800329a:      2b0f            cmp     r3, #15
+ 800329c:      d916            bls.n   80032cc <UART_SetConfig+0x44c>
+ 800329e:      69bb            ldr     r3, [r7, #24]
+ 80032a0:      f5b3 3f80       cmp.w   r3, #65536      ; 0x10000
+ 80032a4:      d212            bcs.n   80032cc <UART_SetConfig+0x44c>
     {
       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 <UART_SetConfig+0x52a>
+ 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 <UART_SetConfig+0x52a>
     }
     else
     {
       ret = HAL_ERROR;
- 80032f4:      2301            movs    r3, #1
- 80032f6:      75fb            strb    r3, [r7, #23]
- 80032f8:      e06b            b.n     80033d2 <UART_SetConfig+0x52a>
+ 80032cc:      2301            movs    r3, #1
+ 80032ce:      75fb            strb    r3, [r7, #23]
+ 80032d0:      e06b            b.n     80033aa <UART_SetConfig+0x52a>
     }
   }
   else
   {
     switch (clocksource)
- 80032fa:      7ffb            ldrb    r3, [r7, #31]
- 80032fc:      2b08            cmp     r3, #8
- 80032fe:      d857            bhi.n   80033b0 <UART_SetConfig+0x508>
- 8003300:      a201            add     r2, pc, #4      ; (adr r2, 8003308 <UART_SetConfig+0x460>)
- 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 <UART_SetConfig+0x508>
+ 80032d8:      a201            add     r2, pc, #4      ; (adr r2, 80032e0 <UART_SetConfig+0x460>)
+ 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 <HAL_RCC_GetPCLK1Freq>
- 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 <HAL_RCC_GetPCLK1Freq>
+ 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 <UART_SetConfig+0x50e>
+ 800331e:      e036            b.n     800338e <UART_SetConfig+0x50e>
       case UART_CLOCKSOURCE_PCLK2:
         usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate));
- 8003348:      f7fe fc32       bl      8001bb0 <HAL_RCC_GetPCLK2Freq>
- 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 <HAL_RCC_GetPCLK2Freq>
+ 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 <UART_SetConfig+0x50e>
+ 800333a:      e028            b.n     800338e <UART_SetConfig+0x50e>
       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 <UART_SetConfig+0x544>)
- 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 <UART_SetConfig+0x544>)
+ 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 <UART_SetConfig+0x50e>
+ 8003352:      e01c            b.n     800338e <UART_SetConfig+0x50e>
       case UART_CLOCKSOURCE_SYSCLK:
         usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetSysClockFreq(), huart->Init.BaudRate));
- 800337c:      f7fe fb46       bl      8001a0c <HAL_RCC_GetSysClockFreq>
- 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 <HAL_RCC_GetSysClockFreq>
+ 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 <UART_SetConfig+0x50e>
+ 800336e:      e00e            b.n     800338e <UART_SetConfig+0x50e>
       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 <UART_SetConfig+0x50e>
+ 8003386:      e002            b.n     800338e <UART_SetConfig+0x50e>
       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 <UART_SetConfig+0x526>
- 80033bc:      69bb            ldr     r3, [r7, #24]
- 80033be:      f5b3 3f80       cmp.w   r3, #65536      ; 0x10000
- 80033c2:      d204            bcs.n   80033ce <UART_SetConfig+0x526>
+ 800338e:      69bb            ldr     r3, [r7, #24]
+ 8003390:      2b0f            cmp     r3, #15
+ 8003392:      d908            bls.n   80033a6 <UART_SetConfig+0x526>
+ 8003394:      69bb            ldr     r3, [r7, #24]
+ 8003396:      f5b3 3f80       cmp.w   r3, #65536      ; 0x10000
+ 800339a:      d204            bcs.n   80033a6 <UART_SetConfig+0x526>
     {
       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 <UART_SetConfig+0x52a>
+ 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 <UART_SetConfig+0x52a>
     }
     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 <UART_AdvFeatureConfig>:
+ 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 <UART_AdvFeatureConfig>:
   * @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 <UART_AdvFeatureConfig+0x2a>
+ 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 <UART_AdvFeatureConfig+0x2a>
   {
     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 <UART_AdvFeatureConfig+0x4c>
+ 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 <UART_AdvFeatureConfig+0x4c>
   {
     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 <UART_AdvFeatureConfig+0x6e>
+ 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 <UART_AdvFeatureConfig+0x6e>
   {
     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 <UART_AdvFeatureConfig+0x90>
+ 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 <UART_AdvFeatureConfig+0x90>
   {
     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 <UART_AdvFeatureConfig+0xb2>
+ 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 <UART_AdvFeatureConfig+0xb2>
   {
     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 <UART_AdvFeatureConfig+0xd4>
+ 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 <UART_AdvFeatureConfig+0xd4>
   {
     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 <UART_AdvFeatureConfig+0x116>
+ 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 <UART_AdvFeatureConfig+0x116>
   {
     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 <UART_AdvFeatureConfig+0x116>
+ 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 <UART_AdvFeatureConfig+0x116>
     {
       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 <UART_AdvFeatureConfig+0x138>
+ 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 <UART_AdvFeatureConfig+0x138>
   {
     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 <UART_CheckIdleState>:
+0800350c <UART_CheckIdleState>:
   * @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 <HAL_GetTick>
- 8003546:      60f8            str     r0, [r7, #12]
+ 800351a:      f7fd f867       bl      80005ec <HAL_GetTick>
+ 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 <UART_CheckIdleState+0x40>
+ 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 <UART_CheckIdleState+0x40>
   {
     /* 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 <UART_WaitOnFlagUntilTimeout>
- 800356a:      4603            mov     r3, r0
- 800356c:      2b00            cmp     r3, #0
- 800356e:      d001            beq.n   8003574 <UART_CheckIdleState+0x40>
+ 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 <UART_WaitOnFlagUntilTimeout>
+ 8003542:      4603            mov     r3, r0
+ 8003544:      2b00            cmp     r3, #0
+ 8003546:      d001            beq.n   800354c <UART_CheckIdleState+0x40>
     {
       /* Timeout occurred */
       return HAL_TIMEOUT;
- 8003570:      2303            movs    r3, #3
- 8003572:      e00a            b.n     800358a <UART_CheckIdleState+0x56>
+ 8003548:      2303            movs    r3, #3
+ 800354a:      e00a            b.n     8003562 <UART_CheckIdleState+0x56>
     }
   }
 
   /* 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 <UART_WaitOnFlagUntilTimeout>:
+0800356a <UART_WaitOnFlagUntilTimeout>:
   * @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 <UART_WaitOnFlagUntilTimeout+0x68>
+ 800357a:      e02a            b.n     80035d2 <UART_WaitOnFlagUntilTimeout+0x68>
   {
     /* 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 <UART_WaitOnFlagUntilTimeout+0x68>
+ 800357c:      69bb            ldr     r3, [r7, #24]
+ 800357e:      f1b3 3fff       cmp.w   r3, #4294967295 ; 0xffffffff
+ 8003582:      d026            beq.n   80035d2 <UART_WaitOnFlagUntilTimeout+0x68>
     {
       if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
- 80035ac:      f7fd f81e       bl      80005ec <HAL_GetTick>
- 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 <UART_WaitOnFlagUntilTimeout+0x30>
- 80035bc:      69bb            ldr     r3, [r7, #24]
- 80035be:      2b00            cmp     r3, #0
- 80035c0:      d11b            bne.n   80035fa <UART_WaitOnFlagUntilTimeout+0x68>
+ 8003584:      f7fd f832       bl      80005ec <HAL_GetTick>
+ 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 <UART_WaitOnFlagUntilTimeout+0x30>
+ 8003594:      69bb            ldr     r3, [r7, #24]
+ 8003596:      2b00            cmp     r3, #0
+ 8003598:      d11b            bne.n   80035d2 <UART_WaitOnFlagUntilTimeout+0x68>
       {
         /* 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 <UART_WaitOnFlagUntilTimeout+0x88>
+ 80035ce:      2303            movs    r3, #3
+ 80035d0:      e00f            b.n     80035f2 <UART_WaitOnFlagUntilTimeout+0x88>
   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 <UART_WaitOnFlagUntilTimeout+0x12>
+ 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 <UART_WaitOnFlagUntilTimeout+0x12>
       }
     }
   }
   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 <UART_EndTxTransfer>:
+080035fa <UART_EndTxTransfer>:
   * @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 <UART_EndRxTransfer>:
+08003624 <UART_EndRxTransfer>:
   * @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 <UART_DMATransmitCplt>:
+08003664 <UART_DMATransmitCplt>:
   * @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 <UART_DMATransmitCplt+0x42>
+ 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 <UART_DMATransmitCplt+0x42>
   {
     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 <UART_DMATransmitCplt+0x48>
+ 80036a4:      e002            b.n     80036ac <UART_DMATransmitCplt+0x48>
     HAL_UART_TxCpltCallback(huart);
- 80036ce:      68f8            ldr     r0, [r7, #12]
- 80036d0:      f7ff fbb8       bl      8002e44 <HAL_UART_TxCpltCallback>
+ 80036a6:      68f8            ldr     r0, [r7, #12]
+ 80036a8:      f001 fa38       bl      8004b1c <HAL_UART_TxCpltCallback>
 }
- 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 <UART_DMATxHalfCplt>:
+080036b4 <UART_DMATxHalfCplt>:
   * @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 <HAL_UART_TxHalfCpltCallback>
+ 80036c2:      68f8            ldr     r0, [r7, #12]
+ 80036c4:      f7ff fbbe       bl      8002e44 <HAL_UART_TxHalfCpltCallback>
 #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 <UART_DMAReceiveCplt>:
+080036d0 <UART_DMAReceiveCplt>:
   * @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 <UART_DMAReceiveCplt+0x56>
+ 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 <UART_DMAReceiveCplt+0x56>
   {
     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 <HAL_UART_RxCpltCallback>
+ 8003726:      68f8            ldr     r0, [r7, #12]
+ 8003728:      f001 fa0a       bl      8004b40 <HAL_UART_RxCpltCallback>
 #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 <UART_DMARxHalfCplt>:
+08003734 <UART_DMARxHalfCplt>:
   * @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 <HAL_UART_RxHalfCpltCallback>
+ 8003742:      68f8            ldr     r0, [r7, #12]
+ 8003744:      f7ff fb88       bl      8002e58 <HAL_UART_RxHalfCpltCallback>
 #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 <UART_DMAError>:
+08003750 <UART_DMAError>:
   * @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 <UART_DMAError+0x3c>
- 80037a0:      693b            ldr     r3, [r7, #16]
- 80037a2:      2b21            cmp     r3, #33 ; 0x21
- 80037a4:      d106            bne.n   80037b4 <UART_DMAError+0x3c>
+ 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 <UART_DMAError+0x3c>
+ 8003778:      693b            ldr     r3, [r7, #16]
+ 800377a:      2b21            cmp     r3, #33 ; 0x21
+ 800377c:      d106            bne.n   800378c <UART_DMAError+0x3c>
       (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 <UART_EndTxTransfer>
+ 8003786:      6978            ldr     r0, [r7, #20]
+ 8003788:      f7ff ff37       bl      80035fa <UART_EndTxTransfer>
   }
 
   /* 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 <UART_DMAError+0x5e>
- 80037c2:      68fb            ldr     r3, [r7, #12]
- 80037c4:      2b22            cmp     r3, #34 ; 0x22
- 80037c6:      d106            bne.n   80037d6 <UART_DMAError+0x5e>
+ 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 <UART_DMAError+0x5e>
+ 800379a:      68fb            ldr     r3, [r7, #12]
+ 800379c:      2b22            cmp     r3, #34 ; 0x22
+ 800379e:      d106            bne.n   80037ae <UART_DMAError+0x5e>
       (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 <UART_EndRxTransfer>
+ 80037a8:      6978            ldr     r0, [r7, #20]
+ 80037aa:      f7ff ff3b       bl      8003624 <UART_EndRxTransfer>
   }
 
   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 <HAL_UART_ErrorCallback>
+ 80037ba:      6978            ldr     r0, [r7, #20]
+ 80037bc:      f7ff fb56       bl      8002e6c <HAL_UART_ErrorCallback>
 #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 <UART_DMAAbortOnError>:
+080037c8 <UART_DMAAbortOnError>:
   *         (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 <HAL_UART_ErrorCallback>
+ 80037e6:      68f8            ldr     r0, [r7, #12]
+ 80037e8:      f7ff fb40       bl      8002e6c <HAL_UART_ErrorCallback>
 #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 <UART_EndTransmit_IT>:
+080037f4 <UART_EndTransmit_IT>:
   * @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 <HAL_UART_TxCpltCallback>
+ 8003818:      6878            ldr     r0, [r7, #4]
+ 800381a:      f001 f97f       bl      8004b1c <HAL_UART_TxCpltCallback>
 #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 <main>:
+/**
+  * @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 <HAL_Init>
+  /* 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 <main+0x20>
 
-    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 <memset>
+  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 <memset>
 
-  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 <HAL_RCC_OscConfig>
+ 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 <Error_Handler>
+  }
+  /** 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 <HAL_RCC_ClockConfig>
+ 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 <Error_Handler>
+  }
+  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 <HAL_RCCEx_PeriphCLKConfig>
+ 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 <Error_Handler>
+  }
+}
+ 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 <HAL_TIM_Base_Init>
+ 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 <Error_Handler>
+  }
+  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 <HAL_TIM_ConfigClockSource>
+ 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 <Error_Handler>
+  }
+  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 <HAL_TIMEx_MasterConfigSynchronization>
+ 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 <Error_Handler>
+  }
+  /* 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 <HAL_UART_Init>
+ 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 <Error_Handler>
+  }
+  /* 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_SetPriority>
+  HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);
+ 8003aa8:      200c            movs    r0, #12
+ 8003aaa:      f7fc fec4       bl      8000836 <HAL_NVIC_EnableIRQ>
+  /* 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_SetPriority>
+  HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn);
+ 8003ab8:      200e            movs    r0, #14
+ 8003aba:      f7fc febc       bl      8000836 <HAL_NVIC_EnableIRQ>
+
+}
+ 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 <HAL_GPIO_WritePin>
+
+  /*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 <HAL_GPIO_Init>
+
+}
+ 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 <Error_Handler>:
+/**
+  * @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 <strlen>
- 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 <strlen>
+ 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 <memcpy>
+ 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 <memcpy>
       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 <strlen>
- 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 <strlen>
+ 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 <memcpy>
+ 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 <memcpy>
       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 <strlen>
- 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 <strlen>
+ 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 <memcpy>
+ 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 <memcpy>
       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 <strlen>
- 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 <strlen>
+ 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 <memcpy>
+ 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 <memcpy>
       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 <strlen>
- 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 <strlen>
+ 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 <memcpy>
+ 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 <memcpy>
       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 <realloc>
- 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 <realloc>
+ 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 <realloc>
- 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 <realloc>
+ 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 <realloc>
- 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 <realloc>
+ 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 <HAL_TIM_Base_Start>
+ 800493a:      687b            ldr     r3, [r7, #4]
+ 800493c:      681b            ldr     r3, [r3, #0]
+ 800493e:      4618            mov     r0, r3
+ 8004940:      f7fd fd9c       bl      800247c <HAL_TIM_Base_Start>
     }
- 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 <HAL_UART_Receive_DMA>
+ 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 <HAL_UART_Receive_DMA>
     }
- 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 <HAL_UART_Transmit_DMA>
+ 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 <HAL_UART_Transmit_DMA>
           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 <memcpy>
+ 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 <memcpy>
       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 <memcpy>
+ 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 <memcpy>
       }
 
       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 <HAL_GetTick>
- 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<std_msgs::UInt8> 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_GPIO_TogglePin>
-       HAL_Delay(i);
- 8004828:      68fb            ldr     r3, [r7, #12]
- 800482a:      4618            mov     r0, r3
- 800482c:      f7fb feea       bl      8000604 <HAL_Delay>
-       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 <HAL_GPIO_TogglePin>
-
-}
- 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 <main>:
-/**
-  * @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 <HAL_Init>
-  /* 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 <main+0x3c>)
- 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 <main+0x3a>
- 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 <memset>
-  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 <memset>
-
-  /** 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 <HAL_RCC_OscConfig>
- 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 <Error_Handler>
-  }
-  /** 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 <HAL_RCC_ClockConfig>
- 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 <Error_Handler>
-  }
-  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 <HAL_RCCEx_PeriphCLKConfig>
- 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 <Error_Handler>
-  }
-}
- 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 <HAL_TIM_Base_Init>
- 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 <Error_Handler>
-  }
-  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 <HAL_TIM_ConfigClockSource>
- 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 <Error_Handler>
-  }
-  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 <HAL_TIMEx_MasterConfigSynchronization>
- 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 <Error_Handler>
-  }
-  /* 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 <HAL_UART_Init>
- 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 <Error_Handler>
-  }
-  /* 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_SetPriority>
-  HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);
- 8004ae4:      200c            movs    r0, #12
- 8004ae6:      f7fb fea6       bl      8000836 <HAL_NVIC_EnableIRQ>
-  /* 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_SetPriority>
-  HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn);
- 8004af4:      200e            movs    r0, #14
- 8004af6:      f7fb fe9e       bl      8000836 <HAL_NVIC_EnableIRQ>
-
-}
- 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 <HAL_GPIO_WritePin>
-
-  /*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 <HAL_GPIO_Init>
-
-}
- 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 <Error_Handler>:
-/**
-  * @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 <HAL_GetTick>
+ 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 <HAL_UART_TxCpltCallback>:
+#include "mainpp.h"
+
+ros::Subscriber<std_msgs::UInt8> 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 <HAL_UART_TxCpltCallback+0x20>)
+ 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 <HAL_UART_RxCpltCallback>:
+
+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 <HAL_UART_RxCpltCallback+0x20>)
+ 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 <HAL_Delay>
+}
+ 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_GPIO_TogglePin>
+       HAL_Delay(500);
+ 8004bb8:      f44f 70fa       mov.w   r0, #500        ; 0x1f4
+ 8004bbc:      f7fb fd22       bl      8000604 <HAL_Delay>
+       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 <HAL_GPIO_TogglePin>
 
-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<typename A, typename V>
   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<typename V, typename A>
   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<typename SubscriberT>
   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<Subscriber_*>(&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<std_msgs::UInt8> 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<std_msgs::UInt8> 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 <HAL_MspInit>:
+ 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 <HAL_MspInit>:
 /* 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 <HAL_MspInit+0x44>)
- 80057bc:      6c1b            ldr     r3, [r3, #64]   ; 0x40
- 80057be:      4a0e            ldr     r2, [pc, #56]   ; (80057f8 <HAL_MspInit+0x44>)
- 80057c0:      f043 5380       orr.w   r3, r3, #268435456      ; 0x10000000
- 80057c4:      6413            str     r3, [r2, #64]   ; 0x40
- 80057c6:      4b0c            ldr     r3, [pc, #48]   ; (80057f8 <HAL_MspInit+0x44>)
- 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 <HAL_MspInit+0x44>)
+ 8005820:      6c1b            ldr     r3, [r3, #64]   ; 0x40
+ 8005822:      4a0e            ldr     r2, [pc, #56]   ; (800585c <HAL_MspInit+0x44>)
+ 8005824:      f043 5380       orr.w   r3, r3, #268435456      ; 0x10000000
+ 8005828:      6413            str     r3, [r2, #64]   ; 0x40
+ 800582a:      4b0c            ldr     r3, [pc, #48]   ; (800585c <HAL_MspInit+0x44>)
+ 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 <HAL_MspInit+0x44>)
- 80057d4:      6c5b            ldr     r3, [r3, #68]   ; 0x44
- 80057d6:      4a08            ldr     r2, [pc, #32]   ; (80057f8 <HAL_MspInit+0x44>)
- 80057d8:      f443 4380       orr.w   r3, r3, #16384  ; 0x4000
- 80057dc:      6453            str     r3, [r2, #68]   ; 0x44
- 80057de:      4b06            ldr     r3, [pc, #24]   ; (80057f8 <HAL_MspInit+0x44>)
- 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 <HAL_MspInit+0x44>)
+ 8005838:      6c5b            ldr     r3, [r3, #68]   ; 0x44
+ 800583a:      4a08            ldr     r2, [pc, #32]   ; (800585c <HAL_MspInit+0x44>)
+ 800583c:      f443 4380       orr.w   r3, r3, #16384  ; 0x4000
+ 8005840:      6453            str     r3, [r2, #68]   ; 0x44
+ 8005842:      4b06            ldr     r3, [pc, #24]   ; (800585c <HAL_MspInit+0x44>)
+ 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 <HAL_TIM_Base_MspInit>:
+ 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 <HAL_TIM_Base_MspInit>:
 * 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 <HAL_TIM_Base_MspInit+0x2a>
+ 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 <HAL_TIM_Base_MspInit+0x2a>
   {
   /* 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 <HAL_TIM_Base_MspInit+0x38>)
- 8005810:      6c1b            ldr     r3, [r3, #64]   ; 0x40
- 8005812:      4a08            ldr     r2, [pc, #32]   ; (8005834 <HAL_TIM_Base_MspInit+0x38>)
- 8005814:      f043 0301       orr.w   r3, r3, #1
- 8005818:      6413            str     r3, [r2, #64]   ; 0x40
- 800581a:      4b06            ldr     r3, [pc, #24]   ; (8005834 <HAL_TIM_Base_MspInit+0x38>)
- 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 <HAL_TIM_Base_MspInit+0x38>)
+ 8005874:      6c1b            ldr     r3, [r3, #64]   ; 0x40
+ 8005876:      4a08            ldr     r2, [pc, #32]   ; (8005898 <HAL_TIM_Base_MspInit+0x38>)
+ 8005878:      f043 0301       orr.w   r3, r3, #1
+ 800587c:      6413            str     r3, [r2, #64]   ; 0x40
+ 800587e:      4b06            ldr     r3, [pc, #24]   ; (8005898 <HAL_TIM_Base_MspInit+0x38>)
+ 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 <HAL_UART_MspInit>:
+ 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 <HAL_UART_MspInit>:
 * 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 <HAL_UART_MspInit+0x148>)
- 8005856:      4293            cmp     r3, r2
- 8005858:      f040 808d       bne.w   8005976 <HAL_UART_MspInit+0x13e>
+ 80058b4:      687b            ldr     r3, [r7, #4]
+ 80058b6:      681b            ldr     r3, [r3, #0]
+ 80058b8:      4a4a            ldr     r2, [pc, #296]  ; (80059e4 <HAL_UART_MspInit+0x148>)
+ 80058ba:      4293            cmp     r3, r2
+ 80058bc:      f040 808d       bne.w   80059da <HAL_UART_MspInit+0x13e>
   {
   /* 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 <HAL_UART_MspInit+0x14c>)
- 800585e:      6c1b            ldr     r3, [r3, #64]   ; 0x40
- 8005860:      4a48            ldr     r2, [pc, #288]  ; (8005984 <HAL_UART_MspInit+0x14c>)
- 8005862:      f443 2380       orr.w   r3, r3, #262144 ; 0x40000
- 8005866:      6413            str     r3, [r2, #64]   ; 0x40
- 8005868:      4b46            ldr     r3, [pc, #280]  ; (8005984 <HAL_UART_MspInit+0x14c>)
- 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 <HAL_UART_MspInit+0x14c>)
+ 80058c2:      6c1b            ldr     r3, [r3, #64]   ; 0x40
+ 80058c4:      4a48            ldr     r2, [pc, #288]  ; (80059e8 <HAL_UART_MspInit+0x14c>)
+ 80058c6:      f443 2380       orr.w   r3, r3, #262144 ; 0x40000
+ 80058ca:      6413            str     r3, [r2, #64]   ; 0x40
+ 80058cc:      4b46            ldr     r3, [pc, #280]  ; (80059e8 <HAL_UART_MspInit+0x14c>)
+ 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 <HAL_UART_MspInit+0x14c>)
- 8005876:      6b1b            ldr     r3, [r3, #48]   ; 0x30
- 8005878:      4a42            ldr     r2, [pc, #264]  ; (8005984 <HAL_UART_MspInit+0x14c>)
- 800587a:      f043 0308       orr.w   r3, r3, #8
- 800587e:      6313            str     r3, [r2, #48]   ; 0x30
- 8005880:      4b40            ldr     r3, [pc, #256]  ; (8005984 <HAL_UART_MspInit+0x14c>)
- 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 <HAL_UART_MspInit+0x14c>)
+ 80058da:      6b1b            ldr     r3, [r3, #48]   ; 0x30
+ 80058dc:      4a42            ldr     r2, [pc, #264]  ; (80059e8 <HAL_UART_MspInit+0x14c>)
+ 80058de:      f043 0308       orr.w   r3, r3, #8
+ 80058e2:      6313            str     r3, [r2, #48]   ; 0x30
+ 80058e4:      4b40            ldr     r3, [pc, #256]  ; (80059e8 <HAL_UART_MspInit+0x14c>)
+ 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 <HAL_UART_MspInit+0x150>)
- 80058aa:      f7fb fb77       bl      8000f9c <HAL_GPIO_Init>
+ 8005906:      f107 0314       add.w   r3, r7, #20
+ 800590a:      4619            mov     r1, r3
+ 800590c:      4837            ldr     r0, [pc, #220]  ; (80059ec <HAL_UART_MspInit+0x150>)
+ 800590e:      f7fb fb45       bl      8000f9c <HAL_GPIO_Init>
 
     /* USART3 DMA Init */
     /* USART3_RX Init */
     hdma_usart3_rx.Instance = DMA1_Stream1;
- 80058ae:      4b37            ldr     r3, [pc, #220]  ; (800598c <HAL_UART_MspInit+0x154>)
- 80058b0:      4a37            ldr     r2, [pc, #220]  ; (8005990 <HAL_UART_MspInit+0x158>)
- 80058b2:      601a            str     r2, [r3, #0]
+ 8005912:      4b37            ldr     r3, [pc, #220]  ; (80059f0 <HAL_UART_MspInit+0x154>)
+ 8005914:      4a37            ldr     r2, [pc, #220]  ; (80059f4 <HAL_UART_MspInit+0x158>)
+ 8005916:      601a            str     r2, [r3, #0]
     hdma_usart3_rx.Init.Channel = DMA_CHANNEL_4;
- 80058b4:      4b35            ldr     r3, [pc, #212]  ; (800598c <HAL_UART_MspInit+0x154>)
- 80058b6:      f04f 6200       mov.w   r2, #134217728  ; 0x8000000
- 80058ba:      605a            str     r2, [r3, #4]
+ 8005918:      4b35            ldr     r3, [pc, #212]  ; (80059f0 <HAL_UART_MspInit+0x154>)
+ 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 <HAL_UART_MspInit+0x154>)
- 80058be:      2200            movs    r2, #0
- 80058c0:      609a            str     r2, [r3, #8]
+ 8005920:      4b33            ldr     r3, [pc, #204]  ; (80059f0 <HAL_UART_MspInit+0x154>)
+ 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 <HAL_UART_MspInit+0x154>)
- 80058c4:      2200            movs    r2, #0
- 80058c6:      60da            str     r2, [r3, #12]
+ 8005926:      4b32            ldr     r3, [pc, #200]  ; (80059f0 <HAL_UART_MspInit+0x154>)
+ 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 <HAL_UART_MspInit+0x154>)
- 80058ca:      f44f 6280       mov.w   r2, #1024       ; 0x400
- 80058ce:      611a            str     r2, [r3, #16]
+ 800592c:      4b30            ldr     r3, [pc, #192]  ; (80059f0 <HAL_UART_MspInit+0x154>)
+ 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 <HAL_UART_MspInit+0x154>)
- 80058d2:      2200            movs    r2, #0
- 80058d4:      615a            str     r2, [r3, #20]
+ 8005934:      4b2e            ldr     r3, [pc, #184]  ; (80059f0 <HAL_UART_MspInit+0x154>)
+ 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 <HAL_UART_MspInit+0x154>)
- 80058d8:      2200            movs    r2, #0
- 80058da:      619a            str     r2, [r3, #24]
+ 800593a:      4b2d            ldr     r3, [pc, #180]  ; (80059f0 <HAL_UART_MspInit+0x154>)
+ 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 <HAL_UART_MspInit+0x154>)
- 80058de:      2200            movs    r2, #0
- 80058e0:      61da            str     r2, [r3, #28]
+ 8005940:      4b2b            ldr     r3, [pc, #172]  ; (80059f0 <HAL_UART_MspInit+0x154>)
+ 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 <HAL_UART_MspInit+0x154>)
- 80058e4:      2200            movs    r2, #0
- 80058e6:      621a            str     r2, [r3, #32]
+ 8005946:      4b2a            ldr     r3, [pc, #168]  ; (80059f0 <HAL_UART_MspInit+0x154>)
+ 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 <HAL_UART_MspInit+0x154>)
- 80058ea:      2200            movs    r2, #0
- 80058ec:      625a            str     r2, [r3, #36]   ; 0x24
+ 800594c:      4b28            ldr     r3, [pc, #160]  ; (80059f0 <HAL_UART_MspInit+0x154>)
+ 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 <HAL_UART_MspInit+0x154>)
- 80058f0:      f7fa ffbc       bl      800086c <HAL_DMA_Init>
- 80058f4:      4603            mov     r3, r0
- 80058f6:      2b00            cmp     r3, #0
- 80058f8:      d001            beq.n   80058fe <HAL_UART_MspInit+0xc6>
+ 8005952:      4827            ldr     r0, [pc, #156]  ; (80059f0 <HAL_UART_MspInit+0x154>)
+ 8005954:      f7fa ff8a       bl      800086c <HAL_DMA_Init>
+ 8005958:      4603            mov     r3, r0
+ 800595a:      2b00            cmp     r3, #0
+ 800595c:      d001            beq.n   8005962 <HAL_UART_MspInit+0xc6>
     {
       Error_Handler();
- 80058fa:      f7ff f945       bl      8004b88 <Error_Handler>
+ 800595e:      f7fe f8f5       bl      8003b4c <Error_Handler>
     }
 
     __HAL_LINKDMA(huart,hdmarx,hdma_usart3_rx);
- 80058fe:      687b            ldr     r3, [r7, #4]
- 8005900:      4a22            ldr     r2, [pc, #136]  ; (800598c <HAL_UART_MspInit+0x154>)
- 8005902:      66da            str     r2, [r3, #108]  ; 0x6c
- 8005904:      4a21            ldr     r2, [pc, #132]  ; (800598c <HAL_UART_MspInit+0x154>)
- 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 <HAL_UART_MspInit+0x154>)
+ 8005966:      66da            str     r2, [r3, #108]  ; 0x6c
+ 8005968:      4a21            ldr     r2, [pc, #132]  ; (80059f0 <HAL_UART_MspInit+0x154>)
+ 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 <HAL_UART_MspInit+0x15c>)
- 800590c:      4a22            ldr     r2, [pc, #136]  ; (8005998 <HAL_UART_MspInit+0x160>)
- 800590e:      601a            str     r2, [r3, #0]
+ 800596e:      4b22            ldr     r3, [pc, #136]  ; (80059f8 <HAL_UART_MspInit+0x15c>)
+ 8005970:      4a22            ldr     r2, [pc, #136]  ; (80059fc <HAL_UART_MspInit+0x160>)
+ 8005972:      601a            str     r2, [r3, #0]
     hdma_usart3_tx.Init.Channel = DMA_CHANNEL_4;
- 8005910:      4b20            ldr     r3, [pc, #128]  ; (8005994 <HAL_UART_MspInit+0x15c>)
- 8005912:      f04f 6200       mov.w   r2, #134217728  ; 0x8000000
- 8005916:      605a            str     r2, [r3, #4]
+ 8005974:      4b20            ldr     r3, [pc, #128]  ; (80059f8 <HAL_UART_MspInit+0x15c>)
+ 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 <HAL_UART_MspInit+0x15c>)
- 800591a:      2240            movs    r2, #64 ; 0x40
- 800591c:      609a            str     r2, [r3, #8]
+ 800597c:      4b1e            ldr     r3, [pc, #120]  ; (80059f8 <HAL_UART_MspInit+0x15c>)
+ 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 <HAL_UART_MspInit+0x15c>)
- 8005920:      2200            movs    r2, #0
- 8005922:      60da            str     r2, [r3, #12]
+ 8005982:      4b1d            ldr     r3, [pc, #116]  ; (80059f8 <HAL_UART_MspInit+0x15c>)
+ 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 <HAL_UART_MspInit+0x15c>)
- 8005926:      f44f 6280       mov.w   r2, #1024       ; 0x400
- 800592a:      611a            str     r2, [r3, #16]
+ 8005988:      4b1b            ldr     r3, [pc, #108]  ; (80059f8 <HAL_UART_MspInit+0x15c>)
+ 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 <HAL_UART_MspInit+0x15c>)
- 800592e:      2200            movs    r2, #0
- 8005930:      615a            str     r2, [r3, #20]
+ 8005990:      4b19            ldr     r3, [pc, #100]  ; (80059f8 <HAL_UART_MspInit+0x15c>)
+ 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 <HAL_UART_MspInit+0x15c>)
- 8005934:      2200            movs    r2, #0
- 8005936:      619a            str     r2, [r3, #24]
+ 8005996:      4b18            ldr     r3, [pc, #96]   ; (80059f8 <HAL_UART_MspInit+0x15c>)
+ 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 <HAL_UART_MspInit+0x15c>)
- 800593a:      2200            movs    r2, #0
- 800593c:      61da            str     r2, [r3, #28]
+ 800599c:      4b16            ldr     r3, [pc, #88]   ; (80059f8 <HAL_UART_MspInit+0x15c>)
+ 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 <HAL_UART_MspInit+0x15c>)
- 8005940:      2200            movs    r2, #0
- 8005942:      621a            str     r2, [r3, #32]
+ 80059a2:      4b15            ldr     r3, [pc, #84]   ; (80059f8 <HAL_UART_MspInit+0x15c>)
+ 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 <HAL_UART_MspInit+0x15c>)
- 8005946:      2200            movs    r2, #0
- 8005948:      625a            str     r2, [r3, #36]   ; 0x24
+ 80059a8:      4b13            ldr     r3, [pc, #76]   ; (80059f8 <HAL_UART_MspInit+0x15c>)
+ 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 <HAL_UART_MspInit+0x15c>)
- 800594c:      f7fa ff8e       bl      800086c <HAL_DMA_Init>
- 8005950:      4603            mov     r3, r0
- 8005952:      2b00            cmp     r3, #0
- 8005954:      d001            beq.n   800595a <HAL_UART_MspInit+0x122>
+ 80059ae:      4812            ldr     r0, [pc, #72]   ; (80059f8 <HAL_UART_MspInit+0x15c>)
+ 80059b0:      f7fa ff5c       bl      800086c <HAL_DMA_Init>
+ 80059b4:      4603            mov     r3, r0
+ 80059b6:      2b00            cmp     r3, #0
+ 80059b8:      d001            beq.n   80059be <HAL_UART_MspInit+0x122>
     {
       Error_Handler();
- 8005956:      f7ff f917       bl      8004b88 <Error_Handler>
+ 80059ba:      f7fe f8c7       bl      8003b4c <Error_Handler>
     }
 
     __HAL_LINKDMA(huart,hdmatx,hdma_usart3_tx);
- 800595a:      687b            ldr     r3, [r7, #4]
- 800595c:      4a0d            ldr     r2, [pc, #52]   ; (8005994 <HAL_UART_MspInit+0x15c>)
- 800595e:      669a            str     r2, [r3, #104]  ; 0x68
- 8005960:      4a0c            ldr     r2, [pc, #48]   ; (8005994 <HAL_UART_MspInit+0x15c>)
- 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 <HAL_UART_MspInit+0x15c>)
+ 80059c2:      669a            str     r2, [r3, #104]  ; 0x68
+ 80059c4:      4a0c            ldr     r2, [pc, #48]   ; (80059f8 <HAL_UART_MspInit+0x15c>)
+ 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 <HAL_NVIC_SetPriority>
+ 80059ca:      2200            movs    r2, #0
+ 80059cc:      2100            movs    r1, #0
+ 80059ce:      2027            movs    r0, #39 ; 0x27
+ 80059d0:      f7fa ff15       bl      80007fe <HAL_NVIC_SetPriority>
     HAL_NVIC_EnableIRQ(USART3_IRQn);
- 8005970:      2027            movs    r0, #39 ; 0x27
- 8005972:      f7fa ff60       bl      8000836 <HAL_NVIC_EnableIRQ>
+ 80059d4:      2027            movs    r0, #39 ; 0x27
+ 80059d6:      f7fa ff2e       bl      8000836 <HAL_NVIC_EnableIRQ>
   /* 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 <NMI_Handler>:
+ 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 <NMI_Handler>:
 /******************************************************************************/
 /**
   * @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 <HardFault_Handler>:
+08005a0e <HardFault_Handler>:
 
 /**
   * @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 <HardFault_Handler+0x4>
+ 8005a12:      e7fe            b.n     8005a12 <HardFault_Handler+0x4>
 
-080059b0 <MemManage_Handler>:
+08005a14 <MemManage_Handler>:
 
 /**
   * @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 <MemManage_Handler+0x4>
+ 8005a18:      e7fe            b.n     8005a18 <MemManage_Handler+0x4>
 
-080059b6 <BusFault_Handler>:
+08005a1a <BusFault_Handler>:
 
 /**
   * @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 <BusFault_Handler+0x4>
+ 8005a1e:      e7fe            b.n     8005a1e <BusFault_Handler+0x4>
 
-080059bc <UsageFault_Handler>:
+08005a20 <UsageFault_Handler>:
 
 /**
   * @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 <UsageFault_Handler+0x4>
+ 8005a24:      e7fe            b.n     8005a24 <UsageFault_Handler+0x4>
 
-080059c2 <SVC_Handler>:
+08005a26 <SVC_Handler>:
 
 /**
   * @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 <DebugMon_Handler>:
+08005a34 <DebugMon_Handler>:
 
 /**
   * @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 <PendSV_Handler>:
+08005a42 <PendSV_Handler>:
 
 /**
   * @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 <SysTick_Handler>:
+08005a50 <SysTick_Handler>:
 
 /**
   * @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 <HAL_IncTick>
+ 8005a54:      f7fa fdb6       bl      80005c4 <HAL_IncTick>
   /* 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 <DMA1_Stream1_IRQHandler>:
+08005a5c <DMA1_Stream1_IRQHandler>:
 
 /**
   * @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 <DMA1_Stream1_IRQHandler+0x10>)
- 80059fe:      f7fb f865       bl      8000acc <HAL_DMA_IRQHandler>
+ 8005a60:      4802            ldr     r0, [pc, #8]    ; (8005a6c <DMA1_Stream1_IRQHandler+0x10>)
+ 8005a62:      f7fb f833       bl      8000acc <HAL_DMA_IRQHandler>
   /* 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 <DMA1_Stream3_IRQHandler>:
+08005a70 <DMA1_Stream3_IRQHandler>:
 
 /**
   * @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 <DMA1_Stream3_IRQHandler+0x10>)
- 8005a12:      f7fb f85b       bl      8000acc <HAL_DMA_IRQHandler>
+ 8005a74:      4802            ldr     r0, [pc, #8]    ; (8005a80 <DMA1_Stream3_IRQHandler+0x10>)
+ 8005a76:      f7fb f829       bl      8000acc <HAL_DMA_IRQHandler>
   /* 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 <USART3_IRQHandler>:
+08005a84 <USART3_IRQHandler>:
 
 /**
   * @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 <USART3_IRQHandler+0x10>)
- 8005a26:      f7fd f8f1       bl      8002c0c <HAL_UART_IRQHandler>
+ 8005a88:      4802            ldr     r0, [pc, #8]    ; (8005a94 <USART3_IRQHandler+0x10>)
+ 8005a8a:      f7fd f8bf       bl      8002c0c <HAL_UART_IRQHandler>
   /* 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 <SystemInit>:
+ 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 <SystemInit>:
   *         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 <SystemInit+0x5c>)
- 8005ad6:      f8d3 3088       ldr.w   r3, [r3, #136]  ; 0x88
- 8005ada:      4a14            ldr     r2, [pc, #80]   ; (8005b2c <SystemInit+0x5c>)
- 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 <SystemInit+0x5c>)
+ 8005b3a:      f8d3 3088       ldr.w   r3, [r3, #136]  ; 0x88
+ 8005b3e:      4a14            ldr     r2, [pc, #80]   ; (8005b90 <SystemInit+0x5c>)
+ 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 <SystemInit+0x60>)
- 8005ae6:      681b            ldr     r3, [r3, #0]
- 8005ae8:      4a11            ldr     r2, [pc, #68]   ; (8005b30 <SystemInit+0x60>)
- 8005aea:      f043 0301       orr.w   r3, r3, #1
- 8005aee:      6013            str     r3, [r2, #0]
+ 8005b48:      4b12            ldr     r3, [pc, #72]   ; (8005b94 <SystemInit+0x60>)
+ 8005b4a:      681b            ldr     r3, [r3, #0]
+ 8005b4c:      4a11            ldr     r2, [pc, #68]   ; (8005b94 <SystemInit+0x60>)
+ 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 <SystemInit+0x60>)
- 8005af2:      2200            movs    r2, #0
- 8005af4:      609a            str     r2, [r3, #8]
+ 8005b54:      4b0f            ldr     r3, [pc, #60]   ; (8005b94 <SystemInit+0x60>)
+ 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 <SystemInit+0x60>)
- 8005af8:      681a            ldr     r2, [r3, #0]
- 8005afa:      490d            ldr     r1, [pc, #52]   ; (8005b30 <SystemInit+0x60>)
- 8005afc:      4b0d            ldr     r3, [pc, #52]   ; (8005b34 <SystemInit+0x64>)
- 8005afe:      4013            ands    r3, r2
- 8005b00:      600b            str     r3, [r1, #0]
+ 8005b5a:      4b0e            ldr     r3, [pc, #56]   ; (8005b94 <SystemInit+0x60>)
+ 8005b5c:      681a            ldr     r2, [r3, #0]
+ 8005b5e:      490d            ldr     r1, [pc, #52]   ; (8005b94 <SystemInit+0x60>)
+ 8005b60:      4b0d            ldr     r3, [pc, #52]   ; (8005b98 <SystemInit+0x64>)
+ 8005b62:      4013            ands    r3, r2
+ 8005b64:      600b            str     r3, [r1, #0]
 
   /* Reset PLLCFGR register */
   RCC->PLLCFGR = 0x24003010;
- 8005b02:      4b0b            ldr     r3, [pc, #44]   ; (8005b30 <SystemInit+0x60>)
- 8005b04:      4a0c            ldr     r2, [pc, #48]   ; (8005b38 <SystemInit+0x68>)
- 8005b06:      605a            str     r2, [r3, #4]
+ 8005b66:      4b0b            ldr     r3, [pc, #44]   ; (8005b94 <SystemInit+0x60>)
+ 8005b68:      4a0c            ldr     r2, [pc, #48]   ; (8005b9c <SystemInit+0x68>)
+ 8005b6a:      605a            str     r2, [r3, #4]
 
   /* Reset HSEBYP bit */
   RCC->CR &= (uint32_t)0xFFFBFFFF;
- 8005b08:      4b09            ldr     r3, [pc, #36]   ; (8005b30 <SystemInit+0x60>)
- 8005b0a:      681b            ldr     r3, [r3, #0]
- 8005b0c:      4a08            ldr     r2, [pc, #32]   ; (8005b30 <SystemInit+0x60>)
- 8005b0e:      f423 2380       bic.w   r3, r3, #262144 ; 0x40000
- 8005b12:      6013            str     r3, [r2, #0]
+ 8005b6c:      4b09            ldr     r3, [pc, #36]   ; (8005b94 <SystemInit+0x60>)
+ 8005b6e:      681b            ldr     r3, [r3, #0]
+ 8005b70:      4a08            ldr     r2, [pc, #32]   ; (8005b94 <SystemInit+0x60>)
+ 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 <SystemInit+0x60>)
- 8005b16:      2200            movs    r2, #0
- 8005b18:      60da            str     r2, [r3, #12]
+ 8005b78:      4b06            ldr     r3, [pc, #24]   ; (8005b94 <SystemInit+0x60>)
+ 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 <SystemInit+0x5c>)
- 8005b1c:      f04f 6200       mov.w   r2, #134217728  ; 0x8000000
- 8005b20:      609a            str     r2, [r3, #8]
+ 8005b7e:      4b04            ldr     r3, [pc, #16]   ; (8005b90 <SystemInit+0x5c>)
+ 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 <Reset_Handler>:
+08005ba0 <Reset_Handler>:
 
     .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 <LoopFillZerobss+0x14>
+ 8005ba0:      f8df d034       ldr.w   sp, [pc, #52]   ; 8005bd8 <LoopFillZerobss+0x14>
 
 /* 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 <LoopCopyDataInit>
+ 8005ba6:      e003            b.n     8005bb0 <LoopCopyDataInit>
 
-08005b44 <CopyDataInit>:
+08005ba8 <CopyDataInit>:
 
 CopyDataInit:
   ldr  r3, =_sidata
- 8005b44:      4b0c            ldr     r3, [pc, #48]   ; (8005b78 <LoopFillZerobss+0x18>)
+ 8005ba8:      4b0c            ldr     r3, [pc, #48]   ; (8005bdc <LoopFillZerobss+0x18>)
   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 <LoopCopyDataInit>:
+08005bb0 <LoopCopyDataInit>:
     
 LoopCopyDataInit:
   ldr  r0, =_sdata
- 8005b4c:      480b            ldr     r0, [pc, #44]   ; (8005b7c <LoopFillZerobss+0x1c>)
+ 8005bb0:      480b            ldr     r0, [pc, #44]   ; (8005be0 <LoopFillZerobss+0x1c>)
   ldr  r3, =_edata
- 8005b4e:      4b0c            ldr     r3, [pc, #48]   ; (8005b80 <LoopFillZerobss+0x20>)
+ 8005bb2:      4b0c            ldr     r3, [pc, #48]   ; (8005be4 <LoopFillZerobss+0x20>)
   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 <CopyDataInit>
+ 8005bb8:      d3f6            bcc.n   8005ba8 <CopyDataInit>
   ldr  r2, =_sbss
- 8005b56:      4a0b            ldr     r2, [pc, #44]   ; (8005b84 <LoopFillZerobss+0x24>)
+ 8005bba:      4a0b            ldr     r2, [pc, #44]   ; (8005be8 <LoopFillZerobss+0x24>)
   b  LoopFillZerobss
- 8005b58:      e002            b.n     8005b60 <LoopFillZerobss>
+ 8005bbc:      e002            b.n     8005bc4 <LoopFillZerobss>
 
-08005b5a <FillZerobss>:
+08005bbe <FillZerobss>:
 /* 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 <LoopFillZerobss>:
+08005bc4 <LoopFillZerobss>:
     
 LoopFillZerobss:
   ldr  r3, = _ebss
- 8005b60:      4b09            ldr     r3, [pc, #36]   ; (8005b88 <LoopFillZerobss+0x28>)
+ 8005bc4:      4b09            ldr     r3, [pc, #36]   ; (8005bec <LoopFillZerobss+0x28>)
   cmp  r2, r3
- 8005b62:      429a            cmp     r2, r3
+ 8005bc6:      429a            cmp     r2, r3
   bcc  FillZerobss
- 8005b64:      d3f9            bcc.n   8005b5a <FillZerobss>
+ 8005bc8:      d3f9            bcc.n   8005bbe <FillZerobss>
 
 /* Call the clock system initialization function.*/
   bl  SystemInit   
- 8005b66:      f7ff ffb3       bl      8005ad0 <SystemInit>
+ 8005bca:      f7ff ffb3       bl      8005b34 <SystemInit>
 /* 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 <main>
+ 8005bd2:      f7fd fe28       bl      8003826 <main>
   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 <ADC_IRQHandler>:
+08005bf0 <ADC_IRQHandler>:
  * @retval None       
 */
     .section  .text.Default_Handler,"ax",%progbits
 Default_Handler:
 Infinite_Loop:
   b  Infinite_Loop
- 8005b8c:      e7fe            b.n     8005b8c <ADC_IRQHandler>
-
-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 <abort>
-
-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 <abort>:
- 8005bb6:      b508            push    {r3, lr}
- 8005bb8:      2006            movs    r0, #6
- 8005bba:      f000 f871       bl      8005ca0 <raise>
- 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 <memcpy>:
- 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 <memcpy+0xc>
- 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 <memcpy+0x6>
-
-08005c2e <memset>:
- 8005c2e:      4402            add     r2, r0
- 8005c30:      4603            mov     r3, r0
- 8005c32:      4293            cmp     r3, r2
- 8005c34:      d100            bne.n   8005c38 <memset+0xa>
- 8005c36:      4770            bx      lr
- 8005c38:      f803 1b01       strb.w  r1, [r3], #1
- 8005c3c:      e7f9            b.n     8005c32 <memset+0x4>
+ 8005bf0:      e7fe            b.n     8005bf0 <ADC_IRQHandler>
+
+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 <abort>
+
+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 <abort>:
+ 8005c1a:      b508            push    {r3, lr}
+ 8005c1c:      2006            movs    r0, #6
+ 8005c1e:      f000 f871       bl      8005d04 <raise>
+ 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 <memcpy>:
+ 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 <memcpy+0xc>
+ 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 <memcpy+0x6>
+
+08005c92 <memset>:
+ 8005c92:      4402            add     r2, r0
+ 8005c94:      4603            mov     r3, r0
+ 8005c96:      4293            cmp     r3, r2
+ 8005c98:      d100            bne.n   8005c9c <memset+0xa>
+ 8005c9a:      4770            bx      lr
+ 8005c9c:      f803 1b01       strb.w  r1, [r3], #1
+ 8005ca0:      e7f9            b.n     8005c96 <memset+0x4>
        ...
 
-08005c40 <realloc>:
- 8005c40:      4b02            ldr     r3, [pc, #8]    ; (8005c4c <realloc+0xc>)
- 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 <raise>:
- 8005ca0:      4b02            ldr     r3, [pc, #8]    ; (8005cac <raise+0xc>)
- 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 <memcpy>
- 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 <realloc>:
+ 8005ca4:      4b02            ldr     r3, [pc, #8]    ; (8005cb0 <realloc+0xc>)
+ 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 <raise>:
+ 8005d04:      4b02            ldr     r3, [pc, #8]    ; (8005d10 <raise+0xc>)
+ 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 <memcpy>
+ 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 (file)
index 0000000..634576e
--- /dev/null
@@ -0,0 +1,8 @@
+#pragma once
+
+#include <std_msgs/UInt8.h>
+#include <ros.h>
+
+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 (file)
index 87bbc22..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-void write(uint8_t* data, int length, UART_HandleTypeDef huart);
index 9c5565499fed74722e98fbfa65d011d2987b315e..1b2a71ab54648a3d9f9dfc0ce54217f7262d31c3 100644 (file)
 /* USER CODE END Header */\r
 \r
 /* Includes ------------------------------------------------------------------*/\r
+#include <mainpp.h>\r
 #include "main.h"\r
 \r
 /* Private includes ----------------------------------------------------------*/\r
 /* USER CODE BEGIN Includes */\r
-#include <std_msgs/UInt8.h>\r
-#include <ros.h>\r
 \r
 /* USER CODE END Includes */\r
 \r
@@ -62,20 +61,11 @@ static void MX_DMA_Init(void);
 static void MX_TIM2_Init(void);\r
 static void MX_USART3_UART_Init(void);\r
 /* USER CODE BEGIN PFP */\r
-void led_cb(const std_msgs::UInt8& msg);\r
+\r
 /* USER CODE END PFP */\r
 \r
 /* Private user code ---------------------------------------------------------*/\r
 /* USER CODE BEGIN 0 */\r
-ros::Subscriber<std_msgs::UInt8> led_sub("led", &led_cb);\r
-\r
-void led_cb(const std_msgs::UInt8& msg){\r
-       int i = msg.data;\r
-       HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_15);\r
-       HAL_Delay(i);\r
-       HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_15);\r
-\r
-}\r
 /* USER CODE END 0 */\r
 \r
 /**\r
@@ -111,17 +101,13 @@ int main(void)
   MX_TIM2_Init();\r
   MX_USART3_UART_Init();\r
   /* USER CODE BEGIN 2 */\r
-       ros::NodeHandle nh;\r
-\r
-       nh.initNode();\r
-       nh.subscribe(led_sub);\r
-\r
+  setup();\r
   /* USER CODE END 2 */\r
 \r
   /* Infinite loop */\r
   /* USER CODE BEGIN WHILE */\r
        while (1) {\r
-\r
+       loop();\r
     /* USER CODE END WHILE */\r
 \r
     /* USER CODE BEGIN 3 */\r
diff --git a/rosserial_led/Src/mainpp.cpp b/rosserial_led/Src/mainpp.cpp
new file mode 100644 (file)
index 0000000..9829513
--- /dev/null
@@ -0,0 +1,30 @@
+#include "mainpp.h"
+
+ros::Subscriber<std_msgs::UInt8> 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 (file)
index 980ccf1..0000000
+++ /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);
-}