diff --git a/.gdb_history b/.gdb_history index aa08cb5..aa2d3de 100644 --- a/.gdb_history +++ b/.gdb_history @@ -1,145 +1,3 @@ -r -del -b p_serial_mgr.c:44 -r -b p_serial_mgr.c:44 if rxc == 0x7D -del -b p_serial_mgr.c:44 if rxc == 0x7D -r -del -b p_serial_mgr.c:44 if (rxc == 0x7D) -r -r -s -s -s -q -b putil.c:34 -r -p bytep byte -p byte -/xp byte -p/x byte -make -j20 -load -q -b putil.c:34 -r -n -n -make -j20 -load -r -n -n -make -j20 -make -load -r -n -n -q -b putil.c:34 -r -c -make -j20 -load -r -n -n -n -q -b putil.c:35 -r -n -make -j20; load; r -make -j20 -load -r -n -n -n -c -c -c -q -b main.c:148 -r -q -b putil.c:36 -b putil.c:36 -r -p main.c:161 -b main.c:161 -r -del -b p_serial_mgr.c:161 -r -c -b p_serial_mgr_service -r -c -n -p serial_pkt_cb.buffer[0] -p serial_pkt_cb.buffer[0] -c -s -p ind -c -p ind -n -p ind -p serial_pkt_cb.max_len -p ind -s -p serial_pkt_cb.buffer[ind] -p serial_pkt_cb.buffer -p serial_pkt_cb.buffer[0] -p serial_pkt_cb.buffer[1] -p serial_pkt_cb.buffer[2] -p serial_pkt_cb.buffer[3] -p serial_pkt_cb.buffer[4] -del -b p_serial_mgr_service if serial_pkt_cb.buffer[0].frame_data[0] != 0 -r -q -q -q -b UART1_RxCpltCallback -r -c -p b_go -b main.c:141 -r -c -n -n -n -n -n -n -step -f -finish -finish -n -n -n -n -n -n -n -n -finish -n -finish -c 20 -p b_go -q -b 141 -r -n -p ret make load r @@ -254,3 +112,145 @@ p sbuffer[active_buffer][0] c p sbuffer[active_buffer][0] q +q +q +b p_serial_mgr.c:35 +r +p sbuffer[active_buffer][0] +p/x sbuffer[active_buffer][0] +c +p/x sbuffer[active_buffer][0] +c +s +s +p sstate +c +r +p/x sbuffer[active_buffer][0] +s +s +s +s +s +n +n +n +n +n +n +n +n +n +finish +s +s +s +c +r +del +b p_serial_mgr.c:52 if sstate == SS_START +r +b p_serial_mgr.c:53 if sstate == SS_START +r +n +n +finish +r +n +n +advance +advance 59 +n +n +n +p active_buffer +n +c +q +b p_serial_mgr.c:35 +r +p/x sbuffer[active_buffer][0] +c +p/x sbuffer[active_buffer][0] +s +s +s +s +s +s +n +advance 61 +s +n +r +p/x sbuffer[active_buffer][0] +p/x sbuffer[active_buffer] +s +q +r +s +s +s +s +s +s +s +p sstate +q +r +s +s +s +s +s +s +s +p p_serial_mgr.c:41 +b p_serial_mgr.c:41 +r +p/x sbuffer[active_buffer][0] +c +c +del +b p_serial_mgr.c:73 +r +n +q +b p_serial_mgr.c:73 +r +n +n +c +n +c +q +b p_serial_mgr.c:82 +r +s +make +load +r +s +b p_serial_mgr.c:83 +del 1 +r +p ret +c +p ret +c +make +load +del +b p_serial_mgr.c:83 if ret != HAL_OK +r +p _serial_huart_inst->RxState +p/x _serial_huart_inst->RxState +p/b _serial_huart_inst->RxState +p/o _serial_huart_inst->RxState +p/x _serial_huart_inst->RxState +q +b UART1RxCpltCallback +b UART1_RxCpltCallback +r +n +q diff --git a/Core/Src/main.c b/Core/Src/main.c index b2dc4d8..a29fba9 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -119,15 +119,15 @@ int main(void) // HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2); // HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_4); - // setPWM(&htim2, TIM_CHANNEL_2, 50); - // setPWM(&htim2, TIM_CHANNEL_4, 25); + setPWM(&htim2, TIM_CHANNEL_2, 50); + setPWM(&htim2, TIM_CHANNEL_4, 25); HAL_GPIO_WritePin(m1_dir_GPIO_Port, m1_dir_Pin, 1); HAL_GPIO_WritePin(m2_dir_GPIO_Port, m2_dir_Pin, 1); - // mc_init(&htim2); + mc_init(&htim2); HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); - // HAL_TIM_Base_Start_IT(&htim6); + HAL_TIM_Base_Start_IT(&htim6); p_serial_mgr_start(); @@ -431,7 +431,7 @@ static void MX_GPIO_Init(void) void UART2_RxCpltCallback(UART_HandleTypeDef *huart) { - HAL_UART_Transmit(&huart2, &huart2_rxc, 1, 100); + HAL_UART_Transmit(&huart1, &huart2_rxc, 1, 100); HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); } // void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) diff --git a/Makefile b/Makefile index dc74a27..a8a1c24 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ TARGET = motor_controller # debug build? DEBUG = 1 # optimization -OPT = -Og +OPT = -O0 ####################################### @@ -71,7 +71,7 @@ startup_stm32l432xx.s ####################################### # binaries ####################################### -PREFIX = arm-none-eabi- +PREFIX = /usr/bin/arm-none-eabi- # The gcc compiler bin path can be either defined in make command via GCC_PATH variable (> make GCC_PATH=xxx) # either it can be added to the PATH environment variable. ifdef GCC_PATH diff --git a/compile_commands.json b/compile_commands.json index 80eaff5..d6ff74a 100644 --- a/compile_commands.json +++ b/compile_commands.json @@ -1,7 +1,7 @@ [ { "arguments": [ - "arm-none-eabi-gcc", + "/usr/bin/arm-none-eabi-gcc", "-c", "-mcpu=cortex-m4", "-mthumb", @@ -19,7 +19,7 @@ "-Ishared/drivers", "-Ishared/util", "-IPenguinBuffer", - "-Og", + "-O0", "-Wall", "-fdata-sections", "-ffunction-sections", diff --git a/compile_commands.txt b/compile_commands.txt new file mode 100644 index 0000000..ab4f0a6 --- /dev/null +++ b/compile_commands.txt @@ -0,0 +1,975 @@ +[ + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_dma.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_dma.lst", + "-o", + "build/stm32l4xx_hal_dma.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_i2c.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_i2c.lst", + "-o", + "build/stm32l4xx_hal_i2c.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/p_serial_mgr.d", + "-Wa,-a,-ad,-alms=build/p_serial_mgr.lst", + "-o", + "build/p_serial_mgr.o", + "shared/drivers/p_serial_mgr.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "shared/drivers/p_serial_mgr.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_rcc_ex.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_rcc_ex.lst", + "-o", + "build/stm32l4xx_hal_rcc_ex.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal.lst", + "-o", + "build/stm32l4xx_hal.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_tim.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_tim.lst", + "-o", + "build/stm32l4xx_hal_tim.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_i2c_ex.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_i2c_ex.lst", + "-o", + "build/stm32l4xx_hal_i2c_ex.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_dma_ex.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_dma_ex.lst", + "-o", + "build/stm32l4xx_hal_dma_ex.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/motor_controller.d", + "-Wa,-a,-ad,-alms=build/motor_controller.lst", + "-o", + "build/motor_controller.o", + "shared/devices/motor_controller.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "shared/devices/motor_controller.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_gpio.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_gpio.lst", + "-o", + "build/stm32l4xx_hal_gpio.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_msp.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_msp.lst", + "-o", + "build/stm32l4xx_hal_msp.o", + "Core/Src/stm32l4xx_hal_msp.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Core/Src/stm32l4xx_hal_msp.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_flash_ex.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_flash_ex.lst", + "-o", + "build/stm32l4xx_hal_flash_ex.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_it.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_it.lst", + "-o", + "build/stm32l4xx_it.o", + "Core/Src/stm32l4xx_it.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Core/Src/stm32l4xx_it.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_flash_ramfunc.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_flash_ramfunc.lst", + "-o", + "build/stm32l4xx_hal_flash_ramfunc.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_cortex.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_cortex.lst", + "-o", + "build/stm32l4xx_hal_cortex.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_pwr_ex.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_pwr_ex.lst", + "-o", + "build/stm32l4xx_hal_pwr_ex.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_tim_ex.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_tim_ex.lst", + "-o", + "build/stm32l4xx_hal_tim_ex.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_pwr.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_pwr.lst", + "-o", + "build/stm32l4xx_hal_pwr.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/system_stm32l4xx.d", + "-Wa,-a,-ad,-alms=build/system_stm32l4xx.lst", + "-o", + "build/system_stm32l4xx.o", + "Core/Src/system_stm32l4xx.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Core/Src/system_stm32l4xx.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_rcc.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_rcc.lst", + "-o", + "build/stm32l4xx_hal_rcc.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_flash.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_flash.lst", + "-o", + "build/stm32l4xx_hal_flash.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_uart.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_uart.lst", + "-o", + "build/stm32l4xx_hal_uart.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/putil.d", + "-Wa,-a,-ad,-alms=build/putil.lst", + "-o", + "build/putil.o", + "shared/util/putil.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "shared/util/putil.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_uart_ex.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_uart_ex.lst", + "-o", + "build/stm32l4xx_hal_uart_ex.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/main.d", + "-Wa,-a,-ad,-alms=build/main.lst", + "-o", + "build/main.o", + "Core/Src/main.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Core/Src/main.c" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-x", + "assembler-with-cpp", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/startup_stm32l432xx.d", + "-o", + "build/startup_stm32l432xx.o", + "startup_stm32l432xx.s" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "startup_stm32l432xx.s" + }, + { + "arguments": [ + "arm-none-eabi-gcc", + "-c", + "-mcpu=cortex-m4", + "-mthumb", + "-mfpu=fpv4-sp-d16", + "-mfloat-abi=hard", + "-DUSE_HAL_DRIVER", + "-DSTM32L432xx", + "-ICore/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc", + "-IDrivers/STM32L4xx_HAL_Driver/Inc/Legacy", + "-IDrivers/CMSIS/Device/ST/STM32L4xx/Include", + "-IDrivers/CMSIS/Include", + "-Ishared", + "-Ishared/devices", + "-Ishared/drivers", + "-Ishared/util", + "-IPenguinBuffer", + "-O0", + "-Wall", + "-fdata-sections", + "-ffunction-sections", + "-g3", + "-gdwarf-2", + "-D_DEBUG", + "-MFbuild/stm32l4xx_hal_exti.d", + "-Wa,-a,-ad,-alms=build/stm32l4xx_hal_exti.lst", + "-o", + "build/stm32l4xx_hal_exti.o", + "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c" + ], + "directory": "/storage/Shared/Projects/Penguinator/motor_controller", + "file": "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c" + } +] \ No newline at end of file diff --git a/gdb.txt b/gdb.txt index 8d31134..0279b52 100644 --- a/gdb.txt +++ b/gdb.txt @@ -19546,3 +19546,7631 @@ A debugging session is active. Quit anyway? (y or n) [answered Y; input not from terminal] [Inferior 1 (Remote target) detached] +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x800421c + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 + 0x080014b4 main+104 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014ac primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 // HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x080014ac in main+96 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x080014ac in main+96 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x95f8 lma 0x80001c0 +Loading section .rodata, size 0x488 lma 0x80097b8 +Loading section .ARM, size 0x8 lma 0x8009c40 +Loading section .init_array, size 0x8 lma 0x8009c48 +Loading section .fini_array, size 0x8 lma 0x8009c50 +Loading section .data, size 0x9a8 lma 0x8009c58 +Start address 0x08004250, load size 42448 +Transfer rate: 29 KB/sec, 4716 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +generic_debug.gdb:5: Error in sourced command file: +Remote connection closed +generic_debug.gdb:5: Error in sourced command file: +Remote connection closed +0x0800417c in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:52 +52 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ + 0x08004174 p_serial_mgr_service+0 ldr r3, [pc, #136] ; (0x8004200 ) + 0x08004176 p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004178 p_serial_mgr_service+4 cmp r3, #1 + 0x0800417a p_serial_mgr_service+6 beq.n 0x800417e + 0x0800417c p_serial_mgr_service+8 bx lr + 0x0800417e p_serial_mgr_service+10 push {r4, lr} + 0x08004180 p_serial_mgr_service+12 ldr r3, [pc, #128] ; (0x8004204 ) + 0x08004182 p_serial_mgr_service+14 ldrb r3, [r3, #0] + 0x08004184 p_serial_mgr_service+16 add.w r3, r3, r3, lsl #7 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x0800417c primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 42 } + 43 } + 44 + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x0800417c in p_serial_mgr_service+8 at shared/drivers/p_serial_mgr.c:52 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x0800417c in p_serial_mgr_service+8 at shared/drivers/p_serial_mgr.c:52 +### Variables ####################################################################################################### +##################################################################################################################### +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +target halted due to debug-request, current mode: Thread +xPSR: 0x01000000 pc: 0x08004250 msp: 0x20010000 +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x95f8 lma 0x80001c0 +Loading section .rodata, size 0x488 lma 0x80097b8 +Loading section .ARM, size 0x8 lma 0x8009c40 +Loading section .init_array, size 0x8 lma 0x8009c48 +Loading section .fini_array, size 0x8 lma 0x8009c50 +Loading section .data, size 0x9a8 lma 0x8009c58 +Start address 0x08004250, load size 42448 +Transfer rate: 29 KB/sec, 4716 bytes/write. +Breakpoint 1 at 0x8004116: file shared/drivers/p_serial_mgr.c, line 35. +Note: automatically using hardware breakpoints for read-only addresses. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# + +Breakpoint 1, UART1_RxCpltCallback (huart=0x20000aa8 ) at shared/drivers/p_serial_mgr.c:35 +35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) +### Assembly ######################################################################################################## +~ +~ +~ +~ + 0x08004114 UART1_RxCpltCallback+0 push {r3, lr} +!0x08004116 UART1_RxCpltCallback+2 ldr r3, [pc, #56] ; (0x8004150 ) + 0x08004118 UART1_RxCpltCallback+4 ldrb r3, [r3, #0] + 0x0800411a UART1_RxCpltCallback+6 cbnz r3, 0x800412e + 0x0800411c UART1_RxCpltCallback+8 ldr r3, [pc, #52] ; (0x8004154 ) + 0x0800411e UART1_RxCpltCallback+10 ldrb r3, [r3, #0] +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00004001 r10 0x00000000 pc 0x08004116 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000035 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x08004115 r8 0x00000000 sp 0x2000ff50 msp 0x2000ff50 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x0800338b psp 0x00000000 +### Source ########################################################################################################## + 25 SS_START = 1, // get start byte, interrupt after 4 more bytes + 26 } serial_state_t; + 27 + 28 static UART_HandleTypeDef *_serial_huart_inst = NULL; + 29 + 30 static uint8_t rxc = '\0'; + 31 static serial_state_t sstate = SS_IDLE; + 32 + 33 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 34 { +!35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 36 { + 37 sstate = SS_START; + 38 } + 39 else + 40 { + 41 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 42 } + 43 } + 44 +### Stack ########################################################################################################### +[0] from 0x08004116 in UART1_RxCpltCallback+2 at shared/drivers/p_serial_mgr.c:35 +[1] from 0x0800338a in UART_RxISR_8BIT+130 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2347 +[3] from 0x080014f0 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x08003f4a in UART_Start_Receive_IT+154 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3685 +[6] from 0x08003fcc in HAL_UART_Receive_IT+68 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1440 +[7] from 0x0800423c in p_serial_mgr_start+32 at shared/drivers/p_serial_mgr.c:69 +[8] from 0x080014a8 in main+92 at Core/Src/main.c:132 +### Threads ######################################################################################################### +[1] id 0 from 0x08004116 in UART1_RxCpltCallback+2 at shared/drivers/p_serial_mgr.c:35 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +##################################################################################################################### +$1 = 255 '\377' +$2 = 0xff +Continuing. +### Output/messages ################################################################################################# +halted: PC: 0x08004118 + +Breakpoint 1, UART1_RxCpltCallback (huart=0x20000aa8 ) at shared/drivers/p_serial_mgr.c:35 +35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) +### Assembly ######################################################################################################## +~ +~ +~ +~ + 0x08004114 UART1_RxCpltCallback+0 push {r3, lr} +!0x08004116 UART1_RxCpltCallback+2 ldr r3, [pc, #56] ; (0x8004150 ) + 0x08004118 UART1_RxCpltCallback+4 ldrb r3, [r3, #0] + 0x0800411a UART1_RxCpltCallback+6 cbnz r3, 0x800412e + 0x0800411c UART1_RxCpltCallback+8 ldr r3, [pc, #52] ; (0x8004154 ) + 0x0800411e UART1_RxCpltCallback+10 ldrb r3, [r3, #0] +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = 255 '\377' +$$0 = 255 '\377' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00004001 r10 0x00000000 pc 0x08004116 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000035 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x08004115 r8 0x00000000 sp 0x2000ff68 msp 0x2000ff68 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x0800338b psp 0x00000000 +### Source ########################################################################################################## + 25 SS_START = 1, // get start byte, interrupt after 4 more bytes + 26 } serial_state_t; + 27 + 28 static UART_HandleTypeDef *_serial_huart_inst = NULL; + 29 + 30 static uint8_t rxc = '\0'; + 31 static serial_state_t sstate = SS_IDLE; + 32 + 33 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 34 { +!35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 36 { + 37 sstate = SS_START; + 38 } + 39 else + 40 { + 41 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 42 } + 43 } + 44 +### Stack ########################################################################################################### +[0] from 0x08004116 in UART1_RxCpltCallback+2 at shared/drivers/p_serial_mgr.c:35 +[1] from 0x0800338a in UART_RxISR_8BIT+130 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2347 +[3] from 0x080014f0 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x0800417a in p_serial_mgr_service+6 at shared/drivers/p_serial_mgr.c:52 +[6] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004116 in UART1_RxCpltCallback+2 at shared/drivers/p_serial_mgr.c:35 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +##################################################################################################################### +$3 = 0x7e +Continuing. +### Output/messages ################################################################################################# +halted: PC: 0x08004118 + +Program received signal SIGINT, Interrupt. +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x800421c + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 + 0x080014b4 main+104 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 255 '\377' +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014ac primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 // HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x080014ac in main+96 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x080014ac in main+96 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080014a8 +141 p_serial_mgr_service(); +### Assembly ######################################################################################################## + 0x0800149a main+78 movs r2, #1 + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x800421c + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 255 '\377' +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014a8 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } + 149 // serial_pkt_t *pkt = NULL; + 150 // if ((pkt = p_serial_mgr_service()) != NULL) +### Stack ########################################################################################################### +[0] from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004174 +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:52 +52 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ +~ +~ + 0x08004174 p_serial_mgr_service+0 ldr r3, [pc, #136] ; (0x8004200 ) + 0x08004176 p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004178 p_serial_mgr_service+4 cmp r3, #1 + 0x0800417a p_serial_mgr_service+6 beq.n 0x800417e + 0x0800417c p_serial_mgr_service+8 bx lr +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 255 '\377' +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08004174 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 42 } + 43 } + 44 + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:52 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:52 +### Variables ####################################################################################################### +##################################################################################################################### +$4 = SS_IDLE +Continuing. +### Output/messages ################################################################################################# + +Program received signal SIGINT, Interrupt. +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x800421c + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 + 0x080014b4 main+104 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 255 '\377' +$$1 = 126 '~' +$$0 = SS_IDLE +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014ac primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 // HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x080014ac in main+96 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x080014ac in main+96 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# + +Breakpoint 1, UART1_RxCpltCallback (huart=0x20000aa8 ) at shared/drivers/p_serial_mgr.c:35 +35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) +### Assembly ######################################################################################################## +~ +~ +~ +~ + 0x08004114 UART1_RxCpltCallback+0 push {r3, lr} +!0x08004116 UART1_RxCpltCallback+2 ldr r3, [pc, #56] ; (0x8004150 ) + 0x08004118 UART1_RxCpltCallback+4 ldrb r3, [r3, #0] + 0x0800411a UART1_RxCpltCallback+6 cbnz r3, 0x800412e + 0x0800411c UART1_RxCpltCallback+8 ldr r3, [pc, #52] ; (0x8004154 ) + 0x0800411e UART1_RxCpltCallback+10 ldrb r3, [r3, #0] +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 255 '\377' +$$1 = 126 '~' +$$0 = SS_IDLE +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00004001 r10 0x00000000 pc 0x08004116 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000035 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x08004115 r8 0x00000000 sp 0x2000ff68 msp 0x2000ff68 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x0800338b psp 0x00000000 +### Source ########################################################################################################## + 25 SS_START = 1, // get start byte, interrupt after 4 more bytes + 26 } serial_state_t; + 27 + 28 static UART_HandleTypeDef *_serial_huart_inst = NULL; + 29 + 30 static uint8_t rxc = '\0'; + 31 static serial_state_t sstate = SS_IDLE; + 32 + 33 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 34 { +!35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 36 { + 37 sstate = SS_START; + 38 } + 39 else + 40 { + 41 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 42 } + 43 } + 44 +### Stack ########################################################################################################### +[0] from 0x08004116 in UART1_RxCpltCallback+2 at shared/drivers/p_serial_mgr.c:35 +[1] from 0x0800338a in UART_RxISR_8BIT+130 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2347 +[3] from 0x080014f0 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004116 in UART1_RxCpltCallback+2 at shared/drivers/p_serial_mgr.c:35 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +##################################################################################################################### +$5 = 0x7e +### Output/messages ################################################################################################# +halted: PC: 0x08004118 +halted: PC: 0x0800411a +halted: PC: 0x0800411c +halted: PC: 0x0800411e +halted: PC: 0x08004120 +halted: PC: 0x08004124 +halted: PC: 0x08004126 +halted: PC: 0x08004128 +halted: PC: 0x0800412a +halted: PC: 0x0800412c +halted: PC: 0x08004148 +37 sstate = SS_START; +### Assembly ######################################################################################################## + 0x0800413c UART1_RxCpltCallback+40 add r1, r3 + 0x0800413e UART1_RxCpltCallback+42 ldr r3, [pc, #28] ; (0x800415c ) + 0x08004140 UART1_RxCpltCallback+44 ldr r0, [r3, #0] + 0x08004142 UART1_RxCpltCallback+46 bl 0x8003f88 + 0x08004146 UART1_RxCpltCallback+50 pop {r3, pc} + 0x08004148 UART1_RxCpltCallback+52 ldr r3, [pc, #4] ; (0x8004150 ) + 0x0800414a UART1_RxCpltCallback+54 movs r2, #1 + 0x0800414c UART1_RxCpltCallback+56 strb r2, [r3, #0] + 0x0800414e UART1_RxCpltCallback+58 b.n 0x8004146 + 0x08004150 UART1_RxCpltCallback+60 movs r0, #80 ; 0x50 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00004001 r10 0x00000000 pc 0x08004148 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000035 basepri 0x00 + r2 0x00000000 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x0000007e r8 0x00000000 sp 0x2000ff68 msp 0x2000ff68 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x0800338b psp 0x00000000 +### Source ########################################################################################################## + 27 + 28 static UART_HandleTypeDef *_serial_huart_inst = NULL; + 29 + 30 static uint8_t rxc = '\0'; + 31 static serial_state_t sstate = SS_IDLE; + 32 + 33 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 34 { +!35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 36 { + 37 sstate = SS_START; + 38 } + 39 else + 40 { + 41 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 42 } + 43 } + 44 + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { +### Stack ########################################################################################################### +[0] from 0x08004148 in UART1_RxCpltCallback+52 at shared/drivers/p_serial_mgr.c:37 +[1] from 0x0800338a in UART_RxISR_8BIT+130 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2347 +[3] from 0x080014f0 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004148 in UART1_RxCpltCallback+52 at shared/drivers/p_serial_mgr.c:37 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x0800414a +halted: PC: 0x0800414c +halted: PC: 0x0800414e +halted: PC: 0x08004146 +halted: PC: 0x0800338a +halted: PC: 0x08003320 +halted: PC: 0x080034dc +HAL_UART_IRQHandler (huart=0x20000aa8 ) at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2349 +2349 return; +### Assembly ######################################################################################################## + 0x080034d2 HAL_UART_IRQHandler+98 ldr r3, [r4, #100] ; 0x64 + 0x080034d4 HAL_UART_IRQHandler+100 cmp r3, #0 + 0x080034d6 HAL_UART_IRQHandler+102 beq.n 0x80034d0 + 0x080034d8 HAL_UART_IRQHandler+104 mov r0, r4 + 0x080034da HAL_UART_IRQHandler+106 blx r3 + 0x080034dc HAL_UART_IRQHandler+108 b.n 0x80034d0 + 0x080034de HAL_UART_IRQHandler+110 tst.w r3, #1 + 0x080034e2 HAL_UART_IRQHandler+114 beq.n 0x80034f8 + 0x080034e4 HAL_UART_IRQHandler+116 tst.w r0, #256 ; 0x100 + 0x080034e8 HAL_UART_IRQHandler+120 beq.n 0x80034f8 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00004001 r10 0x00000000 pc 0x080034dc primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x21000035 basepri 0x00 + r2 0x00000001 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x08003309 r8 0x00000000 sp 0x2000ff78 msp 0x2000ff78 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x0800338b psp 0x00000000 +### Source ########################################################################################################## + 2339 || ((cr3its & USART_CR3_RXFTIE) != 0U))) + 2340 #else + 2341 if (((isrflags & USART_ISR_RXNE) != 0U) + 2342 && ((cr1its & USART_CR1_RXNEIE) != 0U)) + 2343 #endif /* USART_CR1_FIFOEN */ + 2344 { + 2345 if (huart->RxISR != NULL) + 2346 { + 2347 huart->RxISR(huart); + 2348 } + 2349 return; + 2350 } + 2351 } + 2352 + 2353 /* If some errors occur */ + 2354 #if defined(USART_CR1_FIFOEN) + 2355 if ((errorflags != 0U) + 2356 && ((((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U) + 2357 || ((cr1its & (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U)))) + 2358 #else +### Stack ########################################################################################################### +[0] from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2349 +[1] from 0x080014f0 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[2] from 0xffffffe9 +[3] from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2349 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +loc isrflags = , cr1its = , cr3its = 16385, errorflags = , errorcode = +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080034d0 +halted: PC: 0x080014f0 +halted: PC: 0x080014a8 +main () at Core/Src/main.c:141 +141 p_serial_mgr_service(); +### Assembly ######################################################################################################## + 0x0800149a main+78 movs r2, #1 + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x800421c + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014a8 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } + 149 // serial_pkt_t *pkt = NULL; + 150 // if ((pkt = p_serial_mgr_service()) != NULL) +### Stack ########################################################################################################### +[0] from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004174 +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:52 +52 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ +~ +~ + 0x08004174 p_serial_mgr_service+0 ldr r3, [pc, #136] ; (0x8004200 ) + 0x08004176 p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004178 p_serial_mgr_service+4 cmp r3, #1 + 0x0800417a p_serial_mgr_service+6 beq.n 0x800417e + 0x0800417c p_serial_mgr_service+8 bx lr +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08004174 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 42 } + 43 } + 44 + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:52 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:52 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004176 +halted: PC: 0x08004178 +halted: PC: 0x0800417a +halted: PC: 0x0800417e +halted: PC: 0x08004180 +54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); +### Assembly ######################################################################################################## + 0x08004176 p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004178 p_serial_mgr_service+4 cmp r3, #1 + 0x0800417a p_serial_mgr_service+6 beq.n 0x800417e + 0x0800417c p_serial_mgr_service+8 bx lr + 0x0800417e p_serial_mgr_service+10 push {r4, lr} + 0x08004180 p_serial_mgr_service+12 ldr r3, [pc, #128] ; (0x8004204 ) + 0x08004182 p_serial_mgr_service+14 ldrb r3, [r3, #0] + 0x08004184 p_serial_mgr_service+16 add.w r3, r3, r3, lsl #7 + 0x08004188 p_serial_mgr_service+20 lsls r1, r3, #2 + 0x0800418a p_serial_mgr_service+22 adds r1, #1 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08004180 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000001 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 44 + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } +### Stack ########################################################################################################### +[0] from 0x08004180 in p_serial_mgr_service+12 at shared/drivers/p_serial_mgr.c:54 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004180 in p_serial_mgr_service+12 at shared/drivers/p_serial_mgr.c:54 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004182 +halted: PC: 0x08004184 +halted: PC: 0x08004188 +halted: PC: 0x0800418a +halted: PC: 0x0800418c +halted: PC: 0x0800418e +halted: PC: 0x08004192 +halted: PC: 0x08004194 +halted: PC: 0x08004196 +halted: PC: 0x08004198 +halted: PC: 0x0800419a +halted: PC: 0x08003c9a +55 for (int ind = 0; ind < 24; ind++) +### Assembly ######################################################################################################## + 0x08004192 p_serial_mgr_service+30 ldr r0, [pc, #116] ; (0x8004208 ) + 0x08004194 p_serial_mgr_service+32 add r1, r0 + 0x08004196 p_serial_mgr_service+34 ldr r0, [pc, #116] ; (0x800420c ) + 0x08004198 p_serial_mgr_service+36 ldr r0, [r0, #0] + 0x0800419a p_serial_mgr_service+38 bl 0x8003c9a + 0x0800419e p_serial_mgr_service+42 movs r4, #0 + 0x080041a0 p_serial_mgr_service+44 b.n 0x80041bc + 0x080041a2 p_serial_mgr_service+46 ldr r3, [pc, #96] ; (0x8004204 ) + 0x080041a4 p_serial_mgr_service+48 ldrb r3, [r3, #0] + 0x080041a6 p_serial_mgr_service+50 add.w r3, r3, r3, lsl #7 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000003 r5 0x00000000 r10 0x00000000 pc 0x0800419e primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x21000000 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x000007b8 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x08003b1f psp 0x00000000 +### Source ########################################################################################################## + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } +### Stack ########################################################################################################### +[0] from 0x0800419e in p_serial_mgr_service+42 at shared/drivers/p_serial_mgr.c:55 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x0800419e in p_serial_mgr_service+42 at shared/drivers/p_serial_mgr.c:55 +### Variables ####################################################################################################### +loc ind = 0 +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041a0 +halted: PC: 0x080041bc +halted: PC: 0x080041be +halted: PC: 0x080041a2 +57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); +### Assembly ######################################################################################################## + 0x08004196 p_serial_mgr_service+34 ldr r0, [pc, #116] ; (0x800420c ) + 0x08004198 p_serial_mgr_service+36 ldr r0, [r0, #0] + 0x0800419a p_serial_mgr_service+38 bl 0x8003c9a + 0x0800419e p_serial_mgr_service+42 movs r4, #0 + 0x080041a0 p_serial_mgr_service+44 b.n 0x80041bc + 0x080041a2 p_serial_mgr_service+46 ldr r3, [pc, #96] ; (0x8004204 ) + 0x080041a4 p_serial_mgr_service+48 ldrb r3, [r3, #0] + 0x080041a6 p_serial_mgr_service+50 add.w r3, r3, r3, lsl #7 + 0x080041aa p_serial_mgr_service+54 lsls r2, r3, #2 + 0x080041ac p_serial_mgr_service+56 ldr r3, [pc, #88] ; (0x8004208 ) +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000003 r5 0x00000000 r10 0x00000000 pc 0x080041a2 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x000007b8 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000000 r9 0x00000000 lr 0x08003b1f psp 0x00000000 +### Source ########################################################################################################## + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } + 65 + 66 void p_serial_mgr_start() +### Stack ########################################################################################################### +[0] from 0x080041a2 in p_serial_mgr_service+46 at shared/drivers/p_serial_mgr.c:57 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041a2 in p_serial_mgr_service+46 at shared/drivers/p_serial_mgr.c:57 +### Variables ####################################################################################################### +loc ind = 0 +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041a4 +halted: PC: 0x080041a6 +halted: PC: 0x080041aa +halted: PC: 0x080041ac +halted: PC: 0x080041ae +halted: PC: 0x080041b0 +halted: PC: 0x080041b2 +halted: PC: 0x080041b4 +halted: PC: 0x080041b6 +halted: PC: 0x08004098 +55 for (int ind = 0; ind < 24; ind++) +### Assembly ######################################################################################################## + 0x080041ae p_serial_mgr_service+58 add r3, r2 + 0x080041b0 p_serial_mgr_service+60 ldrb r2, [r3, r4] + 0x080041b2 p_serial_mgr_service+62 mov r1, r4 + 0x080041b4 p_serial_mgr_service+64 ldr r0, [pc, #88] ; (0x8004210 ) + 0x080041b6 p_serial_mgr_service+66 bl 0x8004098 + 0x080041ba p_serial_mgr_service+70 adds r4, #1 + 0x080041bc p_serial_mgr_service+72 cmp r4, #23 + 0x080041be p_serial_mgr_service+74 ble.n 0x80041a2 + 0x080041c0 p_serial_mgr_service+76 ldr r0, [pc, #80] ; (0x8004214 ) + 0x080041c2 p_serial_mgr_service+78 bl 0x8004098 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080041ba primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x006000d0 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000020 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000000 r9 0x00000000 lr 0x080041bb psp 0x00000000 +### Source ########################################################################################################## + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } +### Stack ########################################################################################################### +[0] from 0x080041ba in p_serial_mgr_service+70 at shared/drivers/p_serial_mgr.c:55 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041ba in p_serial_mgr_service+70 at shared/drivers/p_serial_mgr.c:55 +### Variables ####################################################################################################### +loc ind = 0 +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041bc +halted: PC: 0x080041be +halted: PC: 0x080041a2 +57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); +### Assembly ######################################################################################################## + 0x08004196 p_serial_mgr_service+34 ldr r0, [pc, #116] ; (0x800420c ) + 0x08004198 p_serial_mgr_service+36 ldr r0, [r0, #0] + 0x0800419a p_serial_mgr_service+38 bl 0x8003c9a + 0x0800419e p_serial_mgr_service+42 movs r4, #0 + 0x080041a0 p_serial_mgr_service+44 b.n 0x80041bc + 0x080041a2 p_serial_mgr_service+46 ldr r3, [pc, #96] ; (0x8004204 ) + 0x080041a4 p_serial_mgr_service+48 ldrb r3, [r3, #0] + 0x080041a6 p_serial_mgr_service+50 add.w r3, r3, r3, lsl #7 + 0x080041aa p_serial_mgr_service+54 lsls r2, r3, #2 + 0x080041ac p_serial_mgr_service+56 ldr r3, [pc, #88] ; (0x8004208 ) +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080041a2 primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x006000d0 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000020 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000001 r9 0x00000000 lr 0x080041bb psp 0x00000000 +### Source ########################################################################################################## + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } + 65 + 66 void p_serial_mgr_start() +### Stack ########################################################################################################### +[0] from 0x080041a2 in p_serial_mgr_service+46 at shared/drivers/p_serial_mgr.c:57 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041a2 in p_serial_mgr_service+46 at shared/drivers/p_serial_mgr.c:57 +### Variables ####################################################################################################### +loc ind = 1 +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041a4 +halted: PC: 0x080041a6 +halted: PC: 0x080041aa +halted: PC: 0x080041ac +halted: PC: 0x080041ae +halted: PC: 0x080041b0 +halted: PC: 0x080041b2 +halted: PC: 0x080041b4 +halted: PC: 0x080041b6 +halted: PC: 0x08004098 +55 for (int ind = 0; ind < 24; ind++) +### Assembly ######################################################################################################## + 0x080041ae p_serial_mgr_service+58 add r3, r2 + 0x080041b0 p_serial_mgr_service+60 ldrb r2, [r3, r4] + 0x080041b2 p_serial_mgr_service+62 mov r1, r4 + 0x080041b4 p_serial_mgr_service+64 ldr r0, [pc, #88] ; (0x8004210 ) + 0x080041b6 p_serial_mgr_service+66 bl 0x8004098 + 0x080041ba p_serial_mgr_service+70 adds r4, #1 + 0x080041bc p_serial_mgr_service+72 cmp r4, #23 + 0x080041be p_serial_mgr_service+74 ble.n 0x80041a2 + 0x080041c0 p_serial_mgr_service+76 ldr r0, [pc, #80] ; (0x8004214 ) + 0x080041c2 p_serial_mgr_service+78 bl 0x8004098 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080041ba primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x006000d0 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000020 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000001 r9 0x00000000 lr 0x080041bb psp 0x00000000 +### Source ########################################################################################################## + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } +### Stack ########################################################################################################### +[0] from 0x080041ba in p_serial_mgr_service+70 at shared/drivers/p_serial_mgr.c:55 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041ba in p_serial_mgr_service+70 at shared/drivers/p_serial_mgr.c:55 +### Variables ####################################################################################################### +loc ind = 1 +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041bc +halted: PC: 0x080041be +halted: PC: 0x080041a2 +57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); +### Assembly ######################################################################################################## + 0x08004196 p_serial_mgr_service+34 ldr r0, [pc, #116] ; (0x800420c ) + 0x08004198 p_serial_mgr_service+36 ldr r0, [r0, #0] + 0x0800419a p_serial_mgr_service+38 bl 0x8003c9a + 0x0800419e p_serial_mgr_service+42 movs r4, #0 + 0x080041a0 p_serial_mgr_service+44 b.n 0x80041bc + 0x080041a2 p_serial_mgr_service+46 ldr r3, [pc, #96] ; (0x8004204 ) + 0x080041a4 p_serial_mgr_service+48 ldrb r3, [r3, #0] + 0x080041a6 p_serial_mgr_service+50 add.w r3, r3, r3, lsl #7 + 0x080041aa p_serial_mgr_service+54 lsls r2, r3, #2 + 0x080041ac p_serial_mgr_service+56 ldr r3, [pc, #88] ; (0x8004208 ) +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080041a2 primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x006000d0 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000020 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000002 r9 0x00000000 lr 0x080041bb psp 0x00000000 +### Source ########################################################################################################## + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } + 65 + 66 void p_serial_mgr_start() +### Stack ########################################################################################################### +[0] from 0x080041a2 in p_serial_mgr_service+46 at shared/drivers/p_serial_mgr.c:57 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041a2 in p_serial_mgr_service+46 at shared/drivers/p_serial_mgr.c:57 +### Variables ####################################################################################################### +loc ind = 2 +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041a4 +halted: PC: 0x080041a6 +halted: PC: 0x080041aa +halted: PC: 0x080041ac +halted: PC: 0x080041ae +halted: PC: 0x080041b0 +halted: PC: 0x080041b2 +halted: PC: 0x080041b4 +halted: PC: 0x080041b6 +halted: PC: 0x08004098 +55 for (int ind = 0; ind < 24; ind++) +### Assembly ######################################################################################################## + 0x080041ae p_serial_mgr_service+58 add r3, r2 + 0x080041b0 p_serial_mgr_service+60 ldrb r2, [r3, r4] + 0x080041b2 p_serial_mgr_service+62 mov r1, r4 + 0x080041b4 p_serial_mgr_service+64 ldr r0, [pc, #88] ; (0x8004210 ) + 0x080041b6 p_serial_mgr_service+66 bl 0x8004098 + 0x080041ba p_serial_mgr_service+70 adds r4, #1 + 0x080041bc p_serial_mgr_service+72 cmp r4, #23 + 0x080041be p_serial_mgr_service+74 ble.n 0x80041a2 + 0x080041c0 p_serial_mgr_service+76 ldr r0, [pc, #80] ; (0x8004214 ) + 0x080041c2 p_serial_mgr_service+78 bl 0x8004098 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080041ba primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x006000d0 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000020 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000002 r9 0x00000000 lr 0x080041bb psp 0x00000000 +### Source ########################################################################################################## + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } +### Stack ########################################################################################################### +[0] from 0x080041ba in p_serial_mgr_service+70 at shared/drivers/p_serial_mgr.c:55 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041ba in p_serial_mgr_service+70 at shared/drivers/p_serial_mgr.c:55 +### Variables ####################################################################################################### +loc ind = 2 +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041bc +halted: PC: 0x080041be +halted: PC: 0x080041a2 +57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); +### Assembly ######################################################################################################## + 0x08004196 p_serial_mgr_service+34 ldr r0, [pc, #116] ; (0x800420c ) + 0x08004198 p_serial_mgr_service+36 ldr r0, [r0, #0] + 0x0800419a p_serial_mgr_service+38 bl 0x8003c9a + 0x0800419e p_serial_mgr_service+42 movs r4, #0 + 0x080041a0 p_serial_mgr_service+44 b.n 0x80041bc + 0x080041a2 p_serial_mgr_service+46 ldr r3, [pc, #96] ; (0x8004204 ) + 0x080041a4 p_serial_mgr_service+48 ldrb r3, [r3, #0] + 0x080041a6 p_serial_mgr_service+50 add.w r3, r3, r3, lsl #7 + 0x080041aa p_serial_mgr_service+54 lsls r2, r3, #2 + 0x080041ac p_serial_mgr_service+56 ldr r3, [pc, #88] ; (0x8004208 ) +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080041a2 primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x006000d0 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000020 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000003 r9 0x00000000 lr 0x080041bb psp 0x00000000 +### Source ########################################################################################################## + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } + 65 + 66 void p_serial_mgr_start() +### Stack ########################################################################################################### +[0] from 0x080041a2 in p_serial_mgr_service+46 at shared/drivers/p_serial_mgr.c:57 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041a2 in p_serial_mgr_service+46 at shared/drivers/p_serial_mgr.c:57 +### Variables ####################################################################################################### +loc ind = 3 +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041a4 +halted: PC: 0x080041a6 +halted: PC: 0x080041aa +halted: PC: 0x080041ac +halted: PC: 0x080041ae +halted: PC: 0x080041b0 +halted: PC: 0x080041b2 +halted: PC: 0x080041b4 +halted: PC: 0x080041b6 +halted: PC: 0x08004098 +55 for (int ind = 0; ind < 24; ind++) +### Assembly ######################################################################################################## + 0x080041ae p_serial_mgr_service+58 add r3, r2 + 0x080041b0 p_serial_mgr_service+60 ldrb r2, [r3, r4] + 0x080041b2 p_serial_mgr_service+62 mov r1, r4 + 0x080041b4 p_serial_mgr_service+64 ldr r0, [pc, #88] ; (0x8004210 ) + 0x080041b6 p_serial_mgr_service+66 bl 0x8004098 + 0x080041ba p_serial_mgr_service+70 adds r4, #1 + 0x080041bc p_serial_mgr_service+72 cmp r4, #23 + 0x080041be p_serial_mgr_service+74 ble.n 0x80041a2 + 0x080041c0 p_serial_mgr_service+76 ldr r0, [pc, #80] ; (0x8004214 ) + 0x080041c2 p_serial_mgr_service+78 bl 0x8004098 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080041ba primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x006000d0 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000020 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000003 r9 0x00000000 lr 0x080041bb psp 0x00000000 +### Source ########################################################################################################## + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } +### Stack ########################################################################################################### +[0] from 0x080041ba in p_serial_mgr_service+70 at shared/drivers/p_serial_mgr.c:55 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041ba in p_serial_mgr_service+70 at shared/drivers/p_serial_mgr.c:55 +### Variables ####################################################################################################### +loc ind = 3 +##################################################################################################################### +Run till exit from #0 p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:55 +### Output/messages ################################################################################################# +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x800421c + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 + 0x080014b4 main+104 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014ac primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x20000c20 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x08003fcd psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 // HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x080014ac in main+96 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x080014ac in main+96 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080014a8 +141 p_serial_mgr_service(); +### Assembly ######################################################################################################## + 0x0800149a main+78 movs r2, #1 + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x800421c + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014a8 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x20000c20 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x08003fcd psp 0x00000000 +### Source ########################################################################################################## + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } + 149 // serial_pkt_t *pkt = NULL; + 150 // if ((pkt = p_serial_mgr_service()) != NULL) +### Stack ########################################################################################################### +[0] from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004174 +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:52 +52 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ +~ +~ + 0x08004174 p_serial_mgr_service+0 ldr r3, [pc, #136] ; (0x8004200 ) + 0x08004176 p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004178 p_serial_mgr_service+4 cmp r3, #1 + 0x0800417a p_serial_mgr_service+6 beq.n 0x800417e + 0x0800417c p_serial_mgr_service+8 bx lr +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08004174 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x20000c20 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 42 } + 43 } + 44 + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:52 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:52 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004176 +halted: PC: 0x08004178 +halted: PC: 0x0800417a +halted: PC: 0x0800417c +halted: PC: 0x080014ac +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x800421c + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 + 0x080014b4 main+104 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014ac primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 // HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x080014ac in main+96 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x080014ac in main+96 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +Continuing. +### Output/messages ################################################################################################# + +Program received signal SIGINT, Interrupt. +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x800421c + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 + 0x080014b4 main+104 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014ac primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 // HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x080014ac in main+96 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x080014ac in main+96 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# + +Program received signal SIGINT, Interrupt. +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:52 +52 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ +~ +~ + 0x08004174 p_serial_mgr_service+0 ldr r3, [pc, #136] ; (0x8004200 ) + 0x08004176 p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004178 p_serial_mgr_service+4 cmp r3, #1 + 0x0800417a p_serial_mgr_service+6 beq.n 0x800417e + 0x0800417c p_serial_mgr_service+8 bx lr +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08004174 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 42 } + 43 } + 44 + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { + 52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:52 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:52 +### Variables ####################################################################################################### +##################################################################################################################### +Breakpoint 2 at 0x8004174: file shared/drivers/p_serial_mgr.c, line 52. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 + +Program received signal SIGINT, Interrupt. +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:52 +52 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ +~ +~ +!0x08004174 p_serial_mgr_service+0 ldr r3, [pc, #136] ; (0x8004200 ) + 0x08004176 p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004178 p_serial_mgr_service+4 cmp r3, #1 + 0x0800417a p_serial_mgr_service+6 beq.n 0x800417e + 0x0800417c p_serial_mgr_service+8 bx lr +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08004174 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 42 } + 43 } + 44 + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { +!52 if (sstate == SS_START) + 53 { + 54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:52 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:52 +### Variables ####################################################################################################### +##################################################################################################################### +Breakpoint 3 at 0x8004180: file shared/drivers/p_serial_mgr.c, line 54. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 + +Breakpoint 3, p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:54 +54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); +### Assembly ######################################################################################################## + 0x08004176 p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004178 p_serial_mgr_service+4 cmp r3, #1 + 0x0800417a p_serial_mgr_service+6 beq.n 0x800417e + 0x0800417c p_serial_mgr_service+8 bx lr + 0x0800417e p_serial_mgr_service+10 push {r4, lr} +!0x08004180 p_serial_mgr_service+12 ldr r3, [pc, #128] ; (0x8004204 ) + 0x08004182 p_serial_mgr_service+14 ldrb r3, [r3, #0] + 0x08004184 p_serial_mgr_service+16 add.w r3, r3, r3, lsl #7 + 0x08004188 p_serial_mgr_service+20 lsls r1, r3, #2 + 0x0800418a p_serial_mgr_service+22 adds r1, #1 +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +[3] break at 0x08004180 in shared/drivers/p_serial_mgr.c:54 for p_serial_mgr.c:53 if sstate == SS_START hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08004180 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000001 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 44 + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { +!52 if (sstate == SS_START) + 53 { +!54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } +### Stack ########################################################################################################### +[0] from 0x08004180 in p_serial_mgr_service+12 at shared/drivers/p_serial_mgr.c:54 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004180 in p_serial_mgr_service+12 at shared/drivers/p_serial_mgr.c:54 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004182 +halted: PC: 0x08004184 +halted: PC: 0x08004188 +halted: PC: 0x0800418a +halted: PC: 0x0800418c +halted: PC: 0x0800418e +halted: PC: 0x08004192 +halted: PC: 0x08004194 +halted: PC: 0x08004196 +halted: PC: 0x08004198 +halted: PC: 0x0800419a +halted: PC: 0x08003c9a +55 for (int ind = 0; ind < 24; ind++) +### Assembly ######################################################################################################## + 0x08004192 p_serial_mgr_service+30 ldr r0, [pc, #116] ; (0x8004208 ) + 0x08004194 p_serial_mgr_service+32 add r1, r0 + 0x08004196 p_serial_mgr_service+34 ldr r0, [pc, #116] ; (0x800420c ) + 0x08004198 p_serial_mgr_service+36 ldr r0, [r0, #0] + 0x0800419a p_serial_mgr_service+38 bl 0x8003c9a + 0x0800419e p_serial_mgr_service+42 movs r4, #0 + 0x080041a0 p_serial_mgr_service+44 b.n 0x80041bc + 0x080041a2 p_serial_mgr_service+46 ldr r3, [pc, #96] ; (0x8004204 ) + 0x080041a4 p_serial_mgr_service+48 ldrb r3, [r3, #0] + 0x080041a6 p_serial_mgr_service+50 add.w r3, r3, r3, lsl #7 +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +[3] break at 0x08004180 in shared/drivers/p_serial_mgr.c:54 for p_serial_mgr.c:53 if sstate == SS_START hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000003 r5 0x00000000 r10 0x00000000 pc 0x0800419e primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x21000000 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000002 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x08003b1f psp 0x00000000 +### Source ########################################################################################################## + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { +!52 if (sstate == SS_START) + 53 { +!54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } +### Stack ########################################################################################################### +[0] from 0x0800419e in p_serial_mgr_service+42 at shared/drivers/p_serial_mgr.c:55 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x0800419e in p_serial_mgr_service+42 at shared/drivers/p_serial_mgr.c:55 +### Variables ####################################################################################################### +loc ind = 0 +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041a0 +halted: PC: 0x080041bc +halted: PC: 0x080041be +halted: PC: 0x080041a2 +57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); +### Assembly ######################################################################################################## + 0x08004196 p_serial_mgr_service+34 ldr r0, [pc, #116] ; (0x800420c ) + 0x08004198 p_serial_mgr_service+36 ldr r0, [r0, #0] + 0x0800419a p_serial_mgr_service+38 bl 0x8003c9a + 0x0800419e p_serial_mgr_service+42 movs r4, #0 + 0x080041a0 p_serial_mgr_service+44 b.n 0x80041bc + 0x080041a2 p_serial_mgr_service+46 ldr r3, [pc, #96] ; (0x8004204 ) + 0x080041a4 p_serial_mgr_service+48 ldrb r3, [r3, #0] + 0x080041a6 p_serial_mgr_service+50 add.w r3, r3, r3, lsl #7 + 0x080041aa p_serial_mgr_service+54 lsls r2, r3, #2 + 0x080041ac p_serial_mgr_service+56 ldr r3, [pc, #88] ; (0x8004208 ) +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +[3] break at 0x08004180 in shared/drivers/p_serial_mgr.c:54 for p_serial_mgr.c:53 if sstate == SS_START hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000003 r5 0x00000000 r10 0x00000000 pc 0x080041a2 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000002 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000000 r9 0x00000000 lr 0x08003b1f psp 0x00000000 +### Source ########################################################################################################## + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { +!52 if (sstate == SS_START) + 53 { +!54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } + 65 + 66 void p_serial_mgr_start() +### Stack ########################################################################################################### +[0] from 0x080041a2 in p_serial_mgr_service+46 at shared/drivers/p_serial_mgr.c:57 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041a2 in p_serial_mgr_service+46 at shared/drivers/p_serial_mgr.c:57 +### Variables ####################################################################################################### +loc ind = 0 +##################################################################################################################### +Run till exit from #0 p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:57 +### Output/messages ################################################################################################# +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x800421c + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 + 0x080014b4 main+104 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +[3] break at 0x08004180 in shared/drivers/p_serial_mgr.c:54 for p_serial_mgr.c:53 if sstate == SS_START hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014ac primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x20000c20 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x08003fcd psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 // HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x080014ac in main+96 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x080014ac in main+96 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 + +Breakpoint 3, p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:54 +54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); +### Assembly ######################################################################################################## + 0x08004176 p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004178 p_serial_mgr_service+4 cmp r3, #1 + 0x0800417a p_serial_mgr_service+6 beq.n 0x800417e + 0x0800417c p_serial_mgr_service+8 bx lr + 0x0800417e p_serial_mgr_service+10 push {r4, lr} +!0x08004180 p_serial_mgr_service+12 ldr r3, [pc, #128] ; (0x8004204 ) + 0x08004182 p_serial_mgr_service+14 ldrb r3, [r3, #0] + 0x08004184 p_serial_mgr_service+16 add.w r3, r3, r3, lsl #7 + 0x08004188 p_serial_mgr_service+20 lsls r1, r3, #2 + 0x0800418a p_serial_mgr_service+22 adds r1, #1 +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +[3] break at 0x08004180 in shared/drivers/p_serial_mgr.c:54 for p_serial_mgr.c:53 if sstate == SS_START hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08004180 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000001 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 44 + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { +!52 if (sstate == SS_START) + 53 { +!54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } +### Stack ########################################################################################################### +[0] from 0x08004180 in p_serial_mgr_service+12 at shared/drivers/p_serial_mgr.c:54 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004180 in p_serial_mgr_service+12 at shared/drivers/p_serial_mgr.c:54 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004182 +halted: PC: 0x08004184 +halted: PC: 0x08004188 +halted: PC: 0x0800418a +halted: PC: 0x0800418c +halted: PC: 0x0800418e +halted: PC: 0x08004192 +halted: PC: 0x08004194 +halted: PC: 0x08004196 +halted: PC: 0x08004198 +halted: PC: 0x0800419a +halted: PC: 0x08003c9a +55 for (int ind = 0; ind < 24; ind++) +### Assembly ######################################################################################################## + 0x08004192 p_serial_mgr_service+30 ldr r0, [pc, #116] ; (0x8004208 ) + 0x08004194 p_serial_mgr_service+32 add r1, r0 + 0x08004196 p_serial_mgr_service+34 ldr r0, [pc, #116] ; (0x800420c ) + 0x08004198 p_serial_mgr_service+36 ldr r0, [r0, #0] + 0x0800419a p_serial_mgr_service+38 bl 0x8003c9a + 0x0800419e p_serial_mgr_service+42 movs r4, #0 + 0x080041a0 p_serial_mgr_service+44 b.n 0x80041bc + 0x080041a2 p_serial_mgr_service+46 ldr r3, [pc, #96] ; (0x8004204 ) + 0x080041a4 p_serial_mgr_service+48 ldrb r3, [r3, #0] + 0x080041a6 p_serial_mgr_service+50 add.w r3, r3, r3, lsl #7 +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +[3] break at 0x08004180 in shared/drivers/p_serial_mgr.c:54 for p_serial_mgr.c:53 if sstate == SS_START hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000003 r5 0x00000000 r10 0x00000000 pc 0x0800419e primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x21000000 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000002 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x08003b1f psp 0x00000000 +### Source ########################################################################################################## + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { +!52 if (sstate == SS_START) + 53 { +!54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } +### Stack ########################################################################################################### +[0] from 0x0800419e in p_serial_mgr_service+42 at shared/drivers/p_serial_mgr.c:55 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x0800419e in p_serial_mgr_service+42 at shared/drivers/p_serial_mgr.c:55 +### Variables ####################################################################################################### +loc ind = 0 +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041a0 +halted: PC: 0x080041bc +halted: PC: 0x080041be +halted: PC: 0x080041a2 +57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); +### Assembly ######################################################################################################## + 0x08004196 p_serial_mgr_service+34 ldr r0, [pc, #116] ; (0x800420c ) + 0x08004198 p_serial_mgr_service+36 ldr r0, [r0, #0] + 0x0800419a p_serial_mgr_service+38 bl 0x8003c9a + 0x0800419e p_serial_mgr_service+42 movs r4, #0 + 0x080041a0 p_serial_mgr_service+44 b.n 0x80041bc + 0x080041a2 p_serial_mgr_service+46 ldr r3, [pc, #96] ; (0x8004204 ) + 0x080041a4 p_serial_mgr_service+48 ldrb r3, [r3, #0] + 0x080041a6 p_serial_mgr_service+50 add.w r3, r3, r3, lsl #7 + 0x080041aa p_serial_mgr_service+54 lsls r2, r3, #2 + 0x080041ac p_serial_mgr_service+56 ldr r3, [pc, #88] ; (0x8004208 ) +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +[3] break at 0x08004180 in shared/drivers/p_serial_mgr.c:54 for p_serial_mgr.c:53 if sstate == SS_START hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000003 r5 0x00000000 r10 0x00000000 pc 0x080041a2 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000002 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000000 r9 0x00000000 lr 0x08003b1f psp 0x00000000 +### Source ########################################################################################################## + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { +!52 if (sstate == SS_START) + 53 { +!54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } + 65 + 66 void p_serial_mgr_start() +### Stack ########################################################################################################### +[0] from 0x080041a2 in p_serial_mgr_service+46 at shared/drivers/p_serial_mgr.c:57 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041a2 in p_serial_mgr_service+46 at shared/drivers/p_serial_mgr.c:57 +### Variables ####################################################################################################### +loc ind = 0 +##################################################################################################################### +Argument required (a location). +### Output/messages ################################################################################################# +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:59 +59 PDEBUG("\n\n"); +### Assembly ######################################################################################################## + 0x080041b4 p_serial_mgr_service+64 ldr r0, [pc, #88] ; (0x8004210 ) + 0x080041b6 p_serial_mgr_service+66 bl 0x8004098 + 0x080041ba p_serial_mgr_service+70 adds r4, #1 + 0x080041bc p_serial_mgr_service+72 cmp r4, #23 + 0x080041be p_serial_mgr_service+74 ble.n 0x80041a2 + 0x080041c0 p_serial_mgr_service+76 ldr r0, [pc, #80] ; (0x8004214 ) + 0x080041c2 p_serial_mgr_service+78 bl 0x8004098 + 0x080041c6 p_serial_mgr_service+82 ldr r3, [pc, #56] ; (0x8004200 ) + 0x080041c8 p_serial_mgr_service+84 movs r2, #0 + 0x080041ca p_serial_mgr_service+86 strb r2, [r3, #0] +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +[3] break at 0x08004180 in shared/drivers/p_serial_mgr.c:54 for p_serial_mgr.c:53 if sstate == SS_START hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080041c0 primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x21000000 basepri 0x00 + r2 0x006000d0 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000020 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000018 r9 0x00000000 lr 0x080041bb psp 0x00000000 +### Source ########################################################################################################## + 49 } + 50 void p_serial_mgr_service(void) + 51 { +!52 if (sstate == SS_START) + 53 { +!54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } + 65 + 66 void p_serial_mgr_start() + 67 { + 68 sstate = SS_IDLE; +### Stack ########################################################################################################### +[0] from 0x080041c0 in p_serial_mgr_service+76 at shared/drivers/p_serial_mgr.c:59 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041c0 in p_serial_mgr_service+76 at shared/drivers/p_serial_mgr.c:59 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041c2 +halted: PC: 0x08004098 +60 sstate = SS_IDLE; +### Assembly ######################################################################################################## + 0x080041ba p_serial_mgr_service+70 adds r4, #1 + 0x080041bc p_serial_mgr_service+72 cmp r4, #23 + 0x080041be p_serial_mgr_service+74 ble.n 0x80041a2 + 0x080041c0 p_serial_mgr_service+76 ldr r0, [pc, #80] ; (0x8004214 ) + 0x080041c2 p_serial_mgr_service+78 bl 0x8004098 + 0x080041c6 p_serial_mgr_service+82 ldr r3, [pc, #56] ; (0x8004200 ) + 0x080041c8 p_serial_mgr_service+84 movs r2, #0 + 0x080041ca p_serial_mgr_service+86 strb r2, [r3, #0] + 0x080041cc p_serial_mgr_service+88 ldr r0, [pc, #52] ; (0x8004204 ) + 0x080041ce p_serial_mgr_service+90 ldrb r3, [r0, #0] +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +[3] break at 0x08004180 in shared/drivers/p_serial_mgr.c:54 for p_serial_mgr.c:53 if sstate == SS_START hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080041c6 primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x006000d0 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000020 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000018 r9 0x00000000 lr 0x080041c7 psp 0x00000000 +### Source ########################################################################################################## + 50 void p_serial_mgr_service(void) + 51 { +!52 if (sstate == SS_START) + 53 { +!54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } + 65 + 66 void p_serial_mgr_start() + 67 { + 68 sstate = SS_IDLE; + 69 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); +### Stack ########################################################################################################### +[0] from 0x080041c6 in p_serial_mgr_service+82 at shared/drivers/p_serial_mgr.c:60 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041c6 in p_serial_mgr_service+82 at shared/drivers/p_serial_mgr.c:60 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041c8 +halted: PC: 0x080041ca +halted: PC: 0x080041cc +61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Assembly ######################################################################################################## + 0x080041c0 p_serial_mgr_service+76 ldr r0, [pc, #80] ; (0x8004214 ) + 0x080041c2 p_serial_mgr_service+78 bl 0x8004098 + 0x080041c6 p_serial_mgr_service+82 ldr r3, [pc, #56] ; (0x8004200 ) + 0x080041c8 p_serial_mgr_service+84 movs r2, #0 + 0x080041ca p_serial_mgr_service+86 strb r2, [r3, #0] + 0x080041cc p_serial_mgr_service+88 ldr r0, [pc, #52] ; (0x8004204 ) + 0x080041ce p_serial_mgr_service+90 ldrb r3, [r0, #0] + 0x080041d0 p_serial_mgr_service+92 adds r3, #1 + 0x080041d2 p_serial_mgr_service+94 ldr r1, [pc, #68] ; (0x8004218 ) + 0x080041d4 p_serial_mgr_service+96 smull r2, r1, r1, r3 +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +[3] break at 0x08004180 in shared/drivers/p_serial_mgr.c:54 for p_serial_mgr.c:53 if sstate == SS_START hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080041cc primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x00000000 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x20002050 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000018 r9 0x00000000 lr 0x080041c7 psp 0x00000000 +### Source ########################################################################################################## + 51 { +!52 if (sstate == SS_START) + 53 { +!54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } + 65 + 66 void p_serial_mgr_start() + 67 { + 68 sstate = SS_IDLE; + 69 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 70 } +### Stack ########################################################################################################### +[0] from 0x080041cc in p_serial_mgr_service+88 at shared/drivers/p_serial_mgr.c:61 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041cc in p_serial_mgr_service+88 at shared/drivers/p_serial_mgr.c:61 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041ce +halted: PC: 0x080041d0 +halted: PC: 0x080041d2 +halted: PC: 0x080041d4 +halted: PC: 0x080041d8 +halted: PC: 0x080041dc +halted: PC: 0x080041e0 +halted: PC: 0x080041e2 +halted: PC: 0x080041e4 +halted: PC: 0x080041e6 +halted: PC: 0x080041e8 +62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); +### Assembly ######################################################################################################## + 0x080041dc p_serial_mgr_service+104 add.w r2, r2, r1, asr #2 + 0x080041e0 p_serial_mgr_service+108 lsls r1, r2, #1 + 0x080041e2 p_serial_mgr_service+110 subs r3, r3, r1 + 0x080041e4 p_serial_mgr_service+112 uxtb r3, r3 + 0x080041e6 p_serial_mgr_service+114 strb r3, [r0, #0] + 0x080041e8 p_serial_mgr_service+116 add.w r3, r3, r3, lsl #7 + 0x080041ec p_serial_mgr_service+120 lsls r1, r3, #2 + 0x080041ee p_serial_mgr_service+122 movs r2, #1 + 0x080041f0 p_serial_mgr_service+124 ldr r3, [pc, #20] ; (0x8004208 ) + 0x080041f2 p_serial_mgr_service+126 add r1, r3 +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +[3] break at 0x08004180 in shared/drivers/p_serial_mgr.c:54 for p_serial_mgr.c:53 if sstate == SS_START hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = SS_IDLE +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000c24 r5 0x00000000 r10 0x00000000 pc 0x080041e8 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x21000000 basepri 0x00 + r2 0x00000000 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000001 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000018 r9 0x00000000 lr 0x080041c7 psp 0x00000000 +### Source ########################################################################################################## +!52 if (sstate == SS_START) + 53 { +!54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 62 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 63 } + 64 } + 65 + 66 void p_serial_mgr_start() + 67 { + 68 sstate = SS_IDLE; + 69 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 70 } +~ +### Stack ########################################################################################################### +[0] from 0x080041e8 in p_serial_mgr_service+116 at shared/drivers/p_serial_mgr.c:62 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041e8 in p_serial_mgr_service+116 at shared/drivers/p_serial_mgr.c:62 +### Variables ####################################################################################################### +##################################################################################################################### +$6 = 1 '\001' +### Output/messages ################################################################################################# +halted: PC: 0x080041ec +halted: PC: 0x080041ee +halted: PC: 0x080041f0 +halted: PC: 0x080041f2 +halted: PC: 0x080041f4 +halted: PC: 0x080041f6 +halted: PC: 0x080041f8 +halted: PC: 0x08003f88 +halted: PC: 0x080014ac +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x800421c + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 + 0x080014b4 main+104 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +[3] break at 0x08004180 in shared/drivers/p_serial_mgr.c:54 for p_serial_mgr.c:53 if sstate == SS_START hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = SS_IDLE +$$1 = 126 '~' +$$0 = 1 '\001' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014ac primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x20000c20 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x08003fcd psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 // HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x080014ac in main+96 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x080014ac in main+96 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +Continuing. +### Output/messages ################################################################################################# +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 +halted: PC: 0x08004176 + +Program received signal SIGINT, Interrupt. +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:52 +52 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ +~ +~ +!0x08004174 p_serial_mgr_service+0 ldr r3, [pc, #136] ; (0x8004200 ) + 0x08004176 p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004178 p_serial_mgr_service+4 cmp r3, #1 + 0x0800417a p_serial_mgr_service+6 beq.n 0x800417e + 0x0800417c p_serial_mgr_service+8 bx lr +### Breakpoints ##################################################################################################### +[2] break at 0x08004174 in shared/drivers/p_serial_mgr.c:52 for p_serial_mgr.c:52 if sstate == SS_START +[3] break at 0x08004180 in shared/drivers/p_serial_mgr.c:54 for p_serial_mgr.c:53 if sstate == SS_START hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = SS_IDLE +$$1 = 126 '~' +$$0 = 1 '\001' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08004174 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 42 } + 43 } + 44 + 45 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 46 { + 47 _serial_huart_inst = huart; + 48 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 49 } + 50 void p_serial_mgr_service(void) + 51 { +!52 if (sstate == SS_START) + 53 { +!54 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 55 for (int ind = 0; ind < 24; ind++) + 56 { + 57 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 58 } + 59 PDEBUG("\n\n"); + 60 sstate = SS_IDLE; + 61 active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:52 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:52 +### Variables ####################################################################################################### +##################################################################################################################### +Detaching from program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf, Remote target +[Inferior 1 (Remote target) detached] +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:53 +53 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ +~ +~ + 0x08004174 p_serial_mgr_service+0 ldr r3, [pc, #136] ; (0x8004200 ) + 0x08004176 p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004178 p_serial_mgr_service+4 cmp r3, #1 + 0x0800417a p_serial_mgr_service+6 beq.n 0x800417e + 0x0800417c p_serial_mgr_service+8 bx lr +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08004174 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 43 } + 44 } + 45 + 46 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 47 { + 48 _serial_huart_inst = huart; + 49 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 50 } + 51 void p_serial_mgr_service(void) + 52 { + 53 if (sstate == SS_START) + 54 { + 55 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 56 for (int ind = 0; ind < 24; ind++) + 57 { + 58 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 59 } + 60 PDEBUG("\n\n"); + 61 sstate = SS_IDLE; + 62 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:53 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:53 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x95e0 lma 0x80001c0 +Loading section .rodata, size 0x488 lma 0x80097a0 +Loading section .ARM, size 0x8 lma 0x8009c28 +Loading section .init_array, size 0x8 lma 0x8009c30 +Loading section .fini_array, size 0x8 lma 0x8009c38 +Loading section .data, size 0x9a8 lma 0x8009c40 +Start address 0x08004234, load size 42424 +Transfer rate: 29 KB/sec, 4713 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x8004200 + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 + 0x080014b4 main+104 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014ac primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 // HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x080014ac in main+96 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x080014ac in main+96 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +target halted due to debug-request, current mode: Thread +xPSR: 0x01000000 pc: 0x08004234 msp: 0x20010000 +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x95e0 lma 0x80001c0 +Loading section .rodata, size 0x488 lma 0x80097a0 +Loading section .ARM, size 0x8 lma 0x8009c28 +Loading section .init_array, size 0x8 lma 0x8009c30 +Loading section .fini_array, size 0x8 lma 0x8009c38 +Loading section .data, size 0x9a8 lma 0x8009c40 +Start address 0x08004234, load size 42424 +Transfer rate: 29 KB/sec, 4713 bytes/write. +Breakpoint 1 at 0x8004116: file shared/drivers/p_serial_mgr.c, line 35. +Note: automatically using hardware breakpoints for read-only addresses. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# + +Breakpoint 1, UART1_RxCpltCallback (huart=0x20000aa8 ) at shared/drivers/p_serial_mgr.c:35 +35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) +### Assembly ######################################################################################################## +~ +~ +~ +~ + 0x08004114 UART1_RxCpltCallback+0 push {r3, lr} +!0x08004116 UART1_RxCpltCallback+2 ldr r3, [pc, #56] ; (0x8004150 ) + 0x08004118 UART1_RxCpltCallback+4 ldrb r3, [r3, #0] + 0x0800411a UART1_RxCpltCallback+6 cbnz r3, 0x800412e + 0x0800411c UART1_RxCpltCallback+8 ldr r3, [pc, #52] ; (0x8004154 ) + 0x0800411e UART1_RxCpltCallback+10 ldrb r3, [r3, #0] +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00004001 r10 0x00000000 pc 0x08004116 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000035 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x08004115 r8 0x00000000 sp 0x2000ff50 msp 0x2000ff50 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x0800338b psp 0x00000000 +### Source ########################################################################################################## + 25 SS_START = 1, // get start byte, interrupt after 4 more bytes + 26 } serial_state_t; + 27 + 28 static UART_HandleTypeDef *_serial_huart_inst = NULL; + 29 + 30 static uint8_t rxc = '\0'; + 31 static serial_state_t sstate = SS_IDLE; + 32 + 33 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 34 { +!35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 36 { + 37 sstate = SS_START; + 38 return; + 39 } + 40 else + 41 { + 42 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 43 } + 44 } +### Stack ########################################################################################################### +[0] from 0x08004116 in UART1_RxCpltCallback+2 at shared/drivers/p_serial_mgr.c:35 +[1] from 0x0800338a in UART_RxISR_8BIT+130 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2347 +[3] from 0x080014f0 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x08003f4a in UART_Start_Receive_IT+154 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3685 +[6] from 0x08003fcc in HAL_UART_Receive_IT+68 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1440 +[7] from 0x08004220 in p_serial_mgr_start+32 at shared/drivers/p_serial_mgr.c:70 +[8] from 0x080014a8 in main+92 at Core/Src/main.c:132 +### Threads ######################################################################################################### +[1] id 0 from 0x08004116 in UART1_RxCpltCallback+2 at shared/drivers/p_serial_mgr.c:35 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +##################################################################################################################### +Quit +$1 = 0xff +Continuing. +### Output/messages ################################################################################################# +halted: PC: 0x08004118 + +Breakpoint 1, UART1_RxCpltCallback (huart=0x20000aa8 ) at shared/drivers/p_serial_mgr.c:35 +35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) +### Assembly ######################################################################################################## +~ +~ +~ +~ + 0x08004114 UART1_RxCpltCallback+0 push {r3, lr} +!0x08004116 UART1_RxCpltCallback+2 ldr r3, [pc, #56] ; (0x8004150 ) + 0x08004118 UART1_RxCpltCallback+4 ldrb r3, [r3, #0] + 0x0800411a UART1_RxCpltCallback+6 cbnz r3, 0x800412e + 0x0800411c UART1_RxCpltCallback+8 ldr r3, [pc, #52] ; (0x8004154 ) + 0x0800411e UART1_RxCpltCallback+10 ldrb r3, [r3, #0] +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$0 = 255 '\377' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00004001 r10 0x00000000 pc 0x08004116 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000035 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x08004115 r8 0x00000000 sp 0x2000ff68 msp 0x2000ff68 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x0800338b psp 0x00000000 +### Source ########################################################################################################## + 25 SS_START = 1, // get start byte, interrupt after 4 more bytes + 26 } serial_state_t; + 27 + 28 static UART_HandleTypeDef *_serial_huart_inst = NULL; + 29 + 30 static uint8_t rxc = '\0'; + 31 static serial_state_t sstate = SS_IDLE; + 32 + 33 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 34 { +!35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 36 { + 37 sstate = SS_START; + 38 return; + 39 } + 40 else + 41 { + 42 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 43 } + 44 } +### Stack ########################################################################################################### +[0] from 0x08004116 in UART1_RxCpltCallback+2 at shared/drivers/p_serial_mgr.c:35 +[1] from 0x0800338a in UART_RxISR_8BIT+130 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2347 +[3] from 0x080014f0 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004116 in UART1_RxCpltCallback+2 at shared/drivers/p_serial_mgr.c:35 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +##################################################################################################################### +$2 = 0x7e +### Output/messages ################################################################################################# +halted: PC: 0x08004118 +halted: PC: 0x0800411a +halted: PC: 0x0800411c +halted: PC: 0x0800411e +halted: PC: 0x08004120 +halted: PC: 0x08004124 +halted: PC: 0x08004126 +halted: PC: 0x08004128 +halted: PC: 0x0800412a +halted: PC: 0x0800412c +halted: PC: 0x08004148 +37 sstate = SS_START; +### Assembly ######################################################################################################## + 0x0800413c UART1_RxCpltCallback+40 add r1, r3 + 0x0800413e UART1_RxCpltCallback+42 ldr r3, [pc, #28] ; (0x800415c ) + 0x08004140 UART1_RxCpltCallback+44 ldr r0, [r3, #0] + 0x08004142 UART1_RxCpltCallback+46 bl 0x8003f88 + 0x08004146 UART1_RxCpltCallback+50 pop {r3, pc} + 0x08004148 UART1_RxCpltCallback+52 ldr r3, [pc, #4] ; (0x8004150 ) + 0x0800414a UART1_RxCpltCallback+54 movs r2, #1 + 0x0800414c UART1_RxCpltCallback+56 strb r2, [r3, #0] + 0x0800414e UART1_RxCpltCallback+58 b.n 0x8004146 + 0x08004150 UART1_RxCpltCallback+60 movs r0, #80 ; 0x50 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00004001 r10 0x00000000 pc 0x08004148 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000035 basepri 0x00 + r2 0x00000000 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x0000007e r8 0x00000000 sp 0x2000ff68 msp 0x2000ff68 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x0800338b psp 0x00000000 +### Source ########################################################################################################## + 27 + 28 static UART_HandleTypeDef *_serial_huart_inst = NULL; + 29 + 30 static uint8_t rxc = '\0'; + 31 static serial_state_t sstate = SS_IDLE; + 32 + 33 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 34 { +!35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 36 { + 37 sstate = SS_START; + 38 return; + 39 } + 40 else + 41 { + 42 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 43 } + 44 } + 45 + 46 void p_serial_mgr_init(UART_HandleTypeDef *huart) +### Stack ########################################################################################################### +[0] from 0x08004148 in UART1_RxCpltCallback+52 at shared/drivers/p_serial_mgr.c:37 +[1] from 0x0800338a in UART_RxISR_8BIT+130 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2347 +[3] from 0x080014f0 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004148 in UART1_RxCpltCallback+52 at shared/drivers/p_serial_mgr.c:37 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x0800414a +halted: PC: 0x0800414c +halted: PC: 0x0800414e +38 return; +### Assembly ######################################################################################################## + 0x08004142 UART1_RxCpltCallback+46 bl 0x8003f88 + 0x08004146 UART1_RxCpltCallback+50 pop {r3, pc} + 0x08004148 UART1_RxCpltCallback+52 ldr r3, [pc, #4] ; (0x8004150 ) + 0x0800414a UART1_RxCpltCallback+54 movs r2, #1 + 0x0800414c UART1_RxCpltCallback+56 strb r2, [r3, #0] + 0x0800414e UART1_RxCpltCallback+58 b.n 0x8004146 + 0x08004150 UART1_RxCpltCallback+60 movs r0, #80 ; 0x50 + 0x08004152 UART1_RxCpltCallback+62 movs r0, #0 + 0x08004154 UART1_RxCpltCallback+64 lsrs r4, r4, #16 + 0x08004156 UART1_RxCpltCallback+66 movs r0, #0 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00004001 r10 0x00000000 pc 0x0800414e primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x21000035 basepri 0x00 + r2 0x00000001 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x20002050 r8 0x00000000 sp 0x2000ff68 msp 0x2000ff68 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x0800338b psp 0x00000000 +### Source ########################################################################################################## + 28 static UART_HandleTypeDef *_serial_huart_inst = NULL; + 29 + 30 static uint8_t rxc = '\0'; + 31 static serial_state_t sstate = SS_IDLE; + 32 + 33 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 34 { +!35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 36 { + 37 sstate = SS_START; + 38 return; + 39 } + 40 else + 41 { + 42 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 43 } + 44 } + 45 + 46 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 47 { +### Stack ########################################################################################################### +[0] from 0x0800414e in UART1_RxCpltCallback+58 at shared/drivers/p_serial_mgr.c:38 +[1] from 0x0800338a in UART_RxISR_8BIT+130 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2347 +[3] from 0x080014f0 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x0800414e in UART1_RxCpltCallback+58 at shared/drivers/p_serial_mgr.c:38 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004146 +halted: PC: 0x0800338a +halted: PC: 0x08003320 +halted: PC: 0x080034dc +HAL_UART_IRQHandler (huart=0x20000aa8 ) at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2349 +2349 return; +### Assembly ######################################################################################################## + 0x080034d2 HAL_UART_IRQHandler+98 ldr r3, [r4, #100] ; 0x64 + 0x080034d4 HAL_UART_IRQHandler+100 cmp r3, #0 + 0x080034d6 HAL_UART_IRQHandler+102 beq.n 0x80034d0 + 0x080034d8 HAL_UART_IRQHandler+104 mov r0, r4 + 0x080034da HAL_UART_IRQHandler+106 blx r3 + 0x080034dc HAL_UART_IRQHandler+108 b.n 0x80034d0 + 0x080034de HAL_UART_IRQHandler+110 tst.w r3, #1 + 0x080034e2 HAL_UART_IRQHandler+114 beq.n 0x80034f8 + 0x080034e4 HAL_UART_IRQHandler+116 tst.w r0, #256 ; 0x100 + 0x080034e8 HAL_UART_IRQHandler+120 beq.n 0x80034f8 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00004001 r10 0x00000000 pc 0x080034dc primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x21000035 basepri 0x00 + r2 0x00000001 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x08003309 r8 0x00000000 sp 0x2000ff78 msp 0x2000ff78 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x0800338b psp 0x00000000 +### Source ########################################################################################################## + 2339 || ((cr3its & USART_CR3_RXFTIE) != 0U))) + 2340 #else + 2341 if (((isrflags & USART_ISR_RXNE) != 0U) + 2342 && ((cr1its & USART_CR1_RXNEIE) != 0U)) + 2343 #endif /* USART_CR1_FIFOEN */ + 2344 { + 2345 if (huart->RxISR != NULL) + 2346 { + 2347 huart->RxISR(huart); + 2348 } + 2349 return; + 2350 } + 2351 } + 2352 + 2353 /* If some errors occur */ + 2354 #if defined(USART_CR1_FIFOEN) + 2355 if ((errorflags != 0U) + 2356 && ((((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U) + 2357 || ((cr1its & (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U)))) + 2358 #else +### Stack ########################################################################################################### +[0] from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2349 +[1] from 0x080014f0 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[2] from 0xffffffe9 +[3] from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2349 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +loc isrflags = , cr1its = , cr3its = 16385, errorflags = , errorcode = +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080034d0 +halted: PC: 0x080014f0 +halted: PC: 0x080014a8 +main () at Core/Src/main.c:141 +141 p_serial_mgr_service(); +### Assembly ######################################################################################################## + 0x0800149a main+78 movs r2, #1 + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x8004200 + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014a8 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } + 149 // serial_pkt_t *pkt = NULL; + 150 // if ((pkt = p_serial_mgr_service()) != NULL) +### Stack ########################################################################################################### +[0] from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080014a8 in main+92 at Core/Src/main.c:141 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004174 +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:53 +53 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ +~ +~ + 0x08004174 p_serial_mgr_service+0 ldr r3, [pc, #112] ; (0x80041e8 ) + 0x08004176 p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004178 p_serial_mgr_service+4 cmp r3, #1 + 0x0800417a p_serial_mgr_service+6 beq.n 0x800417e + 0x0800417c p_serial_mgr_service+8 bx lr +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08004174 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 43 } + 44 } + 45 + 46 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 47 { + 48 _serial_huart_inst = huart; + 49 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 50 } + 51 void p_serial_mgr_service(void) + 52 { + 53 if (sstate == SS_START) + 54 { + 55 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 56 for (int ind = 0; ind < 24; ind++) + 57 { + 58 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 59 } + 60 PDEBUG("\n\n"); + 61 sstate = SS_IDLE; + 62 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:53 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:53 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004176 +halted: PC: 0x08004178 +halted: PC: 0x0800417a +halted: PC: 0x0800417e +halted: PC: 0x08004180 +55 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); +### Assembly ######################################################################################################## + 0x08004176 p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004178 p_serial_mgr_service+4 cmp r3, #1 + 0x0800417a p_serial_mgr_service+6 beq.n 0x800417e + 0x0800417c p_serial_mgr_service+8 bx lr + 0x0800417e p_serial_mgr_service+10 push {r4, lr} + 0x08004180 p_serial_mgr_service+12 ldr r3, [pc, #104] ; (0x80041ec ) + 0x08004182 p_serial_mgr_service+14 ldrb r3, [r3, #0] + 0x08004184 p_serial_mgr_service+16 add.w r3, r3, r3, lsl #7 + 0x08004188 p_serial_mgr_service+20 lsls r1, r3, #2 + 0x0800418a p_serial_mgr_service+22 adds r1, #1 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08004180 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000001 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080014ad psp 0x00000000 +### Source ########################################################################################################## + 45 + 46 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 47 { + 48 _serial_huart_inst = huart; + 49 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 50 } + 51 void p_serial_mgr_service(void) + 52 { + 53 if (sstate == SS_START) + 54 { + 55 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 56 for (int ind = 0; ind < 24; ind++) + 57 { + 58 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 59 } + 60 PDEBUG("\n\n"); + 61 sstate = SS_IDLE; + 62 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 63 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 64 } +### Stack ########################################################################################################### +[0] from 0x08004180 in p_serial_mgr_service+12 at shared/drivers/p_serial_mgr.c:55 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004180 in p_serial_mgr_service+12 at shared/drivers/p_serial_mgr.c:55 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004182 +halted: PC: 0x08004184 +halted: PC: 0x08004188 +halted: PC: 0x0800418a +halted: PC: 0x0800418c +halted: PC: 0x0800418e +halted: PC: 0x08004192 +halted: PC: 0x08004194 +halted: PC: 0x08004196 +halted: PC: 0x08004198 +halted: PC: 0x0800419a +halted: PC: 0x08003c9a +56 for (int ind = 0; ind < 24; ind++) +### Assembly ######################################################################################################## + 0x08004192 p_serial_mgr_service+30 ldr r0, [pc, #92] ; (0x80041f0 ) + 0x08004194 p_serial_mgr_service+32 add r1, r0 + 0x08004196 p_serial_mgr_service+34 ldr r0, [pc, #92] ; (0x80041f4 ) + 0x08004198 p_serial_mgr_service+36 ldr r0, [r0, #0] + 0x0800419a p_serial_mgr_service+38 bl 0x8003c9a + 0x0800419e p_serial_mgr_service+42 movs r4, #0 + 0x080041a0 p_serial_mgr_service+44 b.n 0x80041bc + 0x080041a2 p_serial_mgr_service+46 ldr r3, [pc, #72] ; (0x80041ec ) + 0x080041a4 p_serial_mgr_service+48 ldrb r3, [r3, #0] + 0x080041a6 p_serial_mgr_service+50 add.w r3, r3, r3, lsl #7 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000003 r5 0x00000000 r10 0x00000000 pc 0x0800419e primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x21000000 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000790 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x08003b1f psp 0x00000000 +### Source ########################################################################################################## + 46 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 47 { + 48 _serial_huart_inst = huart; + 49 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 50 } + 51 void p_serial_mgr_service(void) + 52 { + 53 if (sstate == SS_START) + 54 { + 55 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 56 for (int ind = 0; ind < 24; ind++) + 57 { + 58 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 59 } + 60 PDEBUG("\n\n"); + 61 sstate = SS_IDLE; + 62 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 63 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 64 } + 65 } +### Stack ########################################################################################################### +[0] from 0x0800419e in p_serial_mgr_service+42 at shared/drivers/p_serial_mgr.c:56 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x0800419e in p_serial_mgr_service+42 at shared/drivers/p_serial_mgr.c:56 +### Variables ####################################################################################################### +loc ind = 0 +##################################################################################################################### +### Output/messages ################################################################################################# +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:61 +61 sstate = SS_IDLE; +### Assembly ######################################################################################################## + 0x080041ba p_serial_mgr_service+70 adds r4, #1 + 0x080041bc p_serial_mgr_service+72 cmp r4, #23 + 0x080041be p_serial_mgr_service+74 ble.n 0x80041a2 + 0x080041c0 p_serial_mgr_service+76 ldr r0, [pc, #56] ; (0x80041fc ) + 0x080041c2 p_serial_mgr_service+78 bl 0x8004098 + 0x080041c6 p_serial_mgr_service+82 ldr r3, [pc, #32] ; (0x80041e8 ) + 0x080041c8 p_serial_mgr_service+84 movs r2, #0 + 0x080041ca p_serial_mgr_service+86 strb r2, [r3, #0] + 0x080041cc p_serial_mgr_service+88 ldr r3, [pc, #28] ; (0x80041ec ) + 0x080041ce p_serial_mgr_service+90 ldrb r3, [r3, #0] +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080041c6 primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x006000d0 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000020 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000018 r9 0x00000000 lr 0x080041c7 psp 0x00000000 +### Source ########################################################################################################## + 51 void p_serial_mgr_service(void) + 52 { + 53 if (sstate == SS_START) + 54 { + 55 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 56 for (int ind = 0; ind < 24; ind++) + 57 { + 58 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 59 } + 60 PDEBUG("\n\n"); + 61 sstate = SS_IDLE; + 62 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 63 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 64 } + 65 } + 66 + 67 void p_serial_mgr_start() + 68 { + 69 sstate = SS_IDLE; + 70 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); +### Stack ########################################################################################################### +[0] from 0x080041c6 in p_serial_mgr_service+82 at shared/drivers/p_serial_mgr.c:61 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041c6 in p_serial_mgr_service+82 at shared/drivers/p_serial_mgr.c:61 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041c8 +halted: PC: 0x080041ca +halted: PC: 0x080041cc +63 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); +### Assembly ######################################################################################################## + 0x080041c0 p_serial_mgr_service+76 ldr r0, [pc, #56] ; (0x80041fc ) + 0x080041c2 p_serial_mgr_service+78 bl 0x8004098 + 0x080041c6 p_serial_mgr_service+82 ldr r3, [pc, #32] ; (0x80041e8 ) + 0x080041c8 p_serial_mgr_service+84 movs r2, #0 + 0x080041ca p_serial_mgr_service+86 strb r2, [r3, #0] + 0x080041cc p_serial_mgr_service+88 ldr r3, [pc, #28] ; (0x80041ec ) + 0x080041ce p_serial_mgr_service+90 ldrb r3, [r3, #0] + 0x080041d0 p_serial_mgr_service+92 add.w r3, r3, r3, lsl #7 + 0x080041d4 p_serial_mgr_service+96 lsls r1, r3, #2 + 0x080041d6 p_serial_mgr_service+98 movs r2, #1 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080041cc primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x00000000 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x20002050 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x00000018 r9 0x00000000 lr 0x080041c7 psp 0x00000000 +### Source ########################################################################################################## + 53 if (sstate == SS_START) + 54 { + 55 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + 56 for (int ind = 0; ind < 24; ind++) + 57 { + 58 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 59 } + 60 PDEBUG("\n\n"); + 61 sstate = SS_IDLE; + 62 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 63 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 64 } + 65 } + 66 + 67 void p_serial_mgr_start() + 68 { + 69 sstate = SS_IDLE; + 70 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 71 } +~ +### Stack ########################################################################################################### +[0] from 0x080041cc in p_serial_mgr_service+88 at shared/drivers/p_serial_mgr.c:63 +[1] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080041cc in p_serial_mgr_service+88 at shared/drivers/p_serial_mgr.c:63 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080041ce +halted: PC: 0x080041d0 +halted: PC: 0x080041d4 +halted: PC: 0x080041d6 +halted: PC: 0x080041d8 +halted: PC: 0x080041da +halted: PC: 0x080041dc +halted: PC: 0x080041de +halted: PC: 0x080041e0 +halted: PC: 0x08003f88 +halted: PC: 0x080014ac +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x0800149c main+80 ldr r1, [pc, #28] ; (0x80014bc ) + 0x0800149e main+82 mov r0, r4 + 0x080014a0 main+84 bl 0x8003f88 + 0x080014a4 main+88 bl 0x8004200 + 0x080014a8 main+92 bl 0x8004174 + 0x080014ac main+96 b.n 0x80014a8 + 0x080014ae main+98 nop + 0x080014b0 main+100 lsrs r4, r3, #13 + 0x080014b2 main+102 movs r0, #0 + 0x080014b4 main+104 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080014ac primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x20000c20 r8 0x00000000 sp 0x2000fff8 msp 0x2000fff8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x08003fcd psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 // HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x080014ac in main+96 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x080014ac in main+96 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# + +Breakpoint 1, UART1_RxCpltCallback (huart=0x20000aa8 ) at shared/drivers/p_serial_mgr.c:35 +35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) +### Assembly ######################################################################################################## +~ +~ +~ +~ + 0x08004114 UART1_RxCpltCallback+0 push {r3, lr} +!0x08004116 UART1_RxCpltCallback+2 ldr r3, [pc, #56] ; (0x8004150 ) + 0x08004118 UART1_RxCpltCallback+4 ldrb r3, [r3, #0] + 0x0800411a UART1_RxCpltCallback+6 cbnz r3, 0x800412e + 0x0800411c UART1_RxCpltCallback+8 ldr r3, [pc, #52] ; (0x8004154 ) + 0x0800411e UART1_RxCpltCallback+10 ldrb r3, [r3, #0] +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = 255 '\377' +$$0 = 126 '~' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00004001 r10 0x00000000 pc 0x08004116 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000035 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x08004115 r8 0x00000000 sp 0x2000ff68 msp 0x2000ff68 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x0800338b psp 0x00000000 +### Source ########################################################################################################## + 25 SS_START = 1, // get start byte, interrupt after 4 more bytes + 26 } serial_state_t; + 27 + 28 static UART_HandleTypeDef *_serial_huart_inst = NULL; + 29 + 30 static uint8_t rxc = '\0'; + 31 static serial_state_t sstate = SS_IDLE; + 32 + 33 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 34 { +!35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 36 { + 37 sstate = SS_START; + 38 return; + 39 } + 40 else + 41 { + 42 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 43 } + 44 } +### Stack ########################################################################################################### +[0] from 0x08004116 in UART1_RxCpltCallback+2 at shared/drivers/p_serial_mgr.c:35 +[1] from 0x0800338a in UART_RxISR_8BIT+130 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2347 +[3] from 0x080014f0 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:53 +[6] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004116 in UART1_RxCpltCallback+2 at shared/drivers/p_serial_mgr.c:35 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +##################################################################################################################### +$3 = 0x7e +$4 = {[0x0] = 0x7e, [0x1] = 0x0 } +### Output/messages ################################################################################################# +halted: PC: 0x08004118 +halted: PC: 0x0800411a +halted: PC: 0x0800411c +halted: PC: 0x0800411e +halted: PC: 0x08004120 +halted: PC: 0x08004124 +halted: PC: 0x08004126 +halted: PC: 0x08004128 +halted: PC: 0x0800412a +halted: PC: 0x0800412c +halted: PC: 0x08004148 +37 sstate = SS_START; +### Assembly ######################################################################################################## + 0x0800413c UART1_RxCpltCallback+40 add r1, r3 + 0x0800413e UART1_RxCpltCallback+42 ldr r3, [pc, #28] ; (0x800415c ) + 0x08004140 UART1_RxCpltCallback+44 ldr r0, [r3, #0] + 0x08004142 UART1_RxCpltCallback+46 bl 0x8003f88 + 0x08004146 UART1_RxCpltCallback+50 pop {r3, pc} + 0x08004148 UART1_RxCpltCallback+52 ldr r3, [pc, #4] ; (0x8004150 ) + 0x0800414a UART1_RxCpltCallback+54 movs r2, #1 + 0x0800414c UART1_RxCpltCallback+56 strb r2, [r3, #0] + 0x0800414e UART1_RxCpltCallback+58 b.n 0x8004146 + 0x08004150 UART1_RxCpltCallback+60 movs r0, #80 ; 0x50 +### Breakpoints ##################################################################################################### +[1] break at 0x08004116 in shared/drivers/p_serial_mgr.c:35 for p_serial_mgr.c:35 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$2 = 126 '~' +$$1 = 126 '~' +$$0 = "~", '\000' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00004001 r10 0x00000000 pc 0x08004148 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000035 basepri 0x00 + r2 0x00000000 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x0000007e r8 0x00000000 sp 0x2000ff68 msp 0x2000ff68 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x0800338b psp 0x00000000 +### Source ########################################################################################################## + 27 + 28 static UART_HandleTypeDef *_serial_huart_inst = NULL; + 29 + 30 static uint8_t rxc = '\0'; + 31 static serial_state_t sstate = SS_IDLE; + 32 + 33 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 34 { +!35 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 36 { + 37 sstate = SS_START; + 38 return; + 39 } + 40 else + 41 { + 42 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 43 } + 44 } + 45 + 46 void p_serial_mgr_init(UART_HandleTypeDef *huart) +### Stack ########################################################################################################### +[0] from 0x08004148 in UART1_RxCpltCallback+52 at shared/drivers/p_serial_mgr.c:37 +[1] from 0x0800338a in UART_RxISR_8BIT+130 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x080034dc in HAL_UART_IRQHandler+108 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2347 +[3] from 0x080014f0 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x08004174 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:53 +[6] from 0x080014ac in main+96 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004148 in UART1_RxCpltCallback+52 at shared/drivers/p_serial_mgr.c:37 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +##################################################################################################################### +Detaching from program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf, Remote target +[Inferior 1 (Remote target) detached] +0x08004148 in HAL_UART_Init (huart=0x20000aa8 ) at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:372 +372 if (UART_SetConfig(huart) == HAL_ERROR) +### Assembly ######################################################################################################## + 0x0800413c HAL_UART_Init+20 add r1, r3 + 0x0800413e HAL_UART_Init+22 ldr r3, [pc, #28] ; (0x800415c ) + 0x08004140 HAL_UART_Init+24 ldr r0, [r3, #0] + 0x08004142 HAL_UART_Init+26 bl 0x8003f88 + 0x08004146 HAL_UART_Init+30 pop {r3, pc} + 0x08004148 HAL_UART_Init+32 ldr r3, [pc, #4] ; (0x8004150 ) + 0x0800414a HAL_UART_Init+34 movs r2, #1 + 0x0800414c HAL_UART_Init+36 strb r2, [r3, #0] + 0x0800414e HAL_UART_Init+38 b.n 0x8004146 + 0x08004150 HAL_UART_Init+40 movs r0, #80 ; 0x50 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00004001 r10 0x00000000 pc 0x08004148 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000035 basepri 0x00 + r2 0x00000000 r7 0x00000000 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x0000007e r8 0x00000000 sp 0x2000ff68 msp 0x2000ff68 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x0800338b psp 0x00000000 +### Source ########################################################################################################## + 362 /* Init the low level hardware : GPIO, CLOCK */ + 363 HAL_UART_MspInit(huart); + 364 #endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + 365 } + 366 + 367 huart->gState = HAL_UART_STATE_BUSY; + 368 + 369 __HAL_UART_DISABLE(huart); + 370 + 371 /* Set the UART Communication parameters */ + 372 if (UART_SetConfig(huart) == HAL_ERROR) + 373 { + 374 return HAL_ERROR; + 375 } + 376 + 377 if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) + 378 { + 379 UART_AdvFeatureConfig(huart); + 380 } + 381 +### Stack ########################################################################################################### +[0] from 0x08004148 in HAL_UART_Init+32 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:372 +[1] from 0x0800338a in HAL_DMA_IRQHandler+116 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:847 +[2] from 0x00000000 +### Threads ######################################################################################################### +[1] id 0 from 0x08004148 in HAL_UART_Init+32 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:372 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x98e0 lma 0x80001c0 +Loading section .rodata, size 0x488 lma 0x8009aa0 +Loading section .ARM, size 0x8 lma 0x8009f28 +Loading section .init_array, size 0x8 lma 0x8009f30 +Loading section .fini_array, size 0x8 lma 0x8009f38 +Loading section .data, size 0x9a8 lma 0x8009f40 +Start address 0x08004538, load size 43192 +Transfer rate: 29 KB/sec, 4799 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x80044f8 + 0x08001526 main+126 bl 0x800446c + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 + 0x08001532 main+138 lsrs r0, r0, #32 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x0800152a primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x0800152a in main+130 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x0800152a in main+130 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x98e0 lma 0x80001c0 +Loading section .rodata, size 0x488 lma 0x8009aa0 +Loading section .ARM, size 0x8 lma 0x8009f28 +Loading section .init_array, size 0x8 lma 0x8009f30 +Loading section .fini_array, size 0x8 lma 0x8009f38 +Loading section .data, size 0x9a8 lma 0x8009f40 +Start address 0x08004538, load size 43192 +Transfer rate: 29 KB/sec, 4799 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:53 +53 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ +~ +~ + 0x0800446c p_serial_mgr_service+0 ldr r3, [pc, #112] ; (0x80044e0 ) + 0x0800446e p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004470 p_serial_mgr_service+4 cmp r3, #1 + 0x08004472 p_serial_mgr_service+6 beq.n 0x8004476 + 0x08004474 p_serial_mgr_service+8 bx lr +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x0800446c primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 43 } + 44 } + 45 + 46 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 47 { + 48 _serial_huart_inst = huart; + 49 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 50 } + 51 void p_serial_mgr_service(void) + 52 { + 53 if (sstate == SS_START) + 54 { + 55 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20); + 56 for (int ind = 0; ind < 24; ind++) + 57 { + 58 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 59 } + 60 PDEBUG("\n\n"); + 61 sstate = SS_IDLE; + 62 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x0800446c in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:53 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x0800446c in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:53 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x98f8 lma 0x80001c0 +Loading section .rodata, size 0x488 lma 0x8009ab8 +Loading section .ARM, size 0x8 lma 0x8009f40 +Loading section .init_array, size 0x8 lma 0x8009f48 +Loading section .fini_array, size 0x8 lma 0x8009f50 +Loading section .data, size 0x9a8 lma 0x8009f58 +Start address 0x08004550, load size 43216 +Transfer rate: 29 KB/sec, 4801 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004510 + 0x08001526 main+126 bl 0x800446c + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 + 0x08001532 main+138 lsrs r0, r0, #32 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x0800152a primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x0800152a in main+130 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x0800152a in main+130 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x9900 lma 0x80001c0 +Loading section .rodata, size 0x490 lma 0x8009ac0 +Loading section .ARM, size 0x8 lma 0x8009f50 +Loading section .init_array, size 0x8 lma 0x8009f58 +Loading section .fini_array, size 0x8 lma 0x8009f60 +Loading section .data, size 0x9a8 lma 0x8009f68 +Start address 0x08004554, load size 43232 +Transfer rate: 29 KB/sec, 4803 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +0x08004472 in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:53 +53 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ + 0x0800446c p_serial_mgr_service+0 ldr r3, [pc, #136] ; (0x80044f8 ) + 0x0800446e p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004470 p_serial_mgr_service+4 cmp r3, #1 + 0x08004472 p_serial_mgr_service+6 beq.n 0x8004476 + 0x08004474 p_serial_mgr_service+8 bx lr + 0x08004476 p_serial_mgr_service+10 push {r4, lr} + 0x08004478 p_serial_mgr_service+12 sub sp, #16 + 0x0800447a p_serial_mgr_service+14 ldr r3, [pc, #128] ; (0x80044fc ) +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08004472 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 43 } + 44 } + 45 + 46 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 47 { + 48 _serial_huart_inst = huart; + 49 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 50 } + 51 void p_serial_mgr_service(void) + 52 { + 53 if (sstate == SS_START) + 54 { + 55 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20); + 56 for (int ind = 0; ind < 24; ind++) + 57 { + 58 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 59 } + 60 PDEBUG("\n\n"); + 61 sstate = SS_IDLE; + 62 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x08004472 in p_serial_mgr_service+6 at shared/drivers/p_serial_mgr.c:53 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004472 in p_serial_mgr_service+6 at shared/drivers/p_serial_mgr.c:53 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x9900 lma 0x80001c0 +Loading section .rodata, size 0x490 lma 0x8009ac0 +Loading section .ARM, size 0x8 lma 0x8009f50 +Loading section .init_array, size 0x8 lma 0x8009f58 +Loading section .fini_array, size 0x8 lma 0x8009f60 +Loading section .data, size 0x9a8 lma 0x8009f68 +Start address 0x08004554, load size 43232 +Transfer rate: 29 KB/sec, 4803 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +0x08004470 in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:53 +53 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ + 0x0800446c p_serial_mgr_service+0 ldr r3, [pc, #136] ; (0x80044f8 ) + 0x0800446e p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x08004470 p_serial_mgr_service+4 cmp r3, #1 + 0x08004472 p_serial_mgr_service+6 beq.n 0x8004476 + 0x08004474 p_serial_mgr_service+8 bx lr + 0x08004476 p_serial_mgr_service+10 push {r4, lr} + 0x08004478 p_serial_mgr_service+12 sub sp, #16 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08004470 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 43 } + 44 } + 45 + 46 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 47 { + 48 _serial_huart_inst = huart; + 49 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 50 } + 51 void p_serial_mgr_service(void) + 52 { + 53 if (sstate == SS_START) + 54 { + 55 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20); + 56 for (int ind = 0; ind < 24; ind++) + 57 { + 58 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 59 } + 60 PDEBUG("\n\n"); + 61 sstate = SS_IDLE; + 62 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x08004470 in p_serial_mgr_service+4 at shared/drivers/p_serial_mgr.c:53 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004470 in p_serial_mgr_service+4 at shared/drivers/p_serial_mgr.c:53 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x9900 lma 0x80001c0 +Loading section .rodata, size 0x490 lma 0x8009ac0 +Loading section .ARM, size 0x8 lma 0x8009f50 +Loading section .init_array, size 0x8 lma 0x8009f58 +Loading section .fini_array, size 0x8 lma 0x8009f60 +Loading section .data, size 0x9a8 lma 0x8009f68 +Start address 0x08004554, load size 43232 +Transfer rate: 29 KB/sec, 4803 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +p_serial_mgr_init (huart=0x0) at shared/drivers/p_serial_mgr.c:50 +50 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; +### Assembly ######################################################################################################## +~ +~ +~ + 0x0800446c p_serial_mgr_init+0 ldr r3, [pc, #136] ; (0x80044f8 ) + 0x0800446e p_serial_mgr_init+2 ldrb r3, [r3, #0] + 0x08004470 p_serial_mgr_init+4 cmp r3, #1 + 0x08004472 p_serial_mgr_init+6 beq.n 0x8004476 + 0x08004474 p_serial_mgr_init+8 bx lr + 0x08004476 p_serial_mgr_init+10 push {r4, lr} + 0x08004478 p_serial_mgr_init+12 sub sp, #16 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08004470 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 40 else + 41 { + 42 PDEBUG("0x%02x\n", sbuffer[active_buffer][0]); + 43 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 44 } + 45 } + 46 + 47 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 48 { + 49 _serial_huart_inst = huart; + 50 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 51 } + 52 void p_serial_mgr_service(void) + 53 { + 54 if (sstate == SS_START) + 55 { + 56 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20); + 57 for (int ind = 0; ind < 24; ind++) + 58 { + 59 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); +### Stack ########################################################################################################### +[0] from 0x08004470 in p_serial_mgr_init+4 at shared/drivers/p_serial_mgr.c:50 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004470 in p_serial_mgr_init+4 at shared/drivers/p_serial_mgr.c:50 +### Variables ####################################################################################################### +arg huart = 0x0: {Instance = 0x20010000,Init = {BaudRate = 134235477,WordLength = 134223173,StopBits = … +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x9910 lma 0x80001c0 +Loading section .rodata, size 0x498 lma 0x8009ad0 +Loading section .ARM, size 0x8 lma 0x8009f68 +Loading section .init_array, size 0x8 lma 0x8009f70 +Loading section .fini_array, size 0x8 lma 0x8009f78 +Loading section .data, size 0x9a8 lma 0x8009f80 +Start address 0x08004568, load size 43256 +Transfer rate: 29 KB/sec, 4806 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +main () at Core/Src/main.c:141 +141 p_serial_mgr_service(); +### Assembly ######################################################################################################## + 0x08001516 main+110 mov r0, r4 + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004528 + 0x08001526 main+126 bl 0x8004480 + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08001526 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } + 149 // serial_pkt_t *pkt = NULL; + 150 // if ((pkt = p_serial_mgr_service()) != NULL) +### Stack ########################################################################################################### +[0] from 0x08001526 in main+126 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08001526 in main+126 at Core/Src/main.c:141 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x98f0 lma 0x80001c0 +Loading section .rodata, size 0x490 lma 0x8009ab0 +Loading section .ARM, size 0x8 lma 0x8009f40 +Loading section .init_array, size 0x8 lma 0x8009f48 +Loading section .fini_array, size 0x8 lma 0x8009f50 +Loading section .data, size 0x9a8 lma 0x8009f58 +Start address 0x08004548, load size 43216 +Transfer rate: 29 KB/sec, 4801 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +0x08004492 in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:54 +54 if (sstate == SS_START) +### Assembly ######################################################################################################## + 0x08004488 p_serial_mgr_service+0 push {r4, lr} + 0x0800448a p_serial_mgr_service+2 sub sp, #16 + 0x0800448c p_serial_mgr_service+4 ldr r3, [pc, #144] ; (0x8004520 ) + 0x0800448e p_serial_mgr_service+6 ldrb r3, [r3, #0] + 0x08004490 p_serial_mgr_service+8 cmp r3, #1 + 0x08004492 p_serial_mgr_service+10 beq.n 0x800449c + 0x08004494 p_serial_mgr_service+12 cmp r3, #2 + 0x08004496 p_serial_mgr_service+14 beq.n 0x8004518 + 0x08004498 p_serial_mgr_service+16 add sp, #16 + 0x0800449a p_serial_mgr_service+18 pop {r4, pc} +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08004492 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 44 } + 45 } + 46 + 47 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 48 { + 49 _serial_huart_inst = huart; + 50 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 51 } + 52 void p_serial_mgr_service(void) + 53 { + 54 if (sstate == SS_START) + 55 { + 56 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20); + 57 for (int ind = 0; ind < 24; ind++) + 58 { + 59 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 60 } + 61 PDEBUG("\n\n"); + 62 sstate = SS_IDLE; + 63 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x08004492 in p_serial_mgr_service+10 at shared/drivers/p_serial_mgr.c:54 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004492 in p_serial_mgr_service+10 at shared/drivers/p_serial_mgr.c:54 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x98f0 lma 0x80001c0 +Loading section .rodata, size 0x490 lma 0x8009ab0 +Loading section .ARM, size 0x8 lma 0x8009f40 +Loading section .init_array, size 0x8 lma 0x8009f48 +Loading section .fini_array, size 0x8 lma 0x8009f50 +Loading section .data, size 0x9a8 lma 0x8009f58 +Start address 0x08004548, load size 43216 +Transfer rate: 29 KB/sec, 4801 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +0x0800449a in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:73 +73 } +### Assembly ######################################################################################################## + 0x08004490 p_serial_mgr_service+8 cmp r3, #1 + 0x08004492 p_serial_mgr_service+10 beq.n 0x800449c + 0x08004494 p_serial_mgr_service+12 cmp r3, #2 + 0x08004496 p_serial_mgr_service+14 beq.n 0x8004518 + 0x08004498 p_serial_mgr_service+16 add sp, #16 + 0x0800449a p_serial_mgr_service+18 pop {r4, pc} + 0x0800449c p_serial_mgr_service+20 ldr r3, [pc, #132] ; (0x8004524 ) + 0x0800449e p_serial_mgr_service+22 ldrb r3, [r3, #0] + 0x080044a0 p_serial_mgr_service+24 add.w r3, r3, r3, lsl #7 + 0x080044a4 p_serial_mgr_service+28 lsls r1, r3, #2 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x0800449a primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffe8 msp 0x2000ffe8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 63 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 64 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 65 HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 66 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 67 } + 68 else if (sstate == SS_ERR) + 69 { + 70 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 71 p_serial_mgr_start(); + 72 } + 73 } + 74 + 75 void p_serial_mgr_start() + 76 { + 77 sstate = SS_IDLE; + 78 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 79 } +~ +~ +~ +### Stack ########################################################################################################### +[0] from 0x0800449a in p_serial_mgr_service+18 at shared/drivers/p_serial_mgr.c:73 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x0800449a in p_serial_mgr_service+18 at shared/drivers/p_serial_mgr.c:73 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x9908 lma 0x80001c0 +Loading section .rodata, size 0x4a8 lma 0x8009ac8 +Loading section .ARM, size 0x8 lma 0x8009f70 +Loading section .init_array, size 0x8 lma 0x8009f78 +Loading section .fini_array, size 0x8 lma 0x8009f80 +Loading section .data, size 0x9a8 lma 0x8009f88 +Start address 0x08004560, load size 43264 +Transfer rate: 29 KB/sec, 4807 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +0x08004498 in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:73 +73 } +### Assembly ######################################################################################################## + 0x0800448e p_serial_mgr_service+6 ldrb r3, [r3, #0] + 0x08004490 p_serial_mgr_service+8 cmp r3, #1 + 0x08004492 p_serial_mgr_service+10 beq.n 0x800449c + 0x08004494 p_serial_mgr_service+12 cmp r3, #2 + 0x08004496 p_serial_mgr_service+14 beq.n 0x8004518 + 0x08004498 p_serial_mgr_service+16 add sp, #16 + 0x0800449a p_serial_mgr_service+18 pop {r4, pc} + 0x0800449c p_serial_mgr_service+20 ldr r3, [pc, #152] ; (0x8004538 ) + 0x0800449e p_serial_mgr_service+22 ldrb r3, [r3, #0] + 0x080044a0 p_serial_mgr_service+24 add.w r3, r3, r3, lsl #7 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08004498 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 63 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 64 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 65 HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 66 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 67 } + 68 else if (sstate == SS_ERR) + 69 { + 70 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 71 p_serial_mgr_start(); + 72 } + 73 } + 74 + 75 void p_serial_mgr_start() + 76 { + 77 sstate = SS_IDLE; + 78 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 79 } +~ +~ +~ +### Stack ########################################################################################################### +[0] from 0x08004498 in p_serial_mgr_service+16 at shared/drivers/p_serial_mgr.c:73 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004498 in p_serial_mgr_service+16 at shared/drivers/p_serial_mgr.c:73 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x9908 lma 0x80001c0 +Loading section .rodata, size 0x4a8 lma 0x8009ac8 +Loading section .ARM, size 0x8 lma 0x8009f70 +Loading section .init_array, size 0x8 lma 0x8009f78 +Loading section .fini_array, size 0x8 lma 0x8009f80 +Loading section .data, size 0x9a8 lma 0x8009f88 +Start address 0x08004560, load size 43264 +Transfer rate: 29 KB/sec, 4807 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +0x0800448e in p_serial_mgr_start () at shared/drivers/p_serial_mgr.c:83 +83 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); +### Assembly ######################################################################################################## + 0x08004484 p_serial_mgr_start+4 lsrs r0, r4, #16 + 0x08004486 p_serial_mgr_start+6 movs r0, #0 + 0x08004488 p_serial_mgr_start+8 push {r4, lr} + 0x0800448a p_serial_mgr_start+10 sub sp, #16 + 0x0800448c p_serial_mgr_start+12 ldr r3, [pc, #164] ; (0x8004534 ) + 0x0800448e p_serial_mgr_start+14 ldrb r3, [r3, #0] + 0x08004490 p_serial_mgr_start+16 cmp r3, #1 + 0x08004492 p_serial_mgr_start+18 beq.n 0x800449c + 0x08004494 p_serial_mgr_start+20 cmp r3, #2 + 0x08004496 p_serial_mgr_start+22 beq.n 0x8004518 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x0800448e primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x20002050 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 73 { + 74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_flush(); + 76 p_serial_mgr_start(); + 77 } + 78 } + 79 + 80 void p_serial_mgr_start() + 81 { + 82 sstate = SS_IDLE; + 83 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 84 } +~ +~ +~ +~ +~ +~ +~ +~ +### Stack ########################################################################################################### +[0] from 0x0800448e in p_serial_mgr_start+14 at shared/drivers/p_serial_mgr.c:83 +[1] from 0x0401027e +### Threads ######################################################################################################### +[1] id 0 from 0x0800448e in p_serial_mgr_start+14 at shared/drivers/p_serial_mgr.c:83 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x9938 lma 0x80001c0 +Loading section .rodata, size 0x4a8 lma 0x8009af8 +Loading section .ARM, size 0x8 lma 0x8009fa0 +Loading section .init_array, size 0x8 lma 0x8009fa8 +Loading section .fini_array, size 0x8 lma 0x8009fb0 +Loading section .data, size 0x9a8 lma 0x8009fb8 +Start address 0x08004590, load size 43312 +Transfer rate: 29 KB/sec, 4812 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +main () at Core/Src/main.c:141 +141 p_serial_mgr_service(); +### Assembly ######################################################################################################## + 0x08001516 main+110 mov r0, r4 + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004480 + 0x08001526 main+126 bl 0x80044b4 + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08001526 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } + 149 // serial_pkt_t *pkt = NULL; + 150 // if ((pkt = p_serial_mgr_service()) != NULL) +### Stack ########################################################################################################### +[0] from 0x08001526 in main+126 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08001526 in main+126 at Core/Src/main.c:141 +### Variables ####################################################################################################### +##################################################################################################################### +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +target halted due to debug-request, current mode: Thread +xPSR: 0x01000000 pc: 0x08004590 msp: 0x20010000 +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x9938 lma 0x80001c0 +Loading section .rodata, size 0x4a8 lma 0x8009af8 +Loading section .ARM, size 0x8 lma 0x8009fa0 +Loading section .init_array, size 0x8 lma 0x8009fa8 +Loading section .fini_array, size 0x8 lma 0x8009fb0 +Loading section .data, size 0x9a8 lma 0x8009fb8 +Start address 0x08004590, load size 43312 +Transfer rate: 29 KB/sec, 4812 bytes/write. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# + +Program received signal SIGINT, Interrupt. +0x080044c6 in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:78 +78 } +### Assembly ######################################################################################################## + 0x080044bc p_serial_mgr_service+8 cmp r3, #1 + 0x080044be p_serial_mgr_service+10 beq.n 0x80044c8 + 0x080044c0 p_serial_mgr_service+12 cmp r3, #2 + 0x080044c2 p_serial_mgr_service+14 beq.n 0x8004544 + 0x080044c4 p_serial_mgr_service+16 add sp, #16 + 0x080044c6 p_serial_mgr_service+18 pop {r4, pc} + 0x080044c8 p_serial_mgr_service+20 ldr r3, [pc, #156] ; (0x8004568 ) + 0x080044ca p_serial_mgr_service+22 ldrb r3, [r3, #0] + 0x080044cc p_serial_mgr_service+24 add.w r3, r3, r3, lsl #7 + 0x080044d0 p_serial_mgr_service+28 lsls r1, r3, #2 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x080044c6 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffe8 msp 0x2000ffe8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 68 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 69 HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 70 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 71 } + 72 else if (sstate == SS_ERR) + 73 { + 74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_flush(); + 76 p_serial_mgr_start(); + 77 } + 78 } + 79 + 80 void p_serial_mgr_start() + 81 { + 82 sstate = SS_IDLE; + 83 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 84 } +~ +~ +~ +### Stack ########################################################################################################### +[0] from 0x080044c6 in p_serial_mgr_service+18 at shared/drivers/p_serial_mgr.c:78 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080044c6 in p_serial_mgr_service+18 at shared/drivers/p_serial_mgr.c:78 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x0800152a +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004480 + 0x08001526 main+126 bl 0x80044b4 + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 + 0x08001532 main+138 lsrs r0, r0, #32 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x0800152a primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x0800152a in main+130 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x0800152a in main+130 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08001526 +141 p_serial_mgr_service(); +### Assembly ######################################################################################################## + 0x08001516 main+110 mov r0, r4 + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004480 + 0x08001526 main+126 bl 0x80044b4 + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08001526 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } + 149 // serial_pkt_t *pkt = NULL; + 150 // if ((pkt = p_serial_mgr_service()) != NULL) +### Stack ########################################################################################################### +[0] from 0x08001526 in main+126 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08001526 in main+126 at Core/Src/main.c:141 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080044b4 +Note: automatically using hardware breakpoints for read-only addresses. +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:58 +58 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ + 0x080044b4 p_serial_mgr_service+0 push {r4, lr} + 0x080044b6 p_serial_mgr_service+2 sub sp, #16 + 0x080044b8 p_serial_mgr_service+4 ldr r3, [pc, #168] ; (0x8004564 ) + 0x080044ba p_serial_mgr_service+6 ldrb r3, [r3, #0] + 0x080044bc p_serial_mgr_service+8 cmp r3, #1 + 0x080044be p_serial_mgr_service+10 beq.n 0x80044c8 + 0x080044c0 p_serial_mgr_service+12 cmp r3, #2 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x080044b8 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 48 } + 49 } + 50 + 51 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 52 { + 53 _serial_huart_inst = huart; + 54 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 55 } + 56 void p_serial_mgr_service(void) + 57 { + 58 if (sstate == SS_START) + 59 { + 60 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20); + 61 for (int ind = 0; ind < 24; ind++) + 62 { + 63 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 64 } + 65 PDEBUG("\n\n"); + 66 sstate = SS_IDLE; + 67 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x080044b8 in p_serial_mgr_service+4 at shared/drivers/p_serial_mgr.c:58 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080044b8 in p_serial_mgr_service+4 at shared/drivers/p_serial_mgr.c:58 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080044ba +halted: PC: 0x080044bc +halted: PC: 0x080044be +halted: PC: 0x080044c0 +72 else if (sstate == SS_ERR) +### Assembly ######################################################################################################## + 0x080044b6 p_serial_mgr_service+2 sub sp, #16 + 0x080044b8 p_serial_mgr_service+4 ldr r3, [pc, #168] ; (0x8004564 ) + 0x080044ba p_serial_mgr_service+6 ldrb r3, [r3, #0] + 0x080044bc p_serial_mgr_service+8 cmp r3, #1 + 0x080044be p_serial_mgr_service+10 beq.n 0x80044c8 + 0x080044c0 p_serial_mgr_service+12 cmp r3, #2 + 0x080044c2 p_serial_mgr_service+14 beq.n 0x8004544 + 0x080044c4 p_serial_mgr_service+16 add sp, #16 + 0x080044c6 p_serial_mgr_service+18 pop {r4, pc} + 0x080044c8 p_serial_mgr_service+20 ldr r3, [pc, #156] ; (0x8004568 ) +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x080044c0 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 62 { + 63 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 64 } + 65 PDEBUG("\n\n"); + 66 sstate = SS_IDLE; + 67 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 68 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 69 HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 70 HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 71 } + 72 else if (sstate == SS_ERR) + 73 { + 74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_flush(); + 76 p_serial_mgr_start(); + 77 } + 78 } + 79 + 80 void p_serial_mgr_start() + 81 { +### Stack ########################################################################################################### +[0] from 0x080044c0 in p_serial_mgr_service+12 at shared/drivers/p_serial_mgr.c:72 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080044c0 in p_serial_mgr_service+12 at shared/drivers/p_serial_mgr.c:72 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080044c2 +halted: PC: 0x080044c4 +halted: PC: 0x080044c6 +halted: PC: 0x0800152a +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004480 + 0x08001526 main+126 bl 0x80044b4 + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 + 0x08001532 main+138 lsrs r0, r0, #32 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x0800152a primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x0800152a in main+130 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x0800152a in main+130 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08001526 +141 p_serial_mgr_service(); +### Assembly ######################################################################################################## + 0x08001516 main+110 mov r0, r4 + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004480 + 0x08001526 main+126 bl 0x80044b4 + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08001526 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } + 149 // serial_pkt_t *pkt = NULL; + 150 // if ((pkt = p_serial_mgr_service()) != NULL) +### Stack ########################################################################################################### +[0] from 0x08001526 in main+126 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08001526 in main+126 at Core/Src/main.c:141 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080044b4 +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:58 +58 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ + 0x080044b4 p_serial_mgr_service+0 push {r4, lr} + 0x080044b6 p_serial_mgr_service+2 sub sp, #16 + 0x080044b8 p_serial_mgr_service+4 ldr r3, [pc, #168] ; (0x8004564 ) + 0x080044ba p_serial_mgr_service+6 ldrb r3, [r3, #0] + 0x080044bc p_serial_mgr_service+8 cmp r3, #1 + 0x080044be p_serial_mgr_service+10 beq.n 0x80044c8 + 0x080044c0 p_serial_mgr_service+12 cmp r3, #2 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x080044b8 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 48 } + 49 } + 50 + 51 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 52 { + 53 _serial_huart_inst = huart; + 54 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 55 } + 56 void p_serial_mgr_service(void) + 57 { + 58 if (sstate == SS_START) + 59 { + 60 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20); + 61 for (int ind = 0; ind < 24; ind++) + 62 { + 63 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 64 } + 65 PDEBUG("\n\n"); + 66 sstate = SS_IDLE; + 67 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x080044b8 in p_serial_mgr_service+4 at shared/drivers/p_serial_mgr.c:58 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080044b8 in p_serial_mgr_service+4 at shared/drivers/p_serial_mgr.c:58 +### Variables ####################################################################################################### +##################################################################################################################### +$1 = SS_IDLE +Quit +Detaching from program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf, Remote target +[Inferior 1 (Remote target) detached] +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:58 +58 { +### Assembly ######################################################################################################## +~ +~ +~ +~ +~ + 0x080044b8 p_serial_mgr_service+0 ldr r3, [pc, #168] ; (0x8004564 ) + 0x080044ba p_serial_mgr_service+2 ldrb r3, [r3, #0] + 0x080044bc p_serial_mgr_service+4 cmp r3, #1 + 0x080044be p_serial_mgr_service+6 beq.n 0x80044c8 + 0x080044c0 p_serial_mgr_service+8 cmp r3, #2 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x080044b8 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 48 sstate = SS_ERR; + 49 } + 50 } + 51 + 52 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 53 { + 54 _serial_huart_inst = huart; + 55 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 56 } + 57 void p_serial_mgr_service(void) + 58 { + 59 if (sstate == SS_START) + 60 { + 61 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20); + 62 for (int ind = 0; ind < 24; ind++) + 63 { + 64 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 65 } + 66 PDEBUG("\n\n"); + 67 sstate = SS_IDLE; +### Stack ########################################################################################################### +[0] from 0x080044b8 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:58 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080044b8 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:58 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x9940 lma 0x80001c0 +Loading section .rodata, size 0x4a8 lma 0x8009b00 +Loading section .ARM, size 0x8 lma 0x8009fa8 +Loading section .init_array, size 0x8 lma 0x8009fb0 +Loading section .fini_array, size 0x8 lma 0x8009fb8 +Loading section .data, size 0x9a8 lma 0x8009fc0 +Start address 0x08004594, load size 43320 +Transfer rate: 29 KB/sec, 4813 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +main () at Core/Src/main.c:141 +141 p_serial_mgr_service(); +### Assembly ######################################################################################################## + 0x08001516 main+110 mov r0, r4 + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004480 + 0x08001526 main+126 bl 0x80044b8 + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08001526 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } + 149 // serial_pkt_t *pkt = NULL; + 150 // if ((pkt = p_serial_mgr_service()) != NULL) +### Stack ########################################################################################################### +[0] from 0x08001526 in main+126 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08001526 in main+126 at Core/Src/main.c:141 +### Variables ####################################################################################################### +##################################################################################################################### +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +target halted due to debug-request, current mode: Thread +xPSR: 0x01000000 pc: 0x08004594 msp: 0x20010000 +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x9928 lma 0x80001c0 +Loading section .rodata, size 0x4a8 lma 0x8009ae8 +Loading section .ARM, size 0x8 lma 0x8009f90 +Loading section .init_array, size 0x8 lma 0x8009f98 +Loading section .fini_array, size 0x8 lma 0x8009fa0 +Loading section .data, size 0x9a8 lma 0x8009fa8 +Start address 0x08004580, load size 43296 +Transfer rate: 29 KB/sec, 4810 bytes/write. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# + +Program received signal SIGINT, Interrupt. +0x080044ce in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:78 +78 } +### Assembly ######################################################################################################## + 0x080044c4 p_serial_mgr_service+8 cmp r3, #1 + 0x080044c6 p_serial_mgr_service+10 beq.n 0x80044d0 + 0x080044c8 p_serial_mgr_service+12 cmp r3, #2 + 0x080044ca p_serial_mgr_service+14 beq.n 0x8004534 + 0x080044cc p_serial_mgr_service+16 add sp, #16 + 0x080044ce p_serial_mgr_service+18 pop {r4, pc} + 0x080044d0 p_serial_mgr_service+20 ldr r3, [pc, #132] ; (0x8004558 ) + 0x080044d2 p_serial_mgr_service+22 ldrb r3, [r3, #0] + 0x080044d4 p_serial_mgr_service+24 add.w r3, r3, r3, lsl #7 + 0x080044d8 p_serial_mgr_service+28 lsls r1, r3, #2 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x080044ce primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffe8 msp 0x2000ffe8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 68 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 69 HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 70 p_serial_mgr_start(); + 71 } + 72 else if (sstate == SS_ERR) + 73 { + 74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_flush(); + 76 p_serial_mgr_start(); + 77 } + 78 } + 79 + 80 void p_serial_mgr_start() + 81 { + 82 sstate = SS_IDLE; + 83 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 84 } +~ +~ +~ +### Stack ########################################################################################################### +[0] from 0x080044ce in p_serial_mgr_service+18 at shared/drivers/p_serial_mgr.c:78 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080044ce in p_serial_mgr_service+18 at shared/drivers/p_serial_mgr.c:78 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x0800152a +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004480 + 0x08001526 main+126 bl 0x80044bc + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 + 0x08001532 main+138 lsrs r0, r0, #32 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x0800152a primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x0800152a in main+130 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x0800152a in main+130 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08001526 +141 p_serial_mgr_service(); +### Assembly ######################################################################################################## + 0x08001516 main+110 mov r0, r4 + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004480 + 0x08001526 main+126 bl 0x80044bc + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08001526 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } + 149 // serial_pkt_t *pkt = NULL; + 150 // if ((pkt = p_serial_mgr_service()) != NULL) +### Stack ########################################################################################################### +[0] from 0x08001526 in main+126 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08001526 in main+126 at Core/Src/main.c:141 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080044bc +Note: automatically using hardware breakpoints for read-only addresses. +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:59 +59 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ + 0x080044bc p_serial_mgr_service+0 push {r4, lr} + 0x080044be p_serial_mgr_service+2 sub sp, #16 + 0x080044c0 p_serial_mgr_service+4 ldr r3, [pc, #144] ; (0x8004554 ) + 0x080044c2 p_serial_mgr_service+6 ldrb r3, [r3, #0] + 0x080044c4 p_serial_mgr_service+8 cmp r3, #1 + 0x080044c6 p_serial_mgr_service+10 beq.n 0x80044d0 + 0x080044c8 p_serial_mgr_service+12 cmp r3, #2 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x080044c0 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 49 } + 50 } + 51 + 52 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 53 { + 54 _serial_huart_inst = huart; + 55 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 56 } + 57 void p_serial_mgr_service(void) + 58 { + 59 if (sstate == SS_START) + 60 { + 61 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20); + 62 for (int ind = 0; ind < 24; ind++) + 63 { + 64 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 65 } + 66 PDEBUG("\n\n"); + 67 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 68 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; +### Stack ########################################################################################################### +[0] from 0x080044c0 in p_serial_mgr_service+4 at shared/drivers/p_serial_mgr.c:59 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080044c0 in p_serial_mgr_service+4 at shared/drivers/p_serial_mgr.c:59 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080044c2 +halted: PC: 0x080044c4 +halted: PC: 0x080044c6 +halted: PC: 0x080044c8 +72 else if (sstate == SS_ERR) +### Assembly ######################################################################################################## + 0x080044be p_serial_mgr_service+2 sub sp, #16 + 0x080044c0 p_serial_mgr_service+4 ldr r3, [pc, #144] ; (0x8004554 ) + 0x080044c2 p_serial_mgr_service+6 ldrb r3, [r3, #0] + 0x080044c4 p_serial_mgr_service+8 cmp r3, #1 + 0x080044c6 p_serial_mgr_service+10 beq.n 0x80044d0 + 0x080044c8 p_serial_mgr_service+12 cmp r3, #2 + 0x080044ca p_serial_mgr_service+14 beq.n 0x8004534 + 0x080044cc p_serial_mgr_service+16 add sp, #16 + 0x080044ce p_serial_mgr_service+18 pop {r4, pc} + 0x080044d0 p_serial_mgr_service+20 ldr r3, [pc, #132] ; (0x8004558 ) +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x080044c8 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 62 for (int ind = 0; ind < 24; ind++) + 63 { + 64 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 65 } + 66 PDEBUG("\n\n"); + 67 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 68 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 69 HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 70 p_serial_mgr_start(); + 71 } + 72 else if (sstate == SS_ERR) + 73 { + 74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_flush(); + 76 p_serial_mgr_start(); + 77 } + 78 } + 79 + 80 void p_serial_mgr_start() + 81 { +### Stack ########################################################################################################### +[0] from 0x080044c8 in p_serial_mgr_service+12 at shared/drivers/p_serial_mgr.c:72 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080044c8 in p_serial_mgr_service+12 at shared/drivers/p_serial_mgr.c:72 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080044ca +halted: PC: 0x080044cc +halted: PC: 0x080044ce +halted: PC: 0x0800152a +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004480 + 0x08001526 main+126 bl 0x80044bc + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 + 0x08001532 main+138 lsrs r0, r0, #32 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x0800152a primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x0800152a in main+130 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x0800152a in main+130 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +Quit +### Output/messages ################################################################################################# +halted: PC: 0x08001526 +141 p_serial_mgr_service(); +### Assembly ######################################################################################################## + 0x08001516 main+110 mov r0, r4 + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004480 + 0x08001526 main+126 bl 0x80044bc + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08001526 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } + 149 // serial_pkt_t *pkt = NULL; + 150 // if ((pkt = p_serial_mgr_service()) != NULL) +### Stack ########################################################################################################### +[0] from 0x08001526 in main+126 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08001526 in main+126 at Core/Src/main.c:141 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x080044bc +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:59 +59 if (sstate == SS_START) +### Assembly ######################################################################################################## +~ +~ +~ + 0x080044bc p_serial_mgr_service+0 push {r4, lr} + 0x080044be p_serial_mgr_service+2 sub sp, #16 + 0x080044c0 p_serial_mgr_service+4 ldr r3, [pc, #144] ; (0x8004554 ) + 0x080044c2 p_serial_mgr_service+6 ldrb r3, [r3, #0] + 0x080044c4 p_serial_mgr_service+8 cmp r3, #1 + 0x080044c6 p_serial_mgr_service+10 beq.n 0x80044d0 + 0x080044c8 p_serial_mgr_service+12 cmp r3, #2 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x080044c0 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 49 } + 50 } + 51 + 52 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 53 { + 54 _serial_huart_inst = huart; + 55 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 56 } + 57 void p_serial_mgr_service(void) + 58 { + 59 if (sstate == SS_START) + 60 { + 61 HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20); + 62 for (int ind = 0; ind < 24; ind++) + 63 { + 64 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 65 } + 66 PDEBUG("\n\n"); + 67 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 68 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; +### Stack ########################################################################################################### +[0] from 0x080044c0 in p_serial_mgr_service+4 at shared/drivers/p_serial_mgr.c:59 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080044c0 in p_serial_mgr_service+4 at shared/drivers/p_serial_mgr.c:59 +### Variables ####################################################################################################### +##################################################################################################################### +No symbol "p_serial_mgr" in current context. +Breakpoint 1 at 0x800440c: file shared/drivers/p_serial_mgr.c, line 41. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# + +Breakpoint 1, UART1_RxCpltCallback (huart=0x20000aa8 ) at shared/drivers/p_serial_mgr.c:41 +41 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) +### Assembly ######################################################################################################## +~ +~ +~ +~ +~ +!0x0800440c UART1_RxCpltCallback+0 ldr r3, [pc, #36] ; (0x8004434 ) + 0x0800440e UART1_RxCpltCallback+2 ldrb r3, [r3, #0] + 0x08004410 UART1_RxCpltCallback+4 cbnz r3, 0x8004424 + 0x08004412 UART1_RxCpltCallback+6 ldr r3, [pc, #36] ; (0x8004438 ) + 0x08004414 UART1_RxCpltCallback+8 ldrb r3, [r3, #0] +### Breakpoints ##################################################################################################### +[1] break at 0x0800440c in shared/drivers/p_serial_mgr.c:41 for p_serial_mgr.c:41 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00000002 r10 0x00000000 pc 0x0800440c primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000035 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0x00001000 fpscr 0x00000010 faultmask 0x00 + r3 0x0800440d r8 0x00000000 sp 0x2000ff68 msp 0x2000ff68 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x08003683 psp 0x00000000 +### Source ########################################################################################################## + 31 + 32 static uint8_t rxc = '\0'; + 33 static serial_state_t sstate = SS_IDLE; + 34 + 35 static void p_serial_mgr_flush() + 36 { + 37 HAL_UART_Receive(_serial_huart_inst, sbuffer[active_buffer], MAX_MESSAGE_LEN, 10); + 38 } + 39 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 40 { +!41 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 42 { + 43 sstate = SS_START; + 44 return; + 45 } + 46 else + 47 { + 48 sstate = SS_ERR; + 49 } + 50 } +### Stack ########################################################################################################### +[0] from 0x0800440c in UART1_RxCpltCallback+0 at shared/drivers/p_serial_mgr.c:41 +[1] from 0x08003682 in UART_RxISR_8BIT+130 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x0800387e in HAL_UART_IRQHandler+278 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2427 +[3] from 0x08001574 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x080044bc in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:58 +[6] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x0800440c in UART1_RxCpltCallback+0 at shared/drivers/p_serial_mgr.c:41 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +##################################################################################################################### +$1 = 0x0 +Continuing. +### Output/messages ################################################################################################# +halted: PC: 0x0800440e + +Breakpoint 1, UART1_RxCpltCallback (huart=0x20000aa8 ) at shared/drivers/p_serial_mgr.c:41 +41 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) +### Assembly ######################################################################################################## +~ +~ +~ +~ +~ +!0x0800440c UART1_RxCpltCallback+0 ldr r3, [pc, #36] ; (0x8004434 ) + 0x0800440e UART1_RxCpltCallback+2 ldrb r3, [r3, #0] + 0x08004410 UART1_RxCpltCallback+4 cbnz r3, 0x8004424 + 0x08004412 UART1_RxCpltCallback+6 ldr r3, [pc, #36] ; (0x8004438 ) + 0x08004414 UART1_RxCpltCallback+8 ldrb r3, [r3, #0] +### Breakpoints ##################################################################################################### +[1] break at 0x0800440c in shared/drivers/p_serial_mgr.c:41 for p_serial_mgr.c:41 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$0 = 0 '\000' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000aa8 r5 0x00000002 r10 0x00000000 pc 0x0800440c primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000035 basepri 0x00 + r2 0x40013808 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x0800440d r8 0x00000000 sp 0x2000ff68 msp 0x2000ff68 control 0x00 + r4 0x20000aa8 r9 0x00000000 lr 0x08003683 psp 0x00000000 +### Source ########################################################################################################## + 31 + 32 static uint8_t rxc = '\0'; + 33 static serial_state_t sstate = SS_IDLE; + 34 + 35 static void p_serial_mgr_flush() + 36 { + 37 HAL_UART_Receive(_serial_huart_inst, sbuffer[active_buffer], MAX_MESSAGE_LEN, 10); + 38 } + 39 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 40 { +!41 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 42 { + 43 sstate = SS_START; + 44 return; + 45 } + 46 else + 47 { + 48 sstate = SS_ERR; + 49 } + 50 } +### Stack ########################################################################################################### +[0] from 0x0800440c in UART1_RxCpltCallback+0 at shared/drivers/p_serial_mgr.c:41 +[1] from 0x08003682 in UART_RxISR_8BIT+130 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x0800387e in HAL_UART_IRQHandler+278 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2427 +[3] from 0x08001574 in USART1_IRQHandler+8 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x0800152a in main+130 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x0800440c in UART1_RxCpltCallback+0 at shared/drivers/p_serial_mgr.c:41 +### Variables ####################################################################################################### +arg huart = 0x20000aa8 : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +##################################################################################################################### +Continuing. +### Output/messages ################################################################################################# +halted: PC: 0x0800440e + +Program received signal SIGINT, Interrupt. +0x080044ce in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:78 +78 } +### Assembly ######################################################################################################## + 0x080044c4 p_serial_mgr_service+8 cmp r3, #1 + 0x080044c6 p_serial_mgr_service+10 beq.n 0x80044d0 + 0x080044c8 p_serial_mgr_service+12 cmp r3, #2 + 0x080044ca p_serial_mgr_service+14 beq.n 0x8004534 + 0x080044cc p_serial_mgr_service+16 add sp, #16 + 0x080044ce p_serial_mgr_service+18 pop {r4, pc} + 0x080044d0 p_serial_mgr_service+20 ldr r3, [pc, #132] ; (0x8004558 ) + 0x080044d2 p_serial_mgr_service+22 ldrb r3, [r3, #0] + 0x080044d4 p_serial_mgr_service+24 add.w r3, r3, r3, lsl #7 + 0x080044d8 p_serial_mgr_service+28 lsls r1, r3, #2 +### Breakpoints ##################################################################################################### +[1] break at 0x0800440c in shared/drivers/p_serial_mgr.c:41 for p_serial_mgr.c:41 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$0 = 0 '\000' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x080044ce primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffe8 msp 0x2000ffe8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 68 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 69 HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 70 p_serial_mgr_start(); + 71 } + 72 else if (sstate == SS_ERR) + 73 { + 74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_flush(); + 76 p_serial_mgr_start(); + 77 } + 78 } + 79 + 80 void p_serial_mgr_start() + 81 { + 82 sstate = SS_IDLE; + 83 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 84 } +~ +~ +~ +### Stack ########################################################################################################### +[0] from 0x080044ce in p_serial_mgr_service+18 at shared/drivers/p_serial_mgr.c:78 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080044ce in p_serial_mgr_service+18 at shared/drivers/p_serial_mgr.c:78 +### Variables ####################################################################################################### +##################################################################################################################### +Quit +Breakpoint 2 at 0x8004534: file shared/drivers/p_serial_mgr.c, line 74. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# + +Breakpoint 2, p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:74 +74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); +### Assembly ######################################################################################################## + 0x08004526 p_serial_mgr_service+106 ldr r0, [pc, #56] ; (0x8004560 ) + 0x08004528 p_serial_mgr_service+108 ldr r0, [r0, #0] + 0x0800452a p_serial_mgr_service+110 bl 0x8003eba + 0x0800452e p_serial_mgr_service+114 bl 0x8004480 + 0x08004532 p_serial_mgr_service+118 b.n 0x80044cc +!0x08004534 p_serial_mgr_service+120 ldr r3, [pc, #32] ; (0x8004558 ) + 0x08004536 p_serial_mgr_service+122 ldrb r3, [r3, #0] + 0x08004538 p_serial_mgr_service+124 add.w r3, r3, r3, lsl #7 + 0x0800453c p_serial_mgr_service+128 lsls r2, r3, #2 + 0x0800453e p_serial_mgr_service+130 ldr r3, [pc, #28] ; (0x800455c ) +### Breakpoints ##################################################################################################### +[2] break at 0x08004534 in shared/drivers/p_serial_mgr.c:74 for p_serial_mgr.c:73 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$0 = 0 '\000' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08004534 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0x00001000 fpscr 0x00000010 faultmask 0x00 + r3 0x00000002 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 64 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 65 } + 66 PDEBUG("\n\n"); + 67 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 68 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 69 HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 70 p_serial_mgr_start(); + 71 } + 72 else if (sstate == SS_ERR) + 73 { +!74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_flush(); + 76 p_serial_mgr_start(); + 77 } + 78 } + 79 + 80 void p_serial_mgr_start() + 81 { + 82 sstate = SS_IDLE; + 83 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); +### Stack ########################################################################################################### +[0] from 0x08004534 in p_serial_mgr_service+120 at shared/drivers/p_serial_mgr.c:74 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004534 in p_serial_mgr_service+120 at shared/drivers/p_serial_mgr.c:74 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004536 +halted: PC: 0x08004538 +halted: PC: 0x0800453c +halted: PC: 0x0800453e +halted: PC: 0x08004540 +halted: PC: 0x08004542 +halted: PC: 0x08004544 +halted: PC: 0x08004390 +75 p_serial_mgr_flush(); +### Assembly ######################################################################################################## + 0x0800453c p_serial_mgr_service+128 lsls r2, r3, #2 + 0x0800453e p_serial_mgr_service+130 ldr r3, [pc, #28] ; (0x800455c ) + 0x08004540 p_serial_mgr_service+132 ldrb r1, [r3, r2] + 0x08004542 p_serial_mgr_service+134 ldr r0, [pc, #44] ; (0x8004570 ) + 0x08004544 p_serial_mgr_service+136 bl 0x8004390 + 0x08004548 p_serial_mgr_service+140 bl 0x8004440 + 0x0800454c p_serial_mgr_service+144 bl 0x8004480 + 0x08004550 p_serial_mgr_service+148 b.n 0x80044cc + 0x08004552 p_serial_mgr_service+150 nop + 0x08004554 p_serial_mgr_service+152 movs r0, #80 ; 0x50 +### Breakpoints ##################################################################################################### +[2] break at 0x08004534 in shared/drivers/p_serial_mgr.c:74 for p_serial_mgr.c:73 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$0 = 0 '\000' +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08004548 primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x006000d0 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000020 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x08004549 psp 0x00000000 +### Source ########################################################################################################## + 65 } + 66 PDEBUG("\n\n"); + 67 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 68 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 69 HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 70 p_serial_mgr_start(); + 71 } + 72 else if (sstate == SS_ERR) + 73 { +!74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_flush(); + 76 p_serial_mgr_start(); + 77 } + 78 } + 79 + 80 void p_serial_mgr_start() + 81 { + 82 sstate = SS_IDLE; + 83 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 84 } +### Stack ########################################################################################################### +[0] from 0x08004548 in p_serial_mgr_service+140 at shared/drivers/p_serial_mgr.c:75 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004548 in p_serial_mgr_service+140 at shared/drivers/p_serial_mgr.c:75 +### Variables ####################################################################################################### +##################################################################################################################### +Detaching from program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf, Remote target +[Inferior 1 (Remote target) detached] +0x08004548 in mc_init (tim=0x0) at shared/devices/motor_controller.c:10 +10 } +### Assembly ######################################################################################################## +~ +~ +~ +~ + 0x08004544 mc_init+0 bl 0x8004390 + 0x08004548 mc_init+4 bl 0x8004440 + 0x0800454c mc_init+8 bl 0x8004480 +~ +~ +~ +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08004548 primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x006000d0 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000020 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x08004549 psp 0x00000000 +### Source ########################################################################################################## +~ + 1 #include "motor_controller.h" + 2 #include "putil.h" + 3 #include "stm32l4xx_hal_tim.h" + 4 #include + 5 + 6 static TIM_HandleTypeDef *_motor_timer = NULL; + 7 void mc_init(TIM_HandleTypeDef *tim) + 8 { + 9 _motor_timer = tim; + 10 } + 11 + 12 // degrees is anything from 0-359 + 13 // speed is anything from 0-99 + 14 void mc_service(uint16_t degrees, uint8_t speed) + 15 { + 16 float right_pwm = cos(((float)degrees * (3.1415 / 180.0f))); + 17 float left_pwm = right_pwm; + 18 // PDEBUG("| DEGREES | COS | SIN | \n"); + 19 // PDEBUG("| %7d | %-5.3f | %-5.3f | \n", +### Stack ########################################################################################################### +[0] from 0x08004548 in mc_init+4 at shared/devices/motor_controller.c:10 +### Threads ######################################################################################################### +[1] id 0 from 0x08004548 in mc_init+4 at shared/devices/motor_controller.c:10 +### Variables ####################################################################################################### +arg tim = 0x0: {Instance = 0x20010000,Init = {Prescaler = 134235521,CounterMode = 134223173,Period = … +##################################################################################################################### +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +target halted due to debug-request, current mode: Thread +xPSR: 0x01000000 pc: 0x08004580 msp: 0x20010000 +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x98f8 lma 0x80001c0 +Loading section .rodata, size 0x4a8 lma 0x8009ab8 +Loading section .ARM, size 0x8 lma 0x8009f60 +Loading section .init_array, size 0x8 lma 0x8009f68 +Loading section .fini_array, size 0x8 lma 0x8009f70 +Loading section .data, size 0x9a8 lma 0x8009f78 +Start address 0x08004550, load size 43248 +Transfer rate: 29 KB/sec, 4805 bytes/write. +Breakpoint 1 at 0x8004508: file shared/drivers/p_serial_mgr.c, line 73. +Note: automatically using hardware breakpoints for read-only addresses. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# + +Breakpoint 1, p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:73 +73 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); +### Assembly ######################################################################################################## + 0x080044fa p_serial_mgr_service+106 ldr r0, [pc, #52] ; (0x8004530 ) + 0x080044fc p_serial_mgr_service+108 ldr r0, [r0, #0] + 0x080044fe p_serial_mgr_service+110 bl 0x8003eba + 0x08004502 p_serial_mgr_service+114 bl 0x8004454 + 0x08004506 p_serial_mgr_service+118 b.n 0x80044a0 +!0x08004508 p_serial_mgr_service+120 ldr r3, [pc, #28] ; (0x8004528 ) + 0x0800450a p_serial_mgr_service+122 ldrb r3, [r3, #0] + 0x0800450c p_serial_mgr_service+124 add.w r3, r3, r3, lsl #7 + 0x08004510 p_serial_mgr_service+128 lsls r2, r3, #2 + 0x08004512 p_serial_mgr_service+130 ldr r3, [pc, #24] ; (0x800452c ) +### Breakpoints ##################################################################################################### +[1] break at 0x08004508 in shared/drivers/p_serial_mgr.c:73 for p_serial_mgr.c:73 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08004508 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0x00001000 fpscr 0x00000010 faultmask 0x00 + r3 0x00000002 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 63 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 64 } + 65 PDEBUG("\n\n"); + 66 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 67 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 68 HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 69 p_serial_mgr_start(); + 70 } + 71 else if (sstate == SS_ERR) + 72 { +!73 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 74 p_serial_mgr_start(); + 75 } + 76 } + 77 + 78 void p_serial_mgr_start() + 79 { + 80 sstate = SS_IDLE; + 81 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 82 } +### Stack ########################################################################################################### +[0] from 0x08004508 in p_serial_mgr_service+120 at shared/drivers/p_serial_mgr.c:73 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004508 in p_serial_mgr_service+120 at shared/drivers/p_serial_mgr.c:73 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x0800450a +halted: PC: 0x0800450c +halted: PC: 0x08004510 +halted: PC: 0x08004512 +halted: PC: 0x08004514 +halted: PC: 0x08004516 +halted: PC: 0x08004518 +halted: PC: 0x08004390 +74 p_serial_mgr_start(); +### Assembly ######################################################################################################## + 0x08004510 p_serial_mgr_service+128 lsls r2, r3, #2 + 0x08004512 p_serial_mgr_service+130 ldr r3, [pc, #24] ; (0x800452c ) + 0x08004514 p_serial_mgr_service+132 ldrb r1, [r3, r2] + 0x08004516 p_serial_mgr_service+134 ldr r0, [pc, #40] ; (0x8004540 ) + 0x08004518 p_serial_mgr_service+136 bl 0x8004390 + 0x0800451c p_serial_mgr_service+140 bl 0x8004454 + 0x08004520 p_serial_mgr_service+144 b.n 0x80044a0 + 0x08004522 p_serial_mgr_service+146 nop + 0x08004524 p_serial_mgr_service+148 movs r0, #80 ; 0x50 + 0x08004526 p_serial_mgr_service+150 movs r0, #0 +### Breakpoints ##################################################################################################### +[1] break at 0x08004508 in shared/drivers/p_serial_mgr.c:73 for p_serial_mgr.c:73 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x0800451c primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x006000d0 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000020 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800451d psp 0x00000000 +### Source ########################################################################################################## + 64 } + 65 PDEBUG("\n\n"); + 66 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 67 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 68 HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 69 p_serial_mgr_start(); + 70 } + 71 else if (sstate == SS_ERR) + 72 { +!73 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 74 p_serial_mgr_start(); + 75 } + 76 } + 77 + 78 void p_serial_mgr_start() + 79 { + 80 sstate = SS_IDLE; + 81 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 82 } +~ +### Stack ########################################################################################################### +[0] from 0x0800451c in p_serial_mgr_service+140 at shared/drivers/p_serial_mgr.c:74 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x0800451c in p_serial_mgr_service+140 at shared/drivers/p_serial_mgr.c:74 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08004454 +halted: PC: 0x080044a0 +halted: PC: 0x080044a2 +halted: PC: 0x0800152a +main () at Core/Src/main.c:139 +139 while (1) +### Assembly ######################################################################################################## + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004454 + 0x08001526 main+126 bl 0x8004490 + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 + 0x08001532 main+138 lsrs r0, r0, #32 +### Breakpoints ##################################################################################################### +[1] break at 0x08004508 in shared/drivers/p_serial_mgr.c:73 for p_serial_mgr.c:73 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x0800152a primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x20000c20 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x080042c5 psp 0x00000000 +### Source ########################################################################################################## + 129 HAL_UART_Receive_IT(&huart2, &huart2_rxc, 1); + 130 HAL_TIM_Base_Start_IT(&htim6); + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } +### Stack ########################################################################################################### +[0] from 0x0800152a in main+130 at Core/Src/main.c:139 +### Threads ######################################################################################################### +[1] id 0 from 0x0800152a in main+130 at Core/Src/main.c:139 +### Variables ####################################################################################################### +##################################################################################################################### +Continuing. +### Output/messages ################################################################################################# + +Breakpoint 1, p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:73 +73 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); +### Assembly ######################################################################################################## + 0x080044fa p_serial_mgr_service+106 ldr r0, [pc, #52] ; (0x8004530 ) + 0x080044fc p_serial_mgr_service+108 ldr r0, [r0, #0] + 0x080044fe p_serial_mgr_service+110 bl 0x8003eba + 0x08004502 p_serial_mgr_service+114 bl 0x8004454 + 0x08004506 p_serial_mgr_service+118 b.n 0x80044a0 +!0x08004508 p_serial_mgr_service+120 ldr r3, [pc, #28] ; (0x8004528 ) + 0x0800450a p_serial_mgr_service+122 ldrb r3, [r3, #0] + 0x0800450c p_serial_mgr_service+124 add.w r3, r3, r3, lsl #7 + 0x08004510 p_serial_mgr_service+128 lsls r2, r3, #2 + 0x08004512 p_serial_mgr_service+130 ldr r3, [pc, #24] ; (0x800452c ) +### Breakpoints ##################################################################################################### +[1] break at 0x08004508 in shared/drivers/p_serial_mgr.c:73 for p_serial_mgr.c:73 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08004508 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x61000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000002 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 63 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 64 } + 65 PDEBUG("\n\n"); + 66 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 67 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 68 HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 69 p_serial_mgr_start(); + 70 } + 71 else if (sstate == SS_ERR) + 72 { +!73 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 74 p_serial_mgr_start(); + 75 } + 76 } + 77 + 78 void p_serial_mgr_start() + 79 { + 80 sstate = SS_IDLE; + 81 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 82 } +### Stack ########################################################################################################### +[0] from 0x08004508 in p_serial_mgr_service+120 at shared/drivers/p_serial_mgr.c:73 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004508 in p_serial_mgr_service+120 at shared/drivers/p_serial_mgr.c:73 +### Variables ####################################################################################################### +##################################################################################################################### +### Output/messages ############################################################################################################################################################################################################################ +halted: PC: 0x0800450a +halted: PC: 0x0800450c +halted: PC: 0x08004510 +halted: PC: 0x08004512 +halted: PC: 0x08004514 +halted: PC: 0x08004516 +halted: PC: 0x08004518 +halted: PC: 0x08004390 +74 p_serial_mgr_start(); +### Assembly ################################################################################################################################################################################################################################### + 0x08004510 p_serial_mgr_service+128 lsls r2, r3, #2 + 0x08004512 p_serial_mgr_service+130 ldr r3, [pc, #24] ; (0x800452c ) + 0x08004514 p_serial_mgr_service+132 ldrb r1, [r3, r2] + 0x08004516 p_serial_mgr_service+134 ldr r0, [pc, #40] ; (0x8004540 ) + 0x08004518 p_serial_mgr_service+136 bl 0x8004390 + 0x0800451c p_serial_mgr_service+140 bl 0x8004454 + 0x08004520 p_serial_mgr_service+144 b.n 0x80044a0 + 0x08004522 p_serial_mgr_service+146 nop + 0x08004524 p_serial_mgr_service+148 movs r0, #80 ; 0x50 + 0x08004526 p_serial_mgr_service+150 movs r0, #0 +### Breakpoints ################################################################################################################################################################################################################################ +[1] break at 0x08004508 in shared/drivers/p_serial_mgr.c:73 for p_serial_mgr.c:73 hit 2 times +### Expressions ################################################################################################################################################################################################################################ +### History #################################################################################################################################################################################################################################### +### Memory ##################################################################################################################################################################################################################################### +### Registers ################################################################################################################################################################################################################################## + r0 0x00000000 r3 0x00000020 r6 0x00000000 r9 0x00000000 r12 0xffffffff pc 0x0800451c msp 0x2000ffd8 basepri 0x00 + r1 0x00000040 r4 0x20000b5c r7 0x00000000 r10 0x00000000 sp 0x2000ffd8 xPSR 0x61000000 psp 0x00000000 faultmask 0x00 + r2 0x006000d0 r5 0x20000a10 r8 0x00000000 r11 0x00000000 lr 0x0800451d fpscr 0x00000010 primask 0x00 control 0x04 +### Source ##################################################################################################################################################################################################################################### + 64 } + 65 PDEBUG("\n\n"); + 66 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 67 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 68 HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 69 p_serial_mgr_start(); + 70 } + 71 else if (sstate == SS_ERR) + 72 { +!73 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 74 p_serial_mgr_start(); + 75 } + 76 } + 77 + 78 void p_serial_mgr_start() + 79 { + 80 sstate = SS_IDLE; + 81 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 82 } +~ +### Stack ###################################################################################################################################################################################################################################### +[0] from 0x0800451c in p_serial_mgr_service+140 at shared/drivers/p_serial_mgr.c:74 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads #################################################################################################################################################################################################################################### +[1] id 0 from 0x0800451c in p_serial_mgr_service+140 at shared/drivers/p_serial_mgr.c:74 +### Variables ################################################################################################################################################################################################################################## +################################################################################################################################################################################################################################################ +Continuing. +### Output/messages ################################################################################################# + +Program received signal SIGINT, Interrupt. +0x08004492 in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:57 +57 { +### Assembly ######################################################################################################## +~ +~ +~ +~ + 0x08004490 p_serial_mgr_service+0 push {r4, lr} + 0x08004492 p_serial_mgr_service+2 sub sp, #16 + 0x08004494 p_serial_mgr_service+4 ldr r3, [pc, #140] ; (0x8004524 ) + 0x08004496 p_serial_mgr_service+6 ldrb r3, [r3, #0] + 0x08004498 p_serial_mgr_service+8 cmp r3, #1 + 0x0800449a p_serial_mgr_service+10 beq.n 0x80044a4 +### Breakpoints ##################################################################################################### +[1] break at 0x08004508 in shared/drivers/p_serial_mgr.c:73 for p_serial_mgr.c:73 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08004492 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffe8 msp 0x2000ffe8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 47 sstate = SS_ERR; + 48 } + 49 } + 50 + 51 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 52 { + 53 _serial_huart_inst = huart; + 54 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 55 } + 56 void p_serial_mgr_service(void) + 57 { + 58 if (sstate == SS_START) + 59 { + 60 while (HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20) != HAL_OK) {} + 61 for (int ind = 0; ind < 24; ind++) + 62 { + 63 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 64 } + 65 PDEBUG("\n\n"); + 66 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x08004492 in p_serial_mgr_service+2 at shared/drivers/p_serial_mgr.c:57 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004492 in p_serial_mgr_service+2 at shared/drivers/p_serial_mgr.c:57 +### Variables ####################################################################################################### +##################################################################################################################### +Detaching from program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf, Remote target +[Inferior 1 (Remote target) detached] +0x08004492 in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:57 +57 { +### Assembly ######################################################################################################## +~ +~ +~ +~ + 0x08004490 p_serial_mgr_service+0 push {r4, lr} + 0x08004492 p_serial_mgr_service+2 sub sp, #16 + 0x08004494 p_serial_mgr_service+4 ldr r3, [pc, #140] ; (0x8004524 ) + 0x08004496 p_serial_mgr_service+6 ldrb r3, [r3, #0] + 0x08004498 p_serial_mgr_service+8 cmp r3, #1 + 0x0800449a p_serial_mgr_service+10 beq.n 0x80044a4 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08004492 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffe8 msp 0x2000ffe8 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 47 sstate = SS_ERR; + 48 } + 49 } + 50 + 51 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 52 { + 53 _serial_huart_inst = huart; + 54 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 55 } + 56 void p_serial_mgr_service(void) + 57 { + 58 if (sstate == SS_START) + 59 { + 60 while (HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20) != HAL_OK) {} + 61 for (int ind = 0; ind < 24; ind++) + 62 { + 63 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 64 } + 65 PDEBUG("\n\n"); + 66 // active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ########################################################################################################### +[0] from 0x08004492 in p_serial_mgr_service+2 at shared/drivers/p_serial_mgr.c:57 +[1] from 0x0800152a in main+130 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08004492 in p_serial_mgr_service+2 at shared/drivers/p_serial_mgr.c:57 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x9900 lma 0x80001c0 +Loading section .rodata, size 0x4a8 lma 0x8009ac0 +Loading section .ARM, size 0x8 lma 0x8009f68 +Loading section .init_array, size 0x8 lma 0x8009f70 +Loading section .fini_array, size 0x8 lma 0x8009f78 +Loading section .data, size 0x9a8 lma 0x8009f80 +Start address 0x08004554, load size 43256 +Transfer rate: 29 KB/sec, 4806 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +main () at Core/Src/main.c:141 +141 p_serial_mgr_service(); +### Assembly ######################################################################################################## + 0x08001516 main+110 mov r0, r4 + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004454 + 0x08001526 main+126 bl 0x8004490 + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08001526 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } + 149 // serial_pkt_t *pkt = NULL; + 150 // if ((pkt = p_serial_mgr_service()) != NULL) +### Stack ########################################################################################################### +[0] from 0x08001526 in main+126 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08001526 in main+126 at Core/Src/main.c:141 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x9930 lma 0x80001c0 +Loading section .rodata, size 0x4a8 lma 0x8009af0 +Loading section .ARM, size 0x8 lma 0x8009f98 +Loading section .init_array, size 0x8 lma 0x8009fa0 +Loading section .fini_array, size 0x8 lma 0x8009fa8 +Loading section .data, size 0x9a8 lma 0x8009fb0 +Start address 0x08004584, load size 43304 +Transfer rate: 29 KB/sec, 4811 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +main () at Core/Src/main.c:141 +141 p_serial_mgr_service(); +### Assembly ######################################################################################################## + 0x08001516 main+110 mov r0, r4 + 0x08001518 main+112 bl 0x8004280 + 0x0800151c main+116 ldr r0, [pc, #32] ; (0x8001540 ) + 0x0800151e main+118 bl 0x80019d8 + 0x08001522 main+122 bl 0x8004454 + 0x08001526 main+126 bl 0x8004490 + 0x0800152a main+130 b.n 0x8001526 + 0x0800152c main+132 lsrs r4, r3, #13 + 0x0800152e main+134 movs r0, #0 + 0x08001530 main+136 asrs r1, r5, #5 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x08001526 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fff0 msp 0x2000fff0 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 131 + 132 p_serial_mgr_start(); + 133 + 134 uint16_t motor_degrees = 0; + 135 /* USER CODE END 2 */ + 136 + 137 /* Infinite loop */ + 138 /* USER CODE BEGIN WHILE */ + 139 while (1) + 140 { + 141 p_serial_mgr_service(); + 142 // if (b_timer_struck) + 143 // { + 144 // // PDEBUG("%d\n", sys_time); + 145 // b_timer_struck = false; + 146 // motor_degrees = (motor_degrees + 1) % 360; + 147 // mc_service(motor_degrees, 50); + 148 // } + 149 // serial_pkt_t *pkt = NULL; + 150 // if ((pkt = p_serial_mgr_service()) != NULL) +### Stack ########################################################################################################### +[0] from 0x08001526 in main+126 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08001526 in main+126 at Core/Src/main.c:141 +### Variables ####################################################################################################### +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0x9920 lma 0x80001c0 +Loading section .rodata, size 0x4a8 lma 0x8009ae0 +Loading section .ARM, size 0x8 lma 0x8009f88 +Loading section .init_array, size 0x8 lma 0x8009f90 +Loading section .fini_array, size 0x8 lma 0x8009f98 +Loading section .data, size 0x9a8 lma 0x8009fa0 +Start address 0x08004578, load size 43288 +Transfer rate: 29 KB/sec, 4809 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +HAL_DMA_IRQHandler (hdma=0x8004579 ) at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:874 +874 hdma->State = HAL_DMA_STATE_READY; +### Assembly ######################################################################################################## + 0x08004498 HAL_DMA_IRQHandler+298 cmp r3, #1 + 0x0800449a HAL_DMA_IRQHandler+300 beq.n 0x80044a4 + 0x0800449c HAL_DMA_IRQHandler+302 cmp r3, #2 + 0x0800449e HAL_DMA_IRQHandler+304 beq.n 0x800452c + 0x080044a0 HAL_DMA_IRQHandler+306 add sp, #20 + 0x080044a2 HAL_DMA_IRQHandler+308 pop {r4, r5, pc} + 0x080044a4 HAL_DMA_IRQHandler+310 ldr r3, [pc, #164] ; (0x800454c ) + 0x080044a6 HAL_DMA_IRQHandler+312 ldrb r1, [r3, #0] + 0x080044a8 HAL_DMA_IRQHandler+314 add.w r1, r1, r1, lsl #7 + 0x080044ac HAL_DMA_IRQHandler+318 lsls r1, r1, #2 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x20000a10 r10 0x00000000 pc 0x080044a2 primask 0x00 + r1 0x00000000 r6 0x00000000 r11 0x00000000 xPSR 0x81000000 basepri 0x00 + r2 0x40013800 r7 0x00000000 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffe4 msp 0x2000ffe4 control 0x04 + r4 0x20000b5c r9 0x00000000 lr 0x0800152b psp 0x00000000 +### Source ########################################################################################################## + 864 /* Disable ALL DMA IT */ + 865 __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE)); + 866 + 867 /* Clear all flags */ + 868 hdma->DmaBaseAddress->IFCR = (DMA_ISR_GIF1 << (hdma->ChannelIndex & 0x1CU)); + 869 + 870 /* Update error code */ + 871 hdma->ErrorCode = HAL_DMA_ERROR_TE; + 872 + 873 /* Change the DMA state */ + 874 hdma->State = HAL_DMA_STATE_READY; + 875 + 876 /* Process Unlocked */ + 877 __HAL_UNLOCK(hdma); + 878 + 879 if (hdma->XferErrorCallback != NULL) + 880 { + 881 /* Transfer error callback */ + 882 hdma->XferErrorCallback(hdma); + 883 } +### Stack ########################################################################################################### +[0] from 0x080044a2 in HAL_DMA_IRQHandler+308 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:874 +[1] from 0x0800154a in MX_GPIO_Init+66 at Core/Src/main.c:417 +[2] from 0x024802b4 +### Threads ######################################################################################################### +[1] id 0 from 0x080044a2 in HAL_DMA_IRQHandler+308 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c:874 +### Variables ####################################################################################################### +arg hdma = 0x8004579 : {Instance = 0xffd034f8,Init = {Request = 2… +loc flag_it = 134223175, source_it = 134223173 +##################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0xb720 lma 0x80001c0 +Loading section .rodata, size 0x480 lma 0x800b8e0 +Loading section .ARM, size 0x8 lma 0x800bd60 +Loading section .init_array, size 0x8 lma 0x800bd68 +Loading section .fini_array, size 0x8 lma 0x800bd70 +Loading section .data, size 0x9a8 lma 0x800bd78 +Start address 0x08006470, load size 50928 +Transfer rate: 31 KB/sec, 5658 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +0x080063dc in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:77 +77 } +### Assembly ######################################################################################################## + 0x080063ce p_serial_mgr_service+222 mov r1, r3 + 0x080063d0 p_serial_mgr_service+224 ldr r0, [pc, #48] ; (0x8006404 ) + 0x080063d2 p_serial_mgr_service+226 bl 0x80061c0 + 0x080063d6 p_serial_mgr_service+230 bl 0x8006408 + 0x080063da p_serial_mgr_service+234 nop + 0x080063dc p_serial_mgr_service+236 adds r7, #16 + 0x080063de p_serial_mgr_service+238 mov sp, r7 + 0x080063e0 p_serial_mgr_service+240 pop {r7, pc} + 0x080063e2 p_serial_mgr_service+242 nop + 0x080063e4 p_serial_mgr_service+244 movs r0, #80 ; 0x50 +### Breakpoints ##################################################################################################### +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080063dc primask 0x00 + r1 0x40013800 r6 0x00000000 r11 0x00000000 xPSR 0x81010000 basepri 0x00 + r2 0x0000002d r7 0x2000ffd8 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20002094 r9 0x00000000 lr 0x080011f1 psp 0x00000000 +### Source ########################################################################################################## + 67 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 68 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 69 // HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 70 p_serial_mgr_start(); + 71 } + 72 else if (sstate == SS_ERR) + 73 { + 74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_start(); + 76 } + 77 } + 78 + 79 void p_serial_mgr_start() + 80 { + 81 sstate = SS_IDLE; + 82 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 83 } +~ +~ +~ +### Stack ########################################################################################################### +[0] from 0x080063dc in p_serial_mgr_service+236 at shared/drivers/p_serial_mgr.c:77 +[1] from 0x080011f0 in main+136 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080063dc in p_serial_mgr_service+236 at shared/drivers/p_serial_mgr.c:77 +### Variables ####################################################################################################### +##################################################################################################################### +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +target halted due to debug-request, current mode: Thread +xPSR: 0x01000000 pc: 0x08006470 msp: 0x20010000 +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0xb720 lma 0x80001c0 +Loading section .rodata, size 0x480 lma 0x800b8e0 +Loading section .ARM, size 0x8 lma 0x800bd60 +Loading section .init_array, size 0x8 lma 0x800bd68 +Loading section .fini_array, size 0x8 lma 0x800bd70 +Loading section .data, size 0x9a8 lma 0x800bd78 +Start address 0x08006470, load size 50928 +Transfer rate: 31 KB/sec, 5658 bytes/write. +Breakpoint 1 at 0x8006414: file shared/drivers/p_serial_mgr.c, line 82. +Note: automatically using hardware breakpoints for read-only addresses. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# + +Breakpoint 1, p_serial_mgr_start () at shared/drivers/p_serial_mgr.c:82 +82 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); +### Assembly ######################################################################################################## + 0x0800640a p_serial_mgr_start+2 sub sp, #8 + 0x0800640c p_serial_mgr_start+4 add r7, sp, #0 + 0x0800640e p_serial_mgr_start+6 ldr r3, [pc, #48] ; (0x8006440 ) + 0x08006410 p_serial_mgr_start+8 movs r2, #0 + 0x08006412 p_serial_mgr_start+10 strb r2, [r3, #0] +!0x08006414 p_serial_mgr_start+12 ldr r3, [pc, #44] ; (0x8006444 ) + 0x08006416 p_serial_mgr_start+14 ldr r0, [r3, #0] + 0x08006418 p_serial_mgr_start+16 ldr r3, [pc, #44] ; (0x8006448 ) + 0x0800641a p_serial_mgr_start+18 ldrb r3, [r3, #0] + 0x0800641c p_serial_mgr_start+20 mov r2, r3 +### Breakpoints ##################################################################################################### +[1] break at 0x08006414 in shared/drivers/p_serial_mgr.c:82 for p_serial_mgr.c:82 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08006414 primask 0x00 + r1 0x40004400 r6 0x00000000 r11 0x00000000 xPSR 0x41030000 basepri 0x00 + r2 0x00000000 r7 0x2000ffe0 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x20002050 r8 0x00000000 sp 0x2000ffe0 msp 0x2000ffe0 control 0x04 + r4 0x20002094 r9 0x00000000 lr 0x080011e9 psp 0x00000000 +### Source ########################################################################################################## + 72 else if (sstate == SS_ERR) + 73 { + 74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_start(); + 76 } + 77 } + 78 + 79 void p_serial_mgr_start() + 80 { + 81 sstate = SS_IDLE; +!82 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 83 } +~ +~ +~ +~ +~ +~ +~ +~ +### Stack ########################################################################################################### +[0] from 0x08006414 in p_serial_mgr_start+12 at shared/drivers/p_serial_mgr.c:82 +[1] from 0x080011e8 in main+128 at Core/Src/main.c:132 +### Threads ######################################################################################################### +[1] id 0 from 0x08006414 in p_serial_mgr_start+12 at shared/drivers/p_serial_mgr.c:82 +### Variables ####################################################################################################### +loc ret = 32 +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08006416 +halted: PC: 0x08006418 +halted: PC: 0x0800641a +halted: PC: 0x0800641c +halted: PC: 0x0800641e +halted: PC: 0x08006420 +halted: PC: 0x08006422 +halted: PC: 0x08006424 +halted: PC: 0x08006426 +halted: PC: 0x08006428 +halted: PC: 0x0800642a +halted: PC: 0x0800642c +halted: PC: 0x0800642e +halted: PC: 0x08004b60 +HAL_UART_Receive_IT (huart=0x20000a5c , pData=0x20000c20 "", Size=1) at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1418 +1418 if (huart->RxState == HAL_UART_STATE_READY) +### Assembly ######################################################################################################## + 0x08004b64 HAL_UART_Receive_IT+4 add r7, sp, #0 + 0x08004b66 HAL_UART_Receive_IT+6 str r0, [r7, #12] + 0x08004b68 HAL_UART_Receive_IT+8 str r1, [r7, #8] + 0x08004b6a HAL_UART_Receive_IT+10 mov r3, r2 + 0x08004b6c HAL_UART_Receive_IT+12 strh r3, [r7, #6] + 0x08004b6e HAL_UART_Receive_IT+14 ldr r3, [r7, #12] + 0x08004b70 HAL_UART_Receive_IT+16 ldr r3, [r3, #124] ; 0x7c + 0x08004b72 HAL_UART_Receive_IT+18 cmp r3, #32 + 0x08004b74 HAL_UART_Receive_IT+20 bne.n 0x8004bfc + 0x08004b76 HAL_UART_Receive_IT+22 ldr r3, [r7, #8] +### Breakpoints ##################################################################################################### +[1] break at 0x08006414 in shared/drivers/p_serial_mgr.c:82 for p_serial_mgr.c:82 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000a5c r5 0x00000000 r10 0x00000000 pc 0x08004b6e primask 0x00 + r1 0x20000c20 r6 0x00000000 r11 0x00000000 xPSR 0x01030000 basepri 0x00 + r2 0x00000001 r7 0x2000ffb0 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000001 r8 0x00000000 sp 0x2000ffb0 msp 0x2000ffb0 control 0x04 + r4 0x20002094 r9 0x00000000 lr 0x08006433 psp 0x00000000 +### Source ########################################################################################################## + 1408 * the received data is handled as a set of u16. In this case, Size must indicate the number + 1409 * of u16 available through pData. + 1410 * @param huart UART handle. + 1411 * @param pData Pointer to data buffer (u8 or u16 data elements). + 1412 * @param Size Amount of data elements (u8 or u16) to be received. + 1413 * @retval HAL status + 1414 */ + 1415 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) + 1416 { + 1417 /* Check that a Rx process is not already ongoing */ + 1418 if (huart->RxState == HAL_UART_STATE_READY) + 1419 { + 1420 if ((pData == NULL) || (Size == 0U)) + 1421 { + 1422 return HAL_ERROR; + 1423 } + 1424 + 1425 __HAL_LOCK(huart); + 1426 + 1427 /* Set Reception type to Standard reception */ +### Stack ########################################################################################################### +[0] from 0x08004b6e in HAL_UART_Receive_IT+14 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1418 +[1] from 0x08006432 in p_serial_mgr_start+42 at shared/drivers/p_serial_mgr.c:82 +[2] from 0x080011e8 in main+128 at Core/Src/main.c:132 +### Threads ######################################################################################################### +[1] id 0 from 0x08004b6e in HAL_UART_Receive_IT+14 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1418 +### Variables ####################################################################################################### +arg huart = 0x20000a5c : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi…, pData = 0x20000c20 "": 0 '\000', Size = 1 +##################################################################################################################### +`/storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf' has changed; re-reading symbols. +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0xb720 lma 0x80001c0 +Loading section .rodata, size 0x480 lma 0x800b8e0 +Loading section .ARM, size 0x8 lma 0x800bd60 +Loading section .init_array, size 0x8 lma 0x800bd68 +Loading section .fini_array, size 0x8 lma 0x800bd70 +Loading section .data, size 0x9a8 lma 0x800bd78 +Start address 0x08006470, load size 50928 +Transfer rate: 31 KB/sec, 5658 bytes/write. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# + +Breakpoint 1, p_serial_mgr_start () at shared/drivers/p_serial_mgr.c:82 +82 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); +### Assembly ######################################################################################################## + 0x0800640a p_serial_mgr_start+2 sub sp, #8 + 0x0800640c p_serial_mgr_start+4 add r7, sp, #0 + 0x0800640e p_serial_mgr_start+6 ldr r3, [pc, #48] ; (0x8006440 ) + 0x08006410 p_serial_mgr_start+8 movs r2, #0 + 0x08006412 p_serial_mgr_start+10 strb r2, [r3, #0] +!0x08006414 p_serial_mgr_start+12 ldr r3, [pc, #44] ; (0x8006444 ) + 0x08006416 p_serial_mgr_start+14 ldr r0, [r3, #0] + 0x08006418 p_serial_mgr_start+16 ldr r3, [pc, #44] ; (0x8006448 ) + 0x0800641a p_serial_mgr_start+18 ldrb r3, [r3, #0] + 0x0800641c p_serial_mgr_start+20 mov r2, r3 +### Breakpoints ##################################################################################################### +[1] break at 0x08006414 in shared/drivers/p_serial_mgr.c:82 for p_serial_mgr.c:82 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08006414 primask 0x00 + r1 0x40004400 r6 0x00000000 r11 0x00000000 xPSR 0x41030000 basepri 0x00 + r2 0x00000000 r7 0x2000ffe0 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x20002050 r8 0x00000000 sp 0x2000ffe0 msp 0x2000ffe0 control 0x04 + r4 0x20002094 r9 0x00000000 lr 0x080011e9 psp 0x00000000 +### Source ########################################################################################################## + 72 else if (sstate == SS_ERR) + 73 { + 74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_start(); + 76 } + 77 } + 78 + 79 void p_serial_mgr_start() + 80 { + 81 sstate = SS_IDLE; +!82 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + 83 asm volatile("nop"); + 84 } +~ +~ +~ +~ +~ +~ +~ +### Stack ########################################################################################################### +[0] from 0x08006414 in p_serial_mgr_start+12 at shared/drivers/p_serial_mgr.c:82 +[1] from 0x080011e8 in main+128 at Core/Src/main.c:132 +### Threads ######################################################################################################### +[1] id 0 from 0x08006414 in p_serial_mgr_start+12 at shared/drivers/p_serial_mgr.c:82 +### Variables ####################################################################################################### +loc ret = 32 +##################################################################################################################### +### Output/messages ################################################################################################# +halted: PC: 0x08006416 +halted: PC: 0x08006418 +halted: PC: 0x0800641a +halted: PC: 0x0800641c +halted: PC: 0x0800641e +halted: PC: 0x08006420 +halted: PC: 0x08006422 +halted: PC: 0x08006424 +halted: PC: 0x08006426 +halted: PC: 0x08006428 +halted: PC: 0x0800642a +halted: PC: 0x0800642c +halted: PC: 0x0800642e +halted: PC: 0x08004b60 +HAL_UART_Receive_IT (huart=0x20000a5c , pData=0x20000c20 "", Size=1) at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1418 +1418 if (huart->RxState == HAL_UART_STATE_READY) +### Assembly ######################################################################################################## + 0x08004b64 HAL_UART_Receive_IT+4 add r7, sp, #0 + 0x08004b66 HAL_UART_Receive_IT+6 str r0, [r7, #12] + 0x08004b68 HAL_UART_Receive_IT+8 str r1, [r7, #8] + 0x08004b6a HAL_UART_Receive_IT+10 mov r3, r2 + 0x08004b6c HAL_UART_Receive_IT+12 strh r3, [r7, #6] + 0x08004b6e HAL_UART_Receive_IT+14 ldr r3, [r7, #12] + 0x08004b70 HAL_UART_Receive_IT+16 ldr r3, [r3, #124] ; 0x7c + 0x08004b72 HAL_UART_Receive_IT+18 cmp r3, #32 + 0x08004b74 HAL_UART_Receive_IT+20 bne.n 0x8004bfc + 0x08004b76 HAL_UART_Receive_IT+22 ldr r3, [r7, #8] +### Breakpoints ##################################################################################################### +[1] break at 0x08006414 in shared/drivers/p_serial_mgr.c:82 for p_serial_mgr.c:82 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x20000a5c r5 0x00000000 r10 0x00000000 pc 0x08004b6e primask 0x00 + r1 0x20000c20 r6 0x00000000 r11 0x00000000 xPSR 0x01030000 basepri 0x00 + r2 0x00000001 r7 0x2000ffb0 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000001 r8 0x00000000 sp 0x2000ffb0 msp 0x2000ffb0 control 0x04 + r4 0x20002094 r9 0x00000000 lr 0x08006433 psp 0x00000000 +### Source ########################################################################################################## + 1408 * the received data is handled as a set of u16. In this case, Size must indicate the number + 1409 * of u16 available through pData. + 1410 * @param huart UART handle. + 1411 * @param pData Pointer to data buffer (u8 or u16 data elements). + 1412 * @param Size Amount of data elements (u8 or u16) to be received. + 1413 * @retval HAL status + 1414 */ + 1415 HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) + 1416 { + 1417 /* Check that a Rx process is not already ongoing */ + 1418 if (huart->RxState == HAL_UART_STATE_READY) + 1419 { + 1420 if ((pData == NULL) || (Size == 0U)) + 1421 { + 1422 return HAL_ERROR; + 1423 } + 1424 + 1425 __HAL_LOCK(huart); + 1426 + 1427 /* Set Reception type to Standard reception */ +### Stack ########################################################################################################### +[0] from 0x08004b6e in HAL_UART_Receive_IT+14 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1418 +[1] from 0x08006432 in p_serial_mgr_start+42 at shared/drivers/p_serial_mgr.c:82 +[2] from 0x080011e8 in main+128 at Core/Src/main.c:132 +### Threads ######################################################################################################### +[1] id 0 from 0x08004b6e in HAL_UART_Receive_IT+14 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1418 +### Variables ####################################################################################################### +arg huart = 0x20000a5c : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi…, pData = 0x20000c20 "": 0 '\000', Size = 1 +##################################################################################################################### +Breakpoint 2 at 0x8006436: file shared/drivers/p_serial_mgr.c, line 83. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# + +Breakpoint 2, p_serial_mgr_start () at shared/drivers/p_serial_mgr.c:83 +83 asm volatile("nop"); +### Assembly ######################################################################################################## + 0x0800642a p_serial_mgr_start+34 movs r2, #1 + 0x0800642c p_serial_mgr_start+36 mov r1, r3 + 0x0800642e p_serial_mgr_start+38 bl 0x8004b60 + 0x08006432 p_serial_mgr_start+42 mov r3, r0 + 0x08006434 p_serial_mgr_start+44 strb r3, [r7, #7] +!0x08006436 p_serial_mgr_start+46 nop + 0x08006438 p_serial_mgr_start+48 nop + 0x0800643a p_serial_mgr_start+50 adds r7, #8 + 0x0800643c p_serial_mgr_start+52 mov sp, r7 + 0x0800643e p_serial_mgr_start+54 pop {r7, pc} +### Breakpoints ##################################################################################################### +[2] break at 0x08006436 in shared/drivers/p_serial_mgr.c:83 for p_serial_mgr.c:83 hit 1 time +### Expressions ##################################################################################################### +### History ######################################################################################################### +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08006436 primask 0x00 + r1 0x40013800 r6 0x00000000 r11 0x00000000 xPSR 0x01030000 basepri 0x00 + r2 0x0000002d r7 0x2000ffe0 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffe0 msp 0x2000ffe0 control 0x04 + r4 0x20002094 r9 0x00000000 lr 0x08004bf9 psp 0x00000000 +### Source ########################################################################################################## + 73 { + 74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_start(); + 76 } + 77 } + 78 + 79 void p_serial_mgr_start() + 80 { + 81 sstate = SS_IDLE; + 82 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); +!83 asm volatile("nop"); + 84 } +~ +~ +~ +~ +~ +~ +~ +~ +### Stack ########################################################################################################### +[0] from 0x08006436 in p_serial_mgr_start+46 at shared/drivers/p_serial_mgr.c:83 +[1] from 0x080011e8 in main+128 at Core/Src/main.c:132 +### Threads ######################################################################################################### +[1] id 0 from 0x08006436 in p_serial_mgr_start+46 at shared/drivers/p_serial_mgr.c:83 +### Variables ####################################################################################################### +loc ret = HAL_OK +##################################################################################################################### +$1 = HAL_OK +Continuing. +### Output/messages ################################################################################################# +halted: PC: 0x08006438 + +Breakpoint 2, p_serial_mgr_start () at shared/drivers/p_serial_mgr.c:83 +83 asm volatile("nop"); +### Assembly ######################################################################################################## + 0x0800642a p_serial_mgr_start+34 movs r2, #1 + 0x0800642c p_serial_mgr_start+36 mov r1, r3 + 0x0800642e p_serial_mgr_start+38 bl 0x8004b60 + 0x08006432 p_serial_mgr_start+42 mov r3, r0 + 0x08006434 p_serial_mgr_start+44 strb r3, [r7, #7] +!0x08006436 p_serial_mgr_start+46 nop + 0x08006438 p_serial_mgr_start+48 nop + 0x0800643a p_serial_mgr_start+50 adds r7, #8 + 0x0800643c p_serial_mgr_start+52 mov sp, r7 + 0x0800643e p_serial_mgr_start+54 pop {r7, pc} +### Breakpoints ##################################################################################################### +[2] break at 0x08006436 in shared/drivers/p_serial_mgr.c:83 for p_serial_mgr.c:83 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$0 = HAL_OK +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x08006436 primask 0x00 + r1 0x40013800 r6 0x00000000 r11 0x00000000 xPSR 0x01010000 basepri 0x00 + r2 0x0000002d r7 0x2000ffc8 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffc8 msp 0x2000ffc8 control 0x04 + r4 0x20002094 r9 0x00000000 lr 0x08004bf9 psp 0x00000000 +### Source ########################################################################################################## + 73 { + 74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_start(); + 76 } + 77 } + 78 + 79 void p_serial_mgr_start() + 80 { + 81 sstate = SS_IDLE; + 82 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); +!83 asm volatile("nop"); + 84 } +~ +~ +~ +~ +~ +~ +~ +~ +### Stack ########################################################################################################### +[0] from 0x08006436 in p_serial_mgr_start+46 at shared/drivers/p_serial_mgr.c:83 +[1] from 0x080063da in p_serial_mgr_service+234 at shared/drivers/p_serial_mgr.c:75 +[2] from 0x080011f0 in main+136 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08006436 in p_serial_mgr_start+46 at shared/drivers/p_serial_mgr.c:83 +### Variables ####################################################################################################### +loc ret = HAL_OK +##################################################################################################################### +$2 = HAL_OK +Continuing. +### Output/messages ################################################################################################# +halted: PC: 0x08006438 + +Program received signal SIGINT, Interrupt. +0x08002bb8 in HAL_GetTick () at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:341 +341 } +### Assembly ######################################################################################################## + 0x08002bac HAL_GetTick+4 ldr r3, [pc, #12] ; (0x8002bbc ) + 0x08002bae HAL_GetTick+6 ldr r3, [r3, #0] + 0x08002bb0 HAL_GetTick+8 mov r0, r3 + 0x08002bb2 HAL_GetTick+10 mov sp, r7 + 0x08002bb4 HAL_GetTick+12 ldr.w r7, [sp], #4 + 0x08002bb8 HAL_GetTick+16 bx lr + 0x08002bba HAL_GetTick+18 nop + 0x08002bbc HAL_GetTick+20 lsrs r0, r3, #16 + 0x08002bbe HAL_GetTick+22 movs r0, #0 +~ +### Breakpoints ##################################################################################################### +[2] break at 0x08006436 in shared/drivers/p_serial_mgr.c:83 for p_serial_mgr.c:83 hit 2 times +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = HAL_OK +$$0 = HAL_OK +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00007080 r5 0x00000000 r10 0x00000000 pc 0x08002bb8 primask 0x00 + r1 0x00000020 r6 0x00000000 r11 0x00000000 xPSR 0x01010000 basepri 0x00 + r2 0x00000000 r7 0x2000ff30 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00007080 r8 0x00000000 sp 0x2000ff30 msp 0x2000ff30 control 0x04 + r4 0x20002094 r9 0x00000000 lr 0x0800597b psp 0x00000000 +### Source ########################################################################################################## + 331 + 332 /** + 333 * @brief Provide a tick value in millisecond. + 334 * @note This function is declared as __weak to be overwritten in case of other + 335 * implementations in user file. + 336 * @retval tick value + 337 */ + 338 __weak uint32_t HAL_GetTick(void) + 339 { + 340 return uwTick; + 341 } + 342 + 343 /** + 344 * @brief This function returns a tick priority. + 345 * @retval tick priority + 346 */ + 347 uint32_t HAL_GetTickPrio(void) + 348 { + 349 return uwTickPrio; + 350 } +### Stack ########################################################################################################### +[0] from 0x08002bb8 in HAL_GetTick+16 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:341 +[1] from 0x0800597a in UART_WaitOnFlagUntilTimeout+32 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:3536 +[2] from 0x08004ae6 in HAL_UART_Receive+298 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:1286 +[3] from 0x08006322 in p_serial_mgr_service+50 at shared/drivers/p_serial_mgr.c:60 +[4] from 0x080011f0 in main+136 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x08002bb8 in HAL_GetTick+16 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c:341 +### Variables ####################################################################################################### +##################################################################################################################### +Quit +`/storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf' has changed; re-reading symbols. +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0xb720 lma 0x80001c0 +Loading section .rodata, size 0x480 lma 0x800b8e0 +Loading section .ARM, size 0x8 lma 0x800bd60 +Loading section .init_array, size 0x8 lma 0x800bd68 +Loading section .fini_array, size 0x8 lma 0x800bd70 +Loading section .data, size 0x9a8 lma 0x800bd78 +Start address 0x08006470, load size 50928 +Transfer rate: 31 KB/sec, 5658 bytes/write. +Breakpoint 3 at 0x8006436: file shared/drivers/p_serial_mgr.c, line 83. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ################################################################################################# +halted: PC: 0x08006438 +halted: PC: 0x08006438 +halted: PC: 0x08006438 + +Program received signal SIGINT, Interrupt. +0x080063de in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:77 +77 } +### Assembly ######################################################################################################## + 0x080063d0 p_serial_mgr_service+224 ldr r0, [pc, #48] ; (0x8006404 ) + 0x080063d2 p_serial_mgr_service+226 bl 0x80061c0 + 0x080063d6 p_serial_mgr_service+230 bl 0x8006408 + 0x080063da p_serial_mgr_service+234 nop + 0x080063dc p_serial_mgr_service+236 adds r7, #16 + 0x080063de p_serial_mgr_service+238 mov sp, r7 + 0x080063e0 p_serial_mgr_service+240 pop {r7, pc} + 0x080063e2 p_serial_mgr_service+242 nop + 0x080063e4 p_serial_mgr_service+244 movs r0, #80 ; 0x50 + 0x080063e6 p_serial_mgr_service+246 movs r0, #0 +### Breakpoints ##################################################################################################### +[3] break at 0x08006436 in shared/drivers/p_serial_mgr.c:83 for p_serial_mgr.c:83 if ret != HAL_OK +### Expressions ##################################################################################################### +### History ######################################################################################################### +$$1 = HAL_OK +$$0 = HAL_OK +### Memory ########################################################################################################## +### Registers ####################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080063de primask 0x00 + r1 0x40013800 r6 0x00000000 r11 0x00000000 xPSR 0x01010000 basepri 0x00 + r2 0x0000002d r7 0x2000ffe8 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20002094 r9 0x00000000 lr 0x080011f1 psp 0x00000000 +### Source ########################################################################################################## + 67 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 68 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 69 // HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 70 p_serial_mgr_start(); + 71 } + 72 else if (sstate == SS_ERR) + 73 { + 74 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 75 p_serial_mgr_start(); + 76 } + 77 } + 78 + 79 void p_serial_mgr_start() + 80 { + 81 sstate = SS_IDLE; + 82 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, &sbuffer[active_buffer][0], 1); +!83 asm volatile("nop"); + 84 } +~ +~ +### Stack ########################################################################################################### +[0] from 0x080063de in p_serial_mgr_service+238 at shared/drivers/p_serial_mgr.c:77 +[1] from 0x080011f0 in main+136 at Core/Src/main.c:141 +### Threads ######################################################################################################### +[1] id 0 from 0x080063de in p_serial_mgr_service+238 at shared/drivers/p_serial_mgr.c:77 +### Variables ####################################################################################################### +##################################################################################################################### +$3 = 32 +$4 = 0x20 +Size letters are meaningless in "print" command. +$5 = 040 +$6 = 0x20 +Detaching from program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf, Remote target +[Inferior 1 (Remote target) detached] +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:58 +58 if (sstate == SS_START) +### Assembly ############################################################################################################################################################################################################################ +~ +~ + 0x080062f4 p_serial_mgr_service+0 add r7, sp, #0 + 0x080062f6 p_serial_mgr_service+2 ldr r3, [pc, #236] ; (0x80063e4 ) + 0x080062f8 p_serial_mgr_service+4 ldrb r3, [r3, #0] + 0x080062fa p_serial_mgr_service+6 cmp r3, #1 + 0x080062fc p_serial_mgr_service+8 bne.n 0x80063b2 + 0x080062fe p_serial_mgr_service+10 nop + 0x08006300 p_serial_mgr_service+12 ldr r3, [pc, #228] ; (0x80063e8 ) + 0x08006302 p_serial_mgr_service+14 ldr r0, [r3, #0] +### Breakpoints ######################################################################################################################################################################################################################### +### Expressions ######################################################################################################################################################################################################################### +### History ############################################################################################################################################################################################################################# +### Memory ############################################################################################################################################################################################################################## +### Registers ########################################################################################################################################################################################################################### + r0 0x00000000 r3 0x00000000 r6 0x00000000 r9 0x00000000 r12 0xffffffff pc 0x080062fa msp 0x2000ffd8 basepri 0x00 + r1 0x40013800 r4 0x20002094 r7 0x2000ffd8 r10 0x00000000 sp 0x2000ffd8 xPSR 0x01010000 psp 0x00000000 faultmask 0x00 + r2 0x0000002d r5 0x00000000 r8 0x00000000 r11 0x00000000 lr 0x080011f1 fpscr 0x00000010 primask 0x00 control 0x04 +### Source ############################################################################################################################################################################################################################## + 48 } + 49 } + 50 + 51 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 52 { + 53 _serial_huart_inst = huart; + 54 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 55 } + 56 void p_serial_mgr_service(void) + 57 { + 58 if (sstate == SS_START) + 59 { + 60 while (HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20) != HAL_OK) {} + 61 for (int ind = 0; ind < 24; ind++) + 62 { + 63 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 64 } + 65 PDEBUG("\n\n"); + 66 memset(sbuffer[active_buffer], 0, MAX_MESSAGE_LEN); + 67 active_buffer = (active_buffer + 1) % NUM_BUFFERS; +### Stack ############################################################################################################################################################################################################################### +[0] from 0x080062fa in p_serial_mgr_service+6 at shared/drivers/p_serial_mgr.c:58 +[1] from 0x080011f0 in main+136 at Core/Src/main.c:141 +### Threads ############################################################################################################################################################################################################################# +[1] id 0 from 0x080062fa in p_serial_mgr_service+6 at shared/drivers/p_serial_mgr.c:58 +### Variables ########################################################################################################################################################################################################################### +######################################################################################################################################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0xb728 lma 0x80001c0 +Loading section .rodata, size 0x480 lma 0x800b8e8 +Loading section .ARM, size 0x8 lma 0x800bd68 +Loading section .init_array, size 0x8 lma 0x800bd70 +Loading section .fini_array, size 0x8 lma 0x800bd78 +Loading section .data, size 0x9a8 lma 0x800bd80 +Start address 0x08006474, load size 50936 +Transfer rate: 31 KB/sec, 5659 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +0x080062fa in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:62 +62 while (HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20) != HAL_OK) {} +### Assembly ######################################################################################################################################################################################################## + 0x080062f0 p_serial_mgr_service+20 str r1, [r7, #36] ; 0x24 + 0x080062f2 p_serial_mgr_service+22 lsrs r0, r0, #32 + 0x080062f4 p_serial_mgr_service+24 push {r7, lr} + 0x080062f6 p_serial_mgr_service+26 sub sp, #16 + 0x080062f8 p_serial_mgr_service+28 add r7, sp, #0 + 0x080062fa p_serial_mgr_service+30 ldr r3, [pc, #236] ; (0x80063e8 ) + 0x080062fc p_serial_mgr_service+32 ldrb r3, [r3, #0] + 0x080062fe p_serial_mgr_service+34 cmp r3, #1 + 0x08006300 p_serial_mgr_service+36 bne.n 0x80063b6 + 0x08006302 p_serial_mgr_service+38 nop +### Breakpoints ##################################################################################################################################################################################################### +### Expressions ##################################################################################################################################################################################################### +### History ######################################################################################################################################################################################################### +### Memory ########################################################################################################################################################################################################## +### Registers ####################################################################################################################################################################################################### + r0 0x00000000 r3 0x00000000 r6 0x00000000 r9 0x00000000 r12 0xffffffff pc 0x080062fa msp 0x2000ffd8 basepri 0x00 + r1 0x40013800 r4 0x20002094 r7 0x2000ffd8 r10 0x00000000 sp 0x2000ffd8 xPSR 0x01030000 psp 0x00000000 faultmask 0x00 + r2 0x0000002d r5 0x00000000 r8 0x00000000 r11 0x00000000 lr 0x080011f1 fpscr 0x00000010 primask 0x00 control 0x04 +### Source ########################################################################################################################################################################################################## + 52 + 53 void p_serial_mgr_init(UART_HandleTypeDef *huart) + 54 { + 55 _serial_huart_inst = huart; + 56 _serial_huart_inst->RxCpltCallback = UART1_RxCpltCallback; + 57 } + 58 void p_serial_mgr_service(void) + 59 { + 60 if (sstate == SS_START) + 61 { + 62 while (HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20) != HAL_OK) {} + 63 for (int ind = 0; ind < 24; ind++) + 64 { + 65 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 66 } + 67 PDEBUG("\n\n"); + 68 memset(sbuffer[active_buffer], 0, MAX_MESSAGE_LEN); + 69 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 70 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 71 // HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); +### Stack ########################################################################################################################################################################################################### +[0] from 0x080062fa in p_serial_mgr_service+30 at shared/drivers/p_serial_mgr.c:62 +[1] from 0x080011f0 in main+136 at Core/Src/main.c:141 +### Threads ######################################################################################################################################################################################################### +[1] id 0 from 0x080062fa in p_serial_mgr_service+30 at shared/drivers/p_serial_mgr.c:62 +### Variables ####################################################################################################################################################################################################### +loc sendbuffer = "\340\377\000 7d\000\b" +##################################################################################################################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0xb710 lma 0x80001c0 +Loading section .rodata, size 0x480 lma 0x800b8d0 +Loading section .ARM, size 0x8 lma 0x800bd50 +Loading section .init_array, size 0x8 lma 0x800bd58 +Loading section .fini_array, size 0x8 lma 0x800bd60 +Loading section .data, size 0x9a8 lma 0x800bd68 +Start address 0x0800645c, load size 50912 +Transfer rate: 31 KB/sec, 5656 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +0x080063c8 in p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:78 +78 p_serial_mgr_start(); +### Assembly ######################################################################################################################################################################################################## + 0x080063ba p_serial_mgr_service+218 mov r1, r3 + 0x080063bc p_serial_mgr_service+220 ldr r0, [pc, #48] ; (0x80063f0 ) + 0x080063be p_serial_mgr_service+222 bl 0x80061c4 + 0x080063c2 p_serial_mgr_service+226 bl 0x80063f4 + 0x080063c6 p_serial_mgr_service+230 nop + 0x080063c8 p_serial_mgr_service+232 adds r7, #16 + 0x080063ca p_serial_mgr_service+234 mov sp, r7 + 0x080063cc p_serial_mgr_service+236 pop {r7, pc} + 0x080063ce p_serial_mgr_service+238 nop + 0x080063d0 p_serial_mgr_service+240 movs r0, #80 ; 0x50 +### Breakpoints ##################################################################################################################################################################################################### +### Expressions ##################################################################################################################################################################################################### +### History ######################################################################################################################################################################################################### +### Memory ########################################################################################################################################################################################################## +### Registers ####################################################################################################################################################################################################### + r0 0x00000000 r3 0x00000000 r6 0x00000000 r9 0x00000000 r12 0xffffffff pc 0x080063c8 msp 0x2000ffd8 basepri 0x00 + r1 0x40013800 r4 0x20002094 r7 0x2000ffd8 r10 0x00000000 sp 0x2000ffd8 xPSR 0x81030000 psp 0x00000000 faultmask 0x00 + r2 0x0000002d r5 0x00000000 r8 0x00000000 r11 0x00000000 lr 0x080011f1 fpscr 0x00000010 primask 0x00 control 0x04 +### Source ########################################################################################################################################################################################################## + 68 PDEBUG("\n\n"); + 69 memset(sbuffer[active_buffer], 0, MAX_MESSAGE_LEN); + 70 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 71 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 72 // HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 73 p_serial_mgr_start(); + 74 } + 75 else if (sstate == SS_ERR) + 76 { + 77 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 78 p_serial_mgr_start(); + 79 } + 80 } + 81 + 82 void p_serial_mgr_start() + 83 { + 84 sstate = SS_IDLE; + 85 volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, &sbuffer[active_buffer][0], 1); + 86 asm volatile("nop"); + 87 } +### Stack ########################################################################################################################################################################################################### +[0] from 0x080063c8 in p_serial_mgr_service+232 at shared/drivers/p_serial_mgr.c:78 +[1] from 0x080011f0 in main+136 at Core/Src/main.c:141 +### Threads ######################################################################################################################################################################################################### +[1] id 0 from 0x080063c8 in p_serial_mgr_service+232 at shared/drivers/p_serial_mgr.c:78 +### Variables ####################################################################################################################################################################################################### +##################################################################################################################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0xb710 lma 0x80001c0 +Loading section .rodata, size 0x480 lma 0x800b8d0 +Loading section .ARM, size 0x8 lma 0x800bd50 +Loading section .init_array, size 0x8 lma 0x800bd58 +Loading section .fini_array, size 0x8 lma 0x800bd60 +Loading section .data, size 0x9a8 lma 0x800bd68 +Start address 0x08006460, load size 50912 +Transfer rate: 31 KB/sec, 5656 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] +p_serial_mgr_service () at shared/drivers/p_serial_mgr.c:75 +75 else if (sstate == SS_ERR) +### Assembly ###################################################################################################### + 0x0800639a p_serial_mgr_service+186 strb r2, [r3, #0] + 0x0800639c p_serial_mgr_service+188 bl 0x80063f8 + 0x080063a0 p_serial_mgr_service+192 b.n 0x80063ca + 0x080063a2 p_serial_mgr_service+194 ldr r3, [pc, #48] ; (0x80063d4 ) + 0x080063a4 p_serial_mgr_service+196 ldrb r3, [r3, #0] + 0x080063a6 p_serial_mgr_service+198 cmp r3, #2 + 0x080063a8 p_serial_mgr_service+200 bne.n 0x80063ca + 0x080063aa p_serial_mgr_service+202 ldr r3, [pc, #48] ; (0x80063dc ) + 0x080063ac p_serial_mgr_service+204 ldrb r3, [r3, #0] + 0x080063ae p_serial_mgr_service+206 mov r1, r3 +### Breakpoints ################################################################################################### +### Expressions ################################################################################################### +### History ####################################################################################################### +### Memory ######################################################################################################## +### Registers ##################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x080063a6 primask 0x00 + r1 0x40013800 r6 0x00000000 r11 0x00000000 xPSR 0x81030000 basepri 0x00 + r2 0x0000002d r7 0x2000ffd8 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000ffd8 msp 0x2000ffd8 control 0x04 + r4 0x20002094 r9 0x00000000 lr 0x080011f1 psp 0x00000000 +### Source ######################################################################################################## + 65 { + 66 PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); + 67 } + 68 PDEBUG("\n\n"); + 69 memset(sbuffer[active_buffer], 0, MAX_MESSAGE_LEN); + 70 active_buffer = (active_buffer + 1) % NUM_BUFFERS; + 71 uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + 72 // HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + 73 p_serial_mgr_start(); + 74 } + 75 else if (sstate == SS_ERR) + 76 { + 77 PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + 78 p_serial_mgr_start(); + 79 } + 80 } + 81 + 82 void p_serial_mgr_start() + 83 { + 84 sstate = SS_IDLE; +### Stack ######################################################################################################### +[0] from 0x080063a6 in p_serial_mgr_service+198 at shared/drivers/p_serial_mgr.c:75 +[1] from 0x080011f0 in main+136 at Core/Src/main.c:141 +### Threads ####################################################################################################### +[1] id 0 from 0x080063a6 in p_serial_mgr_service+198 at shared/drivers/p_serial_mgr.c:75 +### Variables ##################################################################################################### +################################################################################################################### +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +target halted due to debug-request, current mode: Thread +xPSR: 0x01000000 pc: 0x08006460 msp: 0x20010000 +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0xb710 lma 0x80001c0 +Loading section .rodata, size 0x480 lma 0x800b8d0 +Loading section .ARM, size 0x8 lma 0x800bd50 +Loading section .init_array, size 0x8 lma 0x800bd58 +Loading section .fini_array, size 0x8 lma 0x800bd60 +Loading section .data, size 0x9a8 lma 0x800bd68 +Start address 0x08006460, load size 50912 +Transfer rate: 31 KB/sec, 5656 bytes/write. +Function "UART1RxCpltCallback" not defined. +Quit +Breakpoint 1 at 0x8006280: file shared/drivers/p_serial_mgr.c, line 41. +Note: automatically using hardware breakpoints for read-only addresses. +Starting program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf +### Output/messages ############################################################################################### + +Breakpoint 1, UART1_RxCpltCallback (huart=0x20000a5c ) at shared/drivers/p_serial_mgr.c:41 +41 PDEBUG("%c", sbuffer[active_buffer][0]); +### Assembly ###################################################################################################### +~ + 0x08006278 UART1_RxCpltCallback+0 push {r7, lr} + 0x0800627a UART1_RxCpltCallback+2 sub sp, #8 + 0x0800627c UART1_RxCpltCallback+4 add r7, sp, #0 + 0x0800627e UART1_RxCpltCallback+6 str r0, [r7, #4] +!0x08006280 UART1_RxCpltCallback+8 ldr r3, [pc, #36] ; (0x80062a8 ) + 0x08006282 UART1_RxCpltCallback+10 ldrb r3, [r3, #0] + 0x08006284 UART1_RxCpltCallback+12 mov r1, r3 + 0x08006286 UART1_RxCpltCallback+14 ldr r2, [pc, #36] ; (0x80062ac ) + 0x08006288 UART1_RxCpltCallback+16 mov r3, r1 +### Breakpoints ################################################################################################### +[1] break at 0x08006280 in shared/drivers/p_serial_mgr.c:41 for UART1_RxCpltCallback hit 1 time +### Expressions ################################################################################################### +### History ####################################################################################################### +### Memory ######################################################################################################## +### Registers ##################################################################################################### + r0 0x20000a5c r5 0x00000000 r10 0x00000000 pc 0x08006280 primask 0x00 + r1 0x40013808 r6 0x00000000 r11 0x00000000 xPSR 0x81030035 basepri 0x00 + r2 0x00000000 r7 0x2000fe18 r12 0xffffffff fpscr 0x00000010 faultmask 0x00 + r3 0x08006279 r8 0x00000000 sp 0x2000fe18 msp 0x2000fe18 control 0x00 + r4 0x20002094 r9 0x00000000 lr 0x08005f15 psp 0x00000000 +### Source ######################################################################################################## + 31 + 32 static uint8_t rxc = '\0'; + 33 static serial_state_t sstate = SS_IDLE; + 34 + 35 static void p_serial_mgr_flush() + 36 { + 37 HAL_UART_Receive(_serial_huart_inst, sbuffer[active_buffer], MAX_MESSAGE_LEN, 10); + 38 } + 39 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 40 { +!41 PDEBUG("%c", sbuffer[active_buffer][0]); + 42 p_serial_mgr_start(); + 43 return; + 44 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 45 { + 46 sstate = SS_START; + 47 } + 48 else + 49 { + 50 sstate = SS_ERR; +### Stack ######################################################################################################### +[0] from 0x08006280 in UART1_RxCpltCallback+8 at shared/drivers/p_serial_mgr.c:41 +[1] from 0x08005f14 in UART_RxISR_8BIT+330 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x08004c76 in HAL_UART_IRQHandler+102 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2347 +[3] from 0x08001702 in USART1_IRQHandler+10 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x080062e0 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:60 +[6] from 0x080011f0 in main+136 at Core/Src/main.c:141 +### Threads ####################################################################################################### +[1] id 0 from 0x08006280 in UART1_RxCpltCallback+8 at shared/drivers/p_serial_mgr.c:41 +### Variables ##################################################################################################### +arg huart = 0x20000a5c : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +################################################################################################################### +### Output/messages ############################################################################################### +halted: PC: 0x08006282 +halted: PC: 0x08006284 +halted: PC: 0x08006286 +halted: PC: 0x08006288 +halted: PC: 0x0800628a +halted: PC: 0x0800628c +halted: PC: 0x0800628e +halted: PC: 0x08006290 +halted: PC: 0x08006292 +halted: PC: 0x08006294 +halted: PC: 0x08006296 +halted: PC: 0x08006298 +halted: PC: 0x080061c4 +42 p_serial_mgr_start(); +### Assembly ###################################################################################################### + 0x08006290 UART1_RxCpltCallback+24 add r3, r2 + 0x08006292 UART1_RxCpltCallback+26 ldrb r3, [r3, #0] + 0x08006294 UART1_RxCpltCallback+28 mov r1, r3 + 0x08006296 UART1_RxCpltCallback+30 ldr r0, [pc, #24] ; (0x80062b0 ) + 0x08006298 UART1_RxCpltCallback+32 bl 0x80061c4 + 0x0800629c UART1_RxCpltCallback+36 bl 0x80063f8 + 0x080062a0 UART1_RxCpltCallback+40 nop + 0x080062a2 UART1_RxCpltCallback+42 adds r7, #8 + 0x080062a4 UART1_RxCpltCallback+44 mov sp, r7 + 0x080062a6 UART1_RxCpltCallback+46 pop {r7, pc} +### Breakpoints ################################################################################################### +[1] break at 0x08006280 in shared/drivers/p_serial_mgr.c:41 for UART1_RxCpltCallback hit 1 time +### Expressions ################################################################################################### +### History ####################################################################################################### +### Memory ######################################################################################################## +### Registers ##################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x0800629c primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x41010035 basepri 0x00 + r2 0x00000020 r7 0x2000fe18 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fe18 msp 0x2000fe18 control 0x04 + r4 0x20002094 r9 0x00000000 lr 0x0800629d psp 0x00000000 +### Source ######################################################################################################## + 32 static uint8_t rxc = '\0'; + 33 static serial_state_t sstate = SS_IDLE; + 34 + 35 static void p_serial_mgr_flush() + 36 { + 37 HAL_UART_Receive(_serial_huart_inst, sbuffer[active_buffer], MAX_MESSAGE_LEN, 10); + 38 } + 39 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 40 { +!41 PDEBUG("%c", sbuffer[active_buffer][0]); + 42 p_serial_mgr_start(); + 43 return; + 44 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 45 { + 46 sstate = SS_START; + 47 } + 48 else + 49 { + 50 sstate = SS_ERR; + 51 } +### Stack ######################################################################################################### +[0] from 0x0800629c in UART1_RxCpltCallback+36 at shared/drivers/p_serial_mgr.c:42 +[1] from 0x08005f14 in UART_RxISR_8BIT+330 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x08004c76 in HAL_UART_IRQHandler+102 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2347 +[3] from 0x08001702 in USART1_IRQHandler+10 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x080062e0 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:60 +[6] from 0x080011f0 in main+136 at Core/Src/main.c:141 +### Threads ####################################################################################################### +[1] id 0 from 0x0800629c in UART1_RxCpltCallback+36 at shared/drivers/p_serial_mgr.c:42 +### Variables ##################################################################################################### +arg huart = 0x20000a5c : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +################################################################################################################### +Detaching from program: /storage/Shared/Projects/Penguinator/motor_controller/build/motor_controller.elf, Remote target +[Inferior 1 (Remote target) detached] +UART1_RxCpltCallback (huart=0x20000a5c ) at shared/drivers/p_serial_mgr.c:42 +42 p_serial_mgr_start(); +### Assembly ###################################################################################################### + 0x08006290 UART1_RxCpltCallback+24 add r3, r2 + 0x08006292 UART1_RxCpltCallback+26 ldrb r3, [r3, #0] + 0x08006294 UART1_RxCpltCallback+28 mov r1, r3 + 0x08006296 UART1_RxCpltCallback+30 ldr r0, [pc, #24] ; (0x80062b0 ) + 0x08006298 UART1_RxCpltCallback+32 bl 0x80061c4 + 0x0800629c UART1_RxCpltCallback+36 bl 0x80063f8 + 0x080062a0 UART1_RxCpltCallback+40 nop + 0x080062a2 UART1_RxCpltCallback+42 adds r7, #8 + 0x080062a4 UART1_RxCpltCallback+44 mov sp, r7 + 0x080062a6 UART1_RxCpltCallback+46 pop {r7, pc} +### Breakpoints ################################################################################################### +### Expressions ################################################################################################### +### History ####################################################################################################### +### Memory ######################################################################################################## +### Registers ##################################################################################################### + r0 0x00000000 r5 0x00000000 r10 0x00000000 pc 0x0800629c primask 0x00 + r1 0x00000040 r6 0x00000000 r11 0x00000000 xPSR 0x41010035 basepri 0x00 + r2 0x00000020 r7 0x2000fe18 r12 0xffffffff fpscr 0x00000000 faultmask 0x00 + r3 0x00000000 r8 0x00000000 sp 0x2000fe18 msp 0x2000fe18 control 0x04 + r4 0x20002094 r9 0x00000000 lr 0x0800629d psp 0x00000000 +### Source ######################################################################################################## + 32 static uint8_t rxc = '\0'; + 33 static serial_state_t sstate = SS_IDLE; + 34 + 35 static void p_serial_mgr_flush() + 36 { + 37 HAL_UART_Receive(_serial_huart_inst, sbuffer[active_buffer], MAX_MESSAGE_LEN, 10); + 38 } + 39 void UART1_RxCpltCallback(UART_HandleTypeDef *huart) + 40 { + 41 PDEBUG("%c", sbuffer[active_buffer][0]); + 42 p_serial_mgr_start(); + 43 return; + 44 if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) + 45 { + 46 sstate = SS_START; + 47 } + 48 else + 49 { + 50 sstate = SS_ERR; + 51 } +### Stack ######################################################################################################### +[0] from 0x0800629c in UART1_RxCpltCallback+36 at shared/drivers/p_serial_mgr.c:42 +[1] from 0x08005f14 in UART_RxISR_8BIT+330 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:4430 +[2] from 0x08004c76 in HAL_UART_IRQHandler+102 at Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c:2347 +[3] from 0x08001702 in USART1_IRQHandler+10 at Core/Src/stm32l4xx_it.c:226 +[4] from 0xffffffe9 +[5] from 0x080062e0 in p_serial_mgr_service+0 at shared/drivers/p_serial_mgr.c:60 +[6] from 0x080011f0 in main+136 at Core/Src/main.c:141 +### Threads ####################################################################################################### +[1] id 0 from 0x0800629c in UART1_RxCpltCallback+36 at shared/drivers/p_serial_mgr.c:42 +### Variables ##################################################################################################### +arg huart = 0x20000a5c : {Instance = 0x40013800,Init = {BaudRate = 115200,WordLength = 0,StopBi… +################################################################################################################### +Loading section .isr_vector, size 0x190 lma 0x8000000 +Loading section .text, size 0xb710 lma 0x80001c0 +Loading section .rodata, size 0x480 lma 0x800b8d0 +Loading section .ARM, size 0x8 lma 0x800bd50 +Loading section .init_array, size 0x8 lma 0x800bd58 +Loading section .fini_array, size 0x8 lma 0x800bd60 +Loading section .data, size 0x9a8 lma 0x800bd68 +Start address 0x08006460, load size 50912 +Transfer rate: 31 KB/sec, 5656 bytes/write. +Unable to match requested speed 500 kHz, using 480 kHz +Unable to match requested speed 500 kHz, using 480 kHz +A debugging session is active. + + Inferior 1 [Remote target] will be detached. + +Quit anyway? (y or n) [answered Y; input not from terminal] +[Inferior 1 (Remote target) detached] diff --git a/shared/drivers/p_serial_mgr.c b/shared/drivers/p_serial_mgr.c index 735621d..fc57c47 100644 --- a/shared/drivers/p_serial_mgr.c +++ b/shared/drivers/p_serial_mgr.c @@ -1,5 +1,6 @@ #include "p_serial_mgr.h" #include "putil.h" +#include "stm32l4xx_hal_def.h" #include "stm32l4xx_hal_uart.h" #define NUM_BUFFERS (10) @@ -23,6 +24,7 @@ typedef enum serial_state_t { SS_IDLE = 0, // waiting SS_START = 1, // get start byte, interrupt after 4 more bytes + SS_ERR = 2 } serial_state_t; static UART_HandleTypeDef *_serial_huart_inst = NULL; @@ -30,15 +32,22 @@ static UART_HandleTypeDef *_serial_huart_inst = NULL; static uint8_t rxc = '\0'; static serial_state_t sstate = SS_IDLE; +static void p_serial_mgr_flush() +{ + HAL_UART_Receive(_serial_huart_inst, sbuffer[active_buffer], MAX_MESSAGE_LEN, 10); +} void UART1_RxCpltCallback(UART_HandleTypeDef *huart) { + PDEBUG("%c", sbuffer[active_buffer][0]); + p_serial_mgr_start(); + return; if (sstate == SS_IDLE && sbuffer[active_buffer][0] == 0x7E) { sstate = SS_START; } else { - HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + sstate = SS_ERR; } } @@ -51,20 +60,28 @@ void p_serial_mgr_service(void) { if (sstate == SS_START) { - HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN, 10); + while (HAL_UART_Receive(_serial_huart_inst, &sbuffer[active_buffer][1], MAX_MESSAGE_LEN - 2, 20) != HAL_OK) {} for (int ind = 0; ind < 24; ind++) { PDEBUG("[%d]: 0x%02x\n", ind, sbuffer[active_buffer][ind]); } PDEBUG("\n\n"); - sstate = SS_IDLE; + memset(sbuffer[active_buffer], 0, MAX_MESSAGE_LEN); active_buffer = (active_buffer + 1) % NUM_BUFFERS; - HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + uint8_t sendbuffer[9] = {0x7E, DEVICE_ADDR, MASTER_ADDR, 4, 0x01, 0x02, 0x03, 0x04, 0xFF}; + // HAL_UART_Transmit(_serial_huart_inst, sendbuffer, 9, 10); + p_serial_mgr_start(); + } + else if (sstate == SS_ERR) + { + PDEBUG("MISSED BYTE 0x%02x\n", sbuffer[active_buffer][0]); + p_serial_mgr_start(); } } void p_serial_mgr_start() { sstate = SS_IDLE; - HAL_UART_Receive_IT(_serial_huart_inst, sbuffer[active_buffer], 1); + volatile HAL_StatusTypeDef ret = HAL_UART_Receive_IT(_serial_huart_inst, &sbuffer[active_buffer][0], 1); + asm volatile("nop"); }