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:
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}
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
/* 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;
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
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.
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>:
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>:
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
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.
/* 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 */
}
/* 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) */
}
/* 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>
{
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:
/* 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
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.
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.
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))
/*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)
/*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)
/*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]
{
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>
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
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
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
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
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
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
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