From 6031271d13eadbe13fd3215958baf039961e5bcf Mon Sep 17 00:00:00 2001 From: Federica Di Lauro Date: Wed, 11 Sep 2019 15:51:31 +0200 Subject: [PATCH] hello world! funziona --- .../.cproject | 229 +- .../.mxproject | 4 +- .../.project | 2 +- .../.settings/language.settings.xml | 4 +- .../org.eclipse.cdt.codan.core.prefs | 0 .../.settings/org.eclipse.core.runtime.prefs | 0 .../STM32F7xx_HAL_Driver/Src/subdir.mk | 36 +- .../Debug/Src/subdir.mk | 16 +- .../Debug/Startup/subdir.mk | 2 +- .../Debug/makefile | 2 +- .../Debug/objects.list | 0 .../Debug/objects.mk | 0 .../Debug/rosserial_test.list | 15090 +++++++ .../Debug/sources.mk | 0 .../Device/ST/STM32F7xx/Include/stm32f767xx.h | 0 .../Device/ST/STM32F7xx/Include/stm32f7xx.h | 0 .../ST/STM32F7xx/Include/system_stm32f7xx.h | 0 .../Drivers/CMSIS/Include/cmsis_armcc.h | 0 .../Drivers/CMSIS/Include/cmsis_armclang.h | 0 .../Drivers/CMSIS/Include/cmsis_compiler.h | 0 .../Drivers/CMSIS/Include/cmsis_gcc.h | 0 .../Drivers/CMSIS/Include/cmsis_iccarm.h | 0 .../Drivers/CMSIS/Include/cmsis_version.h | 0 .../Drivers/CMSIS/Include/core_armv8mbl.h | 0 .../Drivers/CMSIS/Include/core_armv8mml.h | 0 .../Drivers/CMSIS/Include/core_cm0.h | 0 .../Drivers/CMSIS/Include/core_cm0plus.h | 0 .../Drivers/CMSIS/Include/core_cm1.h | 0 .../Drivers/CMSIS/Include/core_cm23.h | 0 .../Drivers/CMSIS/Include/core_cm3.h | 0 .../Drivers/CMSIS/Include/core_cm33.h | 0 .../Drivers/CMSIS/Include/core_cm4.h | 0 .../Drivers/CMSIS/Include/core_cm7.h | 0 .../Drivers/CMSIS/Include/core_sc000.h | 0 .../Drivers/CMSIS/Include/core_sc300.h | 0 .../Drivers/CMSIS/Include/mpu_armv7.h | 0 .../Drivers/CMSIS/Include/mpu_armv8.h | 0 .../Drivers/CMSIS/Include/tz_context.h | 0 .../Inc/Legacy/stm32_hal_legacy.h | 0 .../STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h | 0 .../Inc/stm32f7xx_hal_cortex.h | 0 .../Inc/stm32f7xx_hal_def.h | 0 .../Inc/stm32f7xx_hal_dma.h | 0 .../Inc/stm32f7xx_hal_dma_ex.h | 0 .../Inc/stm32f7xx_hal_exti.h | 0 .../Inc/stm32f7xx_hal_flash.h | 0 .../Inc/stm32f7xx_hal_flash_ex.h | 0 .../Inc/stm32f7xx_hal_gpio.h | 0 .../Inc/stm32f7xx_hal_gpio_ex.h | 0 .../Inc/stm32f7xx_hal_i2c.h | 0 .../Inc/stm32f7xx_hal_i2c_ex.h | 0 .../Inc/stm32f7xx_hal_pwr.h | 0 .../Inc/stm32f7xx_hal_pwr_ex.h | 0 .../Inc/stm32f7xx_hal_rcc.h | 0 .../Inc/stm32f7xx_hal_rcc_ex.h | 0 .../Inc/stm32f7xx_hal_tim.h | 0 .../Inc/stm32f7xx_hal_tim_ex.h | 0 .../Inc/stm32f7xx_hal_uart.h | 0 .../Inc/stm32f7xx_hal_uart_ex.h | 0 .../STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c | 0 .../Src/stm32f7xx_hal_cortex.c | 0 .../Src/stm32f7xx_hal_dma.c | 0 .../Src/stm32f7xx_hal_dma_ex.c | 0 .../Src/stm32f7xx_hal_exti.c | 0 .../Src/stm32f7xx_hal_flash.c | 0 .../Src/stm32f7xx_hal_flash_ex.c | 0 .../Src/stm32f7xx_hal_gpio.c | 0 .../Src/stm32f7xx_hal_i2c.c | 0 .../Src/stm32f7xx_hal_i2c_ex.c | 0 .../Src/stm32f7xx_hal_pwr.c | 0 .../Src/stm32f7xx_hal_pwr_ex.c | 0 .../Src/stm32f7xx_hal_rcc.c | 0 .../Src/stm32f7xx_hal_rcc_ex.c | 0 .../Src/stm32f7xx_hal_tim.c | 0 .../Src/stm32f7xx_hal_tim_ex.c | 0 .../Src/stm32f7xx_hal_uart.c | 0 .../Src/stm32f7xx_hal_uart_ex.c | 0 .../Inc/STM32Hardware.h | 5 +- .../Inc/actionlib/TestAction.h | 0 .../Inc/actionlib/TestActionFeedback.h | 0 .../Inc/actionlib/TestActionGoal.h | 0 .../Inc/actionlib/TestActionResult.h | 0 .../Inc/actionlib/TestFeedback.h | 0 .../Inc/actionlib/TestGoal.h | 0 .../Inc/actionlib/TestRequestAction.h | 0 .../Inc/actionlib/TestRequestActionFeedback.h | 0 .../Inc/actionlib/TestRequestActionGoal.h | 0 .../Inc/actionlib/TestRequestActionResult.h | 0 .../Inc/actionlib/TestRequestFeedback.h | 0 .../Inc/actionlib/TestRequestGoal.h | 0 .../Inc/actionlib/TestRequestResult.h | 0 .../Inc/actionlib/TestResult.h | 0 .../Inc/actionlib/TwoIntsAction.h | 0 .../Inc/actionlib/TwoIntsActionFeedback.h | 0 .../Inc/actionlib/TwoIntsActionGoal.h | 0 .../Inc/actionlib/TwoIntsActionResult.h | 0 .../Inc/actionlib/TwoIntsFeedback.h | 0 .../Inc/actionlib/TwoIntsGoal.h | 0 .../Inc/actionlib/TwoIntsResult.h | 0 .../Inc/actionlib_msgs/GoalID.h | 0 .../Inc/actionlib_msgs/GoalStatus.h | 0 .../Inc/actionlib_msgs/GoalStatusArray.h | 0 .../Inc/actionlib_tutorials/AveragingAction.h | 0 .../AveragingActionFeedback.h | 0 .../actionlib_tutorials/AveragingActionGoal.h | 0 .../AveragingActionResult.h | 0 .../actionlib_tutorials/AveragingFeedback.h | 0 .../Inc/actionlib_tutorials/AveragingGoal.h | 0 .../Inc/actionlib_tutorials/AveragingResult.h | 0 .../Inc/actionlib_tutorials/FibonacciAction.h | 0 .../FibonacciActionFeedback.h | 0 .../actionlib_tutorials/FibonacciActionGoal.h | 0 .../FibonacciActionResult.h | 0 .../actionlib_tutorials/FibonacciFeedback.h | 0 .../Inc/actionlib_tutorials/FibonacciGoal.h | 0 .../Inc/actionlib_tutorials/FibonacciResult.h | 0 .../Inc/bond/Constants.h | 0 .../Inc/bond/Status.h | 0 .../FollowJointTrajectoryAction.h | 0 .../FollowJointTrajectoryActionFeedback.h | 0 .../FollowJointTrajectoryActionGoal.h | 0 .../FollowJointTrajectoryActionResult.h | 0 .../FollowJointTrajectoryFeedback.h | 0 .../control_msgs/FollowJointTrajectoryGoal.h | 0 .../FollowJointTrajectoryResult.h | 0 .../Inc/control_msgs/GripperCommand.h | 0 .../Inc/control_msgs/GripperCommandAction.h | 0 .../GripperCommandActionFeedback.h | 0 .../control_msgs/GripperCommandActionGoal.h | 0 .../control_msgs/GripperCommandActionResult.h | 0 .../Inc/control_msgs/GripperCommandFeedback.h | 0 .../Inc/control_msgs/GripperCommandGoal.h | 0 .../Inc/control_msgs/GripperCommandResult.h | 0 .../Inc/control_msgs/JointControllerState.h | 0 .../Inc/control_msgs/JointJog.h | 0 .../Inc/control_msgs/JointTolerance.h | 0 .../Inc/control_msgs/JointTrajectoryAction.h | 0 .../JointTrajectoryActionFeedback.h | 0 .../control_msgs/JointTrajectoryActionGoal.h | 0 .../JointTrajectoryActionResult.h | 0 .../JointTrajectoryControllerState.h | 0 .../control_msgs/JointTrajectoryFeedback.h | 0 .../Inc/control_msgs/JointTrajectoryGoal.h | 0 .../Inc/control_msgs/JointTrajectoryResult.h | 0 .../Inc/control_msgs/PidState.h | 0 .../Inc/control_msgs/PointHeadAction.h | 0 .../control_msgs/PointHeadActionFeedback.h | 0 .../Inc/control_msgs/PointHeadActionGoal.h | 0 .../Inc/control_msgs/PointHeadActionResult.h | 0 .../Inc/control_msgs/PointHeadFeedback.h | 0 .../Inc/control_msgs/PointHeadGoal.h | 0 .../Inc/control_msgs/PointHeadResult.h | 0 .../Inc/control_msgs/QueryCalibrationState.h | 0 .../Inc/control_msgs/QueryTrajectoryState.h | 0 .../control_msgs/SingleJointPositionAction.h | 0 .../SingleJointPositionActionFeedback.h | 0 .../SingleJointPositionActionGoal.h | 0 .../SingleJointPositionActionResult.h | 0 .../SingleJointPositionFeedback.h | 0 .../control_msgs/SingleJointPositionGoal.h | 0 .../control_msgs/SingleJointPositionResult.h | 0 .../Inc/control_toolbox/SetPidGains.h | 0 .../controller_manager_msgs/ControllerState.h | 0 .../ControllerStatistics.h | 0 .../ControllersStatistics.h | 0 .../HardwareInterfaceResources.h | 0 .../ListControllerTypes.h | 0 .../controller_manager_msgs/ListControllers.h | 0 .../controller_manager_msgs/LoadController.h | 0 .../ReloadControllerLibraries.h | 0 .../SwitchController.h | 0 .../UnloadController.h | 0 .../Inc/diagnostic_msgs/AddDiagnostics.h | 0 .../Inc/diagnostic_msgs/DiagnosticArray.h | 0 .../Inc/diagnostic_msgs/DiagnosticStatus.h | 0 .../Inc/diagnostic_msgs/KeyValue.h | 0 .../Inc/diagnostic_msgs/SelfTest.h | 0 .../Inc/duration.cpp | 0 .../Inc/dynamic_reconfigure/BoolParameter.h | 0 .../Inc/dynamic_reconfigure/Config.h | 0 .../dynamic_reconfigure/ConfigDescription.h | 0 .../Inc/dynamic_reconfigure/DoubleParameter.h | 0 .../Inc/dynamic_reconfigure/Group.h | 0 .../Inc/dynamic_reconfigure/GroupState.h | 0 .../Inc/dynamic_reconfigure/IntParameter.h | 0 .../dynamic_reconfigure/ParamDescription.h | 0 .../Inc/dynamic_reconfigure/Reconfigure.h | 0 .../Inc/dynamic_reconfigure/SensorLevels.h | 0 .../Inc/dynamic_reconfigure/StrParameter.h | 0 .../Inc/gazebo_msgs/ApplyBodyWrench.h | 0 .../Inc/gazebo_msgs/ApplyJointEffort.h | 0 .../Inc/gazebo_msgs/BodyRequest.h | 0 .../Inc/gazebo_msgs/ContactState.h | 0 .../Inc/gazebo_msgs/ContactsState.h | 0 .../Inc/gazebo_msgs/DeleteLight.h | 0 .../Inc/gazebo_msgs/DeleteModel.h | 0 .../Inc/gazebo_msgs/GetJointProperties.h | 0 .../Inc/gazebo_msgs/GetLightProperties.h | 0 .../Inc/gazebo_msgs/GetLinkProperties.h | 0 .../Inc/gazebo_msgs/GetLinkState.h | 0 .../Inc/gazebo_msgs/GetModelProperties.h | 0 .../Inc/gazebo_msgs/GetModelState.h | 0 .../Inc/gazebo_msgs/GetPhysicsProperties.h | 0 .../Inc/gazebo_msgs/GetWorldProperties.h | 0 .../Inc/gazebo_msgs/JointRequest.h | 0 .../Inc/gazebo_msgs/LinkState.h | 0 .../Inc/gazebo_msgs/LinkStates.h | 0 .../Inc/gazebo_msgs/ModelState.h | 0 .../Inc/gazebo_msgs/ModelStates.h | 0 .../Inc/gazebo_msgs/ODEJointProperties.h | 0 .../Inc/gazebo_msgs/ODEPhysics.h | 0 .../Inc/gazebo_msgs/SetJointProperties.h | 0 .../Inc/gazebo_msgs/SetJointTrajectory.h | 0 .../Inc/gazebo_msgs/SetLightProperties.h | 0 .../Inc/gazebo_msgs/SetLinkProperties.h | 0 .../Inc/gazebo_msgs/SetLinkState.h | 0 .../Inc/gazebo_msgs/SetModelConfiguration.h | 0 .../Inc/gazebo_msgs/SetModelState.h | 0 .../Inc/gazebo_msgs/SetPhysicsProperties.h | 0 .../Inc/gazebo_msgs/SpawnModel.h | 0 .../Inc/gazebo_msgs/WorldState.h | 0 .../Inc/geometry_msgs/Accel.h | 0 .../Inc/geometry_msgs/AccelStamped.h | 0 .../Inc/geometry_msgs/AccelWithCovariance.h | 0 .../AccelWithCovarianceStamped.h | 0 .../Inc/geometry_msgs/Inertia.h | 0 .../Inc/geometry_msgs/InertiaStamped.h | 0 .../Inc/geometry_msgs/Point.h | 0 .../Inc/geometry_msgs/Point32.h | 0 .../Inc/geometry_msgs/PointStamped.h | 0 .../Inc/geometry_msgs/Polygon.h | 0 .../Inc/geometry_msgs/PolygonStamped.h | 0 .../Inc/geometry_msgs/Pose.h | 0 .../Inc/geometry_msgs/Pose2D.h | 0 .../Inc/geometry_msgs/PoseArray.h | 0 .../Inc/geometry_msgs/PoseStamped.h | 0 .../Inc/geometry_msgs/PoseWithCovariance.h | 0 .../geometry_msgs/PoseWithCovarianceStamped.h | 0 .../Inc/geometry_msgs/Quaternion.h | 0 .../Inc/geometry_msgs/QuaternionStamped.h | 0 .../Inc/geometry_msgs/Transform.h | 0 .../Inc/geometry_msgs/TransformStamped.h | 0 .../Inc/geometry_msgs/Twist.h | 0 .../Inc/geometry_msgs/TwistStamped.h | 0 .../Inc/geometry_msgs/TwistWithCovariance.h | 0 .../TwistWithCovarianceStamped.h | 0 .../Inc/geometry_msgs/Vector3.h | 0 .../Inc/geometry_msgs/Vector3Stamped.h | 0 .../Inc/geometry_msgs/Wrench.h | 0 .../Inc/geometry_msgs/WrenchStamped.h | 0 .../Inc/laser_assembler/AssembleScans.h | 0 .../Inc/laser_assembler/AssembleScans2.h | 0 .../Inc/main.h | 0 .../Inc/map_msgs/GetMapROI.h | 0 .../Inc/map_msgs/GetPointMap.h | 0 .../Inc/map_msgs/GetPointMapROI.h | 0 .../Inc/map_msgs/OccupancyGridUpdate.h | 0 .../Inc/map_msgs/PointCloud2Update.h | 0 .../Inc/map_msgs/ProjectedMap.h | 0 .../Inc/map_msgs/ProjectedMapInfo.h | 0 .../Inc/map_msgs/ProjectedMapsInfo.h | 0 .../Inc/map_msgs/SaveMap.h | 0 .../Inc/map_msgs/SetMapProjections.h | 0 .../Inc/nav_msgs/GetMap.h | 0 .../Inc/nav_msgs/GetMapAction.h | 0 .../Inc/nav_msgs/GetMapActionFeedback.h | 0 .../Inc/nav_msgs/GetMapActionGoal.h | 0 .../Inc/nav_msgs/GetMapActionResult.h | 0 .../Inc/nav_msgs/GetMapFeedback.h | 0 .../Inc/nav_msgs/GetMapGoal.h | 0 .../Inc/nav_msgs/GetMapResult.h | 0 .../Inc/nav_msgs/GetPlan.h | 0 .../Inc/nav_msgs/GridCells.h | 0 .../Inc/nav_msgs/MapMetaData.h | 0 .../Inc/nav_msgs/OccupancyGrid.h | 0 .../Inc/nav_msgs/Odometry.h | 0 .../Inc/nav_msgs/Path.h | 0 .../Inc/nav_msgs/SetMap.h | 0 .../Inc/nodelet/NodeletList.h | 0 .../Inc/nodelet/NodeletLoad.h | 0 .../Inc/nodelet/NodeletUnload.h | 0 .../Inc/pcl_msgs/ModelCoefficients.h | 0 .../Inc/pcl_msgs/PointIndices.h | 0 .../Inc/pcl_msgs/PolygonMesh.h | 0 .../Inc/pcl_msgs/Vertices.h | 0 .../Inc/polled_camera/GetPolledImage.h | 0 .../Inc/ros.h | 0 .../Inc/ros/duration.h | 0 .../Inc/ros/msg.h | 0 .../Inc/ros/node_handle.h | 0 .../Inc/ros/publisher.h | 0 .../Inc/ros/ros_time.h | 0 .../Inc/ros/service_client.h | 0 .../Inc/ros/service_server.h | 0 .../Inc/ros/subscriber.h | 0 .../Inc/roscpp/Empty.h | 0 .../Inc/roscpp/GetLoggers.h | 0 .../Inc/roscpp/Logger.h | 0 .../Inc/roscpp/SetLoggerLevel.h | 0 .../Inc/roscpp_tutorials/TwoInts.h | 0 .../Inc/rosgraph_msgs/Clock.h | 0 .../Inc/rosgraph_msgs/Log.h | 0 .../Inc/rosgraph_msgs/TopicStatistics.h | 0 .../Inc/rospy_tutorials/AddTwoInts.h | 0 .../Inc/rospy_tutorials/BadTwoInts.h | 0 .../Inc/rospy_tutorials/Floats.h | 0 .../Inc/rospy_tutorials/HeaderString.h | 0 .../Inc/rosserial_msgs/Log.h | 0 .../Inc/rosserial_msgs/RequestMessageInfo.h | 0 .../Inc/rosserial_msgs/RequestParam.h | 0 .../Inc/rosserial_msgs/RequestServiceInfo.h | 0 .../Inc/rosserial_msgs/TopicInfo.h | 0 .../Inc/sensor_msgs/BatteryState.h | 0 .../Inc/sensor_msgs/CameraInfo.h | 0 .../Inc/sensor_msgs/ChannelFloat32.h | 0 .../Inc/sensor_msgs/CompressedImage.h | 0 .../Inc/sensor_msgs/FluidPressure.h | 0 .../Inc/sensor_msgs/Illuminance.h | 0 .../Inc/sensor_msgs/Image.h | 0 .../Inc/sensor_msgs/Imu.h | 0 .../Inc/sensor_msgs/JointState.h | 0 .../Inc/sensor_msgs/Joy.h | 0 .../Inc/sensor_msgs/JoyFeedback.h | 0 .../Inc/sensor_msgs/JoyFeedbackArray.h | 0 .../Inc/sensor_msgs/LaserEcho.h | 0 .../Inc/sensor_msgs/LaserScan.h | 0 .../Inc/sensor_msgs/MagneticField.h | 0 .../Inc/sensor_msgs/MultiDOFJointState.h | 0 .../Inc/sensor_msgs/MultiEchoLaserScan.h | 0 .../Inc/sensor_msgs/NavSatFix.h | 0 .../Inc/sensor_msgs/NavSatStatus.h | 0 .../Inc/sensor_msgs/PointCloud.h | 0 .../Inc/sensor_msgs/PointCloud2.h | 0 .../Inc/sensor_msgs/PointField.h | 0 .../Inc/sensor_msgs/Range.h | 0 .../Inc/sensor_msgs/RegionOfInterest.h | 0 .../Inc/sensor_msgs/RelativeHumidity.h | 0 .../Inc/sensor_msgs/SetCameraInfo.h | 0 .../Inc/sensor_msgs/Temperature.h | 0 .../Inc/sensor_msgs/TimeReference.h | 0 .../Inc/shape_msgs/Mesh.h | 0 .../Inc/shape_msgs/MeshTriangle.h | 0 .../Inc/shape_msgs/Plane.h | 0 .../Inc/shape_msgs/SolidPrimitive.h | 0 .../SmachContainerInitialStatusCmd.h | 0 .../Inc/smach_msgs/SmachContainerStatus.h | 0 .../Inc/smach_msgs/SmachContainerStructure.h | 0 .../Inc/std_msgs/Bool.h | 0 .../Inc/std_msgs/Byte.h | 0 .../Inc/std_msgs/ByteMultiArray.h | 0 .../Inc/std_msgs/Char.h | 0 .../Inc/std_msgs/ColorRGBA.h | 0 .../Inc/std_msgs/Duration.h | 0 .../Inc/std_msgs/Empty.h | 0 .../Inc/std_msgs/Float32.h | 0 .../Inc/std_msgs/Float32MultiArray.h | 0 .../Inc/std_msgs/Float64.h | 0 .../Inc/std_msgs/Float64MultiArray.h | 0 .../Inc/std_msgs/Header.h | 0 .../Inc/std_msgs/Int16.h | 0 .../Inc/std_msgs/Int16MultiArray.h | 0 .../Inc/std_msgs/Int32.h | 0 .../Inc/std_msgs/Int32MultiArray.h | 0 .../Inc/std_msgs/Int64.h | 0 .../Inc/std_msgs/Int64MultiArray.h | 0 .../Inc/std_msgs/Int8.h | 0 .../Inc/std_msgs/Int8MultiArray.h | 0 .../Inc/std_msgs/MultiArrayDimension.h | 0 .../Inc/std_msgs/MultiArrayLayout.h | 0 .../Inc/std_msgs/String.h | 0 .../Inc/std_msgs/Time.h | 0 .../Inc/std_msgs/UInt16.h | 0 .../Inc/std_msgs/UInt16MultiArray.h | 0 .../Inc/std_msgs/UInt32.h | 0 .../Inc/std_msgs/UInt32MultiArray.h | 0 .../Inc/std_msgs/UInt64.h | 0 .../Inc/std_msgs/UInt64MultiArray.h | 0 .../Inc/std_msgs/UInt8.h | 0 .../Inc/std_msgs/UInt8MultiArray.h | 0 .../Inc/std_srvs/Empty.h | 0 .../Inc/std_srvs/SetBool.h | 0 .../Inc/std_srvs/Trigger.h | 0 .../Inc/stereo_msgs/DisparityImage.h | 0 .../Inc/stm32f7xx_hal_conf.h | 0 .../Inc/stm32f7xx_it.h | 3 + .../Inc/test.hpp | 0 .../Inc/tf/FrameGraph.h | 0 .../Inc/tf/tf.h | 0 .../Inc/tf/tfMessage.h | 0 .../Inc/tf/transform_broadcaster.h | 0 .../Inc/tf2_msgs/FrameGraph.h | 0 .../Inc/tf2_msgs/LookupTransformAction.h | 0 .../tf2_msgs/LookupTransformActionFeedback.h | 0 .../Inc/tf2_msgs/LookupTransformActionGoal.h | 0 .../tf2_msgs/LookupTransformActionResult.h | 0 .../Inc/tf2_msgs/LookupTransformFeedback.h | 0 .../Inc/tf2_msgs/LookupTransformGoal.h | 0 .../Inc/tf2_msgs/LookupTransformResult.h | 0 .../Inc/tf2_msgs/TF2Error.h | 0 .../Inc/tf2_msgs/TFMessage.h | 0 .../Inc/theora_image_transport/Packet.h | 0 .../Inc/topic_tools/DemuxAdd.h | 0 .../Inc/topic_tools/DemuxDelete.h | 0 .../Inc/topic_tools/DemuxList.h | 0 .../Inc/topic_tools/DemuxSelect.h | 0 .../Inc/topic_tools/MuxAdd.h | 0 .../Inc/topic_tools/MuxDelete.h | 0 .../Inc/topic_tools/MuxList.h | 0 .../Inc/topic_tools/MuxSelect.h | 0 .../Inc/trajectory_msgs/JointTrajectory.h | 0 .../trajectory_msgs/JointTrajectoryPoint.h | 0 .../trajectory_msgs/MultiDOFJointTrajectory.h | 0 .../MultiDOFJointTrajectoryPoint.h | 0 .../Inc/turtle_actionlib/ShapeAction.h | 0 .../turtle_actionlib/ShapeActionFeedback.h | 0 .../Inc/turtle_actionlib/ShapeActionGoal.h | 0 .../Inc/turtle_actionlib/ShapeActionResult.h | 0 .../Inc/turtle_actionlib/ShapeFeedback.h | 0 .../Inc/turtle_actionlib/ShapeGoal.h | 0 .../Inc/turtle_actionlib/ShapeResult.h | 0 .../Inc/turtle_actionlib/Velocity.h | 0 .../Inc/turtlesim/Color.h | 0 .../Inc/turtlesim/Kill.h | 0 .../Inc/turtlesim/Pose.h | 0 .../Inc/turtlesim/SetPen.h | 0 .../Inc/turtlesim/Spawn.h | 0 .../Inc/turtlesim/TeleportAbsolute.h | 0 .../Inc/turtlesim/TeleportRelative.h | 0 .../Inc/visualization_msgs/ImageMarker.h | 0 .../visualization_msgs/InteractiveMarker.h | 0 .../InteractiveMarkerControl.h | 0 .../InteractiveMarkerFeedback.h | 0 .../InteractiveMarkerInit.h | 0 .../InteractiveMarkerPose.h | 0 .../InteractiveMarkerUpdate.h | 0 .../Inc/visualization_msgs/Marker.h | 0 .../Inc/visualization_msgs/MarkerArray.h | 0 .../Inc/visualization_msgs/MenuEntry.h | 0 .../STM32F767ZITX_FLASH.ld | 0 .../STM32F767ZITX_RAM.ld | 0 rosserial_hello_world/Src/main.cpp | 314 + .../Src/ros_time.cpp | 0 .../Src/stm32f7xx_hal_msp.c | 65 +- .../Src/stm32f7xx_it.c | 46 +- .../Src/syscalls.c | 0 .../Src/sysmem.c | 0 .../Src/system_stm32f7xx.c | 0 .../Src/test.cpp | 0 .../Startup/startup_stm32f767zitx.s | 0 .../rosserial_hello_world.ioc | 53 +- .../rosserial_test.elf.launch | 0 rosserial_test/Debug/rosserial_test.list | 32568 ---------------- rosserial_test/Src/main.cpp | 289 - 453 files changed, 15714 insertions(+), 33014 deletions(-) rename {rosserial_test => rosserial_hello_world}/.cproject (62%) rename {rosserial_test => rosserial_hello_world}/.mxproject (97%) rename {rosserial_test => rosserial_hello_world}/.project (96%) rename {rosserial_test => rosserial_hello_world}/.settings/language.settings.xml (96%) rename {rosserial_test => rosserial_hello_world}/.settings/org.eclipse.cdt.codan.core.prefs (100%) rename {rosserial_test => rosserial_hello_world}/.settings/org.eclipse.core.runtime.prefs (100%) rename {rosserial_test => rosserial_hello_world}/Debug/Drivers/STM32F7xx_HAL_Driver/Src/subdir.mk (89%) rename {rosserial_test => rosserial_hello_world}/Debug/Src/subdir.mk (81%) rename {rosserial_test => rosserial_hello_world}/Debug/Startup/subdir.mk (87%) rename {rosserial_test => rosserial_hello_world}/Debug/makefile (92%) rename {rosserial_test => rosserial_hello_world}/Debug/objects.list (100%) rename {rosserial_test => rosserial_hello_world}/Debug/objects.mk (100%) create mode 100644 rosserial_hello_world/Debug/rosserial_test.list rename {rosserial_test => rosserial_hello_world}/Debug/sources.mk (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f7xx.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Device/ST/STM32F7xx/Include/system_stm32f7xx.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/cmsis_armcc.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/cmsis_armclang.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/cmsis_compiler.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/cmsis_gcc.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/cmsis_iccarm.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/cmsis_version.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/core_armv8mbl.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/core_armv8mml.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/core_cm0.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/core_cm0plus.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/core_cm1.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/core_cm23.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/core_cm3.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/core_cm33.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/core_cm4.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/core_cm7.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/core_sc000.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/core_sc300.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/mpu_armv7.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/mpu_armv8.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/CMSIS/Include/tz_context.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_cortex.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma_ex.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_exti.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash_ex.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio_ex.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c_ex.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr_ex.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc_ex.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim_ex.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart_ex.h (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_exti.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.c (100%) rename {rosserial_test => rosserial_hello_world}/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart_ex.c (100%) rename {rosserial_test => rosserial_hello_world}/Inc/STM32Hardware.h (96%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestAction.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestActionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestActionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestActionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestRequestAction.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestRequestActionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestRequestActionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestRequestActionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestRequestFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestRequestGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestRequestResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TestResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TwoIntsAction.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TwoIntsActionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TwoIntsActionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TwoIntsActionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TwoIntsFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TwoIntsGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib/TwoIntsResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_msgs/GoalID.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_msgs/GoalStatus.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_msgs/GoalStatusArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/AveragingAction.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/AveragingActionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/AveragingActionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/AveragingActionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/AveragingFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/AveragingGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/AveragingResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/FibonacciAction.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/FibonacciActionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/FibonacciActionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/FibonacciActionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/FibonacciFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/FibonacciGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/actionlib_tutorials/FibonacciResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/bond/Constants.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/bond/Status.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/FollowJointTrajectoryAction.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/FollowJointTrajectoryActionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/FollowJointTrajectoryActionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/FollowJointTrajectoryActionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/FollowJointTrajectoryFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/FollowJointTrajectoryGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/FollowJointTrajectoryResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/GripperCommand.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/GripperCommandAction.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/GripperCommandActionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/GripperCommandActionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/GripperCommandActionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/GripperCommandFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/GripperCommandGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/GripperCommandResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/JointControllerState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/JointJog.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/JointTolerance.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/JointTrajectoryAction.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/JointTrajectoryActionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/JointTrajectoryActionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/JointTrajectoryActionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/JointTrajectoryControllerState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/JointTrajectoryFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/JointTrajectoryGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/JointTrajectoryResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/PidState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/PointHeadAction.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/PointHeadActionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/PointHeadActionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/PointHeadActionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/PointHeadFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/PointHeadGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/PointHeadResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/QueryCalibrationState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/QueryTrajectoryState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/SingleJointPositionAction.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/SingleJointPositionActionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/SingleJointPositionActionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/SingleJointPositionActionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/SingleJointPositionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/SingleJointPositionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_msgs/SingleJointPositionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/control_toolbox/SetPidGains.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/controller_manager_msgs/ControllerState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/controller_manager_msgs/ControllerStatistics.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/controller_manager_msgs/ControllersStatistics.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/controller_manager_msgs/HardwareInterfaceResources.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/controller_manager_msgs/ListControllerTypes.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/controller_manager_msgs/ListControllers.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/controller_manager_msgs/LoadController.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/controller_manager_msgs/ReloadControllerLibraries.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/controller_manager_msgs/SwitchController.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/controller_manager_msgs/UnloadController.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/diagnostic_msgs/AddDiagnostics.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/diagnostic_msgs/DiagnosticArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/diagnostic_msgs/DiagnosticStatus.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/diagnostic_msgs/KeyValue.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/diagnostic_msgs/SelfTest.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/duration.cpp (100%) rename {rosserial_test => rosserial_hello_world}/Inc/dynamic_reconfigure/BoolParameter.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/dynamic_reconfigure/Config.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/dynamic_reconfigure/ConfigDescription.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/dynamic_reconfigure/DoubleParameter.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/dynamic_reconfigure/Group.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/dynamic_reconfigure/GroupState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/dynamic_reconfigure/IntParameter.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/dynamic_reconfigure/ParamDescription.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/dynamic_reconfigure/Reconfigure.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/dynamic_reconfigure/SensorLevels.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/dynamic_reconfigure/StrParameter.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/ApplyBodyWrench.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/ApplyJointEffort.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/BodyRequest.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/ContactState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/ContactsState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/DeleteLight.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/DeleteModel.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/GetJointProperties.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/GetLightProperties.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/GetLinkProperties.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/GetLinkState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/GetModelProperties.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/GetModelState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/GetPhysicsProperties.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/GetWorldProperties.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/JointRequest.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/LinkState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/LinkStates.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/ModelState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/ModelStates.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/ODEJointProperties.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/ODEPhysics.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/SetJointProperties.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/SetJointTrajectory.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/SetLightProperties.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/SetLinkProperties.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/SetLinkState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/SetModelConfiguration.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/SetModelState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/SetPhysicsProperties.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/SpawnModel.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/gazebo_msgs/WorldState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/Accel.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/AccelStamped.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/AccelWithCovariance.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/AccelWithCovarianceStamped.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/Inertia.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/InertiaStamped.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/Point.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/Point32.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/PointStamped.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/Polygon.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/PolygonStamped.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/Pose.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/Pose2D.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/PoseArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/PoseStamped.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/PoseWithCovariance.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/PoseWithCovarianceStamped.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/Quaternion.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/QuaternionStamped.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/Transform.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/TransformStamped.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/Twist.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/TwistStamped.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/TwistWithCovariance.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/TwistWithCovarianceStamped.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/Vector3.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/Vector3Stamped.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/Wrench.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/geometry_msgs/WrenchStamped.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/laser_assembler/AssembleScans.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/laser_assembler/AssembleScans2.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/main.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/map_msgs/GetMapROI.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/map_msgs/GetPointMap.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/map_msgs/GetPointMapROI.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/map_msgs/OccupancyGridUpdate.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/map_msgs/PointCloud2Update.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/map_msgs/ProjectedMap.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/map_msgs/ProjectedMapInfo.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/map_msgs/ProjectedMapsInfo.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/map_msgs/SaveMap.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/map_msgs/SetMapProjections.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/GetMap.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/GetMapAction.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/GetMapActionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/GetMapActionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/GetMapActionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/GetMapFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/GetMapGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/GetMapResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/GetPlan.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/GridCells.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/MapMetaData.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/OccupancyGrid.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/Odometry.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/Path.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nav_msgs/SetMap.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nodelet/NodeletList.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nodelet/NodeletLoad.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/nodelet/NodeletUnload.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/pcl_msgs/ModelCoefficients.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/pcl_msgs/PointIndices.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/pcl_msgs/PolygonMesh.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/pcl_msgs/Vertices.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/polled_camera/GetPolledImage.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/ros.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/ros/duration.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/ros/msg.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/ros/node_handle.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/ros/publisher.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/ros/ros_time.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/ros/service_client.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/ros/service_server.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/ros/subscriber.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/roscpp/Empty.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/roscpp/GetLoggers.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/roscpp/Logger.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/roscpp/SetLoggerLevel.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/roscpp_tutorials/TwoInts.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/rosgraph_msgs/Clock.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/rosgraph_msgs/Log.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/rosgraph_msgs/TopicStatistics.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/rospy_tutorials/AddTwoInts.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/rospy_tutorials/BadTwoInts.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/rospy_tutorials/Floats.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/rospy_tutorials/HeaderString.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/rosserial_msgs/Log.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/rosserial_msgs/RequestMessageInfo.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/rosserial_msgs/RequestParam.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/rosserial_msgs/RequestServiceInfo.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/rosserial_msgs/TopicInfo.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/BatteryState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/CameraInfo.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/ChannelFloat32.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/CompressedImage.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/FluidPressure.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/Illuminance.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/Image.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/Imu.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/JointState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/Joy.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/JoyFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/JoyFeedbackArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/LaserEcho.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/LaserScan.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/MagneticField.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/MultiDOFJointState.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/MultiEchoLaserScan.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/NavSatFix.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/NavSatStatus.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/PointCloud.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/PointCloud2.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/PointField.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/Range.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/RegionOfInterest.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/RelativeHumidity.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/SetCameraInfo.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/Temperature.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/sensor_msgs/TimeReference.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/shape_msgs/Mesh.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/shape_msgs/MeshTriangle.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/shape_msgs/Plane.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/shape_msgs/SolidPrimitive.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/smach_msgs/SmachContainerInitialStatusCmd.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/smach_msgs/SmachContainerStatus.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/smach_msgs/SmachContainerStructure.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Bool.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Byte.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/ByteMultiArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Char.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/ColorRGBA.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Duration.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Empty.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Float32.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Float32MultiArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Float64.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Float64MultiArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Header.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Int16.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Int16MultiArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Int32.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Int32MultiArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Int64.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Int64MultiArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Int8.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Int8MultiArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/MultiArrayDimension.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/MultiArrayLayout.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/String.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/Time.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/UInt16.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/UInt16MultiArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/UInt32.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/UInt32MultiArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/UInt64.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/UInt64MultiArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/UInt8.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_msgs/UInt8MultiArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_srvs/Empty.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_srvs/SetBool.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/std_srvs/Trigger.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/stereo_msgs/DisparityImage.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/stm32f7xx_hal_conf.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/stm32f7xx_it.h (92%) rename {rosserial_test => rosserial_hello_world}/Inc/test.hpp (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf/FrameGraph.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf/tf.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf/tfMessage.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf/transform_broadcaster.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf2_msgs/FrameGraph.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf2_msgs/LookupTransformAction.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf2_msgs/LookupTransformActionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf2_msgs/LookupTransformActionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf2_msgs/LookupTransformActionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf2_msgs/LookupTransformFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf2_msgs/LookupTransformGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf2_msgs/LookupTransformResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf2_msgs/TF2Error.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/tf2_msgs/TFMessage.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/theora_image_transport/Packet.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/topic_tools/DemuxAdd.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/topic_tools/DemuxDelete.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/topic_tools/DemuxList.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/topic_tools/DemuxSelect.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/topic_tools/MuxAdd.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/topic_tools/MuxDelete.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/topic_tools/MuxList.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/topic_tools/MuxSelect.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/trajectory_msgs/JointTrajectory.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/trajectory_msgs/JointTrajectoryPoint.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/trajectory_msgs/MultiDOFJointTrajectory.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/trajectory_msgs/MultiDOFJointTrajectoryPoint.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtle_actionlib/ShapeAction.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtle_actionlib/ShapeActionFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtle_actionlib/ShapeActionGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtle_actionlib/ShapeActionResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtle_actionlib/ShapeFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtle_actionlib/ShapeGoal.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtle_actionlib/ShapeResult.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtle_actionlib/Velocity.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtlesim/Color.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtlesim/Kill.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtlesim/Pose.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtlesim/SetPen.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtlesim/Spawn.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtlesim/TeleportAbsolute.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/turtlesim/TeleportRelative.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/visualization_msgs/ImageMarker.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/visualization_msgs/InteractiveMarker.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/visualization_msgs/InteractiveMarkerControl.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/visualization_msgs/InteractiveMarkerFeedback.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/visualization_msgs/InteractiveMarkerInit.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/visualization_msgs/InteractiveMarkerPose.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/visualization_msgs/InteractiveMarkerUpdate.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/visualization_msgs/Marker.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/visualization_msgs/MarkerArray.h (100%) rename {rosserial_test => rosserial_hello_world}/Inc/visualization_msgs/MenuEntry.h (100%) rename {rosserial_test => rosserial_hello_world}/STM32F767ZITX_FLASH.ld (100%) rename {rosserial_test => rosserial_hello_world}/STM32F767ZITX_RAM.ld (100%) create mode 100644 rosserial_hello_world/Src/main.cpp rename {rosserial_test => rosserial_hello_world}/Src/ros_time.cpp (100%) rename {rosserial_test => rosserial_hello_world}/Src/stm32f7xx_hal_msp.c (66%) rename {rosserial_test => rosserial_hello_world}/Src/stm32f7xx_it.c (80%) rename {rosserial_test => rosserial_hello_world}/Src/syscalls.c (100%) rename {rosserial_test => rosserial_hello_world}/Src/sysmem.c (100%) rename {rosserial_test => rosserial_hello_world}/Src/system_stm32f7xx.c (100%) rename {rosserial_test => rosserial_hello_world}/Src/test.cpp (100%) rename {rosserial_test => rosserial_hello_world}/Startup/startup_stm32f767zitx.s (100%) rename rosserial_test/rosserial_test.ioc => rosserial_hello_world/rosserial_hello_world.ioc (67%) rename {rosserial_test => rosserial_hello_world}/rosserial_test.elf.launch (100%) delete mode 100644 rosserial_test/Debug/rosserial_test.list delete mode 100644 rosserial_test/Src/main.cpp diff --git a/rosserial_test/.cproject b/rosserial_hello_world/.cproject similarity index 62% rename from rosserial_test/.cproject rename to rosserial_hello_world/.cproject index e68b191..4e9d480 100644 --- a/rosserial_test/.cproject +++ b/rosserial_hello_world/.cproject @@ -1,8 +1,8 @@ - - + + @@ -13,85 +13,84 @@ - - - - - - + + @@ -115,82 +114,82 @@ - - - - diff --git a/rosserial_test/.mxproject b/rosserial_hello_world/.mxproject similarity index 97% rename from rosserial_test/.mxproject rename to rosserial_hello_world/.mxproject index 6341bfa..d18ce26 100644 --- a/rosserial_test/.mxproject +++ b/rosserial_hello_world/.mxproject @@ -1,7 +1,7 @@ [PreviousGenFiles] -HeaderPath=/home/fdila/Projects/otto/rosserial_test/Inc +HeaderPath=/home/fdila/Projects/otto/rosserial_hello_world/Inc HeaderFiles=stm32f7xx_it.h;stm32f7xx_hal_conf.h;main.h; -SourcePath=/home/fdila/Projects/otto/rosserial_test/Src +SourcePath=/home/fdila/Projects/otto/rosserial_hello_world/Src SourceFiles=stm32f7xx_it.c;stm32f7xx_hal_msp.c;main.c; [PreviousLibFiles] diff --git a/rosserial_test/.project b/rosserial_hello_world/.project similarity index 96% rename from rosserial_test/.project rename to rosserial_hello_world/.project index 3cf2835..0315f22 100644 --- a/rosserial_test/.project +++ b/rosserial_hello_world/.project @@ -1,6 +1,6 @@ - rosserial_test + rosserial_hello_world diff --git a/rosserial_test/.settings/language.settings.xml b/rosserial_hello_world/.settings/language.settings.xml similarity index 96% rename from rosserial_test/.settings/language.settings.xml rename to rosserial_hello_world/.settings/language.settings.xml index 7aa498b..43da271 100644 --- a/rosserial_test/.settings/language.settings.xml +++ b/rosserial_hello_world/.settings/language.settings.xml @@ -1,6 +1,6 @@ - + @@ -12,7 +12,7 @@ - + diff --git a/rosserial_test/.settings/org.eclipse.cdt.codan.core.prefs b/rosserial_hello_world/.settings/org.eclipse.cdt.codan.core.prefs similarity index 100% rename from rosserial_test/.settings/org.eclipse.cdt.codan.core.prefs rename to rosserial_hello_world/.settings/org.eclipse.cdt.codan.core.prefs diff --git a/rosserial_test/.settings/org.eclipse.core.runtime.prefs b/rosserial_hello_world/.settings/org.eclipse.core.runtime.prefs similarity index 100% rename from rosserial_test/.settings/org.eclipse.core.runtime.prefs rename to rosserial_hello_world/.settings/org.eclipse.core.runtime.prefs diff --git a/rosserial_test/Debug/Drivers/STM32F7xx_HAL_Driver/Src/subdir.mk b/rosserial_hello_world/Debug/Drivers/STM32F7xx_HAL_Driver/Src/subdir.mk similarity index 89% rename from rosserial_test/Debug/Drivers/STM32F7xx_HAL_Driver/Src/subdir.mk rename to rosserial_hello_world/Debug/Drivers/STM32F7xx_HAL_Driver/Src/subdir.mk index e8ba2fb..cc497af 100644 --- a/rosserial_test/Debug/Drivers/STM32F7xx_HAL_Driver/Src/subdir.mk +++ b/rosserial_hello_world/Debug/Drivers/STM32F7xx_HAL_Driver/Src/subdir.mk @@ -66,39 +66,39 @@ C_DEPS += \ # Each subdirectory must supply rules for building sources it contributes Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_exti.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_exti.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_exti.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_exti.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart_ex.o: ../Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart_ex.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart_ex.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" diff --git a/rosserial_test/Debug/Src/subdir.mk b/rosserial_hello_world/Debug/Src/subdir.mk similarity index 81% rename from rosserial_test/Debug/Src/subdir.mk rename to rosserial_hello_world/Debug/Src/subdir.mk index 024deb1..02fb630 100644 --- a/rosserial_test/Debug/Src/subdir.mk +++ b/rosserial_hello_world/Debug/Src/subdir.mk @@ -40,19 +40,19 @@ CPP_DEPS += \ # Each subdirectory must supply rules for building sources it contributes Src/main.o: ../Src/main.cpp - arm-none-eabi-g++ "$<" -mcpu=cortex-m7 -std=gnu++14 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-use-cxa-atexit -Wall -fstack-usage -MMD -MP -MF"Src/main.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-g++ "$<" -mcpu=cortex-m7 -std=gnu++14 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-use-cxa-atexit -Wall -fstack-usage -MMD -MP -MF"Src/main.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Src/ros_time.o: ../Src/ros_time.cpp - arm-none-eabi-g++ "$<" -mcpu=cortex-m7 -std=gnu++14 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-use-cxa-atexit -Wall -fstack-usage -MMD -MP -MF"Src/ros_time.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-g++ "$<" -mcpu=cortex-m7 -std=gnu++14 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-use-cxa-atexit -Wall -fstack-usage -MMD -MP -MF"Src/ros_time.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Src/stm32f7xx_hal_msp.o: ../Src/stm32f7xx_hal_msp.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/stm32f7xx_hal_msp.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/stm32f7xx_hal_msp.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Src/stm32f7xx_it.o: ../Src/stm32f7xx_it.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/stm32f7xx_it.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/stm32f7xx_it.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Src/syscalls.o: ../Src/syscalls.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/syscalls.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/syscalls.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Src/sysmem.o: ../Src/sysmem.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/sysmem.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/sysmem.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Src/system_stm32f7xx.o: ../Src/system_stm32f7xx.c - arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/system_stm32f7xx.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-gcc "$<" -mcpu=cortex-m7 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Src/system_stm32f7xx.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" Src/test.o: ../Src/test.cpp - arm-none-eabi-g++ "$<" -mcpu=cortex-m7 -std=gnu++14 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-use-cxa-atexit -Wall -fstack-usage -MMD -MP -MF"Src/test.d" -MT"$@" -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" + arm-none-eabi-g++ "$<" -mcpu=cortex-m7 -std=gnu++14 -g3 -DUSE_HAL_DRIVER -DSTM32F767xx -DDEBUG -c -I../Inc -I../Drivers/CMSIS/Include -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -O0 -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-use-cxa-atexit -Wall -fstack-usage -MMD -MP -MF"Src/test.d" -MT"$@" --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" diff --git a/rosserial_test/Debug/Startup/subdir.mk b/rosserial_hello_world/Debug/Startup/subdir.mk similarity index 87% rename from rosserial_test/Debug/Startup/subdir.mk rename to rosserial_hello_world/Debug/Startup/subdir.mk index c14a1b1..6d36928 100644 --- a/rosserial_test/Debug/Startup/subdir.mk +++ b/rosserial_hello_world/Debug/Startup/subdir.mk @@ -12,5 +12,5 @@ OBJS += \ # Each subdirectory must supply rules for building sources it contributes Startup/%.o: ../Startup/%.s - arm-none-eabi-gcc -mcpu=cortex-m7 -g3 -c -I../ -x assembler-with-cpp -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" "$<" + arm-none-eabi-gcc -mcpu=cortex-m7 -g3 -c -I../ -x assembler-with-cpp --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -o "$@" "$<" diff --git a/rosserial_test/Debug/makefile b/rosserial_hello_world/Debug/makefile similarity index 92% rename from rosserial_test/Debug/makefile rename to rosserial_hello_world/Debug/makefile index e588334..6da9b55 100644 --- a/rosserial_test/Debug/makefile +++ b/rosserial_hello_world/Debug/makefile @@ -53,7 +53,7 @@ all: rosserial_test.elf secondary-outputs # Tool invocations rosserial_test.elf: $(OBJS) $(USER_OBJS) /home/fdila/Projects/otto/rosserial_test/STM32F767ZITX_FLASH.ld - arm-none-eabi-g++ -o "rosserial_test.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m7 -T"/home/fdila/Projects/otto/rosserial_test/STM32F767ZITX_FLASH.ld" -Wl,-Map="rosserial_test.map" -Wl,--gc-sections -static -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -lstdc++ -lsupc++ -Wl,--end-group + arm-none-eabi-g++ -o "rosserial_test.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m7 -T"/home/fdila/Projects/otto/rosserial_test/STM32F767ZITX_FLASH.ld" -Wl,-Map="rosserial_test.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv5-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -lstdc++ -lsupc++ -Wl,--end-group @echo 'Finished building target: $@' @echo ' ' diff --git a/rosserial_test/Debug/objects.list b/rosserial_hello_world/Debug/objects.list similarity index 100% rename from rosserial_test/Debug/objects.list rename to rosserial_hello_world/Debug/objects.list diff --git a/rosserial_test/Debug/objects.mk b/rosserial_hello_world/Debug/objects.mk similarity index 100% rename from rosserial_test/Debug/objects.mk rename to rosserial_hello_world/Debug/objects.mk diff --git a/rosserial_hello_world/Debug/rosserial_test.list b/rosserial_hello_world/Debug/rosserial_test.list new file mode 100644 index 0000000..e3946f0 --- /dev/null +++ b/rosserial_hello_world/Debug/rosserial_test.list @@ -0,0 +1,15090 @@ + +rosserial_test.elf: file format elf32-littlearm + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .isr_vector 000001f8 08000000 08000000 00010000 2**0 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 1 .text 00005be0 080001f8 080001f8 000101f8 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 2 .rodata 00000250 08005dd8 08005dd8 00015dd8 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 3 .ARM.extab 00000000 08006028 08006028 00020074 2**0 + CONTENTS + 4 .ARM 00000008 08006028 08006028 00016028 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 5 .preinit_array 00000000 08006030 08006030 00020074 2**0 + CONTENTS, ALLOC, LOAD, DATA + 6 .init_array 00000004 08006030 08006030 00016030 2**2 + CONTENTS, ALLOC, LOAD, DATA + 7 .fini_array 00000004 08006034 08006034 00016034 2**2 + CONTENTS, ALLOC, LOAD, DATA + 8 .data 00000074 20000000 08006038 00020000 2**2 + CONTENTS, ALLOC, LOAD, DATA + 9 .bss 000001b4 20000074 080060ac 00020074 2**2 + ALLOC + 10 ._user_heap_stack 00000600 20000228 080060ac 00020228 2**0 + ALLOC + 11 .ARM.attributes 0000002e 00000000 00000000 00020074 2**0 + CONTENTS, READONLY + 12 .debug_info 00012bb3 00000000 00000000 000200a2 2**0 + CONTENTS, READONLY, DEBUGGING + 13 .debug_abbrev 0000274a 00000000 00000000 00032c55 2**0 + CONTENTS, READONLY, DEBUGGING + 14 .debug_aranges 00000f00 00000000 00000000 000353a0 2**3 + CONTENTS, READONLY, DEBUGGING + 15 .debug_ranges 00000e10 00000000 00000000 000362a0 2**3 + CONTENTS, READONLY, DEBUGGING + 16 .debug_macro 0002b2b6 00000000 00000000 000370b0 2**0 + CONTENTS, READONLY, DEBUGGING + 17 .debug_line 0000b13d 00000000 00000000 00062366 2**0 + CONTENTS, READONLY, DEBUGGING + 18 .debug_str 000fa8c5 00000000 00000000 0006d4a3 2**0 + CONTENTS, READONLY, DEBUGGING + 19 .comment 0000007b 00000000 00000000 00167d68 2**0 + CONTENTS, READONLY + 20 .debug_frame 00004344 00000000 00000000 00167de4 2**2 + CONTENTS, READONLY, DEBUGGING + +Disassembly of section .text: + +080001f8 <__do_global_dtors_aux>: + 80001f8: b510 push {r4, lr} + 80001fa: 4c05 ldr r4, [pc, #20] ; (8000210 <__do_global_dtors_aux+0x18>) + 80001fc: 7823 ldrb r3, [r4, #0] + 80001fe: b933 cbnz r3, 800020e <__do_global_dtors_aux+0x16> + 8000200: 4b04 ldr r3, [pc, #16] ; (8000214 <__do_global_dtors_aux+0x1c>) + 8000202: b113 cbz r3, 800020a <__do_global_dtors_aux+0x12> + 8000204: 4804 ldr r0, [pc, #16] ; (8000218 <__do_global_dtors_aux+0x20>) + 8000206: f3af 8000 nop.w + 800020a: 2301 movs r3, #1 + 800020c: 7023 strb r3, [r4, #0] + 800020e: bd10 pop {r4, pc} + 8000210: 20000074 .word 0x20000074 + 8000214: 00000000 .word 0x00000000 + 8000218: 08005dc0 .word 0x08005dc0 + +0800021c : + 800021c: b508 push {r3, lr} + 800021e: 4b03 ldr r3, [pc, #12] ; (800022c ) + 8000220: b11b cbz r3, 800022a + 8000222: 4903 ldr r1, [pc, #12] ; (8000230 ) + 8000224: 4803 ldr r0, [pc, #12] ; (8000234 ) + 8000226: f3af 8000 nop.w + 800022a: bd08 pop {r3, pc} + 800022c: 00000000 .word 0x00000000 + 8000230: 20000078 .word 0x20000078 + 8000234: 08005dc0 .word 0x08005dc0 + +08000238 : + 8000238: 4603 mov r3, r0 + 800023a: f813 2b01 ldrb.w r2, [r3], #1 + 800023e: 2a00 cmp r2, #0 + 8000240: d1fb bne.n 800023a + 8000242: 1a18 subs r0, r3, r0 + 8000244: 3801 subs r0, #1 + 8000246: 4770 bx lr + +08000248 <__aeabi_uldivmod>: + 8000248: b953 cbnz r3, 8000260 <__aeabi_uldivmod+0x18> + 800024a: b94a cbnz r2, 8000260 <__aeabi_uldivmod+0x18> + 800024c: 2900 cmp r1, #0 + 800024e: bf08 it eq + 8000250: 2800 cmpeq r0, #0 + 8000252: bf1c itt ne + 8000254: f04f 31ff movne.w r1, #4294967295 ; 0xffffffff + 8000258: f04f 30ff movne.w r0, #4294967295 ; 0xffffffff + 800025c: f000 b972 b.w 8000544 <__aeabi_idiv0> + 8000260: f1ad 0c08 sub.w ip, sp, #8 + 8000264: e96d ce04 strd ip, lr, [sp, #-16]! + 8000268: f000 f806 bl 8000278 <__udivmoddi4> + 800026c: f8dd e004 ldr.w lr, [sp, #4] + 8000270: e9dd 2302 ldrd r2, r3, [sp, #8] + 8000274: b004 add sp, #16 + 8000276: 4770 bx lr + +08000278 <__udivmoddi4>: + 8000278: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} + 800027c: 9e08 ldr r6, [sp, #32] + 800027e: 4604 mov r4, r0 + 8000280: 4688 mov r8, r1 + 8000282: 2b00 cmp r3, #0 + 8000284: d14b bne.n 800031e <__udivmoddi4+0xa6> + 8000286: 428a cmp r2, r1 + 8000288: 4615 mov r5, r2 + 800028a: d967 bls.n 800035c <__udivmoddi4+0xe4> + 800028c: fab2 f282 clz r2, r2 + 8000290: b14a cbz r2, 80002a6 <__udivmoddi4+0x2e> + 8000292: f1c2 0720 rsb r7, r2, #32 + 8000296: fa01 f302 lsl.w r3, r1, r2 + 800029a: fa20 f707 lsr.w r7, r0, r7 + 800029e: 4095 lsls r5, r2 + 80002a0: ea47 0803 orr.w r8, r7, r3 + 80002a4: 4094 lsls r4, r2 + 80002a6: ea4f 4e15 mov.w lr, r5, lsr #16 + 80002aa: 0c23 lsrs r3, r4, #16 + 80002ac: fbb8 f7fe udiv r7, r8, lr + 80002b0: fa1f fc85 uxth.w ip, r5 + 80002b4: fb0e 8817 mls r8, lr, r7, r8 + 80002b8: ea43 4308 orr.w r3, r3, r8, lsl #16 + 80002bc: fb07 f10c mul.w r1, r7, ip + 80002c0: 4299 cmp r1, r3 + 80002c2: d909 bls.n 80002d8 <__udivmoddi4+0x60> + 80002c4: 18eb adds r3, r5, r3 + 80002c6: f107 30ff add.w r0, r7, #4294967295 ; 0xffffffff + 80002ca: f080 811b bcs.w 8000504 <__udivmoddi4+0x28c> + 80002ce: 4299 cmp r1, r3 + 80002d0: f240 8118 bls.w 8000504 <__udivmoddi4+0x28c> + 80002d4: 3f02 subs r7, #2 + 80002d6: 442b add r3, r5 + 80002d8: 1a5b subs r3, r3, r1 + 80002da: b2a4 uxth r4, r4 + 80002dc: fbb3 f0fe udiv r0, r3, lr + 80002e0: fb0e 3310 mls r3, lr, r0, r3 + 80002e4: ea44 4403 orr.w r4, r4, r3, lsl #16 + 80002e8: fb00 fc0c mul.w ip, r0, ip + 80002ec: 45a4 cmp ip, r4 + 80002ee: d909 bls.n 8000304 <__udivmoddi4+0x8c> + 80002f0: 192c adds r4, r5, r4 + 80002f2: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff + 80002f6: f080 8107 bcs.w 8000508 <__udivmoddi4+0x290> + 80002fa: 45a4 cmp ip, r4 + 80002fc: f240 8104 bls.w 8000508 <__udivmoddi4+0x290> + 8000300: 3802 subs r0, #2 + 8000302: 442c add r4, r5 + 8000304: ea40 4007 orr.w r0, r0, r7, lsl #16 + 8000308: eba4 040c sub.w r4, r4, ip + 800030c: 2700 movs r7, #0 + 800030e: b11e cbz r6, 8000318 <__udivmoddi4+0xa0> + 8000310: 40d4 lsrs r4, r2 + 8000312: 2300 movs r3, #0 + 8000314: e9c6 4300 strd r4, r3, [r6] + 8000318: 4639 mov r1, r7 + 800031a: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 800031e: 428b cmp r3, r1 + 8000320: d909 bls.n 8000336 <__udivmoddi4+0xbe> + 8000322: 2e00 cmp r6, #0 + 8000324: f000 80eb beq.w 80004fe <__udivmoddi4+0x286> + 8000328: 2700 movs r7, #0 + 800032a: e9c6 0100 strd r0, r1, [r6] + 800032e: 4638 mov r0, r7 + 8000330: 4639 mov r1, r7 + 8000332: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} + 8000336: fab3 f783 clz r7, r3 + 800033a: 2f00 cmp r7, #0 + 800033c: d147 bne.n 80003ce <__udivmoddi4+0x156> + 800033e: 428b cmp r3, r1 + 8000340: d302 bcc.n 8000348 <__udivmoddi4+0xd0> + 8000342: 4282 cmp r2, r0 + 8000344: f200 80fa bhi.w 800053c <__udivmoddi4+0x2c4> + 8000348: 1a84 subs r4, r0, r2 + 800034a: eb61 0303 sbc.w r3, r1, r3 + 800034e: 2001 movs r0, #1 + 8000350: 4698 mov r8, r3 + 8000352: 2e00 cmp r6, #0 + 8000354: d0e0 beq.n 8000318 <__udivmoddi4+0xa0> + 8000356: e9c6 4800 strd r4, r8, [r6] + 800035a: e7dd b.n 8000318 <__udivmoddi4+0xa0> + 800035c: b902 cbnz r2, 8000360 <__udivmoddi4+0xe8> + 800035e: deff udf #255 ; 0xff + 8000360: fab2 f282 clz r2, r2 + 8000364: 2a00 cmp r2, #0 + 8000366: f040 808f bne.w 8000488 <__udivmoddi4+0x210> + 800036a: 1b49 subs r1, r1, r5 + 800036c: ea4f 4e15 mov.w lr, r5, lsr #16 + 8000370: fa1f f885 uxth.w r8, r5 + 8000374: 2701 movs r7, #1 + 8000376: fbb1 fcfe udiv ip, r1, lr + 800037a: 0c23 lsrs r3, r4, #16 + 800037c: fb0e 111c mls r1, lr, ip, r1 + 8000380: ea43 4301 orr.w r3, r3, r1, lsl #16 + 8000384: fb08 f10c mul.w r1, r8, ip + 8000388: 4299 cmp r1, r3 + 800038a: d907 bls.n 800039c <__udivmoddi4+0x124> + 800038c: 18eb adds r3, r5, r3 + 800038e: f10c 30ff add.w r0, ip, #4294967295 ; 0xffffffff + 8000392: d202 bcs.n 800039a <__udivmoddi4+0x122> + 8000394: 4299 cmp r1, r3 + 8000396: f200 80cd bhi.w 8000534 <__udivmoddi4+0x2bc> + 800039a: 4684 mov ip, r0 + 800039c: 1a59 subs r1, r3, r1 + 800039e: b2a3 uxth r3, r4 + 80003a0: fbb1 f0fe udiv r0, r1, lr + 80003a4: fb0e 1410 mls r4, lr, r0, r1 + 80003a8: ea43 4404 orr.w r4, r3, r4, lsl #16 + 80003ac: fb08 f800 mul.w r8, r8, r0 + 80003b0: 45a0 cmp r8, r4 + 80003b2: d907 bls.n 80003c4 <__udivmoddi4+0x14c> + 80003b4: 192c adds r4, r5, r4 + 80003b6: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff + 80003ba: d202 bcs.n 80003c2 <__udivmoddi4+0x14a> + 80003bc: 45a0 cmp r8, r4 + 80003be: f200 80b6 bhi.w 800052e <__udivmoddi4+0x2b6> + 80003c2: 4618 mov r0, r3 + 80003c4: eba4 0408 sub.w r4, r4, r8 + 80003c8: ea40 400c orr.w r0, r0, ip, lsl #16 + 80003cc: e79f b.n 800030e <__udivmoddi4+0x96> + 80003ce: f1c7 0c20 rsb ip, r7, #32 + 80003d2: 40bb lsls r3, r7 + 80003d4: fa22 fe0c lsr.w lr, r2, ip + 80003d8: ea4e 0e03 orr.w lr, lr, r3 + 80003dc: fa01 f407 lsl.w r4, r1, r7 + 80003e0: fa20 f50c lsr.w r5, r0, ip + 80003e4: fa21 f30c lsr.w r3, r1, ip + 80003e8: ea4f 481e mov.w r8, lr, lsr #16 + 80003ec: 4325 orrs r5, r4 + 80003ee: fbb3 f9f8 udiv r9, r3, r8 + 80003f2: 0c2c lsrs r4, r5, #16 + 80003f4: fb08 3319 mls r3, r8, r9, r3 + 80003f8: fa1f fa8e uxth.w sl, lr + 80003fc: ea44 4303 orr.w r3, r4, r3, lsl #16 + 8000400: fb09 f40a mul.w r4, r9, sl + 8000404: 429c cmp r4, r3 + 8000406: fa02 f207 lsl.w r2, r2, r7 + 800040a: fa00 f107 lsl.w r1, r0, r7 + 800040e: d90b bls.n 8000428 <__udivmoddi4+0x1b0> + 8000410: eb1e 0303 adds.w r3, lr, r3 + 8000414: f109 30ff add.w r0, r9, #4294967295 ; 0xffffffff + 8000418: f080 8087 bcs.w 800052a <__udivmoddi4+0x2b2> + 800041c: 429c cmp r4, r3 + 800041e: f240 8084 bls.w 800052a <__udivmoddi4+0x2b2> + 8000422: f1a9 0902 sub.w r9, r9, #2 + 8000426: 4473 add r3, lr + 8000428: 1b1b subs r3, r3, r4 + 800042a: b2ad uxth r5, r5 + 800042c: fbb3 f0f8 udiv r0, r3, r8 + 8000430: fb08 3310 mls r3, r8, r0, r3 + 8000434: ea45 4403 orr.w r4, r5, r3, lsl #16 + 8000438: fb00 fa0a mul.w sl, r0, sl + 800043c: 45a2 cmp sl, r4 + 800043e: d908 bls.n 8000452 <__udivmoddi4+0x1da> + 8000440: eb1e 0404 adds.w r4, lr, r4 + 8000444: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff + 8000448: d26b bcs.n 8000522 <__udivmoddi4+0x2aa> + 800044a: 45a2 cmp sl, r4 + 800044c: d969 bls.n 8000522 <__udivmoddi4+0x2aa> + 800044e: 3802 subs r0, #2 + 8000450: 4474 add r4, lr + 8000452: ea40 4009 orr.w r0, r0, r9, lsl #16 + 8000456: fba0 8902 umull r8, r9, r0, r2 + 800045a: eba4 040a sub.w r4, r4, sl + 800045e: 454c cmp r4, r9 + 8000460: 46c2 mov sl, r8 + 8000462: 464b mov r3, r9 + 8000464: d354 bcc.n 8000510 <__udivmoddi4+0x298> + 8000466: d051 beq.n 800050c <__udivmoddi4+0x294> + 8000468: 2e00 cmp r6, #0 + 800046a: d069 beq.n 8000540 <__udivmoddi4+0x2c8> + 800046c: ebb1 050a subs.w r5, r1, sl + 8000470: eb64 0403 sbc.w r4, r4, r3 + 8000474: fa04 fc0c lsl.w ip, r4, ip + 8000478: 40fd lsrs r5, r7 + 800047a: 40fc lsrs r4, r7 + 800047c: ea4c 0505 orr.w r5, ip, r5 + 8000480: e9c6 5400 strd r5, r4, [r6] + 8000484: 2700 movs r7, #0 + 8000486: e747 b.n 8000318 <__udivmoddi4+0xa0> + 8000488: f1c2 0320 rsb r3, r2, #32 + 800048c: fa20 f703 lsr.w r7, r0, r3 + 8000490: 4095 lsls r5, r2 + 8000492: fa01 f002 lsl.w r0, r1, r2 + 8000496: fa21 f303 lsr.w r3, r1, r3 + 800049a: ea4f 4e15 mov.w lr, r5, lsr #16 + 800049e: 4338 orrs r0, r7 + 80004a0: 0c01 lsrs r1, r0, #16 + 80004a2: fbb3 f7fe udiv r7, r3, lr + 80004a6: fa1f f885 uxth.w r8, r5 + 80004aa: fb0e 3317 mls r3, lr, r7, r3 + 80004ae: ea41 4103 orr.w r1, r1, r3, lsl #16 + 80004b2: fb07 f308 mul.w r3, r7, r8 + 80004b6: 428b cmp r3, r1 + 80004b8: fa04 f402 lsl.w r4, r4, r2 + 80004bc: d907 bls.n 80004ce <__udivmoddi4+0x256> + 80004be: 1869 adds r1, r5, r1 + 80004c0: f107 3cff add.w ip, r7, #4294967295 ; 0xffffffff + 80004c4: d22f bcs.n 8000526 <__udivmoddi4+0x2ae> + 80004c6: 428b cmp r3, r1 + 80004c8: d92d bls.n 8000526 <__udivmoddi4+0x2ae> + 80004ca: 3f02 subs r7, #2 + 80004cc: 4429 add r1, r5 + 80004ce: 1acb subs r3, r1, r3 + 80004d0: b281 uxth r1, r0 + 80004d2: fbb3 f0fe udiv r0, r3, lr + 80004d6: fb0e 3310 mls r3, lr, r0, r3 + 80004da: ea41 4103 orr.w r1, r1, r3, lsl #16 + 80004de: fb00 f308 mul.w r3, r0, r8 + 80004e2: 428b cmp r3, r1 + 80004e4: d907 bls.n 80004f6 <__udivmoddi4+0x27e> + 80004e6: 1869 adds r1, r5, r1 + 80004e8: f100 3cff add.w ip, r0, #4294967295 ; 0xffffffff + 80004ec: d217 bcs.n 800051e <__udivmoddi4+0x2a6> + 80004ee: 428b cmp r3, r1 + 80004f0: d915 bls.n 800051e <__udivmoddi4+0x2a6> + 80004f2: 3802 subs r0, #2 + 80004f4: 4429 add r1, r5 + 80004f6: 1ac9 subs r1, r1, r3 + 80004f8: ea40 4707 orr.w r7, r0, r7, lsl #16 + 80004fc: e73b b.n 8000376 <__udivmoddi4+0xfe> + 80004fe: 4637 mov r7, r6 + 8000500: 4630 mov r0, r6 + 8000502: e709 b.n 8000318 <__udivmoddi4+0xa0> + 8000504: 4607 mov r7, r0 + 8000506: e6e7 b.n 80002d8 <__udivmoddi4+0x60> + 8000508: 4618 mov r0, r3 + 800050a: e6fb b.n 8000304 <__udivmoddi4+0x8c> + 800050c: 4541 cmp r1, r8 + 800050e: d2ab bcs.n 8000468 <__udivmoddi4+0x1f0> + 8000510: ebb8 0a02 subs.w sl, r8, r2 + 8000514: eb69 020e sbc.w r2, r9, lr + 8000518: 3801 subs r0, #1 + 800051a: 4613 mov r3, r2 + 800051c: e7a4 b.n 8000468 <__udivmoddi4+0x1f0> + 800051e: 4660 mov r0, ip + 8000520: e7e9 b.n 80004f6 <__udivmoddi4+0x27e> + 8000522: 4618 mov r0, r3 + 8000524: e795 b.n 8000452 <__udivmoddi4+0x1da> + 8000526: 4667 mov r7, ip + 8000528: e7d1 b.n 80004ce <__udivmoddi4+0x256> + 800052a: 4681 mov r9, r0 + 800052c: e77c b.n 8000428 <__udivmoddi4+0x1b0> + 800052e: 3802 subs r0, #2 + 8000530: 442c add r4, r5 + 8000532: e747 b.n 80003c4 <__udivmoddi4+0x14c> + 8000534: f1ac 0c02 sub.w ip, ip, #2 + 8000538: 442b add r3, r5 + 800053a: e72f b.n 800039c <__udivmoddi4+0x124> + 800053c: 4638 mov r0, r7 + 800053e: e708 b.n 8000352 <__udivmoddi4+0xda> + 8000540: 4637 mov r7, r6 + 8000542: e6e9 b.n 8000318 <__udivmoddi4+0xa0> + +08000544 <__aeabi_idiv0>: + 8000544: 4770 bx lr + 8000546: bf00 nop + +08000548 : + * need to ensure that the SysTick time base is always set to 1 millisecond + * to have correct HAL operation. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_Init(void) +{ + 8000548: b580 push {r7, lr} + 800054a: af00 add r7, sp, #0 +#if (PREFETCH_ENABLE != 0U) + __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); +#endif /* PREFETCH_ENABLE */ + + /* Set Interrupt Group Priority */ + HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); + 800054c: 2003 movs r0, #3 + 800054e: f000 f94b bl 80007e8 + + /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */ + HAL_InitTick(TICK_INT_PRIORITY); + 8000552: 2000 movs r0, #0 + 8000554: f000 f806 bl 8000564 + + /* Init the low level hardware */ + HAL_MspInit(); + 8000558: f005 f8b8 bl 80056cc + + /* Return function status */ + return HAL_OK; + 800055c: 2300 movs r3, #0 +} + 800055e: 4618 mov r0, r3 + 8000560: bd80 pop {r7, pc} + ... + +08000564 : + * implementation in user file. + * @param TickPriority Tick interrupt priority. + * @retval HAL status + */ +__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) +{ + 8000564: b580 push {r7, lr} + 8000566: b082 sub sp, #8 + 8000568: af00 add r7, sp, #0 + 800056a: 6078 str r0, [r7, #4] + /* Configure the SysTick to have interrupt in 1ms time basis*/ + if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U) + 800056c: 4b12 ldr r3, [pc, #72] ; (80005b8 ) + 800056e: 681a ldr r2, [r3, #0] + 8000570: 4b12 ldr r3, [pc, #72] ; (80005bc ) + 8000572: 781b ldrb r3, [r3, #0] + 8000574: 4619 mov r1, r3 + 8000576: f44f 737a mov.w r3, #1000 ; 0x3e8 + 800057a: fbb3 f3f1 udiv r3, r3, r1 + 800057e: fbb2 f3f3 udiv r3, r2, r3 + 8000582: 4618 mov r0, r3 + 8000584: f000 f965 bl 8000852 + 8000588: 4603 mov r3, r0 + 800058a: 2b00 cmp r3, #0 + 800058c: d001 beq.n 8000592 + { + return HAL_ERROR; + 800058e: 2301 movs r3, #1 + 8000590: e00e b.n 80005b0 + } + + /* Configure the SysTick IRQ priority */ + if (TickPriority < (1UL << __NVIC_PRIO_BITS)) + 8000592: 687b ldr r3, [r7, #4] + 8000594: 2b0f cmp r3, #15 + 8000596: d80a bhi.n 80005ae + { + HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); + 8000598: 2200 movs r2, #0 + 800059a: 6879 ldr r1, [r7, #4] + 800059c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff + 80005a0: f000 f92d bl 80007fe + uwTickPrio = TickPriority; + 80005a4: 4a06 ldr r2, [pc, #24] ; (80005c0 ) + 80005a6: 687b ldr r3, [r7, #4] + 80005a8: 6013 str r3, [r2, #0] + { + return HAL_ERROR; + } + + /* Return function status */ + return HAL_OK; + 80005aa: 2300 movs r3, #0 + 80005ac: e000 b.n 80005b0 + return HAL_ERROR; + 80005ae: 2301 movs r3, #1 +} + 80005b0: 4618 mov r0, r3 + 80005b2: 3708 adds r7, #8 + 80005b4: 46bd mov sp, r7 + 80005b6: bd80 pop {r7, pc} + 80005b8: 20000008 .word 0x20000008 + 80005bc: 20000004 .word 0x20000004 + 80005c0: 20000000 .word 0x20000000 + +080005c4 : + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @retval None + */ +__weak void HAL_IncTick(void) +{ + 80005c4: b480 push {r7} + 80005c6: af00 add r7, sp, #0 + uwTick += uwTickFreq; + 80005c8: 4b06 ldr r3, [pc, #24] ; (80005e4 ) + 80005ca: 781b ldrb r3, [r3, #0] + 80005cc: 461a mov r2, r3 + 80005ce: 4b06 ldr r3, [pc, #24] ; (80005e8 ) + 80005d0: 681b ldr r3, [r3, #0] + 80005d2: 4413 add r3, r2 + 80005d4: 4a04 ldr r2, [pc, #16] ; (80005e8 ) + 80005d6: 6013 str r3, [r2, #0] +} + 80005d8: bf00 nop + 80005da: 46bd mov sp, r7 + 80005dc: f85d 7b04 ldr.w r7, [sp], #4 + 80005e0: 4770 bx lr + 80005e2: bf00 nop + 80005e4: 20000004 .word 0x20000004 + 80005e8: 20000220 .word 0x20000220 + +080005ec : + * @note This function is declared as __weak to be overwritten in case of other + * implementations in user file. + * @retval tick value + */ +__weak uint32_t HAL_GetTick(void) +{ + 80005ec: b480 push {r7} + 80005ee: af00 add r7, sp, #0 + return uwTick; + 80005f0: 4b03 ldr r3, [pc, #12] ; (8000600 ) + 80005f2: 681b ldr r3, [r3, #0] +} + 80005f4: 4618 mov r0, r3 + 80005f6: 46bd mov sp, r7 + 80005f8: f85d 7b04 ldr.w r7, [sp], #4 + 80005fc: 4770 bx lr + 80005fe: bf00 nop + 8000600: 20000220 .word 0x20000220 + +08000604 : + * implementations in user file. + * @param Delay specifies the delay time length, in milliseconds. + * @retval None + */ +__weak void HAL_Delay(uint32_t Delay) +{ + 8000604: b580 push {r7, lr} + 8000606: b084 sub sp, #16 + 8000608: af00 add r7, sp, #0 + 800060a: 6078 str r0, [r7, #4] + uint32_t tickstart = HAL_GetTick(); + 800060c: f7ff ffee bl 80005ec + 8000610: 60b8 str r0, [r7, #8] + uint32_t wait = Delay; + 8000612: 687b ldr r3, [r7, #4] + 8000614: 60fb str r3, [r7, #12] + + /* Add a freq to guarantee minimum wait */ + if (wait < HAL_MAX_DELAY) + 8000616: 68fb ldr r3, [r7, #12] + 8000618: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 800061c: d005 beq.n 800062a + { + wait += (uint32_t)(uwTickFreq); + 800061e: 4b09 ldr r3, [pc, #36] ; (8000644 ) + 8000620: 781b ldrb r3, [r3, #0] + 8000622: 461a mov r2, r3 + 8000624: 68fb ldr r3, [r7, #12] + 8000626: 4413 add r3, r2 + 8000628: 60fb str r3, [r7, #12] + } + + while ((HAL_GetTick() - tickstart) < wait) + 800062a: bf00 nop + 800062c: f7ff ffde bl 80005ec + 8000630: 4602 mov r2, r0 + 8000632: 68bb ldr r3, [r7, #8] + 8000634: 1ad3 subs r3, r2, r3 + 8000636: 68fa ldr r2, [r7, #12] + 8000638: 429a cmp r2, r3 + 800063a: d8f7 bhi.n 800062c + { + } +} + 800063c: bf00 nop + 800063e: 3710 adds r7, #16 + 8000640: 46bd mov sp, r7 + 8000642: bd80 pop {r7, pc} + 8000644: 20000004 .word 0x20000004 + +08000648 <__NVIC_SetPriorityGrouping>: + In case of a conflict between priority grouping and available + priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. + \param [in] PriorityGroup Priority grouping field. + */ +__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + 8000648: b480 push {r7} + 800064a: b085 sub sp, #20 + 800064c: af00 add r7, sp, #0 + 800064e: 6078 str r0, [r7, #4] + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 8000650: 687b ldr r3, [r7, #4] + 8000652: f003 0307 and.w r3, r3, #7 + 8000656: 60fb str r3, [r7, #12] + + reg_value = SCB->AIRCR; /* read old register configuration */ + 8000658: 4b0b ldr r3, [pc, #44] ; (8000688 <__NVIC_SetPriorityGrouping+0x40>) + 800065a: 68db ldr r3, [r3, #12] + 800065c: 60bb str r3, [r7, #8] + reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ + 800065e: 68ba ldr r2, [r7, #8] + 8000660: f64f 03ff movw r3, #63743 ; 0xf8ff + 8000664: 4013 ands r3, r2 + 8000666: 60bb str r3, [r7, #8] + reg_value = (reg_value | + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ + 8000668: 68fb ldr r3, [r7, #12] + 800066a: 021a lsls r2, r3, #8 + ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | + 800066c: 68bb ldr r3, [r7, #8] + 800066e: 431a orrs r2, r3 + reg_value = (reg_value | + 8000670: 4b06 ldr r3, [pc, #24] ; (800068c <__NVIC_SetPriorityGrouping+0x44>) + 8000672: 4313 orrs r3, r2 + 8000674: 60bb str r3, [r7, #8] + SCB->AIRCR = reg_value; + 8000676: 4a04 ldr r2, [pc, #16] ; (8000688 <__NVIC_SetPriorityGrouping+0x40>) + 8000678: 68bb ldr r3, [r7, #8] + 800067a: 60d3 str r3, [r2, #12] +} + 800067c: bf00 nop + 800067e: 3714 adds r7, #20 + 8000680: 46bd mov sp, r7 + 8000682: f85d 7b04 ldr.w r7, [sp], #4 + 8000686: 4770 bx lr + 8000688: e000ed00 .word 0xe000ed00 + 800068c: 05fa0000 .word 0x05fa0000 + +08000690 <__NVIC_GetPriorityGrouping>: + \brief Get Priority Grouping + \details Reads the priority grouping field from the NVIC Interrupt Controller. + \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). + */ +__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) +{ + 8000690: b480 push {r7} + 8000692: af00 add r7, sp, #0 + return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); + 8000694: 4b04 ldr r3, [pc, #16] ; (80006a8 <__NVIC_GetPriorityGrouping+0x18>) + 8000696: 68db ldr r3, [r3, #12] + 8000698: 0a1b lsrs r3, r3, #8 + 800069a: f003 0307 and.w r3, r3, #7 +} + 800069e: 4618 mov r0, r3 + 80006a0: 46bd mov sp, r7 + 80006a2: f85d 7b04 ldr.w r7, [sp], #4 + 80006a6: 4770 bx lr + 80006a8: e000ed00 .word 0xe000ed00 + +080006ac <__NVIC_EnableIRQ>: + \details Enables a device specific interrupt in the NVIC interrupt controller. + \param [in] IRQn Device specific interrupt number. + \note IRQn must not be negative. + */ +__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) +{ + 80006ac: b480 push {r7} + 80006ae: b083 sub sp, #12 + 80006b0: af00 add r7, sp, #0 + 80006b2: 4603 mov r3, r0 + 80006b4: 71fb strb r3, [r7, #7] + if ((int32_t)(IRQn) >= 0) + 80006b6: f997 3007 ldrsb.w r3, [r7, #7] + 80006ba: 2b00 cmp r3, #0 + 80006bc: db0b blt.n 80006d6 <__NVIC_EnableIRQ+0x2a> + { + NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); + 80006be: 79fb ldrb r3, [r7, #7] + 80006c0: f003 021f and.w r2, r3, #31 + 80006c4: 4907 ldr r1, [pc, #28] ; (80006e4 <__NVIC_EnableIRQ+0x38>) + 80006c6: f997 3007 ldrsb.w r3, [r7, #7] + 80006ca: 095b lsrs r3, r3, #5 + 80006cc: 2001 movs r0, #1 + 80006ce: fa00 f202 lsl.w r2, r0, r2 + 80006d2: f841 2023 str.w r2, [r1, r3, lsl #2] + } +} + 80006d6: bf00 nop + 80006d8: 370c adds r7, #12 + 80006da: 46bd mov sp, r7 + 80006dc: f85d 7b04 ldr.w r7, [sp], #4 + 80006e0: 4770 bx lr + 80006e2: bf00 nop + 80006e4: e000e100 .word 0xe000e100 + +080006e8 <__NVIC_SetPriority>: + \param [in] IRQn Interrupt number. + \param [in] priority Priority to set. + \note The priority cannot be set for every processor exception. + */ +__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + 80006e8: b480 push {r7} + 80006ea: b083 sub sp, #12 + 80006ec: af00 add r7, sp, #0 + 80006ee: 4603 mov r3, r0 + 80006f0: 6039 str r1, [r7, #0] + 80006f2: 71fb strb r3, [r7, #7] + if ((int32_t)(IRQn) >= 0) + 80006f4: f997 3007 ldrsb.w r3, [r7, #7] + 80006f8: 2b00 cmp r3, #0 + 80006fa: db0a blt.n 8000712 <__NVIC_SetPriority+0x2a> + { + NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 80006fc: 683b ldr r3, [r7, #0] + 80006fe: b2da uxtb r2, r3 + 8000700: 490c ldr r1, [pc, #48] ; (8000734 <__NVIC_SetPriority+0x4c>) + 8000702: f997 3007 ldrsb.w r3, [r7, #7] + 8000706: 0112 lsls r2, r2, #4 + 8000708: b2d2 uxtb r2, r2 + 800070a: 440b add r3, r1 + 800070c: f883 2300 strb.w r2, [r3, #768] ; 0x300 + } + else + { + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + } +} + 8000710: e00a b.n 8000728 <__NVIC_SetPriority+0x40> + SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); + 8000712: 683b ldr r3, [r7, #0] + 8000714: b2da uxtb r2, r3 + 8000716: 4908 ldr r1, [pc, #32] ; (8000738 <__NVIC_SetPriority+0x50>) + 8000718: 79fb ldrb r3, [r7, #7] + 800071a: f003 030f and.w r3, r3, #15 + 800071e: 3b04 subs r3, #4 + 8000720: 0112 lsls r2, r2, #4 + 8000722: b2d2 uxtb r2, r2 + 8000724: 440b add r3, r1 + 8000726: 761a strb r2, [r3, #24] +} + 8000728: bf00 nop + 800072a: 370c adds r7, #12 + 800072c: 46bd mov sp, r7 + 800072e: f85d 7b04 ldr.w r7, [sp], #4 + 8000732: 4770 bx lr + 8000734: e000e100 .word 0xe000e100 + 8000738: e000ed00 .word 0xe000ed00 + +0800073c : + \param [in] PreemptPriority Preemptive priority value (starting from 0). + \param [in] SubPriority Subpriority value (starting from 0). + \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). + */ +__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + 800073c: b480 push {r7} + 800073e: b089 sub sp, #36 ; 0x24 + 8000740: af00 add r7, sp, #0 + 8000742: 60f8 str r0, [r7, #12] + 8000744: 60b9 str r1, [r7, #8] + 8000746: 607a str r2, [r7, #4] + uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ + 8000748: 68fb ldr r3, [r7, #12] + 800074a: f003 0307 and.w r3, r3, #7 + 800074e: 61fb str r3, [r7, #28] + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); + 8000750: 69fb ldr r3, [r7, #28] + 8000752: f1c3 0307 rsb r3, r3, #7 + 8000756: 2b04 cmp r3, #4 + 8000758: bf28 it cs + 800075a: 2304 movcs r3, #4 + 800075c: 61bb str r3, [r7, #24] + SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); + 800075e: 69fb ldr r3, [r7, #28] + 8000760: 3304 adds r3, #4 + 8000762: 2b06 cmp r3, #6 + 8000764: d902 bls.n 800076c + 8000766: 69fb ldr r3, [r7, #28] + 8000768: 3b03 subs r3, #3 + 800076a: e000 b.n 800076e + 800076c: 2300 movs r3, #0 + 800076e: 617b str r3, [r7, #20] + + return ( + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 8000770: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff + 8000774: 69bb ldr r3, [r7, #24] + 8000776: fa02 f303 lsl.w r3, r2, r3 + 800077a: 43da mvns r2, r3 + 800077c: 68bb ldr r3, [r7, #8] + 800077e: 401a ands r2, r3 + 8000780: 697b ldr r3, [r7, #20] + 8000782: 409a lsls r2, r3 + ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) + 8000784: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff + 8000788: 697b ldr r3, [r7, #20] + 800078a: fa01 f303 lsl.w r3, r1, r3 + 800078e: 43d9 mvns r1, r3 + 8000790: 687b ldr r3, [r7, #4] + 8000792: 400b ands r3, r1 + ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | + 8000794: 4313 orrs r3, r2 + ); +} + 8000796: 4618 mov r0, r3 + 8000798: 3724 adds r7, #36 ; 0x24 + 800079a: 46bd mov sp, r7 + 800079c: f85d 7b04 ldr.w r7, [sp], #4 + 80007a0: 4770 bx lr + ... + +080007a4 : + \note When the variable __Vendor_SysTickConfig is set to 1, then the + function SysTick_Config is not included. In this case, the file device.h + must contain a vendor-specific implementation of this function. + */ +__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + 80007a4: b580 push {r7, lr} + 80007a6: b082 sub sp, #8 + 80007a8: af00 add r7, sp, #0 + 80007aa: 6078 str r0, [r7, #4] + if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) + 80007ac: 687b ldr r3, [r7, #4] + 80007ae: 3b01 subs r3, #1 + 80007b0: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 + 80007b4: d301 bcc.n 80007ba + { + return (1UL); /* Reload value impossible */ + 80007b6: 2301 movs r3, #1 + 80007b8: e00f b.n 80007da + } + + SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ + 80007ba: 4a0a ldr r2, [pc, #40] ; (80007e4 ) + 80007bc: 687b ldr r3, [r7, #4] + 80007be: 3b01 subs r3, #1 + 80007c0: 6053 str r3, [r2, #4] + NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ + 80007c2: 210f movs r1, #15 + 80007c4: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff + 80007c8: f7ff ff8e bl 80006e8 <__NVIC_SetPriority> + SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ + 80007cc: 4b05 ldr r3, [pc, #20] ; (80007e4 ) + 80007ce: 2200 movs r2, #0 + 80007d0: 609a str r2, [r3, #8] + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + 80007d2: 4b04 ldr r3, [pc, #16] ; (80007e4 ) + 80007d4: 2207 movs r2, #7 + 80007d6: 601a str r2, [r3, #0] + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0UL); /* Function successful */ + 80007d8: 2300 movs r3, #0 +} + 80007da: 4618 mov r0, r3 + 80007dc: 3708 adds r7, #8 + 80007de: 46bd mov sp, r7 + 80007e0: bd80 pop {r7, pc} + 80007e2: bf00 nop + 80007e4: e000e010 .word 0xe000e010 + +080007e8 : + * @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible. + * The pending IRQ priority will be managed only by the subpriority. + * @retval None + */ +void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + 80007e8: b580 push {r7, lr} + 80007ea: b082 sub sp, #8 + 80007ec: af00 add r7, sp, #0 + 80007ee: 6078 str r0, [r7, #4] + /* Check the parameters */ + assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); + + /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */ + NVIC_SetPriorityGrouping(PriorityGroup); + 80007f0: 6878 ldr r0, [r7, #4] + 80007f2: f7ff ff29 bl 8000648 <__NVIC_SetPriorityGrouping> +} + 80007f6: bf00 nop + 80007f8: 3708 adds r7, #8 + 80007fa: 46bd mov sp, r7 + 80007fc: bd80 pop {r7, pc} + +080007fe : + * This parameter can be a value between 0 and 15 + * A lower priority value indicates a higher priority. + * @retval None + */ +void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) +{ + 80007fe: b580 push {r7, lr} + 8000800: b086 sub sp, #24 + 8000802: af00 add r7, sp, #0 + 8000804: 4603 mov r3, r0 + 8000806: 60b9 str r1, [r7, #8] + 8000808: 607a str r2, [r7, #4] + 800080a: 73fb strb r3, [r7, #15] + uint32_t prioritygroup = 0x00; + 800080c: 2300 movs r3, #0 + 800080e: 617b str r3, [r7, #20] + + /* Check the parameters */ + assert_param(IS_NVIC_SUB_PRIORITY(SubPriority)); + assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority)); + + prioritygroup = NVIC_GetPriorityGrouping(); + 8000810: f7ff ff3e bl 8000690 <__NVIC_GetPriorityGrouping> + 8000814: 6178 str r0, [r7, #20] + + NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); + 8000816: 687a ldr r2, [r7, #4] + 8000818: 68b9 ldr r1, [r7, #8] + 800081a: 6978 ldr r0, [r7, #20] + 800081c: f7ff ff8e bl 800073c + 8000820: 4602 mov r2, r0 + 8000822: f997 300f ldrsb.w r3, [r7, #15] + 8000826: 4611 mov r1, r2 + 8000828: 4618 mov r0, r3 + 800082a: f7ff ff5d bl 80006e8 <__NVIC_SetPriority> +} + 800082e: bf00 nop + 8000830: 3718 adds r7, #24 + 8000832: 46bd mov sp, r7 + 8000834: bd80 pop {r7, pc} + +08000836 : + * This parameter can be an enumerator of IRQn_Type enumeration + * (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32f7xxxx.h)) + * @retval None + */ +void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) +{ + 8000836: b580 push {r7, lr} + 8000838: b082 sub sp, #8 + 800083a: af00 add r7, sp, #0 + 800083c: 4603 mov r3, r0 + 800083e: 71fb strb r3, [r7, #7] + /* Check the parameters */ + assert_param(IS_NVIC_DEVICE_IRQ(IRQn)); + + /* Enable interrupt */ + NVIC_EnableIRQ(IRQn); + 8000840: f997 3007 ldrsb.w r3, [r7, #7] + 8000844: 4618 mov r0, r3 + 8000846: f7ff ff31 bl 80006ac <__NVIC_EnableIRQ> +} + 800084a: bf00 nop + 800084c: 3708 adds r7, #8 + 800084e: 46bd mov sp, r7 + 8000850: bd80 pop {r7, pc} + +08000852 : + * @param TicksNumb Specifies the ticks Number of ticks between two interrupts. + * @retval status: - 0 Function succeeded. + * - 1 Function failed. + */ +uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) +{ + 8000852: b580 push {r7, lr} + 8000854: b082 sub sp, #8 + 8000856: af00 add r7, sp, #0 + 8000858: 6078 str r0, [r7, #4] + return SysTick_Config(TicksNumb); + 800085a: 6878 ldr r0, [r7, #4] + 800085c: f7ff ffa2 bl 80007a4 + 8000860: 4603 mov r3, r0 +} + 8000862: 4618 mov r0, r3 + 8000864: 3708 adds r7, #8 + 8000866: 46bd mov sp, r7 + 8000868: bd80 pop {r7, pc} + ... + +0800086c : + * @param hdma Pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Stream. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma) +{ + 800086c: b580 push {r7, lr} + 800086e: b086 sub sp, #24 + 8000870: af00 add r7, sp, #0 + 8000872: 6078 str r0, [r7, #4] + uint32_t tmp = 0U; + 8000874: 2300 movs r3, #0 + 8000876: 617b str r3, [r7, #20] + uint32_t tickstart = HAL_GetTick(); + 8000878: f7ff feb8 bl 80005ec + 800087c: 6138 str r0, [r7, #16] + DMA_Base_Registers *regs; + + /* Check the DMA peripheral state */ + if(hdma == NULL) + 800087e: 687b ldr r3, [r7, #4] + 8000880: 2b00 cmp r3, #0 + 8000882: d101 bne.n 8000888 + { + return HAL_ERROR; + 8000884: 2301 movs r3, #1 + 8000886: e099 b.n 80009bc + assert_param(IS_DMA_MEMORY_BURST(hdma->Init.MemBurst)); + assert_param(IS_DMA_PERIPHERAL_BURST(hdma->Init.PeriphBurst)); + } + + /* Allocate lock resource */ + __HAL_UNLOCK(hdma); + 8000888: 687b ldr r3, [r7, #4] + 800088a: 2200 movs r2, #0 + 800088c: f883 2034 strb.w r2, [r3, #52] ; 0x34 + + /* Change DMA peripheral state */ + hdma->State = HAL_DMA_STATE_BUSY; + 8000890: 687b ldr r3, [r7, #4] + 8000892: 2202 movs r2, #2 + 8000894: f883 2035 strb.w r2, [r3, #53] ; 0x35 + + /* Disable the peripheral */ + __HAL_DMA_DISABLE(hdma); + 8000898: 687b ldr r3, [r7, #4] + 800089a: 681b ldr r3, [r3, #0] + 800089c: 681a ldr r2, [r3, #0] + 800089e: 687b ldr r3, [r7, #4] + 80008a0: 681b ldr r3, [r3, #0] + 80008a2: f022 0201 bic.w r2, r2, #1 + 80008a6: 601a str r2, [r3, #0] + + /* Check if the DMA Stream is effectively disabled */ + while((hdma->Instance->CR & DMA_SxCR_EN) != RESET) + 80008a8: e00f b.n 80008ca + { + /* Check for the Timeout */ + if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT) + 80008aa: f7ff fe9f bl 80005ec + 80008ae: 4602 mov r2, r0 + 80008b0: 693b ldr r3, [r7, #16] + 80008b2: 1ad3 subs r3, r2, r3 + 80008b4: 2b05 cmp r3, #5 + 80008b6: d908 bls.n 80008ca + { + /* Update error code */ + hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; + 80008b8: 687b ldr r3, [r7, #4] + 80008ba: 2220 movs r2, #32 + 80008bc: 655a str r2, [r3, #84] ; 0x54 + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_TIMEOUT; + 80008be: 687b ldr r3, [r7, #4] + 80008c0: 2203 movs r2, #3 + 80008c2: f883 2035 strb.w r2, [r3, #53] ; 0x35 + + return HAL_TIMEOUT; + 80008c6: 2303 movs r3, #3 + 80008c8: e078 b.n 80009bc + while((hdma->Instance->CR & DMA_SxCR_EN) != RESET) + 80008ca: 687b ldr r3, [r7, #4] + 80008cc: 681b ldr r3, [r3, #0] + 80008ce: 681b ldr r3, [r3, #0] + 80008d0: f003 0301 and.w r3, r3, #1 + 80008d4: 2b00 cmp r3, #0 + 80008d6: d1e8 bne.n 80008aa + } + } + + /* Get the CR register value */ + tmp = hdma->Instance->CR; + 80008d8: 687b ldr r3, [r7, #4] + 80008da: 681b ldr r3, [r3, #0] + 80008dc: 681b ldr r3, [r3, #0] + 80008de: 617b str r3, [r7, #20] + + /* Clear CHSEL, MBURST, PBURST, PL, MSIZE, PSIZE, MINC, PINC, CIRC, DIR, CT and DBM bits */ + tmp &= ((uint32_t)~(DMA_SxCR_CHSEL | DMA_SxCR_MBURST | DMA_SxCR_PBURST | \ + 80008e0: 697a ldr r2, [r7, #20] + 80008e2: 4b38 ldr r3, [pc, #224] ; (80009c4 ) + 80008e4: 4013 ands r3, r2 + 80008e6: 617b str r3, [r7, #20] + DMA_SxCR_PL | DMA_SxCR_MSIZE | DMA_SxCR_PSIZE | \ + DMA_SxCR_MINC | DMA_SxCR_PINC | DMA_SxCR_CIRC | \ + DMA_SxCR_DIR | DMA_SxCR_CT | DMA_SxCR_DBM)); + + /* Prepare the DMA Stream configuration */ + tmp |= hdma->Init.Channel | hdma->Init.Direction | + 80008e8: 687b ldr r3, [r7, #4] + 80008ea: 685a ldr r2, [r3, #4] + 80008ec: 687b ldr r3, [r7, #4] + 80008ee: 689b ldr r3, [r3, #8] + 80008f0: 431a orrs r2, r3 + hdma->Init.PeriphInc | hdma->Init.MemInc | + 80008f2: 687b ldr r3, [r7, #4] + 80008f4: 68db ldr r3, [r3, #12] + tmp |= hdma->Init.Channel | hdma->Init.Direction | + 80008f6: 431a orrs r2, r3 + hdma->Init.PeriphInc | hdma->Init.MemInc | + 80008f8: 687b ldr r3, [r7, #4] + 80008fa: 691b ldr r3, [r3, #16] + 80008fc: 431a orrs r2, r3 + hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | + 80008fe: 687b ldr r3, [r7, #4] + 8000900: 695b ldr r3, [r3, #20] + hdma->Init.PeriphInc | hdma->Init.MemInc | + 8000902: 431a orrs r2, r3 + hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | + 8000904: 687b ldr r3, [r7, #4] + 8000906: 699b ldr r3, [r3, #24] + 8000908: 431a orrs r2, r3 + hdma->Init.Mode | hdma->Init.Priority; + 800090a: 687b ldr r3, [r7, #4] + 800090c: 69db ldr r3, [r3, #28] + hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | + 800090e: 431a orrs r2, r3 + hdma->Init.Mode | hdma->Init.Priority; + 8000910: 687b ldr r3, [r7, #4] + 8000912: 6a1b ldr r3, [r3, #32] + 8000914: 4313 orrs r3, r2 + tmp |= hdma->Init.Channel | hdma->Init.Direction | + 8000916: 697a ldr r2, [r7, #20] + 8000918: 4313 orrs r3, r2 + 800091a: 617b str r3, [r7, #20] + + /* the Memory burst and peripheral burst are not used when the FIFO is disabled */ + if(hdma->Init.FIFOMode == DMA_FIFOMODE_ENABLE) + 800091c: 687b ldr r3, [r7, #4] + 800091e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8000920: 2b04 cmp r3, #4 + 8000922: d107 bne.n 8000934 + { + /* Get memory burst and peripheral burst */ + tmp |= hdma->Init.MemBurst | hdma->Init.PeriphBurst; + 8000924: 687b ldr r3, [r7, #4] + 8000926: 6ada ldr r2, [r3, #44] ; 0x2c + 8000928: 687b ldr r3, [r7, #4] + 800092a: 6b1b ldr r3, [r3, #48] ; 0x30 + 800092c: 4313 orrs r3, r2 + 800092e: 697a ldr r2, [r7, #20] + 8000930: 4313 orrs r3, r2 + 8000932: 617b str r3, [r7, #20] + } + + /* Write to DMA Stream CR register */ + hdma->Instance->CR = tmp; + 8000934: 687b ldr r3, [r7, #4] + 8000936: 681b ldr r3, [r3, #0] + 8000938: 697a ldr r2, [r7, #20] + 800093a: 601a str r2, [r3, #0] + + /* Get the FCR register value */ + tmp = hdma->Instance->FCR; + 800093c: 687b ldr r3, [r7, #4] + 800093e: 681b ldr r3, [r3, #0] + 8000940: 695b ldr r3, [r3, #20] + 8000942: 617b str r3, [r7, #20] + + /* Clear Direct mode and FIFO threshold bits */ + tmp &= (uint32_t)~(DMA_SxFCR_DMDIS | DMA_SxFCR_FTH); + 8000944: 697b ldr r3, [r7, #20] + 8000946: f023 0307 bic.w r3, r3, #7 + 800094a: 617b str r3, [r7, #20] + + /* Prepare the DMA Stream FIFO configuration */ + tmp |= hdma->Init.FIFOMode; + 800094c: 687b ldr r3, [r7, #4] + 800094e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8000950: 697a ldr r2, [r7, #20] + 8000952: 4313 orrs r3, r2 + 8000954: 617b str r3, [r7, #20] + + /* The FIFO threshold is not used when the FIFO mode is disabled */ + if(hdma->Init.FIFOMode == DMA_FIFOMODE_ENABLE) + 8000956: 687b ldr r3, [r7, #4] + 8000958: 6a5b ldr r3, [r3, #36] ; 0x24 + 800095a: 2b04 cmp r3, #4 + 800095c: d117 bne.n 800098e + { + /* Get the FIFO threshold */ + tmp |= hdma->Init.FIFOThreshold; + 800095e: 687b ldr r3, [r7, #4] + 8000960: 6a9b ldr r3, [r3, #40] ; 0x28 + 8000962: 697a ldr r2, [r7, #20] + 8000964: 4313 orrs r3, r2 + 8000966: 617b str r3, [r7, #20] + + /* Check compatibility between FIFO threshold level and size of the memory burst */ + /* for INCR4, INCR8, INCR16 bursts */ + if (hdma->Init.MemBurst != DMA_MBURST_SINGLE) + 8000968: 687b ldr r3, [r7, #4] + 800096a: 6adb ldr r3, [r3, #44] ; 0x2c + 800096c: 2b00 cmp r3, #0 + 800096e: d00e beq.n 800098e + { + if (DMA_CheckFifoParam(hdma) != HAL_OK) + 8000970: 6878 ldr r0, [r7, #4] + 8000972: f000 fa99 bl 8000ea8 + 8000976: 4603 mov r3, r0 + 8000978: 2b00 cmp r3, #0 + 800097a: d008 beq.n 800098e + { + /* Update error code */ + hdma->ErrorCode = HAL_DMA_ERROR_PARAM; + 800097c: 687b ldr r3, [r7, #4] + 800097e: 2240 movs r2, #64 ; 0x40 + 8000980: 655a str r2, [r3, #84] ; 0x54 + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + 8000982: 687b ldr r3, [r7, #4] + 8000984: 2201 movs r2, #1 + 8000986: f883 2035 strb.w r2, [r3, #53] ; 0x35 + + return HAL_ERROR; + 800098a: 2301 movs r3, #1 + 800098c: e016 b.n 80009bc + } + } + } + + /* Write to DMA Stream FCR */ + hdma->Instance->FCR = tmp; + 800098e: 687b ldr r3, [r7, #4] + 8000990: 681b ldr r3, [r3, #0] + 8000992: 697a ldr r2, [r7, #20] + 8000994: 615a str r2, [r3, #20] + + /* Initialize StreamBaseAddress and StreamIndex parameters to be used to calculate + DMA steam Base Address needed by HAL_DMA_IRQHandler() and HAL_DMA_PollForTransfer() */ + regs = (DMA_Base_Registers *)DMA_CalcBaseAndBitshift(hdma); + 8000996: 6878 ldr r0, [r7, #4] + 8000998: f000 fa50 bl 8000e3c + 800099c: 4603 mov r3, r0 + 800099e: 60fb str r3, [r7, #12] + + /* Clear all interrupt flags */ + regs->IFCR = 0x3FU << hdma->StreamIndex; + 80009a0: 687b ldr r3, [r7, #4] + 80009a2: 6ddb ldr r3, [r3, #92] ; 0x5c + 80009a4: 223f movs r2, #63 ; 0x3f + 80009a6: 409a lsls r2, r3 + 80009a8: 68fb ldr r3, [r7, #12] + 80009aa: 609a str r2, [r3, #8] + + /* Initialize the error code */ + hdma->ErrorCode = HAL_DMA_ERROR_NONE; + 80009ac: 687b ldr r3, [r7, #4] + 80009ae: 2200 movs r2, #0 + 80009b0: 655a str r2, [r3, #84] ; 0x54 + + /* Initialize the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + 80009b2: 687b ldr r3, [r7, #4] + 80009b4: 2201 movs r2, #1 + 80009b6: f883 2035 strb.w r2, [r3, #53] ; 0x35 + + return HAL_OK; + 80009ba: 2300 movs r3, #0 +} + 80009bc: 4618 mov r0, r3 + 80009be: 3718 adds r7, #24 + 80009c0: 46bd mov sp, r7 + 80009c2: bd80 pop {r7, pc} + 80009c4: e010803f .word 0xe010803f + +080009c8 : + * @param DstAddress The destination memory Buffer address + * @param DataLength The length of data to be transferred from source to destination + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength) +{ + 80009c8: b580 push {r7, lr} + 80009ca: b086 sub sp, #24 + 80009cc: af00 add r7, sp, #0 + 80009ce: 60f8 str r0, [r7, #12] + 80009d0: 60b9 str r1, [r7, #8] + 80009d2: 607a str r2, [r7, #4] + 80009d4: 603b str r3, [r7, #0] + HAL_StatusTypeDef status = HAL_OK; + 80009d6: 2300 movs r3, #0 + 80009d8: 75fb strb r3, [r7, #23] + + /* calculate DMA base and stream number */ + DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; + 80009da: 68fb ldr r3, [r7, #12] + 80009dc: 6d9b ldr r3, [r3, #88] ; 0x58 + 80009de: 613b str r3, [r7, #16] + + /* Check the parameters */ + assert_param(IS_DMA_BUFFER_SIZE(DataLength)); + + /* Process locked */ + __HAL_LOCK(hdma); + 80009e0: 68fb ldr r3, [r7, #12] + 80009e2: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 + 80009e6: 2b01 cmp r3, #1 + 80009e8: d101 bne.n 80009ee + 80009ea: 2302 movs r3, #2 + 80009ec: e048 b.n 8000a80 + 80009ee: 68fb ldr r3, [r7, #12] + 80009f0: 2201 movs r2, #1 + 80009f2: f883 2034 strb.w r2, [r3, #52] ; 0x34 + + if(HAL_DMA_STATE_READY == hdma->State) + 80009f6: 68fb ldr r3, [r7, #12] + 80009f8: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 + 80009fc: b2db uxtb r3, r3 + 80009fe: 2b01 cmp r3, #1 + 8000a00: d137 bne.n 8000a72 + { + /* Change DMA peripheral state */ + hdma->State = HAL_DMA_STATE_BUSY; + 8000a02: 68fb ldr r3, [r7, #12] + 8000a04: 2202 movs r2, #2 + 8000a06: f883 2035 strb.w r2, [r3, #53] ; 0x35 + + /* Initialize the error code */ + hdma->ErrorCode = HAL_DMA_ERROR_NONE; + 8000a0a: 68fb ldr r3, [r7, #12] + 8000a0c: 2200 movs r2, #0 + 8000a0e: 655a str r2, [r3, #84] ; 0x54 + + /* Configure the source, destination address and the data length */ + DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength); + 8000a10: 683b ldr r3, [r7, #0] + 8000a12: 687a ldr r2, [r7, #4] + 8000a14: 68b9 ldr r1, [r7, #8] + 8000a16: 68f8 ldr r0, [r7, #12] + 8000a18: f000 f9e2 bl 8000de0 + + /* Clear all interrupt flags at correct offset within the register */ + regs->IFCR = 0x3FU << hdma->StreamIndex; + 8000a1c: 68fb ldr r3, [r7, #12] + 8000a1e: 6ddb ldr r3, [r3, #92] ; 0x5c + 8000a20: 223f movs r2, #63 ; 0x3f + 8000a22: 409a lsls r2, r3 + 8000a24: 693b ldr r3, [r7, #16] + 8000a26: 609a str r2, [r3, #8] + + /* Enable Common interrupts*/ + hdma->Instance->CR |= DMA_IT_TC | DMA_IT_TE | DMA_IT_DME; + 8000a28: 68fb ldr r3, [r7, #12] + 8000a2a: 681b ldr r3, [r3, #0] + 8000a2c: 681a ldr r2, [r3, #0] + 8000a2e: 68fb ldr r3, [r7, #12] + 8000a30: 681b ldr r3, [r3, #0] + 8000a32: f042 0216 orr.w r2, r2, #22 + 8000a36: 601a str r2, [r3, #0] + hdma->Instance->FCR |= DMA_IT_FE; + 8000a38: 68fb ldr r3, [r7, #12] + 8000a3a: 681b ldr r3, [r3, #0] + 8000a3c: 695a ldr r2, [r3, #20] + 8000a3e: 68fb ldr r3, [r7, #12] + 8000a40: 681b ldr r3, [r3, #0] + 8000a42: f042 0280 orr.w r2, r2, #128 ; 0x80 + 8000a46: 615a str r2, [r3, #20] + + if(hdma->XferHalfCpltCallback != NULL) + 8000a48: 68fb ldr r3, [r7, #12] + 8000a4a: 6c1b ldr r3, [r3, #64] ; 0x40 + 8000a4c: 2b00 cmp r3, #0 + 8000a4e: d007 beq.n 8000a60 + { + hdma->Instance->CR |= DMA_IT_HT; + 8000a50: 68fb ldr r3, [r7, #12] + 8000a52: 681b ldr r3, [r3, #0] + 8000a54: 681a ldr r2, [r3, #0] + 8000a56: 68fb ldr r3, [r7, #12] + 8000a58: 681b ldr r3, [r3, #0] + 8000a5a: f042 0208 orr.w r2, r2, #8 + 8000a5e: 601a str r2, [r3, #0] + } + + /* Enable the Peripheral */ + __HAL_DMA_ENABLE(hdma); + 8000a60: 68fb ldr r3, [r7, #12] + 8000a62: 681b ldr r3, [r3, #0] + 8000a64: 681a ldr r2, [r3, #0] + 8000a66: 68fb ldr r3, [r7, #12] + 8000a68: 681b ldr r3, [r3, #0] + 8000a6a: f042 0201 orr.w r2, r2, #1 + 8000a6e: 601a str r2, [r3, #0] + 8000a70: e005 b.n 8000a7e + } + else + { + /* Process unlocked */ + __HAL_UNLOCK(hdma); + 8000a72: 68fb ldr r3, [r7, #12] + 8000a74: 2200 movs r2, #0 + 8000a76: f883 2034 strb.w r2, [r3, #52] ; 0x34 + + /* Return error status */ + status = HAL_BUSY; + 8000a7a: 2302 movs r3, #2 + 8000a7c: 75fb strb r3, [r7, #23] + } + + return status; + 8000a7e: 7dfb ldrb r3, [r7, #23] +} + 8000a80: 4618 mov r0, r3 + 8000a82: 3718 adds r7, #24 + 8000a84: 46bd mov sp, r7 + 8000a86: bd80 pop {r7, pc} + +08000a88 : + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Stream. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) +{ + 8000a88: b480 push {r7} + 8000a8a: b083 sub sp, #12 + 8000a8c: af00 add r7, sp, #0 + 8000a8e: 6078 str r0, [r7, #4] + if(hdma->State != HAL_DMA_STATE_BUSY) + 8000a90: 687b ldr r3, [r7, #4] + 8000a92: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 + 8000a96: b2db uxtb r3, r3 + 8000a98: 2b02 cmp r3, #2 + 8000a9a: d004 beq.n 8000aa6 + { + hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; + 8000a9c: 687b ldr r3, [r7, #4] + 8000a9e: 2280 movs r2, #128 ; 0x80 + 8000aa0: 655a str r2, [r3, #84] ; 0x54 + return HAL_ERROR; + 8000aa2: 2301 movs r3, #1 + 8000aa4: e00c b.n 8000ac0 + } + else + { + /* Set Abort State */ + hdma->State = HAL_DMA_STATE_ABORT; + 8000aa6: 687b ldr r3, [r7, #4] + 8000aa8: 2205 movs r2, #5 + 8000aaa: f883 2035 strb.w r2, [r3, #53] ; 0x35 + + /* Disable the stream */ + __HAL_DMA_DISABLE(hdma); + 8000aae: 687b ldr r3, [r7, #4] + 8000ab0: 681b ldr r3, [r3, #0] + 8000ab2: 681a ldr r2, [r3, #0] + 8000ab4: 687b ldr r3, [r7, #4] + 8000ab6: 681b ldr r3, [r3, #0] + 8000ab8: f022 0201 bic.w r2, r2, #1 + 8000abc: 601a str r2, [r3, #0] + } + + return HAL_OK; + 8000abe: 2300 movs r3, #0 +} + 8000ac0: 4618 mov r0, r3 + 8000ac2: 370c adds r7, #12 + 8000ac4: 46bd mov sp, r7 + 8000ac6: f85d 7b04 ldr.w r7, [sp], #4 + 8000aca: 4770 bx lr + +08000acc : + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Stream. + * @retval None + */ +void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma) +{ + 8000acc: b580 push {r7, lr} + 8000ace: b086 sub sp, #24 + 8000ad0: af00 add r7, sp, #0 + 8000ad2: 6078 str r0, [r7, #4] + uint32_t tmpisr; + __IO uint32_t count = 0; + 8000ad4: 2300 movs r3, #0 + 8000ad6: 60bb str r3, [r7, #8] + uint32_t timeout = SystemCoreClock / 9600; + 8000ad8: 4b92 ldr r3, [pc, #584] ; (8000d24 ) + 8000ada: 681b ldr r3, [r3, #0] + 8000adc: 4a92 ldr r2, [pc, #584] ; (8000d28 ) + 8000ade: fba2 2303 umull r2, r3, r2, r3 + 8000ae2: 0a9b lsrs r3, r3, #10 + 8000ae4: 617b str r3, [r7, #20] + + /* calculate DMA base and stream number */ + DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; + 8000ae6: 687b ldr r3, [r7, #4] + 8000ae8: 6d9b ldr r3, [r3, #88] ; 0x58 + 8000aea: 613b str r3, [r7, #16] + + tmpisr = regs->ISR; + 8000aec: 693b ldr r3, [r7, #16] + 8000aee: 681b ldr r3, [r3, #0] + 8000af0: 60fb str r3, [r7, #12] + + /* Transfer Error Interrupt management ***************************************/ + if ((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET) + 8000af2: 687b ldr r3, [r7, #4] + 8000af4: 6ddb ldr r3, [r3, #92] ; 0x5c + 8000af6: 2208 movs r2, #8 + 8000af8: 409a lsls r2, r3 + 8000afa: 68fb ldr r3, [r7, #12] + 8000afc: 4013 ands r3, r2 + 8000afe: 2b00 cmp r3, #0 + 8000b00: d01a beq.n 8000b38 + { + if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TE) != RESET) + 8000b02: 687b ldr r3, [r7, #4] + 8000b04: 681b ldr r3, [r3, #0] + 8000b06: 681b ldr r3, [r3, #0] + 8000b08: f003 0304 and.w r3, r3, #4 + 8000b0c: 2b00 cmp r3, #0 + 8000b0e: d013 beq.n 8000b38 + { + /* Disable the transfer error interrupt */ + hdma->Instance->CR &= ~(DMA_IT_TE); + 8000b10: 687b ldr r3, [r7, #4] + 8000b12: 681b ldr r3, [r3, #0] + 8000b14: 681a ldr r2, [r3, #0] + 8000b16: 687b ldr r3, [r7, #4] + 8000b18: 681b ldr r3, [r3, #0] + 8000b1a: f022 0204 bic.w r2, r2, #4 + 8000b1e: 601a str r2, [r3, #0] + + /* Clear the transfer error flag */ + regs->IFCR = DMA_FLAG_TEIF0_4 << hdma->StreamIndex; + 8000b20: 687b ldr r3, [r7, #4] + 8000b22: 6ddb ldr r3, [r3, #92] ; 0x5c + 8000b24: 2208 movs r2, #8 + 8000b26: 409a lsls r2, r3 + 8000b28: 693b ldr r3, [r7, #16] + 8000b2a: 609a str r2, [r3, #8] + + /* Update error code */ + hdma->ErrorCode |= HAL_DMA_ERROR_TE; + 8000b2c: 687b ldr r3, [r7, #4] + 8000b2e: 6d5b ldr r3, [r3, #84] ; 0x54 + 8000b30: f043 0201 orr.w r2, r3, #1 + 8000b34: 687b ldr r3, [r7, #4] + 8000b36: 655a str r2, [r3, #84] ; 0x54 + } + } + /* FIFO Error Interrupt management ******************************************/ + if ((tmpisr & (DMA_FLAG_FEIF0_4 << hdma->StreamIndex)) != RESET) + 8000b38: 687b ldr r3, [r7, #4] + 8000b3a: 6ddb ldr r3, [r3, #92] ; 0x5c + 8000b3c: 2201 movs r2, #1 + 8000b3e: 409a lsls r2, r3 + 8000b40: 68fb ldr r3, [r7, #12] + 8000b42: 4013 ands r3, r2 + 8000b44: 2b00 cmp r3, #0 + 8000b46: d012 beq.n 8000b6e + { + if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_FE) != RESET) + 8000b48: 687b ldr r3, [r7, #4] + 8000b4a: 681b ldr r3, [r3, #0] + 8000b4c: 695b ldr r3, [r3, #20] + 8000b4e: f003 0380 and.w r3, r3, #128 ; 0x80 + 8000b52: 2b00 cmp r3, #0 + 8000b54: d00b beq.n 8000b6e + { + /* Clear the FIFO error flag */ + regs->IFCR = DMA_FLAG_FEIF0_4 << hdma->StreamIndex; + 8000b56: 687b ldr r3, [r7, #4] + 8000b58: 6ddb ldr r3, [r3, #92] ; 0x5c + 8000b5a: 2201 movs r2, #1 + 8000b5c: 409a lsls r2, r3 + 8000b5e: 693b ldr r3, [r7, #16] + 8000b60: 609a str r2, [r3, #8] + + /* Update error code */ + hdma->ErrorCode |= HAL_DMA_ERROR_FE; + 8000b62: 687b ldr r3, [r7, #4] + 8000b64: 6d5b ldr r3, [r3, #84] ; 0x54 + 8000b66: f043 0202 orr.w r2, r3, #2 + 8000b6a: 687b ldr r3, [r7, #4] + 8000b6c: 655a str r2, [r3, #84] ; 0x54 + } + } + /* Direct Mode Error Interrupt management ***********************************/ + if ((tmpisr & (DMA_FLAG_DMEIF0_4 << hdma->StreamIndex)) != RESET) + 8000b6e: 687b ldr r3, [r7, #4] + 8000b70: 6ddb ldr r3, [r3, #92] ; 0x5c + 8000b72: 2204 movs r2, #4 + 8000b74: 409a lsls r2, r3 + 8000b76: 68fb ldr r3, [r7, #12] + 8000b78: 4013 ands r3, r2 + 8000b7a: 2b00 cmp r3, #0 + 8000b7c: d012 beq.n 8000ba4 + { + if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DME) != RESET) + 8000b7e: 687b ldr r3, [r7, #4] + 8000b80: 681b ldr r3, [r3, #0] + 8000b82: 681b ldr r3, [r3, #0] + 8000b84: f003 0302 and.w r3, r3, #2 + 8000b88: 2b00 cmp r3, #0 + 8000b8a: d00b beq.n 8000ba4 + { + /* Clear the direct mode error flag */ + regs->IFCR = DMA_FLAG_DMEIF0_4 << hdma->StreamIndex; + 8000b8c: 687b ldr r3, [r7, #4] + 8000b8e: 6ddb ldr r3, [r3, #92] ; 0x5c + 8000b90: 2204 movs r2, #4 + 8000b92: 409a lsls r2, r3 + 8000b94: 693b ldr r3, [r7, #16] + 8000b96: 609a str r2, [r3, #8] + + /* Update error code */ + hdma->ErrorCode |= HAL_DMA_ERROR_DME; + 8000b98: 687b ldr r3, [r7, #4] + 8000b9a: 6d5b ldr r3, [r3, #84] ; 0x54 + 8000b9c: f043 0204 orr.w r2, r3, #4 + 8000ba0: 687b ldr r3, [r7, #4] + 8000ba2: 655a str r2, [r3, #84] ; 0x54 + } + } + /* Half Transfer Complete Interrupt management ******************************/ + if ((tmpisr & (DMA_FLAG_HTIF0_4 << hdma->StreamIndex)) != RESET) + 8000ba4: 687b ldr r3, [r7, #4] + 8000ba6: 6ddb ldr r3, [r3, #92] ; 0x5c + 8000ba8: 2210 movs r2, #16 + 8000baa: 409a lsls r2, r3 + 8000bac: 68fb ldr r3, [r7, #12] + 8000bae: 4013 ands r3, r2 + 8000bb0: 2b00 cmp r3, #0 + 8000bb2: d043 beq.n 8000c3c + { + if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != RESET) + 8000bb4: 687b ldr r3, [r7, #4] + 8000bb6: 681b ldr r3, [r3, #0] + 8000bb8: 681b ldr r3, [r3, #0] + 8000bba: f003 0308 and.w r3, r3, #8 + 8000bbe: 2b00 cmp r3, #0 + 8000bc0: d03c beq.n 8000c3c + { + /* Clear the half transfer complete flag */ + regs->IFCR = DMA_FLAG_HTIF0_4 << hdma->StreamIndex; + 8000bc2: 687b ldr r3, [r7, #4] + 8000bc4: 6ddb ldr r3, [r3, #92] ; 0x5c + 8000bc6: 2210 movs r2, #16 + 8000bc8: 409a lsls r2, r3 + 8000bca: 693b ldr r3, [r7, #16] + 8000bcc: 609a str r2, [r3, #8] + + /* Multi_Buffering mode enabled */ + if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET) + 8000bce: 687b ldr r3, [r7, #4] + 8000bd0: 681b ldr r3, [r3, #0] + 8000bd2: 681b ldr r3, [r3, #0] + 8000bd4: f403 2380 and.w r3, r3, #262144 ; 0x40000 + 8000bd8: 2b00 cmp r3, #0 + 8000bda: d018 beq.n 8000c0e + { + /* Current memory buffer used is Memory 0 */ + if((hdma->Instance->CR & DMA_SxCR_CT) == RESET) + 8000bdc: 687b ldr r3, [r7, #4] + 8000bde: 681b ldr r3, [r3, #0] + 8000be0: 681b ldr r3, [r3, #0] + 8000be2: f403 2300 and.w r3, r3, #524288 ; 0x80000 + 8000be6: 2b00 cmp r3, #0 + 8000be8: d108 bne.n 8000bfc + { + if(hdma->XferHalfCpltCallback != NULL) + 8000bea: 687b ldr r3, [r7, #4] + 8000bec: 6c1b ldr r3, [r3, #64] ; 0x40 + 8000bee: 2b00 cmp r3, #0 + 8000bf0: d024 beq.n 8000c3c + { + /* Half transfer callback */ + hdma->XferHalfCpltCallback(hdma); + 8000bf2: 687b ldr r3, [r7, #4] + 8000bf4: 6c1b ldr r3, [r3, #64] ; 0x40 + 8000bf6: 6878 ldr r0, [r7, #4] + 8000bf8: 4798 blx r3 + 8000bfa: e01f b.n 8000c3c + } + } + /* Current memory buffer used is Memory 1 */ + else + { + if(hdma->XferM1HalfCpltCallback != NULL) + 8000bfc: 687b ldr r3, [r7, #4] + 8000bfe: 6c9b ldr r3, [r3, #72] ; 0x48 + 8000c00: 2b00 cmp r3, #0 + 8000c02: d01b beq.n 8000c3c + { + /* Half transfer callback */ + hdma->XferM1HalfCpltCallback(hdma); + 8000c04: 687b ldr r3, [r7, #4] + 8000c06: 6c9b ldr r3, [r3, #72] ; 0x48 + 8000c08: 6878 ldr r0, [r7, #4] + 8000c0a: 4798 blx r3 + 8000c0c: e016 b.n 8000c3c + } + } + else + { + /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */ + if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET) + 8000c0e: 687b ldr r3, [r7, #4] + 8000c10: 681b ldr r3, [r3, #0] + 8000c12: 681b ldr r3, [r3, #0] + 8000c14: f403 7380 and.w r3, r3, #256 ; 0x100 + 8000c18: 2b00 cmp r3, #0 + 8000c1a: d107 bne.n 8000c2c + { + /* Disable the half transfer interrupt */ + hdma->Instance->CR &= ~(DMA_IT_HT); + 8000c1c: 687b ldr r3, [r7, #4] + 8000c1e: 681b ldr r3, [r3, #0] + 8000c20: 681a ldr r2, [r3, #0] + 8000c22: 687b ldr r3, [r7, #4] + 8000c24: 681b ldr r3, [r3, #0] + 8000c26: f022 0208 bic.w r2, r2, #8 + 8000c2a: 601a str r2, [r3, #0] + } + + if(hdma->XferHalfCpltCallback != NULL) + 8000c2c: 687b ldr r3, [r7, #4] + 8000c2e: 6c1b ldr r3, [r3, #64] ; 0x40 + 8000c30: 2b00 cmp r3, #0 + 8000c32: d003 beq.n 8000c3c + { + /* Half transfer callback */ + hdma->XferHalfCpltCallback(hdma); + 8000c34: 687b ldr r3, [r7, #4] + 8000c36: 6c1b ldr r3, [r3, #64] ; 0x40 + 8000c38: 6878 ldr r0, [r7, #4] + 8000c3a: 4798 blx r3 + } + } + } + } + /* Transfer Complete Interrupt management ***********************************/ + if ((tmpisr & (DMA_FLAG_TCIF0_4 << hdma->StreamIndex)) != RESET) + 8000c3c: 687b ldr r3, [r7, #4] + 8000c3e: 6ddb ldr r3, [r3, #92] ; 0x5c + 8000c40: 2220 movs r2, #32 + 8000c42: 409a lsls r2, r3 + 8000c44: 68fb ldr r3, [r7, #12] + 8000c46: 4013 ands r3, r2 + 8000c48: 2b00 cmp r3, #0 + 8000c4a: f000 808e beq.w 8000d6a + { + if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != RESET) + 8000c4e: 687b ldr r3, [r7, #4] + 8000c50: 681b ldr r3, [r3, #0] + 8000c52: 681b ldr r3, [r3, #0] + 8000c54: f003 0310 and.w r3, r3, #16 + 8000c58: 2b00 cmp r3, #0 + 8000c5a: f000 8086 beq.w 8000d6a + { + /* Clear the transfer complete flag */ + regs->IFCR = DMA_FLAG_TCIF0_4 << hdma->StreamIndex; + 8000c5e: 687b ldr r3, [r7, #4] + 8000c60: 6ddb ldr r3, [r3, #92] ; 0x5c + 8000c62: 2220 movs r2, #32 + 8000c64: 409a lsls r2, r3 + 8000c66: 693b ldr r3, [r7, #16] + 8000c68: 609a str r2, [r3, #8] + + if(HAL_DMA_STATE_ABORT == hdma->State) + 8000c6a: 687b ldr r3, [r7, #4] + 8000c6c: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 + 8000c70: b2db uxtb r3, r3 + 8000c72: 2b05 cmp r3, #5 + 8000c74: d136 bne.n 8000ce4 + { + /* Disable all the transfer interrupts */ + hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME); + 8000c76: 687b ldr r3, [r7, #4] + 8000c78: 681b ldr r3, [r3, #0] + 8000c7a: 681a ldr r2, [r3, #0] + 8000c7c: 687b ldr r3, [r7, #4] + 8000c7e: 681b ldr r3, [r3, #0] + 8000c80: f022 0216 bic.w r2, r2, #22 + 8000c84: 601a str r2, [r3, #0] + hdma->Instance->FCR &= ~(DMA_IT_FE); + 8000c86: 687b ldr r3, [r7, #4] + 8000c88: 681b ldr r3, [r3, #0] + 8000c8a: 695a ldr r2, [r3, #20] + 8000c8c: 687b ldr r3, [r7, #4] + 8000c8e: 681b ldr r3, [r3, #0] + 8000c90: f022 0280 bic.w r2, r2, #128 ; 0x80 + 8000c94: 615a str r2, [r3, #20] + + if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL)) + 8000c96: 687b ldr r3, [r7, #4] + 8000c98: 6c1b ldr r3, [r3, #64] ; 0x40 + 8000c9a: 2b00 cmp r3, #0 + 8000c9c: d103 bne.n 8000ca6 + 8000c9e: 687b ldr r3, [r7, #4] + 8000ca0: 6c9b ldr r3, [r3, #72] ; 0x48 + 8000ca2: 2b00 cmp r3, #0 + 8000ca4: d007 beq.n 8000cb6 + { + hdma->Instance->CR &= ~(DMA_IT_HT); + 8000ca6: 687b ldr r3, [r7, #4] + 8000ca8: 681b ldr r3, [r3, #0] + 8000caa: 681a ldr r2, [r3, #0] + 8000cac: 687b ldr r3, [r7, #4] + 8000cae: 681b ldr r3, [r3, #0] + 8000cb0: f022 0208 bic.w r2, r2, #8 + 8000cb4: 601a str r2, [r3, #0] + } + + /* Clear all interrupt flags at correct offset within the register */ + regs->IFCR = 0x3FU << hdma->StreamIndex; + 8000cb6: 687b ldr r3, [r7, #4] + 8000cb8: 6ddb ldr r3, [r3, #92] ; 0x5c + 8000cba: 223f movs r2, #63 ; 0x3f + 8000cbc: 409a lsls r2, r3 + 8000cbe: 693b ldr r3, [r7, #16] + 8000cc0: 609a str r2, [r3, #8] + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + 8000cc2: 687b ldr r3, [r7, #4] + 8000cc4: 2200 movs r2, #0 + 8000cc6: f883 2034 strb.w r2, [r3, #52] ; 0x34 + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + 8000cca: 687b ldr r3, [r7, #4] + 8000ccc: 2201 movs r2, #1 + 8000cce: f883 2035 strb.w r2, [r3, #53] ; 0x35 + + if(hdma->XferAbortCallback != NULL) + 8000cd2: 687b ldr r3, [r7, #4] + 8000cd4: 6d1b ldr r3, [r3, #80] ; 0x50 + 8000cd6: 2b00 cmp r3, #0 + 8000cd8: d07d beq.n 8000dd6 + { + hdma->XferAbortCallback(hdma); + 8000cda: 687b ldr r3, [r7, #4] + 8000cdc: 6d1b ldr r3, [r3, #80] ; 0x50 + 8000cde: 6878 ldr r0, [r7, #4] + 8000ce0: 4798 blx r3 + } + return; + 8000ce2: e078 b.n 8000dd6 + } + + if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET) + 8000ce4: 687b ldr r3, [r7, #4] + 8000ce6: 681b ldr r3, [r3, #0] + 8000ce8: 681b ldr r3, [r3, #0] + 8000cea: f403 2380 and.w r3, r3, #262144 ; 0x40000 + 8000cee: 2b00 cmp r3, #0 + 8000cf0: d01c beq.n 8000d2c + { + /* Current memory buffer used is Memory 0 */ + if((hdma->Instance->CR & DMA_SxCR_CT) == RESET) + 8000cf2: 687b ldr r3, [r7, #4] + 8000cf4: 681b ldr r3, [r3, #0] + 8000cf6: 681b ldr r3, [r3, #0] + 8000cf8: f403 2300 and.w r3, r3, #524288 ; 0x80000 + 8000cfc: 2b00 cmp r3, #0 + 8000cfe: d108 bne.n 8000d12 + { + if(hdma->XferM1CpltCallback != NULL) + 8000d00: 687b ldr r3, [r7, #4] + 8000d02: 6c5b ldr r3, [r3, #68] ; 0x44 + 8000d04: 2b00 cmp r3, #0 + 8000d06: d030 beq.n 8000d6a + { + /* Transfer complete Callback for memory1 */ + hdma->XferM1CpltCallback(hdma); + 8000d08: 687b ldr r3, [r7, #4] + 8000d0a: 6c5b ldr r3, [r3, #68] ; 0x44 + 8000d0c: 6878 ldr r0, [r7, #4] + 8000d0e: 4798 blx r3 + 8000d10: e02b b.n 8000d6a + } + } + /* Current memory buffer used is Memory 1 */ + else + { + if(hdma->XferCpltCallback != NULL) + 8000d12: 687b ldr r3, [r7, #4] + 8000d14: 6bdb ldr r3, [r3, #60] ; 0x3c + 8000d16: 2b00 cmp r3, #0 + 8000d18: d027 beq.n 8000d6a + { + /* Transfer complete Callback for memory0 */ + hdma->XferCpltCallback(hdma); + 8000d1a: 687b ldr r3, [r7, #4] + 8000d1c: 6bdb ldr r3, [r3, #60] ; 0x3c + 8000d1e: 6878 ldr r0, [r7, #4] + 8000d20: 4798 blx r3 + 8000d22: e022 b.n 8000d6a + 8000d24: 20000008 .word 0x20000008 + 8000d28: 1b4e81b5 .word 0x1b4e81b5 + } + } + /* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */ + else + { + if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET) + 8000d2c: 687b ldr r3, [r7, #4] + 8000d2e: 681b ldr r3, [r3, #0] + 8000d30: 681b ldr r3, [r3, #0] + 8000d32: f403 7380 and.w r3, r3, #256 ; 0x100 + 8000d36: 2b00 cmp r3, #0 + 8000d38: d10f bne.n 8000d5a + { + /* Disable the transfer complete interrupt */ + hdma->Instance->CR &= ~(DMA_IT_TC); + 8000d3a: 687b ldr r3, [r7, #4] + 8000d3c: 681b ldr r3, [r3, #0] + 8000d3e: 681a ldr r2, [r3, #0] + 8000d40: 687b ldr r3, [r7, #4] + 8000d42: 681b ldr r3, [r3, #0] + 8000d44: f022 0210 bic.w r2, r2, #16 + 8000d48: 601a str r2, [r3, #0] + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + 8000d4a: 687b ldr r3, [r7, #4] + 8000d4c: 2200 movs r2, #0 + 8000d4e: f883 2034 strb.w r2, [r3, #52] ; 0x34 + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + 8000d52: 687b ldr r3, [r7, #4] + 8000d54: 2201 movs r2, #1 + 8000d56: f883 2035 strb.w r2, [r3, #53] ; 0x35 + } + + if(hdma->XferCpltCallback != NULL) + 8000d5a: 687b ldr r3, [r7, #4] + 8000d5c: 6bdb ldr r3, [r3, #60] ; 0x3c + 8000d5e: 2b00 cmp r3, #0 + 8000d60: d003 beq.n 8000d6a + { + /* Transfer complete callback */ + hdma->XferCpltCallback(hdma); + 8000d62: 687b ldr r3, [r7, #4] + 8000d64: 6bdb ldr r3, [r3, #60] ; 0x3c + 8000d66: 6878 ldr r0, [r7, #4] + 8000d68: 4798 blx r3 + } + } + } + + /* manage error case */ + if(hdma->ErrorCode != HAL_DMA_ERROR_NONE) + 8000d6a: 687b ldr r3, [r7, #4] + 8000d6c: 6d5b ldr r3, [r3, #84] ; 0x54 + 8000d6e: 2b00 cmp r3, #0 + 8000d70: d032 beq.n 8000dd8 + { + if((hdma->ErrorCode & HAL_DMA_ERROR_TE) != RESET) + 8000d72: 687b ldr r3, [r7, #4] + 8000d74: 6d5b ldr r3, [r3, #84] ; 0x54 + 8000d76: f003 0301 and.w r3, r3, #1 + 8000d7a: 2b00 cmp r3, #0 + 8000d7c: d022 beq.n 8000dc4 + { + hdma->State = HAL_DMA_STATE_ABORT; + 8000d7e: 687b ldr r3, [r7, #4] + 8000d80: 2205 movs r2, #5 + 8000d82: f883 2035 strb.w r2, [r3, #53] ; 0x35 + + /* Disable the stream */ + __HAL_DMA_DISABLE(hdma); + 8000d86: 687b ldr r3, [r7, #4] + 8000d88: 681b ldr r3, [r3, #0] + 8000d8a: 681a ldr r2, [r3, #0] + 8000d8c: 687b ldr r3, [r7, #4] + 8000d8e: 681b ldr r3, [r3, #0] + 8000d90: f022 0201 bic.w r2, r2, #1 + 8000d94: 601a str r2, [r3, #0] + + do + { + if (++count > timeout) + 8000d96: 68bb ldr r3, [r7, #8] + 8000d98: 3301 adds r3, #1 + 8000d9a: 60bb str r3, [r7, #8] + 8000d9c: 697a ldr r2, [r7, #20] + 8000d9e: 429a cmp r2, r3 + 8000da0: d307 bcc.n 8000db2 + { + break; + } + } + while((hdma->Instance->CR & DMA_SxCR_EN) != RESET); + 8000da2: 687b ldr r3, [r7, #4] + 8000da4: 681b ldr r3, [r3, #0] + 8000da6: 681b ldr r3, [r3, #0] + 8000da8: f003 0301 and.w r3, r3, #1 + 8000dac: 2b00 cmp r3, #0 + 8000dae: d1f2 bne.n 8000d96 + 8000db0: e000 b.n 8000db4 + break; + 8000db2: bf00 nop + + /* Process Unlocked */ + __HAL_UNLOCK(hdma); + 8000db4: 687b ldr r3, [r7, #4] + 8000db6: 2200 movs r2, #0 + 8000db8: f883 2034 strb.w r2, [r3, #52] ; 0x34 + + /* Change the DMA state */ + hdma->State = HAL_DMA_STATE_READY; + 8000dbc: 687b ldr r3, [r7, #4] + 8000dbe: 2201 movs r2, #1 + 8000dc0: f883 2035 strb.w r2, [r3, #53] ; 0x35 + } + + if(hdma->XferErrorCallback != NULL) + 8000dc4: 687b ldr r3, [r7, #4] + 8000dc6: 6cdb ldr r3, [r3, #76] ; 0x4c + 8000dc8: 2b00 cmp r3, #0 + 8000dca: d005 beq.n 8000dd8 + { + /* Transfer error callback */ + hdma->XferErrorCallback(hdma); + 8000dcc: 687b ldr r3, [r7, #4] + 8000dce: 6cdb ldr r3, [r3, #76] ; 0x4c + 8000dd0: 6878 ldr r0, [r7, #4] + 8000dd2: 4798 blx r3 + 8000dd4: e000 b.n 8000dd8 + return; + 8000dd6: bf00 nop + } + } +} + 8000dd8: 3718 adds r7, #24 + 8000dda: 46bd mov sp, r7 + 8000ddc: bd80 pop {r7, pc} + 8000dde: bf00 nop + +08000de0 : + * @param DstAddress The destination memory Buffer address + * @param DataLength The length of data to be transferred from source to destination + * @retval HAL status + */ +static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength) +{ + 8000de0: b480 push {r7} + 8000de2: b085 sub sp, #20 + 8000de4: af00 add r7, sp, #0 + 8000de6: 60f8 str r0, [r7, #12] + 8000de8: 60b9 str r1, [r7, #8] + 8000dea: 607a str r2, [r7, #4] + 8000dec: 603b str r3, [r7, #0] + /* Clear DBM bit */ + hdma->Instance->CR &= (uint32_t)(~DMA_SxCR_DBM); + 8000dee: 68fb ldr r3, [r7, #12] + 8000df0: 681b ldr r3, [r3, #0] + 8000df2: 681a ldr r2, [r3, #0] + 8000df4: 68fb ldr r3, [r7, #12] + 8000df6: 681b ldr r3, [r3, #0] + 8000df8: f422 2280 bic.w r2, r2, #262144 ; 0x40000 + 8000dfc: 601a str r2, [r3, #0] + + /* Configure DMA Stream data length */ + hdma->Instance->NDTR = DataLength; + 8000dfe: 68fb ldr r3, [r7, #12] + 8000e00: 681b ldr r3, [r3, #0] + 8000e02: 683a ldr r2, [r7, #0] + 8000e04: 605a str r2, [r3, #4] + + /* Memory to Peripheral */ + if((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH) + 8000e06: 68fb ldr r3, [r7, #12] + 8000e08: 689b ldr r3, [r3, #8] + 8000e0a: 2b40 cmp r3, #64 ; 0x40 + 8000e0c: d108 bne.n 8000e20 + { + /* Configure DMA Stream destination address */ + hdma->Instance->PAR = DstAddress; + 8000e0e: 68fb ldr r3, [r7, #12] + 8000e10: 681b ldr r3, [r3, #0] + 8000e12: 687a ldr r2, [r7, #4] + 8000e14: 609a str r2, [r3, #8] + + /* Configure DMA Stream source address */ + hdma->Instance->M0AR = SrcAddress; + 8000e16: 68fb ldr r3, [r7, #12] + 8000e18: 681b ldr r3, [r3, #0] + 8000e1a: 68ba ldr r2, [r7, #8] + 8000e1c: 60da str r2, [r3, #12] + hdma->Instance->PAR = SrcAddress; + + /* Configure DMA Stream destination address */ + hdma->Instance->M0AR = DstAddress; + } +} + 8000e1e: e007 b.n 8000e30 + hdma->Instance->PAR = SrcAddress; + 8000e20: 68fb ldr r3, [r7, #12] + 8000e22: 681b ldr r3, [r3, #0] + 8000e24: 68ba ldr r2, [r7, #8] + 8000e26: 609a str r2, [r3, #8] + hdma->Instance->M0AR = DstAddress; + 8000e28: 68fb ldr r3, [r7, #12] + 8000e2a: 681b ldr r3, [r3, #0] + 8000e2c: 687a ldr r2, [r7, #4] + 8000e2e: 60da str r2, [r3, #12] +} + 8000e30: bf00 nop + 8000e32: 3714 adds r7, #20 + 8000e34: 46bd mov sp, r7 + 8000e36: f85d 7b04 ldr.w r7, [sp], #4 + 8000e3a: 4770 bx lr + +08000e3c : + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Stream. + * @retval Stream base address + */ +static uint32_t DMA_CalcBaseAndBitshift(DMA_HandleTypeDef *hdma) +{ + 8000e3c: b480 push {r7} + 8000e3e: b085 sub sp, #20 + 8000e40: af00 add r7, sp, #0 + 8000e42: 6078 str r0, [r7, #4] + uint32_t stream_number = (((uint32_t)hdma->Instance & 0xFFU) - 16U) / 24U; + 8000e44: 687b ldr r3, [r7, #4] + 8000e46: 681b ldr r3, [r3, #0] + 8000e48: b2db uxtb r3, r3 + 8000e4a: 3b10 subs r3, #16 + 8000e4c: 4a13 ldr r2, [pc, #76] ; (8000e9c ) + 8000e4e: fba2 2303 umull r2, r3, r2, r3 + 8000e52: 091b lsrs r3, r3, #4 + 8000e54: 60fb str r3, [r7, #12] + + /* lookup table for necessary bitshift of flags within status registers */ + static const uint8_t flagBitshiftOffset[8U] = {0U, 6U, 16U, 22U, 0U, 6U, 16U, 22U}; + hdma->StreamIndex = flagBitshiftOffset[stream_number]; + 8000e56: 4a12 ldr r2, [pc, #72] ; (8000ea0 ) + 8000e58: 68fb ldr r3, [r7, #12] + 8000e5a: 4413 add r3, r2 + 8000e5c: 781b ldrb r3, [r3, #0] + 8000e5e: 461a mov r2, r3 + 8000e60: 687b ldr r3, [r7, #4] + 8000e62: 65da str r2, [r3, #92] ; 0x5c + + if (stream_number > 3U) + 8000e64: 68fb ldr r3, [r7, #12] + 8000e66: 2b03 cmp r3, #3 + 8000e68: d908 bls.n 8000e7c + { + /* return pointer to HISR and HIFCR */ + hdma->StreamBaseAddress = (((uint32_t)hdma->Instance & (uint32_t)(~0x3FFU)) + 4U); + 8000e6a: 687b ldr r3, [r7, #4] + 8000e6c: 681b ldr r3, [r3, #0] + 8000e6e: 461a mov r2, r3 + 8000e70: 4b0c ldr r3, [pc, #48] ; (8000ea4 ) + 8000e72: 4013 ands r3, r2 + 8000e74: 1d1a adds r2, r3, #4 + 8000e76: 687b ldr r3, [r7, #4] + 8000e78: 659a str r2, [r3, #88] ; 0x58 + 8000e7a: e006 b.n 8000e8a + } + else + { + /* return pointer to LISR and LIFCR */ + hdma->StreamBaseAddress = ((uint32_t)hdma->Instance & (uint32_t)(~0x3FFU)); + 8000e7c: 687b ldr r3, [r7, #4] + 8000e7e: 681b ldr r3, [r3, #0] + 8000e80: 461a mov r2, r3 + 8000e82: 4b08 ldr r3, [pc, #32] ; (8000ea4 ) + 8000e84: 4013 ands r3, r2 + 8000e86: 687a ldr r2, [r7, #4] + 8000e88: 6593 str r3, [r2, #88] ; 0x58 + } + + return hdma->StreamBaseAddress; + 8000e8a: 687b ldr r3, [r7, #4] + 8000e8c: 6d9b ldr r3, [r3, #88] ; 0x58 +} + 8000e8e: 4618 mov r0, r3 + 8000e90: 3714 adds r7, #20 + 8000e92: 46bd mov sp, r7 + 8000e94: f85d 7b04 ldr.w r7, [sp], #4 + 8000e98: 4770 bx lr + 8000e9a: bf00 nop + 8000e9c: aaaaaaab .word 0xaaaaaaab + 8000ea0: 08005f34 .word 0x08005f34 + 8000ea4: fffffc00 .word 0xfffffc00 + +08000ea8 : + * @param hdma pointer to a DMA_HandleTypeDef structure that contains + * the configuration information for the specified DMA Stream. + * @retval HAL status + */ +static HAL_StatusTypeDef DMA_CheckFifoParam(DMA_HandleTypeDef *hdma) +{ + 8000ea8: b480 push {r7} + 8000eaa: b085 sub sp, #20 + 8000eac: af00 add r7, sp, #0 + 8000eae: 6078 str r0, [r7, #4] + HAL_StatusTypeDef status = HAL_OK; + 8000eb0: 2300 movs r3, #0 + 8000eb2: 73fb strb r3, [r7, #15] + uint32_t tmp = hdma->Init.FIFOThreshold; + 8000eb4: 687b ldr r3, [r7, #4] + 8000eb6: 6a9b ldr r3, [r3, #40] ; 0x28 + 8000eb8: 60bb str r3, [r7, #8] + + /* Memory Data size equal to Byte */ + if(hdma->Init.MemDataAlignment == DMA_MDATAALIGN_BYTE) + 8000eba: 687b ldr r3, [r7, #4] + 8000ebc: 699b ldr r3, [r3, #24] + 8000ebe: 2b00 cmp r3, #0 + 8000ec0: d11f bne.n 8000f02 + { + switch (tmp) + 8000ec2: 68bb ldr r3, [r7, #8] + 8000ec4: 2b03 cmp r3, #3 + 8000ec6: d855 bhi.n 8000f74 + 8000ec8: a201 add r2, pc, #4 ; (adr r2, 8000ed0 ) + 8000eca: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8000ece: bf00 nop + 8000ed0: 08000ee1 .word 0x08000ee1 + 8000ed4: 08000ef3 .word 0x08000ef3 + 8000ed8: 08000ee1 .word 0x08000ee1 + 8000edc: 08000f75 .word 0x08000f75 + { + case DMA_FIFO_THRESHOLD_1QUARTERFULL: + case DMA_FIFO_THRESHOLD_3QUARTERSFULL: + if ((hdma->Init.MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1) + 8000ee0: 687b ldr r3, [r7, #4] + 8000ee2: 6adb ldr r3, [r3, #44] ; 0x2c + 8000ee4: f003 7380 and.w r3, r3, #16777216 ; 0x1000000 + 8000ee8: 2b00 cmp r3, #0 + 8000eea: d045 beq.n 8000f78 + { + status = HAL_ERROR; + 8000eec: 2301 movs r3, #1 + 8000eee: 73fb strb r3, [r7, #15] + } + break; + 8000ef0: e042 b.n 8000f78 + case DMA_FIFO_THRESHOLD_HALFFULL: + if (hdma->Init.MemBurst == DMA_MBURST_INC16) + 8000ef2: 687b ldr r3, [r7, #4] + 8000ef4: 6adb ldr r3, [r3, #44] ; 0x2c + 8000ef6: f1b3 7fc0 cmp.w r3, #25165824 ; 0x1800000 + 8000efa: d13f bne.n 8000f7c + { + status = HAL_ERROR; + 8000efc: 2301 movs r3, #1 + 8000efe: 73fb strb r3, [r7, #15] + } + break; + 8000f00: e03c b.n 8000f7c + break; + } + } + + /* Memory Data size equal to Half-Word */ + else if (hdma->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) + 8000f02: 687b ldr r3, [r7, #4] + 8000f04: 699b ldr r3, [r3, #24] + 8000f06: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 8000f0a: d121 bne.n 8000f50 + { + switch (tmp) + 8000f0c: 68bb ldr r3, [r7, #8] + 8000f0e: 2b03 cmp r3, #3 + 8000f10: d836 bhi.n 8000f80 + 8000f12: a201 add r2, pc, #4 ; (adr r2, 8000f18 ) + 8000f14: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8000f18: 08000f29 .word 0x08000f29 + 8000f1c: 08000f2f .word 0x08000f2f + 8000f20: 08000f29 .word 0x08000f29 + 8000f24: 08000f41 .word 0x08000f41 + { + case DMA_FIFO_THRESHOLD_1QUARTERFULL: + case DMA_FIFO_THRESHOLD_3QUARTERSFULL: + status = HAL_ERROR; + 8000f28: 2301 movs r3, #1 + 8000f2a: 73fb strb r3, [r7, #15] + break; + 8000f2c: e02f b.n 8000f8e + case DMA_FIFO_THRESHOLD_HALFFULL: + if ((hdma->Init.MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1) + 8000f2e: 687b ldr r3, [r7, #4] + 8000f30: 6adb ldr r3, [r3, #44] ; 0x2c + 8000f32: f003 7380 and.w r3, r3, #16777216 ; 0x1000000 + 8000f36: 2b00 cmp r3, #0 + 8000f38: d024 beq.n 8000f84 + { + status = HAL_ERROR; + 8000f3a: 2301 movs r3, #1 + 8000f3c: 73fb strb r3, [r7, #15] + } + break; + 8000f3e: e021 b.n 8000f84 + case DMA_FIFO_THRESHOLD_FULL: + if (hdma->Init.MemBurst == DMA_MBURST_INC16) + 8000f40: 687b ldr r3, [r7, #4] + 8000f42: 6adb ldr r3, [r3, #44] ; 0x2c + 8000f44: f1b3 7fc0 cmp.w r3, #25165824 ; 0x1800000 + 8000f48: d11e bne.n 8000f88 + { + status = HAL_ERROR; + 8000f4a: 2301 movs r3, #1 + 8000f4c: 73fb strb r3, [r7, #15] + } + break; + 8000f4e: e01b b.n 8000f88 + } + + /* Memory Data size equal to Word */ + else + { + switch (tmp) + 8000f50: 68bb ldr r3, [r7, #8] + 8000f52: 2b02 cmp r3, #2 + 8000f54: d902 bls.n 8000f5c + 8000f56: 2b03 cmp r3, #3 + 8000f58: d003 beq.n 8000f62 + { + status = HAL_ERROR; + } + break; + default: + break; + 8000f5a: e018 b.n 8000f8e + status = HAL_ERROR; + 8000f5c: 2301 movs r3, #1 + 8000f5e: 73fb strb r3, [r7, #15] + break; + 8000f60: e015 b.n 8000f8e + if ((hdma->Init.MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1) + 8000f62: 687b ldr r3, [r7, #4] + 8000f64: 6adb ldr r3, [r3, #44] ; 0x2c + 8000f66: f003 7380 and.w r3, r3, #16777216 ; 0x1000000 + 8000f6a: 2b00 cmp r3, #0 + 8000f6c: d00e beq.n 8000f8c + status = HAL_ERROR; + 8000f6e: 2301 movs r3, #1 + 8000f70: 73fb strb r3, [r7, #15] + break; + 8000f72: e00b b.n 8000f8c + break; + 8000f74: bf00 nop + 8000f76: e00a b.n 8000f8e + break; + 8000f78: bf00 nop + 8000f7a: e008 b.n 8000f8e + break; + 8000f7c: bf00 nop + 8000f7e: e006 b.n 8000f8e + break; + 8000f80: bf00 nop + 8000f82: e004 b.n 8000f8e + break; + 8000f84: bf00 nop + 8000f86: e002 b.n 8000f8e + break; + 8000f88: bf00 nop + 8000f8a: e000 b.n 8000f8e + break; + 8000f8c: bf00 nop + } + } + + return status; + 8000f8e: 7bfb ldrb r3, [r7, #15] +} + 8000f90: 4618 mov r0, r3 + 8000f92: 3714 adds r7, #20 + 8000f94: 46bd mov sp, r7 + 8000f96: f85d 7b04 ldr.w r7, [sp], #4 + 8000f9a: 4770 bx lr + +08000f9c : + * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains + * the configuration information for the specified GPIO peripheral. + * @retval None + */ +void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) +{ + 8000f9c: b480 push {r7} + 8000f9e: b089 sub sp, #36 ; 0x24 + 8000fa0: af00 add r7, sp, #0 + 8000fa2: 6078 str r0, [r7, #4] + 8000fa4: 6039 str r1, [r7, #0] + uint32_t position = 0x00; + 8000fa6: 2300 movs r3, #0 + 8000fa8: 61fb str r3, [r7, #28] + uint32_t ioposition = 0x00; + 8000faa: 2300 movs r3, #0 + 8000fac: 617b str r3, [r7, #20] + uint32_t iocurrent = 0x00; + 8000fae: 2300 movs r3, #0 + 8000fb0: 613b str r3, [r7, #16] + uint32_t temp = 0x00; + 8000fb2: 2300 movs r3, #0 + 8000fb4: 61bb str r3, [r7, #24] + assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); + assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); + assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); + + /* Configure the port pins */ + for(position = 0; position < GPIO_NUMBER; position++) + 8000fb6: 2300 movs r3, #0 + 8000fb8: 61fb str r3, [r7, #28] + 8000fba: e175 b.n 80012a8 + { + /* Get the IO position */ + ioposition = ((uint32_t)0x01) << position; + 8000fbc: 2201 movs r2, #1 + 8000fbe: 69fb ldr r3, [r7, #28] + 8000fc0: fa02 f303 lsl.w r3, r2, r3 + 8000fc4: 617b str r3, [r7, #20] + /* Get the current IO position */ + iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition; + 8000fc6: 683b ldr r3, [r7, #0] + 8000fc8: 681b ldr r3, [r3, #0] + 8000fca: 697a ldr r2, [r7, #20] + 8000fcc: 4013 ands r3, r2 + 8000fce: 613b str r3, [r7, #16] + + if(iocurrent == ioposition) + 8000fd0: 693a ldr r2, [r7, #16] + 8000fd2: 697b ldr r3, [r7, #20] + 8000fd4: 429a cmp r2, r3 + 8000fd6: f040 8164 bne.w 80012a2 + { + /*--------------------- GPIO Mode Configuration ------------------------*/ + /* In case of Alternate function mode selection */ + if((GPIO_Init->Mode == GPIO_MODE_AF_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)) + 8000fda: 683b ldr r3, [r7, #0] + 8000fdc: 685b ldr r3, [r3, #4] + 8000fde: 2b02 cmp r3, #2 + 8000fe0: d003 beq.n 8000fea + 8000fe2: 683b ldr r3, [r7, #0] + 8000fe4: 685b ldr r3, [r3, #4] + 8000fe6: 2b12 cmp r3, #18 + 8000fe8: d123 bne.n 8001032 + { + /* Check the Alternate function parameter */ + assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); + + /* Configure Alternate function mapped with the current IO */ + temp = GPIOx->AFR[position >> 3]; + 8000fea: 69fb ldr r3, [r7, #28] + 8000fec: 08da lsrs r2, r3, #3 + 8000fee: 687b ldr r3, [r7, #4] + 8000ff0: 3208 adds r2, #8 + 8000ff2: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8000ff6: 61bb str r3, [r7, #24] + temp &= ~((uint32_t)0xF << ((uint32_t)(position & (uint32_t)0x07) * 4)) ; + 8000ff8: 69fb ldr r3, [r7, #28] + 8000ffa: f003 0307 and.w r3, r3, #7 + 8000ffe: 009b lsls r3, r3, #2 + 8001000: 220f movs r2, #15 + 8001002: fa02 f303 lsl.w r3, r2, r3 + 8001006: 43db mvns r3, r3 + 8001008: 69ba ldr r2, [r7, #24] + 800100a: 4013 ands r3, r2 + 800100c: 61bb str r3, [r7, #24] + temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & (uint32_t)0x07) * 4)); + 800100e: 683b ldr r3, [r7, #0] + 8001010: 691a ldr r2, [r3, #16] + 8001012: 69fb ldr r3, [r7, #28] + 8001014: f003 0307 and.w r3, r3, #7 + 8001018: 009b lsls r3, r3, #2 + 800101a: fa02 f303 lsl.w r3, r2, r3 + 800101e: 69ba ldr r2, [r7, #24] + 8001020: 4313 orrs r3, r2 + 8001022: 61bb str r3, [r7, #24] + GPIOx->AFR[position >> 3] = temp; + 8001024: 69fb ldr r3, [r7, #28] + 8001026: 08da lsrs r2, r3, #3 + 8001028: 687b ldr r3, [r7, #4] + 800102a: 3208 adds r2, #8 + 800102c: 69b9 ldr r1, [r7, #24] + 800102e: f843 1022 str.w r1, [r3, r2, lsl #2] + } + + /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ + temp = GPIOx->MODER; + 8001032: 687b ldr r3, [r7, #4] + 8001034: 681b ldr r3, [r3, #0] + 8001036: 61bb str r3, [r7, #24] + temp &= ~(GPIO_MODER_MODER0 << (position * 2)); + 8001038: 69fb ldr r3, [r7, #28] + 800103a: 005b lsls r3, r3, #1 + 800103c: 2203 movs r2, #3 + 800103e: fa02 f303 lsl.w r3, r2, r3 + 8001042: 43db mvns r3, r3 + 8001044: 69ba ldr r2, [r7, #24] + 8001046: 4013 ands r3, r2 + 8001048: 61bb str r3, [r7, #24] + temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2)); + 800104a: 683b ldr r3, [r7, #0] + 800104c: 685b ldr r3, [r3, #4] + 800104e: f003 0203 and.w r2, r3, #3 + 8001052: 69fb ldr r3, [r7, #28] + 8001054: 005b lsls r3, r3, #1 + 8001056: fa02 f303 lsl.w r3, r2, r3 + 800105a: 69ba ldr r2, [r7, #24] + 800105c: 4313 orrs r3, r2 + 800105e: 61bb str r3, [r7, #24] + GPIOx->MODER = temp; + 8001060: 687b ldr r3, [r7, #4] + 8001062: 69ba ldr r2, [r7, #24] + 8001064: 601a str r2, [r3, #0] + + /* In case of Output or Alternate function mode selection */ + if((GPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_PP) || + 8001066: 683b ldr r3, [r7, #0] + 8001068: 685b ldr r3, [r3, #4] + 800106a: 2b01 cmp r3, #1 + 800106c: d00b beq.n 8001086 + 800106e: 683b ldr r3, [r7, #0] + 8001070: 685b ldr r3, [r3, #4] + 8001072: 2b02 cmp r3, #2 + 8001074: d007 beq.n 8001086 + (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)) + 8001076: 683b ldr r3, [r7, #0] + 8001078: 685b ldr r3, [r3, #4] + if((GPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_PP) || + 800107a: 2b11 cmp r3, #17 + 800107c: d003 beq.n 8001086 + (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)) + 800107e: 683b ldr r3, [r7, #0] + 8001080: 685b ldr r3, [r3, #4] + 8001082: 2b12 cmp r3, #18 + 8001084: d130 bne.n 80010e8 + { + /* Check the Speed parameter */ + assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); + /* Configure the IO Speed */ + temp = GPIOx->OSPEEDR; + 8001086: 687b ldr r3, [r7, #4] + 8001088: 689b ldr r3, [r3, #8] + 800108a: 61bb str r3, [r7, #24] + temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2)); + 800108c: 69fb ldr r3, [r7, #28] + 800108e: 005b lsls r3, r3, #1 + 8001090: 2203 movs r2, #3 + 8001092: fa02 f303 lsl.w r3, r2, r3 + 8001096: 43db mvns r3, r3 + 8001098: 69ba ldr r2, [r7, #24] + 800109a: 4013 ands r3, r2 + 800109c: 61bb str r3, [r7, #24] + temp |= (GPIO_Init->Speed << (position * 2)); + 800109e: 683b ldr r3, [r7, #0] + 80010a0: 68da ldr r2, [r3, #12] + 80010a2: 69fb ldr r3, [r7, #28] + 80010a4: 005b lsls r3, r3, #1 + 80010a6: fa02 f303 lsl.w r3, r2, r3 + 80010aa: 69ba ldr r2, [r7, #24] + 80010ac: 4313 orrs r3, r2 + 80010ae: 61bb str r3, [r7, #24] + GPIOx->OSPEEDR = temp; + 80010b0: 687b ldr r3, [r7, #4] + 80010b2: 69ba ldr r2, [r7, #24] + 80010b4: 609a str r2, [r3, #8] + + /* Configure the IO Output Type */ + temp = GPIOx->OTYPER; + 80010b6: 687b ldr r3, [r7, #4] + 80010b8: 685b ldr r3, [r3, #4] + 80010ba: 61bb str r3, [r7, #24] + temp &= ~(GPIO_OTYPER_OT_0 << position) ; + 80010bc: 2201 movs r2, #1 + 80010be: 69fb ldr r3, [r7, #28] + 80010c0: fa02 f303 lsl.w r3, r2, r3 + 80010c4: 43db mvns r3, r3 + 80010c6: 69ba ldr r2, [r7, #24] + 80010c8: 4013 ands r3, r2 + 80010ca: 61bb str r3, [r7, #24] + temp |= (((GPIO_Init->Mode & GPIO_OUTPUT_TYPE) >> 4) << position); + 80010cc: 683b ldr r3, [r7, #0] + 80010ce: 685b ldr r3, [r3, #4] + 80010d0: 091b lsrs r3, r3, #4 + 80010d2: f003 0201 and.w r2, r3, #1 + 80010d6: 69fb ldr r3, [r7, #28] + 80010d8: fa02 f303 lsl.w r3, r2, r3 + 80010dc: 69ba ldr r2, [r7, #24] + 80010de: 4313 orrs r3, r2 + 80010e0: 61bb str r3, [r7, #24] + GPIOx->OTYPER = temp; + 80010e2: 687b ldr r3, [r7, #4] + 80010e4: 69ba ldr r2, [r7, #24] + 80010e6: 605a str r2, [r3, #4] + } + + /* Activate the Pull-up or Pull down resistor for the current IO */ + temp = GPIOx->PUPDR; + 80010e8: 687b ldr r3, [r7, #4] + 80010ea: 68db ldr r3, [r3, #12] + 80010ec: 61bb str r3, [r7, #24] + temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2)); + 80010ee: 69fb ldr r3, [r7, #28] + 80010f0: 005b lsls r3, r3, #1 + 80010f2: 2203 movs r2, #3 + 80010f4: fa02 f303 lsl.w r3, r2, r3 + 80010f8: 43db mvns r3, r3 + 80010fa: 69ba ldr r2, [r7, #24] + 80010fc: 4013 ands r3, r2 + 80010fe: 61bb str r3, [r7, #24] + temp |= ((GPIO_Init->Pull) << (position * 2)); + 8001100: 683b ldr r3, [r7, #0] + 8001102: 689a ldr r2, [r3, #8] + 8001104: 69fb ldr r3, [r7, #28] + 8001106: 005b lsls r3, r3, #1 + 8001108: fa02 f303 lsl.w r3, r2, r3 + 800110c: 69ba ldr r2, [r7, #24] + 800110e: 4313 orrs r3, r2 + 8001110: 61bb str r3, [r7, #24] + GPIOx->PUPDR = temp; + 8001112: 687b ldr r3, [r7, #4] + 8001114: 69ba ldr r2, [r7, #24] + 8001116: 60da str r2, [r3, #12] + + /*--------------------- EXTI Mode Configuration ------------------------*/ + /* Configure the External Interrupt or event for the current IO */ + if((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE) + 8001118: 683b ldr r3, [r7, #0] + 800111a: 685b ldr r3, [r3, #4] + 800111c: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8001120: 2b00 cmp r3, #0 + 8001122: f000 80be beq.w 80012a2 + { + /* Enable SYSCFG Clock */ + __HAL_RCC_SYSCFG_CLK_ENABLE(); + 8001126: 4b65 ldr r3, [pc, #404] ; (80012bc ) + 8001128: 6c5b ldr r3, [r3, #68] ; 0x44 + 800112a: 4a64 ldr r2, [pc, #400] ; (80012bc ) + 800112c: f443 4380 orr.w r3, r3, #16384 ; 0x4000 + 8001130: 6453 str r3, [r2, #68] ; 0x44 + 8001132: 4b62 ldr r3, [pc, #392] ; (80012bc ) + 8001134: 6c5b ldr r3, [r3, #68] ; 0x44 + 8001136: f403 4380 and.w r3, r3, #16384 ; 0x4000 + 800113a: 60fb str r3, [r7, #12] + 800113c: 68fb ldr r3, [r7, #12] + + temp = SYSCFG->EXTICR[position >> 2]; + 800113e: 4a60 ldr r2, [pc, #384] ; (80012c0 ) + 8001140: 69fb ldr r3, [r7, #28] + 8001142: 089b lsrs r3, r3, #2 + 8001144: 3302 adds r3, #2 + 8001146: f852 3023 ldr.w r3, [r2, r3, lsl #2] + 800114a: 61bb str r3, [r7, #24] + temp &= ~(((uint32_t)0x0F) << (4 * (position & 0x03))); + 800114c: 69fb ldr r3, [r7, #28] + 800114e: f003 0303 and.w r3, r3, #3 + 8001152: 009b lsls r3, r3, #2 + 8001154: 220f movs r2, #15 + 8001156: fa02 f303 lsl.w r3, r2, r3 + 800115a: 43db mvns r3, r3 + 800115c: 69ba ldr r2, [r7, #24] + 800115e: 4013 ands r3, r2 + 8001160: 61bb str r3, [r7, #24] + temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03))); + 8001162: 687b ldr r3, [r7, #4] + 8001164: 4a57 ldr r2, [pc, #348] ; (80012c4 ) + 8001166: 4293 cmp r3, r2 + 8001168: d037 beq.n 80011da + 800116a: 687b ldr r3, [r7, #4] + 800116c: 4a56 ldr r2, [pc, #344] ; (80012c8 ) + 800116e: 4293 cmp r3, r2 + 8001170: d031 beq.n 80011d6 + 8001172: 687b ldr r3, [r7, #4] + 8001174: 4a55 ldr r2, [pc, #340] ; (80012cc ) + 8001176: 4293 cmp r3, r2 + 8001178: d02b beq.n 80011d2 + 800117a: 687b ldr r3, [r7, #4] + 800117c: 4a54 ldr r2, [pc, #336] ; (80012d0 ) + 800117e: 4293 cmp r3, r2 + 8001180: d025 beq.n 80011ce + 8001182: 687b ldr r3, [r7, #4] + 8001184: 4a53 ldr r2, [pc, #332] ; (80012d4 ) + 8001186: 4293 cmp r3, r2 + 8001188: d01f beq.n 80011ca + 800118a: 687b ldr r3, [r7, #4] + 800118c: 4a52 ldr r2, [pc, #328] ; (80012d8 ) + 800118e: 4293 cmp r3, r2 + 8001190: d019 beq.n 80011c6 + 8001192: 687b ldr r3, [r7, #4] + 8001194: 4a51 ldr r2, [pc, #324] ; (80012dc ) + 8001196: 4293 cmp r3, r2 + 8001198: d013 beq.n 80011c2 + 800119a: 687b ldr r3, [r7, #4] + 800119c: 4a50 ldr r2, [pc, #320] ; (80012e0 ) + 800119e: 4293 cmp r3, r2 + 80011a0: d00d beq.n 80011be + 80011a2: 687b ldr r3, [r7, #4] + 80011a4: 4a4f ldr r2, [pc, #316] ; (80012e4 ) + 80011a6: 4293 cmp r3, r2 + 80011a8: d007 beq.n 80011ba + 80011aa: 687b ldr r3, [r7, #4] + 80011ac: 4a4e ldr r2, [pc, #312] ; (80012e8 ) + 80011ae: 4293 cmp r3, r2 + 80011b0: d101 bne.n 80011b6 + 80011b2: 2309 movs r3, #9 + 80011b4: e012 b.n 80011dc + 80011b6: 230a movs r3, #10 + 80011b8: e010 b.n 80011dc + 80011ba: 2308 movs r3, #8 + 80011bc: e00e b.n 80011dc + 80011be: 2307 movs r3, #7 + 80011c0: e00c b.n 80011dc + 80011c2: 2306 movs r3, #6 + 80011c4: e00a b.n 80011dc + 80011c6: 2305 movs r3, #5 + 80011c8: e008 b.n 80011dc + 80011ca: 2304 movs r3, #4 + 80011cc: e006 b.n 80011dc + 80011ce: 2303 movs r3, #3 + 80011d0: e004 b.n 80011dc + 80011d2: 2302 movs r3, #2 + 80011d4: e002 b.n 80011dc + 80011d6: 2301 movs r3, #1 + 80011d8: e000 b.n 80011dc + 80011da: 2300 movs r3, #0 + 80011dc: 69fa ldr r2, [r7, #28] + 80011de: f002 0203 and.w r2, r2, #3 + 80011e2: 0092 lsls r2, r2, #2 + 80011e4: 4093 lsls r3, r2 + 80011e6: 69ba ldr r2, [r7, #24] + 80011e8: 4313 orrs r3, r2 + 80011ea: 61bb str r3, [r7, #24] + SYSCFG->EXTICR[position >> 2] = temp; + 80011ec: 4934 ldr r1, [pc, #208] ; (80012c0 ) + 80011ee: 69fb ldr r3, [r7, #28] + 80011f0: 089b lsrs r3, r3, #2 + 80011f2: 3302 adds r3, #2 + 80011f4: 69ba ldr r2, [r7, #24] + 80011f6: f841 2023 str.w r2, [r1, r3, lsl #2] + + /* Clear EXTI line configuration */ + temp = EXTI->IMR; + 80011fa: 4b3c ldr r3, [pc, #240] ; (80012ec ) + 80011fc: 681b ldr r3, [r3, #0] + 80011fe: 61bb str r3, [r7, #24] + temp &= ~((uint32_t)iocurrent); + 8001200: 693b ldr r3, [r7, #16] + 8001202: 43db mvns r3, r3 + 8001204: 69ba ldr r2, [r7, #24] + 8001206: 4013 ands r3, r2 + 8001208: 61bb str r3, [r7, #24] + if((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT) + 800120a: 683b ldr r3, [r7, #0] + 800120c: 685b ldr r3, [r3, #4] + 800120e: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8001212: 2b00 cmp r3, #0 + 8001214: d003 beq.n 800121e + { + temp |= iocurrent; + 8001216: 69ba ldr r2, [r7, #24] + 8001218: 693b ldr r3, [r7, #16] + 800121a: 4313 orrs r3, r2 + 800121c: 61bb str r3, [r7, #24] + } + EXTI->IMR = temp; + 800121e: 4a33 ldr r2, [pc, #204] ; (80012ec ) + 8001220: 69bb ldr r3, [r7, #24] + 8001222: 6013 str r3, [r2, #0] + + temp = EXTI->EMR; + 8001224: 4b31 ldr r3, [pc, #196] ; (80012ec ) + 8001226: 685b ldr r3, [r3, #4] + 8001228: 61bb str r3, [r7, #24] + temp &= ~((uint32_t)iocurrent); + 800122a: 693b ldr r3, [r7, #16] + 800122c: 43db mvns r3, r3 + 800122e: 69ba ldr r2, [r7, #24] + 8001230: 4013 ands r3, r2 + 8001232: 61bb str r3, [r7, #24] + if((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT) + 8001234: 683b ldr r3, [r7, #0] + 8001236: 685b ldr r3, [r3, #4] + 8001238: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 800123c: 2b00 cmp r3, #0 + 800123e: d003 beq.n 8001248 + { + temp |= iocurrent; + 8001240: 69ba ldr r2, [r7, #24] + 8001242: 693b ldr r3, [r7, #16] + 8001244: 4313 orrs r3, r2 + 8001246: 61bb str r3, [r7, #24] + } + EXTI->EMR = temp; + 8001248: 4a28 ldr r2, [pc, #160] ; (80012ec ) + 800124a: 69bb ldr r3, [r7, #24] + 800124c: 6053 str r3, [r2, #4] + + /* Clear Rising Falling edge configuration */ + temp = EXTI->RTSR; + 800124e: 4b27 ldr r3, [pc, #156] ; (80012ec ) + 8001250: 689b ldr r3, [r3, #8] + 8001252: 61bb str r3, [r7, #24] + temp &= ~((uint32_t)iocurrent); + 8001254: 693b ldr r3, [r7, #16] + 8001256: 43db mvns r3, r3 + 8001258: 69ba ldr r2, [r7, #24] + 800125a: 4013 ands r3, r2 + 800125c: 61bb str r3, [r7, #24] + if((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE) + 800125e: 683b ldr r3, [r7, #0] + 8001260: 685b ldr r3, [r3, #4] + 8001262: f403 1380 and.w r3, r3, #1048576 ; 0x100000 + 8001266: 2b00 cmp r3, #0 + 8001268: d003 beq.n 8001272 + { + temp |= iocurrent; + 800126a: 69ba ldr r2, [r7, #24] + 800126c: 693b ldr r3, [r7, #16] + 800126e: 4313 orrs r3, r2 + 8001270: 61bb str r3, [r7, #24] + } + EXTI->RTSR = temp; + 8001272: 4a1e ldr r2, [pc, #120] ; (80012ec ) + 8001274: 69bb ldr r3, [r7, #24] + 8001276: 6093 str r3, [r2, #8] + + temp = EXTI->FTSR; + 8001278: 4b1c ldr r3, [pc, #112] ; (80012ec ) + 800127a: 68db ldr r3, [r3, #12] + 800127c: 61bb str r3, [r7, #24] + temp &= ~((uint32_t)iocurrent); + 800127e: 693b ldr r3, [r7, #16] + 8001280: 43db mvns r3, r3 + 8001282: 69ba ldr r2, [r7, #24] + 8001284: 4013 ands r3, r2 + 8001286: 61bb str r3, [r7, #24] + if((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE) + 8001288: 683b ldr r3, [r7, #0] + 800128a: 685b ldr r3, [r3, #4] + 800128c: f403 1300 and.w r3, r3, #2097152 ; 0x200000 + 8001290: 2b00 cmp r3, #0 + 8001292: d003 beq.n 800129c + { + temp |= iocurrent; + 8001294: 69ba ldr r2, [r7, #24] + 8001296: 693b ldr r3, [r7, #16] + 8001298: 4313 orrs r3, r2 + 800129a: 61bb str r3, [r7, #24] + } + EXTI->FTSR = temp; + 800129c: 4a13 ldr r2, [pc, #76] ; (80012ec ) + 800129e: 69bb ldr r3, [r7, #24] + 80012a0: 60d3 str r3, [r2, #12] + for(position = 0; position < GPIO_NUMBER; position++) + 80012a2: 69fb ldr r3, [r7, #28] + 80012a4: 3301 adds r3, #1 + 80012a6: 61fb str r3, [r7, #28] + 80012a8: 69fb ldr r3, [r7, #28] + 80012aa: 2b0f cmp r3, #15 + 80012ac: f67f ae86 bls.w 8000fbc + } + } + } +} + 80012b0: bf00 nop + 80012b2: 3724 adds r7, #36 ; 0x24 + 80012b4: 46bd mov sp, r7 + 80012b6: f85d 7b04 ldr.w r7, [sp], #4 + 80012ba: 4770 bx lr + 80012bc: 40023800 .word 0x40023800 + 80012c0: 40013800 .word 0x40013800 + 80012c4: 40020000 .word 0x40020000 + 80012c8: 40020400 .word 0x40020400 + 80012cc: 40020800 .word 0x40020800 + 80012d0: 40020c00 .word 0x40020c00 + 80012d4: 40021000 .word 0x40021000 + 80012d8: 40021400 .word 0x40021400 + 80012dc: 40021800 .word 0x40021800 + 80012e0: 40021c00 .word 0x40021c00 + 80012e4: 40022000 .word 0x40022000 + 80012e8: 40022400 .word 0x40022400 + 80012ec: 40013c00 .word 0x40013c00 + +080012f0 : + * supported by this function. User should request a transition to HSE Off + * first and then HSE On or HSE Bypass. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) +{ + 80012f0: b580 push {r7, lr} + 80012f2: b086 sub sp, #24 + 80012f4: af00 add r7, sp, #0 + 80012f6: 6078 str r0, [r7, #4] + uint32_t tickstart; + FlagStatus pwrclkchanged = RESET; + 80012f8: 2300 movs r3, #0 + 80012fa: 75fb strb r3, [r7, #23] + + /* Check Null pointer */ + if(RCC_OscInitStruct == NULL) + 80012fc: 687b ldr r3, [r7, #4] + 80012fe: 2b00 cmp r3, #0 + 8001300: d101 bne.n 8001306 + { + return HAL_ERROR; + 8001302: 2301 movs r3, #1 + 8001304: e25e b.n 80017c4 + + /* Check the parameters */ + assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); + + /*------------------------------- HSE Configuration ------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) + 8001306: 687b ldr r3, [r7, #4] + 8001308: 681b ldr r3, [r3, #0] + 800130a: f003 0301 and.w r3, r3, #1 + 800130e: 2b00 cmp r3, #0 + 8001310: f000 8087 beq.w 8001422 + { + /* Check the parameters */ + assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); + /* When the HSE is used as system clock or clock source for PLL, It can not be disabled */ + if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSE) + 8001314: 4b96 ldr r3, [pc, #600] ; (8001570 ) + 8001316: 689b ldr r3, [r3, #8] + 8001318: f003 030c and.w r3, r3, #12 + 800131c: 2b04 cmp r3, #4 + 800131e: d00c beq.n 800133a + || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE))) + 8001320: 4b93 ldr r3, [pc, #588] ; (8001570 ) + 8001322: 689b ldr r3, [r3, #8] + 8001324: f003 030c and.w r3, r3, #12 + 8001328: 2b08 cmp r3, #8 + 800132a: d112 bne.n 8001352 + 800132c: 4b90 ldr r3, [pc, #576] ; (8001570 ) + 800132e: 685b ldr r3, [r3, #4] + 8001330: f403 0380 and.w r3, r3, #4194304 ; 0x400000 + 8001334: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 + 8001338: d10b bne.n 8001352 + { + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 800133a: 4b8d ldr r3, [pc, #564] ; (8001570 ) + 800133c: 681b ldr r3, [r3, #0] + 800133e: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8001342: 2b00 cmp r3, #0 + 8001344: d06c beq.n 8001420 + 8001346: 687b ldr r3, [r7, #4] + 8001348: 685b ldr r3, [r3, #4] + 800134a: 2b00 cmp r3, #0 + 800134c: d168 bne.n 8001420 + { + return HAL_ERROR; + 800134e: 2301 movs r3, #1 + 8001350: e238 b.n 80017c4 + } + } + else + { + /* Set the new HSE configuration ---------------------------------------*/ + __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); + 8001352: 687b ldr r3, [r7, #4] + 8001354: 685b ldr r3, [r3, #4] + 8001356: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 800135a: d106 bne.n 800136a + 800135c: 4b84 ldr r3, [pc, #528] ; (8001570 ) + 800135e: 681b ldr r3, [r3, #0] + 8001360: 4a83 ldr r2, [pc, #524] ; (8001570 ) + 8001362: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 8001366: 6013 str r3, [r2, #0] + 8001368: e02e b.n 80013c8 + 800136a: 687b ldr r3, [r7, #4] + 800136c: 685b ldr r3, [r3, #4] + 800136e: 2b00 cmp r3, #0 + 8001370: d10c bne.n 800138c + 8001372: 4b7f ldr r3, [pc, #508] ; (8001570 ) + 8001374: 681b ldr r3, [r3, #0] + 8001376: 4a7e ldr r2, [pc, #504] ; (8001570 ) + 8001378: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 800137c: 6013 str r3, [r2, #0] + 800137e: 4b7c ldr r3, [pc, #496] ; (8001570 ) + 8001380: 681b ldr r3, [r3, #0] + 8001382: 4a7b ldr r2, [pc, #492] ; (8001570 ) + 8001384: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 8001388: 6013 str r3, [r2, #0] + 800138a: e01d b.n 80013c8 + 800138c: 687b ldr r3, [r7, #4] + 800138e: 685b ldr r3, [r3, #4] + 8001390: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 + 8001394: d10c bne.n 80013b0 + 8001396: 4b76 ldr r3, [pc, #472] ; (8001570 ) + 8001398: 681b ldr r3, [r3, #0] + 800139a: 4a75 ldr r2, [pc, #468] ; (8001570 ) + 800139c: f443 2380 orr.w r3, r3, #262144 ; 0x40000 + 80013a0: 6013 str r3, [r2, #0] + 80013a2: 4b73 ldr r3, [pc, #460] ; (8001570 ) + 80013a4: 681b ldr r3, [r3, #0] + 80013a6: 4a72 ldr r2, [pc, #456] ; (8001570 ) + 80013a8: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 80013ac: 6013 str r3, [r2, #0] + 80013ae: e00b b.n 80013c8 + 80013b0: 4b6f ldr r3, [pc, #444] ; (8001570 ) + 80013b2: 681b ldr r3, [r3, #0] + 80013b4: 4a6e ldr r2, [pc, #440] ; (8001570 ) + 80013b6: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 80013ba: 6013 str r3, [r2, #0] + 80013bc: 4b6c ldr r3, [pc, #432] ; (8001570 ) + 80013be: 681b ldr r3, [r3, #0] + 80013c0: 4a6b ldr r2, [pc, #428] ; (8001570 ) + 80013c2: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 80013c6: 6013 str r3, [r2, #0] + + /* Check the HSE State */ + if(RCC_OscInitStruct->HSEState != RCC_HSE_OFF) + 80013c8: 687b ldr r3, [r7, #4] + 80013ca: 685b ldr r3, [r3, #4] + 80013cc: 2b00 cmp r3, #0 + 80013ce: d013 beq.n 80013f8 + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 80013d0: f7ff f90c bl 80005ec + 80013d4: 6138 str r0, [r7, #16] + + /* Wait till HSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + 80013d6: e008 b.n 80013ea + { + if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) + 80013d8: f7ff f908 bl 80005ec + 80013dc: 4602 mov r2, r0 + 80013de: 693b ldr r3, [r7, #16] + 80013e0: 1ad3 subs r3, r2, r3 + 80013e2: 2b64 cmp r3, #100 ; 0x64 + 80013e4: d901 bls.n 80013ea + { + return HAL_TIMEOUT; + 80013e6: 2303 movs r3, #3 + 80013e8: e1ec b.n 80017c4 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + 80013ea: 4b61 ldr r3, [pc, #388] ; (8001570 ) + 80013ec: 681b ldr r3, [r3, #0] + 80013ee: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 80013f2: 2b00 cmp r3, #0 + 80013f4: d0f0 beq.n 80013d8 + 80013f6: e014 b.n 8001422 + } + } + else + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 80013f8: f7ff f8f8 bl 80005ec + 80013fc: 6138 str r0, [r7, #16] + + /* Wait till HSE is bypassed or disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) + 80013fe: e008 b.n 8001412 + { + if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) + 8001400: f7ff f8f4 bl 80005ec + 8001404: 4602 mov r2, r0 + 8001406: 693b ldr r3, [r7, #16] + 8001408: 1ad3 subs r3, r2, r3 + 800140a: 2b64 cmp r3, #100 ; 0x64 + 800140c: d901 bls.n 8001412 + { + return HAL_TIMEOUT; + 800140e: 2303 movs r3, #3 + 8001410: e1d8 b.n 80017c4 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) + 8001412: 4b57 ldr r3, [pc, #348] ; (8001570 ) + 8001414: 681b ldr r3, [r3, #0] + 8001416: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 800141a: 2b00 cmp r3, #0 + 800141c: d1f0 bne.n 8001400 + 800141e: e000 b.n 8001422 + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) + 8001420: bf00 nop + } + } + } + } + /*----------------------------- HSI Configuration --------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) + 8001422: 687b ldr r3, [r7, #4] + 8001424: 681b ldr r3, [r3, #0] + 8001426: f003 0302 and.w r3, r3, #2 + 800142a: 2b00 cmp r3, #0 + 800142c: d069 beq.n 8001502 + /* Check the parameters */ + assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); + assert_param(IS_RCC_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); + + /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */ + if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI) + 800142e: 4b50 ldr r3, [pc, #320] ; (8001570 ) + 8001430: 689b ldr r3, [r3, #8] + 8001432: f003 030c and.w r3, r3, #12 + 8001436: 2b00 cmp r3, #0 + 8001438: d00b beq.n 8001452 + || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI))) + 800143a: 4b4d ldr r3, [pc, #308] ; (8001570 ) + 800143c: 689b ldr r3, [r3, #8] + 800143e: f003 030c and.w r3, r3, #12 + 8001442: 2b08 cmp r3, #8 + 8001444: d11c bne.n 8001480 + 8001446: 4b4a ldr r3, [pc, #296] ; (8001570 ) + 8001448: 685b ldr r3, [r3, #4] + 800144a: f403 0380 and.w r3, r3, #4194304 ; 0x400000 + 800144e: 2b00 cmp r3, #0 + 8001450: d116 bne.n 8001480 + { + /* When HSI is used as system clock it will not disabled */ + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) + 8001452: 4b47 ldr r3, [pc, #284] ; (8001570 ) + 8001454: 681b ldr r3, [r3, #0] + 8001456: f003 0302 and.w r3, r3, #2 + 800145a: 2b00 cmp r3, #0 + 800145c: d005 beq.n 800146a + 800145e: 687b ldr r3, [r7, #4] + 8001460: 68db ldr r3, [r3, #12] + 8001462: 2b01 cmp r3, #1 + 8001464: d001 beq.n 800146a + { + return HAL_ERROR; + 8001466: 2301 movs r3, #1 + 8001468: e1ac b.n 80017c4 + } + /* Otherwise, just the calibration is allowed */ + else + { + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 800146a: 4b41 ldr r3, [pc, #260] ; (8001570 ) + 800146c: 681b ldr r3, [r3, #0] + 800146e: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 8001472: 687b ldr r3, [r7, #4] + 8001474: 691b ldr r3, [r3, #16] + 8001476: 00db lsls r3, r3, #3 + 8001478: 493d ldr r1, [pc, #244] ; (8001570 ) + 800147a: 4313 orrs r3, r2 + 800147c: 600b str r3, [r1, #0] + if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) + 800147e: e040 b.n 8001502 + } + } + else + { + /* Check the HSI State */ + if((RCC_OscInitStruct->HSIState)!= RCC_HSI_OFF) + 8001480: 687b ldr r3, [r7, #4] + 8001482: 68db ldr r3, [r3, #12] + 8001484: 2b00 cmp r3, #0 + 8001486: d023 beq.n 80014d0 + { + /* Enable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_ENABLE(); + 8001488: 4b39 ldr r3, [pc, #228] ; (8001570 ) + 800148a: 681b ldr r3, [r3, #0] + 800148c: 4a38 ldr r2, [pc, #224] ; (8001570 ) + 800148e: f043 0301 orr.w r3, r3, #1 + 8001492: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8001494: f7ff f8aa bl 80005ec + 8001498: 6138 str r0, [r7, #16] + + /* Wait till HSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + 800149a: e008 b.n 80014ae + { + if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) + 800149c: f7ff f8a6 bl 80005ec + 80014a0: 4602 mov r2, r0 + 80014a2: 693b ldr r3, [r7, #16] + 80014a4: 1ad3 subs r3, r2, r3 + 80014a6: 2b02 cmp r3, #2 + 80014a8: d901 bls.n 80014ae + { + return HAL_TIMEOUT; + 80014aa: 2303 movs r3, #3 + 80014ac: e18a b.n 80017c4 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + 80014ae: 4b30 ldr r3, [pc, #192] ; (8001570 ) + 80014b0: 681b ldr r3, [r3, #0] + 80014b2: f003 0302 and.w r3, r3, #2 + 80014b6: 2b00 cmp r3, #0 + 80014b8: d0f0 beq.n 800149c + } + } + + /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ + __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); + 80014ba: 4b2d ldr r3, [pc, #180] ; (8001570 ) + 80014bc: 681b ldr r3, [r3, #0] + 80014be: f023 02f8 bic.w r2, r3, #248 ; 0xf8 + 80014c2: 687b ldr r3, [r7, #4] + 80014c4: 691b ldr r3, [r3, #16] + 80014c6: 00db lsls r3, r3, #3 + 80014c8: 4929 ldr r1, [pc, #164] ; (8001570 ) + 80014ca: 4313 orrs r3, r2 + 80014cc: 600b str r3, [r1, #0] + 80014ce: e018 b.n 8001502 + } + else + { + /* Disable the Internal High Speed oscillator (HSI). */ + __HAL_RCC_HSI_DISABLE(); + 80014d0: 4b27 ldr r3, [pc, #156] ; (8001570 ) + 80014d2: 681b ldr r3, [r3, #0] + 80014d4: 4a26 ldr r2, [pc, #152] ; (8001570 ) + 80014d6: f023 0301 bic.w r3, r3, #1 + 80014da: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 80014dc: f7ff f886 bl 80005ec + 80014e0: 6138 str r0, [r7, #16] + + /* Wait till HSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) + 80014e2: e008 b.n 80014f6 + { + if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) + 80014e4: f7ff f882 bl 80005ec + 80014e8: 4602 mov r2, r0 + 80014ea: 693b ldr r3, [r7, #16] + 80014ec: 1ad3 subs r3, r2, r3 + 80014ee: 2b02 cmp r3, #2 + 80014f0: d901 bls.n 80014f6 + { + return HAL_TIMEOUT; + 80014f2: 2303 movs r3, #3 + 80014f4: e166 b.n 80017c4 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) + 80014f6: 4b1e ldr r3, [pc, #120] ; (8001570 ) + 80014f8: 681b ldr r3, [r3, #0] + 80014fa: f003 0302 and.w r3, r3, #2 + 80014fe: 2b00 cmp r3, #0 + 8001500: d1f0 bne.n 80014e4 + } + } + } + } + /*------------------------------ LSI Configuration -------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) + 8001502: 687b ldr r3, [r7, #4] + 8001504: 681b ldr r3, [r3, #0] + 8001506: f003 0308 and.w r3, r3, #8 + 800150a: 2b00 cmp r3, #0 + 800150c: d038 beq.n 8001580 + { + /* Check the parameters */ + assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); + + /* Check the LSI State */ + if((RCC_OscInitStruct->LSIState)!= RCC_LSI_OFF) + 800150e: 687b ldr r3, [r7, #4] + 8001510: 695b ldr r3, [r3, #20] + 8001512: 2b00 cmp r3, #0 + 8001514: d019 beq.n 800154a + { + /* Enable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_ENABLE(); + 8001516: 4b16 ldr r3, [pc, #88] ; (8001570 ) + 8001518: 6f5b ldr r3, [r3, #116] ; 0x74 + 800151a: 4a15 ldr r2, [pc, #84] ; (8001570 ) + 800151c: f043 0301 orr.w r3, r3, #1 + 8001520: 6753 str r3, [r2, #116] ; 0x74 + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8001522: f7ff f863 bl 80005ec + 8001526: 6138 str r0, [r7, #16] + + /* Wait till LSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) + 8001528: e008 b.n 800153c + { + if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) + 800152a: f7ff f85f bl 80005ec + 800152e: 4602 mov r2, r0 + 8001530: 693b ldr r3, [r7, #16] + 8001532: 1ad3 subs r3, r2, r3 + 8001534: 2b02 cmp r3, #2 + 8001536: d901 bls.n 800153c + { + return HAL_TIMEOUT; + 8001538: 2303 movs r3, #3 + 800153a: e143 b.n 80017c4 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) + 800153c: 4b0c ldr r3, [pc, #48] ; (8001570 ) + 800153e: 6f5b ldr r3, [r3, #116] ; 0x74 + 8001540: f003 0302 and.w r3, r3, #2 + 8001544: 2b00 cmp r3, #0 + 8001546: d0f0 beq.n 800152a + 8001548: e01a b.n 8001580 + } + } + else + { + /* Disable the Internal Low Speed oscillator (LSI). */ + __HAL_RCC_LSI_DISABLE(); + 800154a: 4b09 ldr r3, [pc, #36] ; (8001570 ) + 800154c: 6f5b ldr r3, [r3, #116] ; 0x74 + 800154e: 4a08 ldr r2, [pc, #32] ; (8001570 ) + 8001550: f023 0301 bic.w r3, r3, #1 + 8001554: 6753 str r3, [r2, #116] ; 0x74 + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8001556: f7ff f849 bl 80005ec + 800155a: 6138 str r0, [r7, #16] + + /* Wait till LSI is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) + 800155c: e00a b.n 8001574 + { + if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) + 800155e: f7ff f845 bl 80005ec + 8001562: 4602 mov r2, r0 + 8001564: 693b ldr r3, [r7, #16] + 8001566: 1ad3 subs r3, r2, r3 + 8001568: 2b02 cmp r3, #2 + 800156a: d903 bls.n 8001574 + { + return HAL_TIMEOUT; + 800156c: 2303 movs r3, #3 + 800156e: e129 b.n 80017c4 + 8001570: 40023800 .word 0x40023800 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) + 8001574: 4b95 ldr r3, [pc, #596] ; (80017cc ) + 8001576: 6f5b ldr r3, [r3, #116] ; 0x74 + 8001578: f003 0302 and.w r3, r3, #2 + 800157c: 2b00 cmp r3, #0 + 800157e: d1ee bne.n 800155e + } + } + } + } + /*------------------------------ LSE Configuration -------------------------*/ + if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) + 8001580: 687b ldr r3, [r7, #4] + 8001582: 681b ldr r3, [r3, #0] + 8001584: f003 0304 and.w r3, r3, #4 + 8001588: 2b00 cmp r3, #0 + 800158a: f000 80a4 beq.w 80016d6 + /* Check the parameters */ + assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); + + /* Update LSE configuration in Backup Domain control register */ + /* Requires to enable write access to Backup Domain of necessary */ + if(__HAL_RCC_PWR_IS_CLK_DISABLED()) + 800158e: 4b8f ldr r3, [pc, #572] ; (80017cc ) + 8001590: 6c1b ldr r3, [r3, #64] ; 0x40 + 8001592: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8001596: 2b00 cmp r3, #0 + 8001598: d10d bne.n 80015b6 + { + /* Enable Power Clock*/ + __HAL_RCC_PWR_CLK_ENABLE(); + 800159a: 4b8c ldr r3, [pc, #560] ; (80017cc ) + 800159c: 6c1b ldr r3, [r3, #64] ; 0x40 + 800159e: 4a8b ldr r2, [pc, #556] ; (80017cc ) + 80015a0: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 80015a4: 6413 str r3, [r2, #64] ; 0x40 + 80015a6: 4b89 ldr r3, [pc, #548] ; (80017cc ) + 80015a8: 6c1b ldr r3, [r3, #64] ; 0x40 + 80015aa: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 80015ae: 60fb str r3, [r7, #12] + 80015b0: 68fb ldr r3, [r7, #12] + pwrclkchanged = SET; + 80015b2: 2301 movs r3, #1 + 80015b4: 75fb strb r3, [r7, #23] + } + + if(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + 80015b6: 4b86 ldr r3, [pc, #536] ; (80017d0 ) + 80015b8: 681b ldr r3, [r3, #0] + 80015ba: f403 7380 and.w r3, r3, #256 ; 0x100 + 80015be: 2b00 cmp r3, #0 + 80015c0: d118 bne.n 80015f4 + { + /* Enable write access to Backup domain */ + PWR->CR1 |= PWR_CR1_DBP; + 80015c2: 4b83 ldr r3, [pc, #524] ; (80017d0 ) + 80015c4: 681b ldr r3, [r3, #0] + 80015c6: 4a82 ldr r2, [pc, #520] ; (80017d0 ) + 80015c8: f443 7380 orr.w r3, r3, #256 ; 0x100 + 80015cc: 6013 str r3, [r2, #0] + + /* Wait for Backup domain Write protection disable */ + tickstart = HAL_GetTick(); + 80015ce: f7ff f80d bl 80005ec + 80015d2: 6138 str r0, [r7, #16] + + while(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + 80015d4: e008 b.n 80015e8 + { + if((HAL_GetTick() - tickstart ) > RCC_DBP_TIMEOUT_VALUE) + 80015d6: f7ff f809 bl 80005ec + 80015da: 4602 mov r2, r0 + 80015dc: 693b ldr r3, [r7, #16] + 80015de: 1ad3 subs r3, r2, r3 + 80015e0: 2b64 cmp r3, #100 ; 0x64 + 80015e2: d901 bls.n 80015e8 + { + return HAL_TIMEOUT; + 80015e4: 2303 movs r3, #3 + 80015e6: e0ed b.n 80017c4 + while(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) + 80015e8: 4b79 ldr r3, [pc, #484] ; (80017d0 ) + 80015ea: 681b ldr r3, [r3, #0] + 80015ec: f403 7380 and.w r3, r3, #256 ; 0x100 + 80015f0: 2b00 cmp r3, #0 + 80015f2: d0f0 beq.n 80015d6 + } + } + } + + /* Set the new LSE configuration -----------------------------------------*/ + __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); + 80015f4: 687b ldr r3, [r7, #4] + 80015f6: 689b ldr r3, [r3, #8] + 80015f8: 2b01 cmp r3, #1 + 80015fa: d106 bne.n 800160a + 80015fc: 4b73 ldr r3, [pc, #460] ; (80017cc ) + 80015fe: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001600: 4a72 ldr r2, [pc, #456] ; (80017cc ) + 8001602: f043 0301 orr.w r3, r3, #1 + 8001606: 6713 str r3, [r2, #112] ; 0x70 + 8001608: e02d b.n 8001666 + 800160a: 687b ldr r3, [r7, #4] + 800160c: 689b ldr r3, [r3, #8] + 800160e: 2b00 cmp r3, #0 + 8001610: d10c bne.n 800162c + 8001612: 4b6e ldr r3, [pc, #440] ; (80017cc ) + 8001614: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001616: 4a6d ldr r2, [pc, #436] ; (80017cc ) + 8001618: f023 0301 bic.w r3, r3, #1 + 800161c: 6713 str r3, [r2, #112] ; 0x70 + 800161e: 4b6b ldr r3, [pc, #428] ; (80017cc ) + 8001620: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001622: 4a6a ldr r2, [pc, #424] ; (80017cc ) + 8001624: f023 0304 bic.w r3, r3, #4 + 8001628: 6713 str r3, [r2, #112] ; 0x70 + 800162a: e01c b.n 8001666 + 800162c: 687b ldr r3, [r7, #4] + 800162e: 689b ldr r3, [r3, #8] + 8001630: 2b05 cmp r3, #5 + 8001632: d10c bne.n 800164e + 8001634: 4b65 ldr r3, [pc, #404] ; (80017cc ) + 8001636: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001638: 4a64 ldr r2, [pc, #400] ; (80017cc ) + 800163a: f043 0304 orr.w r3, r3, #4 + 800163e: 6713 str r3, [r2, #112] ; 0x70 + 8001640: 4b62 ldr r3, [pc, #392] ; (80017cc ) + 8001642: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001644: 4a61 ldr r2, [pc, #388] ; (80017cc ) + 8001646: f043 0301 orr.w r3, r3, #1 + 800164a: 6713 str r3, [r2, #112] ; 0x70 + 800164c: e00b b.n 8001666 + 800164e: 4b5f ldr r3, [pc, #380] ; (80017cc ) + 8001650: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001652: 4a5e ldr r2, [pc, #376] ; (80017cc ) + 8001654: f023 0301 bic.w r3, r3, #1 + 8001658: 6713 str r3, [r2, #112] ; 0x70 + 800165a: 4b5c ldr r3, [pc, #368] ; (80017cc ) + 800165c: 6f1b ldr r3, [r3, #112] ; 0x70 + 800165e: 4a5b ldr r2, [pc, #364] ; (80017cc ) + 8001660: f023 0304 bic.w r3, r3, #4 + 8001664: 6713 str r3, [r2, #112] ; 0x70 + /* Check the LSE State */ + if((RCC_OscInitStruct->LSEState) != RCC_LSE_OFF) + 8001666: 687b ldr r3, [r7, #4] + 8001668: 689b ldr r3, [r3, #8] + 800166a: 2b00 cmp r3, #0 + 800166c: d015 beq.n 800169a + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 800166e: f7fe ffbd bl 80005ec + 8001672: 6138 str r0, [r7, #16] + + /* Wait till LSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) + 8001674: e00a b.n 800168c + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + 8001676: f7fe ffb9 bl 80005ec + 800167a: 4602 mov r2, r0 + 800167c: 693b ldr r3, [r7, #16] + 800167e: 1ad3 subs r3, r2, r3 + 8001680: f241 3288 movw r2, #5000 ; 0x1388 + 8001684: 4293 cmp r3, r2 + 8001686: d901 bls.n 800168c + { + return HAL_TIMEOUT; + 8001688: 2303 movs r3, #3 + 800168a: e09b b.n 80017c4 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) + 800168c: 4b4f ldr r3, [pc, #316] ; (80017cc ) + 800168e: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001690: f003 0302 and.w r3, r3, #2 + 8001694: 2b00 cmp r3, #0 + 8001696: d0ee beq.n 8001676 + 8001698: e014 b.n 80016c4 + } + } + else + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 800169a: f7fe ffa7 bl 80005ec + 800169e: 6138 str r0, [r7, #16] + + /* Wait till LSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) + 80016a0: e00a b.n 80016b8 + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + 80016a2: f7fe ffa3 bl 80005ec + 80016a6: 4602 mov r2, r0 + 80016a8: 693b ldr r3, [r7, #16] + 80016aa: 1ad3 subs r3, r2, r3 + 80016ac: f241 3288 movw r2, #5000 ; 0x1388 + 80016b0: 4293 cmp r3, r2 + 80016b2: d901 bls.n 80016b8 + { + return HAL_TIMEOUT; + 80016b4: 2303 movs r3, #3 + 80016b6: e085 b.n 80017c4 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) + 80016b8: 4b44 ldr r3, [pc, #272] ; (80017cc ) + 80016ba: 6f1b ldr r3, [r3, #112] ; 0x70 + 80016bc: f003 0302 and.w r3, r3, #2 + 80016c0: 2b00 cmp r3, #0 + 80016c2: d1ee bne.n 80016a2 + } + } + } + + /* Restore clock configuration if changed */ + if(pwrclkchanged == SET) + 80016c4: 7dfb ldrb r3, [r7, #23] + 80016c6: 2b01 cmp r3, #1 + 80016c8: d105 bne.n 80016d6 + { + __HAL_RCC_PWR_CLK_DISABLE(); + 80016ca: 4b40 ldr r3, [pc, #256] ; (80017cc ) + 80016cc: 6c1b ldr r3, [r3, #64] ; 0x40 + 80016ce: 4a3f ldr r2, [pc, #252] ; (80017cc ) + 80016d0: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 + 80016d4: 6413 str r3, [r2, #64] ; 0x40 + } + } + /*-------------------------------- PLL Configuration -----------------------*/ + /* Check the parameters */ + assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); + if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) + 80016d6: 687b ldr r3, [r7, #4] + 80016d8: 699b ldr r3, [r3, #24] + 80016da: 2b00 cmp r3, #0 + 80016dc: d071 beq.n 80017c2 + { + /* Check if the PLL is used as system clock or not */ + if(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) + 80016de: 4b3b ldr r3, [pc, #236] ; (80017cc ) + 80016e0: 689b ldr r3, [r3, #8] + 80016e2: f003 030c and.w r3, r3, #12 + 80016e6: 2b08 cmp r3, #8 + 80016e8: d069 beq.n 80017be + { + if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) + 80016ea: 687b ldr r3, [r7, #4] + 80016ec: 699b ldr r3, [r3, #24] + 80016ee: 2b02 cmp r3, #2 + 80016f0: d14b bne.n 800178a +#if defined (RCC_PLLCFGR_PLLR) + assert_param(IS_RCC_PLLR_VALUE(RCC_OscInitStruct->PLL.PLLR)); +#endif + + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + 80016f2: 4b36 ldr r3, [pc, #216] ; (80017cc ) + 80016f4: 681b ldr r3, [r3, #0] + 80016f6: 4a35 ldr r2, [pc, #212] ; (80017cc ) + 80016f8: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 + 80016fc: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 80016fe: f7fe ff75 bl 80005ec + 8001702: 6138 str r0, [r7, #16] + + /* Wait till PLL is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 8001704: e008 b.n 8001718 + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + 8001706: f7fe ff71 bl 80005ec + 800170a: 4602 mov r2, r0 + 800170c: 693b ldr r3, [r7, #16] + 800170e: 1ad3 subs r3, r2, r3 + 8001710: 2b02 cmp r3, #2 + 8001712: d901 bls.n 8001718 + { + return HAL_TIMEOUT; + 8001714: 2303 movs r3, #3 + 8001716: e055 b.n 80017c4 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 8001718: 4b2c ldr r3, [pc, #176] ; (80017cc ) + 800171a: 681b ldr r3, [r3, #0] + 800171c: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8001720: 2b00 cmp r3, #0 + 8001722: d1f0 bne.n 8001706 + } + } + + /* Configure the main PLL clock source, multiplication and division factors. */ +#if defined (RCC_PLLCFGR_PLLR) + __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, + 8001724: 687b ldr r3, [r7, #4] + 8001726: 69da ldr r2, [r3, #28] + 8001728: 687b ldr r3, [r7, #4] + 800172a: 6a1b ldr r3, [r3, #32] + 800172c: 431a orrs r2, r3 + 800172e: 687b ldr r3, [r7, #4] + 8001730: 6a5b ldr r3, [r3, #36] ; 0x24 + 8001732: 019b lsls r3, r3, #6 + 8001734: 431a orrs r2, r3 + 8001736: 687b ldr r3, [r7, #4] + 8001738: 6a9b ldr r3, [r3, #40] ; 0x28 + 800173a: 085b lsrs r3, r3, #1 + 800173c: 3b01 subs r3, #1 + 800173e: 041b lsls r3, r3, #16 + 8001740: 431a orrs r2, r3 + 8001742: 687b ldr r3, [r7, #4] + 8001744: 6adb ldr r3, [r3, #44] ; 0x2c + 8001746: 061b lsls r3, r3, #24 + 8001748: 431a orrs r2, r3 + 800174a: 687b ldr r3, [r7, #4] + 800174c: 6b1b ldr r3, [r3, #48] ; 0x30 + 800174e: 071b lsls r3, r3, #28 + 8001750: 491e ldr r1, [pc, #120] ; (80017cc ) + 8001752: 4313 orrs r3, r2 + 8001754: 604b str r3, [r1, #4] + RCC_OscInitStruct->PLL.PLLP, + RCC_OscInitStruct->PLL.PLLQ); +#endif + + /* Enable the main PLL. */ + __HAL_RCC_PLL_ENABLE(); + 8001756: 4b1d ldr r3, [pc, #116] ; (80017cc ) + 8001758: 681b ldr r3, [r3, #0] + 800175a: 4a1c ldr r2, [pc, #112] ; (80017cc ) + 800175c: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000 + 8001760: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8001762: f7fe ff43 bl 80005ec + 8001766: 6138 str r0, [r7, #16] + + /* Wait till PLL is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + 8001768: e008 b.n 800177c + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + 800176a: f7fe ff3f bl 80005ec + 800176e: 4602 mov r2, r0 + 8001770: 693b ldr r3, [r7, #16] + 8001772: 1ad3 subs r3, r2, r3 + 8001774: 2b02 cmp r3, #2 + 8001776: d901 bls.n 800177c + { + return HAL_TIMEOUT; + 8001778: 2303 movs r3, #3 + 800177a: e023 b.n 80017c4 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + 800177c: 4b13 ldr r3, [pc, #76] ; (80017cc ) + 800177e: 681b ldr r3, [r3, #0] + 8001780: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 8001784: 2b00 cmp r3, #0 + 8001786: d0f0 beq.n 800176a + 8001788: e01b b.n 80017c2 + } + } + else + { + /* Disable the main PLL. */ + __HAL_RCC_PLL_DISABLE(); + 800178a: 4b10 ldr r3, [pc, #64] ; (80017cc ) + 800178c: 681b ldr r3, [r3, #0] + 800178e: 4a0f ldr r2, [pc, #60] ; (80017cc ) + 8001790: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 + 8001794: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8001796: f7fe ff29 bl 80005ec + 800179a: 6138 str r0, [r7, #16] + + /* Wait till PLL is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 800179c: e008 b.n 80017b0 + { + if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) + 800179e: f7fe ff25 bl 80005ec + 80017a2: 4602 mov r2, r0 + 80017a4: 693b ldr r3, [r7, #16] + 80017a6: 1ad3 subs r3, r2, r3 + 80017a8: 2b02 cmp r3, #2 + 80017aa: d901 bls.n 80017b0 + { + return HAL_TIMEOUT; + 80017ac: 2303 movs r3, #3 + 80017ae: e009 b.n 80017c4 + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) + 80017b0: 4b06 ldr r3, [pc, #24] ; (80017cc ) + 80017b2: 681b ldr r3, [r3, #0] + 80017b4: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 80017b8: 2b00 cmp r3, #0 + 80017ba: d1f0 bne.n 800179e + 80017bc: e001 b.n 80017c2 + } + } + } + else + { + return HAL_ERROR; + 80017be: 2301 movs r3, #1 + 80017c0: e000 b.n 80017c4 + } + } + return HAL_OK; + 80017c2: 2300 movs r3, #0 +} + 80017c4: 4618 mov r0, r3 + 80017c6: 3718 adds r7, #24 + 80017c8: 46bd mov sp, r7 + 80017ca: bd80 pop {r7, pc} + 80017cc: 40023800 .word 0x40023800 + 80017d0: 40007000 .word 0x40007000 + +080017d4 : + * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency + * (for more details refer to section above "Initialization/de-initialization functions") + * @retval None + */ +HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) +{ + 80017d4: b580 push {r7, lr} + 80017d6: b084 sub sp, #16 + 80017d8: af00 add r7, sp, #0 + 80017da: 6078 str r0, [r7, #4] + 80017dc: 6039 str r1, [r7, #0] + uint32_t tickstart = 0; + 80017de: 2300 movs r3, #0 + 80017e0: 60fb str r3, [r7, #12] + + /* Check Null pointer */ + if(RCC_ClkInitStruct == NULL) + 80017e2: 687b ldr r3, [r7, #4] + 80017e4: 2b00 cmp r3, #0 + 80017e6: d101 bne.n 80017ec + { + return HAL_ERROR; + 80017e8: 2301 movs r3, #1 + 80017ea: e0ce b.n 800198a + /* To correctly read data from FLASH memory, the number of wait states (LATENCY) + must be correctly programmed according to the frequency of the CPU clock + (HCLK) and the supply voltage of the device. */ + + /* Increasing the CPU frequency */ + if(FLatency > __HAL_FLASH_GET_LATENCY()) + 80017ec: 4b69 ldr r3, [pc, #420] ; (8001994 ) + 80017ee: 681b ldr r3, [r3, #0] + 80017f0: f003 030f and.w r3, r3, #15 + 80017f4: 683a ldr r2, [r7, #0] + 80017f6: 429a cmp r2, r3 + 80017f8: d910 bls.n 800181c + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 80017fa: 4b66 ldr r3, [pc, #408] ; (8001994 ) + 80017fc: 681b ldr r3, [r3, #0] + 80017fe: f023 020f bic.w r2, r3, #15 + 8001802: 4964 ldr r1, [pc, #400] ; (8001994 ) + 8001804: 683b ldr r3, [r7, #0] + 8001806: 4313 orrs r3, r2 + 8001808: 600b str r3, [r1, #0] + + /* Check that the new number of wait states is taken into account to access the Flash + memory by reading the FLASH_ACR register */ + if(__HAL_FLASH_GET_LATENCY() != FLatency) + 800180a: 4b62 ldr r3, [pc, #392] ; (8001994 ) + 800180c: 681b ldr r3, [r3, #0] + 800180e: f003 030f and.w r3, r3, #15 + 8001812: 683a ldr r2, [r7, #0] + 8001814: 429a cmp r2, r3 + 8001816: d001 beq.n 800181c + { + return HAL_ERROR; + 8001818: 2301 movs r3, #1 + 800181a: e0b6 b.n 800198a + } + } + + /*-------------------------- HCLK Configuration --------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) + 800181c: 687b ldr r3, [r7, #4] + 800181e: 681b ldr r3, [r3, #0] + 8001820: f003 0302 and.w r3, r3, #2 + 8001824: 2b00 cmp r3, #0 + 8001826: d020 beq.n 800186a + { + /* Set the highest APBx dividers in order to ensure that we do not go through + a non-spec phase whatever we decrease or increase HCLK. */ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + 8001828: 687b ldr r3, [r7, #4] + 800182a: 681b ldr r3, [r3, #0] + 800182c: f003 0304 and.w r3, r3, #4 + 8001830: 2b00 cmp r3, #0 + 8001832: d005 beq.n 8001840 + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); + 8001834: 4b58 ldr r3, [pc, #352] ; (8001998 ) + 8001836: 689b ldr r3, [r3, #8] + 8001838: 4a57 ldr r2, [pc, #348] ; (8001998 ) + 800183a: f443 53e0 orr.w r3, r3, #7168 ; 0x1c00 + 800183e: 6093 str r3, [r2, #8] + } + + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + 8001840: 687b ldr r3, [r7, #4] + 8001842: 681b ldr r3, [r3, #0] + 8001844: f003 0308 and.w r3, r3, #8 + 8001848: 2b00 cmp r3, #0 + 800184a: d005 beq.n 8001858 + { + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3)); + 800184c: 4b52 ldr r3, [pc, #328] ; (8001998 ) + 800184e: 689b ldr r3, [r3, #8] + 8001850: 4a51 ldr r2, [pc, #324] ; (8001998 ) + 8001852: f443 4360 orr.w r3, r3, #57344 ; 0xe000 + 8001856: 6093 str r3, [r2, #8] + } + + /* Set the new HCLK clock divider */ + assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); + 8001858: 4b4f ldr r3, [pc, #316] ; (8001998 ) + 800185a: 689b ldr r3, [r3, #8] + 800185c: f023 02f0 bic.w r2, r3, #240 ; 0xf0 + 8001860: 687b ldr r3, [r7, #4] + 8001862: 689b ldr r3, [r3, #8] + 8001864: 494c ldr r1, [pc, #304] ; (8001998 ) + 8001866: 4313 orrs r3, r2 + 8001868: 608b str r3, [r1, #8] + } + + /*------------------------- SYSCLK Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) + 800186a: 687b ldr r3, [r7, #4] + 800186c: 681b ldr r3, [r3, #0] + 800186e: f003 0301 and.w r3, r3, #1 + 8001872: 2b00 cmp r3, #0 + 8001874: d040 beq.n 80018f8 + { + assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); + + /* HSE is selected as System Clock Source */ + if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) + 8001876: 687b ldr r3, [r7, #4] + 8001878: 685b ldr r3, [r3, #4] + 800187a: 2b01 cmp r3, #1 + 800187c: d107 bne.n 800188e + { + /* Check the HSE ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) + 800187e: 4b46 ldr r3, [pc, #280] ; (8001998 ) + 8001880: 681b ldr r3, [r3, #0] + 8001882: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8001886: 2b00 cmp r3, #0 + 8001888: d115 bne.n 80018b6 + { + return HAL_ERROR; + 800188a: 2301 movs r3, #1 + 800188c: e07d b.n 800198a + } + } + /* PLL is selected as System Clock Source */ + else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) + 800188e: 687b ldr r3, [r7, #4] + 8001890: 685b ldr r3, [r3, #4] + 8001892: 2b02 cmp r3, #2 + 8001894: d107 bne.n 80018a6 + { + /* Check the PLL ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) + 8001896: 4b40 ldr r3, [pc, #256] ; (8001998 ) + 8001898: 681b ldr r3, [r3, #0] + 800189a: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 800189e: 2b00 cmp r3, #0 + 80018a0: d109 bne.n 80018b6 + { + return HAL_ERROR; + 80018a2: 2301 movs r3, #1 + 80018a4: e071 b.n 800198a + } + /* HSI is selected as System Clock Source */ + else + { + /* Check the HSI ready flag */ + if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) + 80018a6: 4b3c ldr r3, [pc, #240] ; (8001998 ) + 80018a8: 681b ldr r3, [r3, #0] + 80018aa: f003 0302 and.w r3, r3, #2 + 80018ae: 2b00 cmp r3, #0 + 80018b0: d101 bne.n 80018b6 + { + return HAL_ERROR; + 80018b2: 2301 movs r3, #1 + 80018b4: e069 b.n 800198a + } + } + + __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); + 80018b6: 4b38 ldr r3, [pc, #224] ; (8001998 ) + 80018b8: 689b ldr r3, [r3, #8] + 80018ba: f023 0203 bic.w r2, r3, #3 + 80018be: 687b ldr r3, [r7, #4] + 80018c0: 685b ldr r3, [r3, #4] + 80018c2: 4935 ldr r1, [pc, #212] ; (8001998 ) + 80018c4: 4313 orrs r3, r2 + 80018c6: 608b str r3, [r1, #8] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 80018c8: f7fe fe90 bl 80005ec + 80018cc: 60f8 str r0, [r7, #12] + + while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) + 80018ce: e00a b.n 80018e6 + { + if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) + 80018d0: f7fe fe8c bl 80005ec + 80018d4: 4602 mov r2, r0 + 80018d6: 68fb ldr r3, [r7, #12] + 80018d8: 1ad3 subs r3, r2, r3 + 80018da: f241 3288 movw r2, #5000 ; 0x1388 + 80018de: 4293 cmp r3, r2 + 80018e0: d901 bls.n 80018e6 + { + return HAL_TIMEOUT; + 80018e2: 2303 movs r3, #3 + 80018e4: e051 b.n 800198a + while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) + 80018e6: 4b2c ldr r3, [pc, #176] ; (8001998 ) + 80018e8: 689b ldr r3, [r3, #8] + 80018ea: f003 020c and.w r2, r3, #12 + 80018ee: 687b ldr r3, [r7, #4] + 80018f0: 685b ldr r3, [r3, #4] + 80018f2: 009b lsls r3, r3, #2 + 80018f4: 429a cmp r2, r3 + 80018f6: d1eb bne.n 80018d0 + } + } + } + + /* Decreasing the number of wait states because of lower CPU frequency */ + if(FLatency < __HAL_FLASH_GET_LATENCY()) + 80018f8: 4b26 ldr r3, [pc, #152] ; (8001994 ) + 80018fa: 681b ldr r3, [r3, #0] + 80018fc: f003 030f and.w r3, r3, #15 + 8001900: 683a ldr r2, [r7, #0] + 8001902: 429a cmp r2, r3 + 8001904: d210 bcs.n 8001928 + { + /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ + __HAL_FLASH_SET_LATENCY(FLatency); + 8001906: 4b23 ldr r3, [pc, #140] ; (8001994 ) + 8001908: 681b ldr r3, [r3, #0] + 800190a: f023 020f bic.w r2, r3, #15 + 800190e: 4921 ldr r1, [pc, #132] ; (8001994 ) + 8001910: 683b ldr r3, [r7, #0] + 8001912: 4313 orrs r3, r2 + 8001914: 600b str r3, [r1, #0] + + /* Check that the new number of wait states is taken into account to access the Flash + memory by reading the FLASH_ACR register */ + if(__HAL_FLASH_GET_LATENCY() != FLatency) + 8001916: 4b1f ldr r3, [pc, #124] ; (8001994 ) + 8001918: 681b ldr r3, [r3, #0] + 800191a: f003 030f and.w r3, r3, #15 + 800191e: 683a ldr r2, [r7, #0] + 8001920: 429a cmp r2, r3 + 8001922: d001 beq.n 8001928 + { + return HAL_ERROR; + 8001924: 2301 movs r3, #1 + 8001926: e030 b.n 800198a + } + } + + /*-------------------------- PCLK1 Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) + 8001928: 687b ldr r3, [r7, #4] + 800192a: 681b ldr r3, [r3, #0] + 800192c: f003 0304 and.w r3, r3, #4 + 8001930: 2b00 cmp r3, #0 + 8001932: d008 beq.n 8001946 + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); + 8001934: 4b18 ldr r3, [pc, #96] ; (8001998 ) + 8001936: 689b ldr r3, [r3, #8] + 8001938: f423 52e0 bic.w r2, r3, #7168 ; 0x1c00 + 800193c: 687b ldr r3, [r7, #4] + 800193e: 68db ldr r3, [r3, #12] + 8001940: 4915 ldr r1, [pc, #84] ; (8001998 ) + 8001942: 4313 orrs r3, r2 + 8001944: 608b str r3, [r1, #8] + } + + /*-------------------------- PCLK2 Configuration ---------------------------*/ + if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) + 8001946: 687b ldr r3, [r7, #4] + 8001948: 681b ldr r3, [r3, #0] + 800194a: f003 0308 and.w r3, r3, #8 + 800194e: 2b00 cmp r3, #0 + 8001950: d009 beq.n 8001966 + { + assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); + MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3)); + 8001952: 4b11 ldr r3, [pc, #68] ; (8001998 ) + 8001954: 689b ldr r3, [r3, #8] + 8001956: f423 4260 bic.w r2, r3, #57344 ; 0xe000 + 800195a: 687b ldr r3, [r7, #4] + 800195c: 691b ldr r3, [r3, #16] + 800195e: 00db lsls r3, r3, #3 + 8001960: 490d ldr r1, [pc, #52] ; (8001998 ) + 8001962: 4313 orrs r3, r2 + 8001964: 608b str r3, [r1, #8] + } + + /* Update the SystemCoreClock global variable */ + SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE)>> RCC_CFGR_HPRE_Pos]; + 8001966: f000 f81d bl 80019a4 + 800196a: 4601 mov r1, r0 + 800196c: 4b0a ldr r3, [pc, #40] ; (8001998 ) + 800196e: 689b ldr r3, [r3, #8] + 8001970: 091b lsrs r3, r3, #4 + 8001972: f003 030f and.w r3, r3, #15 + 8001976: 4a09 ldr r2, [pc, #36] ; (800199c ) + 8001978: 5cd3 ldrb r3, [r2, r3] + 800197a: fa21 f303 lsr.w r3, r1, r3 + 800197e: 4a08 ldr r2, [pc, #32] ; (80019a0 ) + 8001980: 6013 str r3, [r2, #0] + + /* Configure the source of time base considering new system clocks settings*/ + HAL_InitTick (TICK_INT_PRIORITY); + 8001982: 2000 movs r0, #0 + 8001984: f7fe fdee bl 8000564 + + return HAL_OK; + 8001988: 2300 movs r3, #0 +} + 800198a: 4618 mov r0, r3 + 800198c: 3710 adds r7, #16 + 800198e: 46bd mov sp, r7 + 8001990: bd80 pop {r7, pc} + 8001992: bf00 nop + 8001994: 40023c00 .word 0x40023c00 + 8001998: 40023800 .word 0x40023800 + 800199c: 08006010 .word 0x08006010 + 80019a0: 20000008 .word 0x20000008 + +080019a4 : + * + * + * @retval SYSCLK frequency + */ +uint32_t HAL_RCC_GetSysClockFreq(void) +{ + 80019a4: b5f0 push {r4, r5, r6, r7, lr} + 80019a6: b085 sub sp, #20 + 80019a8: af00 add r7, sp, #0 + uint32_t pllm = 0, pllvco = 0, pllp = 0; + 80019aa: 2300 movs r3, #0 + 80019ac: 607b str r3, [r7, #4] + 80019ae: 2300 movs r3, #0 + 80019b0: 60fb str r3, [r7, #12] + 80019b2: 2300 movs r3, #0 + 80019b4: 603b str r3, [r7, #0] + uint32_t sysclockfreq = 0; + 80019b6: 2300 movs r3, #0 + 80019b8: 60bb str r3, [r7, #8] + + /* Get SYSCLK source -------------------------------------------------------*/ + switch (RCC->CFGR & RCC_CFGR_SWS) + 80019ba: 4b50 ldr r3, [pc, #320] ; (8001afc ) + 80019bc: 689b ldr r3, [r3, #8] + 80019be: f003 030c and.w r3, r3, #12 + 80019c2: 2b04 cmp r3, #4 + 80019c4: d007 beq.n 80019d6 + 80019c6: 2b08 cmp r3, #8 + 80019c8: d008 beq.n 80019dc + 80019ca: 2b00 cmp r3, #0 + 80019cc: f040 808d bne.w 8001aea + { + case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ + { + sysclockfreq = HSI_VALUE; + 80019d0: 4b4b ldr r3, [pc, #300] ; (8001b00 ) + 80019d2: 60bb str r3, [r7, #8] + break; + 80019d4: e08c b.n 8001af0 + } + case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock source */ + { + sysclockfreq = HSE_VALUE; + 80019d6: 4b4b ldr r3, [pc, #300] ; (8001b04 ) + 80019d8: 60bb str r3, [r7, #8] + break; + 80019da: e089 b.n 8001af0 + } + case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock source */ + { + /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN + SYSCLK = PLL_VCO / PLLP */ + pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; + 80019dc: 4b47 ldr r3, [pc, #284] ; (8001afc ) + 80019de: 685b ldr r3, [r3, #4] + 80019e0: f003 033f and.w r3, r3, #63 ; 0x3f + 80019e4: 607b str r3, [r7, #4] + if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLCFGR_PLLSRC_HSI) + 80019e6: 4b45 ldr r3, [pc, #276] ; (8001afc ) + 80019e8: 685b ldr r3, [r3, #4] + 80019ea: f403 0380 and.w r3, r3, #4194304 ; 0x400000 + 80019ee: 2b00 cmp r3, #0 + 80019f0: d023 beq.n 8001a3a + { + /* HSE used as PLL clock source */ + pllvco = (uint32_t) ((((uint64_t) HSE_VALUE * ((uint64_t) ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); + 80019f2: 4b42 ldr r3, [pc, #264] ; (8001afc ) + 80019f4: 685b ldr r3, [r3, #4] + 80019f6: 099b lsrs r3, r3, #6 + 80019f8: f04f 0400 mov.w r4, #0 + 80019fc: f240 11ff movw r1, #511 ; 0x1ff + 8001a00: f04f 0200 mov.w r2, #0 + 8001a04: ea03 0501 and.w r5, r3, r1 + 8001a08: ea04 0602 and.w r6, r4, r2 + 8001a0c: 4a3d ldr r2, [pc, #244] ; (8001b04 ) + 8001a0e: fb02 f106 mul.w r1, r2, r6 + 8001a12: 2200 movs r2, #0 + 8001a14: fb02 f205 mul.w r2, r2, r5 + 8001a18: 440a add r2, r1 + 8001a1a: 493a ldr r1, [pc, #232] ; (8001b04 ) + 8001a1c: fba5 0101 umull r0, r1, r5, r1 + 8001a20: 1853 adds r3, r2, r1 + 8001a22: 4619 mov r1, r3 + 8001a24: 687b ldr r3, [r7, #4] + 8001a26: f04f 0400 mov.w r4, #0 + 8001a2a: 461a mov r2, r3 + 8001a2c: 4623 mov r3, r4 + 8001a2e: f7fe fc0b bl 8000248 <__aeabi_uldivmod> + 8001a32: 4603 mov r3, r0 + 8001a34: 460c mov r4, r1 + 8001a36: 60fb str r3, [r7, #12] + 8001a38: e049 b.n 8001ace + } + else + { + /* HSI used as PLL clock source */ + pllvco = (uint32_t) ((((uint64_t) HSI_VALUE * ((uint64_t) ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); + 8001a3a: 4b30 ldr r3, [pc, #192] ; (8001afc ) + 8001a3c: 685b ldr r3, [r3, #4] + 8001a3e: 099b lsrs r3, r3, #6 + 8001a40: f04f 0400 mov.w r4, #0 + 8001a44: f240 11ff movw r1, #511 ; 0x1ff + 8001a48: f04f 0200 mov.w r2, #0 + 8001a4c: ea03 0501 and.w r5, r3, r1 + 8001a50: ea04 0602 and.w r6, r4, r2 + 8001a54: 4629 mov r1, r5 + 8001a56: 4632 mov r2, r6 + 8001a58: f04f 0300 mov.w r3, #0 + 8001a5c: f04f 0400 mov.w r4, #0 + 8001a60: 0154 lsls r4, r2, #5 + 8001a62: ea44 64d1 orr.w r4, r4, r1, lsr #27 + 8001a66: 014b lsls r3, r1, #5 + 8001a68: 4619 mov r1, r3 + 8001a6a: 4622 mov r2, r4 + 8001a6c: 1b49 subs r1, r1, r5 + 8001a6e: eb62 0206 sbc.w r2, r2, r6 + 8001a72: f04f 0300 mov.w r3, #0 + 8001a76: f04f 0400 mov.w r4, #0 + 8001a7a: 0194 lsls r4, r2, #6 + 8001a7c: ea44 6491 orr.w r4, r4, r1, lsr #26 + 8001a80: 018b lsls r3, r1, #6 + 8001a82: 1a5b subs r3, r3, r1 + 8001a84: eb64 0402 sbc.w r4, r4, r2 + 8001a88: f04f 0100 mov.w r1, #0 + 8001a8c: f04f 0200 mov.w r2, #0 + 8001a90: 00e2 lsls r2, r4, #3 + 8001a92: ea42 7253 orr.w r2, r2, r3, lsr #29 + 8001a96: 00d9 lsls r1, r3, #3 + 8001a98: 460b mov r3, r1 + 8001a9a: 4614 mov r4, r2 + 8001a9c: 195b adds r3, r3, r5 + 8001a9e: eb44 0406 adc.w r4, r4, r6 + 8001aa2: f04f 0100 mov.w r1, #0 + 8001aa6: f04f 0200 mov.w r2, #0 + 8001aaa: 02a2 lsls r2, r4, #10 + 8001aac: ea42 5293 orr.w r2, r2, r3, lsr #22 + 8001ab0: 0299 lsls r1, r3, #10 + 8001ab2: 460b mov r3, r1 + 8001ab4: 4614 mov r4, r2 + 8001ab6: 4618 mov r0, r3 + 8001ab8: 4621 mov r1, r4 + 8001aba: 687b ldr r3, [r7, #4] + 8001abc: f04f 0400 mov.w r4, #0 + 8001ac0: 461a mov r2, r3 + 8001ac2: 4623 mov r3, r4 + 8001ac4: f7fe fbc0 bl 8000248 <__aeabi_uldivmod> + 8001ac8: 4603 mov r3, r0 + 8001aca: 460c mov r4, r1 + 8001acc: 60fb str r3, [r7, #12] + } + pllp = ((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >> RCC_PLLCFGR_PLLP_Pos) + 1 ) *2); + 8001ace: 4b0b ldr r3, [pc, #44] ; (8001afc ) + 8001ad0: 685b ldr r3, [r3, #4] + 8001ad2: 0c1b lsrs r3, r3, #16 + 8001ad4: f003 0303 and.w r3, r3, #3 + 8001ad8: 3301 adds r3, #1 + 8001ada: 005b lsls r3, r3, #1 + 8001adc: 603b str r3, [r7, #0] + + sysclockfreq = pllvco/pllp; + 8001ade: 68fa ldr r2, [r7, #12] + 8001ae0: 683b ldr r3, [r7, #0] + 8001ae2: fbb2 f3f3 udiv r3, r2, r3 + 8001ae6: 60bb str r3, [r7, #8] + break; + 8001ae8: e002 b.n 8001af0 + } + default: + { + sysclockfreq = HSI_VALUE; + 8001aea: 4b05 ldr r3, [pc, #20] ; (8001b00 ) + 8001aec: 60bb str r3, [r7, #8] + break; + 8001aee: bf00 nop + } + } + return sysclockfreq; + 8001af0: 68bb ldr r3, [r7, #8] +} + 8001af2: 4618 mov r0, r3 + 8001af4: 3714 adds r7, #20 + 8001af6: 46bd mov sp, r7 + 8001af8: bdf0 pop {r4, r5, r6, r7, pc} + 8001afa: bf00 nop + 8001afc: 40023800 .word 0x40023800 + 8001b00: 00f42400 .word 0x00f42400 + 8001b04: 017d7840 .word 0x017d7840 + +08001b08 : + * right HCLK value. Otherwise, any configuration based on this function will be incorrect. + * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency. + * @retval HCLK frequency + */ +uint32_t HAL_RCC_GetHCLKFreq(void) +{ + 8001b08: b480 push {r7} + 8001b0a: af00 add r7, sp, #0 + return SystemCoreClock; + 8001b0c: 4b03 ldr r3, [pc, #12] ; (8001b1c ) + 8001b0e: 681b ldr r3, [r3, #0] +} + 8001b10: 4618 mov r0, r3 + 8001b12: 46bd mov sp, r7 + 8001b14: f85d 7b04 ldr.w r7, [sp], #4 + 8001b18: 4770 bx lr + 8001b1a: bf00 nop + 8001b1c: 20000008 .word 0x20000008 + +08001b20 : + * @note Each time PCLK1 changes, this function must be called to update the + * right PCLK1 value. Otherwise, any configuration based on this function will be incorrect. + * @retval PCLK1 frequency + */ +uint32_t HAL_RCC_GetPCLK1Freq(void) +{ + 8001b20: b580 push {r7, lr} + 8001b22: af00 add r7, sp, #0 + /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ + return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE1)>> RCC_CFGR_PPRE1_Pos]); + 8001b24: f7ff fff0 bl 8001b08 + 8001b28: 4601 mov r1, r0 + 8001b2a: 4b05 ldr r3, [pc, #20] ; (8001b40 ) + 8001b2c: 689b ldr r3, [r3, #8] + 8001b2e: 0a9b lsrs r3, r3, #10 + 8001b30: f003 0307 and.w r3, r3, #7 + 8001b34: 4a03 ldr r2, [pc, #12] ; (8001b44 ) + 8001b36: 5cd3 ldrb r3, [r2, r3] + 8001b38: fa21 f303 lsr.w r3, r1, r3 +} + 8001b3c: 4618 mov r0, r3 + 8001b3e: bd80 pop {r7, pc} + 8001b40: 40023800 .word 0x40023800 + 8001b44: 08006020 .word 0x08006020 + +08001b48 : + * @note Each time PCLK2 changes, this function must be called to update the + * right PCLK2 value. Otherwise, any configuration based on this function will be incorrect. + * @retval PCLK2 frequency + */ +uint32_t HAL_RCC_GetPCLK2Freq(void) +{ + 8001b48: b580 push {r7, lr} + 8001b4a: af00 add r7, sp, #0 + /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/ + return (HAL_RCC_GetHCLKFreq()>> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE2)>> RCC_CFGR_PPRE2_Pos]); + 8001b4c: f7ff ffdc bl 8001b08 + 8001b50: 4601 mov r1, r0 + 8001b52: 4b05 ldr r3, [pc, #20] ; (8001b68 ) + 8001b54: 689b ldr r3, [r3, #8] + 8001b56: 0b5b lsrs r3, r3, #13 + 8001b58: f003 0307 and.w r3, r3, #7 + 8001b5c: 4a03 ldr r2, [pc, #12] ; (8001b6c ) + 8001b5e: 5cd3 ldrb r3, [r2, r3] + 8001b60: fa21 f303 lsr.w r3, r1, r3 +} + 8001b64: 4618 mov r0, r3 + 8001b66: bd80 pop {r7, pc} + 8001b68: 40023800 .word 0x40023800 + 8001b6c: 08006020 .word 0x08006020 + +08001b70 : + * the backup registers) are set to their reset values. + * + * @retval HAL status + */ +HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) +{ + 8001b70: b580 push {r7, lr} + 8001b72: b088 sub sp, #32 + 8001b74: af00 add r7, sp, #0 + 8001b76: 6078 str r0, [r7, #4] + uint32_t tickstart = 0; + 8001b78: 2300 movs r3, #0 + 8001b7a: 617b str r3, [r7, #20] + uint32_t tmpreg0 = 0; + 8001b7c: 2300 movs r3, #0 + 8001b7e: 613b str r3, [r7, #16] + uint32_t tmpreg1 = 0; + 8001b80: 2300 movs r3, #0 + 8001b82: 60fb str r3, [r7, #12] + uint32_t plli2sused = 0; + 8001b84: 2300 movs r3, #0 + 8001b86: 61fb str r3, [r7, #28] + uint32_t pllsaiused = 0; + 8001b88: 2300 movs r3, #0 + 8001b8a: 61bb str r3, [r7, #24] + + /* Check the parameters */ + assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection)); + + /*----------------------------------- I2S configuration ----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == (RCC_PERIPHCLK_I2S)) + 8001b8c: 687b ldr r3, [r7, #4] + 8001b8e: 681b ldr r3, [r3, #0] + 8001b90: f003 0301 and.w r3, r3, #1 + 8001b94: 2b00 cmp r3, #0 + 8001b96: d012 beq.n 8001bbe + { + /* Check the parameters */ + assert_param(IS_RCC_I2SCLKSOURCE(PeriphClkInit->I2sClockSelection)); + + /* Configure I2S Clock source */ + __HAL_RCC_I2S_CONFIG(PeriphClkInit->I2sClockSelection); + 8001b98: 4b69 ldr r3, [pc, #420] ; (8001d40 ) + 8001b9a: 689b ldr r3, [r3, #8] + 8001b9c: 4a68 ldr r2, [pc, #416] ; (8001d40 ) + 8001b9e: f423 0300 bic.w r3, r3, #8388608 ; 0x800000 + 8001ba2: 6093 str r3, [r2, #8] + 8001ba4: 4b66 ldr r3, [pc, #408] ; (8001d40 ) + 8001ba6: 689a ldr r2, [r3, #8] + 8001ba8: 687b ldr r3, [r7, #4] + 8001baa: 6b5b ldr r3, [r3, #52] ; 0x34 + 8001bac: 4964 ldr r1, [pc, #400] ; (8001d40 ) + 8001bae: 4313 orrs r3, r2 + 8001bb0: 608b str r3, [r1, #8] + + /* Enable the PLLI2S when it's used as clock source for I2S */ + if(PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S) + 8001bb2: 687b ldr r3, [r7, #4] + 8001bb4: 6b5b ldr r3, [r3, #52] ; 0x34 + 8001bb6: 2b00 cmp r3, #0 + 8001bb8: d101 bne.n 8001bbe + { + plli2sused = 1; + 8001bba: 2301 movs r3, #1 + 8001bbc: 61fb str r3, [r7, #28] + } + } + + /*------------------------------------ SAI1 configuration --------------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == (RCC_PERIPHCLK_SAI1)) + 8001bbe: 687b ldr r3, [r7, #4] + 8001bc0: 681b ldr r3, [r3, #0] + 8001bc2: f403 2300 and.w r3, r3, #524288 ; 0x80000 + 8001bc6: 2b00 cmp r3, #0 + 8001bc8: d017 beq.n 8001bfa + { + /* Check the parameters */ + assert_param(IS_RCC_SAI1CLKSOURCE(PeriphClkInit->Sai1ClockSelection)); + + /* Configure SAI1 Clock source */ + __HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection); + 8001bca: 4b5d ldr r3, [pc, #372] ; (8001d40 ) + 8001bcc: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c + 8001bd0: f423 1240 bic.w r2, r3, #3145728 ; 0x300000 + 8001bd4: 687b ldr r3, [r7, #4] + 8001bd6: 6bdb ldr r3, [r3, #60] ; 0x3c + 8001bd8: 4959 ldr r1, [pc, #356] ; (8001d40 ) + 8001bda: 4313 orrs r3, r2 + 8001bdc: f8c1 308c str.w r3, [r1, #140] ; 0x8c + /* Enable the PLLI2S when it's used as clock source for SAI */ + if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S) + 8001be0: 687b ldr r3, [r7, #4] + 8001be2: 6bdb ldr r3, [r3, #60] ; 0x3c + 8001be4: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 + 8001be8: d101 bne.n 8001bee + { + plli2sused = 1; + 8001bea: 2301 movs r3, #1 + 8001bec: 61fb str r3, [r7, #28] + } + /* Enable the PLLSAI when it's used as clock source for SAI */ + if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI) + 8001bee: 687b ldr r3, [r7, #4] + 8001bf0: 6bdb ldr r3, [r3, #60] ; 0x3c + 8001bf2: 2b00 cmp r3, #0 + 8001bf4: d101 bne.n 8001bfa + { + pllsaiused = 1; + 8001bf6: 2301 movs r3, #1 + 8001bf8: 61bb str r3, [r7, #24] + } + } + + /*------------------------------------ SAI2 configuration --------------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == (RCC_PERIPHCLK_SAI2)) + 8001bfa: 687b ldr r3, [r7, #4] + 8001bfc: 681b ldr r3, [r3, #0] + 8001bfe: f403 1380 and.w r3, r3, #1048576 ; 0x100000 + 8001c02: 2b00 cmp r3, #0 + 8001c04: d017 beq.n 8001c36 + { + /* Check the parameters */ + assert_param(IS_RCC_SAI2CLKSOURCE(PeriphClkInit->Sai2ClockSelection)); + + /* Configure SAI2 Clock source */ + __HAL_RCC_SAI2_CONFIG(PeriphClkInit->Sai2ClockSelection); + 8001c06: 4b4e ldr r3, [pc, #312] ; (8001d40 ) + 8001c08: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c + 8001c0c: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000 + 8001c10: 687b ldr r3, [r7, #4] + 8001c12: 6c1b ldr r3, [r3, #64] ; 0x40 + 8001c14: 494a ldr r1, [pc, #296] ; (8001d40 ) + 8001c16: 4313 orrs r3, r2 + 8001c18: f8c1 308c str.w r3, [r1, #140] ; 0x8c + + /* Enable the PLLI2S when it's used as clock source for SAI */ + if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S) + 8001c1c: 687b ldr r3, [r7, #4] + 8001c1e: 6c1b ldr r3, [r3, #64] ; 0x40 + 8001c20: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 + 8001c24: d101 bne.n 8001c2a + { + plli2sused = 1; + 8001c26: 2301 movs r3, #1 + 8001c28: 61fb str r3, [r7, #28] + } + /* Enable the PLLSAI when it's used as clock source for SAI */ + if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI) + 8001c2a: 687b ldr r3, [r7, #4] + 8001c2c: 6c1b ldr r3, [r3, #64] ; 0x40 + 8001c2e: 2b00 cmp r3, #0 + 8001c30: d101 bne.n 8001c36 + { + pllsaiused = 1; + 8001c32: 2301 movs r3, #1 + 8001c34: 61bb str r3, [r7, #24] + } + } + + /*-------------------------------------- SPDIF-RX Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX) + 8001c36: 687b ldr r3, [r7, #4] + 8001c38: 681b ldr r3, [r3, #0] + 8001c3a: f003 7380 and.w r3, r3, #16777216 ; 0x1000000 + 8001c3e: 2b00 cmp r3, #0 + 8001c40: d001 beq.n 8001c46 + { + plli2sused = 1; + 8001c42: 2301 movs r3, #1 + 8001c44: 61fb str r3, [r7, #28] + } + + /*------------------------------------ RTC configuration --------------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == (RCC_PERIPHCLK_RTC)) + 8001c46: 687b ldr r3, [r7, #4] + 8001c48: 681b ldr r3, [r3, #0] + 8001c4a: f003 0320 and.w r3, r3, #32 + 8001c4e: 2b00 cmp r3, #0 + 8001c50: f000 808b beq.w 8001d6a + { + /* Check for RTC Parameters used to output RTCCLK */ + assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); + + /* Enable Power Clock*/ + __HAL_RCC_PWR_CLK_ENABLE(); + 8001c54: 4b3a ldr r3, [pc, #232] ; (8001d40 ) + 8001c56: 6c1b ldr r3, [r3, #64] ; 0x40 + 8001c58: 4a39 ldr r2, [pc, #228] ; (8001d40 ) + 8001c5a: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8001c5e: 6413 str r3, [r2, #64] ; 0x40 + 8001c60: 4b37 ldr r3, [pc, #220] ; (8001d40 ) + 8001c62: 6c1b ldr r3, [r3, #64] ; 0x40 + 8001c64: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8001c68: 60bb str r3, [r7, #8] + 8001c6a: 68bb ldr r3, [r7, #8] + + /* Enable write access to Backup domain */ + PWR->CR1 |= PWR_CR1_DBP; + 8001c6c: 4b35 ldr r3, [pc, #212] ; (8001d44 ) + 8001c6e: 681b ldr r3, [r3, #0] + 8001c70: 4a34 ldr r2, [pc, #208] ; (8001d44 ) + 8001c72: f443 7380 orr.w r3, r3, #256 ; 0x100 + 8001c76: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8001c78: f7fe fcb8 bl 80005ec + 8001c7c: 6178 str r0, [r7, #20] + + /* Wait for Backup domain Write protection disable */ + while((PWR->CR1 & PWR_CR1_DBP) == RESET) + 8001c7e: e008 b.n 8001c92 + { + if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) + 8001c80: f7fe fcb4 bl 80005ec + 8001c84: 4602 mov r2, r0 + 8001c86: 697b ldr r3, [r7, #20] + 8001c88: 1ad3 subs r3, r2, r3 + 8001c8a: 2b64 cmp r3, #100 ; 0x64 + 8001c8c: d901 bls.n 8001c92 + { + return HAL_TIMEOUT; + 8001c8e: 2303 movs r3, #3 + 8001c90: e38d b.n 80023ae + while((PWR->CR1 & PWR_CR1_DBP) == RESET) + 8001c92: 4b2c ldr r3, [pc, #176] ; (8001d44 ) + 8001c94: 681b ldr r3, [r3, #0] + 8001c96: f403 7380 and.w r3, r3, #256 ; 0x100 + 8001c9a: 2b00 cmp r3, #0 + 8001c9c: d0f0 beq.n 8001c80 + } + } + + /* Reset the Backup domain only if the RTC Clock source selection is modified */ + tmpreg0 = (RCC->BDCR & RCC_BDCR_RTCSEL); + 8001c9e: 4b28 ldr r3, [pc, #160] ; (8001d40 ) + 8001ca0: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001ca2: f403 7340 and.w r3, r3, #768 ; 0x300 + 8001ca6: 613b str r3, [r7, #16] + + if((tmpreg0 != 0x00000000U) && (tmpreg0 != (PeriphClkInit->RTCClockSelection & RCC_BDCR_RTCSEL))) + 8001ca8: 693b ldr r3, [r7, #16] + 8001caa: 2b00 cmp r3, #0 + 8001cac: d035 beq.n 8001d1a + 8001cae: 687b ldr r3, [r7, #4] + 8001cb0: 6b1b ldr r3, [r3, #48] ; 0x30 + 8001cb2: f403 7340 and.w r3, r3, #768 ; 0x300 + 8001cb6: 693a ldr r2, [r7, #16] + 8001cb8: 429a cmp r2, r3 + 8001cba: d02e beq.n 8001d1a + { + /* Store the content of BDCR register before the reset of Backup Domain */ + tmpreg0 = (RCC->BDCR & ~(RCC_BDCR_RTCSEL)); + 8001cbc: 4b20 ldr r3, [pc, #128] ; (8001d40 ) + 8001cbe: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001cc0: f423 7340 bic.w r3, r3, #768 ; 0x300 + 8001cc4: 613b str r3, [r7, #16] + + /* RTC Clock selection can be changed only if the Backup Domain is reset */ + __HAL_RCC_BACKUPRESET_FORCE(); + 8001cc6: 4b1e ldr r3, [pc, #120] ; (8001d40 ) + 8001cc8: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001cca: 4a1d ldr r2, [pc, #116] ; (8001d40 ) + 8001ccc: f443 3380 orr.w r3, r3, #65536 ; 0x10000 + 8001cd0: 6713 str r3, [r2, #112] ; 0x70 + __HAL_RCC_BACKUPRESET_RELEASE(); + 8001cd2: 4b1b ldr r3, [pc, #108] ; (8001d40 ) + 8001cd4: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001cd6: 4a1a ldr r2, [pc, #104] ; (8001d40 ) + 8001cd8: f423 3380 bic.w r3, r3, #65536 ; 0x10000 + 8001cdc: 6713 str r3, [r2, #112] ; 0x70 + + /* Restore the Content of BDCR register */ + RCC->BDCR = tmpreg0; + 8001cde: 4a18 ldr r2, [pc, #96] ; (8001d40 ) + 8001ce0: 693b ldr r3, [r7, #16] + 8001ce2: 6713 str r3, [r2, #112] ; 0x70 + + /* Wait for LSE reactivation if LSE was enable prior to Backup Domain reset */ + if (HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSEON)) + 8001ce4: 4b16 ldr r3, [pc, #88] ; (8001d40 ) + 8001ce6: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001ce8: f003 0301 and.w r3, r3, #1 + 8001cec: 2b01 cmp r3, #1 + 8001cee: d114 bne.n 8001d1a + { + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8001cf0: f7fe fc7c bl 80005ec + 8001cf4: 6178 str r0, [r7, #20] + + /* Wait till LSE is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) + 8001cf6: e00a b.n 8001d0e + { + if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) + 8001cf8: f7fe fc78 bl 80005ec + 8001cfc: 4602 mov r2, r0 + 8001cfe: 697b ldr r3, [r7, #20] + 8001d00: 1ad3 subs r3, r2, r3 + 8001d02: f241 3288 movw r2, #5000 ; 0x1388 + 8001d06: 4293 cmp r3, r2 + 8001d08: d901 bls.n 8001d0e + { + return HAL_TIMEOUT; + 8001d0a: 2303 movs r3, #3 + 8001d0c: e34f b.n 80023ae + while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) + 8001d0e: 4b0c ldr r3, [pc, #48] ; (8001d40 ) + 8001d10: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001d12: f003 0302 and.w r3, r3, #2 + 8001d16: 2b00 cmp r3, #0 + 8001d18: d0ee beq.n 8001cf8 + } + } + } + } + __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection); + 8001d1a: 687b ldr r3, [r7, #4] + 8001d1c: 6b1b ldr r3, [r3, #48] ; 0x30 + 8001d1e: f403 7340 and.w r3, r3, #768 ; 0x300 + 8001d22: f5b3 7f40 cmp.w r3, #768 ; 0x300 + 8001d26: d111 bne.n 8001d4c + 8001d28: 4b05 ldr r3, [pc, #20] ; (8001d40 ) + 8001d2a: 689b ldr r3, [r3, #8] + 8001d2c: f423 12f8 bic.w r2, r3, #2031616 ; 0x1f0000 + 8001d30: 687b ldr r3, [r7, #4] + 8001d32: 6b19 ldr r1, [r3, #48] ; 0x30 + 8001d34: 4b04 ldr r3, [pc, #16] ; (8001d48 ) + 8001d36: 400b ands r3, r1 + 8001d38: 4901 ldr r1, [pc, #4] ; (8001d40 ) + 8001d3a: 4313 orrs r3, r2 + 8001d3c: 608b str r3, [r1, #8] + 8001d3e: e00b b.n 8001d58 + 8001d40: 40023800 .word 0x40023800 + 8001d44: 40007000 .word 0x40007000 + 8001d48: 0ffffcff .word 0x0ffffcff + 8001d4c: 4bb3 ldr r3, [pc, #716] ; (800201c ) + 8001d4e: 689b ldr r3, [r3, #8] + 8001d50: 4ab2 ldr r2, [pc, #712] ; (800201c ) + 8001d52: f423 13f8 bic.w r3, r3, #2031616 ; 0x1f0000 + 8001d56: 6093 str r3, [r2, #8] + 8001d58: 4bb0 ldr r3, [pc, #704] ; (800201c ) + 8001d5a: 6f1a ldr r2, [r3, #112] ; 0x70 + 8001d5c: 687b ldr r3, [r7, #4] + 8001d5e: 6b1b ldr r3, [r3, #48] ; 0x30 + 8001d60: f3c3 030b ubfx r3, r3, #0, #12 + 8001d64: 49ad ldr r1, [pc, #692] ; (800201c ) + 8001d66: 4313 orrs r3, r2 + 8001d68: 670b str r3, [r1, #112] ; 0x70 + } + + /*------------------------------------ TIM configuration --------------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM) == (RCC_PERIPHCLK_TIM)) + 8001d6a: 687b ldr r3, [r7, #4] + 8001d6c: 681b ldr r3, [r3, #0] + 8001d6e: f003 0310 and.w r3, r3, #16 + 8001d72: 2b00 cmp r3, #0 + 8001d74: d010 beq.n 8001d98 + { + /* Check the parameters */ + assert_param(IS_RCC_TIMPRES(PeriphClkInit->TIMPresSelection)); + + /* Configure Timer Prescaler */ + __HAL_RCC_TIMCLKPRESCALER(PeriphClkInit->TIMPresSelection); + 8001d76: 4ba9 ldr r3, [pc, #676] ; (800201c ) + 8001d78: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c + 8001d7c: 4aa7 ldr r2, [pc, #668] ; (800201c ) + 8001d7e: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 + 8001d82: f8c2 308c str.w r3, [r2, #140] ; 0x8c + 8001d86: 4ba5 ldr r3, [pc, #660] ; (800201c ) + 8001d88: f8d3 208c ldr.w r2, [r3, #140] ; 0x8c + 8001d8c: 687b ldr r3, [r7, #4] + 8001d8e: 6b9b ldr r3, [r3, #56] ; 0x38 + 8001d90: 49a2 ldr r1, [pc, #648] ; (800201c ) + 8001d92: 4313 orrs r3, r2 + 8001d94: f8c1 308c str.w r3, [r1, #140] ; 0x8c + } + + /*-------------------------------------- I2C1 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) + 8001d98: 687b ldr r3, [r7, #4] + 8001d9a: 681b ldr r3, [r3, #0] + 8001d9c: f403 4380 and.w r3, r3, #16384 ; 0x4000 + 8001da0: 2b00 cmp r3, #0 + 8001da2: d00a beq.n 8001dba + { + /* Check the parameters */ + assert_param(IS_RCC_I2C1CLKSOURCE(PeriphClkInit->I2c1ClockSelection)); + + /* Configure the I2C1 clock source */ + __HAL_RCC_I2C1_CONFIG(PeriphClkInit->I2c1ClockSelection); + 8001da4: 4b9d ldr r3, [pc, #628] ; (800201c ) + 8001da6: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001daa: f423 3240 bic.w r2, r3, #196608 ; 0x30000 + 8001dae: 687b ldr r3, [r7, #4] + 8001db0: 6e5b ldr r3, [r3, #100] ; 0x64 + 8001db2: 499a ldr r1, [pc, #616] ; (800201c ) + 8001db4: 4313 orrs r3, r2 + 8001db6: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*-------------------------------------- I2C2 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) + 8001dba: 687b ldr r3, [r7, #4] + 8001dbc: 681b ldr r3, [r3, #0] + 8001dbe: f403 4300 and.w r3, r3, #32768 ; 0x8000 + 8001dc2: 2b00 cmp r3, #0 + 8001dc4: d00a beq.n 8001ddc + { + /* Check the parameters */ + assert_param(IS_RCC_I2C2CLKSOURCE(PeriphClkInit->I2c2ClockSelection)); + + /* Configure the I2C2 clock source */ + __HAL_RCC_I2C2_CONFIG(PeriphClkInit->I2c2ClockSelection); + 8001dc6: 4b95 ldr r3, [pc, #596] ; (800201c ) + 8001dc8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001dcc: f423 2240 bic.w r2, r3, #786432 ; 0xc0000 + 8001dd0: 687b ldr r3, [r7, #4] + 8001dd2: 6e9b ldr r3, [r3, #104] ; 0x68 + 8001dd4: 4991 ldr r1, [pc, #580] ; (800201c ) + 8001dd6: 4313 orrs r3, r2 + 8001dd8: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*-------------------------------------- I2C3 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) + 8001ddc: 687b ldr r3, [r7, #4] + 8001dde: 681b ldr r3, [r3, #0] + 8001de0: f403 3380 and.w r3, r3, #65536 ; 0x10000 + 8001de4: 2b00 cmp r3, #0 + 8001de6: d00a beq.n 8001dfe + { + /* Check the parameters */ + assert_param(IS_RCC_I2C3CLKSOURCE(PeriphClkInit->I2c3ClockSelection)); + + /* Configure the I2C3 clock source */ + __HAL_RCC_I2C3_CONFIG(PeriphClkInit->I2c3ClockSelection); + 8001de8: 4b8c ldr r3, [pc, #560] ; (800201c ) + 8001dea: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001dee: f423 1240 bic.w r2, r3, #3145728 ; 0x300000 + 8001df2: 687b ldr r3, [r7, #4] + 8001df4: 6edb ldr r3, [r3, #108] ; 0x6c + 8001df6: 4989 ldr r1, [pc, #548] ; (800201c ) + 8001df8: 4313 orrs r3, r2 + 8001dfa: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*-------------------------------------- I2C4 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4) + 8001dfe: 687b ldr r3, [r7, #4] + 8001e00: 681b ldr r3, [r3, #0] + 8001e02: f403 3300 and.w r3, r3, #131072 ; 0x20000 + 8001e06: 2b00 cmp r3, #0 + 8001e08: d00a beq.n 8001e20 + { + /* Check the parameters */ + assert_param(IS_RCC_I2C4CLKSOURCE(PeriphClkInit->I2c4ClockSelection)); + + /* Configure the I2C4 clock source */ + __HAL_RCC_I2C4_CONFIG(PeriphClkInit->I2c4ClockSelection); + 8001e0a: 4b84 ldr r3, [pc, #528] ; (800201c ) + 8001e0c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001e10: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000 + 8001e14: 687b ldr r3, [r7, #4] + 8001e16: 6f1b ldr r3, [r3, #112] ; 0x70 + 8001e18: 4980 ldr r1, [pc, #512] ; (800201c ) + 8001e1a: 4313 orrs r3, r2 + 8001e1c: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*-------------------------------------- USART1 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) + 8001e20: 687b ldr r3, [r7, #4] + 8001e22: 681b ldr r3, [r3, #0] + 8001e24: f003 0340 and.w r3, r3, #64 ; 0x40 + 8001e28: 2b00 cmp r3, #0 + 8001e2a: d00a beq.n 8001e42 + { + /* Check the parameters */ + assert_param(IS_RCC_USART1CLKSOURCE(PeriphClkInit->Usart1ClockSelection)); + + /* Configure the USART1 clock source */ + __HAL_RCC_USART1_CONFIG(PeriphClkInit->Usart1ClockSelection); + 8001e2c: 4b7b ldr r3, [pc, #492] ; (800201c ) + 8001e2e: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001e32: f023 0203 bic.w r2, r3, #3 + 8001e36: 687b ldr r3, [r7, #4] + 8001e38: 6c5b ldr r3, [r3, #68] ; 0x44 + 8001e3a: 4978 ldr r1, [pc, #480] ; (800201c ) + 8001e3c: 4313 orrs r3, r2 + 8001e3e: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*-------------------------------------- USART2 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) + 8001e42: 687b ldr r3, [r7, #4] + 8001e44: 681b ldr r3, [r3, #0] + 8001e46: f003 0380 and.w r3, r3, #128 ; 0x80 + 8001e4a: 2b00 cmp r3, #0 + 8001e4c: d00a beq.n 8001e64 + { + /* Check the parameters */ + assert_param(IS_RCC_USART2CLKSOURCE(PeriphClkInit->Usart2ClockSelection)); + + /* Configure the USART2 clock source */ + __HAL_RCC_USART2_CONFIG(PeriphClkInit->Usart2ClockSelection); + 8001e4e: 4b73 ldr r3, [pc, #460] ; (800201c ) + 8001e50: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001e54: f023 020c bic.w r2, r3, #12 + 8001e58: 687b ldr r3, [r7, #4] + 8001e5a: 6c9b ldr r3, [r3, #72] ; 0x48 + 8001e5c: 496f ldr r1, [pc, #444] ; (800201c ) + 8001e5e: 4313 orrs r3, r2 + 8001e60: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*-------------------------------------- USART3 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) + 8001e64: 687b ldr r3, [r7, #4] + 8001e66: 681b ldr r3, [r3, #0] + 8001e68: f403 7380 and.w r3, r3, #256 ; 0x100 + 8001e6c: 2b00 cmp r3, #0 + 8001e6e: d00a beq.n 8001e86 + { + /* Check the parameters */ + assert_param(IS_RCC_USART3CLKSOURCE(PeriphClkInit->Usart3ClockSelection)); + + /* Configure the USART3 clock source */ + __HAL_RCC_USART3_CONFIG(PeriphClkInit->Usart3ClockSelection); + 8001e70: 4b6a ldr r3, [pc, #424] ; (800201c ) + 8001e72: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001e76: f023 0230 bic.w r2, r3, #48 ; 0x30 + 8001e7a: 687b ldr r3, [r7, #4] + 8001e7c: 6cdb ldr r3, [r3, #76] ; 0x4c + 8001e7e: 4967 ldr r1, [pc, #412] ; (800201c ) + 8001e80: 4313 orrs r3, r2 + 8001e82: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*-------------------------------------- UART4 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) + 8001e86: 687b ldr r3, [r7, #4] + 8001e88: 681b ldr r3, [r3, #0] + 8001e8a: f403 7300 and.w r3, r3, #512 ; 0x200 + 8001e8e: 2b00 cmp r3, #0 + 8001e90: d00a beq.n 8001ea8 + { + /* Check the parameters */ + assert_param(IS_RCC_UART4CLKSOURCE(PeriphClkInit->Uart4ClockSelection)); + + /* Configure the UART4 clock source */ + __HAL_RCC_UART4_CONFIG(PeriphClkInit->Uart4ClockSelection); + 8001e92: 4b62 ldr r3, [pc, #392] ; (800201c ) + 8001e94: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001e98: f023 02c0 bic.w r2, r3, #192 ; 0xc0 + 8001e9c: 687b ldr r3, [r7, #4] + 8001e9e: 6d1b ldr r3, [r3, #80] ; 0x50 + 8001ea0: 495e ldr r1, [pc, #376] ; (800201c ) + 8001ea2: 4313 orrs r3, r2 + 8001ea4: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*-------------------------------------- UART5 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5) + 8001ea8: 687b ldr r3, [r7, #4] + 8001eaa: 681b ldr r3, [r3, #0] + 8001eac: f403 6380 and.w r3, r3, #1024 ; 0x400 + 8001eb0: 2b00 cmp r3, #0 + 8001eb2: d00a beq.n 8001eca + { + /* Check the parameters */ + assert_param(IS_RCC_UART5CLKSOURCE(PeriphClkInit->Uart5ClockSelection)); + + /* Configure the UART5 clock source */ + __HAL_RCC_UART5_CONFIG(PeriphClkInit->Uart5ClockSelection); + 8001eb4: 4b59 ldr r3, [pc, #356] ; (800201c ) + 8001eb6: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001eba: f423 7240 bic.w r2, r3, #768 ; 0x300 + 8001ebe: 687b ldr r3, [r7, #4] + 8001ec0: 6d5b ldr r3, [r3, #84] ; 0x54 + 8001ec2: 4956 ldr r1, [pc, #344] ; (800201c ) + 8001ec4: 4313 orrs r3, r2 + 8001ec6: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*-------------------------------------- USART6 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART6) == RCC_PERIPHCLK_USART6) + 8001eca: 687b ldr r3, [r7, #4] + 8001ecc: 681b ldr r3, [r3, #0] + 8001ece: f403 6300 and.w r3, r3, #2048 ; 0x800 + 8001ed2: 2b00 cmp r3, #0 + 8001ed4: d00a beq.n 8001eec + { + /* Check the parameters */ + assert_param(IS_RCC_USART6CLKSOURCE(PeriphClkInit->Usart6ClockSelection)); + + /* Configure the USART6 clock source */ + __HAL_RCC_USART6_CONFIG(PeriphClkInit->Usart6ClockSelection); + 8001ed6: 4b51 ldr r3, [pc, #324] ; (800201c ) + 8001ed8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001edc: f423 6240 bic.w r2, r3, #3072 ; 0xc00 + 8001ee0: 687b ldr r3, [r7, #4] + 8001ee2: 6d9b ldr r3, [r3, #88] ; 0x58 + 8001ee4: 494d ldr r1, [pc, #308] ; (800201c ) + 8001ee6: 4313 orrs r3, r2 + 8001ee8: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*-------------------------------------- UART7 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART7) == RCC_PERIPHCLK_UART7) + 8001eec: 687b ldr r3, [r7, #4] + 8001eee: 681b ldr r3, [r3, #0] + 8001ef0: f403 5380 and.w r3, r3, #4096 ; 0x1000 + 8001ef4: 2b00 cmp r3, #0 + 8001ef6: d00a beq.n 8001f0e + { + /* Check the parameters */ + assert_param(IS_RCC_UART7CLKSOURCE(PeriphClkInit->Uart7ClockSelection)); + + /* Configure the UART7 clock source */ + __HAL_RCC_UART7_CONFIG(PeriphClkInit->Uart7ClockSelection); + 8001ef8: 4b48 ldr r3, [pc, #288] ; (800201c ) + 8001efa: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001efe: f423 5240 bic.w r2, r3, #12288 ; 0x3000 + 8001f02: 687b ldr r3, [r7, #4] + 8001f04: 6ddb ldr r3, [r3, #92] ; 0x5c + 8001f06: 4945 ldr r1, [pc, #276] ; (800201c ) + 8001f08: 4313 orrs r3, r2 + 8001f0a: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*-------------------------------------- UART8 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART8) == RCC_PERIPHCLK_UART8) + 8001f0e: 687b ldr r3, [r7, #4] + 8001f10: 681b ldr r3, [r3, #0] + 8001f12: f403 5300 and.w r3, r3, #8192 ; 0x2000 + 8001f16: 2b00 cmp r3, #0 + 8001f18: d00a beq.n 8001f30 + { + /* Check the parameters */ + assert_param(IS_RCC_UART8CLKSOURCE(PeriphClkInit->Uart8ClockSelection)); + + /* Configure the UART8 clock source */ + __HAL_RCC_UART8_CONFIG(PeriphClkInit->Uart8ClockSelection); + 8001f1a: 4b40 ldr r3, [pc, #256] ; (800201c ) + 8001f1c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001f20: f423 4240 bic.w r2, r3, #49152 ; 0xc000 + 8001f24: 687b ldr r3, [r7, #4] + 8001f26: 6e1b ldr r3, [r3, #96] ; 0x60 + 8001f28: 493c ldr r1, [pc, #240] ; (800201c ) + 8001f2a: 4313 orrs r3, r2 + 8001f2c: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*--------------------------------------- CEC Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CEC) == RCC_PERIPHCLK_CEC) + 8001f30: 687b ldr r3, [r7, #4] + 8001f32: 681b ldr r3, [r3, #0] + 8001f34: f403 0380 and.w r3, r3, #4194304 ; 0x400000 + 8001f38: 2b00 cmp r3, #0 + 8001f3a: d00a beq.n 8001f52 + { + /* Check the parameters */ + assert_param(IS_RCC_CECCLKSOURCE(PeriphClkInit->CecClockSelection)); + + /* Configure the CEC clock source */ + __HAL_RCC_CEC_CONFIG(PeriphClkInit->CecClockSelection); + 8001f3c: 4b37 ldr r3, [pc, #220] ; (800201c ) + 8001f3e: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001f42: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000 + 8001f46: 687b ldr r3, [r7, #4] + 8001f48: 6f9b ldr r3, [r3, #120] ; 0x78 + 8001f4a: 4934 ldr r1, [pc, #208] ; (800201c ) + 8001f4c: 4313 orrs r3, r2 + 8001f4e: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*-------------------------------------- CK48 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48) + 8001f52: 687b ldr r3, [r7, #4] + 8001f54: 681b ldr r3, [r3, #0] + 8001f56: f403 1300 and.w r3, r3, #2097152 ; 0x200000 + 8001f5a: 2b00 cmp r3, #0 + 8001f5c: d011 beq.n 8001f82 + { + /* Check the parameters */ + assert_param(IS_RCC_CLK48SOURCE(PeriphClkInit->Clk48ClockSelection)); + + /* Configure the CLK48 source */ + __HAL_RCC_CLK48_CONFIG(PeriphClkInit->Clk48ClockSelection); + 8001f5e: 4b2f ldr r3, [pc, #188] ; (800201c ) + 8001f60: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001f64: f023 6200 bic.w r2, r3, #134217728 ; 0x8000000 + 8001f68: 687b ldr r3, [r7, #4] + 8001f6a: 6fdb ldr r3, [r3, #124] ; 0x7c + 8001f6c: 492b ldr r1, [pc, #172] ; (800201c ) + 8001f6e: 4313 orrs r3, r2 + 8001f70: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + + /* Enable the PLLSAI when it's used as clock source for CK48 */ + if(PeriphClkInit->Clk48ClockSelection == RCC_CLK48SOURCE_PLLSAIP) + 8001f74: 687b ldr r3, [r7, #4] + 8001f76: 6fdb ldr r3, [r3, #124] ; 0x7c + 8001f78: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000 + 8001f7c: d101 bne.n 8001f82 + { + pllsaiused = 1; + 8001f7e: 2301 movs r3, #1 + 8001f80: 61bb str r3, [r7, #24] + } + } + + /*-------------------------------------- LTDC Configuration -----------------------------------*/ +#if defined(STM32F746xx) || defined(STM32F756xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) || defined (STM32F750xx) + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == RCC_PERIPHCLK_LTDC) + 8001f82: 687b ldr r3, [r7, #4] + 8001f84: 681b ldr r3, [r3, #0] + 8001f86: f003 0308 and.w r3, r3, #8 + 8001f8a: 2b00 cmp r3, #0 + 8001f8c: d001 beq.n 8001f92 + { + pllsaiused = 1; + 8001f8e: 2301 movs r3, #1 + 8001f90: 61bb str r3, [r7, #24] + } +#endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */ + + /*-------------------------------------- LPTIM1 Configuration -----------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) + 8001f92: 687b ldr r3, [r7, #4] + 8001f94: 681b ldr r3, [r3, #0] + 8001f96: f403 2380 and.w r3, r3, #262144 ; 0x40000 + 8001f9a: 2b00 cmp r3, #0 + 8001f9c: d00a beq.n 8001fb4 + { + /* Check the parameters */ + assert_param(IS_RCC_LPTIM1CLK(PeriphClkInit->Lptim1ClockSelection)); + + /* Configure the LTPIM1 clock source */ + __HAL_RCC_LPTIM1_CONFIG(PeriphClkInit->Lptim1ClockSelection); + 8001f9e: 4b1f ldr r3, [pc, #124] ; (800201c ) + 8001fa0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001fa4: f023 7240 bic.w r2, r3, #50331648 ; 0x3000000 + 8001fa8: 687b ldr r3, [r7, #4] + 8001faa: 6f5b ldr r3, [r3, #116] ; 0x74 + 8001fac: 491b ldr r1, [pc, #108] ; (800201c ) + 8001fae: 4313 orrs r3, r2 + 8001fb0: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*------------------------------------- SDMMC1 Configuration ------------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC1) == RCC_PERIPHCLK_SDMMC1) + 8001fb4: 687b ldr r3, [r7, #4] + 8001fb6: 681b ldr r3, [r3, #0] + 8001fb8: f403 0300 and.w r3, r3, #8388608 ; 0x800000 + 8001fbc: 2b00 cmp r3, #0 + 8001fbe: d00b beq.n 8001fd8 + { + /* Check the parameters */ + assert_param(IS_RCC_SDMMC1CLKSOURCE(PeriphClkInit->Sdmmc1ClockSelection)); + + /* Configure the SDMMC1 clock source */ + __HAL_RCC_SDMMC1_CONFIG(PeriphClkInit->Sdmmc1ClockSelection); + 8001fc0: 4b16 ldr r3, [pc, #88] ; (800201c ) + 8001fc2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001fc6: f023 5280 bic.w r2, r3, #268435456 ; 0x10000000 + 8001fca: 687b ldr r3, [r7, #4] + 8001fcc: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 + 8001fd0: 4912 ldr r1, [pc, #72] ; (800201c ) + 8001fd2: 4313 orrs r3, r2 + 8001fd4: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + +#if defined (STM32F765xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) + /*------------------------------------- SDMMC2 Configuration ------------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC2) == RCC_PERIPHCLK_SDMMC2) + 8001fd8: 687b ldr r3, [r7, #4] + 8001fda: 681b ldr r3, [r3, #0] + 8001fdc: f003 6380 and.w r3, r3, #67108864 ; 0x4000000 + 8001fe0: 2b00 cmp r3, #0 + 8001fe2: d00b beq.n 8001ffc + { + /* Check the parameters */ + assert_param(IS_RCC_SDMMC2CLKSOURCE(PeriphClkInit->Sdmmc2ClockSelection)); + + /* Configure the SDMMC2 clock source */ + __HAL_RCC_SDMMC2_CONFIG(PeriphClkInit->Sdmmc2ClockSelection); + 8001fe4: 4b0d ldr r3, [pc, #52] ; (800201c ) + 8001fe6: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8001fea: f023 5200 bic.w r2, r3, #536870912 ; 0x20000000 + 8001fee: 687b ldr r3, [r7, #4] + 8001ff0: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 + 8001ff4: 4909 ldr r1, [pc, #36] ; (800201c ) + 8001ff6: 4313 orrs r3, r2 + 8001ff8: f8c1 3090 str.w r3, [r1, #144] ; 0x90 + } + + /*------------------------------------- DFSDM1 Configuration -------------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1) == RCC_PERIPHCLK_DFSDM1) + 8001ffc: 687b ldr r3, [r7, #4] + 8001ffe: 681b ldr r3, [r3, #0] + 8002000: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 + 8002004: 2b00 cmp r3, #0 + 8002006: d00f beq.n 8002028 + { + /* Check the parameters */ + assert_param(IS_RCC_DFSDM1CLKSOURCE(PeriphClkInit->Dfsdm1ClockSelection)); + + /* Configure the DFSDM1 interface clock source */ + __HAL_RCC_DFSDM1_CONFIG(PeriphClkInit->Dfsdm1ClockSelection); + 8002008: 4b04 ldr r3, [pc, #16] ; (800201c ) + 800200a: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c + 800200e: f023 7200 bic.w r2, r3, #33554432 ; 0x2000000 + 8002012: 687b ldr r3, [r7, #4] + 8002014: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 8002018: e002 b.n 8002020 + 800201a: bf00 nop + 800201c: 40023800 .word 0x40023800 + 8002020: 4985 ldr r1, [pc, #532] ; (8002238 ) + 8002022: 4313 orrs r3, r2 + 8002024: f8c1 308c str.w r3, [r1, #140] ; 0x8c + } + + /*------------------------------------- DFSDM AUDIO Configuration -------------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1_AUDIO) == RCC_PERIPHCLK_DFSDM1_AUDIO) + 8002028: 687b ldr r3, [r7, #4] + 800202a: 681b ldr r3, [r3, #0] + 800202c: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 8002030: 2b00 cmp r3, #0 + 8002032: d00b beq.n 800204c + { + /* Check the parameters */ + assert_param(IS_RCC_DFSDM1AUDIOCLKSOURCE(PeriphClkInit->Dfsdm1AudioClockSelection)); + + /* Configure the DFSDM interface clock source */ + __HAL_RCC_DFSDM1AUDIO_CONFIG(PeriphClkInit->Dfsdm1AudioClockSelection); + 8002034: 4b80 ldr r3, [pc, #512] ; (8002238 ) + 8002036: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c + 800203a: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000 + 800203e: 687b ldr r3, [r7, #4] + 8002040: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c + 8002044: 497c ldr r1, [pc, #496] ; (8002238 ) + 8002046: 4313 orrs r3, r2 + 8002048: f8c1 308c str.w r3, [r1, #140] ; 0x8c + } +#endif /* STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */ + + /*-------------------------------------- PLLI2S Configuration ---------------------------------*/ + /* PLLI2S is configured when a peripheral will use it as source clock : SAI1, SAI2, I2S or SPDIF-RX */ + if((plli2sused == 1) || (PeriphClkInit->PeriphClockSelection == RCC_PERIPHCLK_PLLI2S)) + 800204c: 69fb ldr r3, [r7, #28] + 800204e: 2b01 cmp r3, #1 + 8002050: d005 beq.n 800205e + 8002052: 687b ldr r3, [r7, #4] + 8002054: 681b ldr r3, [r3, #0] + 8002056: f1b3 7f00 cmp.w r3, #33554432 ; 0x2000000 + 800205a: f040 80d6 bne.w 800220a + { + /* Disable the PLLI2S */ + __HAL_RCC_PLLI2S_DISABLE(); + 800205e: 4b76 ldr r3, [pc, #472] ; (8002238 ) + 8002060: 681b ldr r3, [r3, #0] + 8002062: 4a75 ldr r2, [pc, #468] ; (8002238 ) + 8002064: f023 6380 bic.w r3, r3, #67108864 ; 0x4000000 + 8002068: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 800206a: f7fe fabf bl 80005ec + 800206e: 6178 str r0, [r7, #20] + + /* Wait till PLLI2S is disabled */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET) + 8002070: e008 b.n 8002084 + { + if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) + 8002072: f7fe fabb bl 80005ec + 8002076: 4602 mov r2, r0 + 8002078: 697b ldr r3, [r7, #20] + 800207a: 1ad3 subs r3, r2, r3 + 800207c: 2b64 cmp r3, #100 ; 0x64 + 800207e: d901 bls.n 8002084 + { + /* return in case of Timeout detected */ + return HAL_TIMEOUT; + 8002080: 2303 movs r3, #3 + 8002082: e194 b.n 80023ae + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET) + 8002084: 4b6c ldr r3, [pc, #432] ; (8002238 ) + 8002086: 681b ldr r3, [r3, #0] + 8002088: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 + 800208c: 2b00 cmp r3, #0 + 800208e: d1f0 bne.n 8002072 + + /* check for common PLLI2S Parameters */ + assert_param(IS_RCC_PLLI2SN_VALUE(PeriphClkInit->PLLI2S.PLLI2SN)); + + /*----------------- In Case of PLLI2S is selected as source clock for I2S -------------------*/ + if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) && (PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S))) + 8002090: 687b ldr r3, [r7, #4] + 8002092: 681b ldr r3, [r3, #0] + 8002094: f003 0301 and.w r3, r3, #1 + 8002098: 2b00 cmp r3, #0 + 800209a: d021 beq.n 80020e0 + 800209c: 687b ldr r3, [r7, #4] + 800209e: 6b5b ldr r3, [r3, #52] ; 0x34 + 80020a0: 2b00 cmp r3, #0 + 80020a2: d11d bne.n 80020e0 + { + /* check for Parameters */ + assert_param(IS_RCC_PLLI2SR_VALUE(PeriphClkInit->PLLI2S.PLLI2SR)); + + /* Read PLLI2SP and PLLI2SQ value from PLLI2SCFGR register (this value is not needed for I2S configuration) */ + tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SP) >> RCC_PLLI2SCFGR_PLLI2SP_Pos); + 80020a4: 4b64 ldr r3, [pc, #400] ; (8002238 ) + 80020a6: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 + 80020aa: 0c1b lsrs r3, r3, #16 + 80020ac: f003 0303 and.w r3, r3, #3 + 80020b0: 613b str r3, [r7, #16] + tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos); + 80020b2: 4b61 ldr r3, [pc, #388] ; (8002238 ) + 80020b4: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 + 80020b8: 0e1b lsrs r3, r3, #24 + 80020ba: f003 030f and.w r3, r3, #15 + 80020be: 60fb str r3, [r7, #12] + /* Configure the PLLI2S division factors */ + /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLM) */ + /* I2SCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SR */ + __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , tmpreg0, tmpreg1, PeriphClkInit->PLLI2S.PLLI2SR); + 80020c0: 687b ldr r3, [r7, #4] + 80020c2: 685b ldr r3, [r3, #4] + 80020c4: 019a lsls r2, r3, #6 + 80020c6: 693b ldr r3, [r7, #16] + 80020c8: 041b lsls r3, r3, #16 + 80020ca: 431a orrs r2, r3 + 80020cc: 68fb ldr r3, [r7, #12] + 80020ce: 061b lsls r3, r3, #24 + 80020d0: 431a orrs r2, r3 + 80020d2: 687b ldr r3, [r7, #4] + 80020d4: 689b ldr r3, [r3, #8] + 80020d6: 071b lsls r3, r3, #28 + 80020d8: 4957 ldr r1, [pc, #348] ; (8002238 ) + 80020da: 4313 orrs r3, r2 + 80020dc: f8c1 3084 str.w r3, [r1, #132] ; 0x84 + } + + /*----------------- In Case of PLLI2S is selected as source clock for SAI -------------------*/ + if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) || + 80020e0: 687b ldr r3, [r7, #4] + 80020e2: 681b ldr r3, [r3, #0] + 80020e4: f403 2300 and.w r3, r3, #524288 ; 0x80000 + 80020e8: 2b00 cmp r3, #0 + 80020ea: d004 beq.n 80020f6 + 80020ec: 687b ldr r3, [r7, #4] + 80020ee: 6bdb ldr r3, [r3, #60] ; 0x3c + 80020f0: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 + 80020f4: d00a beq.n 800210c + ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S))) + 80020f6: 687b ldr r3, [r7, #4] + 80020f8: 681b ldr r3, [r3, #0] + 80020fa: f403 1380 and.w r3, r3, #1048576 ; 0x100000 + if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) || + 80020fe: 2b00 cmp r3, #0 + 8002100: d02e beq.n 8002160 + ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S))) + 8002102: 687b ldr r3, [r7, #4] + 8002104: 6c1b ldr r3, [r3, #64] ; 0x40 + 8002106: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 + 800210a: d129 bne.n 8002160 + assert_param(IS_RCC_PLLI2SQ_VALUE(PeriphClkInit->PLLI2S.PLLI2SQ)); + /* Check for PLLI2S/DIVQ parameters */ + assert_param(IS_RCC_PLLI2S_DIVQ_VALUE(PeriphClkInit->PLLI2SDivQ)); + + /* Read PLLI2SP and PLLI2SR values from PLLI2SCFGR register (this value is not needed for SAI configuration) */ + tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SP) >> RCC_PLLI2SCFGR_PLLI2SP_Pos); + 800210c: 4b4a ldr r3, [pc, #296] ; (8002238 ) + 800210e: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 + 8002112: 0c1b lsrs r3, r3, #16 + 8002114: f003 0303 and.w r3, r3, #3 + 8002118: 613b str r3, [r7, #16] + tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos); + 800211a: 4b47 ldr r3, [pc, #284] ; (8002238 ) + 800211c: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 + 8002120: 0f1b lsrs r3, r3, #28 + 8002122: f003 0307 and.w r3, r3, #7 + 8002126: 60fb str r3, [r7, #12] + /* Configure the PLLI2S division factors */ + /* PLLI2S_VCO Input = PLL_SOURCE/PLLM */ + /* PLLI2S_VCO Output = PLLI2S_VCO Input * PLLI2SN */ + /* SAI_CLK(first level) = PLLI2S_VCO Output/PLLI2SQ */ + __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN, tmpreg0, PeriphClkInit->PLLI2S.PLLI2SQ, tmpreg1); + 8002128: 687b ldr r3, [r7, #4] + 800212a: 685b ldr r3, [r3, #4] + 800212c: 019a lsls r2, r3, #6 + 800212e: 693b ldr r3, [r7, #16] + 8002130: 041b lsls r3, r3, #16 + 8002132: 431a orrs r2, r3 + 8002134: 687b ldr r3, [r7, #4] + 8002136: 68db ldr r3, [r3, #12] + 8002138: 061b lsls r3, r3, #24 + 800213a: 431a orrs r2, r3 + 800213c: 68fb ldr r3, [r7, #12] + 800213e: 071b lsls r3, r3, #28 + 8002140: 493d ldr r1, [pc, #244] ; (8002238 ) + 8002142: 4313 orrs r3, r2 + 8002144: f8c1 3084 str.w r3, [r1, #132] ; 0x84 + + /* SAI_CLK_x = SAI_CLK(first level)/PLLI2SDIVQ */ + __HAL_RCC_PLLI2S_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLI2SDivQ); + 8002148: 4b3b ldr r3, [pc, #236] ; (8002238 ) + 800214a: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c + 800214e: f023 021f bic.w r2, r3, #31 + 8002152: 687b ldr r3, [r7, #4] + 8002154: 6a5b ldr r3, [r3, #36] ; 0x24 + 8002156: 3b01 subs r3, #1 + 8002158: 4937 ldr r1, [pc, #220] ; (8002238 ) + 800215a: 4313 orrs r3, r2 + 800215c: f8c1 308c str.w r3, [r1, #140] ; 0x8c + } + + /*----------------- In Case of PLLI2S is selected as source clock for SPDIF-RX -------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX) + 8002160: 687b ldr r3, [r7, #4] + 8002162: 681b ldr r3, [r3, #0] + 8002164: f003 7380 and.w r3, r3, #16777216 ; 0x1000000 + 8002168: 2b00 cmp r3, #0 + 800216a: d01d beq.n 80021a8 + { + /* check for Parameters */ + assert_param(IS_RCC_PLLI2SP_VALUE(PeriphClkInit->PLLI2S.PLLI2SP)); + + /* Read PLLI2SR value from PLLI2SCFGR register (this value is not needed for SPDIF-RX configuration) */ + tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos); + 800216c: 4b32 ldr r3, [pc, #200] ; (8002238 ) + 800216e: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 + 8002172: 0e1b lsrs r3, r3, #24 + 8002174: f003 030f and.w r3, r3, #15 + 8002178: 613b str r3, [r7, #16] + tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos); + 800217a: 4b2f ldr r3, [pc, #188] ; (8002238 ) + 800217c: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 + 8002180: 0f1b lsrs r3, r3, #28 + 8002182: f003 0307 and.w r3, r3, #7 + 8002186: 60fb str r3, [r7, #12] + /* Configure the PLLI2S division factors */ + /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLM) */ + /* SPDIFCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */ + __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, tmpreg0, tmpreg1); + 8002188: 687b ldr r3, [r7, #4] + 800218a: 685b ldr r3, [r3, #4] + 800218c: 019a lsls r2, r3, #6 + 800218e: 687b ldr r3, [r7, #4] + 8002190: 691b ldr r3, [r3, #16] + 8002192: 041b lsls r3, r3, #16 + 8002194: 431a orrs r2, r3 + 8002196: 693b ldr r3, [r7, #16] + 8002198: 061b lsls r3, r3, #24 + 800219a: 431a orrs r2, r3 + 800219c: 68fb ldr r3, [r7, #12] + 800219e: 071b lsls r3, r3, #28 + 80021a0: 4925 ldr r1, [pc, #148] ; (8002238 ) + 80021a2: 4313 orrs r3, r2 + 80021a4: f8c1 3084 str.w r3, [r1, #132] ; 0x84 + } + + /*----------------- In Case of PLLI2S is just selected -----------------*/ + if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S) + 80021a8: 687b ldr r3, [r7, #4] + 80021aa: 681b ldr r3, [r3, #0] + 80021ac: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 + 80021b0: 2b00 cmp r3, #0 + 80021b2: d011 beq.n 80021d8 + assert_param(IS_RCC_PLLI2SQ_VALUE(PeriphClkInit->PLLI2S.PLLI2SQ)); + + /* Configure the PLLI2S division factors */ + /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLI2SM) */ + /* SPDIFRXCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */ + __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, PeriphClkInit->PLLI2S.PLLI2SQ, PeriphClkInit->PLLI2S.PLLI2SR); + 80021b4: 687b ldr r3, [r7, #4] + 80021b6: 685b ldr r3, [r3, #4] + 80021b8: 019a lsls r2, r3, #6 + 80021ba: 687b ldr r3, [r7, #4] + 80021bc: 691b ldr r3, [r3, #16] + 80021be: 041b lsls r3, r3, #16 + 80021c0: 431a orrs r2, r3 + 80021c2: 687b ldr r3, [r7, #4] + 80021c4: 68db ldr r3, [r3, #12] + 80021c6: 061b lsls r3, r3, #24 + 80021c8: 431a orrs r2, r3 + 80021ca: 687b ldr r3, [r7, #4] + 80021cc: 689b ldr r3, [r3, #8] + 80021ce: 071b lsls r3, r3, #28 + 80021d0: 4919 ldr r1, [pc, #100] ; (8002238 ) + 80021d2: 4313 orrs r3, r2 + 80021d4: f8c1 3084 str.w r3, [r1, #132] ; 0x84 + } + + /* Enable the PLLI2S */ + __HAL_RCC_PLLI2S_ENABLE(); + 80021d8: 4b17 ldr r3, [pc, #92] ; (8002238 ) + 80021da: 681b ldr r3, [r3, #0] + 80021dc: 4a16 ldr r2, [pc, #88] ; (8002238 ) + 80021de: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000 + 80021e2: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 80021e4: f7fe fa02 bl 80005ec + 80021e8: 6178 str r0, [r7, #20] + + /* Wait till PLLI2S is ready */ + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET) + 80021ea: e008 b.n 80021fe + { + if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) + 80021ec: f7fe f9fe bl 80005ec + 80021f0: 4602 mov r2, r0 + 80021f2: 697b ldr r3, [r7, #20] + 80021f4: 1ad3 subs r3, r2, r3 + 80021f6: 2b64 cmp r3, #100 ; 0x64 + 80021f8: d901 bls.n 80021fe + { + /* return in case of Timeout detected */ + return HAL_TIMEOUT; + 80021fa: 2303 movs r3, #3 + 80021fc: e0d7 b.n 80023ae + while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET) + 80021fe: 4b0e ldr r3, [pc, #56] ; (8002238 ) + 8002200: 681b ldr r3, [r3, #0] + 8002202: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 + 8002206: 2b00 cmp r3, #0 + 8002208: d0f0 beq.n 80021ec + } + } + + /*-------------------------------------- PLLSAI Configuration ---------------------------------*/ + /* PLLSAI is configured when a peripheral will use it as source clock : SAI1, SAI2, LTDC or CK48 */ + if(pllsaiused == 1) + 800220a: 69bb ldr r3, [r7, #24] + 800220c: 2b01 cmp r3, #1 + 800220e: f040 80cd bne.w 80023ac + { + /* Disable PLLSAI Clock */ + __HAL_RCC_PLLSAI_DISABLE(); + 8002212: 4b09 ldr r3, [pc, #36] ; (8002238 ) + 8002214: 681b ldr r3, [r3, #0] + 8002216: 4a08 ldr r2, [pc, #32] ; (8002238 ) + 8002218: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 + 800221c: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 800221e: f7fe f9e5 bl 80005ec + 8002222: 6178 str r0, [r7, #20] + + /* Wait till PLLSAI is disabled */ + while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET) + 8002224: e00a b.n 800223c + { + if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE) + 8002226: f7fe f9e1 bl 80005ec + 800222a: 4602 mov r2, r0 + 800222c: 697b ldr r3, [r7, #20] + 800222e: 1ad3 subs r3, r2, r3 + 8002230: 2b64 cmp r3, #100 ; 0x64 + 8002232: d903 bls.n 800223c + { + /* return in case of Timeout detected */ + return HAL_TIMEOUT; + 8002234: 2303 movs r3, #3 + 8002236: e0ba b.n 80023ae + 8002238: 40023800 .word 0x40023800 + while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET) + 800223c: 4b5e ldr r3, [pc, #376] ; (80023b8 ) + 800223e: 681b ldr r3, [r3, #0] + 8002240: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 + 8002244: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 + 8002248: d0ed beq.n 8002226 + + /* Check the PLLSAI division factors */ + assert_param(IS_RCC_PLLSAIN_VALUE(PeriphClkInit->PLLSAI.PLLSAIN)); + + /*----------------- In Case of PLLSAI is selected as source clock for SAI -------------------*/ + if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\ + 800224a: 687b ldr r3, [r7, #4] + 800224c: 681b ldr r3, [r3, #0] + 800224e: f403 2300 and.w r3, r3, #524288 ; 0x80000 + 8002252: 2b00 cmp r3, #0 + 8002254: d003 beq.n 800225e + 8002256: 687b ldr r3, [r7, #4] + 8002258: 6bdb ldr r3, [r3, #60] ; 0x3c + 800225a: 2b00 cmp r3, #0 + 800225c: d009 beq.n 8002272 + ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI))) + 800225e: 687b ldr r3, [r7, #4] + 8002260: 681b ldr r3, [r3, #0] + 8002262: f403 1380 and.w r3, r3, #1048576 ; 0x100000 + if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\ + 8002266: 2b00 cmp r3, #0 + 8002268: d02e beq.n 80022c8 + ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI))) + 800226a: 687b ldr r3, [r7, #4] + 800226c: 6c1b ldr r3, [r3, #64] ; 0x40 + 800226e: 2b00 cmp r3, #0 + 8002270: d12a bne.n 80022c8 + assert_param(IS_RCC_PLLSAIQ_VALUE(PeriphClkInit->PLLSAI.PLLSAIQ)); + /* check for PLLSAI/DIVQ Parameter */ + assert_param(IS_RCC_PLLSAI_DIVQ_VALUE(PeriphClkInit->PLLSAIDivQ)); + + /* Read PLLSAIP value from PLLSAICFGR register (this value is not needed for SAI configuration) */ + tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos); + 8002272: 4b51 ldr r3, [pc, #324] ; (80023b8 ) + 8002274: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 8002278: 0c1b lsrs r3, r3, #16 + 800227a: f003 0303 and.w r3, r3, #3 + 800227e: 613b str r3, [r7, #16] + tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLSAICFGR_PLLSAIR_Pos); + 8002280: 4b4d ldr r3, [pc, #308] ; (80023b8 ) + 8002282: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 8002286: 0f1b lsrs r3, r3, #28 + 8002288: f003 0307 and.w r3, r3, #7 + 800228c: 60fb str r3, [r7, #12] + /* PLLSAI_VCO Input = PLL_SOURCE/PLLM */ + /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN */ + /* SAI_CLK(first level) = PLLSAI_VCO Output/PLLSAIQ */ + __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , tmpreg0, PeriphClkInit->PLLSAI.PLLSAIQ, tmpreg1); + 800228e: 687b ldr r3, [r7, #4] + 8002290: 695b ldr r3, [r3, #20] + 8002292: 019a lsls r2, r3, #6 + 8002294: 693b ldr r3, [r7, #16] + 8002296: 041b lsls r3, r3, #16 + 8002298: 431a orrs r2, r3 + 800229a: 687b ldr r3, [r7, #4] + 800229c: 699b ldr r3, [r3, #24] + 800229e: 061b lsls r3, r3, #24 + 80022a0: 431a orrs r2, r3 + 80022a2: 68fb ldr r3, [r7, #12] + 80022a4: 071b lsls r3, r3, #28 + 80022a6: 4944 ldr r1, [pc, #272] ; (80023b8 ) + 80022a8: 4313 orrs r3, r2 + 80022aa: f8c1 3088 str.w r3, [r1, #136] ; 0x88 + + /* SAI_CLK_x = SAI_CLK(first level)/PLLSAIDIVQ */ + __HAL_RCC_PLLSAI_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLSAIDivQ); + 80022ae: 4b42 ldr r3, [pc, #264] ; (80023b8 ) + 80022b0: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c + 80022b4: f423 52f8 bic.w r2, r3, #7936 ; 0x1f00 + 80022b8: 687b ldr r3, [r7, #4] + 80022ba: 6a9b ldr r3, [r3, #40] ; 0x28 + 80022bc: 3b01 subs r3, #1 + 80022be: 021b lsls r3, r3, #8 + 80022c0: 493d ldr r1, [pc, #244] ; (80023b8 ) + 80022c2: 4313 orrs r3, r2 + 80022c4: f8c1 308c str.w r3, [r1, #140] ; 0x8c + } + + /*----------------- In Case of PLLSAI is selected as source clock for CLK48 -------------------*/ + /* In Case of PLLI2S is selected as source clock for CK48 */ + if((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48) && (PeriphClkInit->Clk48ClockSelection == RCC_CLK48SOURCE_PLLSAIP)) + 80022c8: 687b ldr r3, [r7, #4] + 80022ca: 681b ldr r3, [r3, #0] + 80022cc: f403 1300 and.w r3, r3, #2097152 ; 0x200000 + 80022d0: 2b00 cmp r3, #0 + 80022d2: d022 beq.n 800231a + 80022d4: 687b ldr r3, [r7, #4] + 80022d6: 6fdb ldr r3, [r3, #124] ; 0x7c + 80022d8: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000 + 80022dc: d11d bne.n 800231a + { + /* check for Parameters */ + assert_param(IS_RCC_PLLSAIP_VALUE(PeriphClkInit->PLLSAI.PLLSAIP)); + /* Read PLLSAIQ and PLLSAIR value from PLLSAICFGR register (this value is not needed for CK48 configuration) */ + tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIQ) >> RCC_PLLSAICFGR_PLLSAIQ_Pos); + 80022de: 4b36 ldr r3, [pc, #216] ; (80023b8 ) + 80022e0: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 80022e4: 0e1b lsrs r3, r3, #24 + 80022e6: f003 030f and.w r3, r3, #15 + 80022ea: 613b str r3, [r7, #16] + tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIR) >> RCC_PLLSAICFGR_PLLSAIR_Pos); + 80022ec: 4b32 ldr r3, [pc, #200] ; (80023b8 ) + 80022ee: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 80022f2: 0f1b lsrs r3, r3, #28 + 80022f4: f003 0307 and.w r3, r3, #7 + 80022f8: 60fb str r3, [r7, #12] + + /* Configure the PLLSAI division factors */ + /* PLLSAI_VCO = f(VCO clock) = f(PLLSAI clock input) x (PLLI2SN/PLLM) */ + /* 48CLK = f(PLLSAI clock output) = f(VCO clock) / PLLSAIP */ + __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , PeriphClkInit->PLLSAI.PLLSAIP, tmpreg0, tmpreg1); + 80022fa: 687b ldr r3, [r7, #4] + 80022fc: 695b ldr r3, [r3, #20] + 80022fe: 019a lsls r2, r3, #6 + 8002300: 687b ldr r3, [r7, #4] + 8002302: 6a1b ldr r3, [r3, #32] + 8002304: 041b lsls r3, r3, #16 + 8002306: 431a orrs r2, r3 + 8002308: 693b ldr r3, [r7, #16] + 800230a: 061b lsls r3, r3, #24 + 800230c: 431a orrs r2, r3 + 800230e: 68fb ldr r3, [r7, #12] + 8002310: 071b lsls r3, r3, #28 + 8002312: 4929 ldr r1, [pc, #164] ; (80023b8 ) + 8002314: 4313 orrs r3, r2 + 8002316: f8c1 3088 str.w r3, [r1, #136] ; 0x88 + } + +#if defined(STM32F746xx) || defined(STM32F756xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) || defined (STM32F750xx) + /*---------------------------- LTDC configuration -------------------------------*/ + if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == (RCC_PERIPHCLK_LTDC)) + 800231a: 687b ldr r3, [r7, #4] + 800231c: 681b ldr r3, [r3, #0] + 800231e: f003 0308 and.w r3, r3, #8 + 8002322: 2b00 cmp r3, #0 + 8002324: d028 beq.n 8002378 + { + assert_param(IS_RCC_PLLSAIR_VALUE(PeriphClkInit->PLLSAI.PLLSAIR)); + assert_param(IS_RCC_PLLSAI_DIVR_VALUE(PeriphClkInit->PLLSAIDivR)); + + /* Read PLLSAIP and PLLSAIQ value from PLLSAICFGR register (these value are not needed for LTDC configuration) */ + tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIQ) >> RCC_PLLSAICFGR_PLLSAIQ_Pos); + 8002326: 4b24 ldr r3, [pc, #144] ; (80023b8 ) + 8002328: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 800232c: 0e1b lsrs r3, r3, #24 + 800232e: f003 030f and.w r3, r3, #15 + 8002332: 613b str r3, [r7, #16] + tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos); + 8002334: 4b20 ldr r3, [pc, #128] ; (80023b8 ) + 8002336: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 800233a: 0c1b lsrs r3, r3, #16 + 800233c: f003 0303 and.w r3, r3, #3 + 8002340: 60fb str r3, [r7, #12] + + /* PLLSAI_VCO Input = PLL_SOURCE/PLLM */ + /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN */ + /* LTDC_CLK(first level) = PLLSAI_VCO Output/PLLSAIR */ + __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , tmpreg1, tmpreg0, PeriphClkInit->PLLSAI.PLLSAIR); + 8002342: 687b ldr r3, [r7, #4] + 8002344: 695b ldr r3, [r3, #20] + 8002346: 019a lsls r2, r3, #6 + 8002348: 68fb ldr r3, [r7, #12] + 800234a: 041b lsls r3, r3, #16 + 800234c: 431a orrs r2, r3 + 800234e: 693b ldr r3, [r7, #16] + 8002350: 061b lsls r3, r3, #24 + 8002352: 431a orrs r2, r3 + 8002354: 687b ldr r3, [r7, #4] + 8002356: 69db ldr r3, [r3, #28] + 8002358: 071b lsls r3, r3, #28 + 800235a: 4917 ldr r1, [pc, #92] ; (80023b8 ) + 800235c: 4313 orrs r3, r2 + 800235e: f8c1 3088 str.w r3, [r1, #136] ; 0x88 + + /* LTDC_CLK = LTDC_CLK(first level)/PLLSAIDIVR */ + __HAL_RCC_PLLSAI_PLLSAICLKDIVR_CONFIG(PeriphClkInit->PLLSAIDivR); + 8002362: 4b15 ldr r3, [pc, #84] ; (80023b8 ) + 8002364: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c + 8002368: f423 3240 bic.w r2, r3, #196608 ; 0x30000 + 800236c: 687b ldr r3, [r7, #4] + 800236e: 6adb ldr r3, [r3, #44] ; 0x2c + 8002370: 4911 ldr r1, [pc, #68] ; (80023b8 ) + 8002372: 4313 orrs r3, r2 + 8002374: f8c1 308c str.w r3, [r1, #140] ; 0x8c + } +#endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */ + + /* Enable PLLSAI Clock */ + __HAL_RCC_PLLSAI_ENABLE(); + 8002378: 4b0f ldr r3, [pc, #60] ; (80023b8 ) + 800237a: 681b ldr r3, [r3, #0] + 800237c: 4a0e ldr r2, [pc, #56] ; (80023b8 ) + 800237e: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8002382: 6013 str r3, [r2, #0] + + /* Get Start Tick*/ + tickstart = HAL_GetTick(); + 8002384: f7fe f932 bl 80005ec + 8002388: 6178 str r0, [r7, #20] + + /* Wait till PLLSAI is ready */ + while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) + 800238a: e008 b.n 800239e + { + if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE) + 800238c: f7fe f92e bl 80005ec + 8002390: 4602 mov r2, r0 + 8002392: 697b ldr r3, [r7, #20] + 8002394: 1ad3 subs r3, r2, r3 + 8002396: 2b64 cmp r3, #100 ; 0x64 + 8002398: d901 bls.n 800239e + { + /* return in case of Timeout detected */ + return HAL_TIMEOUT; + 800239a: 2303 movs r3, #3 + 800239c: e007 b.n 80023ae + while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) + 800239e: 4b06 ldr r3, [pc, #24] ; (80023b8 ) + 80023a0: 681b ldr r3, [r3, #0] + 80023a2: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 + 80023a6: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 + 80023aa: d1ef bne.n 800238c + } + } + } + return HAL_OK; + 80023ac: 2300 movs r3, #0 +} + 80023ae: 4618 mov r0, r3 + 80023b0: 3720 adds r7, #32 + 80023b2: 46bd mov sp, r7 + 80023b4: bd80 pop {r7, pc} + 80023b6: bf00 nop + 80023b8: 40023800 .word 0x40023800 + +080023bc : + * Ex: call @ref HAL_TIM_Base_DeInit() before HAL_TIM_Base_Init() + * @param htim TIM Base handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) +{ + 80023bc: b580 push {r7, lr} + 80023be: b082 sub sp, #8 + 80023c0: af00 add r7, sp, #0 + 80023c2: 6078 str r0, [r7, #4] + /* Check the TIM handle allocation */ + if (htim == NULL) + 80023c4: 687b ldr r3, [r7, #4] + 80023c6: 2b00 cmp r3, #0 + 80023c8: d101 bne.n 80023ce + { + return HAL_ERROR; + 80023ca: 2301 movs r3, #1 + 80023cc: e01d b.n 800240a + assert_param(IS_TIM_INSTANCE(htim->Instance)); + assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); + assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); + assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); + + if (htim->State == HAL_TIM_STATE_RESET) + 80023ce: 687b ldr r3, [r7, #4] + 80023d0: f893 303d ldrb.w r3, [r3, #61] ; 0x3d + 80023d4: b2db uxtb r3, r3 + 80023d6: 2b00 cmp r3, #0 + 80023d8: d106 bne.n 80023e8 + { + /* Allocate lock resource and initialize it */ + htim->Lock = HAL_UNLOCKED; + 80023da: 687b ldr r3, [r7, #4] + 80023dc: 2200 movs r2, #0 + 80023de: f883 203c strb.w r2, [r3, #60] ; 0x3c + } + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + htim->Base_MspInitCallback(htim); +#else + /* Init the low level hardware : GPIO, CLOCK, NVIC */ + HAL_TIM_Base_MspInit(htim); + 80023e2: 6878 ldr r0, [r7, #4] + 80023e4: f003 f996 bl 8005714 +#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ + } + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + 80023e8: 687b ldr r3, [r7, #4] + 80023ea: 2202 movs r2, #2 + 80023ec: f883 203d strb.w r2, [r3, #61] ; 0x3d + + /* Set the Time Base configuration */ + TIM_Base_SetConfig(htim->Instance, &htim->Init); + 80023f0: 687b ldr r3, [r7, #4] + 80023f2: 681a ldr r2, [r3, #0] + 80023f4: 687b ldr r3, [r7, #4] + 80023f6: 3304 adds r3, #4 + 80023f8: 4619 mov r1, r3 + 80023fa: 4610 mov r0, r2 + 80023fc: f000 f8ee bl 80025dc + + /* Initialize the TIM state*/ + htim->State = HAL_TIM_STATE_READY; + 8002400: 687b ldr r3, [r7, #4] + 8002402: 2201 movs r2, #1 + 8002404: f883 203d strb.w r2, [r3, #61] ; 0x3d + + return HAL_OK; + 8002408: 2300 movs r3, #0 +} + 800240a: 4618 mov r0, r3 + 800240c: 3708 adds r7, #8 + 800240e: 46bd mov sp, r7 + 8002410: bd80 pop {r7, pc} + ... + +08002414 : + * @brief Starts the TIM Base generation. + * @param htim TIM Base handle + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim) +{ + 8002414: b480 push {r7} + 8002416: b085 sub sp, #20 + 8002418: af00 add r7, sp, #0 + 800241a: 6078 str r0, [r7, #4] + + /* Check the parameters */ + assert_param(IS_TIM_INSTANCE(htim->Instance)); + + /* Set the TIM state */ + htim->State = HAL_TIM_STATE_BUSY; + 800241c: 687b ldr r3, [r7, #4] + 800241e: 2202 movs r2, #2 + 8002420: f883 203d strb.w r2, [r3, #61] ; 0x3d + + /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ + tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; + 8002424: 687b ldr r3, [r7, #4] + 8002426: 681b ldr r3, [r3, #0] + 8002428: 689a ldr r2, [r3, #8] + 800242a: 4b0e ldr r3, [pc, #56] ; (8002464 ) + 800242c: 4013 ands r3, r2 + 800242e: 60fb str r3, [r7, #12] + if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) + 8002430: 68fb ldr r3, [r7, #12] + 8002432: 2b06 cmp r3, #6 + 8002434: d00b beq.n 800244e + 8002436: 68fb ldr r3, [r7, #12] + 8002438: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 800243c: d007 beq.n 800244e + { + __HAL_TIM_ENABLE(htim); + 800243e: 687b ldr r3, [r7, #4] + 8002440: 681b ldr r3, [r3, #0] + 8002442: 681a ldr r2, [r3, #0] + 8002444: 687b ldr r3, [r7, #4] + 8002446: 681b ldr r3, [r3, #0] + 8002448: f042 0201 orr.w r2, r2, #1 + 800244c: 601a str r2, [r3, #0] + } + + /* Change the TIM state*/ + htim->State = HAL_TIM_STATE_READY; + 800244e: 687b ldr r3, [r7, #4] + 8002450: 2201 movs r2, #1 + 8002452: f883 203d strb.w r2, [r3, #61] ; 0x3d + + /* Return function status */ + return HAL_OK; + 8002456: 2300 movs r3, #0 +} + 8002458: 4618 mov r0, r3 + 800245a: 3714 adds r7, #20 + 800245c: 46bd mov sp, r7 + 800245e: f85d 7b04 ldr.w r7, [sp], #4 + 8002462: 4770 bx lr + 8002464: 00010007 .word 0x00010007 + +08002468 : + * @param sClockSourceConfig pointer to a TIM_ClockConfigTypeDef structure that + * contains the clock source information for the TIM peripheral. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, TIM_ClockConfigTypeDef *sClockSourceConfig) +{ + 8002468: b580 push {r7, lr} + 800246a: b084 sub sp, #16 + 800246c: af00 add r7, sp, #0 + 800246e: 6078 str r0, [r7, #4] + 8002470: 6039 str r1, [r7, #0] + uint32_t tmpsmcr; + + /* Process Locked */ + __HAL_LOCK(htim); + 8002472: 687b ldr r3, [r7, #4] + 8002474: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 8002478: 2b01 cmp r3, #1 + 800247a: d101 bne.n 8002480 + 800247c: 2302 movs r3, #2 + 800247e: e0a6 b.n 80025ce + 8002480: 687b ldr r3, [r7, #4] + 8002482: 2201 movs r2, #1 + 8002484: f883 203c strb.w r2, [r3, #60] ; 0x3c + + htim->State = HAL_TIM_STATE_BUSY; + 8002488: 687b ldr r3, [r7, #4] + 800248a: 2202 movs r2, #2 + 800248c: f883 203d strb.w r2, [r3, #61] ; 0x3d + + /* Check the parameters */ + assert_param(IS_TIM_CLOCKSOURCE(sClockSourceConfig->ClockSource)); + + /* Reset the SMS, TS, ECE, ETPS and ETRF bits */ + tmpsmcr = htim->Instance->SMCR; + 8002490: 687b ldr r3, [r7, #4] + 8002492: 681b ldr r3, [r3, #0] + 8002494: 689b ldr r3, [r3, #8] + 8002496: 60fb str r3, [r7, #12] + tmpsmcr &= ~(TIM_SMCR_SMS | TIM_SMCR_TS); + 8002498: 68fa ldr r2, [r7, #12] + 800249a: 4b4f ldr r3, [pc, #316] ; (80025d8 ) + 800249c: 4013 ands r3, r2 + 800249e: 60fb str r3, [r7, #12] + tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP); + 80024a0: 68fb ldr r3, [r7, #12] + 80024a2: f423 437f bic.w r3, r3, #65280 ; 0xff00 + 80024a6: 60fb str r3, [r7, #12] + htim->Instance->SMCR = tmpsmcr; + 80024a8: 687b ldr r3, [r7, #4] + 80024aa: 681b ldr r3, [r3, #0] + 80024ac: 68fa ldr r2, [r7, #12] + 80024ae: 609a str r2, [r3, #8] + + switch (sClockSourceConfig->ClockSource) + 80024b0: 683b ldr r3, [r7, #0] + 80024b2: 681b ldr r3, [r3, #0] + 80024b4: 2b40 cmp r3, #64 ; 0x40 + 80024b6: d067 beq.n 8002588 + 80024b8: 2b40 cmp r3, #64 ; 0x40 + 80024ba: d80b bhi.n 80024d4 + 80024bc: 2b10 cmp r3, #16 + 80024be: d073 beq.n 80025a8 + 80024c0: 2b10 cmp r3, #16 + 80024c2: d802 bhi.n 80024ca + 80024c4: 2b00 cmp r3, #0 + 80024c6: d06f beq.n 80025a8 + TIM_ITRx_SetConfig(htim->Instance, sClockSourceConfig->ClockSource); + break; + } + + default: + break; + 80024c8: e078 b.n 80025bc + switch (sClockSourceConfig->ClockSource) + 80024ca: 2b20 cmp r3, #32 + 80024cc: d06c beq.n 80025a8 + 80024ce: 2b30 cmp r3, #48 ; 0x30 + 80024d0: d06a beq.n 80025a8 + break; + 80024d2: e073 b.n 80025bc + switch (sClockSourceConfig->ClockSource) + 80024d4: 2b70 cmp r3, #112 ; 0x70 + 80024d6: d00d beq.n 80024f4 + 80024d8: 2b70 cmp r3, #112 ; 0x70 + 80024da: d804 bhi.n 80024e6 + 80024dc: 2b50 cmp r3, #80 ; 0x50 + 80024de: d033 beq.n 8002548 + 80024e0: 2b60 cmp r3, #96 ; 0x60 + 80024e2: d041 beq.n 8002568 + break; + 80024e4: e06a b.n 80025bc + switch (sClockSourceConfig->ClockSource) + 80024e6: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 + 80024ea: d066 beq.n 80025ba + 80024ec: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 80024f0: d017 beq.n 8002522 + break; + 80024f2: e063 b.n 80025bc + TIM_ETR_SetConfig(htim->Instance, + 80024f4: 687b ldr r3, [r7, #4] + 80024f6: 6818 ldr r0, [r3, #0] + 80024f8: 683b ldr r3, [r7, #0] + 80024fa: 6899 ldr r1, [r3, #8] + 80024fc: 683b ldr r3, [r7, #0] + 80024fe: 685a ldr r2, [r3, #4] + 8002500: 683b ldr r3, [r7, #0] + 8002502: 68db ldr r3, [r3, #12] + 8002504: f000 f984 bl 8002810 + tmpsmcr = htim->Instance->SMCR; + 8002508: 687b ldr r3, [r7, #4] + 800250a: 681b ldr r3, [r3, #0] + 800250c: 689b ldr r3, [r3, #8] + 800250e: 60fb str r3, [r7, #12] + tmpsmcr |= (TIM_SLAVEMODE_EXTERNAL1 | TIM_CLOCKSOURCE_ETRMODE1); + 8002510: 68fb ldr r3, [r7, #12] + 8002512: f043 0377 orr.w r3, r3, #119 ; 0x77 + 8002516: 60fb str r3, [r7, #12] + htim->Instance->SMCR = tmpsmcr; + 8002518: 687b ldr r3, [r7, #4] + 800251a: 681b ldr r3, [r3, #0] + 800251c: 68fa ldr r2, [r7, #12] + 800251e: 609a str r2, [r3, #8] + break; + 8002520: e04c b.n 80025bc + TIM_ETR_SetConfig(htim->Instance, + 8002522: 687b ldr r3, [r7, #4] + 8002524: 6818 ldr r0, [r3, #0] + 8002526: 683b ldr r3, [r7, #0] + 8002528: 6899 ldr r1, [r3, #8] + 800252a: 683b ldr r3, [r7, #0] + 800252c: 685a ldr r2, [r3, #4] + 800252e: 683b ldr r3, [r7, #0] + 8002530: 68db ldr r3, [r3, #12] + 8002532: f000 f96d bl 8002810 + htim->Instance->SMCR |= TIM_SMCR_ECE; + 8002536: 687b ldr r3, [r7, #4] + 8002538: 681b ldr r3, [r3, #0] + 800253a: 689a ldr r2, [r3, #8] + 800253c: 687b ldr r3, [r7, #4] + 800253e: 681b ldr r3, [r3, #0] + 8002540: f442 4280 orr.w r2, r2, #16384 ; 0x4000 + 8002544: 609a str r2, [r3, #8] + break; + 8002546: e039 b.n 80025bc + TIM_TI1_ConfigInputStage(htim->Instance, + 8002548: 687b ldr r3, [r7, #4] + 800254a: 6818 ldr r0, [r3, #0] + 800254c: 683b ldr r3, [r7, #0] + 800254e: 6859 ldr r1, [r3, #4] + 8002550: 683b ldr r3, [r7, #0] + 8002552: 68db ldr r3, [r3, #12] + 8002554: 461a mov r2, r3 + 8002556: f000 f8e1 bl 800271c + TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1); + 800255a: 687b ldr r3, [r7, #4] + 800255c: 681b ldr r3, [r3, #0] + 800255e: 2150 movs r1, #80 ; 0x50 + 8002560: 4618 mov r0, r3 + 8002562: f000 f93a bl 80027da + break; + 8002566: e029 b.n 80025bc + TIM_TI2_ConfigInputStage(htim->Instance, + 8002568: 687b ldr r3, [r7, #4] + 800256a: 6818 ldr r0, [r3, #0] + 800256c: 683b ldr r3, [r7, #0] + 800256e: 6859 ldr r1, [r3, #4] + 8002570: 683b ldr r3, [r7, #0] + 8002572: 68db ldr r3, [r3, #12] + 8002574: 461a mov r2, r3 + 8002576: f000 f900 bl 800277a + TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI2); + 800257a: 687b ldr r3, [r7, #4] + 800257c: 681b ldr r3, [r3, #0] + 800257e: 2160 movs r1, #96 ; 0x60 + 8002580: 4618 mov r0, r3 + 8002582: f000 f92a bl 80027da + break; + 8002586: e019 b.n 80025bc + TIM_TI1_ConfigInputStage(htim->Instance, + 8002588: 687b ldr r3, [r7, #4] + 800258a: 6818 ldr r0, [r3, #0] + 800258c: 683b ldr r3, [r7, #0] + 800258e: 6859 ldr r1, [r3, #4] + 8002590: 683b ldr r3, [r7, #0] + 8002592: 68db ldr r3, [r3, #12] + 8002594: 461a mov r2, r3 + 8002596: f000 f8c1 bl 800271c + TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1ED); + 800259a: 687b ldr r3, [r7, #4] + 800259c: 681b ldr r3, [r3, #0] + 800259e: 2140 movs r1, #64 ; 0x40 + 80025a0: 4618 mov r0, r3 + 80025a2: f000 f91a bl 80027da + break; + 80025a6: e009 b.n 80025bc + TIM_ITRx_SetConfig(htim->Instance, sClockSourceConfig->ClockSource); + 80025a8: 687b ldr r3, [r7, #4] + 80025aa: 681a ldr r2, [r3, #0] + 80025ac: 683b ldr r3, [r7, #0] + 80025ae: 681b ldr r3, [r3, #0] + 80025b0: 4619 mov r1, r3 + 80025b2: 4610 mov r0, r2 + 80025b4: f000 f911 bl 80027da + break; + 80025b8: e000 b.n 80025bc + break; + 80025ba: bf00 nop + } + htim->State = HAL_TIM_STATE_READY; + 80025bc: 687b ldr r3, [r7, #4] + 80025be: 2201 movs r2, #1 + 80025c0: f883 203d strb.w r2, [r3, #61] ; 0x3d + + __HAL_UNLOCK(htim); + 80025c4: 687b ldr r3, [r7, #4] + 80025c6: 2200 movs r2, #0 + 80025c8: f883 203c strb.w r2, [r3, #60] ; 0x3c + + return HAL_OK; + 80025cc: 2300 movs r3, #0 +} + 80025ce: 4618 mov r0, r3 + 80025d0: 3710 adds r7, #16 + 80025d2: 46bd mov sp, r7 + 80025d4: bd80 pop {r7, pc} + 80025d6: bf00 nop + 80025d8: fffeff88 .word 0xfffeff88 + +080025dc : + * @param TIMx TIM peripheral + * @param Structure TIM Base configuration structure + * @retval None + */ +void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure) +{ + 80025dc: b480 push {r7} + 80025de: b085 sub sp, #20 + 80025e0: af00 add r7, sp, #0 + 80025e2: 6078 str r0, [r7, #4] + 80025e4: 6039 str r1, [r7, #0] + uint32_t tmpcr1; + tmpcr1 = TIMx->CR1; + 80025e6: 687b ldr r3, [r7, #4] + 80025e8: 681b ldr r3, [r3, #0] + 80025ea: 60fb str r3, [r7, #12] + + /* Set TIM Time Base Unit parameters ---------------------------------------*/ + if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx)) + 80025ec: 687b ldr r3, [r7, #4] + 80025ee: 4a40 ldr r2, [pc, #256] ; (80026f0 ) + 80025f0: 4293 cmp r3, r2 + 80025f2: d013 beq.n 800261c + 80025f4: 687b ldr r3, [r7, #4] + 80025f6: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 80025fa: d00f beq.n 800261c + 80025fc: 687b ldr r3, [r7, #4] + 80025fe: 4a3d ldr r2, [pc, #244] ; (80026f4 ) + 8002600: 4293 cmp r3, r2 + 8002602: d00b beq.n 800261c + 8002604: 687b ldr r3, [r7, #4] + 8002606: 4a3c ldr r2, [pc, #240] ; (80026f8 ) + 8002608: 4293 cmp r3, r2 + 800260a: d007 beq.n 800261c + 800260c: 687b ldr r3, [r7, #4] + 800260e: 4a3b ldr r2, [pc, #236] ; (80026fc ) + 8002610: 4293 cmp r3, r2 + 8002612: d003 beq.n 800261c + 8002614: 687b ldr r3, [r7, #4] + 8002616: 4a3a ldr r2, [pc, #232] ; (8002700 ) + 8002618: 4293 cmp r3, r2 + 800261a: d108 bne.n 800262e + { + /* Select the Counter Mode */ + tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS); + 800261c: 68fb ldr r3, [r7, #12] + 800261e: f023 0370 bic.w r3, r3, #112 ; 0x70 + 8002622: 60fb str r3, [r7, #12] + tmpcr1 |= Structure->CounterMode; + 8002624: 683b ldr r3, [r7, #0] + 8002626: 685b ldr r3, [r3, #4] + 8002628: 68fa ldr r2, [r7, #12] + 800262a: 4313 orrs r3, r2 + 800262c: 60fb str r3, [r7, #12] + } + + if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx)) + 800262e: 687b ldr r3, [r7, #4] + 8002630: 4a2f ldr r2, [pc, #188] ; (80026f0 ) + 8002632: 4293 cmp r3, r2 + 8002634: d02b beq.n 800268e + 8002636: 687b ldr r3, [r7, #4] + 8002638: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 800263c: d027 beq.n 800268e + 800263e: 687b ldr r3, [r7, #4] + 8002640: 4a2c ldr r2, [pc, #176] ; (80026f4 ) + 8002642: 4293 cmp r3, r2 + 8002644: d023 beq.n 800268e + 8002646: 687b ldr r3, [r7, #4] + 8002648: 4a2b ldr r2, [pc, #172] ; (80026f8 ) + 800264a: 4293 cmp r3, r2 + 800264c: d01f beq.n 800268e + 800264e: 687b ldr r3, [r7, #4] + 8002650: 4a2a ldr r2, [pc, #168] ; (80026fc ) + 8002652: 4293 cmp r3, r2 + 8002654: d01b beq.n 800268e + 8002656: 687b ldr r3, [r7, #4] + 8002658: 4a29 ldr r2, [pc, #164] ; (8002700 ) + 800265a: 4293 cmp r3, r2 + 800265c: d017 beq.n 800268e + 800265e: 687b ldr r3, [r7, #4] + 8002660: 4a28 ldr r2, [pc, #160] ; (8002704 ) + 8002662: 4293 cmp r3, r2 + 8002664: d013 beq.n 800268e + 8002666: 687b ldr r3, [r7, #4] + 8002668: 4a27 ldr r2, [pc, #156] ; (8002708 ) + 800266a: 4293 cmp r3, r2 + 800266c: d00f beq.n 800268e + 800266e: 687b ldr r3, [r7, #4] + 8002670: 4a26 ldr r2, [pc, #152] ; (800270c ) + 8002672: 4293 cmp r3, r2 + 8002674: d00b beq.n 800268e + 8002676: 687b ldr r3, [r7, #4] + 8002678: 4a25 ldr r2, [pc, #148] ; (8002710 ) + 800267a: 4293 cmp r3, r2 + 800267c: d007 beq.n 800268e + 800267e: 687b ldr r3, [r7, #4] + 8002680: 4a24 ldr r2, [pc, #144] ; (8002714 ) + 8002682: 4293 cmp r3, r2 + 8002684: d003 beq.n 800268e + 8002686: 687b ldr r3, [r7, #4] + 8002688: 4a23 ldr r2, [pc, #140] ; (8002718 ) + 800268a: 4293 cmp r3, r2 + 800268c: d108 bne.n 80026a0 + { + /* Set the clock division */ + tmpcr1 &= ~TIM_CR1_CKD; + 800268e: 68fb ldr r3, [r7, #12] + 8002690: f423 7340 bic.w r3, r3, #768 ; 0x300 + 8002694: 60fb str r3, [r7, #12] + tmpcr1 |= (uint32_t)Structure->ClockDivision; + 8002696: 683b ldr r3, [r7, #0] + 8002698: 68db ldr r3, [r3, #12] + 800269a: 68fa ldr r2, [r7, #12] + 800269c: 4313 orrs r3, r2 + 800269e: 60fb str r3, [r7, #12] + } + + /* Set the auto-reload preload */ + MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload); + 80026a0: 68fb ldr r3, [r7, #12] + 80026a2: f023 0280 bic.w r2, r3, #128 ; 0x80 + 80026a6: 683b ldr r3, [r7, #0] + 80026a8: 695b ldr r3, [r3, #20] + 80026aa: 4313 orrs r3, r2 + 80026ac: 60fb str r3, [r7, #12] + + TIMx->CR1 = tmpcr1; + 80026ae: 687b ldr r3, [r7, #4] + 80026b0: 68fa ldr r2, [r7, #12] + 80026b2: 601a str r2, [r3, #0] + + /* Set the Autoreload value */ + TIMx->ARR = (uint32_t)Structure->Period ; + 80026b4: 683b ldr r3, [r7, #0] + 80026b6: 689a ldr r2, [r3, #8] + 80026b8: 687b ldr r3, [r7, #4] + 80026ba: 62da str r2, [r3, #44] ; 0x2c + + /* Set the Prescaler value */ + TIMx->PSC = Structure->Prescaler; + 80026bc: 683b ldr r3, [r7, #0] + 80026be: 681a ldr r2, [r3, #0] + 80026c0: 687b ldr r3, [r7, #4] + 80026c2: 629a str r2, [r3, #40] ; 0x28 + + if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx)) + 80026c4: 687b ldr r3, [r7, #4] + 80026c6: 4a0a ldr r2, [pc, #40] ; (80026f0 ) + 80026c8: 4293 cmp r3, r2 + 80026ca: d003 beq.n 80026d4 + 80026cc: 687b ldr r3, [r7, #4] + 80026ce: 4a0c ldr r2, [pc, #48] ; (8002700 ) + 80026d0: 4293 cmp r3, r2 + 80026d2: d103 bne.n 80026dc + { + /* Set the Repetition Counter value */ + TIMx->RCR = Structure->RepetitionCounter; + 80026d4: 683b ldr r3, [r7, #0] + 80026d6: 691a ldr r2, [r3, #16] + 80026d8: 687b ldr r3, [r7, #4] + 80026da: 631a str r2, [r3, #48] ; 0x30 + } + + /* Generate an update event to reload the Prescaler + and the repetition counter (only for advanced timer) value immediately */ + TIMx->EGR = TIM_EGR_UG; + 80026dc: 687b ldr r3, [r7, #4] + 80026de: 2201 movs r2, #1 + 80026e0: 615a str r2, [r3, #20] +} + 80026e2: bf00 nop + 80026e4: 3714 adds r7, #20 + 80026e6: 46bd mov sp, r7 + 80026e8: f85d 7b04 ldr.w r7, [sp], #4 + 80026ec: 4770 bx lr + 80026ee: bf00 nop + 80026f0: 40010000 .word 0x40010000 + 80026f4: 40000400 .word 0x40000400 + 80026f8: 40000800 .word 0x40000800 + 80026fc: 40000c00 .word 0x40000c00 + 8002700: 40010400 .word 0x40010400 + 8002704: 40014000 .word 0x40014000 + 8002708: 40014400 .word 0x40014400 + 800270c: 40014800 .word 0x40014800 + 8002710: 40001800 .word 0x40001800 + 8002714: 40001c00 .word 0x40001c00 + 8002718: 40002000 .word 0x40002000 + +0800271c : + * @param TIM_ICFilter Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * @retval None + */ +static void TIM_TI1_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter) +{ + 800271c: b480 push {r7} + 800271e: b087 sub sp, #28 + 8002720: af00 add r7, sp, #0 + 8002722: 60f8 str r0, [r7, #12] + 8002724: 60b9 str r1, [r7, #8] + 8002726: 607a str r2, [r7, #4] + uint32_t tmpccmr1; + uint32_t tmpccer; + + /* Disable the Channel 1: Reset the CC1E Bit */ + tmpccer = TIMx->CCER; + 8002728: 68fb ldr r3, [r7, #12] + 800272a: 6a1b ldr r3, [r3, #32] + 800272c: 617b str r3, [r7, #20] + TIMx->CCER &= ~TIM_CCER_CC1E; + 800272e: 68fb ldr r3, [r7, #12] + 8002730: 6a1b ldr r3, [r3, #32] + 8002732: f023 0201 bic.w r2, r3, #1 + 8002736: 68fb ldr r3, [r7, #12] + 8002738: 621a str r2, [r3, #32] + tmpccmr1 = TIMx->CCMR1; + 800273a: 68fb ldr r3, [r7, #12] + 800273c: 699b ldr r3, [r3, #24] + 800273e: 613b str r3, [r7, #16] + + /* Set the filter */ + tmpccmr1 &= ~TIM_CCMR1_IC1F; + 8002740: 693b ldr r3, [r7, #16] + 8002742: f023 03f0 bic.w r3, r3, #240 ; 0xf0 + 8002746: 613b str r3, [r7, #16] + tmpccmr1 |= (TIM_ICFilter << 4U); + 8002748: 687b ldr r3, [r7, #4] + 800274a: 011b lsls r3, r3, #4 + 800274c: 693a ldr r2, [r7, #16] + 800274e: 4313 orrs r3, r2 + 8002750: 613b str r3, [r7, #16] + + /* Select the Polarity and set the CC1E Bit */ + tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP); + 8002752: 697b ldr r3, [r7, #20] + 8002754: f023 030a bic.w r3, r3, #10 + 8002758: 617b str r3, [r7, #20] + tmpccer |= TIM_ICPolarity; + 800275a: 697a ldr r2, [r7, #20] + 800275c: 68bb ldr r3, [r7, #8] + 800275e: 4313 orrs r3, r2 + 8002760: 617b str r3, [r7, #20] + + /* Write to TIMx CCMR1 and CCER registers */ + TIMx->CCMR1 = tmpccmr1; + 8002762: 68fb ldr r3, [r7, #12] + 8002764: 693a ldr r2, [r7, #16] + 8002766: 619a str r2, [r3, #24] + TIMx->CCER = tmpccer; + 8002768: 68fb ldr r3, [r7, #12] + 800276a: 697a ldr r2, [r7, #20] + 800276c: 621a str r2, [r3, #32] +} + 800276e: bf00 nop + 8002770: 371c adds r7, #28 + 8002772: 46bd mov sp, r7 + 8002774: f85d 7b04 ldr.w r7, [sp], #4 + 8002778: 4770 bx lr + +0800277a : + * @param TIM_ICFilter Specifies the Input Capture Filter. + * This parameter must be a value between 0x00 and 0x0F. + * @retval None + */ +static void TIM_TI2_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter) +{ + 800277a: b480 push {r7} + 800277c: b087 sub sp, #28 + 800277e: af00 add r7, sp, #0 + 8002780: 60f8 str r0, [r7, #12] + 8002782: 60b9 str r1, [r7, #8] + 8002784: 607a str r2, [r7, #4] + uint32_t tmpccmr1; + uint32_t tmpccer; + + /* Disable the Channel 2: Reset the CC2E Bit */ + TIMx->CCER &= ~TIM_CCER_CC2E; + 8002786: 68fb ldr r3, [r7, #12] + 8002788: 6a1b ldr r3, [r3, #32] + 800278a: f023 0210 bic.w r2, r3, #16 + 800278e: 68fb ldr r3, [r7, #12] + 8002790: 621a str r2, [r3, #32] + tmpccmr1 = TIMx->CCMR1; + 8002792: 68fb ldr r3, [r7, #12] + 8002794: 699b ldr r3, [r3, #24] + 8002796: 617b str r3, [r7, #20] + tmpccer = TIMx->CCER; + 8002798: 68fb ldr r3, [r7, #12] + 800279a: 6a1b ldr r3, [r3, #32] + 800279c: 613b str r3, [r7, #16] + + /* Set the filter */ + tmpccmr1 &= ~TIM_CCMR1_IC2F; + 800279e: 697b ldr r3, [r7, #20] + 80027a0: f423 4370 bic.w r3, r3, #61440 ; 0xf000 + 80027a4: 617b str r3, [r7, #20] + tmpccmr1 |= (TIM_ICFilter << 12U); + 80027a6: 687b ldr r3, [r7, #4] + 80027a8: 031b lsls r3, r3, #12 + 80027aa: 697a ldr r2, [r7, #20] + 80027ac: 4313 orrs r3, r2 + 80027ae: 617b str r3, [r7, #20] + + /* Select the Polarity and set the CC2E Bit */ + tmpccer &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP); + 80027b0: 693b ldr r3, [r7, #16] + 80027b2: f023 03a0 bic.w r3, r3, #160 ; 0xa0 + 80027b6: 613b str r3, [r7, #16] + tmpccer |= (TIM_ICPolarity << 4U); + 80027b8: 68bb ldr r3, [r7, #8] + 80027ba: 011b lsls r3, r3, #4 + 80027bc: 693a ldr r2, [r7, #16] + 80027be: 4313 orrs r3, r2 + 80027c0: 613b str r3, [r7, #16] + + /* Write to TIMx CCMR1 and CCER registers */ + TIMx->CCMR1 = tmpccmr1 ; + 80027c2: 68fb ldr r3, [r7, #12] + 80027c4: 697a ldr r2, [r7, #20] + 80027c6: 619a str r2, [r3, #24] + TIMx->CCER = tmpccer; + 80027c8: 68fb ldr r3, [r7, #12] + 80027ca: 693a ldr r2, [r7, #16] + 80027cc: 621a str r2, [r3, #32] +} + 80027ce: bf00 nop + 80027d0: 371c adds r7, #28 + 80027d2: 46bd mov sp, r7 + 80027d4: f85d 7b04 ldr.w r7, [sp], #4 + 80027d8: 4770 bx lr + +080027da : + * @arg TIM_TS_TI2FP2: Filtered Timer Input 2 + * @arg TIM_TS_ETRF: External Trigger input + * @retval None + */ +static void TIM_ITRx_SetConfig(TIM_TypeDef *TIMx, uint32_t InputTriggerSource) +{ + 80027da: b480 push {r7} + 80027dc: b085 sub sp, #20 + 80027de: af00 add r7, sp, #0 + 80027e0: 6078 str r0, [r7, #4] + 80027e2: 6039 str r1, [r7, #0] + uint32_t tmpsmcr; + + /* Get the TIMx SMCR register value */ + tmpsmcr = TIMx->SMCR; + 80027e4: 687b ldr r3, [r7, #4] + 80027e6: 689b ldr r3, [r3, #8] + 80027e8: 60fb str r3, [r7, #12] + /* Reset the TS Bits */ + tmpsmcr &= ~TIM_SMCR_TS; + 80027ea: 68fb ldr r3, [r7, #12] + 80027ec: f023 0370 bic.w r3, r3, #112 ; 0x70 + 80027f0: 60fb str r3, [r7, #12] + /* Set the Input Trigger source and the slave mode*/ + tmpsmcr |= (InputTriggerSource | TIM_SLAVEMODE_EXTERNAL1); + 80027f2: 683a ldr r2, [r7, #0] + 80027f4: 68fb ldr r3, [r7, #12] + 80027f6: 4313 orrs r3, r2 + 80027f8: f043 0307 orr.w r3, r3, #7 + 80027fc: 60fb str r3, [r7, #12] + /* Write to TIMx SMCR */ + TIMx->SMCR = tmpsmcr; + 80027fe: 687b ldr r3, [r7, #4] + 8002800: 68fa ldr r2, [r7, #12] + 8002802: 609a str r2, [r3, #8] +} + 8002804: bf00 nop + 8002806: 3714 adds r7, #20 + 8002808: 46bd mov sp, r7 + 800280a: f85d 7b04 ldr.w r7, [sp], #4 + 800280e: 4770 bx lr + +08002810 : + * This parameter must be a value between 0x00 and 0x0F + * @retval None + */ +void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler, + uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter) +{ + 8002810: b480 push {r7} + 8002812: b087 sub sp, #28 + 8002814: af00 add r7, sp, #0 + 8002816: 60f8 str r0, [r7, #12] + 8002818: 60b9 str r1, [r7, #8] + 800281a: 607a str r2, [r7, #4] + 800281c: 603b str r3, [r7, #0] + uint32_t tmpsmcr; + + tmpsmcr = TIMx->SMCR; + 800281e: 68fb ldr r3, [r7, #12] + 8002820: 689b ldr r3, [r3, #8] + 8002822: 617b str r3, [r7, #20] + + /* Reset the ETR Bits */ + tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP); + 8002824: 697b ldr r3, [r7, #20] + 8002826: f423 437f bic.w r3, r3, #65280 ; 0xff00 + 800282a: 617b str r3, [r7, #20] + + /* Set the Prescaler, the Filter value and the Polarity */ + tmpsmcr |= (uint32_t)(TIM_ExtTRGPrescaler | (TIM_ExtTRGPolarity | (ExtTRGFilter << 8U))); + 800282c: 683b ldr r3, [r7, #0] + 800282e: 021a lsls r2, r3, #8 + 8002830: 687b ldr r3, [r7, #4] + 8002832: 431a orrs r2, r3 + 8002834: 68bb ldr r3, [r7, #8] + 8002836: 4313 orrs r3, r2 + 8002838: 697a ldr r2, [r7, #20] + 800283a: 4313 orrs r3, r2 + 800283c: 617b str r3, [r7, #20] + + /* Write to TIMx SMCR */ + TIMx->SMCR = tmpsmcr; + 800283e: 68fb ldr r3, [r7, #12] + 8002840: 697a ldr r2, [r7, #20] + 8002842: 609a str r2, [r3, #8] +} + 8002844: bf00 nop + 8002846: 371c adds r7, #28 + 8002848: 46bd mov sp, r7 + 800284a: f85d 7b04 ldr.w r7, [sp], #4 + 800284e: 4770 bx lr + +08002850 : + * mode. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim, + TIM_MasterConfigTypeDef *sMasterConfig) +{ + 8002850: b480 push {r7} + 8002852: b085 sub sp, #20 + 8002854: af00 add r7, sp, #0 + 8002856: 6078 str r0, [r7, #4] + 8002858: 6039 str r1, [r7, #0] + assert_param(IS_TIM_SYNCHRO_INSTANCE(htim->Instance)); + assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger)); + assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode)); + + /* Check input state */ + __HAL_LOCK(htim); + 800285a: 687b ldr r3, [r7, #4] + 800285c: f893 303c ldrb.w r3, [r3, #60] ; 0x3c + 8002860: 2b01 cmp r3, #1 + 8002862: d101 bne.n 8002868 + 8002864: 2302 movs r3, #2 + 8002866: e045 b.n 80028f4 + 8002868: 687b ldr r3, [r7, #4] + 800286a: 2201 movs r2, #1 + 800286c: f883 203c strb.w r2, [r3, #60] ; 0x3c + + /* Change the handler state */ + htim->State = HAL_TIM_STATE_BUSY; + 8002870: 687b ldr r3, [r7, #4] + 8002872: 2202 movs r2, #2 + 8002874: f883 203d strb.w r2, [r3, #61] ; 0x3d + + /* Get the TIMx CR2 register value */ + tmpcr2 = htim->Instance->CR2; + 8002878: 687b ldr r3, [r7, #4] + 800287a: 681b ldr r3, [r3, #0] + 800287c: 685b ldr r3, [r3, #4] + 800287e: 60fb str r3, [r7, #12] + + /* Get the TIMx SMCR register value */ + tmpsmcr = htim->Instance->SMCR; + 8002880: 687b ldr r3, [r7, #4] + 8002882: 681b ldr r3, [r3, #0] + 8002884: 689b ldr r3, [r3, #8] + 8002886: 60bb str r3, [r7, #8] + + /* If the timer supports ADC synchronization through TRGO2, set the master mode selection 2 */ + if (IS_TIM_TRGO2_INSTANCE(htim->Instance)) + 8002888: 687b ldr r3, [r7, #4] + 800288a: 681b ldr r3, [r3, #0] + 800288c: 4a1c ldr r2, [pc, #112] ; (8002900 ) + 800288e: 4293 cmp r3, r2 + 8002890: d004 beq.n 800289c + 8002892: 687b ldr r3, [r7, #4] + 8002894: 681b ldr r3, [r3, #0] + 8002896: 4a1b ldr r2, [pc, #108] ; (8002904 ) + 8002898: 4293 cmp r3, r2 + 800289a: d108 bne.n 80028ae + { + /* Check the parameters */ + assert_param(IS_TIM_TRGO2_SOURCE(sMasterConfig->MasterOutputTrigger2)); + + /* Clear the MMS2 bits */ + tmpcr2 &= ~TIM_CR2_MMS2; + 800289c: 68fb ldr r3, [r7, #12] + 800289e: f423 0370 bic.w r3, r3, #15728640 ; 0xf00000 + 80028a2: 60fb str r3, [r7, #12] + /* Select the TRGO2 source*/ + tmpcr2 |= sMasterConfig->MasterOutputTrigger2; + 80028a4: 683b ldr r3, [r7, #0] + 80028a6: 685b ldr r3, [r3, #4] + 80028a8: 68fa ldr r2, [r7, #12] + 80028aa: 4313 orrs r3, r2 + 80028ac: 60fb str r3, [r7, #12] + } + + /* Reset the MMS Bits */ + tmpcr2 &= ~TIM_CR2_MMS; + 80028ae: 68fb ldr r3, [r7, #12] + 80028b0: f023 0370 bic.w r3, r3, #112 ; 0x70 + 80028b4: 60fb str r3, [r7, #12] + /* Select the TRGO source */ + tmpcr2 |= sMasterConfig->MasterOutputTrigger; + 80028b6: 683b ldr r3, [r7, #0] + 80028b8: 681b ldr r3, [r3, #0] + 80028ba: 68fa ldr r2, [r7, #12] + 80028bc: 4313 orrs r3, r2 + 80028be: 60fb str r3, [r7, #12] + + /* Reset the MSM Bit */ + tmpsmcr &= ~TIM_SMCR_MSM; + 80028c0: 68bb ldr r3, [r7, #8] + 80028c2: f023 0380 bic.w r3, r3, #128 ; 0x80 + 80028c6: 60bb str r3, [r7, #8] + /* Set master mode */ + tmpsmcr |= sMasterConfig->MasterSlaveMode; + 80028c8: 683b ldr r3, [r7, #0] + 80028ca: 689b ldr r3, [r3, #8] + 80028cc: 68ba ldr r2, [r7, #8] + 80028ce: 4313 orrs r3, r2 + 80028d0: 60bb str r3, [r7, #8] + + /* Update TIMx CR2 */ + htim->Instance->CR2 = tmpcr2; + 80028d2: 687b ldr r3, [r7, #4] + 80028d4: 681b ldr r3, [r3, #0] + 80028d6: 68fa ldr r2, [r7, #12] + 80028d8: 605a str r2, [r3, #4] + + /* Update TIMx SMCR */ + htim->Instance->SMCR = tmpsmcr; + 80028da: 687b ldr r3, [r7, #4] + 80028dc: 681b ldr r3, [r3, #0] + 80028de: 68ba ldr r2, [r7, #8] + 80028e0: 609a str r2, [r3, #8] + + /* Change the htim state */ + htim->State = HAL_TIM_STATE_READY; + 80028e2: 687b ldr r3, [r7, #4] + 80028e4: 2201 movs r2, #1 + 80028e6: f883 203d strb.w r2, [r3, #61] ; 0x3d + + __HAL_UNLOCK(htim); + 80028ea: 687b ldr r3, [r7, #4] + 80028ec: 2200 movs r2, #0 + 80028ee: f883 203c strb.w r2, [r3, #60] ; 0x3c + + return HAL_OK; + 80028f2: 2300 movs r3, #0 +} + 80028f4: 4618 mov r0, r3 + 80028f6: 3714 adds r7, #20 + 80028f8: 46bd mov sp, r7 + 80028fa: f85d 7b04 ldr.w r7, [sp], #4 + 80028fe: 4770 bx lr + 8002900: 40010000 .word 0x40010000 + 8002904: 40010400 .word 0x40010400 + +08002908 : + * parameters in the UART_InitTypeDef and initialize the associated handle. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) +{ + 8002908: b580 push {r7, lr} + 800290a: b082 sub sp, #8 + 800290c: af00 add r7, sp, #0 + 800290e: 6078 str r0, [r7, #4] + /* Check the UART handle allocation */ + if (huart == NULL) + 8002910: 687b ldr r3, [r7, #4] + 8002912: 2b00 cmp r3, #0 + 8002914: d101 bne.n 800291a + { + return HAL_ERROR; + 8002916: 2301 movs r3, #1 + 8002918: e040 b.n 800299c + { + /* Check the parameters */ + assert_param(IS_UART_INSTANCE(huart->Instance)); + } + + if (huart->gState == HAL_UART_STATE_RESET) + 800291a: 687b ldr r3, [r7, #4] + 800291c: 6f5b ldr r3, [r3, #116] ; 0x74 + 800291e: 2b00 cmp r3, #0 + 8002920: d106 bne.n 8002930 + { + /* Allocate lock resource and initialize it */ + huart->Lock = HAL_UNLOCKED; + 8002922: 687b ldr r3, [r7, #4] + 8002924: 2200 movs r2, #0 + 8002926: f883 2070 strb.w r2, [r3, #112] ; 0x70 + + /* Init the low level hardware */ + huart->MspInitCallback(huart); +#else + /* Init the low level hardware : GPIO, CLOCK */ + HAL_UART_MspInit(huart); + 800292a: 6878 ldr r0, [r7, #4] + 800292c: f002 ff10 bl 8005750 +#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ + } + + huart->gState = HAL_UART_STATE_BUSY; + 8002930: 687b ldr r3, [r7, #4] + 8002932: 2224 movs r2, #36 ; 0x24 + 8002934: 675a str r2, [r3, #116] ; 0x74 + + /* Disable the Peripheral */ + __HAL_UART_DISABLE(huart); + 8002936: 687b ldr r3, [r7, #4] + 8002938: 681b ldr r3, [r3, #0] + 800293a: 681a ldr r2, [r3, #0] + 800293c: 687b ldr r3, [r7, #4] + 800293e: 681b ldr r3, [r3, #0] + 8002940: f022 0201 bic.w r2, r2, #1 + 8002944: 601a str r2, [r3, #0] + + /* Set the UART Communication parameters */ + if (UART_SetConfig(huart) == HAL_ERROR) + 8002946: 6878 ldr r0, [r7, #4] + 8002948: f000 fa7a bl 8002e40 + 800294c: 4603 mov r3, r0 + 800294e: 2b01 cmp r3, #1 + 8002950: d101 bne.n 8002956 + { + return HAL_ERROR; + 8002952: 2301 movs r3, #1 + 8002954: e022 b.n 800299c + } + + if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) + 8002956: 687b ldr r3, [r7, #4] + 8002958: 6a5b ldr r3, [r3, #36] ; 0x24 + 800295a: 2b00 cmp r3, #0 + 800295c: d002 beq.n 8002964 + { + UART_AdvFeatureConfig(huart); + 800295e: 6878 ldr r0, [r7, #4] + 8002960: f000 fd12 bl 8003388 + } + + /* In asynchronous mode, the following bits must be kept cleared: + - LINEN and CLKEN bits in the USART_CR2 register, + - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ + CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); + 8002964: 687b ldr r3, [r7, #4] + 8002966: 681b ldr r3, [r3, #0] + 8002968: 685a ldr r2, [r3, #4] + 800296a: 687b ldr r3, [r7, #4] + 800296c: 681b ldr r3, [r3, #0] + 800296e: f422 4290 bic.w r2, r2, #18432 ; 0x4800 + 8002972: 605a str r2, [r3, #4] + CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); + 8002974: 687b ldr r3, [r7, #4] + 8002976: 681b ldr r3, [r3, #0] + 8002978: 689a ldr r2, [r3, #8] + 800297a: 687b ldr r3, [r7, #4] + 800297c: 681b ldr r3, [r3, #0] + 800297e: f022 022a bic.w r2, r2, #42 ; 0x2a + 8002982: 609a str r2, [r3, #8] + + /* Enable the Peripheral */ + __HAL_UART_ENABLE(huart); + 8002984: 687b ldr r3, [r7, #4] + 8002986: 681b ldr r3, [r3, #0] + 8002988: 681a ldr r2, [r3, #0] + 800298a: 687b ldr r3, [r7, #4] + 800298c: 681b ldr r3, [r3, #0] + 800298e: f042 0201 orr.w r2, r2, #1 + 8002992: 601a str r2, [r3, #0] + + /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ + return (UART_CheckIdleState(huart)); + 8002994: 6878 ldr r0, [r7, #4] + 8002996: f000 fd99 bl 80034cc + 800299a: 4603 mov r3, r0 +} + 800299c: 4618 mov r0, r3 + 800299e: 3708 adds r7, #8 + 80029a0: 46bd mov sp, r7 + 80029a2: bd80 pop {r7, pc} + +080029a4 : + * @param pData Pointer to data buffer. + * @param Size Amount of data to be sent. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +{ + 80029a4: b580 push {r7, lr} + 80029a6: b084 sub sp, #16 + 80029a8: af00 add r7, sp, #0 + 80029aa: 60f8 str r0, [r7, #12] + 80029ac: 60b9 str r1, [r7, #8] + 80029ae: 4613 mov r3, r2 + 80029b0: 80fb strh r3, [r7, #6] + /* Check that a Tx process is not already ongoing */ + if (huart->gState == HAL_UART_STATE_READY) + 80029b2: 68fb ldr r3, [r7, #12] + 80029b4: 6f5b ldr r3, [r3, #116] ; 0x74 + 80029b6: 2b20 cmp r3, #32 + 80029b8: d164 bne.n 8002a84 + { + if ((pData == NULL) || (Size == 0U)) + 80029ba: 68bb ldr r3, [r7, #8] + 80029bc: 2b00 cmp r3, #0 + 80029be: d002 beq.n 80029c6 + 80029c0: 88fb ldrh r3, [r7, #6] + 80029c2: 2b00 cmp r3, #0 + 80029c4: d101 bne.n 80029ca + { + return HAL_ERROR; + 80029c6: 2301 movs r3, #1 + 80029c8: e05d b.n 8002a86 + } + + /* Process Locked */ + __HAL_LOCK(huart); + 80029ca: 68fb ldr r3, [r7, #12] + 80029cc: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 80029d0: 2b01 cmp r3, #1 + 80029d2: d101 bne.n 80029d8 + 80029d4: 2302 movs r3, #2 + 80029d6: e056 b.n 8002a86 + 80029d8: 68fb ldr r3, [r7, #12] + 80029da: 2201 movs r2, #1 + 80029dc: f883 2070 strb.w r2, [r3, #112] ; 0x70 + + huart->pTxBuffPtr = pData; + 80029e0: 68fb ldr r3, [r7, #12] + 80029e2: 68ba ldr r2, [r7, #8] + 80029e4: 64da str r2, [r3, #76] ; 0x4c + huart->TxXferSize = Size; + 80029e6: 68fb ldr r3, [r7, #12] + 80029e8: 88fa ldrh r2, [r7, #6] + 80029ea: f8a3 2050 strh.w r2, [r3, #80] ; 0x50 + huart->TxXferCount = Size; + 80029ee: 68fb ldr r3, [r7, #12] + 80029f0: 88fa ldrh r2, [r7, #6] + 80029f2: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 + + huart->ErrorCode = HAL_UART_ERROR_NONE; + 80029f6: 68fb ldr r3, [r7, #12] + 80029f8: 2200 movs r2, #0 + 80029fa: 67da str r2, [r3, #124] ; 0x7c + huart->gState = HAL_UART_STATE_BUSY_TX; + 80029fc: 68fb ldr r3, [r7, #12] + 80029fe: 2221 movs r2, #33 ; 0x21 + 8002a00: 675a str r2, [r3, #116] ; 0x74 + + if (huart->hdmatx != NULL) + 8002a02: 68fb ldr r3, [r7, #12] + 8002a04: 6e9b ldr r3, [r3, #104] ; 0x68 + 8002a06: 2b00 cmp r3, #0 + 8002a08: d02a beq.n 8002a60 + { + /* Set the UART DMA transfer complete callback */ + huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; + 8002a0a: 68fb ldr r3, [r7, #12] + 8002a0c: 6e9b ldr r3, [r3, #104] ; 0x68 + 8002a0e: 4a20 ldr r2, [pc, #128] ; (8002a90 ) + 8002a10: 63da str r2, [r3, #60] ; 0x3c + + /* Set the UART DMA Half transfer complete callback */ + huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; + 8002a12: 68fb ldr r3, [r7, #12] + 8002a14: 6e9b ldr r3, [r3, #104] ; 0x68 + 8002a16: 4a1f ldr r2, [pc, #124] ; (8002a94 ) + 8002a18: 641a str r2, [r3, #64] ; 0x40 + + /* Set the DMA error callback */ + huart->hdmatx->XferErrorCallback = UART_DMAError; + 8002a1a: 68fb ldr r3, [r7, #12] + 8002a1c: 6e9b ldr r3, [r3, #104] ; 0x68 + 8002a1e: 4a1e ldr r2, [pc, #120] ; (8002a98 ) + 8002a20: 64da str r2, [r3, #76] ; 0x4c + + /* Set the DMA abort callback */ + huart->hdmatx->XferAbortCallback = NULL; + 8002a22: 68fb ldr r3, [r7, #12] + 8002a24: 6e9b ldr r3, [r3, #104] ; 0x68 + 8002a26: 2200 movs r2, #0 + 8002a28: 651a str r2, [r3, #80] ; 0x50 + + /* Enable the UART transmit DMA channel */ + if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, Size) != HAL_OK) + 8002a2a: 68fb ldr r3, [r7, #12] + 8002a2c: 6e98 ldr r0, [r3, #104] ; 0x68 + 8002a2e: 68fb ldr r3, [r7, #12] + 8002a30: 6cdb ldr r3, [r3, #76] ; 0x4c + 8002a32: 4619 mov r1, r3 + 8002a34: 68fb ldr r3, [r7, #12] + 8002a36: 681b ldr r3, [r3, #0] + 8002a38: 3328 adds r3, #40 ; 0x28 + 8002a3a: 461a mov r2, r3 + 8002a3c: 88fb ldrh r3, [r7, #6] + 8002a3e: f7fd ffc3 bl 80009c8 + 8002a42: 4603 mov r3, r0 + 8002a44: 2b00 cmp r3, #0 + 8002a46: d00b beq.n 8002a60 + { + /* Set error code to DMA */ + huart->ErrorCode = HAL_UART_ERROR_DMA; + 8002a48: 68fb ldr r3, [r7, #12] + 8002a4a: 2210 movs r2, #16 + 8002a4c: 67da str r2, [r3, #124] ; 0x7c + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + 8002a4e: 68fb ldr r3, [r7, #12] + 8002a50: 2200 movs r2, #0 + 8002a52: f883 2070 strb.w r2, [r3, #112] ; 0x70 + + /* Restore huart->gState to ready */ + huart->gState = HAL_UART_STATE_READY; + 8002a56: 68fb ldr r3, [r7, #12] + 8002a58: 2220 movs r2, #32 + 8002a5a: 675a str r2, [r3, #116] ; 0x74 + + return HAL_ERROR; + 8002a5c: 2301 movs r3, #1 + 8002a5e: e012 b.n 8002a86 + } + } + /* Clear the TC flag in the ICR register */ + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); + 8002a60: 68fb ldr r3, [r7, #12] + 8002a62: 681b ldr r3, [r3, #0] + 8002a64: 2240 movs r2, #64 ; 0x40 + 8002a66: 621a str r2, [r3, #32] + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + 8002a68: 68fb ldr r3, [r7, #12] + 8002a6a: 2200 movs r2, #0 + 8002a6c: f883 2070 strb.w r2, [r3, #112] ; 0x70 + + /* Enable the DMA transfer for transmit request by setting the DMAT bit + in the UART CR3 register */ + SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); + 8002a70: 68fb ldr r3, [r7, #12] + 8002a72: 681b ldr r3, [r3, #0] + 8002a74: 689a ldr r2, [r3, #8] + 8002a76: 68fb ldr r3, [r7, #12] + 8002a78: 681b ldr r3, [r3, #0] + 8002a7a: f042 0280 orr.w r2, r2, #128 ; 0x80 + 8002a7e: 609a str r2, [r3, #8] + + return HAL_OK; + 8002a80: 2300 movs r3, #0 + 8002a82: e000 b.n 8002a86 + } + else + { + return HAL_BUSY; + 8002a84: 2302 movs r3, #2 + } +} + 8002a86: 4618 mov r0, r3 + 8002a88: 3710 adds r7, #16 + 8002a8a: 46bd mov sp, r7 + 8002a8c: bd80 pop {r7, pc} + 8002a8e: bf00 nop + 8002a90: 08003625 .word 0x08003625 + 8002a94: 08003675 .word 0x08003675 + 8002a98: 08003711 .word 0x08003711 + +08002a9c : + * @param pData Pointer to data buffer. + * @param Size Amount of data to be received. + * @retval HAL status + */ +HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) +{ + 8002a9c: b580 push {r7, lr} + 8002a9e: b084 sub sp, #16 + 8002aa0: af00 add r7, sp, #0 + 8002aa2: 60f8 str r0, [r7, #12] + 8002aa4: 60b9 str r1, [r7, #8] + 8002aa6: 4613 mov r3, r2 + 8002aa8: 80fb strh r3, [r7, #6] + /* Check that a Rx process is not already ongoing */ + if (huart->RxState == HAL_UART_STATE_READY) + 8002aaa: 68fb ldr r3, [r7, #12] + 8002aac: 6f9b ldr r3, [r3, #120] ; 0x78 + 8002aae: 2b20 cmp r3, #32 + 8002ab0: d16c bne.n 8002b8c + { + if ((pData == NULL) || (Size == 0U)) + 8002ab2: 68bb ldr r3, [r7, #8] + 8002ab4: 2b00 cmp r3, #0 + 8002ab6: d002 beq.n 8002abe + 8002ab8: 88fb ldrh r3, [r7, #6] + 8002aba: 2b00 cmp r3, #0 + 8002abc: d101 bne.n 8002ac2 + { + return HAL_ERROR; + 8002abe: 2301 movs r3, #1 + 8002ac0: e065 b.n 8002b8e + } + + /* Process Locked */ + __HAL_LOCK(huart); + 8002ac2: 68fb ldr r3, [r7, #12] + 8002ac4: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 + 8002ac8: 2b01 cmp r3, #1 + 8002aca: d101 bne.n 8002ad0 + 8002acc: 2302 movs r3, #2 + 8002ace: e05e b.n 8002b8e + 8002ad0: 68fb ldr r3, [r7, #12] + 8002ad2: 2201 movs r2, #1 + 8002ad4: f883 2070 strb.w r2, [r3, #112] ; 0x70 + + huart->pRxBuffPtr = pData; + 8002ad8: 68fb ldr r3, [r7, #12] + 8002ada: 68ba ldr r2, [r7, #8] + 8002adc: 655a str r2, [r3, #84] ; 0x54 + huart->RxXferSize = Size; + 8002ade: 68fb ldr r3, [r7, #12] + 8002ae0: 88fa ldrh r2, [r7, #6] + 8002ae2: f8a3 2058 strh.w r2, [r3, #88] ; 0x58 + + huart->ErrorCode = HAL_UART_ERROR_NONE; + 8002ae6: 68fb ldr r3, [r7, #12] + 8002ae8: 2200 movs r2, #0 + 8002aea: 67da str r2, [r3, #124] ; 0x7c + huart->RxState = HAL_UART_STATE_BUSY_RX; + 8002aec: 68fb ldr r3, [r7, #12] + 8002aee: 2222 movs r2, #34 ; 0x22 + 8002af0: 679a str r2, [r3, #120] ; 0x78 + + if (huart->hdmarx != NULL) + 8002af2: 68fb ldr r3, [r7, #12] + 8002af4: 6edb ldr r3, [r3, #108] ; 0x6c + 8002af6: 2b00 cmp r3, #0 + 8002af8: d02a beq.n 8002b50 + { + /* Set the UART DMA transfer complete callback */ + huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; + 8002afa: 68fb ldr r3, [r7, #12] + 8002afc: 6edb ldr r3, [r3, #108] ; 0x6c + 8002afe: 4a26 ldr r2, [pc, #152] ; (8002b98 ) + 8002b00: 63da str r2, [r3, #60] ; 0x3c + + /* Set the UART DMA Half transfer complete callback */ + huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; + 8002b02: 68fb ldr r3, [r7, #12] + 8002b04: 6edb ldr r3, [r3, #108] ; 0x6c + 8002b06: 4a25 ldr r2, [pc, #148] ; (8002b9c ) + 8002b08: 641a str r2, [r3, #64] ; 0x40 + + /* Set the DMA error callback */ + huart->hdmarx->XferErrorCallback = UART_DMAError; + 8002b0a: 68fb ldr r3, [r7, #12] + 8002b0c: 6edb ldr r3, [r3, #108] ; 0x6c + 8002b0e: 4a24 ldr r2, [pc, #144] ; (8002ba0 ) + 8002b10: 64da str r2, [r3, #76] ; 0x4c + + /* Set the DMA abort callback */ + huart->hdmarx->XferAbortCallback = NULL; + 8002b12: 68fb ldr r3, [r7, #12] + 8002b14: 6edb ldr r3, [r3, #108] ; 0x6c + 8002b16: 2200 movs r2, #0 + 8002b18: 651a str r2, [r3, #80] ; 0x50 + + /* Enable the DMA channel */ + if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr, Size) != HAL_OK) + 8002b1a: 68fb ldr r3, [r7, #12] + 8002b1c: 6ed8 ldr r0, [r3, #108] ; 0x6c + 8002b1e: 68fb ldr r3, [r7, #12] + 8002b20: 681b ldr r3, [r3, #0] + 8002b22: 3324 adds r3, #36 ; 0x24 + 8002b24: 4619 mov r1, r3 + 8002b26: 68fb ldr r3, [r7, #12] + 8002b28: 6d5b ldr r3, [r3, #84] ; 0x54 + 8002b2a: 461a mov r2, r3 + 8002b2c: 88fb ldrh r3, [r7, #6] + 8002b2e: f7fd ff4b bl 80009c8 + 8002b32: 4603 mov r3, r0 + 8002b34: 2b00 cmp r3, #0 + 8002b36: d00b beq.n 8002b50 + { + /* Set error code to DMA */ + huart->ErrorCode = HAL_UART_ERROR_DMA; + 8002b38: 68fb ldr r3, [r7, #12] + 8002b3a: 2210 movs r2, #16 + 8002b3c: 67da str r2, [r3, #124] ; 0x7c + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + 8002b3e: 68fb ldr r3, [r7, #12] + 8002b40: 2200 movs r2, #0 + 8002b42: f883 2070 strb.w r2, [r3, #112] ; 0x70 + + /* Restore huart->gState to ready */ + huart->gState = HAL_UART_STATE_READY; + 8002b46: 68fb ldr r3, [r7, #12] + 8002b48: 2220 movs r2, #32 + 8002b4a: 675a str r2, [r3, #116] ; 0x74 + + return HAL_ERROR; + 8002b4c: 2301 movs r3, #1 + 8002b4e: e01e b.n 8002b8e + } + } + /* Process Unlocked */ + __HAL_UNLOCK(huart); + 8002b50: 68fb ldr r3, [r7, #12] + 8002b52: 2200 movs r2, #0 + 8002b54: f883 2070 strb.w r2, [r3, #112] ; 0x70 + + /* Enable the UART Parity Error Interrupt */ + SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); + 8002b58: 68fb ldr r3, [r7, #12] + 8002b5a: 681b ldr r3, [r3, #0] + 8002b5c: 681a ldr r2, [r3, #0] + 8002b5e: 68fb ldr r3, [r7, #12] + 8002b60: 681b ldr r3, [r3, #0] + 8002b62: f442 7280 orr.w r2, r2, #256 ; 0x100 + 8002b66: 601a str r2, [r3, #0] + + /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ + SET_BIT(huart->Instance->CR3, USART_CR3_EIE); + 8002b68: 68fb ldr r3, [r7, #12] + 8002b6a: 681b ldr r3, [r3, #0] + 8002b6c: 689a ldr r2, [r3, #8] + 8002b6e: 68fb ldr r3, [r7, #12] + 8002b70: 681b ldr r3, [r3, #0] + 8002b72: f042 0201 orr.w r2, r2, #1 + 8002b76: 609a str r2, [r3, #8] + + /* Enable the DMA transfer for the receiver request by setting the DMAR bit + in the UART CR3 register */ + SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); + 8002b78: 68fb ldr r3, [r7, #12] + 8002b7a: 681b ldr r3, [r3, #0] + 8002b7c: 689a ldr r2, [r3, #8] + 8002b7e: 68fb ldr r3, [r7, #12] + 8002b80: 681b ldr r3, [r3, #0] + 8002b82: f042 0240 orr.w r2, r2, #64 ; 0x40 + 8002b86: 609a str r2, [r3, #8] + + return HAL_OK; + 8002b88: 2300 movs r3, #0 + 8002b8a: e000 b.n 8002b8e + } + else + { + return HAL_BUSY; + 8002b8c: 2302 movs r3, #2 + } +} + 8002b8e: 4618 mov r0, r3 + 8002b90: 3710 adds r7, #16 + 8002b92: 46bd mov sp, r7 + 8002b94: bd80 pop {r7, pc} + 8002b96: bf00 nop + 8002b98: 08003691 .word 0x08003691 + 8002b9c: 080036f5 .word 0x080036f5 + 8002ba0: 08003711 .word 0x08003711 + +08002ba4 : + * @brief Handle UART interrupt request. + * @param huart UART handle. + * @retval None + */ +void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) +{ + 8002ba4: b580 push {r7, lr} + 8002ba6: b088 sub sp, #32 + 8002ba8: af00 add r7, sp, #0 + 8002baa: 6078 str r0, [r7, #4] + uint32_t isrflags = READ_REG(huart->Instance->ISR); + 8002bac: 687b ldr r3, [r7, #4] + 8002bae: 681b ldr r3, [r3, #0] + 8002bb0: 69db ldr r3, [r3, #28] + 8002bb2: 61fb str r3, [r7, #28] + uint32_t cr1its = READ_REG(huart->Instance->CR1); + 8002bb4: 687b ldr r3, [r7, #4] + 8002bb6: 681b ldr r3, [r3, #0] + 8002bb8: 681b ldr r3, [r3, #0] + 8002bba: 61bb str r3, [r7, #24] + uint32_t cr3its = READ_REG(huart->Instance->CR3); + 8002bbc: 687b ldr r3, [r7, #4] + 8002bbe: 681b ldr r3, [r3, #0] + 8002bc0: 689b ldr r3, [r3, #8] + 8002bc2: 617b str r3, [r7, #20] + + uint32_t errorflags; + uint32_t errorcode; + + /* If no error occurs */ + errorflags = (isrflags & (uint32_t)(USART_ISR_PE | USART_ISR_FE | USART_ISR_ORE | USART_ISR_NE)); + 8002bc4: 69fb ldr r3, [r7, #28] + 8002bc6: f003 030f and.w r3, r3, #15 + 8002bca: 613b str r3, [r7, #16] + if (errorflags == 0U) + 8002bcc: 693b ldr r3, [r7, #16] + 8002bce: 2b00 cmp r3, #0 + 8002bd0: d113 bne.n 8002bfa + { + /* UART in mode Receiver ---------------------------------------------------*/ + if (((isrflags & USART_ISR_RXNE) != 0U) + 8002bd2: 69fb ldr r3, [r7, #28] + 8002bd4: f003 0320 and.w r3, r3, #32 + 8002bd8: 2b00 cmp r3, #0 + 8002bda: d00e beq.n 8002bfa + && ((cr1its & USART_CR1_RXNEIE) != 0U)) + 8002bdc: 69bb ldr r3, [r7, #24] + 8002bde: f003 0320 and.w r3, r3, #32 + 8002be2: 2b00 cmp r3, #0 + 8002be4: d009 beq.n 8002bfa + { + if (huart->RxISR != NULL) + 8002be6: 687b ldr r3, [r7, #4] + 8002be8: 6e1b ldr r3, [r3, #96] ; 0x60 + 8002bea: 2b00 cmp r3, #0 + 8002bec: f000 80eb beq.w 8002dc6 + { + huart->RxISR(huart); + 8002bf0: 687b ldr r3, [r7, #4] + 8002bf2: 6e1b ldr r3, [r3, #96] ; 0x60 + 8002bf4: 6878 ldr r0, [r7, #4] + 8002bf6: 4798 blx r3 + } + return; + 8002bf8: e0e5 b.n 8002dc6 + } + } + + /* If some errors occur */ + if ((errorflags != 0U) + 8002bfa: 693b ldr r3, [r7, #16] + 8002bfc: 2b00 cmp r3, #0 + 8002bfe: f000 80c0 beq.w 8002d82 + && (((cr3its & USART_CR3_EIE) != 0U) + 8002c02: 697b ldr r3, [r7, #20] + 8002c04: f003 0301 and.w r3, r3, #1 + 8002c08: 2b00 cmp r3, #0 + 8002c0a: d105 bne.n 8002c18 + || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != 0U))) + 8002c0c: 69bb ldr r3, [r7, #24] + 8002c0e: f403 7390 and.w r3, r3, #288 ; 0x120 + 8002c12: 2b00 cmp r3, #0 + 8002c14: f000 80b5 beq.w 8002d82 + { + /* UART parity error interrupt occurred -------------------------------------*/ + if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U)) + 8002c18: 69fb ldr r3, [r7, #28] + 8002c1a: f003 0301 and.w r3, r3, #1 + 8002c1e: 2b00 cmp r3, #0 + 8002c20: d00e beq.n 8002c40 + 8002c22: 69bb ldr r3, [r7, #24] + 8002c24: f403 7380 and.w r3, r3, #256 ; 0x100 + 8002c28: 2b00 cmp r3, #0 + 8002c2a: d009 beq.n 8002c40 + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF); + 8002c2c: 687b ldr r3, [r7, #4] + 8002c2e: 681b ldr r3, [r3, #0] + 8002c30: 2201 movs r2, #1 + 8002c32: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_PE; + 8002c34: 687b ldr r3, [r7, #4] + 8002c36: 6fdb ldr r3, [r3, #124] ; 0x7c + 8002c38: f043 0201 orr.w r2, r3, #1 + 8002c3c: 687b ldr r3, [r7, #4] + 8002c3e: 67da str r2, [r3, #124] ; 0x7c + } + + /* UART frame error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + 8002c40: 69fb ldr r3, [r7, #28] + 8002c42: f003 0302 and.w r3, r3, #2 + 8002c46: 2b00 cmp r3, #0 + 8002c48: d00e beq.n 8002c68 + 8002c4a: 697b ldr r3, [r7, #20] + 8002c4c: f003 0301 and.w r3, r3, #1 + 8002c50: 2b00 cmp r3, #0 + 8002c52: d009 beq.n 8002c68 + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF); + 8002c54: 687b ldr r3, [r7, #4] + 8002c56: 681b ldr r3, [r3, #0] + 8002c58: 2202 movs r2, #2 + 8002c5a: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_FE; + 8002c5c: 687b ldr r3, [r7, #4] + 8002c5e: 6fdb ldr r3, [r3, #124] ; 0x7c + 8002c60: f043 0204 orr.w r2, r3, #4 + 8002c64: 687b ldr r3, [r7, #4] + 8002c66: 67da str r2, [r3, #124] ; 0x7c + } + + /* UART noise error interrupt occurred --------------------------------------*/ + if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U)) + 8002c68: 69fb ldr r3, [r7, #28] + 8002c6a: f003 0304 and.w r3, r3, #4 + 8002c6e: 2b00 cmp r3, #0 + 8002c70: d00e beq.n 8002c90 + 8002c72: 697b ldr r3, [r7, #20] + 8002c74: f003 0301 and.w r3, r3, #1 + 8002c78: 2b00 cmp r3, #0 + 8002c7a: d009 beq.n 8002c90 + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF); + 8002c7c: 687b ldr r3, [r7, #4] + 8002c7e: 681b ldr r3, [r3, #0] + 8002c80: 2204 movs r2, #4 + 8002c82: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_NE; + 8002c84: 687b ldr r3, [r7, #4] + 8002c86: 6fdb ldr r3, [r3, #124] ; 0x7c + 8002c88: f043 0202 orr.w r2, r3, #2 + 8002c8c: 687b ldr r3, [r7, #4] + 8002c8e: 67da str r2, [r3, #124] ; 0x7c + } + + /* UART Over-Run interrupt occurred -----------------------------------------*/ + if (((isrflags & USART_ISR_ORE) != 0U) + 8002c90: 69fb ldr r3, [r7, #28] + 8002c92: f003 0308 and.w r3, r3, #8 + 8002c96: 2b00 cmp r3, #0 + 8002c98: d013 beq.n 8002cc2 + && (((cr1its & USART_CR1_RXNEIE) != 0U) || + 8002c9a: 69bb ldr r3, [r7, #24] + 8002c9c: f003 0320 and.w r3, r3, #32 + 8002ca0: 2b00 cmp r3, #0 + 8002ca2: d104 bne.n 8002cae + ((cr3its & USART_CR3_EIE) != 0U))) + 8002ca4: 697b ldr r3, [r7, #20] + 8002ca6: f003 0301 and.w r3, r3, #1 + && (((cr1its & USART_CR1_RXNEIE) != 0U) || + 8002caa: 2b00 cmp r3, #0 + 8002cac: d009 beq.n 8002cc2 + { + __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF); + 8002cae: 687b ldr r3, [r7, #4] + 8002cb0: 681b ldr r3, [r3, #0] + 8002cb2: 2208 movs r2, #8 + 8002cb4: 621a str r2, [r3, #32] + + huart->ErrorCode |= HAL_UART_ERROR_ORE; + 8002cb6: 687b ldr r3, [r7, #4] + 8002cb8: 6fdb ldr r3, [r3, #124] ; 0x7c + 8002cba: f043 0208 orr.w r2, r3, #8 + 8002cbe: 687b ldr r3, [r7, #4] + 8002cc0: 67da str r2, [r3, #124] ; 0x7c + } + + /* Call UART Error Call back function if need be --------------------------*/ + if (huart->ErrorCode != HAL_UART_ERROR_NONE) + 8002cc2: 687b ldr r3, [r7, #4] + 8002cc4: 6fdb ldr r3, [r3, #124] ; 0x7c + 8002cc6: 2b00 cmp r3, #0 + 8002cc8: d07f beq.n 8002dca + { + /* UART in mode Receiver ---------------------------------------------------*/ + if (((isrflags & USART_ISR_RXNE) != 0U) + 8002cca: 69fb ldr r3, [r7, #28] + 8002ccc: f003 0320 and.w r3, r3, #32 + 8002cd0: 2b00 cmp r3, #0 + 8002cd2: d00c beq.n 8002cee + && ((cr1its & USART_CR1_RXNEIE) != 0U)) + 8002cd4: 69bb ldr r3, [r7, #24] + 8002cd6: f003 0320 and.w r3, r3, #32 + 8002cda: 2b00 cmp r3, #0 + 8002cdc: d007 beq.n 8002cee + { + if (huart->RxISR != NULL) + 8002cde: 687b ldr r3, [r7, #4] + 8002ce0: 6e1b ldr r3, [r3, #96] ; 0x60 + 8002ce2: 2b00 cmp r3, #0 + 8002ce4: d003 beq.n 8002cee + { + huart->RxISR(huart); + 8002ce6: 687b ldr r3, [r7, #4] + 8002ce8: 6e1b ldr r3, [r3, #96] ; 0x60 + 8002cea: 6878 ldr r0, [r7, #4] + 8002cec: 4798 blx r3 + } + } + + /* If Overrun error occurs, or if any error occurs in DMA mode reception, + consider error as blocking */ + errorcode = huart->ErrorCode; + 8002cee: 687b ldr r3, [r7, #4] + 8002cf0: 6fdb ldr r3, [r3, #124] ; 0x7c + 8002cf2: 60fb str r3, [r7, #12] + if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || + 8002cf4: 687b ldr r3, [r7, #4] + 8002cf6: 681b ldr r3, [r3, #0] + 8002cf8: 689b ldr r3, [r3, #8] + 8002cfa: f003 0340 and.w r3, r3, #64 ; 0x40 + 8002cfe: 2b40 cmp r3, #64 ; 0x40 + 8002d00: d004 beq.n 8002d0c + ((errorcode & HAL_UART_ERROR_ORE) != 0U)) + 8002d02: 68fb ldr r3, [r7, #12] + 8002d04: f003 0308 and.w r3, r3, #8 + if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) || + 8002d08: 2b00 cmp r3, #0 + 8002d0a: d031 beq.n 8002d70 + { + /* Blocking error : transfer is aborted + Set the UART state ready to be able to start again the process, + Disable Rx Interrupts, and disable Rx DMA request, if ongoing */ + UART_EndRxTransfer(huart); + 8002d0c: 6878 ldr r0, [r7, #4] + 8002d0e: f000 fc69 bl 80035e4 + + /* Disable the UART DMA Rx request if enabled */ + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + 8002d12: 687b ldr r3, [r7, #4] + 8002d14: 681b ldr r3, [r3, #0] + 8002d16: 689b ldr r3, [r3, #8] + 8002d18: f003 0340 and.w r3, r3, #64 ; 0x40 + 8002d1c: 2b40 cmp r3, #64 ; 0x40 + 8002d1e: d123 bne.n 8002d68 + { + CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); + 8002d20: 687b ldr r3, [r7, #4] + 8002d22: 681b ldr r3, [r3, #0] + 8002d24: 689a ldr r2, [r3, #8] + 8002d26: 687b ldr r3, [r7, #4] + 8002d28: 681b ldr r3, [r3, #0] + 8002d2a: f022 0240 bic.w r2, r2, #64 ; 0x40 + 8002d2e: 609a str r2, [r3, #8] + + /* Abort the UART DMA Rx channel */ + if (huart->hdmarx != NULL) + 8002d30: 687b ldr r3, [r7, #4] + 8002d32: 6edb ldr r3, [r3, #108] ; 0x6c + 8002d34: 2b00 cmp r3, #0 + 8002d36: d013 beq.n 8002d60 + { + /* Set the UART DMA Abort callback : + will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */ + huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError; + 8002d38: 687b ldr r3, [r7, #4] + 8002d3a: 6edb ldr r3, [r3, #108] ; 0x6c + 8002d3c: 4a26 ldr r2, [pc, #152] ; (8002dd8 ) + 8002d3e: 651a str r2, [r3, #80] ; 0x50 + + /* Abort DMA RX */ + if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK) + 8002d40: 687b ldr r3, [r7, #4] + 8002d42: 6edb ldr r3, [r3, #108] ; 0x6c + 8002d44: 4618 mov r0, r3 + 8002d46: f7fd fe9f bl 8000a88 + 8002d4a: 4603 mov r3, r0 + 8002d4c: 2b00 cmp r3, #0 + 8002d4e: d016 beq.n 8002d7e + { + /* Call Directly huart->hdmarx->XferAbortCallback function in case of error */ + huart->hdmarx->XferAbortCallback(huart->hdmarx); + 8002d50: 687b ldr r3, [r7, #4] + 8002d52: 6edb ldr r3, [r3, #108] ; 0x6c + 8002d54: 6d1b ldr r3, [r3, #80] ; 0x50 + 8002d56: 687a ldr r2, [r7, #4] + 8002d58: 6ed2 ldr r2, [r2, #108] ; 0x6c + 8002d5a: 4610 mov r0, r2 + 8002d5c: 4798 blx r3 + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + 8002d5e: e00e b.n 8002d7e +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); + 8002d60: 6878 ldr r0, [r7, #4] + 8002d62: f000 f863 bl 8002e2c + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + 8002d66: e00a b.n 8002d7e +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); + 8002d68: 6878 ldr r0, [r7, #4] + 8002d6a: f000 f85f bl 8002e2c + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + 8002d6e: e006 b.n 8002d7e +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); + 8002d70: 6878 ldr r0, [r7, #4] + 8002d72: f000 f85b bl 8002e2c +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + huart->ErrorCode = HAL_UART_ERROR_NONE; + 8002d76: 687b ldr r3, [r7, #4] + 8002d78: 2200 movs r2, #0 + 8002d7a: 67da str r2, [r3, #124] ; 0x7c + } + } + return; + 8002d7c: e025 b.n 8002dca + if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) + 8002d7e: bf00 nop + return; + 8002d80: e023 b.n 8002dca + + } /* End if some error occurs */ + + /* UART in mode Transmitter ------------------------------------------------*/ + if (((isrflags & USART_ISR_TXE) != 0U) + 8002d82: 69fb ldr r3, [r7, #28] + 8002d84: f003 0380 and.w r3, r3, #128 ; 0x80 + 8002d88: 2b00 cmp r3, #0 + 8002d8a: d00d beq.n 8002da8 + && ((cr1its & USART_CR1_TXEIE) != 0U)) + 8002d8c: 69bb ldr r3, [r7, #24] + 8002d8e: f003 0380 and.w r3, r3, #128 ; 0x80 + 8002d92: 2b00 cmp r3, #0 + 8002d94: d008 beq.n 8002da8 + { + if (huart->TxISR != NULL) + 8002d96: 687b ldr r3, [r7, #4] + 8002d98: 6e5b ldr r3, [r3, #100] ; 0x64 + 8002d9a: 2b00 cmp r3, #0 + 8002d9c: d017 beq.n 8002dce + { + huart->TxISR(huart); + 8002d9e: 687b ldr r3, [r7, #4] + 8002da0: 6e5b ldr r3, [r3, #100] ; 0x64 + 8002da2: 6878 ldr r0, [r7, #4] + 8002da4: 4798 blx r3 + } + return; + 8002da6: e012 b.n 8002dce + } + + /* UART in mode Transmitter (transmission end) -----------------------------*/ + if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U)) + 8002da8: 69fb ldr r3, [r7, #28] + 8002daa: f003 0340 and.w r3, r3, #64 ; 0x40 + 8002dae: 2b00 cmp r3, #0 + 8002db0: d00e beq.n 8002dd0 + 8002db2: 69bb ldr r3, [r7, #24] + 8002db4: f003 0340 and.w r3, r3, #64 ; 0x40 + 8002db8: 2b00 cmp r3, #0 + 8002dba: d009 beq.n 8002dd0 + { + UART_EndTransmit_IT(huart); + 8002dbc: 6878 ldr r0, [r7, #4] + 8002dbe: f000 fcf9 bl 80037b4 + return; + 8002dc2: bf00 nop + 8002dc4: e004 b.n 8002dd0 + return; + 8002dc6: bf00 nop + 8002dc8: e002 b.n 8002dd0 + return; + 8002dca: bf00 nop + 8002dcc: e000 b.n 8002dd0 + return; + 8002dce: bf00 nop + } + +} + 8002dd0: 3720 adds r7, #32 + 8002dd2: 46bd mov sp, r7 + 8002dd4: bd80 pop {r7, pc} + 8002dd6: bf00 nop + 8002dd8: 08003789 .word 0x08003789 + +08002ddc : + * @brief Tx Transfer completed callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) +{ + 8002ddc: b480 push {r7} + 8002dde: b083 sub sp, #12 + 8002de0: af00 add r7, sp, #0 + 8002de2: 6078 str r0, [r7, #4] + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UART_TxCpltCallback can be implemented in the user file. + */ +} + 8002de4: bf00 nop + 8002de6: 370c adds r7, #12 + 8002de8: 46bd mov sp, r7 + 8002dea: f85d 7b04 ldr.w r7, [sp], #4 + 8002dee: 4770 bx lr + +08002df0 : + * @brief Tx Half Transfer completed callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) +{ + 8002df0: b480 push {r7} + 8002df2: b083 sub sp, #12 + 8002df4: af00 add r7, sp, #0 + 8002df6: 6078 str r0, [r7, #4] + UNUSED(huart); + + /* NOTE: This function should not be modified, when the callback is needed, + the HAL_UART_TxHalfCpltCallback can be implemented in the user file. + */ +} + 8002df8: bf00 nop + 8002dfa: 370c adds r7, #12 + 8002dfc: 46bd mov sp, r7 + 8002dfe: f85d 7b04 ldr.w r7, [sp], #4 + 8002e02: 4770 bx lr + +08002e04 : + * @brief Rx Transfer completed callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) +{ + 8002e04: b480 push {r7} + 8002e06: b083 sub sp, #12 + 8002e08: af00 add r7, sp, #0 + 8002e0a: 6078 str r0, [r7, #4] + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UART_RxCpltCallback can be implemented in the user file. + */ +} + 8002e0c: bf00 nop + 8002e0e: 370c adds r7, #12 + 8002e10: 46bd mov sp, r7 + 8002e12: f85d 7b04 ldr.w r7, [sp], #4 + 8002e16: 4770 bx lr + +08002e18 : + * @brief Rx Half Transfer completed callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) +{ + 8002e18: b480 push {r7} + 8002e1a: b083 sub sp, #12 + 8002e1c: af00 add r7, sp, #0 + 8002e1e: 6078 str r0, [r7, #4] + UNUSED(huart); + + /* NOTE: This function should not be modified, when the callback is needed, + the HAL_UART_RxHalfCpltCallback can be implemented in the user file. + */ +} + 8002e20: bf00 nop + 8002e22: 370c adds r7, #12 + 8002e24: 46bd mov sp, r7 + 8002e26: f85d 7b04 ldr.w r7, [sp], #4 + 8002e2a: 4770 bx lr + +08002e2c : + * @brief UART error callback. + * @param huart UART handle. + * @retval None + */ +__weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) +{ + 8002e2c: b480 push {r7} + 8002e2e: b083 sub sp, #12 + 8002e30: af00 add r7, sp, #0 + 8002e32: 6078 str r0, [r7, #4] + UNUSED(huart); + + /* NOTE : This function should not be modified, when the callback is needed, + the HAL_UART_ErrorCallback can be implemented in the user file. + */ +} + 8002e34: bf00 nop + 8002e36: 370c adds r7, #12 + 8002e38: 46bd mov sp, r7 + 8002e3a: f85d 7b04 ldr.w r7, [sp], #4 + 8002e3e: 4770 bx lr + +08002e40 : + * @brief Configure the UART peripheral. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) +{ + 8002e40: b580 push {r7, lr} + 8002e42: b088 sub sp, #32 + 8002e44: af00 add r7, sp, #0 + 8002e46: 6078 str r0, [r7, #4] + uint32_t tmpreg; + uint16_t brrtemp; + UART_ClockSourceTypeDef clocksource; + uint32_t usartdiv = 0x00000000U; + 8002e48: 2300 movs r3, #0 + 8002e4a: 61bb str r3, [r7, #24] + HAL_StatusTypeDef ret = HAL_OK; + 8002e4c: 2300 movs r3, #0 + 8002e4e: 75fb strb r3, [r7, #23] + * the UART Word Length, Parity, Mode and oversampling: + * set the M bits according to huart->Init.WordLength value + * set PCE and PS bits according to huart->Init.Parity value + * set TE and RE bits according to huart->Init.Mode value + * set OVER8 bit according to huart->Init.OverSampling value */ + tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling ; + 8002e50: 687b ldr r3, [r7, #4] + 8002e52: 689a ldr r2, [r3, #8] + 8002e54: 687b ldr r3, [r7, #4] + 8002e56: 691b ldr r3, [r3, #16] + 8002e58: 431a orrs r2, r3 + 8002e5a: 687b ldr r3, [r7, #4] + 8002e5c: 695b ldr r3, [r3, #20] + 8002e5e: 431a orrs r2, r3 + 8002e60: 687b ldr r3, [r7, #4] + 8002e62: 69db ldr r3, [r3, #28] + 8002e64: 4313 orrs r3, r2 + 8002e66: 613b str r3, [r7, #16] + MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); + 8002e68: 687b ldr r3, [r7, #4] + 8002e6a: 681b ldr r3, [r3, #0] + 8002e6c: 681a ldr r2, [r3, #0] + 8002e6e: 4bb1 ldr r3, [pc, #708] ; (8003134 ) + 8002e70: 4013 ands r3, r2 + 8002e72: 687a ldr r2, [r7, #4] + 8002e74: 6812 ldr r2, [r2, #0] + 8002e76: 6939 ldr r1, [r7, #16] + 8002e78: 430b orrs r3, r1 + 8002e7a: 6013 str r3, [r2, #0] + + /*-------------------------- USART CR2 Configuration -----------------------*/ + /* Configure the UART Stop Bits: Set STOP[13:12] bits according + * to huart->Init.StopBits value */ + MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); + 8002e7c: 687b ldr r3, [r7, #4] + 8002e7e: 681b ldr r3, [r3, #0] + 8002e80: 685b ldr r3, [r3, #4] + 8002e82: f423 5140 bic.w r1, r3, #12288 ; 0x3000 + 8002e86: 687b ldr r3, [r7, #4] + 8002e88: 68da ldr r2, [r3, #12] + 8002e8a: 687b ldr r3, [r7, #4] + 8002e8c: 681b ldr r3, [r3, #0] + 8002e8e: 430a orrs r2, r1 + 8002e90: 605a str r2, [r3, #4] + /* Configure + * - UART HardWare Flow Control: set CTSE and RTSE bits according + * to huart->Init.HwFlowCtl value + * - one-bit sampling method versus three samples' majority rule according + * to huart->Init.OneBitSampling (not applicable to LPUART) */ + tmpreg = (uint32_t)huart->Init.HwFlowCtl; + 8002e92: 687b ldr r3, [r7, #4] + 8002e94: 699b ldr r3, [r3, #24] + 8002e96: 613b str r3, [r7, #16] + + tmpreg |= huart->Init.OneBitSampling; + 8002e98: 687b ldr r3, [r7, #4] + 8002e9a: 6a1b ldr r3, [r3, #32] + 8002e9c: 693a ldr r2, [r7, #16] + 8002e9e: 4313 orrs r3, r2 + 8002ea0: 613b str r3, [r7, #16] + MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); + 8002ea2: 687b ldr r3, [r7, #4] + 8002ea4: 681b ldr r3, [r3, #0] + 8002ea6: 689b ldr r3, [r3, #8] + 8002ea8: f423 6130 bic.w r1, r3, #2816 ; 0xb00 + 8002eac: 687b ldr r3, [r7, #4] + 8002eae: 681b ldr r3, [r3, #0] + 8002eb0: 693a ldr r2, [r7, #16] + 8002eb2: 430a orrs r2, r1 + 8002eb4: 609a str r2, [r3, #8] + + + /*-------------------------- USART BRR Configuration -----------------------*/ + UART_GETCLOCKSOURCE(huart, clocksource); + 8002eb6: 687b ldr r3, [r7, #4] + 8002eb8: 681b ldr r3, [r3, #0] + 8002eba: 4a9f ldr r2, [pc, #636] ; (8003138 ) + 8002ebc: 4293 cmp r3, r2 + 8002ebe: d121 bne.n 8002f04 + 8002ec0: 4b9e ldr r3, [pc, #632] ; (800313c ) + 8002ec2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8002ec6: f003 0303 and.w r3, r3, #3 + 8002eca: 2b03 cmp r3, #3 + 8002ecc: d816 bhi.n 8002efc + 8002ece: a201 add r2, pc, #4 ; (adr r2, 8002ed4 ) + 8002ed0: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002ed4: 08002ee5 .word 0x08002ee5 + 8002ed8: 08002ef1 .word 0x08002ef1 + 8002edc: 08002eeb .word 0x08002eeb + 8002ee0: 08002ef7 .word 0x08002ef7 + 8002ee4: 2301 movs r3, #1 + 8002ee6: 77fb strb r3, [r7, #31] + 8002ee8: e151 b.n 800318e + 8002eea: 2302 movs r3, #2 + 8002eec: 77fb strb r3, [r7, #31] + 8002eee: e14e b.n 800318e + 8002ef0: 2304 movs r3, #4 + 8002ef2: 77fb strb r3, [r7, #31] + 8002ef4: e14b b.n 800318e + 8002ef6: 2308 movs r3, #8 + 8002ef8: 77fb strb r3, [r7, #31] + 8002efa: e148 b.n 800318e + 8002efc: 2310 movs r3, #16 + 8002efe: 77fb strb r3, [r7, #31] + 8002f00: bf00 nop + 8002f02: e144 b.n 800318e + 8002f04: 687b ldr r3, [r7, #4] + 8002f06: 681b ldr r3, [r3, #0] + 8002f08: 4a8d ldr r2, [pc, #564] ; (8003140 ) + 8002f0a: 4293 cmp r3, r2 + 8002f0c: d134 bne.n 8002f78 + 8002f0e: 4b8b ldr r3, [pc, #556] ; (800313c ) + 8002f10: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8002f14: f003 030c and.w r3, r3, #12 + 8002f18: 2b0c cmp r3, #12 + 8002f1a: d829 bhi.n 8002f70 + 8002f1c: a201 add r2, pc, #4 ; (adr r2, 8002f24 ) + 8002f1e: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 8002f22: bf00 nop + 8002f24: 08002f59 .word 0x08002f59 + 8002f28: 08002f71 .word 0x08002f71 + 8002f2c: 08002f71 .word 0x08002f71 + 8002f30: 08002f71 .word 0x08002f71 + 8002f34: 08002f65 .word 0x08002f65 + 8002f38: 08002f71 .word 0x08002f71 + 8002f3c: 08002f71 .word 0x08002f71 + 8002f40: 08002f71 .word 0x08002f71 + 8002f44: 08002f5f .word 0x08002f5f + 8002f48: 08002f71 .word 0x08002f71 + 8002f4c: 08002f71 .word 0x08002f71 + 8002f50: 08002f71 .word 0x08002f71 + 8002f54: 08002f6b .word 0x08002f6b + 8002f58: 2300 movs r3, #0 + 8002f5a: 77fb strb r3, [r7, #31] + 8002f5c: e117 b.n 800318e + 8002f5e: 2302 movs r3, #2 + 8002f60: 77fb strb r3, [r7, #31] + 8002f62: e114 b.n 800318e + 8002f64: 2304 movs r3, #4 + 8002f66: 77fb strb r3, [r7, #31] + 8002f68: e111 b.n 800318e + 8002f6a: 2308 movs r3, #8 + 8002f6c: 77fb strb r3, [r7, #31] + 8002f6e: e10e b.n 800318e + 8002f70: 2310 movs r3, #16 + 8002f72: 77fb strb r3, [r7, #31] + 8002f74: bf00 nop + 8002f76: e10a b.n 800318e + 8002f78: 687b ldr r3, [r7, #4] + 8002f7a: 681b ldr r3, [r3, #0] + 8002f7c: 4a71 ldr r2, [pc, #452] ; (8003144 ) + 8002f7e: 4293 cmp r3, r2 + 8002f80: d120 bne.n 8002fc4 + 8002f82: 4b6e ldr r3, [pc, #440] ; (800313c ) + 8002f84: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8002f88: f003 0330 and.w r3, r3, #48 ; 0x30 + 8002f8c: 2b10 cmp r3, #16 + 8002f8e: d00f beq.n 8002fb0 + 8002f90: 2b10 cmp r3, #16 + 8002f92: d802 bhi.n 8002f9a + 8002f94: 2b00 cmp r3, #0 + 8002f96: d005 beq.n 8002fa4 + 8002f98: e010 b.n 8002fbc + 8002f9a: 2b20 cmp r3, #32 + 8002f9c: d005 beq.n 8002faa + 8002f9e: 2b30 cmp r3, #48 ; 0x30 + 8002fa0: d009 beq.n 8002fb6 + 8002fa2: e00b b.n 8002fbc + 8002fa4: 2300 movs r3, #0 + 8002fa6: 77fb strb r3, [r7, #31] + 8002fa8: e0f1 b.n 800318e + 8002faa: 2302 movs r3, #2 + 8002fac: 77fb strb r3, [r7, #31] + 8002fae: e0ee b.n 800318e + 8002fb0: 2304 movs r3, #4 + 8002fb2: 77fb strb r3, [r7, #31] + 8002fb4: e0eb b.n 800318e + 8002fb6: 2308 movs r3, #8 + 8002fb8: 77fb strb r3, [r7, #31] + 8002fba: e0e8 b.n 800318e + 8002fbc: 2310 movs r3, #16 + 8002fbe: 77fb strb r3, [r7, #31] + 8002fc0: bf00 nop + 8002fc2: e0e4 b.n 800318e + 8002fc4: 687b ldr r3, [r7, #4] + 8002fc6: 681b ldr r3, [r3, #0] + 8002fc8: 4a5f ldr r2, [pc, #380] ; (8003148 ) + 8002fca: 4293 cmp r3, r2 + 8002fcc: d120 bne.n 8003010 + 8002fce: 4b5b ldr r3, [pc, #364] ; (800313c ) + 8002fd0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8002fd4: f003 03c0 and.w r3, r3, #192 ; 0xc0 + 8002fd8: 2b40 cmp r3, #64 ; 0x40 + 8002fda: d00f beq.n 8002ffc + 8002fdc: 2b40 cmp r3, #64 ; 0x40 + 8002fde: d802 bhi.n 8002fe6 + 8002fe0: 2b00 cmp r3, #0 + 8002fe2: d005 beq.n 8002ff0 + 8002fe4: e010 b.n 8003008 + 8002fe6: 2b80 cmp r3, #128 ; 0x80 + 8002fe8: d005 beq.n 8002ff6 + 8002fea: 2bc0 cmp r3, #192 ; 0xc0 + 8002fec: d009 beq.n 8003002 + 8002fee: e00b b.n 8003008 + 8002ff0: 2300 movs r3, #0 + 8002ff2: 77fb strb r3, [r7, #31] + 8002ff4: e0cb b.n 800318e + 8002ff6: 2302 movs r3, #2 + 8002ff8: 77fb strb r3, [r7, #31] + 8002ffa: e0c8 b.n 800318e + 8002ffc: 2304 movs r3, #4 + 8002ffe: 77fb strb r3, [r7, #31] + 8003000: e0c5 b.n 800318e + 8003002: 2308 movs r3, #8 + 8003004: 77fb strb r3, [r7, #31] + 8003006: e0c2 b.n 800318e + 8003008: 2310 movs r3, #16 + 800300a: 77fb strb r3, [r7, #31] + 800300c: bf00 nop + 800300e: e0be b.n 800318e + 8003010: 687b ldr r3, [r7, #4] + 8003012: 681b ldr r3, [r3, #0] + 8003014: 4a4d ldr r2, [pc, #308] ; (800314c ) + 8003016: 4293 cmp r3, r2 + 8003018: d124 bne.n 8003064 + 800301a: 4b48 ldr r3, [pc, #288] ; (800313c ) + 800301c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8003020: f403 7340 and.w r3, r3, #768 ; 0x300 + 8003024: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 8003028: d012 beq.n 8003050 + 800302a: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 800302e: d802 bhi.n 8003036 + 8003030: 2b00 cmp r3, #0 + 8003032: d007 beq.n 8003044 + 8003034: e012 b.n 800305c + 8003036: f5b3 7f00 cmp.w r3, #512 ; 0x200 + 800303a: d006 beq.n 800304a + 800303c: f5b3 7f40 cmp.w r3, #768 ; 0x300 + 8003040: d009 beq.n 8003056 + 8003042: e00b b.n 800305c + 8003044: 2300 movs r3, #0 + 8003046: 77fb strb r3, [r7, #31] + 8003048: e0a1 b.n 800318e + 800304a: 2302 movs r3, #2 + 800304c: 77fb strb r3, [r7, #31] + 800304e: e09e b.n 800318e + 8003050: 2304 movs r3, #4 + 8003052: 77fb strb r3, [r7, #31] + 8003054: e09b b.n 800318e + 8003056: 2308 movs r3, #8 + 8003058: 77fb strb r3, [r7, #31] + 800305a: e098 b.n 800318e + 800305c: 2310 movs r3, #16 + 800305e: 77fb strb r3, [r7, #31] + 8003060: bf00 nop + 8003062: e094 b.n 800318e + 8003064: 687b ldr r3, [r7, #4] + 8003066: 681b ldr r3, [r3, #0] + 8003068: 4a39 ldr r2, [pc, #228] ; (8003150 ) + 800306a: 4293 cmp r3, r2 + 800306c: d124 bne.n 80030b8 + 800306e: 4b33 ldr r3, [pc, #204] ; (800313c ) + 8003070: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 8003074: f403 6340 and.w r3, r3, #3072 ; 0xc00 + 8003078: f5b3 6f80 cmp.w r3, #1024 ; 0x400 + 800307c: d012 beq.n 80030a4 + 800307e: f5b3 6f80 cmp.w r3, #1024 ; 0x400 + 8003082: d802 bhi.n 800308a + 8003084: 2b00 cmp r3, #0 + 8003086: d007 beq.n 8003098 + 8003088: e012 b.n 80030b0 + 800308a: f5b3 6f00 cmp.w r3, #2048 ; 0x800 + 800308e: d006 beq.n 800309e + 8003090: f5b3 6f40 cmp.w r3, #3072 ; 0xc00 + 8003094: d009 beq.n 80030aa + 8003096: e00b b.n 80030b0 + 8003098: 2301 movs r3, #1 + 800309a: 77fb strb r3, [r7, #31] + 800309c: e077 b.n 800318e + 800309e: 2302 movs r3, #2 + 80030a0: 77fb strb r3, [r7, #31] + 80030a2: e074 b.n 800318e + 80030a4: 2304 movs r3, #4 + 80030a6: 77fb strb r3, [r7, #31] + 80030a8: e071 b.n 800318e + 80030aa: 2308 movs r3, #8 + 80030ac: 77fb strb r3, [r7, #31] + 80030ae: e06e b.n 800318e + 80030b0: 2310 movs r3, #16 + 80030b2: 77fb strb r3, [r7, #31] + 80030b4: bf00 nop + 80030b6: e06a b.n 800318e + 80030b8: 687b ldr r3, [r7, #4] + 80030ba: 681b ldr r3, [r3, #0] + 80030bc: 4a25 ldr r2, [pc, #148] ; (8003154 ) + 80030be: 4293 cmp r3, r2 + 80030c0: d124 bne.n 800310c + 80030c2: 4b1e ldr r3, [pc, #120] ; (800313c ) + 80030c4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 80030c8: f403 5340 and.w r3, r3, #12288 ; 0x3000 + 80030cc: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 + 80030d0: d012 beq.n 80030f8 + 80030d2: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 + 80030d6: d802 bhi.n 80030de + 80030d8: 2b00 cmp r3, #0 + 80030da: d007 beq.n 80030ec + 80030dc: e012 b.n 8003104 + 80030de: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 + 80030e2: d006 beq.n 80030f2 + 80030e4: f5b3 5f40 cmp.w r3, #12288 ; 0x3000 + 80030e8: d009 beq.n 80030fe + 80030ea: e00b b.n 8003104 + 80030ec: 2300 movs r3, #0 + 80030ee: 77fb strb r3, [r7, #31] + 80030f0: e04d b.n 800318e + 80030f2: 2302 movs r3, #2 + 80030f4: 77fb strb r3, [r7, #31] + 80030f6: e04a b.n 800318e + 80030f8: 2304 movs r3, #4 + 80030fa: 77fb strb r3, [r7, #31] + 80030fc: e047 b.n 800318e + 80030fe: 2308 movs r3, #8 + 8003100: 77fb strb r3, [r7, #31] + 8003102: e044 b.n 800318e + 8003104: 2310 movs r3, #16 + 8003106: 77fb strb r3, [r7, #31] + 8003108: bf00 nop + 800310a: e040 b.n 800318e + 800310c: 687b ldr r3, [r7, #4] + 800310e: 681b ldr r3, [r3, #0] + 8003110: 4a11 ldr r2, [pc, #68] ; (8003158 ) + 8003112: 4293 cmp r3, r2 + 8003114: d139 bne.n 800318a + 8003116: 4b09 ldr r3, [pc, #36] ; (800313c ) + 8003118: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 + 800311c: f403 4340 and.w r3, r3, #49152 ; 0xc000 + 8003120: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 + 8003124: d027 beq.n 8003176 + 8003126: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 + 800312a: d817 bhi.n 800315c + 800312c: 2b00 cmp r3, #0 + 800312e: d01c beq.n 800316a + 8003130: e027 b.n 8003182 + 8003132: bf00 nop + 8003134: efff69f3 .word 0xefff69f3 + 8003138: 40011000 .word 0x40011000 + 800313c: 40023800 .word 0x40023800 + 8003140: 40004400 .word 0x40004400 + 8003144: 40004800 .word 0x40004800 + 8003148: 40004c00 .word 0x40004c00 + 800314c: 40005000 .word 0x40005000 + 8003150: 40011400 .word 0x40011400 + 8003154: 40007800 .word 0x40007800 + 8003158: 40007c00 .word 0x40007c00 + 800315c: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 + 8003160: d006 beq.n 8003170 + 8003162: f5b3 4f40 cmp.w r3, #49152 ; 0xc000 + 8003166: d009 beq.n 800317c + 8003168: e00b b.n 8003182 + 800316a: 2300 movs r3, #0 + 800316c: 77fb strb r3, [r7, #31] + 800316e: e00e b.n 800318e + 8003170: 2302 movs r3, #2 + 8003172: 77fb strb r3, [r7, #31] + 8003174: e00b b.n 800318e + 8003176: 2304 movs r3, #4 + 8003178: 77fb strb r3, [r7, #31] + 800317a: e008 b.n 800318e + 800317c: 2308 movs r3, #8 + 800317e: 77fb strb r3, [r7, #31] + 8003180: e005 b.n 800318e + 8003182: 2310 movs r3, #16 + 8003184: 77fb strb r3, [r7, #31] + 8003186: bf00 nop + 8003188: e001 b.n 800318e + 800318a: 2310 movs r3, #16 + 800318c: 77fb strb r3, [r7, #31] + + if (huart->Init.OverSampling == UART_OVERSAMPLING_8) + 800318e: 687b ldr r3, [r7, #4] + 8003190: 69db ldr r3, [r3, #28] + 8003192: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 + 8003196: d17c bne.n 8003292 + { + switch (clocksource) + 8003198: 7ffb ldrb r3, [r7, #31] + 800319a: 2b08 cmp r3, #8 + 800319c: d859 bhi.n 8003252 + 800319e: a201 add r2, pc, #4 ; (adr r2, 80031a4 ) + 80031a0: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 80031a4: 080031c9 .word 0x080031c9 + 80031a8: 080031e7 .word 0x080031e7 + 80031ac: 08003205 .word 0x08003205 + 80031b0: 08003253 .word 0x08003253 + 80031b4: 0800321d .word 0x0800321d + 80031b8: 08003253 .word 0x08003253 + 80031bc: 08003253 .word 0x08003253 + 80031c0: 08003253 .word 0x08003253 + 80031c4: 0800323b .word 0x0800323b + { + case UART_CLOCKSOURCE_PCLK1: + usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate)); + 80031c8: f7fe fcaa bl 8001b20 + 80031cc: 4603 mov r3, r0 + 80031ce: 005a lsls r2, r3, #1 + 80031d0: 687b ldr r3, [r7, #4] + 80031d2: 685b ldr r3, [r3, #4] + 80031d4: 085b lsrs r3, r3, #1 + 80031d6: 441a add r2, r3 + 80031d8: 687b ldr r3, [r7, #4] + 80031da: 685b ldr r3, [r3, #4] + 80031dc: fbb2 f3f3 udiv r3, r2, r3 + 80031e0: b29b uxth r3, r3 + 80031e2: 61bb str r3, [r7, #24] + break; + 80031e4: e038 b.n 8003258 + case UART_CLOCKSOURCE_PCLK2: + usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate)); + 80031e6: f7fe fcaf bl 8001b48 + 80031ea: 4603 mov r3, r0 + 80031ec: 005a lsls r2, r3, #1 + 80031ee: 687b ldr r3, [r7, #4] + 80031f0: 685b ldr r3, [r3, #4] + 80031f2: 085b lsrs r3, r3, #1 + 80031f4: 441a add r2, r3 + 80031f6: 687b ldr r3, [r7, #4] + 80031f8: 685b ldr r3, [r3, #4] + 80031fa: fbb2 f3f3 udiv r3, r2, r3 + 80031fe: b29b uxth r3, r3 + 8003200: 61bb str r3, [r7, #24] + break; + 8003202: e029 b.n 8003258 + case UART_CLOCKSOURCE_HSI: + usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HSI_VALUE, huart->Init.BaudRate)); + 8003204: 687b ldr r3, [r7, #4] + 8003206: 685b ldr r3, [r3, #4] + 8003208: 085a lsrs r2, r3, #1 + 800320a: 4b5d ldr r3, [pc, #372] ; (8003380 ) + 800320c: 4413 add r3, r2 + 800320e: 687a ldr r2, [r7, #4] + 8003210: 6852 ldr r2, [r2, #4] + 8003212: fbb3 f3f2 udiv r3, r3, r2 + 8003216: b29b uxth r3, r3 + 8003218: 61bb str r3, [r7, #24] + break; + 800321a: e01d b.n 8003258 + case UART_CLOCKSOURCE_SYSCLK: + usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HAL_RCC_GetSysClockFreq(), huart->Init.BaudRate)); + 800321c: f7fe fbc2 bl 80019a4 + 8003220: 4603 mov r3, r0 + 8003222: 005a lsls r2, r3, #1 + 8003224: 687b ldr r3, [r7, #4] + 8003226: 685b ldr r3, [r3, #4] + 8003228: 085b lsrs r3, r3, #1 + 800322a: 441a add r2, r3 + 800322c: 687b ldr r3, [r7, #4] + 800322e: 685b ldr r3, [r3, #4] + 8003230: fbb2 f3f3 udiv r3, r2, r3 + 8003234: b29b uxth r3, r3 + 8003236: 61bb str r3, [r7, #24] + break; + 8003238: e00e b.n 8003258 + case UART_CLOCKSOURCE_LSE: + usartdiv = (uint16_t)(UART_DIV_SAMPLING8(LSE_VALUE, huart->Init.BaudRate)); + 800323a: 687b ldr r3, [r7, #4] + 800323c: 685b ldr r3, [r3, #4] + 800323e: 085b lsrs r3, r3, #1 + 8003240: f503 3280 add.w r2, r3, #65536 ; 0x10000 + 8003244: 687b ldr r3, [r7, #4] + 8003246: 685b ldr r3, [r3, #4] + 8003248: fbb2 f3f3 udiv r3, r2, r3 + 800324c: b29b uxth r3, r3 + 800324e: 61bb str r3, [r7, #24] + break; + 8003250: e002 b.n 8003258 + case UART_CLOCKSOURCE_UNDEFINED: + default: + ret = HAL_ERROR; + 8003252: 2301 movs r3, #1 + 8003254: 75fb strb r3, [r7, #23] + break; + 8003256: bf00 nop + } + + /* USARTDIV must be greater than or equal to 0d16 */ + if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) + 8003258: 69bb ldr r3, [r7, #24] + 800325a: 2b0f cmp r3, #15 + 800325c: d916 bls.n 800328c + 800325e: 69bb ldr r3, [r7, #24] + 8003260: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 8003264: d212 bcs.n 800328c + { + brrtemp = (uint16_t)(usartdiv & 0xFFF0U); + 8003266: 69bb ldr r3, [r7, #24] + 8003268: b29b uxth r3, r3 + 800326a: f023 030f bic.w r3, r3, #15 + 800326e: 81fb strh r3, [r7, #14] + brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); + 8003270: 69bb ldr r3, [r7, #24] + 8003272: 085b lsrs r3, r3, #1 + 8003274: b29b uxth r3, r3 + 8003276: f003 0307 and.w r3, r3, #7 + 800327a: b29a uxth r2, r3 + 800327c: 89fb ldrh r3, [r7, #14] + 800327e: 4313 orrs r3, r2 + 8003280: 81fb strh r3, [r7, #14] + huart->Instance->BRR = brrtemp; + 8003282: 687b ldr r3, [r7, #4] + 8003284: 681b ldr r3, [r3, #0] + 8003286: 89fa ldrh r2, [r7, #14] + 8003288: 60da str r2, [r3, #12] + 800328a: e06e b.n 800336a + } + else + { + ret = HAL_ERROR; + 800328c: 2301 movs r3, #1 + 800328e: 75fb strb r3, [r7, #23] + 8003290: e06b b.n 800336a + } + } + else + { + switch (clocksource) + 8003292: 7ffb ldrb r3, [r7, #31] + 8003294: 2b08 cmp r3, #8 + 8003296: d857 bhi.n 8003348 + 8003298: a201 add r2, pc, #4 ; (adr r2, 80032a0 ) + 800329a: f852 f023 ldr.w pc, [r2, r3, lsl #2] + 800329e: bf00 nop + 80032a0: 080032c5 .word 0x080032c5 + 80032a4: 080032e1 .word 0x080032e1 + 80032a8: 080032fd .word 0x080032fd + 80032ac: 08003349 .word 0x08003349 + 80032b0: 08003315 .word 0x08003315 + 80032b4: 08003349 .word 0x08003349 + 80032b8: 08003349 .word 0x08003349 + 80032bc: 08003349 .word 0x08003349 + 80032c0: 08003331 .word 0x08003331 + { + case UART_CLOCKSOURCE_PCLK1: + usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate)); + 80032c4: f7fe fc2c bl 8001b20 + 80032c8: 4602 mov r2, r0 + 80032ca: 687b ldr r3, [r7, #4] + 80032cc: 685b ldr r3, [r3, #4] + 80032ce: 085b lsrs r3, r3, #1 + 80032d0: 441a add r2, r3 + 80032d2: 687b ldr r3, [r7, #4] + 80032d4: 685b ldr r3, [r3, #4] + 80032d6: fbb2 f3f3 udiv r3, r2, r3 + 80032da: b29b uxth r3, r3 + 80032dc: 61bb str r3, [r7, #24] + break; + 80032de: e036 b.n 800334e + case UART_CLOCKSOURCE_PCLK2: + usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate)); + 80032e0: f7fe fc32 bl 8001b48 + 80032e4: 4602 mov r2, r0 + 80032e6: 687b ldr r3, [r7, #4] + 80032e8: 685b ldr r3, [r3, #4] + 80032ea: 085b lsrs r3, r3, #1 + 80032ec: 441a add r2, r3 + 80032ee: 687b ldr r3, [r7, #4] + 80032f0: 685b ldr r3, [r3, #4] + 80032f2: fbb2 f3f3 udiv r3, r2, r3 + 80032f6: b29b uxth r3, r3 + 80032f8: 61bb str r3, [r7, #24] + break; + 80032fa: e028 b.n 800334e + case UART_CLOCKSOURCE_HSI: + usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HSI_VALUE, huart->Init.BaudRate)); + 80032fc: 687b ldr r3, [r7, #4] + 80032fe: 685b ldr r3, [r3, #4] + 8003300: 085a lsrs r2, r3, #1 + 8003302: 4b20 ldr r3, [pc, #128] ; (8003384 ) + 8003304: 4413 add r3, r2 + 8003306: 687a ldr r2, [r7, #4] + 8003308: 6852 ldr r2, [r2, #4] + 800330a: fbb3 f3f2 udiv r3, r3, r2 + 800330e: b29b uxth r3, r3 + 8003310: 61bb str r3, [r7, #24] + break; + 8003312: e01c b.n 800334e + case UART_CLOCKSOURCE_SYSCLK: + usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetSysClockFreq(), huart->Init.BaudRate)); + 8003314: f7fe fb46 bl 80019a4 + 8003318: 4602 mov r2, r0 + 800331a: 687b ldr r3, [r7, #4] + 800331c: 685b ldr r3, [r3, #4] + 800331e: 085b lsrs r3, r3, #1 + 8003320: 441a add r2, r3 + 8003322: 687b ldr r3, [r7, #4] + 8003324: 685b ldr r3, [r3, #4] + 8003326: fbb2 f3f3 udiv r3, r2, r3 + 800332a: b29b uxth r3, r3 + 800332c: 61bb str r3, [r7, #24] + break; + 800332e: e00e b.n 800334e + case UART_CLOCKSOURCE_LSE: + usartdiv = (uint16_t)(UART_DIV_SAMPLING16(LSE_VALUE, huart->Init.BaudRate)); + 8003330: 687b ldr r3, [r7, #4] + 8003332: 685b ldr r3, [r3, #4] + 8003334: 085b lsrs r3, r3, #1 + 8003336: f503 4200 add.w r2, r3, #32768 ; 0x8000 + 800333a: 687b ldr r3, [r7, #4] + 800333c: 685b ldr r3, [r3, #4] + 800333e: fbb2 f3f3 udiv r3, r2, r3 + 8003342: b29b uxth r3, r3 + 8003344: 61bb str r3, [r7, #24] + break; + 8003346: e002 b.n 800334e + case UART_CLOCKSOURCE_UNDEFINED: + default: + ret = HAL_ERROR; + 8003348: 2301 movs r3, #1 + 800334a: 75fb strb r3, [r7, #23] + break; + 800334c: bf00 nop + } + + /* USARTDIV must be greater than or equal to 0d16 */ + if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) + 800334e: 69bb ldr r3, [r7, #24] + 8003350: 2b0f cmp r3, #15 + 8003352: d908 bls.n 8003366 + 8003354: 69bb ldr r3, [r7, #24] + 8003356: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 + 800335a: d204 bcs.n 8003366 + { + huart->Instance->BRR = usartdiv; + 800335c: 687b ldr r3, [r7, #4] + 800335e: 681b ldr r3, [r3, #0] + 8003360: 69ba ldr r2, [r7, #24] + 8003362: 60da str r2, [r3, #12] + 8003364: e001 b.n 800336a + } + else + { + ret = HAL_ERROR; + 8003366: 2301 movs r3, #1 + 8003368: 75fb strb r3, [r7, #23] + } + } + + + /* Clear ISR function pointers */ + huart->RxISR = NULL; + 800336a: 687b ldr r3, [r7, #4] + 800336c: 2200 movs r2, #0 + 800336e: 661a str r2, [r3, #96] ; 0x60 + huart->TxISR = NULL; + 8003370: 687b ldr r3, [r7, #4] + 8003372: 2200 movs r2, #0 + 8003374: 665a str r2, [r3, #100] ; 0x64 + + return ret; + 8003376: 7dfb ldrb r3, [r7, #23] +} + 8003378: 4618 mov r0, r3 + 800337a: 3720 adds r7, #32 + 800337c: 46bd mov sp, r7 + 800337e: bd80 pop {r7, pc} + 8003380: 01e84800 .word 0x01e84800 + 8003384: 00f42400 .word 0x00f42400 + +08003388 : + * @brief Configure the UART peripheral advanced features. + * @param huart UART handle. + * @retval None + */ +void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) +{ + 8003388: b480 push {r7} + 800338a: b083 sub sp, #12 + 800338c: af00 add r7, sp, #0 + 800338e: 6078 str r0, [r7, #4] + /* Check whether the set of advanced features to configure is properly set */ + assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); + + /* if required, configure TX pin active level inversion */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) + 8003390: 687b ldr r3, [r7, #4] + 8003392: 6a5b ldr r3, [r3, #36] ; 0x24 + 8003394: f003 0301 and.w r3, r3, #1 + 8003398: 2b00 cmp r3, #0 + 800339a: d00a beq.n 80033b2 + { + assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); + 800339c: 687b ldr r3, [r7, #4] + 800339e: 681b ldr r3, [r3, #0] + 80033a0: 685b ldr r3, [r3, #4] + 80033a2: f423 3100 bic.w r1, r3, #131072 ; 0x20000 + 80033a6: 687b ldr r3, [r7, #4] + 80033a8: 6a9a ldr r2, [r3, #40] ; 0x28 + 80033aa: 687b ldr r3, [r7, #4] + 80033ac: 681b ldr r3, [r3, #0] + 80033ae: 430a orrs r2, r1 + 80033b0: 605a str r2, [r3, #4] + } + + /* if required, configure RX pin active level inversion */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) + 80033b2: 687b ldr r3, [r7, #4] + 80033b4: 6a5b ldr r3, [r3, #36] ; 0x24 + 80033b6: f003 0302 and.w r3, r3, #2 + 80033ba: 2b00 cmp r3, #0 + 80033bc: d00a beq.n 80033d4 + { + assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); + 80033be: 687b ldr r3, [r7, #4] + 80033c0: 681b ldr r3, [r3, #0] + 80033c2: 685b ldr r3, [r3, #4] + 80033c4: f423 3180 bic.w r1, r3, #65536 ; 0x10000 + 80033c8: 687b ldr r3, [r7, #4] + 80033ca: 6ada ldr r2, [r3, #44] ; 0x2c + 80033cc: 687b ldr r3, [r7, #4] + 80033ce: 681b ldr r3, [r3, #0] + 80033d0: 430a orrs r2, r1 + 80033d2: 605a str r2, [r3, #4] + } + + /* if required, configure data inversion */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) + 80033d4: 687b ldr r3, [r7, #4] + 80033d6: 6a5b ldr r3, [r3, #36] ; 0x24 + 80033d8: f003 0304 and.w r3, r3, #4 + 80033dc: 2b00 cmp r3, #0 + 80033de: d00a beq.n 80033f6 + { + assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); + 80033e0: 687b ldr r3, [r7, #4] + 80033e2: 681b ldr r3, [r3, #0] + 80033e4: 685b ldr r3, [r3, #4] + 80033e6: f423 2180 bic.w r1, r3, #262144 ; 0x40000 + 80033ea: 687b ldr r3, [r7, #4] + 80033ec: 6b1a ldr r2, [r3, #48] ; 0x30 + 80033ee: 687b ldr r3, [r7, #4] + 80033f0: 681b ldr r3, [r3, #0] + 80033f2: 430a orrs r2, r1 + 80033f4: 605a str r2, [r3, #4] + } + + /* if required, configure RX/TX pins swap */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) + 80033f6: 687b ldr r3, [r7, #4] + 80033f8: 6a5b ldr r3, [r3, #36] ; 0x24 + 80033fa: f003 0308 and.w r3, r3, #8 + 80033fe: 2b00 cmp r3, #0 + 8003400: d00a beq.n 8003418 + { + assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); + 8003402: 687b ldr r3, [r7, #4] + 8003404: 681b ldr r3, [r3, #0] + 8003406: 685b ldr r3, [r3, #4] + 8003408: f423 4100 bic.w r1, r3, #32768 ; 0x8000 + 800340c: 687b ldr r3, [r7, #4] + 800340e: 6b5a ldr r2, [r3, #52] ; 0x34 + 8003410: 687b ldr r3, [r7, #4] + 8003412: 681b ldr r3, [r3, #0] + 8003414: 430a orrs r2, r1 + 8003416: 605a str r2, [r3, #4] + } + + /* if required, configure RX overrun detection disabling */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) + 8003418: 687b ldr r3, [r7, #4] + 800341a: 6a5b ldr r3, [r3, #36] ; 0x24 + 800341c: f003 0310 and.w r3, r3, #16 + 8003420: 2b00 cmp r3, #0 + 8003422: d00a beq.n 800343a + { + assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); + MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); + 8003424: 687b ldr r3, [r7, #4] + 8003426: 681b ldr r3, [r3, #0] + 8003428: 689b ldr r3, [r3, #8] + 800342a: f423 5180 bic.w r1, r3, #4096 ; 0x1000 + 800342e: 687b ldr r3, [r7, #4] + 8003430: 6b9a ldr r2, [r3, #56] ; 0x38 + 8003432: 687b ldr r3, [r7, #4] + 8003434: 681b ldr r3, [r3, #0] + 8003436: 430a orrs r2, r1 + 8003438: 609a str r2, [r3, #8] + } + + /* if required, configure DMA disabling on reception error */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) + 800343a: 687b ldr r3, [r7, #4] + 800343c: 6a5b ldr r3, [r3, #36] ; 0x24 + 800343e: f003 0320 and.w r3, r3, #32 + 8003442: 2b00 cmp r3, #0 + 8003444: d00a beq.n 800345c + { + assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); + MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); + 8003446: 687b ldr r3, [r7, #4] + 8003448: 681b ldr r3, [r3, #0] + 800344a: 689b ldr r3, [r3, #8] + 800344c: f423 5100 bic.w r1, r3, #8192 ; 0x2000 + 8003450: 687b ldr r3, [r7, #4] + 8003452: 6bda ldr r2, [r3, #60] ; 0x3c + 8003454: 687b ldr r3, [r7, #4] + 8003456: 681b ldr r3, [r3, #0] + 8003458: 430a orrs r2, r1 + 800345a: 609a str r2, [r3, #8] + } + + /* if required, configure auto Baud rate detection scheme */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) + 800345c: 687b ldr r3, [r7, #4] + 800345e: 6a5b ldr r3, [r3, #36] ; 0x24 + 8003460: f003 0340 and.w r3, r3, #64 ; 0x40 + 8003464: 2b00 cmp r3, #0 + 8003466: d01a beq.n 800349e + { + assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); + assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); + 8003468: 687b ldr r3, [r7, #4] + 800346a: 681b ldr r3, [r3, #0] + 800346c: 685b ldr r3, [r3, #4] + 800346e: f423 1180 bic.w r1, r3, #1048576 ; 0x100000 + 8003472: 687b ldr r3, [r7, #4] + 8003474: 6c1a ldr r2, [r3, #64] ; 0x40 + 8003476: 687b ldr r3, [r7, #4] + 8003478: 681b ldr r3, [r3, #0] + 800347a: 430a orrs r2, r1 + 800347c: 605a str r2, [r3, #4] + /* set auto Baudrate detection parameters if detection is enabled */ + if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) + 800347e: 687b ldr r3, [r7, #4] + 8003480: 6c1b ldr r3, [r3, #64] ; 0x40 + 8003482: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 + 8003486: d10a bne.n 800349e + { + assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); + 8003488: 687b ldr r3, [r7, #4] + 800348a: 681b ldr r3, [r3, #0] + 800348c: 685b ldr r3, [r3, #4] + 800348e: f423 01c0 bic.w r1, r3, #6291456 ; 0x600000 + 8003492: 687b ldr r3, [r7, #4] + 8003494: 6c5a ldr r2, [r3, #68] ; 0x44 + 8003496: 687b ldr r3, [r7, #4] + 8003498: 681b ldr r3, [r3, #0] + 800349a: 430a orrs r2, r1 + 800349c: 605a str r2, [r3, #4] + } + } + + /* if required, configure MSB first on communication line */ + if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) + 800349e: 687b ldr r3, [r7, #4] + 80034a0: 6a5b ldr r3, [r3, #36] ; 0x24 + 80034a2: f003 0380 and.w r3, r3, #128 ; 0x80 + 80034a6: 2b00 cmp r3, #0 + 80034a8: d00a beq.n 80034c0 + { + assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); + MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); + 80034aa: 687b ldr r3, [r7, #4] + 80034ac: 681b ldr r3, [r3, #0] + 80034ae: 685b ldr r3, [r3, #4] + 80034b0: f423 2100 bic.w r1, r3, #524288 ; 0x80000 + 80034b4: 687b ldr r3, [r7, #4] + 80034b6: 6c9a ldr r2, [r3, #72] ; 0x48 + 80034b8: 687b ldr r3, [r7, #4] + 80034ba: 681b ldr r3, [r3, #0] + 80034bc: 430a orrs r2, r1 + 80034be: 605a str r2, [r3, #4] + } +} + 80034c0: bf00 nop + 80034c2: 370c adds r7, #12 + 80034c4: 46bd mov sp, r7 + 80034c6: f85d 7b04 ldr.w r7, [sp], #4 + 80034ca: 4770 bx lr + +080034cc : + * @brief Check the UART Idle State. + * @param huart UART handle. + * @retval HAL status + */ +HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) +{ + 80034cc: b580 push {r7, lr} + 80034ce: b086 sub sp, #24 + 80034d0: af02 add r7, sp, #8 + 80034d2: 6078 str r0, [r7, #4] + uint32_t tickstart; + + /* Initialize the UART ErrorCode */ + huart->ErrorCode = HAL_UART_ERROR_NONE; + 80034d4: 687b ldr r3, [r7, #4] + 80034d6: 2200 movs r2, #0 + 80034d8: 67da str r2, [r3, #124] ; 0x7c + + /* Init tickstart for timeout managment*/ + tickstart = HAL_GetTick(); + 80034da: f7fd f887 bl 80005ec + 80034de: 60f8 str r0, [r7, #12] + + /* Check if the Transmitter is enabled */ + if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) + 80034e0: 687b ldr r3, [r7, #4] + 80034e2: 681b ldr r3, [r3, #0] + 80034e4: 681b ldr r3, [r3, #0] + 80034e6: f003 0308 and.w r3, r3, #8 + 80034ea: 2b08 cmp r3, #8 + 80034ec: d10e bne.n 800350c + { + /* Wait until TEACK flag is set */ + if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) + 80034ee: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000 + 80034f2: 9300 str r3, [sp, #0] + 80034f4: 68fb ldr r3, [r7, #12] + 80034f6: 2200 movs r2, #0 + 80034f8: f44f 1100 mov.w r1, #2097152 ; 0x200000 + 80034fc: 6878 ldr r0, [r7, #4] + 80034fe: f000 f814 bl 800352a + 8003502: 4603 mov r3, r0 + 8003504: 2b00 cmp r3, #0 + 8003506: d001 beq.n 800350c + { + /* Timeout occurred */ + return HAL_TIMEOUT; + 8003508: 2303 movs r3, #3 + 800350a: e00a b.n 8003522 + } + } + + /* Initialize the UART State */ + huart->gState = HAL_UART_STATE_READY; + 800350c: 687b ldr r3, [r7, #4] + 800350e: 2220 movs r2, #32 + 8003510: 675a str r2, [r3, #116] ; 0x74 + huart->RxState = HAL_UART_STATE_READY; + 8003512: 687b ldr r3, [r7, #4] + 8003514: 2220 movs r2, #32 + 8003516: 679a str r2, [r3, #120] ; 0x78 + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + 8003518: 687b ldr r3, [r7, #4] + 800351a: 2200 movs r2, #0 + 800351c: f883 2070 strb.w r2, [r3, #112] ; 0x70 + + return HAL_OK; + 8003520: 2300 movs r3, #0 +} + 8003522: 4618 mov r0, r3 + 8003524: 3710 adds r7, #16 + 8003526: 46bd mov sp, r7 + 8003528: bd80 pop {r7, pc} + +0800352a : + * @param Tickstart Tick start value + * @param Timeout Timeout duration + * @retval HAL status + */ +HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout) +{ + 800352a: b580 push {r7, lr} + 800352c: b084 sub sp, #16 + 800352e: af00 add r7, sp, #0 + 8003530: 60f8 str r0, [r7, #12] + 8003532: 60b9 str r1, [r7, #8] + 8003534: 603b str r3, [r7, #0] + 8003536: 4613 mov r3, r2 + 8003538: 71fb strb r3, [r7, #7] + /* Wait until flag is set */ + while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) + 800353a: e02a b.n 8003592 + { + /* Check for the Timeout */ + if (Timeout != HAL_MAX_DELAY) + 800353c: 69bb ldr r3, [r7, #24] + 800353e: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff + 8003542: d026 beq.n 8003592 + { + if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) + 8003544: f7fd f852 bl 80005ec + 8003548: 4602 mov r2, r0 + 800354a: 683b ldr r3, [r7, #0] + 800354c: 1ad3 subs r3, r2, r3 + 800354e: 69ba ldr r2, [r7, #24] + 8003550: 429a cmp r2, r3 + 8003552: d302 bcc.n 800355a + 8003554: 69bb ldr r3, [r7, #24] + 8003556: 2b00 cmp r3, #0 + 8003558: d11b bne.n 8003592 + { + /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for the interrupt process */ + CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE)); + 800355a: 68fb ldr r3, [r7, #12] + 800355c: 681b ldr r3, [r3, #0] + 800355e: 681a ldr r2, [r3, #0] + 8003560: 68fb ldr r3, [r7, #12] + 8003562: 681b ldr r3, [r3, #0] + 8003564: f422 72d0 bic.w r2, r2, #416 ; 0x1a0 + 8003568: 601a str r2, [r3, #0] + CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 800356a: 68fb ldr r3, [r7, #12] + 800356c: 681b ldr r3, [r3, #0] + 800356e: 689a ldr r2, [r3, #8] + 8003570: 68fb ldr r3, [r7, #12] + 8003572: 681b ldr r3, [r3, #0] + 8003574: f022 0201 bic.w r2, r2, #1 + 8003578: 609a str r2, [r3, #8] + + huart->gState = HAL_UART_STATE_READY; + 800357a: 68fb ldr r3, [r7, #12] + 800357c: 2220 movs r2, #32 + 800357e: 675a str r2, [r3, #116] ; 0x74 + huart->RxState = HAL_UART_STATE_READY; + 8003580: 68fb ldr r3, [r7, #12] + 8003582: 2220 movs r2, #32 + 8003584: 679a str r2, [r3, #120] ; 0x78 + + /* Process Unlocked */ + __HAL_UNLOCK(huart); + 8003586: 68fb ldr r3, [r7, #12] + 8003588: 2200 movs r2, #0 + 800358a: f883 2070 strb.w r2, [r3, #112] ; 0x70 + + return HAL_TIMEOUT; + 800358e: 2303 movs r3, #3 + 8003590: e00f b.n 80035b2 + while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) + 8003592: 68fb ldr r3, [r7, #12] + 8003594: 681b ldr r3, [r3, #0] + 8003596: 69da ldr r2, [r3, #28] + 8003598: 68bb ldr r3, [r7, #8] + 800359a: 4013 ands r3, r2 + 800359c: 68ba ldr r2, [r7, #8] + 800359e: 429a cmp r2, r3 + 80035a0: bf0c ite eq + 80035a2: 2301 moveq r3, #1 + 80035a4: 2300 movne r3, #0 + 80035a6: b2db uxtb r3, r3 + 80035a8: 461a mov r2, r3 + 80035aa: 79fb ldrb r3, [r7, #7] + 80035ac: 429a cmp r2, r3 + 80035ae: d0c5 beq.n 800353c + } + } + } + return HAL_OK; + 80035b0: 2300 movs r3, #0 +} + 80035b2: 4618 mov r0, r3 + 80035b4: 3710 adds r7, #16 + 80035b6: 46bd mov sp, r7 + 80035b8: bd80 pop {r7, pc} + +080035ba : + * @brief End ongoing Tx transfer on UART peripheral (following error detection or Transmit completion). + * @param huart UART handle. + * @retval None + */ +static void UART_EndTxTransfer(UART_HandleTypeDef *huart) +{ + 80035ba: b480 push {r7} + 80035bc: b083 sub sp, #12 + 80035be: af00 add r7, sp, #0 + 80035c0: 6078 str r0, [r7, #4] + /* Disable TXEIE and TCIE interrupts */ + CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); + 80035c2: 687b ldr r3, [r7, #4] + 80035c4: 681b ldr r3, [r3, #0] + 80035c6: 681a ldr r2, [r3, #0] + 80035c8: 687b ldr r3, [r7, #4] + 80035ca: 681b ldr r3, [r3, #0] + 80035cc: f022 02c0 bic.w r2, r2, #192 ; 0xc0 + 80035d0: 601a str r2, [r3, #0] + + /* At end of Tx process, restore huart->gState to Ready */ + huart->gState = HAL_UART_STATE_READY; + 80035d2: 687b ldr r3, [r7, #4] + 80035d4: 2220 movs r2, #32 + 80035d6: 675a str r2, [r3, #116] ; 0x74 +} + 80035d8: bf00 nop + 80035da: 370c adds r7, #12 + 80035dc: 46bd mov sp, r7 + 80035de: f85d 7b04 ldr.w r7, [sp], #4 + 80035e2: 4770 bx lr + +080035e4 : + * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception completion). + * @param huart UART handle. + * @retval None + */ +static void UART_EndRxTransfer(UART_HandleTypeDef *huart) +{ + 80035e4: b480 push {r7} + 80035e6: b083 sub sp, #12 + 80035e8: af00 add r7, sp, #0 + 80035ea: 6078 str r0, [r7, #4] + /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ + CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); + 80035ec: 687b ldr r3, [r7, #4] + 80035ee: 681b ldr r3, [r3, #0] + 80035f0: 681a ldr r2, [r3, #0] + 80035f2: 687b ldr r3, [r7, #4] + 80035f4: 681b ldr r3, [r3, #0] + 80035f6: f422 7290 bic.w r2, r2, #288 ; 0x120 + 80035fa: 601a str r2, [r3, #0] + CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 80035fc: 687b ldr r3, [r7, #4] + 80035fe: 681b ldr r3, [r3, #0] + 8003600: 689a ldr r2, [r3, #8] + 8003602: 687b ldr r3, [r7, #4] + 8003604: 681b ldr r3, [r3, #0] + 8003606: f022 0201 bic.w r2, r2, #1 + 800360a: 609a str r2, [r3, #8] + + /* At end of Rx process, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + 800360c: 687b ldr r3, [r7, #4] + 800360e: 2220 movs r2, #32 + 8003610: 679a str r2, [r3, #120] ; 0x78 + + /* Reset RxIsr function pointer */ + huart->RxISR = NULL; + 8003612: 687b ldr r3, [r7, #4] + 8003614: 2200 movs r2, #0 + 8003616: 661a str r2, [r3, #96] ; 0x60 +} + 8003618: bf00 nop + 800361a: 370c adds r7, #12 + 800361c: 46bd mov sp, r7 + 800361e: f85d 7b04 ldr.w r7, [sp], #4 + 8003622: 4770 bx lr + +08003624 : + * @brief DMA UART transmit process complete callback. + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma) +{ + 8003624: b580 push {r7, lr} + 8003626: b084 sub sp, #16 + 8003628: af00 add r7, sp, #0 + 800362a: 6078 str r0, [r7, #4] + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 800362c: 687b ldr r3, [r7, #4] + 800362e: 6b9b ldr r3, [r3, #56] ; 0x38 + 8003630: 60fb str r3, [r7, #12] + + /* DMA Normal mode */ + if (hdma->Init.Mode != DMA_CIRCULAR) + 8003632: 687b ldr r3, [r7, #4] + 8003634: 69db ldr r3, [r3, #28] + 8003636: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 800363a: d014 beq.n 8003666 + { + huart->TxXferCount = 0U; + 800363c: 68fb ldr r3, [r7, #12] + 800363e: 2200 movs r2, #0 + 8003640: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 + + /* Disable the DMA transfer for transmit request by resetting the DMAT bit + in the UART CR3 register */ + CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); + 8003644: 68fb ldr r3, [r7, #12] + 8003646: 681b ldr r3, [r3, #0] + 8003648: 689a ldr r2, [r3, #8] + 800364a: 68fb ldr r3, [r7, #12] + 800364c: 681b ldr r3, [r3, #0] + 800364e: f022 0280 bic.w r2, r2, #128 ; 0x80 + 8003652: 609a str r2, [r3, #8] + + /* Enable the UART Transmit Complete Interrupt */ + SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); + 8003654: 68fb ldr r3, [r7, #12] + 8003656: 681b ldr r3, [r3, #0] + 8003658: 681a ldr r2, [r3, #0] + 800365a: 68fb ldr r3, [r7, #12] + 800365c: 681b ldr r3, [r3, #0] + 800365e: f042 0240 orr.w r2, r2, #64 ; 0x40 + 8003662: 601a str r2, [r3, #0] +#else + /*Call legacy weak Tx complete callback*/ + HAL_UART_TxCpltCallback(huart); +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ + } +} + 8003664: e002 b.n 800366c + HAL_UART_TxCpltCallback(huart); + 8003666: 68f8 ldr r0, [r7, #12] + 8003668: f7ff fbb8 bl 8002ddc +} + 800366c: bf00 nop + 800366e: 3710 adds r7, #16 + 8003670: 46bd mov sp, r7 + 8003672: bd80 pop {r7, pc} + +08003674 : + * @brief DMA UART transmit process half complete callback. + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma) +{ + 8003674: b580 push {r7, lr} + 8003676: b084 sub sp, #16 + 8003678: af00 add r7, sp, #0 + 800367a: 6078 str r0, [r7, #4] + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 800367c: 687b ldr r3, [r7, #4] + 800367e: 6b9b ldr r3, [r3, #56] ; 0x38 + 8003680: 60fb str r3, [r7, #12] +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Tx Half complete callback*/ + huart->TxHalfCpltCallback(huart); +#else + /*Call legacy weak Tx Half complete callback*/ + HAL_UART_TxHalfCpltCallback(huart); + 8003682: 68f8 ldr r0, [r7, #12] + 8003684: f7ff fbb4 bl 8002df0 +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + 8003688: bf00 nop + 800368a: 3710 adds r7, #16 + 800368c: 46bd mov sp, r7 + 800368e: bd80 pop {r7, pc} + +08003690 : + * @brief DMA UART receive process complete callback. + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma) +{ + 8003690: b580 push {r7, lr} + 8003692: b084 sub sp, #16 + 8003694: af00 add r7, sp, #0 + 8003696: 6078 str r0, [r7, #4] + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 8003698: 687b ldr r3, [r7, #4] + 800369a: 6b9b ldr r3, [r3, #56] ; 0x38 + 800369c: 60fb str r3, [r7, #12] + + /* DMA Normal mode */ + if (hdma->Init.Mode != DMA_CIRCULAR) + 800369e: 687b ldr r3, [r7, #4] + 80036a0: 69db ldr r3, [r3, #28] + 80036a2: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 80036a6: d01e beq.n 80036e6 + { + huart->RxXferCount = 0U; + 80036a8: 68fb ldr r3, [r7, #12] + 80036aa: 2200 movs r2, #0 + 80036ac: f8a3 205a strh.w r2, [r3, #90] ; 0x5a + + /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ + CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); + 80036b0: 68fb ldr r3, [r7, #12] + 80036b2: 681b ldr r3, [r3, #0] + 80036b4: 681a ldr r2, [r3, #0] + 80036b6: 68fb ldr r3, [r7, #12] + 80036b8: 681b ldr r3, [r3, #0] + 80036ba: f422 7280 bic.w r2, r2, #256 ; 0x100 + 80036be: 601a str r2, [r3, #0] + CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); + 80036c0: 68fb ldr r3, [r7, #12] + 80036c2: 681b ldr r3, [r3, #0] + 80036c4: 689a ldr r2, [r3, #8] + 80036c6: 68fb ldr r3, [r7, #12] + 80036c8: 681b ldr r3, [r3, #0] + 80036ca: f022 0201 bic.w r2, r2, #1 + 80036ce: 609a str r2, [r3, #8] + + /* Disable the DMA transfer for the receiver request by resetting the DMAR bit + in the UART CR3 register */ + CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); + 80036d0: 68fb ldr r3, [r7, #12] + 80036d2: 681b ldr r3, [r3, #0] + 80036d4: 689a ldr r2, [r3, #8] + 80036d6: 68fb ldr r3, [r7, #12] + 80036d8: 681b ldr r3, [r3, #0] + 80036da: f022 0240 bic.w r2, r2, #64 ; 0x40 + 80036de: 609a str r2, [r3, #8] + + /* At end of Rx process, restore huart->RxState to Ready */ + huart->RxState = HAL_UART_STATE_READY; + 80036e0: 68fb ldr r3, [r7, #12] + 80036e2: 2220 movs r2, #32 + 80036e4: 679a str r2, [r3, #120] ; 0x78 +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx complete callback*/ + huart->RxCpltCallback(huart); +#else + /*Call legacy weak Rx complete callback*/ + HAL_UART_RxCpltCallback(huart); + 80036e6: 68f8 ldr r0, [r7, #12] + 80036e8: f7ff fb8c bl 8002e04 +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + 80036ec: bf00 nop + 80036ee: 3710 adds r7, #16 + 80036f0: 46bd mov sp, r7 + 80036f2: bd80 pop {r7, pc} + +080036f4 : + * @brief DMA UART receive process half complete callback. + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma) +{ + 80036f4: b580 push {r7, lr} + 80036f6: b084 sub sp, #16 + 80036f8: af00 add r7, sp, #0 + 80036fa: 6078 str r0, [r7, #4] + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 80036fc: 687b ldr r3, [r7, #4] + 80036fe: 6b9b ldr r3, [r3, #56] ; 0x38 + 8003700: 60fb str r3, [r7, #12] +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Rx Half complete callback*/ + huart->RxHalfCpltCallback(huart); +#else + /*Call legacy weak Rx Half complete callback*/ + HAL_UART_RxHalfCpltCallback(huart); + 8003702: 68f8 ldr r0, [r7, #12] + 8003704: f7ff fb88 bl 8002e18 +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + 8003708: bf00 nop + 800370a: 3710 adds r7, #16 + 800370c: 46bd mov sp, r7 + 800370e: bd80 pop {r7, pc} + +08003710 : + * @brief DMA UART communication error callback. + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMAError(DMA_HandleTypeDef *hdma) +{ + 8003710: b580 push {r7, lr} + 8003712: b086 sub sp, #24 + 8003714: af00 add r7, sp, #0 + 8003716: 6078 str r0, [r7, #4] + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 8003718: 687b ldr r3, [r7, #4] + 800371a: 6b9b ldr r3, [r3, #56] ; 0x38 + 800371c: 617b str r3, [r7, #20] + + const HAL_UART_StateTypeDef gstate = huart->gState; + 800371e: 697b ldr r3, [r7, #20] + 8003720: 6f5b ldr r3, [r3, #116] ; 0x74 + 8003722: 613b str r3, [r7, #16] + const HAL_UART_StateTypeDef rxstate = huart->RxState; + 8003724: 697b ldr r3, [r7, #20] + 8003726: 6f9b ldr r3, [r3, #120] ; 0x78 + 8003728: 60fb str r3, [r7, #12] + + /* Stop UART DMA Tx request if ongoing */ + if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && + 800372a: 697b ldr r3, [r7, #20] + 800372c: 681b ldr r3, [r3, #0] + 800372e: 689b ldr r3, [r3, #8] + 8003730: f003 0380 and.w r3, r3, #128 ; 0x80 + 8003734: 2b80 cmp r3, #128 ; 0x80 + 8003736: d109 bne.n 800374c + 8003738: 693b ldr r3, [r7, #16] + 800373a: 2b21 cmp r3, #33 ; 0x21 + 800373c: d106 bne.n 800374c + (gstate == HAL_UART_STATE_BUSY_TX)) + { + huart->TxXferCount = 0U; + 800373e: 697b ldr r3, [r7, #20] + 8003740: 2200 movs r2, #0 + 8003742: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 + UART_EndTxTransfer(huart); + 8003746: 6978 ldr r0, [r7, #20] + 8003748: f7ff ff37 bl 80035ba + } + + /* Stop UART DMA Rx request if ongoing */ + if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && + 800374c: 697b ldr r3, [r7, #20] + 800374e: 681b ldr r3, [r3, #0] + 8003750: 689b ldr r3, [r3, #8] + 8003752: f003 0340 and.w r3, r3, #64 ; 0x40 + 8003756: 2b40 cmp r3, #64 ; 0x40 + 8003758: d109 bne.n 800376e + 800375a: 68fb ldr r3, [r7, #12] + 800375c: 2b22 cmp r3, #34 ; 0x22 + 800375e: d106 bne.n 800376e + (rxstate == HAL_UART_STATE_BUSY_RX)) + { + huart->RxXferCount = 0U; + 8003760: 697b ldr r3, [r7, #20] + 8003762: 2200 movs r2, #0 + 8003764: f8a3 205a strh.w r2, [r3, #90] ; 0x5a + UART_EndRxTransfer(huart); + 8003768: 6978 ldr r0, [r7, #20] + 800376a: f7ff ff3b bl 80035e4 + } + + huart->ErrorCode |= HAL_UART_ERROR_DMA; + 800376e: 697b ldr r3, [r7, #20] + 8003770: 6fdb ldr r3, [r3, #124] ; 0x7c + 8003772: f043 0210 orr.w r2, r3, #16 + 8003776: 697b ldr r3, [r7, #20] + 8003778: 67da str r2, [r3, #124] ; 0x7c +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); + 800377a: 6978 ldr r0, [r7, #20] + 800377c: f7ff fb56 bl 8002e2c +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + 8003780: bf00 nop + 8003782: 3718 adds r7, #24 + 8003784: 46bd mov sp, r7 + 8003786: bd80 pop {r7, pc} + +08003788 : + * (To be called at end of DMA Abort procedure following error occurrence). + * @param hdma DMA handle. + * @retval None + */ +static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) +{ + 8003788: b580 push {r7, lr} + 800378a: b084 sub sp, #16 + 800378c: af00 add r7, sp, #0 + 800378e: 6078 str r0, [r7, #4] + UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); + 8003790: 687b ldr r3, [r7, #4] + 8003792: 6b9b ldr r3, [r3, #56] ; 0x38 + 8003794: 60fb str r3, [r7, #12] + huart->RxXferCount = 0U; + 8003796: 68fb ldr r3, [r7, #12] + 8003798: 2200 movs r2, #0 + 800379a: f8a3 205a strh.w r2, [r3, #90] ; 0x5a + huart->TxXferCount = 0U; + 800379e: 68fb ldr r3, [r7, #12] + 80037a0: 2200 movs r2, #0 + 80037a2: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered error callback*/ + huart->ErrorCallback(huart); +#else + /*Call legacy weak error callback*/ + HAL_UART_ErrorCallback(huart); + 80037a6: 68f8 ldr r0, [r7, #12] + 80037a8: f7ff fb40 bl 8002e2c +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + 80037ac: bf00 nop + 80037ae: 3710 adds r7, #16 + 80037b0: 46bd mov sp, r7 + 80037b2: bd80 pop {r7, pc} + +080037b4 : + * @param huart pointer to a UART_HandleTypeDef structure that contains + * the configuration information for the specified UART module. + * @retval None + */ +static void UART_EndTransmit_IT(UART_HandleTypeDef *huart) +{ + 80037b4: b580 push {r7, lr} + 80037b6: b082 sub sp, #8 + 80037b8: af00 add r7, sp, #0 + 80037ba: 6078 str r0, [r7, #4] + /* Disable the UART Transmit Complete Interrupt */ + CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE); + 80037bc: 687b ldr r3, [r7, #4] + 80037be: 681b ldr r3, [r3, #0] + 80037c0: 681a ldr r2, [r3, #0] + 80037c2: 687b ldr r3, [r7, #4] + 80037c4: 681b ldr r3, [r3, #0] + 80037c6: f022 0240 bic.w r2, r2, #64 ; 0x40 + 80037ca: 601a str r2, [r3, #0] + + /* Tx process is ended, restore huart->gState to Ready */ + huart->gState = HAL_UART_STATE_READY; + 80037cc: 687b ldr r3, [r7, #4] + 80037ce: 2220 movs r2, #32 + 80037d0: 675a str r2, [r3, #116] ; 0x74 + + /* Cleat TxISR function pointer */ + huart->TxISR = NULL; + 80037d2: 687b ldr r3, [r7, #4] + 80037d4: 2200 movs r2, #0 + 80037d6: 665a str r2, [r3, #100] ; 0x64 +#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) + /*Call registered Tx complete callback*/ + huart->TxCpltCallback(huart); +#else + /*Call legacy weak Tx complete callback*/ + HAL_UART_TxCpltCallback(huart); + 80037d8: 6878 ldr r0, [r7, #4] + 80037da: f7ff faff bl 8002ddc +#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ +} + 80037de: bf00 nop + 80037e0: 3708 adds r7, #8 + 80037e2: 46bd mov sp, r7 + 80037e4: bd80 pop {r7, pc} + ... + +080037e8 <_ZN3ros3MsgC1Ev>: + +namespace ros +{ + +/* Base Message Type */ +class Msg + 80037e8: b480 push {r7} + 80037ea: b083 sub sp, #12 + 80037ec: af00 add r7, sp, #0 + 80037ee: 6078 str r0, [r7, #4] + 80037f0: 4a04 ldr r2, [pc, #16] ; (8003804 <_ZN3ros3MsgC1Ev+0x1c>) + 80037f2: 687b ldr r3, [r7, #4] + 80037f4: 601a str r2, [r3, #0] + 80037f6: 687b ldr r3, [r7, #4] + 80037f8: 4618 mov r0, r3 + 80037fa: 370c adds r7, #12 + 80037fc: 46bd mov sp, r7 + 80037fe: f85d 7b04 ldr.w r7, [sp], #4 + 8003802: 4770 bx lr + 8003804: 08006000 .word 0x08006000 + +08003808 <_ZN8std_msgs6StringC1Ev>: + { + public: + typedef const char* _data_type; + _data_type data; + + String(): + 8003808: b580 push {r7, lr} + 800380a: b082 sub sp, #8 + 800380c: af00 add r7, sp, #0 + 800380e: 6078 str r0, [r7, #4] + data("") + 8003810: 687b ldr r3, [r7, #4] + 8003812: 4618 mov r0, r3 + 8003814: f7ff ffe8 bl 80037e8 <_ZN3ros3MsgC1Ev> + 8003818: 4a05 ldr r2, [pc, #20] ; (8003830 <_ZN8std_msgs6StringC1Ev+0x28>) + 800381a: 687b ldr r3, [r7, #4] + 800381c: 601a str r2, [r3, #0] + 800381e: 687b ldr r3, [r7, #4] + 8003820: 4a04 ldr r2, [pc, #16] ; (8003834 <_ZN8std_msgs6StringC1Ev+0x2c>) + 8003822: 605a str r2, [r3, #4] + { + } + 8003824: 687b ldr r3, [r7, #4] + 8003826: 4618 mov r0, r3 + 8003828: 3708 adds r7, #8 + 800382a: 46bd mov sp, r7 + 800382c: bd80 pop {r7, pc} + 800382e: bf00 nop + 8003830: 08005fe8 .word 0x08005fe8 + 8003834: 08005dd8 .word 0x08005dd8 + +08003838 <_ZNK8std_msgs6String9serializeEPh>: + + virtual int serialize(unsigned char *outbuffer) const + 8003838: b580 push {r7, lr} + 800383a: b084 sub sp, #16 + 800383c: af00 add r7, sp, #0 + 800383e: 6078 str r0, [r7, #4] + 8003840: 6039 str r1, [r7, #0] + { + int offset = 0; + 8003842: 2300 movs r3, #0 + 8003844: 60fb str r3, [r7, #12] + uint32_t length_data = strlen(this->data); + 8003846: 687b ldr r3, [r7, #4] + 8003848: 685b ldr r3, [r3, #4] + 800384a: 4618 mov r0, r3 + 800384c: f7fc fcf4 bl 8000238 + 8003850: 60b8 str r0, [r7, #8] + varToArr(outbuffer + offset, length_data); + 8003852: 68fb ldr r3, [r7, #12] + 8003854: 683a ldr r2, [r7, #0] + 8003856: 4413 add r3, r2 + 8003858: 68b9 ldr r1, [r7, #8] + 800385a: 4618 mov r0, r3 + 800385c: f001 f9bb bl 8004bd6 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> + offset += 4; + 8003860: 68fb ldr r3, [r7, #12] + 8003862: 3304 adds r3, #4 + 8003864: 60fb str r3, [r7, #12] + memcpy(outbuffer + offset, this->data, length_data); + 8003866: 68fb ldr r3, [r7, #12] + 8003868: 683a ldr r2, [r7, #0] + 800386a: 18d0 adds r0, r2, r3 + 800386c: 687b ldr r3, [r7, #4] + 800386e: 685b ldr r3, [r3, #4] + 8003870: 68ba ldr r2, [r7, #8] + 8003872: 4619 mov r1, r3 + 8003874: f002 f95c bl 8005b30 + offset += length_data; + 8003878: 68fa ldr r2, [r7, #12] + 800387a: 68bb ldr r3, [r7, #8] + 800387c: 4413 add r3, r2 + 800387e: 60fb str r3, [r7, #12] + return offset; + 8003880: 68fb ldr r3, [r7, #12] + } + 8003882: 4618 mov r0, r3 + 8003884: 3710 adds r7, #16 + 8003886: 46bd mov sp, r7 + 8003888: bd80 pop {r7, pc} + +0800388a <_ZN8std_msgs6String11deserializeEPh>: + + virtual int deserialize(unsigned char *inbuffer) + 800388a: b580 push {r7, lr} + 800388c: b086 sub sp, #24 + 800388e: af00 add r7, sp, #0 + 8003890: 6078 str r0, [r7, #4] + 8003892: 6039 str r1, [r7, #0] + { + int offset = 0; + 8003894: 2300 movs r3, #0 + 8003896: 613b str r3, [r7, #16] + uint32_t length_data; + arrToVar(length_data, (inbuffer + offset)); + 8003898: 693b ldr r3, [r7, #16] + 800389a: 683a ldr r2, [r7, #0] + 800389c: 441a add r2, r3 + 800389e: f107 030c add.w r3, r7, #12 + 80038a2: 4611 mov r1, r2 + 80038a4: 4618 mov r0, r3 + 80038a6: f001 f9b4 bl 8004c12 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> + offset += 4; + 80038aa: 693b ldr r3, [r7, #16] + 80038ac: 3304 adds r3, #4 + 80038ae: 613b str r3, [r7, #16] + for(unsigned int k= offset; k< offset+length_data; ++k){ + 80038b0: 693b ldr r3, [r7, #16] + 80038b2: 617b str r3, [r7, #20] + 80038b4: 693a ldr r2, [r7, #16] + 80038b6: 68fb ldr r3, [r7, #12] + 80038b8: 4413 add r3, r2 + 80038ba: 697a ldr r2, [r7, #20] + 80038bc: 429a cmp r2, r3 + 80038be: d20c bcs.n 80038da <_ZN8std_msgs6String11deserializeEPh+0x50> + inbuffer[k-1]=inbuffer[k]; + 80038c0: 683a ldr r2, [r7, #0] + 80038c2: 697b ldr r3, [r7, #20] + 80038c4: 441a add r2, r3 + 80038c6: 697b ldr r3, [r7, #20] + 80038c8: 3b01 subs r3, #1 + 80038ca: 6839 ldr r1, [r7, #0] + 80038cc: 440b add r3, r1 + 80038ce: 7812 ldrb r2, [r2, #0] + 80038d0: 701a strb r2, [r3, #0] + for(unsigned int k= offset; k< offset+length_data; ++k){ + 80038d2: 697b ldr r3, [r7, #20] + 80038d4: 3301 adds r3, #1 + 80038d6: 617b str r3, [r7, #20] + 80038d8: e7ec b.n 80038b4 <_ZN8std_msgs6String11deserializeEPh+0x2a> + } + inbuffer[offset+length_data-1]=0; + 80038da: 693a ldr r2, [r7, #16] + 80038dc: 68fb ldr r3, [r7, #12] + 80038de: 4413 add r3, r2 + 80038e0: 3b01 subs r3, #1 + 80038e2: 683a ldr r2, [r7, #0] + 80038e4: 4413 add r3, r2 + 80038e6: 2200 movs r2, #0 + 80038e8: 701a strb r2, [r3, #0] + this->data = (char *)(inbuffer + offset-1); + 80038ea: 693b ldr r3, [r7, #16] + 80038ec: 3b01 subs r3, #1 + 80038ee: 683a ldr r2, [r7, #0] + 80038f0: 441a add r2, r3 + 80038f2: 687b ldr r3, [r7, #4] + 80038f4: 605a str r2, [r3, #4] + offset += length_data; + 80038f6: 693a ldr r2, [r7, #16] + 80038f8: 68fb ldr r3, [r7, #12] + 80038fa: 4413 add r3, r2 + 80038fc: 613b str r3, [r7, #16] + return offset; + 80038fe: 693b ldr r3, [r7, #16] + } + 8003900: 4618 mov r0, r3 + 8003902: 3718 adds r7, #24 + 8003904: 46bd mov sp, r7 + 8003906: bd80 pop {r7, pc} + +08003908 <_ZN8std_msgs6String7getTypeEv>: + + const char * getType(){ return "std_msgs/String"; }; + 8003908: b480 push {r7} + 800390a: b083 sub sp, #12 + 800390c: af00 add r7, sp, #0 + 800390e: 6078 str r0, [r7, #4] + 8003910: 4b03 ldr r3, [pc, #12] ; (8003920 <_ZN8std_msgs6String7getTypeEv+0x18>) + 8003912: 4618 mov r0, r3 + 8003914: 370c adds r7, #12 + 8003916: 46bd mov sp, r7 + 8003918: f85d 7b04 ldr.w r7, [sp], #4 + 800391c: 4770 bx lr + 800391e: bf00 nop + 8003920: 08005ddc .word 0x08005ddc + +08003924 <_ZN8std_msgs6String6getMD5Ev>: + const char * getMD5(){ return "992ce8a1687cec8c8bd883ec73ca41d1"; }; + 8003924: b480 push {r7} + 8003926: b083 sub sp, #12 + 8003928: af00 add r7, sp, #0 + 800392a: 6078 str r0, [r7, #4] + 800392c: 4b03 ldr r3, [pc, #12] ; (800393c <_ZN8std_msgs6String6getMD5Ev+0x18>) + 800392e: 4618 mov r0, r3 + 8003930: 370c adds r7, #12 + 8003932: 46bd mov sp, r7 + 8003934: f85d 7b04 ldr.w r7, [sp], #4 + 8003938: 4770 bx lr + 800393a: bf00 nop + 800393c: 08005dec .word 0x08005dec + +08003940 <_ZN3ros4TimeC1Ev>: +class Time +{ +public: + uint32_t sec, nsec; + + Time() : sec(0), nsec(0) {} + 8003940: b480 push {r7} + 8003942: b083 sub sp, #12 + 8003944: af00 add r7, sp, #0 + 8003946: 6078 str r0, [r7, #4] + 8003948: 687b ldr r3, [r7, #4] + 800394a: 2200 movs r2, #0 + 800394c: 601a str r2, [r3, #0] + 800394e: 687b ldr r3, [r7, #4] + 8003950: 2200 movs r2, #0 + 8003952: 605a str r2, [r3, #4] + 8003954: 687b ldr r3, [r7, #4] + 8003956: 4618 mov r0, r3 + 8003958: 370c adds r7, #12 + 800395a: 46bd mov sp, r7 + 800395c: f85d 7b04 ldr.w r7, [sp], #4 + 8003960: 4770 bx lr + ... + +08003964 <_ZN8std_msgs4TimeC1Ev>: + { + public: + typedef ros::Time _data_type; + _data_type data; + + Time(): + 8003964: b580 push {r7, lr} + 8003966: b082 sub sp, #8 + 8003968: af00 add r7, sp, #0 + 800396a: 6078 str r0, [r7, #4] + data() + 800396c: 687b ldr r3, [r7, #4] + 800396e: 4618 mov r0, r3 + 8003970: f7ff ff3a bl 80037e8 <_ZN3ros3MsgC1Ev> + 8003974: 4a06 ldr r2, [pc, #24] ; (8003990 <_ZN8std_msgs4TimeC1Ev+0x2c>) + 8003976: 687b ldr r3, [r7, #4] + 8003978: 601a str r2, [r3, #0] + 800397a: 687b ldr r3, [r7, #4] + 800397c: 3304 adds r3, #4 + 800397e: 4618 mov r0, r3 + 8003980: f7ff ffde bl 8003940 <_ZN3ros4TimeC1Ev> + { + } + 8003984: 687b ldr r3, [r7, #4] + 8003986: 4618 mov r0, r3 + 8003988: 3708 adds r7, #8 + 800398a: 46bd mov sp, r7 + 800398c: bd80 pop {r7, pc} + 800398e: bf00 nop + 8003990: 08005fd0 .word 0x08005fd0 + +08003994 <_ZNK8std_msgs4Time9serializeEPh>: + + virtual int serialize(unsigned char *outbuffer) const + 8003994: b480 push {r7} + 8003996: b085 sub sp, #20 + 8003998: af00 add r7, sp, #0 + 800399a: 6078 str r0, [r7, #4] + 800399c: 6039 str r1, [r7, #0] + { + int offset = 0; + 800399e: 2300 movs r3, #0 + 80039a0: 60fb str r3, [r7, #12] + *(outbuffer + offset + 0) = (this->data.sec >> (8 * 0)) & 0xFF; + 80039a2: 687b ldr r3, [r7, #4] + 80039a4: 6859 ldr r1, [r3, #4] + 80039a6: 68fb ldr r3, [r7, #12] + 80039a8: 683a ldr r2, [r7, #0] + 80039aa: 4413 add r3, r2 + 80039ac: b2ca uxtb r2, r1 + 80039ae: 701a strb r2, [r3, #0] + *(outbuffer + offset + 1) = (this->data.sec >> (8 * 1)) & 0xFF; + 80039b0: 687b ldr r3, [r7, #4] + 80039b2: 685b ldr r3, [r3, #4] + 80039b4: 0a19 lsrs r1, r3, #8 + 80039b6: 68fb ldr r3, [r7, #12] + 80039b8: 3301 adds r3, #1 + 80039ba: 683a ldr r2, [r7, #0] + 80039bc: 4413 add r3, r2 + 80039be: b2ca uxtb r2, r1 + 80039c0: 701a strb r2, [r3, #0] + *(outbuffer + offset + 2) = (this->data.sec >> (8 * 2)) & 0xFF; + 80039c2: 687b ldr r3, [r7, #4] + 80039c4: 685b ldr r3, [r3, #4] + 80039c6: 0c19 lsrs r1, r3, #16 + 80039c8: 68fb ldr r3, [r7, #12] + 80039ca: 3302 adds r3, #2 + 80039cc: 683a ldr r2, [r7, #0] + 80039ce: 4413 add r3, r2 + 80039d0: b2ca uxtb r2, r1 + 80039d2: 701a strb r2, [r3, #0] + *(outbuffer + offset + 3) = (this->data.sec >> (8 * 3)) & 0xFF; + 80039d4: 687b ldr r3, [r7, #4] + 80039d6: 685b ldr r3, [r3, #4] + 80039d8: 0e19 lsrs r1, r3, #24 + 80039da: 68fb ldr r3, [r7, #12] + 80039dc: 3303 adds r3, #3 + 80039de: 683a ldr r2, [r7, #0] + 80039e0: 4413 add r3, r2 + 80039e2: b2ca uxtb r2, r1 + 80039e4: 701a strb r2, [r3, #0] + offset += sizeof(this->data.sec); + 80039e6: 68fb ldr r3, [r7, #12] + 80039e8: 3304 adds r3, #4 + 80039ea: 60fb str r3, [r7, #12] + *(outbuffer + offset + 0) = (this->data.nsec >> (8 * 0)) & 0xFF; + 80039ec: 687b ldr r3, [r7, #4] + 80039ee: 6899 ldr r1, [r3, #8] + 80039f0: 68fb ldr r3, [r7, #12] + 80039f2: 683a ldr r2, [r7, #0] + 80039f4: 4413 add r3, r2 + 80039f6: b2ca uxtb r2, r1 + 80039f8: 701a strb r2, [r3, #0] + *(outbuffer + offset + 1) = (this->data.nsec >> (8 * 1)) & 0xFF; + 80039fa: 687b ldr r3, [r7, #4] + 80039fc: 689b ldr r3, [r3, #8] + 80039fe: 0a19 lsrs r1, r3, #8 + 8003a00: 68fb ldr r3, [r7, #12] + 8003a02: 3301 adds r3, #1 + 8003a04: 683a ldr r2, [r7, #0] + 8003a06: 4413 add r3, r2 + 8003a08: b2ca uxtb r2, r1 + 8003a0a: 701a strb r2, [r3, #0] + *(outbuffer + offset + 2) = (this->data.nsec >> (8 * 2)) & 0xFF; + 8003a0c: 687b ldr r3, [r7, #4] + 8003a0e: 689b ldr r3, [r3, #8] + 8003a10: 0c19 lsrs r1, r3, #16 + 8003a12: 68fb ldr r3, [r7, #12] + 8003a14: 3302 adds r3, #2 + 8003a16: 683a ldr r2, [r7, #0] + 8003a18: 4413 add r3, r2 + 8003a1a: b2ca uxtb r2, r1 + 8003a1c: 701a strb r2, [r3, #0] + *(outbuffer + offset + 3) = (this->data.nsec >> (8 * 3)) & 0xFF; + 8003a1e: 687b ldr r3, [r7, #4] + 8003a20: 689b ldr r3, [r3, #8] + 8003a22: 0e19 lsrs r1, r3, #24 + 8003a24: 68fb ldr r3, [r7, #12] + 8003a26: 3303 adds r3, #3 + 8003a28: 683a ldr r2, [r7, #0] + 8003a2a: 4413 add r3, r2 + 8003a2c: b2ca uxtb r2, r1 + 8003a2e: 701a strb r2, [r3, #0] + offset += sizeof(this->data.nsec); + 8003a30: 68fb ldr r3, [r7, #12] + 8003a32: 3304 adds r3, #4 + 8003a34: 60fb str r3, [r7, #12] + return offset; + 8003a36: 68fb ldr r3, [r7, #12] + } + 8003a38: 4618 mov r0, r3 + 8003a3a: 3714 adds r7, #20 + 8003a3c: 46bd mov sp, r7 + 8003a3e: f85d 7b04 ldr.w r7, [sp], #4 + 8003a42: 4770 bx lr + +08003a44 <_ZN8std_msgs4Time11deserializeEPh>: + + virtual int deserialize(unsigned char *inbuffer) + 8003a44: b480 push {r7} + 8003a46: b085 sub sp, #20 + 8003a48: af00 add r7, sp, #0 + 8003a4a: 6078 str r0, [r7, #4] + 8003a4c: 6039 str r1, [r7, #0] + { + int offset = 0; + 8003a4e: 2300 movs r3, #0 + 8003a50: 60fb str r3, [r7, #12] + this->data.sec = ((uint32_t) (*(inbuffer + offset))); + 8003a52: 68fb ldr r3, [r7, #12] + 8003a54: 683a ldr r2, [r7, #0] + 8003a56: 4413 add r3, r2 + 8003a58: 781b ldrb r3, [r3, #0] + 8003a5a: 461a mov r2, r3 + 8003a5c: 687b ldr r3, [r7, #4] + 8003a5e: 605a str r2, [r3, #4] + this->data.sec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); + 8003a60: 687b ldr r3, [r7, #4] + 8003a62: 685a ldr r2, [r3, #4] + 8003a64: 68fb ldr r3, [r7, #12] + 8003a66: 3301 adds r3, #1 + 8003a68: 6839 ldr r1, [r7, #0] + 8003a6a: 440b add r3, r1 + 8003a6c: 781b ldrb r3, [r3, #0] + 8003a6e: 021b lsls r3, r3, #8 + 8003a70: 431a orrs r2, r3 + 8003a72: 687b ldr r3, [r7, #4] + 8003a74: 605a str r2, [r3, #4] + this->data.sec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); + 8003a76: 687b ldr r3, [r7, #4] + 8003a78: 685a ldr r2, [r3, #4] + 8003a7a: 68fb ldr r3, [r7, #12] + 8003a7c: 3302 adds r3, #2 + 8003a7e: 6839 ldr r1, [r7, #0] + 8003a80: 440b add r3, r1 + 8003a82: 781b ldrb r3, [r3, #0] + 8003a84: 041b lsls r3, r3, #16 + 8003a86: 431a orrs r2, r3 + 8003a88: 687b ldr r3, [r7, #4] + 8003a8a: 605a str r2, [r3, #4] + this->data.sec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); + 8003a8c: 687b ldr r3, [r7, #4] + 8003a8e: 685a ldr r2, [r3, #4] + 8003a90: 68fb ldr r3, [r7, #12] + 8003a92: 3303 adds r3, #3 + 8003a94: 6839 ldr r1, [r7, #0] + 8003a96: 440b add r3, r1 + 8003a98: 781b ldrb r3, [r3, #0] + 8003a9a: 061b lsls r3, r3, #24 + 8003a9c: 431a orrs r2, r3 + 8003a9e: 687b ldr r3, [r7, #4] + 8003aa0: 605a str r2, [r3, #4] + offset += sizeof(this->data.sec); + 8003aa2: 68fb ldr r3, [r7, #12] + 8003aa4: 3304 adds r3, #4 + 8003aa6: 60fb str r3, [r7, #12] + this->data.nsec = ((uint32_t) (*(inbuffer + offset))); + 8003aa8: 68fb ldr r3, [r7, #12] + 8003aaa: 683a ldr r2, [r7, #0] + 8003aac: 4413 add r3, r2 + 8003aae: 781b ldrb r3, [r3, #0] + 8003ab0: 461a mov r2, r3 + 8003ab2: 687b ldr r3, [r7, #4] + 8003ab4: 609a str r2, [r3, #8] + this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); + 8003ab6: 687b ldr r3, [r7, #4] + 8003ab8: 689a ldr r2, [r3, #8] + 8003aba: 68fb ldr r3, [r7, #12] + 8003abc: 3301 adds r3, #1 + 8003abe: 6839 ldr r1, [r7, #0] + 8003ac0: 440b add r3, r1 + 8003ac2: 781b ldrb r3, [r3, #0] + 8003ac4: 021b lsls r3, r3, #8 + 8003ac6: 431a orrs r2, r3 + 8003ac8: 687b ldr r3, [r7, #4] + 8003aca: 609a str r2, [r3, #8] + this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); + 8003acc: 687b ldr r3, [r7, #4] + 8003ace: 689a ldr r2, [r3, #8] + 8003ad0: 68fb ldr r3, [r7, #12] + 8003ad2: 3302 adds r3, #2 + 8003ad4: 6839 ldr r1, [r7, #0] + 8003ad6: 440b add r3, r1 + 8003ad8: 781b ldrb r3, [r3, #0] + 8003ada: 041b lsls r3, r3, #16 + 8003adc: 431a orrs r2, r3 + 8003ade: 687b ldr r3, [r7, #4] + 8003ae0: 609a str r2, [r3, #8] + this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); + 8003ae2: 687b ldr r3, [r7, #4] + 8003ae4: 689a ldr r2, [r3, #8] + 8003ae6: 68fb ldr r3, [r7, #12] + 8003ae8: 3303 adds r3, #3 + 8003aea: 6839 ldr r1, [r7, #0] + 8003aec: 440b add r3, r1 + 8003aee: 781b ldrb r3, [r3, #0] + 8003af0: 061b lsls r3, r3, #24 + 8003af2: 431a orrs r2, r3 + 8003af4: 687b ldr r3, [r7, #4] + 8003af6: 609a str r2, [r3, #8] + offset += sizeof(this->data.nsec); + 8003af8: 68fb ldr r3, [r7, #12] + 8003afa: 3304 adds r3, #4 + 8003afc: 60fb str r3, [r7, #12] + return offset; + 8003afe: 68fb ldr r3, [r7, #12] + } + 8003b00: 4618 mov r0, r3 + 8003b02: 3714 adds r7, #20 + 8003b04: 46bd mov sp, r7 + 8003b06: f85d 7b04 ldr.w r7, [sp], #4 + 8003b0a: 4770 bx lr + +08003b0c <_ZN8std_msgs4Time7getTypeEv>: + + const char * getType(){ return "std_msgs/Time"; }; + 8003b0c: b480 push {r7} + 8003b0e: b083 sub sp, #12 + 8003b10: af00 add r7, sp, #0 + 8003b12: 6078 str r0, [r7, #4] + 8003b14: 4b03 ldr r3, [pc, #12] ; (8003b24 <_ZN8std_msgs4Time7getTypeEv+0x18>) + 8003b16: 4618 mov r0, r3 + 8003b18: 370c adds r7, #12 + 8003b1a: 46bd mov sp, r7 + 8003b1c: f85d 7b04 ldr.w r7, [sp], #4 + 8003b20: 4770 bx lr + 8003b22: bf00 nop + 8003b24: 08005e10 .word 0x08005e10 + +08003b28 <_ZN8std_msgs4Time6getMD5Ev>: + const char * getMD5(){ return "cd7166c74c552c311fbcc2fe5a7bc289"; }; + 8003b28: b480 push {r7} + 8003b2a: b083 sub sp, #12 + 8003b2c: af00 add r7, sp, #0 + 8003b2e: 6078 str r0, [r7, #4] + 8003b30: 4b03 ldr r3, [pc, #12] ; (8003b40 <_ZN8std_msgs4Time6getMD5Ev+0x18>) + 8003b32: 4618 mov r0, r3 + 8003b34: 370c adds r7, #12 + 8003b36: 46bd mov sp, r7 + 8003b38: f85d 7b04 ldr.w r7, [sp], #4 + 8003b3c: 4770 bx lr + 8003b3e: bf00 nop + 8003b40: 08005e20 .word 0x08005e20 + +08003b44 <_ZN14rosserial_msgs9TopicInfoC1Ev>: + enum { ID_PARAMETER_REQUEST = 6 }; + enum { ID_LOG = 7 }; + enum { ID_TIME = 10 }; + enum { ID_TX_STOP = 11 }; + + TopicInfo(): + 8003b44: b580 push {r7, lr} + 8003b46: b082 sub sp, #8 + 8003b48: af00 add r7, sp, #0 + 8003b4a: 6078 str r0, [r7, #4] + topic_id(0), + topic_name(""), + message_type(""), + md5sum(""), + buffer_size(0) + 8003b4c: 687b ldr r3, [r7, #4] + 8003b4e: 4618 mov r0, r3 + 8003b50: f7ff fe4a bl 80037e8 <_ZN3ros3MsgC1Ev> + 8003b54: 4a0b ldr r2, [pc, #44] ; (8003b84 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x40>) + 8003b56: 687b ldr r3, [r7, #4] + 8003b58: 601a str r2, [r3, #0] + 8003b5a: 687b ldr r3, [r7, #4] + 8003b5c: 2200 movs r2, #0 + 8003b5e: 809a strh r2, [r3, #4] + 8003b60: 687b ldr r3, [r7, #4] + 8003b62: 4a09 ldr r2, [pc, #36] ; (8003b88 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x44>) + 8003b64: 609a str r2, [r3, #8] + 8003b66: 687b ldr r3, [r7, #4] + 8003b68: 4a07 ldr r2, [pc, #28] ; (8003b88 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x44>) + 8003b6a: 60da str r2, [r3, #12] + 8003b6c: 687b ldr r3, [r7, #4] + 8003b6e: 4a06 ldr r2, [pc, #24] ; (8003b88 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x44>) + 8003b70: 611a str r2, [r3, #16] + 8003b72: 687b ldr r3, [r7, #4] + 8003b74: 2200 movs r2, #0 + 8003b76: 615a str r2, [r3, #20] + { + } + 8003b78: 687b ldr r3, [r7, #4] + 8003b7a: 4618 mov r0, r3 + 8003b7c: 3708 adds r7, #8 + 8003b7e: 46bd mov sp, r7 + 8003b80: bd80 pop {r7, pc} + 8003b82: bf00 nop + 8003b84: 08005fb8 .word 0x08005fb8 + 8003b88: 08005dd8 .word 0x08005dd8 + +08003b8c <_ZNK14rosserial_msgs9TopicInfo9serializeEPh>: + + virtual int serialize(unsigned char *outbuffer) const + 8003b8c: b580 push {r7, lr} + 8003b8e: b088 sub sp, #32 + 8003b90: af00 add r7, sp, #0 + 8003b92: 6078 str r0, [r7, #4] + 8003b94: 6039 str r1, [r7, #0] + { + int offset = 0; + 8003b96: 2300 movs r3, #0 + 8003b98: 61fb str r3, [r7, #28] + *(outbuffer + offset + 0) = (this->topic_id >> (8 * 0)) & 0xFF; + 8003b9a: 687b ldr r3, [r7, #4] + 8003b9c: 8899 ldrh r1, [r3, #4] + 8003b9e: 69fb ldr r3, [r7, #28] + 8003ba0: 683a ldr r2, [r7, #0] + 8003ba2: 4413 add r3, r2 + 8003ba4: b2ca uxtb r2, r1 + 8003ba6: 701a strb r2, [r3, #0] + *(outbuffer + offset + 1) = (this->topic_id >> (8 * 1)) & 0xFF; + 8003ba8: 687b ldr r3, [r7, #4] + 8003baa: 889b ldrh r3, [r3, #4] + 8003bac: 0a1b lsrs r3, r3, #8 + 8003bae: b299 uxth r1, r3 + 8003bb0: 69fb ldr r3, [r7, #28] + 8003bb2: 3301 adds r3, #1 + 8003bb4: 683a ldr r2, [r7, #0] + 8003bb6: 4413 add r3, r2 + 8003bb8: b2ca uxtb r2, r1 + 8003bba: 701a strb r2, [r3, #0] + offset += sizeof(this->topic_id); + 8003bbc: 69fb ldr r3, [r7, #28] + 8003bbe: 3302 adds r3, #2 + 8003bc0: 61fb str r3, [r7, #28] + uint32_t length_topic_name = strlen(this->topic_name); + 8003bc2: 687b ldr r3, [r7, #4] + 8003bc4: 689b ldr r3, [r3, #8] + 8003bc6: 4618 mov r0, r3 + 8003bc8: f7fc fb36 bl 8000238 + 8003bcc: 61b8 str r0, [r7, #24] + varToArr(outbuffer + offset, length_topic_name); + 8003bce: 69fb ldr r3, [r7, #28] + 8003bd0: 683a ldr r2, [r7, #0] + 8003bd2: 4413 add r3, r2 + 8003bd4: 69b9 ldr r1, [r7, #24] + 8003bd6: 4618 mov r0, r3 + 8003bd8: f000 fffd bl 8004bd6 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> + offset += 4; + 8003bdc: 69fb ldr r3, [r7, #28] + 8003bde: 3304 adds r3, #4 + 8003be0: 61fb str r3, [r7, #28] + memcpy(outbuffer + offset, this->topic_name, length_topic_name); + 8003be2: 69fb ldr r3, [r7, #28] + 8003be4: 683a ldr r2, [r7, #0] + 8003be6: 18d0 adds r0, r2, r3 + 8003be8: 687b ldr r3, [r7, #4] + 8003bea: 689b ldr r3, [r3, #8] + 8003bec: 69ba ldr r2, [r7, #24] + 8003bee: 4619 mov r1, r3 + 8003bf0: f001 ff9e bl 8005b30 + offset += length_topic_name; + 8003bf4: 69fa ldr r2, [r7, #28] + 8003bf6: 69bb ldr r3, [r7, #24] + 8003bf8: 4413 add r3, r2 + 8003bfa: 61fb str r3, [r7, #28] + uint32_t length_message_type = strlen(this->message_type); + 8003bfc: 687b ldr r3, [r7, #4] + 8003bfe: 68db ldr r3, [r3, #12] + 8003c00: 4618 mov r0, r3 + 8003c02: f7fc fb19 bl 8000238 + 8003c06: 6178 str r0, [r7, #20] + varToArr(outbuffer + offset, length_message_type); + 8003c08: 69fb ldr r3, [r7, #28] + 8003c0a: 683a ldr r2, [r7, #0] + 8003c0c: 4413 add r3, r2 + 8003c0e: 6979 ldr r1, [r7, #20] + 8003c10: 4618 mov r0, r3 + 8003c12: f000 ffe0 bl 8004bd6 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> + offset += 4; + 8003c16: 69fb ldr r3, [r7, #28] + 8003c18: 3304 adds r3, #4 + 8003c1a: 61fb str r3, [r7, #28] + memcpy(outbuffer + offset, this->message_type, length_message_type); + 8003c1c: 69fb ldr r3, [r7, #28] + 8003c1e: 683a ldr r2, [r7, #0] + 8003c20: 18d0 adds r0, r2, r3 + 8003c22: 687b ldr r3, [r7, #4] + 8003c24: 68db ldr r3, [r3, #12] + 8003c26: 697a ldr r2, [r7, #20] + 8003c28: 4619 mov r1, r3 + 8003c2a: f001 ff81 bl 8005b30 + offset += length_message_type; + 8003c2e: 69fa ldr r2, [r7, #28] + 8003c30: 697b ldr r3, [r7, #20] + 8003c32: 4413 add r3, r2 + 8003c34: 61fb str r3, [r7, #28] + uint32_t length_md5sum = strlen(this->md5sum); + 8003c36: 687b ldr r3, [r7, #4] + 8003c38: 691b ldr r3, [r3, #16] + 8003c3a: 4618 mov r0, r3 + 8003c3c: f7fc fafc bl 8000238 + 8003c40: 6138 str r0, [r7, #16] + varToArr(outbuffer + offset, length_md5sum); + 8003c42: 69fb ldr r3, [r7, #28] + 8003c44: 683a ldr r2, [r7, #0] + 8003c46: 4413 add r3, r2 + 8003c48: 6939 ldr r1, [r7, #16] + 8003c4a: 4618 mov r0, r3 + 8003c4c: f000 ffc3 bl 8004bd6 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> + offset += 4; + 8003c50: 69fb ldr r3, [r7, #28] + 8003c52: 3304 adds r3, #4 + 8003c54: 61fb str r3, [r7, #28] + memcpy(outbuffer + offset, this->md5sum, length_md5sum); + 8003c56: 69fb ldr r3, [r7, #28] + 8003c58: 683a ldr r2, [r7, #0] + 8003c5a: 18d0 adds r0, r2, r3 + 8003c5c: 687b ldr r3, [r7, #4] + 8003c5e: 691b ldr r3, [r3, #16] + 8003c60: 693a ldr r2, [r7, #16] + 8003c62: 4619 mov r1, r3 + 8003c64: f001 ff64 bl 8005b30 + offset += length_md5sum; + 8003c68: 69fa ldr r2, [r7, #28] + 8003c6a: 693b ldr r3, [r7, #16] + 8003c6c: 4413 add r3, r2 + 8003c6e: 61fb str r3, [r7, #28] + union { + int32_t real; + uint32_t base; + } u_buffer_size; + u_buffer_size.real = this->buffer_size; + 8003c70: 687b ldr r3, [r7, #4] + 8003c72: 695b ldr r3, [r3, #20] + 8003c74: 60fb str r3, [r7, #12] + *(outbuffer + offset + 0) = (u_buffer_size.base >> (8 * 0)) & 0xFF; + 8003c76: 68f9 ldr r1, [r7, #12] + 8003c78: 69fb ldr r3, [r7, #28] + 8003c7a: 683a ldr r2, [r7, #0] + 8003c7c: 4413 add r3, r2 + 8003c7e: b2ca uxtb r2, r1 + 8003c80: 701a strb r2, [r3, #0] + *(outbuffer + offset + 1) = (u_buffer_size.base >> (8 * 1)) & 0xFF; + 8003c82: 68fb ldr r3, [r7, #12] + 8003c84: 0a19 lsrs r1, r3, #8 + 8003c86: 69fb ldr r3, [r7, #28] + 8003c88: 3301 adds r3, #1 + 8003c8a: 683a ldr r2, [r7, #0] + 8003c8c: 4413 add r3, r2 + 8003c8e: b2ca uxtb r2, r1 + 8003c90: 701a strb r2, [r3, #0] + *(outbuffer + offset + 2) = (u_buffer_size.base >> (8 * 2)) & 0xFF; + 8003c92: 68fb ldr r3, [r7, #12] + 8003c94: 0c19 lsrs r1, r3, #16 + 8003c96: 69fb ldr r3, [r7, #28] + 8003c98: 3302 adds r3, #2 + 8003c9a: 683a ldr r2, [r7, #0] + 8003c9c: 4413 add r3, r2 + 8003c9e: b2ca uxtb r2, r1 + 8003ca0: 701a strb r2, [r3, #0] + *(outbuffer + offset + 3) = (u_buffer_size.base >> (8 * 3)) & 0xFF; + 8003ca2: 68fb ldr r3, [r7, #12] + 8003ca4: 0e19 lsrs r1, r3, #24 + 8003ca6: 69fb ldr r3, [r7, #28] + 8003ca8: 3303 adds r3, #3 + 8003caa: 683a ldr r2, [r7, #0] + 8003cac: 4413 add r3, r2 + 8003cae: b2ca uxtb r2, r1 + 8003cb0: 701a strb r2, [r3, #0] + offset += sizeof(this->buffer_size); + 8003cb2: 69fb ldr r3, [r7, #28] + 8003cb4: 3304 adds r3, #4 + 8003cb6: 61fb str r3, [r7, #28] + return offset; + 8003cb8: 69fb ldr r3, [r7, #28] + } + 8003cba: 4618 mov r0, r3 + 8003cbc: 3720 adds r7, #32 + 8003cbe: 46bd mov sp, r7 + 8003cc0: bd80 pop {r7, pc} + +08003cc2 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh>: + + virtual int deserialize(unsigned char *inbuffer) + 8003cc2: b580 push {r7, lr} + 8003cc4: b08a sub sp, #40 ; 0x28 + 8003cc6: af00 add r7, sp, #0 + 8003cc8: 6078 str r0, [r7, #4] + 8003cca: 6039 str r1, [r7, #0] + { + int offset = 0; + 8003ccc: 2300 movs r3, #0 + 8003cce: 61bb str r3, [r7, #24] + this->topic_id = ((uint16_t) (*(inbuffer + offset))); + 8003cd0: 69bb ldr r3, [r7, #24] + 8003cd2: 683a ldr r2, [r7, #0] + 8003cd4: 4413 add r3, r2 + 8003cd6: 781b ldrb r3, [r3, #0] + 8003cd8: b29a uxth r2, r3 + 8003cda: 687b ldr r3, [r7, #4] + 8003cdc: 809a strh r2, [r3, #4] + this->topic_id |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1); + 8003cde: 687b ldr r3, [r7, #4] + 8003ce0: 889b ldrh r3, [r3, #4] + 8003ce2: b21a sxth r2, r3 + 8003ce4: 69bb ldr r3, [r7, #24] + 8003ce6: 3301 adds r3, #1 + 8003ce8: 6839 ldr r1, [r7, #0] + 8003cea: 440b add r3, r1 + 8003cec: 781b ldrb r3, [r3, #0] + 8003cee: 021b lsls r3, r3, #8 + 8003cf0: b21b sxth r3, r3 + 8003cf2: 4313 orrs r3, r2 + 8003cf4: b21b sxth r3, r3 + 8003cf6: b29a uxth r2, r3 + 8003cf8: 687b ldr r3, [r7, #4] + 8003cfa: 809a strh r2, [r3, #4] + offset += sizeof(this->topic_id); + 8003cfc: 69bb ldr r3, [r7, #24] + 8003cfe: 3302 adds r3, #2 + 8003d00: 61bb str r3, [r7, #24] + uint32_t length_topic_name; + arrToVar(length_topic_name, (inbuffer + offset)); + 8003d02: 69bb ldr r3, [r7, #24] + 8003d04: 683a ldr r2, [r7, #0] + 8003d06: 441a add r2, r3 + 8003d08: f107 0314 add.w r3, r7, #20 + 8003d0c: 4611 mov r1, r2 + 8003d0e: 4618 mov r0, r3 + 8003d10: f000 ff7f bl 8004c12 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> + offset += 4; + 8003d14: 69bb ldr r3, [r7, #24] + 8003d16: 3304 adds r3, #4 + 8003d18: 61bb str r3, [r7, #24] + for(unsigned int k= offset; k< offset+length_topic_name; ++k){ + 8003d1a: 69bb ldr r3, [r7, #24] + 8003d1c: 627b str r3, [r7, #36] ; 0x24 + 8003d1e: 69ba ldr r2, [r7, #24] + 8003d20: 697b ldr r3, [r7, #20] + 8003d22: 4413 add r3, r2 + 8003d24: 6a7a ldr r2, [r7, #36] ; 0x24 + 8003d26: 429a cmp r2, r3 + 8003d28: d20c bcs.n 8003d44 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x82> + inbuffer[k-1]=inbuffer[k]; + 8003d2a: 683a ldr r2, [r7, #0] + 8003d2c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8003d2e: 441a add r2, r3 + 8003d30: 6a7b ldr r3, [r7, #36] ; 0x24 + 8003d32: 3b01 subs r3, #1 + 8003d34: 6839 ldr r1, [r7, #0] + 8003d36: 440b add r3, r1 + 8003d38: 7812 ldrb r2, [r2, #0] + 8003d3a: 701a strb r2, [r3, #0] + for(unsigned int k= offset; k< offset+length_topic_name; ++k){ + 8003d3c: 6a7b ldr r3, [r7, #36] ; 0x24 + 8003d3e: 3301 adds r3, #1 + 8003d40: 627b str r3, [r7, #36] ; 0x24 + 8003d42: e7ec b.n 8003d1e <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x5c> + } + inbuffer[offset+length_topic_name-1]=0; + 8003d44: 69ba ldr r2, [r7, #24] + 8003d46: 697b ldr r3, [r7, #20] + 8003d48: 4413 add r3, r2 + 8003d4a: 3b01 subs r3, #1 + 8003d4c: 683a ldr r2, [r7, #0] + 8003d4e: 4413 add r3, r2 + 8003d50: 2200 movs r2, #0 + 8003d52: 701a strb r2, [r3, #0] + this->topic_name = (char *)(inbuffer + offset-1); + 8003d54: 69bb ldr r3, [r7, #24] + 8003d56: 3b01 subs r3, #1 + 8003d58: 683a ldr r2, [r7, #0] + 8003d5a: 441a add r2, r3 + 8003d5c: 687b ldr r3, [r7, #4] + 8003d5e: 609a str r2, [r3, #8] + offset += length_topic_name; + 8003d60: 69ba ldr r2, [r7, #24] + 8003d62: 697b ldr r3, [r7, #20] + 8003d64: 4413 add r3, r2 + 8003d66: 61bb str r3, [r7, #24] + uint32_t length_message_type; + arrToVar(length_message_type, (inbuffer + offset)); + 8003d68: 69bb ldr r3, [r7, #24] + 8003d6a: 683a ldr r2, [r7, #0] + 8003d6c: 441a add r2, r3 + 8003d6e: f107 0310 add.w r3, r7, #16 + 8003d72: 4611 mov r1, r2 + 8003d74: 4618 mov r0, r3 + 8003d76: f000 ff4c bl 8004c12 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> + offset += 4; + 8003d7a: 69bb ldr r3, [r7, #24] + 8003d7c: 3304 adds r3, #4 + 8003d7e: 61bb str r3, [r7, #24] + for(unsigned int k= offset; k< offset+length_message_type; ++k){ + 8003d80: 69bb ldr r3, [r7, #24] + 8003d82: 623b str r3, [r7, #32] + 8003d84: 69ba ldr r2, [r7, #24] + 8003d86: 693b ldr r3, [r7, #16] + 8003d88: 4413 add r3, r2 + 8003d8a: 6a3a ldr r2, [r7, #32] + 8003d8c: 429a cmp r2, r3 + 8003d8e: d20c bcs.n 8003daa <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0xe8> + inbuffer[k-1]=inbuffer[k]; + 8003d90: 683a ldr r2, [r7, #0] + 8003d92: 6a3b ldr r3, [r7, #32] + 8003d94: 441a add r2, r3 + 8003d96: 6a3b ldr r3, [r7, #32] + 8003d98: 3b01 subs r3, #1 + 8003d9a: 6839 ldr r1, [r7, #0] + 8003d9c: 440b add r3, r1 + 8003d9e: 7812 ldrb r2, [r2, #0] + 8003da0: 701a strb r2, [r3, #0] + for(unsigned int k= offset; k< offset+length_message_type; ++k){ + 8003da2: 6a3b ldr r3, [r7, #32] + 8003da4: 3301 adds r3, #1 + 8003da6: 623b str r3, [r7, #32] + 8003da8: e7ec b.n 8003d84 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0xc2> + } + inbuffer[offset+length_message_type-1]=0; + 8003daa: 69ba ldr r2, [r7, #24] + 8003dac: 693b ldr r3, [r7, #16] + 8003dae: 4413 add r3, r2 + 8003db0: 3b01 subs r3, #1 + 8003db2: 683a ldr r2, [r7, #0] + 8003db4: 4413 add r3, r2 + 8003db6: 2200 movs r2, #0 + 8003db8: 701a strb r2, [r3, #0] + this->message_type = (char *)(inbuffer + offset-1); + 8003dba: 69bb ldr r3, [r7, #24] + 8003dbc: 3b01 subs r3, #1 + 8003dbe: 683a ldr r2, [r7, #0] + 8003dc0: 441a add r2, r3 + 8003dc2: 687b ldr r3, [r7, #4] + 8003dc4: 60da str r2, [r3, #12] + offset += length_message_type; + 8003dc6: 69ba ldr r2, [r7, #24] + 8003dc8: 693b ldr r3, [r7, #16] + 8003dca: 4413 add r3, r2 + 8003dcc: 61bb str r3, [r7, #24] + uint32_t length_md5sum; + arrToVar(length_md5sum, (inbuffer + offset)); + 8003dce: 69bb ldr r3, [r7, #24] + 8003dd0: 683a ldr r2, [r7, #0] + 8003dd2: 441a add r2, r3 + 8003dd4: f107 030c add.w r3, r7, #12 + 8003dd8: 4611 mov r1, r2 + 8003dda: 4618 mov r0, r3 + 8003ddc: f000 ff19 bl 8004c12 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> + offset += 4; + 8003de0: 69bb ldr r3, [r7, #24] + 8003de2: 3304 adds r3, #4 + 8003de4: 61bb str r3, [r7, #24] + for(unsigned int k= offset; k< offset+length_md5sum; ++k){ + 8003de6: 69bb ldr r3, [r7, #24] + 8003de8: 61fb str r3, [r7, #28] + 8003dea: 69ba ldr r2, [r7, #24] + 8003dec: 68fb ldr r3, [r7, #12] + 8003dee: 4413 add r3, r2 + 8003df0: 69fa ldr r2, [r7, #28] + 8003df2: 429a cmp r2, r3 + 8003df4: d20c bcs.n 8003e10 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x14e> + inbuffer[k-1]=inbuffer[k]; + 8003df6: 683a ldr r2, [r7, #0] + 8003df8: 69fb ldr r3, [r7, #28] + 8003dfa: 441a add r2, r3 + 8003dfc: 69fb ldr r3, [r7, #28] + 8003dfe: 3b01 subs r3, #1 + 8003e00: 6839 ldr r1, [r7, #0] + 8003e02: 440b add r3, r1 + 8003e04: 7812 ldrb r2, [r2, #0] + 8003e06: 701a strb r2, [r3, #0] + for(unsigned int k= offset; k< offset+length_md5sum; ++k){ + 8003e08: 69fb ldr r3, [r7, #28] + 8003e0a: 3301 adds r3, #1 + 8003e0c: 61fb str r3, [r7, #28] + 8003e0e: e7ec b.n 8003dea <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x128> + } + inbuffer[offset+length_md5sum-1]=0; + 8003e10: 69ba ldr r2, [r7, #24] + 8003e12: 68fb ldr r3, [r7, #12] + 8003e14: 4413 add r3, r2 + 8003e16: 3b01 subs r3, #1 + 8003e18: 683a ldr r2, [r7, #0] + 8003e1a: 4413 add r3, r2 + 8003e1c: 2200 movs r2, #0 + 8003e1e: 701a strb r2, [r3, #0] + this->md5sum = (char *)(inbuffer + offset-1); + 8003e20: 69bb ldr r3, [r7, #24] + 8003e22: 3b01 subs r3, #1 + 8003e24: 683a ldr r2, [r7, #0] + 8003e26: 441a add r2, r3 + 8003e28: 687b ldr r3, [r7, #4] + 8003e2a: 611a str r2, [r3, #16] + offset += length_md5sum; + 8003e2c: 69ba ldr r2, [r7, #24] + 8003e2e: 68fb ldr r3, [r7, #12] + 8003e30: 4413 add r3, r2 + 8003e32: 61bb str r3, [r7, #24] + union { + int32_t real; + uint32_t base; + } u_buffer_size; + u_buffer_size.base = 0; + 8003e34: 2300 movs r3, #0 + 8003e36: 60bb str r3, [r7, #8] + u_buffer_size.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); + 8003e38: 68bb ldr r3, [r7, #8] + 8003e3a: 69ba ldr r2, [r7, #24] + 8003e3c: 6839 ldr r1, [r7, #0] + 8003e3e: 440a add r2, r1 + 8003e40: 7812 ldrb r2, [r2, #0] + 8003e42: 4313 orrs r3, r2 + 8003e44: 60bb str r3, [r7, #8] + u_buffer_size.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); + 8003e46: 68ba ldr r2, [r7, #8] + 8003e48: 69bb ldr r3, [r7, #24] + 8003e4a: 3301 adds r3, #1 + 8003e4c: 6839 ldr r1, [r7, #0] + 8003e4e: 440b add r3, r1 + 8003e50: 781b ldrb r3, [r3, #0] + 8003e52: 021b lsls r3, r3, #8 + 8003e54: 4313 orrs r3, r2 + 8003e56: 60bb str r3, [r7, #8] + u_buffer_size.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); + 8003e58: 68ba ldr r2, [r7, #8] + 8003e5a: 69bb ldr r3, [r7, #24] + 8003e5c: 3302 adds r3, #2 + 8003e5e: 6839 ldr r1, [r7, #0] + 8003e60: 440b add r3, r1 + 8003e62: 781b ldrb r3, [r3, #0] + 8003e64: 041b lsls r3, r3, #16 + 8003e66: 4313 orrs r3, r2 + 8003e68: 60bb str r3, [r7, #8] + u_buffer_size.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); + 8003e6a: 68ba ldr r2, [r7, #8] + 8003e6c: 69bb ldr r3, [r7, #24] + 8003e6e: 3303 adds r3, #3 + 8003e70: 6839 ldr r1, [r7, #0] + 8003e72: 440b add r3, r1 + 8003e74: 781b ldrb r3, [r3, #0] + 8003e76: 061b lsls r3, r3, #24 + 8003e78: 4313 orrs r3, r2 + 8003e7a: 60bb str r3, [r7, #8] + this->buffer_size = u_buffer_size.real; + 8003e7c: 68ba ldr r2, [r7, #8] + 8003e7e: 687b ldr r3, [r7, #4] + 8003e80: 615a str r2, [r3, #20] + offset += sizeof(this->buffer_size); + 8003e82: 69bb ldr r3, [r7, #24] + 8003e84: 3304 adds r3, #4 + 8003e86: 61bb str r3, [r7, #24] + return offset; + 8003e88: 69bb ldr r3, [r7, #24] + } + 8003e8a: 4618 mov r0, r3 + 8003e8c: 3728 adds r7, #40 ; 0x28 + 8003e8e: 46bd mov sp, r7 + 8003e90: bd80 pop {r7, pc} + ... + +08003e94 <_ZN14rosserial_msgs9TopicInfo7getTypeEv>: + + const char * getType(){ return "rosserial_msgs/TopicInfo"; }; + 8003e94: b480 push {r7} + 8003e96: b083 sub sp, #12 + 8003e98: af00 add r7, sp, #0 + 8003e9a: 6078 str r0, [r7, #4] + 8003e9c: 4b03 ldr r3, [pc, #12] ; (8003eac <_ZN14rosserial_msgs9TopicInfo7getTypeEv+0x18>) + 8003e9e: 4618 mov r0, r3 + 8003ea0: 370c adds r7, #12 + 8003ea2: 46bd mov sp, r7 + 8003ea4: f85d 7b04 ldr.w r7, [sp], #4 + 8003ea8: 4770 bx lr + 8003eaa: bf00 nop + 8003eac: 08005e44 .word 0x08005e44 + +08003eb0 <_ZN14rosserial_msgs9TopicInfo6getMD5Ev>: + const char * getMD5(){ return "0ad51f88fc44892f8c10684077646005"; }; + 8003eb0: b480 push {r7} + 8003eb2: b083 sub sp, #12 + 8003eb4: af00 add r7, sp, #0 + 8003eb6: 6078 str r0, [r7, #4] + 8003eb8: 4b03 ldr r3, [pc, #12] ; (8003ec8 <_ZN14rosserial_msgs9TopicInfo6getMD5Ev+0x18>) + 8003eba: 4618 mov r0, r3 + 8003ebc: 370c adds r7, #12 + 8003ebe: 46bd mov sp, r7 + 8003ec0: f85d 7b04 ldr.w r7, [sp], #4 + 8003ec4: 4770 bx lr + 8003ec6: bf00 nop + 8003ec8: 08005e60 .word 0x08005e60 + +08003ecc <_ZN14rosserial_msgs3LogC1Ev>: + enum { INFO = 1 }; + enum { WARN = 2 }; + enum { ERROR = 3 }; + enum { FATAL = 4 }; + + Log(): + 8003ecc: b580 push {r7, lr} + 8003ece: b082 sub sp, #8 + 8003ed0: af00 add r7, sp, #0 + 8003ed2: 6078 str r0, [r7, #4] + level(0), + msg("") + 8003ed4: 687b ldr r3, [r7, #4] + 8003ed6: 4618 mov r0, r3 + 8003ed8: f7ff fc86 bl 80037e8 <_ZN3ros3MsgC1Ev> + 8003edc: 4a06 ldr r2, [pc, #24] ; (8003ef8 <_ZN14rosserial_msgs3LogC1Ev+0x2c>) + 8003ede: 687b ldr r3, [r7, #4] + 8003ee0: 601a str r2, [r3, #0] + 8003ee2: 687b ldr r3, [r7, #4] + 8003ee4: 2200 movs r2, #0 + 8003ee6: 711a strb r2, [r3, #4] + 8003ee8: 687b ldr r3, [r7, #4] + 8003eea: 4a04 ldr r2, [pc, #16] ; (8003efc <_ZN14rosserial_msgs3LogC1Ev+0x30>) + 8003eec: 609a str r2, [r3, #8] + { + } + 8003eee: 687b ldr r3, [r7, #4] + 8003ef0: 4618 mov r0, r3 + 8003ef2: 3708 adds r7, #8 + 8003ef4: 46bd mov sp, r7 + 8003ef6: bd80 pop {r7, pc} + 8003ef8: 08005fa0 .word 0x08005fa0 + 8003efc: 08005dd8 .word 0x08005dd8 + +08003f00 <_ZNK14rosserial_msgs3Log9serializeEPh>: + + virtual int serialize(unsigned char *outbuffer) const + 8003f00: b580 push {r7, lr} + 8003f02: b084 sub sp, #16 + 8003f04: af00 add r7, sp, #0 + 8003f06: 6078 str r0, [r7, #4] + 8003f08: 6039 str r1, [r7, #0] + { + int offset = 0; + 8003f0a: 2300 movs r3, #0 + 8003f0c: 60fb str r3, [r7, #12] + *(outbuffer + offset + 0) = (this->level >> (8 * 0)) & 0xFF; + 8003f0e: 68fb ldr r3, [r7, #12] + 8003f10: 683a ldr r2, [r7, #0] + 8003f12: 4413 add r3, r2 + 8003f14: 687a ldr r2, [r7, #4] + 8003f16: 7912 ldrb r2, [r2, #4] + 8003f18: 701a strb r2, [r3, #0] + offset += sizeof(this->level); + 8003f1a: 68fb ldr r3, [r7, #12] + 8003f1c: 3301 adds r3, #1 + 8003f1e: 60fb str r3, [r7, #12] + uint32_t length_msg = strlen(this->msg); + 8003f20: 687b ldr r3, [r7, #4] + 8003f22: 689b ldr r3, [r3, #8] + 8003f24: 4618 mov r0, r3 + 8003f26: f7fc f987 bl 8000238 + 8003f2a: 60b8 str r0, [r7, #8] + varToArr(outbuffer + offset, length_msg); + 8003f2c: 68fb ldr r3, [r7, #12] + 8003f2e: 683a ldr r2, [r7, #0] + 8003f30: 4413 add r3, r2 + 8003f32: 68b9 ldr r1, [r7, #8] + 8003f34: 4618 mov r0, r3 + 8003f36: f000 fe4e bl 8004bd6 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> + offset += 4; + 8003f3a: 68fb ldr r3, [r7, #12] + 8003f3c: 3304 adds r3, #4 + 8003f3e: 60fb str r3, [r7, #12] + memcpy(outbuffer + offset, this->msg, length_msg); + 8003f40: 68fb ldr r3, [r7, #12] + 8003f42: 683a ldr r2, [r7, #0] + 8003f44: 18d0 adds r0, r2, r3 + 8003f46: 687b ldr r3, [r7, #4] + 8003f48: 689b ldr r3, [r3, #8] + 8003f4a: 68ba ldr r2, [r7, #8] + 8003f4c: 4619 mov r1, r3 + 8003f4e: f001 fdef bl 8005b30 + offset += length_msg; + 8003f52: 68fa ldr r2, [r7, #12] + 8003f54: 68bb ldr r3, [r7, #8] + 8003f56: 4413 add r3, r2 + 8003f58: 60fb str r3, [r7, #12] + return offset; + 8003f5a: 68fb ldr r3, [r7, #12] + } + 8003f5c: 4618 mov r0, r3 + 8003f5e: 3710 adds r7, #16 + 8003f60: 46bd mov sp, r7 + 8003f62: bd80 pop {r7, pc} + +08003f64 <_ZN14rosserial_msgs3Log11deserializeEPh>: + + virtual int deserialize(unsigned char *inbuffer) + 8003f64: b580 push {r7, lr} + 8003f66: b086 sub sp, #24 + 8003f68: af00 add r7, sp, #0 + 8003f6a: 6078 str r0, [r7, #4] + 8003f6c: 6039 str r1, [r7, #0] + { + int offset = 0; + 8003f6e: 2300 movs r3, #0 + 8003f70: 613b str r3, [r7, #16] + this->level = ((uint8_t) (*(inbuffer + offset))); + 8003f72: 693b ldr r3, [r7, #16] + 8003f74: 683a ldr r2, [r7, #0] + 8003f76: 4413 add r3, r2 + 8003f78: 781a ldrb r2, [r3, #0] + 8003f7a: 687b ldr r3, [r7, #4] + 8003f7c: 711a strb r2, [r3, #4] + offset += sizeof(this->level); + 8003f7e: 693b ldr r3, [r7, #16] + 8003f80: 3301 adds r3, #1 + 8003f82: 613b str r3, [r7, #16] + uint32_t length_msg; + arrToVar(length_msg, (inbuffer + offset)); + 8003f84: 693b ldr r3, [r7, #16] + 8003f86: 683a ldr r2, [r7, #0] + 8003f88: 441a add r2, r3 + 8003f8a: f107 030c add.w r3, r7, #12 + 8003f8e: 4611 mov r1, r2 + 8003f90: 4618 mov r0, r3 + 8003f92: f000 fe3e bl 8004c12 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> + offset += 4; + 8003f96: 693b ldr r3, [r7, #16] + 8003f98: 3304 adds r3, #4 + 8003f9a: 613b str r3, [r7, #16] + for(unsigned int k= offset; k< offset+length_msg; ++k){ + 8003f9c: 693b ldr r3, [r7, #16] + 8003f9e: 617b str r3, [r7, #20] + 8003fa0: 693a ldr r2, [r7, #16] + 8003fa2: 68fb ldr r3, [r7, #12] + 8003fa4: 4413 add r3, r2 + 8003fa6: 697a ldr r2, [r7, #20] + 8003fa8: 429a cmp r2, r3 + 8003faa: d20c bcs.n 8003fc6 <_ZN14rosserial_msgs3Log11deserializeEPh+0x62> + inbuffer[k-1]=inbuffer[k]; + 8003fac: 683a ldr r2, [r7, #0] + 8003fae: 697b ldr r3, [r7, #20] + 8003fb0: 441a add r2, r3 + 8003fb2: 697b ldr r3, [r7, #20] + 8003fb4: 3b01 subs r3, #1 + 8003fb6: 6839 ldr r1, [r7, #0] + 8003fb8: 440b add r3, r1 + 8003fba: 7812 ldrb r2, [r2, #0] + 8003fbc: 701a strb r2, [r3, #0] + for(unsigned int k= offset; k< offset+length_msg; ++k){ + 8003fbe: 697b ldr r3, [r7, #20] + 8003fc0: 3301 adds r3, #1 + 8003fc2: 617b str r3, [r7, #20] + 8003fc4: e7ec b.n 8003fa0 <_ZN14rosserial_msgs3Log11deserializeEPh+0x3c> + } + inbuffer[offset+length_msg-1]=0; + 8003fc6: 693a ldr r2, [r7, #16] + 8003fc8: 68fb ldr r3, [r7, #12] + 8003fca: 4413 add r3, r2 + 8003fcc: 3b01 subs r3, #1 + 8003fce: 683a ldr r2, [r7, #0] + 8003fd0: 4413 add r3, r2 + 8003fd2: 2200 movs r2, #0 + 8003fd4: 701a strb r2, [r3, #0] + this->msg = (char *)(inbuffer + offset-1); + 8003fd6: 693b ldr r3, [r7, #16] + 8003fd8: 3b01 subs r3, #1 + 8003fda: 683a ldr r2, [r7, #0] + 8003fdc: 441a add r2, r3 + 8003fde: 687b ldr r3, [r7, #4] + 8003fe0: 609a str r2, [r3, #8] + offset += length_msg; + 8003fe2: 693a ldr r2, [r7, #16] + 8003fe4: 68fb ldr r3, [r7, #12] + 8003fe6: 4413 add r3, r2 + 8003fe8: 613b str r3, [r7, #16] + return offset; + 8003fea: 693b ldr r3, [r7, #16] + } + 8003fec: 4618 mov r0, r3 + 8003fee: 3718 adds r7, #24 + 8003ff0: 46bd mov sp, r7 + 8003ff2: bd80 pop {r7, pc} + +08003ff4 <_ZN14rosserial_msgs3Log7getTypeEv>: + + const char * getType(){ return "rosserial_msgs/Log"; }; + 8003ff4: b480 push {r7} + 8003ff6: b083 sub sp, #12 + 8003ff8: af00 add r7, sp, #0 + 8003ffa: 6078 str r0, [r7, #4] + 8003ffc: 4b03 ldr r3, [pc, #12] ; (800400c <_ZN14rosserial_msgs3Log7getTypeEv+0x18>) + 8003ffe: 4618 mov r0, r3 + 8004000: 370c adds r7, #12 + 8004002: 46bd mov sp, r7 + 8004004: f85d 7b04 ldr.w r7, [sp], #4 + 8004008: 4770 bx lr + 800400a: bf00 nop + 800400c: 08005e84 .word 0x08005e84 + +08004010 <_ZN14rosserial_msgs3Log6getMD5Ev>: + const char * getMD5(){ return "11abd731c25933261cd6183bd12d6295"; }; + 8004010: b480 push {r7} + 8004012: b083 sub sp, #12 + 8004014: af00 add r7, sp, #0 + 8004016: 6078 str r0, [r7, #4] + 8004018: 4b03 ldr r3, [pc, #12] ; (8004028 <_ZN14rosserial_msgs3Log6getMD5Ev+0x18>) + 800401a: 4618 mov r0, r3 + 800401c: 370c adds r7, #12 + 800401e: 46bd mov sp, r7 + 8004020: f85d 7b04 ldr.w r7, [sp], #4 + 8004024: 4770 bx lr + 8004026: bf00 nop + 8004028: 08005e98 .word 0x08005e98 + +0800402c <_ZN14rosserial_msgs20RequestParamResponseC1Ev>: + uint32_t strings_length; + typedef char* _strings_type; + _strings_type st_strings; + _strings_type * strings; + + RequestParamResponse(): + 800402c: b580 push {r7, lr} + 800402e: b082 sub sp, #8 + 8004030: af00 add r7, sp, #0 + 8004032: 6078 str r0, [r7, #4] + ints_length(0), ints(NULL), + floats_length(0), floats(NULL), + strings_length(0), strings(NULL) + 8004034: 687b ldr r3, [r7, #4] + 8004036: 4618 mov r0, r3 + 8004038: f7ff fbd6 bl 80037e8 <_ZN3ros3MsgC1Ev> + 800403c: 4a0c ldr r2, [pc, #48] ; (8004070 <_ZN14rosserial_msgs20RequestParamResponseC1Ev+0x44>) + 800403e: 687b ldr r3, [r7, #4] + 8004040: 601a str r2, [r3, #0] + 8004042: 687b ldr r3, [r7, #4] + 8004044: 2200 movs r2, #0 + 8004046: 605a str r2, [r3, #4] + 8004048: 687b ldr r3, [r7, #4] + 800404a: 2200 movs r2, #0 + 800404c: 60da str r2, [r3, #12] + 800404e: 687b ldr r3, [r7, #4] + 8004050: 2200 movs r2, #0 + 8004052: 611a str r2, [r3, #16] + 8004054: 687b ldr r3, [r7, #4] + 8004056: 2200 movs r2, #0 + 8004058: 619a str r2, [r3, #24] + 800405a: 687b ldr r3, [r7, #4] + 800405c: 2200 movs r2, #0 + 800405e: 61da str r2, [r3, #28] + 8004060: 687b ldr r3, [r7, #4] + 8004062: 2200 movs r2, #0 + 8004064: 625a str r2, [r3, #36] ; 0x24 + { + } + 8004066: 687b ldr r3, [r7, #4] + 8004068: 4618 mov r0, r3 + 800406a: 3708 adds r7, #8 + 800406c: 46bd mov sp, r7 + 800406e: bd80 pop {r7, pc} + 8004070: 08005f88 .word 0x08005f88 + +08004074 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh>: + + virtual int serialize(unsigned char *outbuffer) const + 8004074: b580 push {r7, lr} + 8004076: b08a sub sp, #40 ; 0x28 + 8004078: af00 add r7, sp, #0 + 800407a: 6078 str r0, [r7, #4] + 800407c: 6039 str r1, [r7, #0] + { + int offset = 0; + 800407e: 2300 movs r3, #0 + 8004080: 627b str r3, [r7, #36] ; 0x24 + *(outbuffer + offset + 0) = (this->ints_length >> (8 * 0)) & 0xFF; + 8004082: 687b ldr r3, [r7, #4] + 8004084: 6859 ldr r1, [r3, #4] + 8004086: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004088: 683a ldr r2, [r7, #0] + 800408a: 4413 add r3, r2 + 800408c: b2ca uxtb r2, r1 + 800408e: 701a strb r2, [r3, #0] + *(outbuffer + offset + 1) = (this->ints_length >> (8 * 1)) & 0xFF; + 8004090: 687b ldr r3, [r7, #4] + 8004092: 685b ldr r3, [r3, #4] + 8004094: 0a19 lsrs r1, r3, #8 + 8004096: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004098: 3301 adds r3, #1 + 800409a: 683a ldr r2, [r7, #0] + 800409c: 4413 add r3, r2 + 800409e: b2ca uxtb r2, r1 + 80040a0: 701a strb r2, [r3, #0] + *(outbuffer + offset + 2) = (this->ints_length >> (8 * 2)) & 0xFF; + 80040a2: 687b ldr r3, [r7, #4] + 80040a4: 685b ldr r3, [r3, #4] + 80040a6: 0c19 lsrs r1, r3, #16 + 80040a8: 6a7b ldr r3, [r7, #36] ; 0x24 + 80040aa: 3302 adds r3, #2 + 80040ac: 683a ldr r2, [r7, #0] + 80040ae: 4413 add r3, r2 + 80040b0: b2ca uxtb r2, r1 + 80040b2: 701a strb r2, [r3, #0] + *(outbuffer + offset + 3) = (this->ints_length >> (8 * 3)) & 0xFF; + 80040b4: 687b ldr r3, [r7, #4] + 80040b6: 685b ldr r3, [r3, #4] + 80040b8: 0e19 lsrs r1, r3, #24 + 80040ba: 6a7b ldr r3, [r7, #36] ; 0x24 + 80040bc: 3303 adds r3, #3 + 80040be: 683a ldr r2, [r7, #0] + 80040c0: 4413 add r3, r2 + 80040c2: b2ca uxtb r2, r1 + 80040c4: 701a strb r2, [r3, #0] + offset += sizeof(this->ints_length); + 80040c6: 6a7b ldr r3, [r7, #36] ; 0x24 + 80040c8: 3304 adds r3, #4 + 80040ca: 627b str r3, [r7, #36] ; 0x24 + for( uint32_t i = 0; i < ints_length; i++){ + 80040cc: 2300 movs r3, #0 + 80040ce: 623b str r3, [r7, #32] + 80040d0: 687b ldr r3, [r7, #4] + 80040d2: 685b ldr r3, [r3, #4] + 80040d4: 6a3a ldr r2, [r7, #32] + 80040d6: 429a cmp r2, r3 + 80040d8: d22b bcs.n 8004132 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0xbe> + union { + int32_t real; + uint32_t base; + } u_intsi; + u_intsi.real = this->ints[i]; + 80040da: 687b ldr r3, [r7, #4] + 80040dc: 68da ldr r2, [r3, #12] + 80040de: 6a3b ldr r3, [r7, #32] + 80040e0: 009b lsls r3, r3, #2 + 80040e2: 4413 add r3, r2 + 80040e4: 681b ldr r3, [r3, #0] + 80040e6: 613b str r3, [r7, #16] + *(outbuffer + offset + 0) = (u_intsi.base >> (8 * 0)) & 0xFF; + 80040e8: 6939 ldr r1, [r7, #16] + 80040ea: 6a7b ldr r3, [r7, #36] ; 0x24 + 80040ec: 683a ldr r2, [r7, #0] + 80040ee: 4413 add r3, r2 + 80040f0: b2ca uxtb r2, r1 + 80040f2: 701a strb r2, [r3, #0] + *(outbuffer + offset + 1) = (u_intsi.base >> (8 * 1)) & 0xFF; + 80040f4: 693b ldr r3, [r7, #16] + 80040f6: 0a19 lsrs r1, r3, #8 + 80040f8: 6a7b ldr r3, [r7, #36] ; 0x24 + 80040fa: 3301 adds r3, #1 + 80040fc: 683a ldr r2, [r7, #0] + 80040fe: 4413 add r3, r2 + 8004100: b2ca uxtb r2, r1 + 8004102: 701a strb r2, [r3, #0] + *(outbuffer + offset + 2) = (u_intsi.base >> (8 * 2)) & 0xFF; + 8004104: 693b ldr r3, [r7, #16] + 8004106: 0c19 lsrs r1, r3, #16 + 8004108: 6a7b ldr r3, [r7, #36] ; 0x24 + 800410a: 3302 adds r3, #2 + 800410c: 683a ldr r2, [r7, #0] + 800410e: 4413 add r3, r2 + 8004110: b2ca uxtb r2, r1 + 8004112: 701a strb r2, [r3, #0] + *(outbuffer + offset + 3) = (u_intsi.base >> (8 * 3)) & 0xFF; + 8004114: 693b ldr r3, [r7, #16] + 8004116: 0e19 lsrs r1, r3, #24 + 8004118: 6a7b ldr r3, [r7, #36] ; 0x24 + 800411a: 3303 adds r3, #3 + 800411c: 683a ldr r2, [r7, #0] + 800411e: 4413 add r3, r2 + 8004120: b2ca uxtb r2, r1 + 8004122: 701a strb r2, [r3, #0] + offset += sizeof(this->ints[i]); + 8004124: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004126: 3304 adds r3, #4 + 8004128: 627b str r3, [r7, #36] ; 0x24 + for( uint32_t i = 0; i < ints_length; i++){ + 800412a: 6a3b ldr r3, [r7, #32] + 800412c: 3301 adds r3, #1 + 800412e: 623b str r3, [r7, #32] + 8004130: e7ce b.n 80040d0 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x5c> + } + *(outbuffer + offset + 0) = (this->floats_length >> (8 * 0)) & 0xFF; + 8004132: 687b ldr r3, [r7, #4] + 8004134: 6919 ldr r1, [r3, #16] + 8004136: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004138: 683a ldr r2, [r7, #0] + 800413a: 4413 add r3, r2 + 800413c: b2ca uxtb r2, r1 + 800413e: 701a strb r2, [r3, #0] + *(outbuffer + offset + 1) = (this->floats_length >> (8 * 1)) & 0xFF; + 8004140: 687b ldr r3, [r7, #4] + 8004142: 691b ldr r3, [r3, #16] + 8004144: 0a19 lsrs r1, r3, #8 + 8004146: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004148: 3301 adds r3, #1 + 800414a: 683a ldr r2, [r7, #0] + 800414c: 4413 add r3, r2 + 800414e: b2ca uxtb r2, r1 + 8004150: 701a strb r2, [r3, #0] + *(outbuffer + offset + 2) = (this->floats_length >> (8 * 2)) & 0xFF; + 8004152: 687b ldr r3, [r7, #4] + 8004154: 691b ldr r3, [r3, #16] + 8004156: 0c19 lsrs r1, r3, #16 + 8004158: 6a7b ldr r3, [r7, #36] ; 0x24 + 800415a: 3302 adds r3, #2 + 800415c: 683a ldr r2, [r7, #0] + 800415e: 4413 add r3, r2 + 8004160: b2ca uxtb r2, r1 + 8004162: 701a strb r2, [r3, #0] + *(outbuffer + offset + 3) = (this->floats_length >> (8 * 3)) & 0xFF; + 8004164: 687b ldr r3, [r7, #4] + 8004166: 691b ldr r3, [r3, #16] + 8004168: 0e19 lsrs r1, r3, #24 + 800416a: 6a7b ldr r3, [r7, #36] ; 0x24 + 800416c: 3303 adds r3, #3 + 800416e: 683a ldr r2, [r7, #0] + 8004170: 4413 add r3, r2 + 8004172: b2ca uxtb r2, r1 + 8004174: 701a strb r2, [r3, #0] + offset += sizeof(this->floats_length); + 8004176: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004178: 3304 adds r3, #4 + 800417a: 627b str r3, [r7, #36] ; 0x24 + for( uint32_t i = 0; i < floats_length; i++){ + 800417c: 2300 movs r3, #0 + 800417e: 61fb str r3, [r7, #28] + 8004180: 687b ldr r3, [r7, #4] + 8004182: 691b ldr r3, [r3, #16] + 8004184: 69fa ldr r2, [r7, #28] + 8004186: 429a cmp r2, r3 + 8004188: d22b bcs.n 80041e2 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x16e> + union { + float real; + uint32_t base; + } u_floatsi; + u_floatsi.real = this->floats[i]; + 800418a: 687b ldr r3, [r7, #4] + 800418c: 699a ldr r2, [r3, #24] + 800418e: 69fb ldr r3, [r7, #28] + 8004190: 009b lsls r3, r3, #2 + 8004192: 4413 add r3, r2 + 8004194: 681b ldr r3, [r3, #0] + 8004196: 60fb str r3, [r7, #12] + *(outbuffer + offset + 0) = (u_floatsi.base >> (8 * 0)) & 0xFF; + 8004198: 68f9 ldr r1, [r7, #12] + 800419a: 6a7b ldr r3, [r7, #36] ; 0x24 + 800419c: 683a ldr r2, [r7, #0] + 800419e: 4413 add r3, r2 + 80041a0: b2ca uxtb r2, r1 + 80041a2: 701a strb r2, [r3, #0] + *(outbuffer + offset + 1) = (u_floatsi.base >> (8 * 1)) & 0xFF; + 80041a4: 68fb ldr r3, [r7, #12] + 80041a6: 0a19 lsrs r1, r3, #8 + 80041a8: 6a7b ldr r3, [r7, #36] ; 0x24 + 80041aa: 3301 adds r3, #1 + 80041ac: 683a ldr r2, [r7, #0] + 80041ae: 4413 add r3, r2 + 80041b0: b2ca uxtb r2, r1 + 80041b2: 701a strb r2, [r3, #0] + *(outbuffer + offset + 2) = (u_floatsi.base >> (8 * 2)) & 0xFF; + 80041b4: 68fb ldr r3, [r7, #12] + 80041b6: 0c19 lsrs r1, r3, #16 + 80041b8: 6a7b ldr r3, [r7, #36] ; 0x24 + 80041ba: 3302 adds r3, #2 + 80041bc: 683a ldr r2, [r7, #0] + 80041be: 4413 add r3, r2 + 80041c0: b2ca uxtb r2, r1 + 80041c2: 701a strb r2, [r3, #0] + *(outbuffer + offset + 3) = (u_floatsi.base >> (8 * 3)) & 0xFF; + 80041c4: 68fb ldr r3, [r7, #12] + 80041c6: 0e19 lsrs r1, r3, #24 + 80041c8: 6a7b ldr r3, [r7, #36] ; 0x24 + 80041ca: 3303 adds r3, #3 + 80041cc: 683a ldr r2, [r7, #0] + 80041ce: 4413 add r3, r2 + 80041d0: b2ca uxtb r2, r1 + 80041d2: 701a strb r2, [r3, #0] + offset += sizeof(this->floats[i]); + 80041d4: 6a7b ldr r3, [r7, #36] ; 0x24 + 80041d6: 3304 adds r3, #4 + 80041d8: 627b str r3, [r7, #36] ; 0x24 + for( uint32_t i = 0; i < floats_length; i++){ + 80041da: 69fb ldr r3, [r7, #28] + 80041dc: 3301 adds r3, #1 + 80041de: 61fb str r3, [r7, #28] + 80041e0: e7ce b.n 8004180 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x10c> + } + *(outbuffer + offset + 0) = (this->strings_length >> (8 * 0)) & 0xFF; + 80041e2: 687b ldr r3, [r7, #4] + 80041e4: 69d9 ldr r1, [r3, #28] + 80041e6: 6a7b ldr r3, [r7, #36] ; 0x24 + 80041e8: 683a ldr r2, [r7, #0] + 80041ea: 4413 add r3, r2 + 80041ec: b2ca uxtb r2, r1 + 80041ee: 701a strb r2, [r3, #0] + *(outbuffer + offset + 1) = (this->strings_length >> (8 * 1)) & 0xFF; + 80041f0: 687b ldr r3, [r7, #4] + 80041f2: 69db ldr r3, [r3, #28] + 80041f4: 0a19 lsrs r1, r3, #8 + 80041f6: 6a7b ldr r3, [r7, #36] ; 0x24 + 80041f8: 3301 adds r3, #1 + 80041fa: 683a ldr r2, [r7, #0] + 80041fc: 4413 add r3, r2 + 80041fe: b2ca uxtb r2, r1 + 8004200: 701a strb r2, [r3, #0] + *(outbuffer + offset + 2) = (this->strings_length >> (8 * 2)) & 0xFF; + 8004202: 687b ldr r3, [r7, #4] + 8004204: 69db ldr r3, [r3, #28] + 8004206: 0c19 lsrs r1, r3, #16 + 8004208: 6a7b ldr r3, [r7, #36] ; 0x24 + 800420a: 3302 adds r3, #2 + 800420c: 683a ldr r2, [r7, #0] + 800420e: 4413 add r3, r2 + 8004210: b2ca uxtb r2, r1 + 8004212: 701a strb r2, [r3, #0] + *(outbuffer + offset + 3) = (this->strings_length >> (8 * 3)) & 0xFF; + 8004214: 687b ldr r3, [r7, #4] + 8004216: 69db ldr r3, [r3, #28] + 8004218: 0e19 lsrs r1, r3, #24 + 800421a: 6a7b ldr r3, [r7, #36] ; 0x24 + 800421c: 3303 adds r3, #3 + 800421e: 683a ldr r2, [r7, #0] + 8004220: 4413 add r3, r2 + 8004222: b2ca uxtb r2, r1 + 8004224: 701a strb r2, [r3, #0] + offset += sizeof(this->strings_length); + 8004226: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004228: 3304 adds r3, #4 + 800422a: 627b str r3, [r7, #36] ; 0x24 + for( uint32_t i = 0; i < strings_length; i++){ + 800422c: 2300 movs r3, #0 + 800422e: 61bb str r3, [r7, #24] + 8004230: 687b ldr r3, [r7, #4] + 8004232: 69db ldr r3, [r3, #28] + 8004234: 69ba ldr r2, [r7, #24] + 8004236: 429a cmp r2, r3 + 8004238: d228 bcs.n 800428c <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x218> + uint32_t length_stringsi = strlen(this->strings[i]); + 800423a: 687b ldr r3, [r7, #4] + 800423c: 6a5a ldr r2, [r3, #36] ; 0x24 + 800423e: 69bb ldr r3, [r7, #24] + 8004240: 009b lsls r3, r3, #2 + 8004242: 4413 add r3, r2 + 8004244: 681b ldr r3, [r3, #0] + 8004246: 4618 mov r0, r3 + 8004248: f7fb fff6 bl 8000238 + 800424c: 6178 str r0, [r7, #20] + varToArr(outbuffer + offset, length_stringsi); + 800424e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004250: 683a ldr r2, [r7, #0] + 8004252: 4413 add r3, r2 + 8004254: 6979 ldr r1, [r7, #20] + 8004256: 4618 mov r0, r3 + 8004258: f000 fcbd bl 8004bd6 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> + offset += 4; + 800425c: 6a7b ldr r3, [r7, #36] ; 0x24 + 800425e: 3304 adds r3, #4 + 8004260: 627b str r3, [r7, #36] ; 0x24 + memcpy(outbuffer + offset, this->strings[i], length_stringsi); + 8004262: 6a7b ldr r3, [r7, #36] ; 0x24 + 8004264: 683a ldr r2, [r7, #0] + 8004266: 18d0 adds r0, r2, r3 + 8004268: 687b ldr r3, [r7, #4] + 800426a: 6a5a ldr r2, [r3, #36] ; 0x24 + 800426c: 69bb ldr r3, [r7, #24] + 800426e: 009b lsls r3, r3, #2 + 8004270: 4413 add r3, r2 + 8004272: 681b ldr r3, [r3, #0] + 8004274: 697a ldr r2, [r7, #20] + 8004276: 4619 mov r1, r3 + 8004278: f001 fc5a bl 8005b30 + offset += length_stringsi; + 800427c: 6a7a ldr r2, [r7, #36] ; 0x24 + 800427e: 697b ldr r3, [r7, #20] + 8004280: 4413 add r3, r2 + 8004282: 627b str r3, [r7, #36] ; 0x24 + for( uint32_t i = 0; i < strings_length; i++){ + 8004284: 69bb ldr r3, [r7, #24] + 8004286: 3301 adds r3, #1 + 8004288: 61bb str r3, [r7, #24] + 800428a: e7d1 b.n 8004230 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x1bc> + } + return offset; + 800428c: 6a7b ldr r3, [r7, #36] ; 0x24 + } + 800428e: 4618 mov r0, r3 + 8004290: 3728 adds r7, #40 ; 0x28 + 8004292: 46bd mov sp, r7 + 8004294: bd80 pop {r7, pc} + +08004296 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh>: + + virtual int deserialize(unsigned char *inbuffer) + 8004296: b580 push {r7, lr} + 8004298: b08e sub sp, #56 ; 0x38 + 800429a: af00 add r7, sp, #0 + 800429c: 6078 str r0, [r7, #4] + 800429e: 6039 str r1, [r7, #0] + { + int offset = 0; + 80042a0: 2300 movs r3, #0 + 80042a2: 637b str r3, [r7, #52] ; 0x34 + uint32_t ints_lengthT = ((uint32_t) (*(inbuffer + offset))); + 80042a4: 6b7b ldr r3, [r7, #52] ; 0x34 + 80042a6: 683a ldr r2, [r7, #0] + 80042a8: 4413 add r3, r2 + 80042aa: 781b ldrb r3, [r3, #0] + 80042ac: 623b str r3, [r7, #32] + ints_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); + 80042ae: 6b7b ldr r3, [r7, #52] ; 0x34 + 80042b0: 3301 adds r3, #1 + 80042b2: 683a ldr r2, [r7, #0] + 80042b4: 4413 add r3, r2 + 80042b6: 781b ldrb r3, [r3, #0] + 80042b8: 021b lsls r3, r3, #8 + 80042ba: 6a3a ldr r2, [r7, #32] + 80042bc: 4313 orrs r3, r2 + 80042be: 623b str r3, [r7, #32] + ints_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); + 80042c0: 6b7b ldr r3, [r7, #52] ; 0x34 + 80042c2: 3302 adds r3, #2 + 80042c4: 683a ldr r2, [r7, #0] + 80042c6: 4413 add r3, r2 + 80042c8: 781b ldrb r3, [r3, #0] + 80042ca: 041b lsls r3, r3, #16 + 80042cc: 6a3a ldr r2, [r7, #32] + 80042ce: 4313 orrs r3, r2 + 80042d0: 623b str r3, [r7, #32] + ints_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); + 80042d2: 6b7b ldr r3, [r7, #52] ; 0x34 + 80042d4: 3303 adds r3, #3 + 80042d6: 683a ldr r2, [r7, #0] + 80042d8: 4413 add r3, r2 + 80042da: 781b ldrb r3, [r3, #0] + 80042dc: 061b lsls r3, r3, #24 + 80042de: 6a3a ldr r2, [r7, #32] + 80042e0: 4313 orrs r3, r2 + 80042e2: 623b str r3, [r7, #32] + offset += sizeof(this->ints_length); + 80042e4: 6b7b ldr r3, [r7, #52] ; 0x34 + 80042e6: 3304 adds r3, #4 + 80042e8: 637b str r3, [r7, #52] ; 0x34 + if(ints_lengthT > ints_length) + 80042ea: 687b ldr r3, [r7, #4] + 80042ec: 685b ldr r3, [r3, #4] + 80042ee: 6a3a ldr r2, [r7, #32] + 80042f0: 429a cmp r2, r3 + 80042f2: d90a bls.n 800430a <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x74> + this->ints = (int32_t*)realloc(this->ints, ints_lengthT * sizeof(int32_t)); + 80042f4: 687b ldr r3, [r7, #4] + 80042f6: 68da ldr r2, [r3, #12] + 80042f8: 6a3b ldr r3, [r7, #32] + 80042fa: 009b lsls r3, r3, #2 + 80042fc: 4619 mov r1, r3 + 80042fe: 4610 mov r0, r2 + 8004300: f001 fc2a bl 8005b58 + 8004304: 4602 mov r2, r0 + 8004306: 687b ldr r3, [r7, #4] + 8004308: 60da str r2, [r3, #12] + ints_length = ints_lengthT; + 800430a: 687b ldr r3, [r7, #4] + 800430c: 6a3a ldr r2, [r7, #32] + 800430e: 605a str r2, [r3, #4] + for( uint32_t i = 0; i < ints_length; i++){ + 8004310: 2300 movs r3, #0 + 8004312: 633b str r3, [r7, #48] ; 0x30 + 8004314: 687b ldr r3, [r7, #4] + 8004316: 685b ldr r3, [r3, #4] + 8004318: 6b3a ldr r2, [r7, #48] ; 0x30 + 800431a: 429a cmp r2, r3 + 800431c: d236 bcs.n 800438c <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0xf6> + union { + int32_t real; + uint32_t base; + } u_st_ints; + u_st_ints.base = 0; + 800431e: 2300 movs r3, #0 + 8004320: 617b str r3, [r7, #20] + u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); + 8004322: 697b ldr r3, [r7, #20] + 8004324: 6b7a ldr r2, [r7, #52] ; 0x34 + 8004326: 6839 ldr r1, [r7, #0] + 8004328: 440a add r2, r1 + 800432a: 7812 ldrb r2, [r2, #0] + 800432c: 4313 orrs r3, r2 + 800432e: 617b str r3, [r7, #20] + u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); + 8004330: 697a ldr r2, [r7, #20] + 8004332: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004334: 3301 adds r3, #1 + 8004336: 6839 ldr r1, [r7, #0] + 8004338: 440b add r3, r1 + 800433a: 781b ldrb r3, [r3, #0] + 800433c: 021b lsls r3, r3, #8 + 800433e: 4313 orrs r3, r2 + 8004340: 617b str r3, [r7, #20] + u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); + 8004342: 697a ldr r2, [r7, #20] + 8004344: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004346: 3302 adds r3, #2 + 8004348: 6839 ldr r1, [r7, #0] + 800434a: 440b add r3, r1 + 800434c: 781b ldrb r3, [r3, #0] + 800434e: 041b lsls r3, r3, #16 + 8004350: 4313 orrs r3, r2 + 8004352: 617b str r3, [r7, #20] + u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); + 8004354: 697a ldr r2, [r7, #20] + 8004356: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004358: 3303 adds r3, #3 + 800435a: 6839 ldr r1, [r7, #0] + 800435c: 440b add r3, r1 + 800435e: 781b ldrb r3, [r3, #0] + 8004360: 061b lsls r3, r3, #24 + 8004362: 4313 orrs r3, r2 + 8004364: 617b str r3, [r7, #20] + this->st_ints = u_st_ints.real; + 8004366: 697a ldr r2, [r7, #20] + 8004368: 687b ldr r3, [r7, #4] + 800436a: 609a str r2, [r3, #8] + offset += sizeof(this->st_ints); + 800436c: 6b7b ldr r3, [r7, #52] ; 0x34 + 800436e: 3304 adds r3, #4 + 8004370: 637b str r3, [r7, #52] ; 0x34 + memcpy( &(this->ints[i]), &(this->st_ints), sizeof(int32_t)); + 8004372: 687b ldr r3, [r7, #4] + 8004374: 68da ldr r2, [r3, #12] + 8004376: 6b3b ldr r3, [r7, #48] ; 0x30 + 8004378: 009b lsls r3, r3, #2 + 800437a: 4413 add r3, r2 + 800437c: 687a ldr r2, [r7, #4] + 800437e: 3208 adds r2, #8 + 8004380: 6812 ldr r2, [r2, #0] + 8004382: 601a str r2, [r3, #0] + for( uint32_t i = 0; i < ints_length; i++){ + 8004384: 6b3b ldr r3, [r7, #48] ; 0x30 + 8004386: 3301 adds r3, #1 + 8004388: 633b str r3, [r7, #48] ; 0x30 + 800438a: e7c3 b.n 8004314 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x7e> + } + uint32_t floats_lengthT = ((uint32_t) (*(inbuffer + offset))); + 800438c: 6b7b ldr r3, [r7, #52] ; 0x34 + 800438e: 683a ldr r2, [r7, #0] + 8004390: 4413 add r3, r2 + 8004392: 781b ldrb r3, [r3, #0] + 8004394: 61fb str r3, [r7, #28] + floats_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); + 8004396: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004398: 3301 adds r3, #1 + 800439a: 683a ldr r2, [r7, #0] + 800439c: 4413 add r3, r2 + 800439e: 781b ldrb r3, [r3, #0] + 80043a0: 021b lsls r3, r3, #8 + 80043a2: 69fa ldr r2, [r7, #28] + 80043a4: 4313 orrs r3, r2 + 80043a6: 61fb str r3, [r7, #28] + floats_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); + 80043a8: 6b7b ldr r3, [r7, #52] ; 0x34 + 80043aa: 3302 adds r3, #2 + 80043ac: 683a ldr r2, [r7, #0] + 80043ae: 4413 add r3, r2 + 80043b0: 781b ldrb r3, [r3, #0] + 80043b2: 041b lsls r3, r3, #16 + 80043b4: 69fa ldr r2, [r7, #28] + 80043b6: 4313 orrs r3, r2 + 80043b8: 61fb str r3, [r7, #28] + floats_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); + 80043ba: 6b7b ldr r3, [r7, #52] ; 0x34 + 80043bc: 3303 adds r3, #3 + 80043be: 683a ldr r2, [r7, #0] + 80043c0: 4413 add r3, r2 + 80043c2: 781b ldrb r3, [r3, #0] + 80043c4: 061b lsls r3, r3, #24 + 80043c6: 69fa ldr r2, [r7, #28] + 80043c8: 4313 orrs r3, r2 + 80043ca: 61fb str r3, [r7, #28] + offset += sizeof(this->floats_length); + 80043cc: 6b7b ldr r3, [r7, #52] ; 0x34 + 80043ce: 3304 adds r3, #4 + 80043d0: 637b str r3, [r7, #52] ; 0x34 + if(floats_lengthT > floats_length) + 80043d2: 687b ldr r3, [r7, #4] + 80043d4: 691b ldr r3, [r3, #16] + 80043d6: 69fa ldr r2, [r7, #28] + 80043d8: 429a cmp r2, r3 + 80043da: d90a bls.n 80043f2 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x15c> + this->floats = (float*)realloc(this->floats, floats_lengthT * sizeof(float)); + 80043dc: 687b ldr r3, [r7, #4] + 80043de: 699a ldr r2, [r3, #24] + 80043e0: 69fb ldr r3, [r7, #28] + 80043e2: 009b lsls r3, r3, #2 + 80043e4: 4619 mov r1, r3 + 80043e6: 4610 mov r0, r2 + 80043e8: f001 fbb6 bl 8005b58 + 80043ec: 4602 mov r2, r0 + 80043ee: 687b ldr r3, [r7, #4] + 80043f0: 619a str r2, [r3, #24] + floats_length = floats_lengthT; + 80043f2: 687b ldr r3, [r7, #4] + 80043f4: 69fa ldr r2, [r7, #28] + 80043f6: 611a str r2, [r3, #16] + for( uint32_t i = 0; i < floats_length; i++){ + 80043f8: 2300 movs r3, #0 + 80043fa: 62fb str r3, [r7, #44] ; 0x2c + 80043fc: 687b ldr r3, [r7, #4] + 80043fe: 691b ldr r3, [r3, #16] + 8004400: 6afa ldr r2, [r7, #44] ; 0x2c + 8004402: 429a cmp r2, r3 + 8004404: d236 bcs.n 8004474 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x1de> + union { + float real; + uint32_t base; + } u_st_floats; + u_st_floats.base = 0; + 8004406: 2300 movs r3, #0 + 8004408: 613b str r3, [r7, #16] + u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); + 800440a: 693b ldr r3, [r7, #16] + 800440c: 6b7a ldr r2, [r7, #52] ; 0x34 + 800440e: 6839 ldr r1, [r7, #0] + 8004410: 440a add r2, r1 + 8004412: 7812 ldrb r2, [r2, #0] + 8004414: 4313 orrs r3, r2 + 8004416: 613b str r3, [r7, #16] + u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); + 8004418: 693a ldr r2, [r7, #16] + 800441a: 6b7b ldr r3, [r7, #52] ; 0x34 + 800441c: 3301 adds r3, #1 + 800441e: 6839 ldr r1, [r7, #0] + 8004420: 440b add r3, r1 + 8004422: 781b ldrb r3, [r3, #0] + 8004424: 021b lsls r3, r3, #8 + 8004426: 4313 orrs r3, r2 + 8004428: 613b str r3, [r7, #16] + u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); + 800442a: 693a ldr r2, [r7, #16] + 800442c: 6b7b ldr r3, [r7, #52] ; 0x34 + 800442e: 3302 adds r3, #2 + 8004430: 6839 ldr r1, [r7, #0] + 8004432: 440b add r3, r1 + 8004434: 781b ldrb r3, [r3, #0] + 8004436: 041b lsls r3, r3, #16 + 8004438: 4313 orrs r3, r2 + 800443a: 613b str r3, [r7, #16] + u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); + 800443c: 693a ldr r2, [r7, #16] + 800443e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004440: 3303 adds r3, #3 + 8004442: 6839 ldr r1, [r7, #0] + 8004444: 440b add r3, r1 + 8004446: 781b ldrb r3, [r3, #0] + 8004448: 061b lsls r3, r3, #24 + 800444a: 4313 orrs r3, r2 + 800444c: 613b str r3, [r7, #16] + this->st_floats = u_st_floats.real; + 800444e: 693a ldr r2, [r7, #16] + 8004450: 687b ldr r3, [r7, #4] + 8004452: 615a str r2, [r3, #20] + offset += sizeof(this->st_floats); + 8004454: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004456: 3304 adds r3, #4 + 8004458: 637b str r3, [r7, #52] ; 0x34 + memcpy( &(this->floats[i]), &(this->st_floats), sizeof(float)); + 800445a: 687b ldr r3, [r7, #4] + 800445c: 699a ldr r2, [r3, #24] + 800445e: 6afb ldr r3, [r7, #44] ; 0x2c + 8004460: 009b lsls r3, r3, #2 + 8004462: 4413 add r3, r2 + 8004464: 687a ldr r2, [r7, #4] + 8004466: 3214 adds r2, #20 + 8004468: 6812 ldr r2, [r2, #0] + 800446a: 601a str r2, [r3, #0] + for( uint32_t i = 0; i < floats_length; i++){ + 800446c: 6afb ldr r3, [r7, #44] ; 0x2c + 800446e: 3301 adds r3, #1 + 8004470: 62fb str r3, [r7, #44] ; 0x2c + 8004472: e7c3 b.n 80043fc <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x166> + } + uint32_t strings_lengthT = ((uint32_t) (*(inbuffer + offset))); + 8004474: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004476: 683a ldr r2, [r7, #0] + 8004478: 4413 add r3, r2 + 800447a: 781b ldrb r3, [r3, #0] + 800447c: 61bb str r3, [r7, #24] + strings_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); + 800447e: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004480: 3301 adds r3, #1 + 8004482: 683a ldr r2, [r7, #0] + 8004484: 4413 add r3, r2 + 8004486: 781b ldrb r3, [r3, #0] + 8004488: 021b lsls r3, r3, #8 + 800448a: 69ba ldr r2, [r7, #24] + 800448c: 4313 orrs r3, r2 + 800448e: 61bb str r3, [r7, #24] + strings_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); + 8004490: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004492: 3302 adds r3, #2 + 8004494: 683a ldr r2, [r7, #0] + 8004496: 4413 add r3, r2 + 8004498: 781b ldrb r3, [r3, #0] + 800449a: 041b lsls r3, r3, #16 + 800449c: 69ba ldr r2, [r7, #24] + 800449e: 4313 orrs r3, r2 + 80044a0: 61bb str r3, [r7, #24] + strings_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); + 80044a2: 6b7b ldr r3, [r7, #52] ; 0x34 + 80044a4: 3303 adds r3, #3 + 80044a6: 683a ldr r2, [r7, #0] + 80044a8: 4413 add r3, r2 + 80044aa: 781b ldrb r3, [r3, #0] + 80044ac: 061b lsls r3, r3, #24 + 80044ae: 69ba ldr r2, [r7, #24] + 80044b0: 4313 orrs r3, r2 + 80044b2: 61bb str r3, [r7, #24] + offset += sizeof(this->strings_length); + 80044b4: 6b7b ldr r3, [r7, #52] ; 0x34 + 80044b6: 3304 adds r3, #4 + 80044b8: 637b str r3, [r7, #52] ; 0x34 + if(strings_lengthT > strings_length) + 80044ba: 687b ldr r3, [r7, #4] + 80044bc: 69db ldr r3, [r3, #28] + 80044be: 69ba ldr r2, [r7, #24] + 80044c0: 429a cmp r2, r3 + 80044c2: d90a bls.n 80044da <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x244> + this->strings = (char**)realloc(this->strings, strings_lengthT * sizeof(char*)); + 80044c4: 687b ldr r3, [r7, #4] + 80044c6: 6a5a ldr r2, [r3, #36] ; 0x24 + 80044c8: 69bb ldr r3, [r7, #24] + 80044ca: 009b lsls r3, r3, #2 + 80044cc: 4619 mov r1, r3 + 80044ce: 4610 mov r0, r2 + 80044d0: f001 fb42 bl 8005b58 + 80044d4: 4602 mov r2, r0 + 80044d6: 687b ldr r3, [r7, #4] + 80044d8: 625a str r2, [r3, #36] ; 0x24 + strings_length = strings_lengthT; + 80044da: 687b ldr r3, [r7, #4] + 80044dc: 69ba ldr r2, [r7, #24] + 80044de: 61da str r2, [r3, #28] + for( uint32_t i = 0; i < strings_length; i++){ + 80044e0: 2300 movs r3, #0 + 80044e2: 62bb str r3, [r7, #40] ; 0x28 + 80044e4: 687b ldr r3, [r7, #4] + 80044e6: 69db ldr r3, [r3, #28] + 80044e8: 6aba ldr r2, [r7, #40] ; 0x28 + 80044ea: 429a cmp r2, r3 + 80044ec: d23f bcs.n 800456e <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x2d8> + uint32_t length_st_strings; + arrToVar(length_st_strings, (inbuffer + offset)); + 80044ee: 6b7b ldr r3, [r7, #52] ; 0x34 + 80044f0: 683a ldr r2, [r7, #0] + 80044f2: 441a add r2, r3 + 80044f4: f107 030c add.w r3, r7, #12 + 80044f8: 4611 mov r1, r2 + 80044fa: 4618 mov r0, r3 + 80044fc: f000 fb89 bl 8004c12 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> + offset += 4; + 8004500: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004502: 3304 adds r3, #4 + 8004504: 637b str r3, [r7, #52] ; 0x34 + for(unsigned int k= offset; k< offset+length_st_strings; ++k){ + 8004506: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004508: 627b str r3, [r7, #36] ; 0x24 + 800450a: 6b7a ldr r2, [r7, #52] ; 0x34 + 800450c: 68fb ldr r3, [r7, #12] + 800450e: 4413 add r3, r2 + 8004510: 6a7a ldr r2, [r7, #36] ; 0x24 + 8004512: 429a cmp r2, r3 + 8004514: d20c bcs.n 8004530 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x29a> + inbuffer[k-1]=inbuffer[k]; + 8004516: 683a ldr r2, [r7, #0] + 8004518: 6a7b ldr r3, [r7, #36] ; 0x24 + 800451a: 441a add r2, r3 + 800451c: 6a7b ldr r3, [r7, #36] ; 0x24 + 800451e: 3b01 subs r3, #1 + 8004520: 6839 ldr r1, [r7, #0] + 8004522: 440b add r3, r1 + 8004524: 7812 ldrb r2, [r2, #0] + 8004526: 701a strb r2, [r3, #0] + for(unsigned int k= offset; k< offset+length_st_strings; ++k){ + 8004528: 6a7b ldr r3, [r7, #36] ; 0x24 + 800452a: 3301 adds r3, #1 + 800452c: 627b str r3, [r7, #36] ; 0x24 + 800452e: e7ec b.n 800450a <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x274> + } + inbuffer[offset+length_st_strings-1]=0; + 8004530: 6b7a ldr r2, [r7, #52] ; 0x34 + 8004532: 68fb ldr r3, [r7, #12] + 8004534: 4413 add r3, r2 + 8004536: 3b01 subs r3, #1 + 8004538: 683a ldr r2, [r7, #0] + 800453a: 4413 add r3, r2 + 800453c: 2200 movs r2, #0 + 800453e: 701a strb r2, [r3, #0] + this->st_strings = (char *)(inbuffer + offset-1); + 8004540: 6b7b ldr r3, [r7, #52] ; 0x34 + 8004542: 3b01 subs r3, #1 + 8004544: 683a ldr r2, [r7, #0] + 8004546: 441a add r2, r3 + 8004548: 687b ldr r3, [r7, #4] + 800454a: 621a str r2, [r3, #32] + offset += length_st_strings; + 800454c: 6b7a ldr r2, [r7, #52] ; 0x34 + 800454e: 68fb ldr r3, [r7, #12] + 8004550: 4413 add r3, r2 + 8004552: 637b str r3, [r7, #52] ; 0x34 + memcpy( &(this->strings[i]), &(this->st_strings), sizeof(char*)); + 8004554: 687b ldr r3, [r7, #4] + 8004556: 6a5a ldr r2, [r3, #36] ; 0x24 + 8004558: 6abb ldr r3, [r7, #40] ; 0x28 + 800455a: 009b lsls r3, r3, #2 + 800455c: 4413 add r3, r2 + 800455e: 687a ldr r2, [r7, #4] + 8004560: 3220 adds r2, #32 + 8004562: 6812 ldr r2, [r2, #0] + 8004564: 601a str r2, [r3, #0] + for( uint32_t i = 0; i < strings_length; i++){ + 8004566: 6abb ldr r3, [r7, #40] ; 0x28 + 8004568: 3301 adds r3, #1 + 800456a: 62bb str r3, [r7, #40] ; 0x28 + 800456c: e7ba b.n 80044e4 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x24e> + } + return offset; + 800456e: 6b7b ldr r3, [r7, #52] ; 0x34 + } + 8004570: 4618 mov r0, r3 + 8004572: 3738 adds r7, #56 ; 0x38 + 8004574: 46bd mov sp, r7 + 8004576: bd80 pop {r7, pc} + +08004578 <_ZN14rosserial_msgs20RequestParamResponse7getTypeEv>: + + const char * getType(){ return REQUESTPARAM; }; + 8004578: b480 push {r7} + 800457a: b083 sub sp, #12 + 800457c: af00 add r7, sp, #0 + 800457e: 6078 str r0, [r7, #4] + 8004580: 4b03 ldr r3, [pc, #12] ; (8004590 <_ZN14rosserial_msgs20RequestParamResponse7getTypeEv+0x18>) + 8004582: 4618 mov r0, r3 + 8004584: 370c adds r7, #12 + 8004586: 46bd mov sp, r7 + 8004588: f85d 7b04 ldr.w r7, [sp], #4 + 800458c: 4770 bx lr + 800458e: bf00 nop + 8004590: 08005f3c .word 0x08005f3c + +08004594 <_ZN14rosserial_msgs20RequestParamResponse6getMD5Ev>: + const char * getMD5(){ return "9f0e98bda65981986ddf53afa7a40e49"; }; + 8004594: b480 push {r7} + 8004596: b083 sub sp, #12 + 8004598: af00 add r7, sp, #0 + 800459a: 6078 str r0, [r7, #4] + 800459c: 4b03 ldr r3, [pc, #12] ; (80045ac <_ZN14rosserial_msgs20RequestParamResponse6getMD5Ev+0x18>) + 800459e: 4618 mov r0, r3 + 80045a0: 370c adds r7, #12 + 80045a2: 46bd mov sp, r7 + 80045a4: f85d 7b04 ldr.w r7, [sp], #4 + 80045a8: 4770 bx lr + 80045aa: bf00 nop + 80045ac: 08005ebc .word 0x08005ebc + +080045b0 <_ZN3ros9PublisherC1EPKcPNS_3MsgEi>: + +/* Generic Publisher */ +class Publisher +{ +public: + Publisher(const char * topic_name, Msg * msg, int endpoint = rosserial_msgs::TopicInfo::ID_PUBLISHER) : + 80045b0: b480 push {r7} + 80045b2: b085 sub sp, #20 + 80045b4: af00 add r7, sp, #0 + 80045b6: 60f8 str r0, [r7, #12] + 80045b8: 60b9 str r1, [r7, #8] + 80045ba: 607a str r2, [r7, #4] + 80045bc: 603b str r3, [r7, #0] + topic_(topic_name), + msg_(msg), + endpoint_(endpoint) {}; + 80045be: 68fb ldr r3, [r7, #12] + 80045c0: 68ba ldr r2, [r7, #8] + 80045c2: 601a str r2, [r3, #0] + 80045c4: 68fb ldr r3, [r7, #12] + 80045c6: 687a ldr r2, [r7, #4] + 80045c8: 605a str r2, [r3, #4] + 80045ca: 68fb ldr r3, [r7, #12] + 80045cc: 683a ldr r2, [r7, #0] + 80045ce: 611a str r2, [r3, #16] + 80045d0: 68fb ldr r3, [r7, #12] + 80045d2: 4618 mov r0, r3 + 80045d4: 3714 adds r7, #20 + 80045d6: 46bd mov sp, r7 + 80045d8: f85d 7b04 ldr.w r7, [sp], #4 + 80045dc: 4770 bx lr + +080045de <_ZN3ros9Publisher7publishEPKNS_3MsgE>: + + int publish(const Msg * msg) + 80045de: b580 push {r7, lr} + 80045e0: b082 sub sp, #8 + 80045e2: af00 add r7, sp, #0 + 80045e4: 6078 str r0, [r7, #4] + 80045e6: 6039 str r1, [r7, #0] + { + return nh_->publish(id_, msg); + 80045e8: 687b ldr r3, [r7, #4] + 80045ea: 68d8 ldr r0, [r3, #12] + 80045ec: 687b ldr r3, [r7, #4] + 80045ee: 68db ldr r3, [r3, #12] + 80045f0: 681b ldr r3, [r3, #0] + 80045f2: 681b ldr r3, [r3, #0] + 80045f4: 687a ldr r2, [r7, #4] + 80045f6: 6891 ldr r1, [r2, #8] + 80045f8: 683a ldr r2, [r7, #0] + 80045fa: 4798 blx r3 + 80045fc: 4603 mov r3, r0 + }; + 80045fe: 4618 mov r0, r3 + 8004600: 3708 adds r7, #8 + 8004602: 46bd mov sp, r7 + 8004604: bd80 pop {r7, pc} + +08004606 <_ZN3ros9Publisher15getEndpointTypeEv>: + int getEndpointType() + 8004606: b480 push {r7} + 8004608: b083 sub sp, #12 + 800460a: af00 add r7, sp, #0 + 800460c: 6078 str r0, [r7, #4] + { + return endpoint_; + 800460e: 687b ldr r3, [r7, #4] + 8004610: 691b ldr r3, [r3, #16] + } + 8004612: 4618 mov r0, r3 + 8004614: 370c adds r7, #12 + 8004616: 46bd mov sp, r7 + 8004618: f85d 7b04 ldr.w r7, [sp], #4 + 800461c: 4770 bx lr + +0800461e <_ZN13STM32Hardware10getRdmaIndEv>: + UART_HandleTypeDef *huart; + + const static uint16_t rbuflen = 128; + uint8_t rbuf[rbuflen]; + uint32_t rind; + inline uint32_t getRdmaInd(void){ return (rbuflen - huart->hdmarx->Instance->NDTR) & (rbuflen - 1); } + 800461e: b480 push {r7} + 8004620: b083 sub sp, #12 + 8004622: af00 add r7, sp, #0 + 8004624: 6078 str r0, [r7, #4] + 8004626: 687b ldr r3, [r7, #4] + 8004628: 685b ldr r3, [r3, #4] + 800462a: 6edb ldr r3, [r3, #108] ; 0x6c + 800462c: 681b ldr r3, [r3, #0] + 800462e: 685b ldr r3, [r3, #4] + 8004630: 425b negs r3, r3 + 8004632: f003 037f and.w r3, r3, #127 ; 0x7f + 8004636: 4618 mov r0, r3 + 8004638: 370c adds r7, #12 + 800463a: 46bd mov sp, r7 + 800463c: f85d 7b04 ldr.w r7, [sp], #4 + 8004640: 4770 bx lr + ... + +08004644 <_ZN13STM32HardwareC1Ev>: + const static uint16_t tbuflen = 256; + uint8_t tbuf[tbuflen]; + uint32_t twind, tfind; + + public: + STM32Hardware(): + 8004644: b480 push {r7} + 8004646: b083 sub sp, #12 + 8004648: af00 add r7, sp, #0 + 800464a: 6078 str r0, [r7, #4] + htim(&htim2), huart(&huart3), rind(0), twind(0), tfind(0){ + 800464c: 687b ldr r3, [r7, #4] + 800464e: 4a0c ldr r2, [pc, #48] ; (8004680 <_ZN13STM32HardwareC1Ev+0x3c>) + 8004650: 601a str r2, [r3, #0] + 8004652: 687b ldr r3, [r7, #4] + 8004654: 4a0b ldr r2, [pc, #44] ; (8004684 <_ZN13STM32HardwareC1Ev+0x40>) + 8004656: 605a str r2, [r3, #4] + 8004658: 687b ldr r3, [r7, #4] + 800465a: 2200 movs r2, #0 + 800465c: f8c3 2088 str.w r2, [r3, #136] ; 0x88 + 8004660: 687b ldr r3, [r7, #4] + 8004662: 2200 movs r2, #0 + 8004664: f8c3 218c str.w r2, [r3, #396] ; 0x18c + 8004668: 687b ldr r3, [r7, #4] + 800466a: 2200 movs r2, #0 + 800466c: f8c3 2190 str.w r2, [r3, #400] ; 0x190 + } + 8004670: 687b ldr r3, [r7, #4] + 8004672: 4618 mov r0, r3 + 8004674: 370c adds r7, #12 + 8004676: 46bd mov sp, r7 + 8004678: f85d 7b04 ldr.w r7, [sp], #4 + 800467c: 4770 bx lr + 800467e: bf00 nop + 8004680: 20000094 .word 0x20000094 + 8004684: 200000d4 .word 0x200000d4 + +08004688 <_ZN13STM32Hardware4initEv>: + + STM32Hardware(TIM_HandleTypeDef *htim_, UART_HandleTypeDef *huart_): + htim(htim_), huart(huart_), rind(0), twind(0), tfind(0){ + } + + void init(){ + 8004688: b580 push {r7, lr} + 800468a: b082 sub sp, #8 + 800468c: af00 add r7, sp, #0 + 800468e: 6078 str r0, [r7, #4] + reset_rbuf(); + 8004690: 6878 ldr r0, [r7, #4] + 8004692: f000 f809 bl 80046a8 <_ZN13STM32Hardware10reset_rbufEv> + + HAL_TIM_Base_Start(htim); + 8004696: 687b ldr r3, [r7, #4] + 8004698: 681b ldr r3, [r3, #0] + 800469a: 4618 mov r0, r3 + 800469c: f7fd feba bl 8002414 + } + 80046a0: bf00 nop + 80046a2: 3708 adds r7, #8 + 80046a4: 46bd mov sp, r7 + 80046a6: bd80 pop {r7, pc} + +080046a8 <_ZN13STM32Hardware10reset_rbufEv>: + + void reset_rbuf(void){ + 80046a8: b580 push {r7, lr} + 80046aa: b082 sub sp, #8 + 80046ac: af00 add r7, sp, #0 + 80046ae: 6078 str r0, [r7, #4] + HAL_UART_Receive_DMA(huart, rbuf, rbuflen); + 80046b0: 687b ldr r3, [r7, #4] + 80046b2: 6858 ldr r0, [r3, #4] + 80046b4: 687b ldr r3, [r7, #4] + 80046b6: 3308 adds r3, #8 + 80046b8: 2280 movs r2, #128 ; 0x80 + 80046ba: 4619 mov r1, r3 + 80046bc: f7fe f9ee bl 8002a9c + } + 80046c0: bf00 nop + 80046c2: 3708 adds r7, #8 + 80046c4: 46bd mov sp, r7 + 80046c6: bd80 pop {r7, pc} + +080046c8 <_ZN13STM32Hardware4readEv>: + + int read(){ + 80046c8: b590 push {r4, r7, lr} + 80046ca: b085 sub sp, #20 + 80046cc: af00 add r7, sp, #0 + 80046ce: 6078 str r0, [r7, #4] + int c = -1; + 80046d0: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 80046d4: 60fb str r3, [r7, #12] + if(rind != getRdmaInd()){ + 80046d6: 687b ldr r3, [r7, #4] + 80046d8: f8d3 4088 ldr.w r4, [r3, #136] ; 0x88 + 80046dc: 6878 ldr r0, [r7, #4] + 80046de: f7ff ff9e bl 800461e <_ZN13STM32Hardware10getRdmaIndEv> + 80046e2: 4603 mov r3, r0 + 80046e4: 429c cmp r4, r3 + 80046e6: bf14 ite ne + 80046e8: 2301 movne r3, #1 + 80046ea: 2300 moveq r3, #0 + 80046ec: b2db uxtb r3, r3 + 80046ee: 2b00 cmp r3, #0 + 80046f0: d012 beq.n 8004718 <_ZN13STM32Hardware4readEv+0x50> + c = rbuf[rind++]; + 80046f2: 687b ldr r3, [r7, #4] + 80046f4: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 80046f8: 1c59 adds r1, r3, #1 + 80046fa: 687a ldr r2, [r7, #4] + 80046fc: f8c2 1088 str.w r1, [r2, #136] ; 0x88 + 8004700: 687a ldr r2, [r7, #4] + 8004702: 4413 add r3, r2 + 8004704: 7a1b ldrb r3, [r3, #8] + 8004706: 60fb str r3, [r7, #12] + rind &= rbuflen - 1; + 8004708: 687b ldr r3, [r7, #4] + 800470a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 800470e: f003 027f and.w r2, r3, #127 ; 0x7f + 8004712: 687b ldr r3, [r7, #4] + 8004714: f8c3 2088 str.w r2, [r3, #136] ; 0x88 + } + return c; + 8004718: 68fb ldr r3, [r7, #12] + } + 800471a: 4618 mov r0, r3 + 800471c: 3714 adds r7, #20 + 800471e: 46bd mov sp, r7 + 8004720: bd90 pop {r4, r7, pc} + ... + +08004724 <_ZN13STM32Hardware5flushEv>: + + void flush(void){ + 8004724: b580 push {r7, lr} + 8004726: b084 sub sp, #16 + 8004728: af00 add r7, sp, #0 + 800472a: 6078 str r0, [r7, #4] + static bool mutex = false; + + if((huart->gState == HAL_UART_STATE_READY) && !mutex){ + 800472c: 687b ldr r3, [r7, #4] + 800472e: 685b ldr r3, [r3, #4] + 8004730: 6f5b ldr r3, [r3, #116] ; 0x74 + 8004732: 2b20 cmp r3, #32 + 8004734: d108 bne.n 8004748 <_ZN13STM32Hardware5flushEv+0x24> + 8004736: 4b27 ldr r3, [pc, #156] ; (80047d4 <_ZN13STM32Hardware5flushEv+0xb0>) + 8004738: 781b ldrb r3, [r3, #0] + 800473a: f083 0301 eor.w r3, r3, #1 + 800473e: b2db uxtb r3, r3 + 8004740: 2b00 cmp r3, #0 + 8004742: d001 beq.n 8004748 <_ZN13STM32Hardware5flushEv+0x24> + 8004744: 2301 movs r3, #1 + 8004746: e000 b.n 800474a <_ZN13STM32Hardware5flushEv+0x26> + 8004748: 2300 movs r3, #0 + 800474a: 2b00 cmp r3, #0 + 800474c: d03e beq.n 80047cc <_ZN13STM32Hardware5flushEv+0xa8> + mutex = true; + 800474e: 4b21 ldr r3, [pc, #132] ; (80047d4 <_ZN13STM32Hardware5flushEv+0xb0>) + 8004750: 2201 movs r2, #1 + 8004752: 701a strb r2, [r3, #0] + + if(twind != tfind){ + 8004754: 687b ldr r3, [r7, #4] + 8004756: f8d3 218c ldr.w r2, [r3, #396] ; 0x18c + 800475a: 687b ldr r3, [r7, #4] + 800475c: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 + 8004760: 429a cmp r2, r3 + 8004762: d030 beq.n 80047c6 <_ZN13STM32Hardware5flushEv+0xa2> + uint16_t len = tfind < twind ? twind - tfind : tbuflen - tfind; + 8004764: 687b ldr r3, [r7, #4] + 8004766: f8d3 2190 ldr.w r2, [r3, #400] ; 0x190 + 800476a: 687b ldr r3, [r7, #4] + 800476c: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c + 8004770: 429a cmp r2, r3 + 8004772: d20a bcs.n 800478a <_ZN13STM32Hardware5flushEv+0x66> + 8004774: 687b ldr r3, [r7, #4] + 8004776: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c + 800477a: b29a uxth r2, r3 + 800477c: 687b ldr r3, [r7, #4] + 800477e: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 + 8004782: b29b uxth r3, r3 + 8004784: 1ad3 subs r3, r2, r3 + 8004786: b29b uxth r3, r3 + 8004788: e006 b.n 8004798 <_ZN13STM32Hardware5flushEv+0x74> + 800478a: 687b ldr r3, [r7, #4] + 800478c: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 + 8004790: b29b uxth r3, r3 + 8004792: f5c3 7380 rsb r3, r3, #256 ; 0x100 + 8004796: b29b uxth r3, r3 + 8004798: 81fb strh r3, [r7, #14] + HAL_UART_Transmit_DMA(huart, &(tbuf[tfind]), len); + 800479a: 687b ldr r3, [r7, #4] + 800479c: 6858 ldr r0, [r3, #4] + 800479e: 687b ldr r3, [r7, #4] + 80047a0: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 + 80047a4: 3388 adds r3, #136 ; 0x88 + 80047a6: 687a ldr r2, [r7, #4] + 80047a8: 4413 add r3, r2 + 80047aa: 3304 adds r3, #4 + 80047ac: 89fa ldrh r2, [r7, #14] + 80047ae: 4619 mov r1, r3 + 80047b0: f7fe f8f8 bl 80029a4 + tfind = (tfind + len) & (tbuflen - 1); + 80047b4: 687b ldr r3, [r7, #4] + 80047b6: f8d3 2190 ldr.w r2, [r3, #400] ; 0x190 + 80047ba: 89fb ldrh r3, [r7, #14] + 80047bc: 4413 add r3, r2 + 80047be: b2da uxtb r2, r3 + 80047c0: 687b ldr r3, [r7, #4] + 80047c2: f8c3 2190 str.w r2, [r3, #400] ; 0x190 + } + mutex = false; + 80047c6: 4b03 ldr r3, [pc, #12] ; (80047d4 <_ZN13STM32Hardware5flushEv+0xb0>) + 80047c8: 2200 movs r2, #0 + 80047ca: 701a strb r2, [r3, #0] + } + } + 80047cc: bf00 nop + 80047ce: 3710 adds r7, #16 + 80047d0: 46bd mov sp, r7 + 80047d2: bd80 pop {r7, pc} + 80047d4: 20000090 .word 0x20000090 + +080047d8 <_ZN13STM32Hardware5writeEPhi>: + + void write(uint8_t* data, int length){ + 80047d8: b580 push {r7, lr} + 80047da: b086 sub sp, #24 + 80047dc: af00 add r7, sp, #0 + 80047de: 60f8 str r0, [r7, #12] + 80047e0: 60b9 str r1, [r7, #8] + 80047e2: 607a str r2, [r7, #4] + + + int n = length; + 80047e4: 687b ldr r3, [r7, #4] + 80047e6: 617b str r3, [r7, #20] + n = n <= tbuflen ? n : tbuflen; + 80047e8: 697b ldr r3, [r7, #20] + 80047ea: f5b3 7f80 cmp.w r3, #256 ; 0x100 + 80047ee: bfa8 it ge + 80047f0: f44f 7380 movge.w r3, #256 ; 0x100 + 80047f4: 617b str r3, [r7, #20] + + int n_tail = n <= tbuflen - twind ? n : tbuflen - twind; + 80047f6: 68fb ldr r3, [r7, #12] + 80047f8: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c + 80047fc: f5c3 7280 rsb r2, r3, #256 ; 0x100 + 8004800: 697b ldr r3, [r7, #20] + 8004802: 4293 cmp r3, r2 + 8004804: bf28 it cs + 8004806: 4613 movcs r3, r2 + 8004808: 613b str r3, [r7, #16] + memcpy(&(tbuf[twind]), data, n_tail); + 800480a: 68fb ldr r3, [r7, #12] + 800480c: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c + 8004810: 3388 adds r3, #136 ; 0x88 + 8004812: 68fa ldr r2, [r7, #12] + 8004814: 4413 add r3, r2 + 8004816: 3304 adds r3, #4 + 8004818: 693a ldr r2, [r7, #16] + 800481a: 68b9 ldr r1, [r7, #8] + 800481c: 4618 mov r0, r3 + 800481e: f001 f987 bl 8005b30 + twind = (twind + n) & (tbuflen - 1); + 8004822: 68fb ldr r3, [r7, #12] + 8004824: f8d3 218c ldr.w r2, [r3, #396] ; 0x18c + 8004828: 697b ldr r3, [r7, #20] + 800482a: 4413 add r3, r2 + 800482c: b2da uxtb r2, r3 + 800482e: 68fb ldr r3, [r7, #12] + 8004830: f8c3 218c str.w r2, [r3, #396] ; 0x18c + + if(n != n_tail){ + 8004834: 697a ldr r2, [r7, #20] + 8004836: 693b ldr r3, [r7, #16] + 8004838: 429a cmp r2, r3 + 800483a: d00b beq.n 8004854 <_ZN13STM32Hardware5writeEPhi+0x7c> + memcpy(tbuf, &(data[n_tail]), n - n_tail); + 800483c: 68fb ldr r3, [r7, #12] + 800483e: f103 008c add.w r0, r3, #140 ; 0x8c + 8004842: 693b ldr r3, [r7, #16] + 8004844: 68ba ldr r2, [r7, #8] + 8004846: 18d1 adds r1, r2, r3 + 8004848: 697a ldr r2, [r7, #20] + 800484a: 693b ldr r3, [r7, #16] + 800484c: 1ad3 subs r3, r2, r3 + 800484e: 461a mov r2, r3 + 8004850: f001 f96e bl 8005b30 + } + + flush(); + 8004854: 68f8 ldr r0, [r7, #12] + 8004856: f7ff ff65 bl 8004724 <_ZN13STM32Hardware5flushEv> + } + 800485a: bf00 nop + 800485c: 3718 adds r7, #24 + 800485e: 46bd mov sp, r7 + 8004860: bd80 pop {r7, pc} + +08004862 <_ZN13STM32Hardware4timeEv>: + + unsigned long time(){ return HAL_GetTick(); } + 8004862: b580 push {r7, lr} + 8004864: b082 sub sp, #8 + 8004866: af00 add r7, sp, #0 + 8004868: 6078 str r0, [r7, #4] + 800486a: f7fb febf bl 80005ec + 800486e: 4603 mov r3, r0 + 8004870: 4618 mov r0, r3 + 8004872: 3708 adds r7, #8 + 8004874: 46bd mov sp, r7 + 8004876: bd80 pop {r7, pc} + +08004878
: +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + 8004878: b590 push {r4, r7, lr} + 800487a: f2ad 6df4 subw sp, sp, #1780 ; 0x6f4 + 800487e: af00 add r7, sp, #0 + + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + 8004880: f7fb fe62 bl 8000548 + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + 8004884: f000 f848 bl 8004918 <_Z18SystemClock_Configv> + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + 8004888: f000 f986 bl 8004b98 <_ZL12MX_GPIO_Initv> + MX_DMA_Init(); + 800488c: f000 f95e bl 8004b4c <_ZL11MX_DMA_Initv> + MX_TIM2_Init(); + 8004890: f000 f8cc bl 8004a2c <_ZL12MX_TIM2_Initv> + MX_USART3_UART_Init(); + 8004894: f000 f926 bl 8004ae4 <_ZL19MX_USART3_UART_Initv> + /* USER CODE BEGIN 2 */ + ros::NodeHandle nh; + 8004898: f107 0330 add.w r3, r7, #48 ; 0x30 + 800489c: 4618 mov r0, r3 + 800489e: f000 f9ed bl 8004c7c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev> + + std_msgs::String str_msg; + 80048a2: f107 0328 add.w r3, r7, #40 ; 0x28 + 80048a6: 4618 mov r0, r3 + 80048a8: f7fe ffae bl 8003808 <_ZN8std_msgs6StringC1Ev> + ros::Publisher chatter("chatter", &str_msg); + 80048ac: f107 0228 add.w r2, r7, #40 ; 0x28 + 80048b0: f107 0014 add.w r0, r7, #20 + 80048b4: 2300 movs r3, #0 + 80048b6: 4916 ldr r1, [pc, #88] ; (8004910 ) + 80048b8: f7ff fe7a bl 80045b0 <_ZN3ros9PublisherC1EPKcPNS_3MsgEi> + char hello[] = "Hello world!"; + 80048bc: 1d3b adds r3, r7, #4 + 80048be: 4a15 ldr r2, [pc, #84] ; (8004914 ) + 80048c0: 461c mov r4, r3 + 80048c2: 4613 mov r3, r2 + 80048c4: cb0f ldmia r3, {r0, r1, r2, r3} + 80048c6: c407 stmia r4!, {r0, r1, r2} + 80048c8: 7023 strb r3, [r4, #0] + + nh.initNode(); + 80048ca: f107 0330 add.w r3, r7, #48 ; 0x30 + 80048ce: 4618 mov r0, r3 + 80048d0: f000 fa54 bl 8004d7c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8initNodeEv> + nh.advertise(chatter); + 80048d4: f107 0214 add.w r2, r7, #20 + 80048d8: f107 0330 add.w r3, r7, #48 ; 0x30 + 80048dc: 4611 mov r1, r2 + 80048de: 4618 mov r0, r3 + 80048e0: f000 fa69 bl 8004db6 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9advertiseERNS_9PublisherE> + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) { + + + str_msg.data = hello; + 80048e4: f107 0328 add.w r3, r7, #40 ; 0x28 + 80048e8: 1d3a adds r2, r7, #4 + 80048ea: 605a str r2, [r3, #4] + chatter.publish(&str_msg); + 80048ec: f107 0228 add.w r2, r7, #40 ; 0x28 + 80048f0: f107 0314 add.w r3, r7, #20 + 80048f4: 4611 mov r1, r2 + 80048f6: 4618 mov r0, r3 + 80048f8: f7ff fe71 bl 80045de <_ZN3ros9Publisher7publishEPKNS_3MsgE> + nh.spinOnce(); + 80048fc: f107 0330 add.w r3, r7, #48 ; 0x30 + 8004900: 4618 mov r0, r3 + 8004902: f000 fa86 bl 8004e12 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv> + + //HAL_UART_Transmit(&huart3, (uint8_t*)hello, strlen(hello), 100); + + + HAL_Delay(1000); + 8004906: f44f 707a mov.w r0, #1000 ; 0x3e8 + 800490a: f7fb fe7b bl 8000604 + str_msg.data = hello; + 800490e: e7e9 b.n 80048e4 + 8004910: 08005ee0 .word 0x08005ee0 + 8004914: 08005ee8 .word 0x08005ee8 + +08004918 <_Z18SystemClock_Configv>: +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + 8004918: b580 push {r7, lr} + 800491a: b0b8 sub sp, #224 ; 0xe0 + 800491c: af00 add r7, sp, #0 + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + 800491e: f107 03ac add.w r3, r7, #172 ; 0xac + 8004922: 2234 movs r2, #52 ; 0x34 + 8004924: 2100 movs r1, #0 + 8004926: 4618 mov r0, r3 + 8004928: f001 f90d bl 8005b46 + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + 800492c: f107 0398 add.w r3, r7, #152 ; 0x98 + 8004930: 2200 movs r2, #0 + 8004932: 601a str r2, [r3, #0] + 8004934: 605a str r2, [r3, #4] + 8004936: 609a str r2, [r3, #8] + 8004938: 60da str r2, [r3, #12] + 800493a: 611a str r2, [r3, #16] + RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; + 800493c: f107 0308 add.w r3, r7, #8 + 8004940: 2290 movs r2, #144 ; 0x90 + 8004942: 2100 movs r1, #0 + 8004944: 4618 mov r0, r3 + 8004946: f001 f8fe bl 8005b46 + + /** Configure the main internal regulator output voltage + */ + __HAL_RCC_PWR_CLK_ENABLE(); + 800494a: 4b36 ldr r3, [pc, #216] ; (8004a24 <_Z18SystemClock_Configv+0x10c>) + 800494c: 6c1b ldr r3, [r3, #64] ; 0x40 + 800494e: 4a35 ldr r2, [pc, #212] ; (8004a24 <_Z18SystemClock_Configv+0x10c>) + 8004950: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 8004954: 6413 str r3, [r2, #64] ; 0x40 + 8004956: 4b33 ldr r3, [pc, #204] ; (8004a24 <_Z18SystemClock_Configv+0x10c>) + 8004958: 6c1b ldr r3, [r3, #64] ; 0x40 + 800495a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 800495e: 607b str r3, [r7, #4] + 8004960: 687b ldr r3, [r7, #4] + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3); + 8004962: 4b31 ldr r3, [pc, #196] ; (8004a28 <_Z18SystemClock_Configv+0x110>) + 8004964: 681b ldr r3, [r3, #0] + 8004966: f423 4340 bic.w r3, r3, #49152 ; 0xc000 + 800496a: 4a2f ldr r2, [pc, #188] ; (8004a28 <_Z18SystemClock_Configv+0x110>) + 800496c: f443 4380 orr.w r3, r3, #16384 ; 0x4000 + 8004970: 6013 str r3, [r2, #0] + 8004972: 4b2d ldr r3, [pc, #180] ; (8004a28 <_Z18SystemClock_Configv+0x110>) + 8004974: 681b ldr r3, [r3, #0] + 8004976: f403 4340 and.w r3, r3, #49152 ; 0xc000 + 800497a: 603b str r3, [r7, #0] + 800497c: 683b ldr r3, [r7, #0] + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + 800497e: 2302 movs r3, #2 + 8004980: f8c7 30ac str.w r3, [r7, #172] ; 0xac + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + 8004984: 2301 movs r3, #1 + 8004986: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8 + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + 800498a: 2310 movs r3, #16 + 800498c: f8c7 30bc str.w r3, [r7, #188] ; 0xbc + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; + 8004990: 2300 movs r3, #0 + 8004992: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + 8004996: f107 03ac add.w r3, r7, #172 ; 0xac + 800499a: 4618 mov r0, r3 + 800499c: f7fc fca8 bl 80012f0 + 80049a0: 4603 mov r3, r0 + 80049a2: 2b00 cmp r3, #0 + 80049a4: bf14 ite ne + 80049a6: 2301 movne r3, #1 + 80049a8: 2300 moveq r3, #0 + 80049aa: b2db uxtb r3, r3 + 80049ac: 2b00 cmp r3, #0 + 80049ae: d001 beq.n 80049b4 <_Z18SystemClock_Configv+0x9c> + { + Error_Handler(); + 80049b0: f000 f90a bl 8004bc8 + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + 80049b4: 230f movs r3, #15 + 80049b6: f8c7 3098 str.w r3, [r7, #152] ; 0x98 + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; + 80049ba: 2300 movs r3, #0 + 80049bc: f8c7 309c str.w r3, [r7, #156] ; 0x9c + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + 80049c0: 2300 movs r3, #0 + 80049c2: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + 80049c6: 2300 movs r3, #0 + 80049c8: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + 80049cc: 2300 movs r3, #0 + 80049ce: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) + 80049d2: f107 0398 add.w r3, r7, #152 ; 0x98 + 80049d6: 2100 movs r1, #0 + 80049d8: 4618 mov r0, r3 + 80049da: f7fc fefb bl 80017d4 + 80049de: 4603 mov r3, r0 + 80049e0: 2b00 cmp r3, #0 + 80049e2: bf14 ite ne + 80049e4: 2301 movne r3, #1 + 80049e6: 2300 moveq r3, #0 + 80049e8: b2db uxtb r3, r3 + 80049ea: 2b00 cmp r3, #0 + 80049ec: d001 beq.n 80049f2 <_Z18SystemClock_Configv+0xda> + { + Error_Handler(); + 80049ee: f000 f8eb bl 8004bc8 + } + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3; + 80049f2: f44f 7380 mov.w r3, #256 ; 0x100 + 80049f6: 60bb str r3, [r7, #8] + PeriphClkInitStruct.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1; + 80049f8: 2300 movs r3, #0 + 80049fa: 657b str r3, [r7, #84] ; 0x54 + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) + 80049fc: f107 0308 add.w r3, r7, #8 + 8004a00: 4618 mov r0, r3 + 8004a02: f7fd f8b5 bl 8001b70 + 8004a06: 4603 mov r3, r0 + 8004a08: 2b00 cmp r3, #0 + 8004a0a: bf14 ite ne + 8004a0c: 2301 movne r3, #1 + 8004a0e: 2300 moveq r3, #0 + 8004a10: b2db uxtb r3, r3 + 8004a12: 2b00 cmp r3, #0 + 8004a14: d001 beq.n 8004a1a <_Z18SystemClock_Configv+0x102> + { + Error_Handler(); + 8004a16: f000 f8d7 bl 8004bc8 + } +} + 8004a1a: bf00 nop + 8004a1c: 37e0 adds r7, #224 ; 0xe0 + 8004a1e: 46bd mov sp, r7 + 8004a20: bd80 pop {r7, pc} + 8004a22: bf00 nop + 8004a24: 40023800 .word 0x40023800 + 8004a28: 40007000 .word 0x40007000 + +08004a2c <_ZL12MX_TIM2_Initv>: + * @brief TIM2 Initialization Function + * @param None + * @retval None + */ +static void MX_TIM2_Init(void) +{ + 8004a2c: b580 push {r7, lr} + 8004a2e: b088 sub sp, #32 + 8004a30: af00 add r7, sp, #0 + + /* USER CODE BEGIN TIM2_Init 0 */ + + /* USER CODE END TIM2_Init 0 */ + + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + 8004a32: f107 0310 add.w r3, r7, #16 + 8004a36: 2200 movs r2, #0 + 8004a38: 601a str r2, [r3, #0] + 8004a3a: 605a str r2, [r3, #4] + 8004a3c: 609a str r2, [r3, #8] + 8004a3e: 60da str r2, [r3, #12] + TIM_MasterConfigTypeDef sMasterConfig = {0}; + 8004a40: 1d3b adds r3, r7, #4 + 8004a42: 2200 movs r2, #0 + 8004a44: 601a str r2, [r3, #0] + 8004a46: 605a str r2, [r3, #4] + 8004a48: 609a str r2, [r3, #8] + + /* USER CODE BEGIN TIM2_Init 1 */ + + /* USER CODE END TIM2_Init 1 */ + htim2.Instance = TIM2; + 8004a4a: 4b25 ldr r3, [pc, #148] ; (8004ae0 <_ZL12MX_TIM2_Initv+0xb4>) + 8004a4c: f04f 4280 mov.w r2, #1073741824 ; 0x40000000 + 8004a50: 601a str r2, [r3, #0] + htim2.Init.Prescaler = 0; + 8004a52: 4b23 ldr r3, [pc, #140] ; (8004ae0 <_ZL12MX_TIM2_Initv+0xb4>) + 8004a54: 2200 movs r2, #0 + 8004a56: 605a str r2, [r3, #4] + htim2.Init.CounterMode = TIM_COUNTERMODE_UP; + 8004a58: 4b21 ldr r3, [pc, #132] ; (8004ae0 <_ZL12MX_TIM2_Initv+0xb4>) + 8004a5a: 2200 movs r2, #0 + 8004a5c: 609a str r2, [r3, #8] + htim2.Init.Period = 0; + 8004a5e: 4b20 ldr r3, [pc, #128] ; (8004ae0 <_ZL12MX_TIM2_Initv+0xb4>) + 8004a60: 2200 movs r2, #0 + 8004a62: 60da str r2, [r3, #12] + htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + 8004a64: 4b1e ldr r3, [pc, #120] ; (8004ae0 <_ZL12MX_TIM2_Initv+0xb4>) + 8004a66: 2200 movs r2, #0 + 8004a68: 611a str r2, [r3, #16] + htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + 8004a6a: 4b1d ldr r3, [pc, #116] ; (8004ae0 <_ZL12MX_TIM2_Initv+0xb4>) + 8004a6c: 2200 movs r2, #0 + 8004a6e: 619a str r2, [r3, #24] + if (HAL_TIM_Base_Init(&htim2) != HAL_OK) + 8004a70: 481b ldr r0, [pc, #108] ; (8004ae0 <_ZL12MX_TIM2_Initv+0xb4>) + 8004a72: f7fd fca3 bl 80023bc + 8004a76: 4603 mov r3, r0 + 8004a78: 2b00 cmp r3, #0 + 8004a7a: bf14 ite ne + 8004a7c: 2301 movne r3, #1 + 8004a7e: 2300 moveq r3, #0 + 8004a80: b2db uxtb r3, r3 + 8004a82: 2b00 cmp r3, #0 + 8004a84: d001 beq.n 8004a8a <_ZL12MX_TIM2_Initv+0x5e> + { + Error_Handler(); + 8004a86: f000 f89f bl 8004bc8 + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + 8004a8a: f44f 5380 mov.w r3, #4096 ; 0x1000 + 8004a8e: 613b str r3, [r7, #16] + if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) + 8004a90: f107 0310 add.w r3, r7, #16 + 8004a94: 4619 mov r1, r3 + 8004a96: 4812 ldr r0, [pc, #72] ; (8004ae0 <_ZL12MX_TIM2_Initv+0xb4>) + 8004a98: f7fd fce6 bl 8002468 + 8004a9c: 4603 mov r3, r0 + 8004a9e: 2b00 cmp r3, #0 + 8004aa0: bf14 ite ne + 8004aa2: 2301 movne r3, #1 + 8004aa4: 2300 moveq r3, #0 + 8004aa6: b2db uxtb r3, r3 + 8004aa8: 2b00 cmp r3, #0 + 8004aaa: d001 beq.n 8004ab0 <_ZL12MX_TIM2_Initv+0x84> + { + Error_Handler(); + 8004aac: f000 f88c bl 8004bc8 + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + 8004ab0: 2300 movs r3, #0 + 8004ab2: 607b str r3, [r7, #4] + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + 8004ab4: 2300 movs r3, #0 + 8004ab6: 60fb str r3, [r7, #12] + if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) + 8004ab8: 1d3b adds r3, r7, #4 + 8004aba: 4619 mov r1, r3 + 8004abc: 4808 ldr r0, [pc, #32] ; (8004ae0 <_ZL12MX_TIM2_Initv+0xb4>) + 8004abe: f7fd fec7 bl 8002850 + 8004ac2: 4603 mov r3, r0 + 8004ac4: 2b00 cmp r3, #0 + 8004ac6: bf14 ite ne + 8004ac8: 2301 movne r3, #1 + 8004aca: 2300 moveq r3, #0 + 8004acc: b2db uxtb r3, r3 + 8004ace: 2b00 cmp r3, #0 + 8004ad0: d001 beq.n 8004ad6 <_ZL12MX_TIM2_Initv+0xaa> + { + Error_Handler(); + 8004ad2: f000 f879 bl 8004bc8 + } + /* USER CODE BEGIN TIM2_Init 2 */ + + /* USER CODE END TIM2_Init 2 */ + +} + 8004ad6: bf00 nop + 8004ad8: 3720 adds r7, #32 + 8004ada: 46bd mov sp, r7 + 8004adc: bd80 pop {r7, pc} + 8004ade: bf00 nop + 8004ae0: 20000094 .word 0x20000094 + +08004ae4 <_ZL19MX_USART3_UART_Initv>: + * @brief USART3 Initialization Function + * @param None + * @retval None + */ +static void MX_USART3_UART_Init(void) +{ + 8004ae4: b580 push {r7, lr} + 8004ae6: af00 add r7, sp, #0 + /* USER CODE END USART3_Init 0 */ + + /* USER CODE BEGIN USART3_Init 1 */ + + /* USER CODE END USART3_Init 1 */ + huart3.Instance = USART3; + 8004ae8: 4b16 ldr r3, [pc, #88] ; (8004b44 <_ZL19MX_USART3_UART_Initv+0x60>) + 8004aea: 4a17 ldr r2, [pc, #92] ; (8004b48 <_ZL19MX_USART3_UART_Initv+0x64>) + 8004aec: 601a str r2, [r3, #0] + huart3.Init.BaudRate = 115200; + 8004aee: 4b15 ldr r3, [pc, #84] ; (8004b44 <_ZL19MX_USART3_UART_Initv+0x60>) + 8004af0: f44f 32e1 mov.w r2, #115200 ; 0x1c200 + 8004af4: 605a str r2, [r3, #4] + huart3.Init.WordLength = UART_WORDLENGTH_8B; + 8004af6: 4b13 ldr r3, [pc, #76] ; (8004b44 <_ZL19MX_USART3_UART_Initv+0x60>) + 8004af8: 2200 movs r2, #0 + 8004afa: 609a str r2, [r3, #8] + huart3.Init.StopBits = UART_STOPBITS_1; + 8004afc: 4b11 ldr r3, [pc, #68] ; (8004b44 <_ZL19MX_USART3_UART_Initv+0x60>) + 8004afe: 2200 movs r2, #0 + 8004b00: 60da str r2, [r3, #12] + huart3.Init.Parity = UART_PARITY_NONE; + 8004b02: 4b10 ldr r3, [pc, #64] ; (8004b44 <_ZL19MX_USART3_UART_Initv+0x60>) + 8004b04: 2200 movs r2, #0 + 8004b06: 611a str r2, [r3, #16] + huart3.Init.Mode = UART_MODE_TX_RX; + 8004b08: 4b0e ldr r3, [pc, #56] ; (8004b44 <_ZL19MX_USART3_UART_Initv+0x60>) + 8004b0a: 220c movs r2, #12 + 8004b0c: 615a str r2, [r3, #20] + huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; + 8004b0e: 4b0d ldr r3, [pc, #52] ; (8004b44 <_ZL19MX_USART3_UART_Initv+0x60>) + 8004b10: 2200 movs r2, #0 + 8004b12: 619a str r2, [r3, #24] + huart3.Init.OverSampling = UART_OVERSAMPLING_16; + 8004b14: 4b0b ldr r3, [pc, #44] ; (8004b44 <_ZL19MX_USART3_UART_Initv+0x60>) + 8004b16: 2200 movs r2, #0 + 8004b18: 61da str r2, [r3, #28] + huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + 8004b1a: 4b0a ldr r3, [pc, #40] ; (8004b44 <_ZL19MX_USART3_UART_Initv+0x60>) + 8004b1c: 2200 movs r2, #0 + 8004b1e: 621a str r2, [r3, #32] + huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + 8004b20: 4b08 ldr r3, [pc, #32] ; (8004b44 <_ZL19MX_USART3_UART_Initv+0x60>) + 8004b22: 2200 movs r2, #0 + 8004b24: 625a str r2, [r3, #36] ; 0x24 + if (HAL_UART_Init(&huart3) != HAL_OK) + 8004b26: 4807 ldr r0, [pc, #28] ; (8004b44 <_ZL19MX_USART3_UART_Initv+0x60>) + 8004b28: f7fd feee bl 8002908 + 8004b2c: 4603 mov r3, r0 + 8004b2e: 2b00 cmp r3, #0 + 8004b30: bf14 ite ne + 8004b32: 2301 movne r3, #1 + 8004b34: 2300 moveq r3, #0 + 8004b36: b2db uxtb r3, r3 + 8004b38: 2b00 cmp r3, #0 + 8004b3a: d001 beq.n 8004b40 <_ZL19MX_USART3_UART_Initv+0x5c> + { + Error_Handler(); + 8004b3c: f000 f844 bl 8004bc8 + } + /* USER CODE BEGIN USART3_Init 2 */ + + /* USER CODE END USART3_Init 2 */ + +} + 8004b40: bf00 nop + 8004b42: bd80 pop {r7, pc} + 8004b44: 200000d4 .word 0x200000d4 + 8004b48: 40004800 .word 0x40004800 + +08004b4c <_ZL11MX_DMA_Initv>: + +/** + * Enable DMA controller clock + */ +static void MX_DMA_Init(void) +{ + 8004b4c: b580 push {r7, lr} + 8004b4e: b082 sub sp, #8 + 8004b50: af00 add r7, sp, #0 + + /* DMA controller clock enable */ + __HAL_RCC_DMA1_CLK_ENABLE(); + 8004b52: 4b10 ldr r3, [pc, #64] ; (8004b94 <_ZL11MX_DMA_Initv+0x48>) + 8004b54: 6b1b ldr r3, [r3, #48] ; 0x30 + 8004b56: 4a0f ldr r2, [pc, #60] ; (8004b94 <_ZL11MX_DMA_Initv+0x48>) + 8004b58: f443 1300 orr.w r3, r3, #2097152 ; 0x200000 + 8004b5c: 6313 str r3, [r2, #48] ; 0x30 + 8004b5e: 4b0d ldr r3, [pc, #52] ; (8004b94 <_ZL11MX_DMA_Initv+0x48>) + 8004b60: 6b1b ldr r3, [r3, #48] ; 0x30 + 8004b62: f403 1300 and.w r3, r3, #2097152 ; 0x200000 + 8004b66: 607b str r3, [r7, #4] + 8004b68: 687b ldr r3, [r7, #4] + + /* DMA interrupt init */ + /* DMA1_Stream1_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0); + 8004b6a: 2200 movs r2, #0 + 8004b6c: 2100 movs r1, #0 + 8004b6e: 200c movs r0, #12 + 8004b70: f7fb fe45 bl 80007fe + HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn); + 8004b74: 200c movs r0, #12 + 8004b76: f7fb fe5e bl 8000836 + /* DMA1_Stream3_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Stream3_IRQn, 0, 0); + 8004b7a: 2200 movs r2, #0 + 8004b7c: 2100 movs r1, #0 + 8004b7e: 200e movs r0, #14 + 8004b80: f7fb fe3d bl 80007fe + HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn); + 8004b84: 200e movs r0, #14 + 8004b86: f7fb fe56 bl 8000836 + +} + 8004b8a: bf00 nop + 8004b8c: 3708 adds r7, #8 + 8004b8e: 46bd mov sp, r7 + 8004b90: bd80 pop {r7, pc} + 8004b92: bf00 nop + 8004b94: 40023800 .word 0x40023800 + +08004b98 <_ZL12MX_GPIO_Initv>: + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + 8004b98: b480 push {r7} + 8004b9a: b083 sub sp, #12 + 8004b9c: af00 add r7, sp, #0 + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOD_CLK_ENABLE(); + 8004b9e: 4b09 ldr r3, [pc, #36] ; (8004bc4 <_ZL12MX_GPIO_Initv+0x2c>) + 8004ba0: 6b1b ldr r3, [r3, #48] ; 0x30 + 8004ba2: 4a08 ldr r2, [pc, #32] ; (8004bc4 <_ZL12MX_GPIO_Initv+0x2c>) + 8004ba4: f043 0308 orr.w r3, r3, #8 + 8004ba8: 6313 str r3, [r2, #48] ; 0x30 + 8004baa: 4b06 ldr r3, [pc, #24] ; (8004bc4 <_ZL12MX_GPIO_Initv+0x2c>) + 8004bac: 6b1b ldr r3, [r3, #48] ; 0x30 + 8004bae: f003 0308 and.w r3, r3, #8 + 8004bb2: 607b str r3, [r7, #4] + 8004bb4: 687b ldr r3, [r7, #4] + +} + 8004bb6: bf00 nop + 8004bb8: 370c adds r7, #12 + 8004bba: 46bd mov sp, r7 + 8004bbc: f85d 7b04 ldr.w r7, [sp], #4 + 8004bc0: 4770 bx lr + 8004bc2: bf00 nop + 8004bc4: 40023800 .word 0x40023800 + +08004bc8 : +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + 8004bc8: b480 push {r7} + 8004bca: af00 add r7, sp, #0 + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + + /* USER CODE END Error_Handler_Debug */ +} + 8004bcc: bf00 nop + 8004bce: 46bd mov sp, r7 + 8004bd0: f85d 7b04 ldr.w r7, [sp], #4 + 8004bd4: 4770 bx lr + +08004bd6 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_>: + return 8; + } + + // Copy data from variable into a byte array + template + static void varToArr(A arr, const V var) + 8004bd6: b480 push {r7} + 8004bd8: b085 sub sp, #20 + 8004bda: af00 add r7, sp, #0 + 8004bdc: 6078 str r0, [r7, #4] + 8004bde: 6039 str r1, [r7, #0] + { + for (size_t i = 0; i < sizeof(V); i++) + 8004be0: 2300 movs r3, #0 + 8004be2: 60fb str r3, [r7, #12] + 8004be4: 68fb ldr r3, [r7, #12] + 8004be6: 2b03 cmp r3, #3 + 8004be8: d80d bhi.n 8004c06 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_+0x30> + arr[i] = (var >> (8 * i)); + 8004bea: 68fb ldr r3, [r7, #12] + 8004bec: 00db lsls r3, r3, #3 + 8004bee: 683a ldr r2, [r7, #0] + 8004bf0: fa22 f103 lsr.w r1, r2, r3 + 8004bf4: 687a ldr r2, [r7, #4] + 8004bf6: 68fb ldr r3, [r7, #12] + 8004bf8: 4413 add r3, r2 + 8004bfa: b2ca uxtb r2, r1 + 8004bfc: 701a strb r2, [r3, #0] + for (size_t i = 0; i < sizeof(V); i++) + 8004bfe: 68fb ldr r3, [r7, #12] + 8004c00: 3301 adds r3, #1 + 8004c02: 60fb str r3, [r7, #12] + 8004c04: e7ee b.n 8004be4 <_ZN3ros3Msg8varToArrIPhmEEvT_T0_+0xe> + } + 8004c06: bf00 nop + 8004c08: 3714 adds r7, #20 + 8004c0a: 46bd mov sp, r7 + 8004c0c: f85d 7b04 ldr.w r7, [sp], #4 + 8004c10: 4770 bx lr + +08004c12 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_>: + + // Copy data from a byte array into variable + template + static void arrToVar(V& var, const A arr) + 8004c12: b480 push {r7} + 8004c14: b085 sub sp, #20 + 8004c16: af00 add r7, sp, #0 + 8004c18: 6078 str r0, [r7, #4] + 8004c1a: 6039 str r1, [r7, #0] + { + var = 0; + 8004c1c: 687b ldr r3, [r7, #4] + 8004c1e: 2200 movs r2, #0 + 8004c20: 601a str r2, [r3, #0] + for (size_t i = 0; i < sizeof(V); i++) + 8004c22: 2300 movs r3, #0 + 8004c24: 60fb str r3, [r7, #12] + 8004c26: 68fb ldr r3, [r7, #12] + 8004c28: 2b03 cmp r3, #3 + 8004c2a: d811 bhi.n 8004c50 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_+0x3e> + var |= (arr[i] << (8 * i)); + 8004c2c: 687b ldr r3, [r7, #4] + 8004c2e: 681b ldr r3, [r3, #0] + 8004c30: 6839 ldr r1, [r7, #0] + 8004c32: 68fa ldr r2, [r7, #12] + 8004c34: 440a add r2, r1 + 8004c36: 7812 ldrb r2, [r2, #0] + 8004c38: 4611 mov r1, r2 + 8004c3a: 68fa ldr r2, [r7, #12] + 8004c3c: 00d2 lsls r2, r2, #3 + 8004c3e: fa01 f202 lsl.w r2, r1, r2 + 8004c42: 431a orrs r2, r3 + 8004c44: 687b ldr r3, [r7, #4] + 8004c46: 601a str r2, [r3, #0] + for (size_t i = 0; i < sizeof(V); i++) + 8004c48: 68fb ldr r3, [r7, #12] + 8004c4a: 3301 adds r3, #1 + 8004c4c: 60fb str r3, [r7, #12] + 8004c4e: e7ea b.n 8004c26 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_+0x14> + } + 8004c50: bf00 nop + 8004c52: 3714 adds r7, #20 + 8004c54: 46bd mov sp, r7 + 8004c56: f85d 7b04 ldr.w r7, [sp], #4 + 8004c5a: 4770 bx lr + +08004c5c <_ZN3ros15NodeHandleBase_C1Ev>: +#include "ros/msg.h" + +namespace ros +{ + +class NodeHandleBase_ + 8004c5c: b480 push {r7} + 8004c5e: b083 sub sp, #12 + 8004c60: af00 add r7, sp, #0 + 8004c62: 6078 str r0, [r7, #4] + 8004c64: 4a04 ldr r2, [pc, #16] ; (8004c78 <_ZN3ros15NodeHandleBase_C1Ev+0x1c>) + 8004c66: 687b ldr r3, [r7, #4] + 8004c68: 601a str r2, [r3, #0] + 8004c6a: 687b ldr r3, [r7, #4] + 8004c6c: 4618 mov r0, r3 + 8004c6e: 370c adds r7, #12 + 8004c70: 46bd mov sp, r7 + 8004c72: f85d 7b04 ldr.w r7, [sp], #4 + 8004c76: 4770 bx lr + 8004c78: 08005f74 .word 0x08005f74 + +08004c7c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev>: + + /* + * Setup Functions + */ +public: + NodeHandle_() : configured_(false) + 8004c7c: b580 push {r7, lr} + 8004c7e: b086 sub sp, #24 + 8004c80: af00 add r7, sp, #0 + 8004c82: 6078 str r0, [r7, #4] + 8004c84: 687b ldr r3, [r7, #4] + 8004c86: 4618 mov r0, r3 + 8004c88: f7ff ffe8 bl 8004c5c <_ZN3ros15NodeHandleBase_C1Ev> + 8004c8c: 4a3a ldr r2, [pc, #232] ; (8004d78 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0xfc>) + 8004c8e: 687b ldr r3, [r7, #4] + 8004c90: 601a str r2, [r3, #0] + 8004c92: 687b ldr r3, [r7, #4] + 8004c94: 3304 adds r3, #4 + 8004c96: 4618 mov r0, r3 + 8004c98: f7ff fcd4 bl 8004644 <_ZN13STM32HardwareC1Ev> + 8004c9c: 687b ldr r3, [r7, #4] + 8004c9e: 2200 movs r2, #0 + 8004ca0: f883 2684 strb.w r2, [r3, #1668] ; 0x684 + 8004ca4: 687b ldr r3, [r7, #4] + 8004ca6: f503 63d3 add.w r3, r3, #1688 ; 0x698 + 8004caa: 4618 mov r0, r3 + 8004cac: f7ff f9be bl 800402c <_ZN14rosserial_msgs20RequestParamResponseC1Ev> + { + + for (unsigned int i = 0; i < MAX_PUBLISHERS; i++) + 8004cb0: 2300 movs r3, #0 + 8004cb2: 617b str r3, [r7, #20] + 8004cb4: 697b ldr r3, [r7, #20] + 8004cb6: 2b18 cmp r3, #24 + 8004cb8: d80a bhi.n 8004cd0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x54> + publishers[i] = 0; + 8004cba: 687b ldr r3, [r7, #4] + 8004cbc: 697a ldr r2, [r7, #20] + 8004cbe: f502 72b5 add.w r2, r2, #362 ; 0x16a + 8004cc2: 2100 movs r1, #0 + 8004cc4: f843 1022 str.w r1, [r3, r2, lsl #2] + for (unsigned int i = 0; i < MAX_PUBLISHERS; i++) + 8004cc8: 697b ldr r3, [r7, #20] + 8004cca: 3301 adds r3, #1 + 8004ccc: 617b str r3, [r7, #20] + 8004cce: e7f1 b.n 8004cb4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x38> + + for (unsigned int i = 0; i < MAX_SUBSCRIBERS; i++) + 8004cd0: 2300 movs r3, #0 + 8004cd2: 613b str r3, [r7, #16] + 8004cd4: 693b ldr r3, [r7, #16] + 8004cd6: 2b18 cmp r3, #24 + 8004cd8: d80b bhi.n 8004cf2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x76> + subscribers[i] = 0; + 8004cda: 687a ldr r2, [r7, #4] + 8004cdc: 693b ldr r3, [r7, #16] + 8004cde: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8004ce2: 009b lsls r3, r3, #2 + 8004ce4: 4413 add r3, r2 + 8004ce6: 2200 movs r2, #0 + 8004ce8: 605a str r2, [r3, #4] + for (unsigned int i = 0; i < MAX_SUBSCRIBERS; i++) + 8004cea: 693b ldr r3, [r7, #16] + 8004cec: 3301 adds r3, #1 + 8004cee: 613b str r3, [r7, #16] + 8004cf0: e7f0 b.n 8004cd4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x58> + + for (unsigned int i = 0; i < INPUT_SIZE; i++) + 8004cf2: 2300 movs r3, #0 + 8004cf4: 60fb str r3, [r7, #12] + 8004cf6: 68fb ldr r3, [r7, #12] + 8004cf8: f5b3 7f00 cmp.w r3, #512 ; 0x200 + 8004cfc: d20a bcs.n 8004d14 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x98> + message_in[i] = 0; + 8004cfe: 687a ldr r2, [r7, #4] + 8004d00: 68fb ldr r3, [r7, #12] + 8004d02: 4413 add r3, r2 + 8004d04: f503 73d4 add.w r3, r3, #424 ; 0x1a8 + 8004d08: 2200 movs r2, #0 + 8004d0a: 701a strb r2, [r3, #0] + for (unsigned int i = 0; i < INPUT_SIZE; i++) + 8004d0c: 68fb ldr r3, [r7, #12] + 8004d0e: 3301 adds r3, #1 + 8004d10: 60fb str r3, [r7, #12] + 8004d12: e7f0 b.n 8004cf6 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x7a> + + for (unsigned int i = 0; i < OUTPUT_SIZE; i++) + 8004d14: 2300 movs r3, #0 + 8004d16: 60bb str r3, [r7, #8] + 8004d18: 68bb ldr r3, [r7, #8] + 8004d1a: f5b3 7f00 cmp.w r3, #512 ; 0x200 + 8004d1e: d20a bcs.n 8004d36 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0xba> + message_out[i] = 0; + 8004d20: 687a ldr r2, [r7, #4] + 8004d22: 68bb ldr r3, [r7, #8] + 8004d24: 4413 add r3, r2 + 8004d26: f503 736a add.w r3, r3, #936 ; 0x3a8 + 8004d2a: 2200 movs r2, #0 + 8004d2c: 701a strb r2, [r3, #0] + for (unsigned int i = 0; i < OUTPUT_SIZE; i++) + 8004d2e: 68bb ldr r3, [r7, #8] + 8004d30: 3301 adds r3, #1 + 8004d32: 60bb str r3, [r7, #8] + 8004d34: e7f0 b.n 8004d18 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x9c> + + req_param_resp.ints_length = 0; + 8004d36: 687b ldr r3, [r7, #4] + 8004d38: 2200 movs r2, #0 + 8004d3a: f8c3 269c str.w r2, [r3, #1692] ; 0x69c + req_param_resp.ints = NULL; + 8004d3e: 687b ldr r3, [r7, #4] + 8004d40: 2200 movs r2, #0 + 8004d42: f8c3 26a4 str.w r2, [r3, #1700] ; 0x6a4 + req_param_resp.floats_length = 0; + 8004d46: 687b ldr r3, [r7, #4] + 8004d48: 2200 movs r2, #0 + 8004d4a: f8c3 26a8 str.w r2, [r3, #1704] ; 0x6a8 + req_param_resp.floats = NULL; + 8004d4e: 687b ldr r3, [r7, #4] + 8004d50: 2200 movs r2, #0 + 8004d52: f8c3 26b0 str.w r2, [r3, #1712] ; 0x6b0 + req_param_resp.ints_length = 0; + 8004d56: 687b ldr r3, [r7, #4] + 8004d58: 2200 movs r2, #0 + 8004d5a: f8c3 269c str.w r2, [r3, #1692] ; 0x69c + req_param_resp.ints = NULL; + 8004d5e: 687b ldr r3, [r7, #4] + 8004d60: 2200 movs r2, #0 + 8004d62: f8c3 26a4 str.w r2, [r3, #1700] ; 0x6a4 + + spin_timeout_ = 0; + 8004d66: 687b ldr r3, [r7, #4] + 8004d68: 2200 movs r2, #0 + 8004d6a: f8c3 21a4 str.w r2, [r3, #420] ; 0x1a4 + } + 8004d6e: 687b ldr r3, [r7, #4] + 8004d70: 4618 mov r0, r3 + 8004d72: 3718 adds r7, #24 + 8004d74: 46bd mov sp, r7 + 8004d76: bd80 pop {r7, pc} + 8004d78: 08005f60 .word 0x08005f60 + +08004d7c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8initNodeEv>: + { + return &hardware_; + } + + /* Start serial, initialize buffers */ + void initNode() + 8004d7c: b580 push {r7, lr} + 8004d7e: b082 sub sp, #8 + 8004d80: af00 add r7, sp, #0 + 8004d82: 6078 str r0, [r7, #4] + { + hardware_.init(); + 8004d84: 687b ldr r3, [r7, #4] + 8004d86: 3304 adds r3, #4 + 8004d88: 4618 mov r0, r3 + 8004d8a: f7ff fc7d bl 8004688 <_ZN13STM32Hardware4initEv> + mode_ = 0; + 8004d8e: 687b ldr r3, [r7, #4] + 8004d90: 2200 movs r2, #0 + 8004d92: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + bytes_ = 0; + 8004d96: 687b ldr r3, [r7, #4] + 8004d98: 2200 movs r2, #0 + 8004d9a: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 + index_ = 0; + 8004d9e: 687b ldr r3, [r7, #4] + 8004da0: 2200 movs r2, #0 + 8004da2: f8c3 267c str.w r2, [r3, #1660] ; 0x67c + topic_ = 0; + 8004da6: 687b ldr r3, [r7, #4] + 8004da8: 2200 movs r2, #0 + 8004daa: f8c3 2678 str.w r2, [r3, #1656] ; 0x678 + }; + 8004dae: bf00 nop + 8004db0: 3708 adds r7, #8 + 8004db2: 46bd mov sp, r7 + 8004db4: bd80 pop {r7, pc} + +08004db6 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9advertiseERNS_9PublisherE>: + /******************************************************************** + * Topic Management + */ + + /* Register a new publisher */ + bool advertise(Publisher & p) + 8004db6: b480 push {r7} + 8004db8: b085 sub sp, #20 + 8004dba: af00 add r7, sp, #0 + 8004dbc: 6078 str r0, [r7, #4] + 8004dbe: 6039 str r1, [r7, #0] + { + for (int i = 0; i < MAX_PUBLISHERS; i++) + 8004dc0: 2300 movs r3, #0 + 8004dc2: 60fb str r3, [r7, #12] + 8004dc4: 68fb ldr r3, [r7, #12] + 8004dc6: 2b18 cmp r3, #24 + 8004dc8: dc1c bgt.n 8004e04 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9advertiseERNS_9PublisherE+0x4e> + { + if (publishers[i] == 0) // empty slot + 8004dca: 687b ldr r3, [r7, #4] + 8004dcc: 68fa ldr r2, [r7, #12] + 8004dce: f502 72b5 add.w r2, r2, #362 ; 0x16a + 8004dd2: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8004dd6: 2b00 cmp r3, #0 + 8004dd8: d110 bne.n 8004dfc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9advertiseERNS_9PublisherE+0x46> + { + publishers[i] = &p; + 8004dda: 687b ldr r3, [r7, #4] + 8004ddc: 68fa ldr r2, [r7, #12] + 8004dde: f502 72b5 add.w r2, r2, #362 ; 0x16a + 8004de2: 6839 ldr r1, [r7, #0] + 8004de4: f843 1022 str.w r1, [r3, r2, lsl #2] + p.id_ = i + 100 + MAX_SUBSCRIBERS; + 8004de8: 68fb ldr r3, [r7, #12] + 8004dea: f103 027d add.w r2, r3, #125 ; 0x7d + 8004dee: 683b ldr r3, [r7, #0] + 8004df0: 609a str r2, [r3, #8] + p.nh_ = this; + 8004df2: 687a ldr r2, [r7, #4] + 8004df4: 683b ldr r3, [r7, #0] + 8004df6: 60da str r2, [r3, #12] + return true; + 8004df8: 2301 movs r3, #1 + 8004dfa: e004 b.n 8004e06 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9advertiseERNS_9PublisherE+0x50> + for (int i = 0; i < MAX_PUBLISHERS; i++) + 8004dfc: 68fb ldr r3, [r7, #12] + 8004dfe: 3301 adds r3, #1 + 8004e00: 60fb str r3, [r7, #12] + 8004e02: e7df b.n 8004dc4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9advertiseERNS_9PublisherE+0xe> + } + } + return false; + 8004e04: 2300 movs r3, #0 + } + 8004e06: 4618 mov r0, r3 + 8004e08: 3714 adds r7, #20 + 8004e0a: 46bd mov sp, r7 + 8004e0c: f85d 7b04 ldr.w r7, [sp], #4 + 8004e10: 4770 bx lr + +08004e12 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv>: + virtual int spinOnce() + 8004e12: b580 push {r7, lr} + 8004e14: b084 sub sp, #16 + 8004e16: af00 add r7, sp, #0 + 8004e18: 6078 str r0, [r7, #4] + uint32_t c_time = hardware_.time(); + 8004e1a: 687b ldr r3, [r7, #4] + 8004e1c: 3304 adds r3, #4 + 8004e1e: 4618 mov r0, r3 + 8004e20: f7ff fd1f bl 8004862 <_ZN13STM32Hardware4timeEv> + 8004e24: 60f8 str r0, [r7, #12] + if ((c_time - last_sync_receive_time) > (SYNC_SECONDS * 2200)) + 8004e26: 687b ldr r3, [r7, #4] + 8004e28: f8d3 368c ldr.w r3, [r3, #1676] ; 0x68c + 8004e2c: 68fa ldr r2, [r7, #12] + 8004e2e: 1ad3 subs r3, r2, r3 + 8004e30: f642 22f8 movw r2, #11000 ; 0x2af8 + 8004e34: 4293 cmp r3, r2 + 8004e36: d903 bls.n 8004e40 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x2e> + configured_ = false; + 8004e38: 687b ldr r3, [r7, #4] + 8004e3a: 2200 movs r2, #0 + 8004e3c: f883 2684 strb.w r2, [r3, #1668] ; 0x684 + if (mode_ != MODE_FIRST_FF) + 8004e40: 687b ldr r3, [r7, #4] + 8004e42: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004e46: 2b00 cmp r3, #0 + 8004e48: d009 beq.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + if (c_time > last_msg_timeout_time) + 8004e4a: 687b ldr r3, [r7, #4] + 8004e4c: f8d3 3690 ldr.w r3, [r3, #1680] ; 0x690 + 8004e50: 68fa ldr r2, [r7, #12] + 8004e52: 429a cmp r2, r3 + 8004e54: d903 bls.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + mode_ = MODE_FIRST_FF; + 8004e56: 687b ldr r3, [r7, #4] + 8004e58: 2200 movs r2, #0 + 8004e5a: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + if (spin_timeout_ > 0) + 8004e5e: 687b ldr r3, [r7, #4] + 8004e60: f8d3 31a4 ldr.w r3, [r3, #420] ; 0x1a4 + 8004e64: 2b00 cmp r3, #0 + 8004e66: d014 beq.n 8004e92 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x80> + if ((hardware_.time() - c_time) > spin_timeout_) + 8004e68: 687b ldr r3, [r7, #4] + 8004e6a: 3304 adds r3, #4 + 8004e6c: 4618 mov r0, r3 + 8004e6e: f7ff fcf8 bl 8004862 <_ZN13STM32Hardware4timeEv> + 8004e72: 4602 mov r2, r0 + 8004e74: 68fb ldr r3, [r7, #12] + 8004e76: 1ad2 subs r2, r2, r3 + 8004e78: 687b ldr r3, [r7, #4] + 8004e7a: f8d3 31a4 ldr.w r3, [r3, #420] ; 0x1a4 + 8004e7e: 429a cmp r2, r3 + 8004e80: bf8c ite hi + 8004e82: 2301 movhi r3, #1 + 8004e84: 2300 movls r3, #0 + 8004e86: b2db uxtb r3, r3 + 8004e88: 2b00 cmp r3, #0 + 8004e8a: d002 beq.n 8004e92 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x80> + return SPIN_TIMEOUT; + 8004e8c: f06f 0301 mvn.w r3, #1 + 8004e90: e197 b.n 80051c2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3b0> + int data = hardware_.read(); + 8004e92: 687b ldr r3, [r7, #4] + 8004e94: 3304 adds r3, #4 + 8004e96: 4618 mov r0, r3 + 8004e98: f7ff fc16 bl 80046c8 <_ZN13STM32Hardware4readEv> + 8004e9c: 60b8 str r0, [r7, #8] + if (data < 0) + 8004e9e: 68bb ldr r3, [r7, #8] + 8004ea0: 2b00 cmp r3, #0 + 8004ea2: f2c0 8177 blt.w 8005194 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x382> + checksum_ += data; + 8004ea6: 687b ldr r3, [r7, #4] + 8004ea8: f8d3 2680 ldr.w r2, [r3, #1664] ; 0x680 + 8004eac: 68bb ldr r3, [r7, #8] + 8004eae: 441a add r2, r3 + 8004eb0: 687b ldr r3, [r7, #4] + 8004eb2: f8c3 2680 str.w r2, [r3, #1664] ; 0x680 + if (mode_ == MODE_MESSAGE) /* message data being recieved */ + 8004eb6: 687b ldr r3, [r7, #4] + 8004eb8: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004ebc: 2b07 cmp r3, #7 + 8004ebe: d11e bne.n 8004efe <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0xec> + message_in[index_++] = data; + 8004ec0: 687b ldr r3, [r7, #4] + 8004ec2: f8d3 367c ldr.w r3, [r3, #1660] ; 0x67c + 8004ec6: 1c59 adds r1, r3, #1 + 8004ec8: 687a ldr r2, [r7, #4] + 8004eca: f8c2 167c str.w r1, [r2, #1660] ; 0x67c + 8004ece: 68ba ldr r2, [r7, #8] + 8004ed0: b2d1 uxtb r1, r2 + 8004ed2: 687a ldr r2, [r7, #4] + 8004ed4: 4413 add r3, r2 + 8004ed6: 460a mov r2, r1 + 8004ed8: f883 21a8 strb.w r2, [r3, #424] ; 0x1a8 + bytes_--; + 8004edc: 687b ldr r3, [r7, #4] + 8004ede: f8d3 3674 ldr.w r3, [r3, #1652] ; 0x674 + 8004ee2: 1e5a subs r2, r3, #1 + 8004ee4: 687b ldr r3, [r7, #4] + 8004ee6: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 + if (bytes_ == 0) /* is message complete? if so, checksum */ + 8004eea: 687b ldr r3, [r7, #4] + 8004eec: f8d3 3674 ldr.w r3, [r3, #1652] ; 0x674 + 8004ef0: 2b00 cmp r3, #0 + 8004ef2: d1b4 bne.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + mode_ = MODE_MSG_CHECKSUM; + 8004ef4: 687b ldr r3, [r7, #4] + 8004ef6: 2208 movs r2, #8 + 8004ef8: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8004efc: e7af b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + else if (mode_ == MODE_FIRST_FF) + 8004efe: 687b ldr r3, [r7, #4] + 8004f00: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004f04: 2b00 cmp r3, #0 + 8004f06: d128 bne.n 8004f5a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x148> + if (data == 0xff) + 8004f08: 68bb ldr r3, [r7, #8] + 8004f0a: 2bff cmp r3, #255 ; 0xff + 8004f0c: d10d bne.n 8004f2a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x118> + mode_++; + 8004f0e: 687b ldr r3, [r7, #4] + 8004f10: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004f14: 1c5a adds r2, r3, #1 + 8004f16: 687b ldr r3, [r7, #4] + 8004f18: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + last_msg_timeout_time = c_time + SERIAL_MSG_TIMEOUT; + 8004f1c: 68fb ldr r3, [r7, #12] + 8004f1e: f103 0214 add.w r2, r3, #20 + 8004f22: 687b ldr r3, [r7, #4] + 8004f24: f8c3 2690 str.w r2, [r3, #1680] ; 0x690 + 8004f28: e799 b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + else if (hardware_.time() - c_time > (SYNC_SECONDS * 1000)) + 8004f2a: 687b ldr r3, [r7, #4] + 8004f2c: 3304 adds r3, #4 + 8004f2e: 4618 mov r0, r3 + 8004f30: f7ff fc97 bl 8004862 <_ZN13STM32Hardware4timeEv> + 8004f34: 4602 mov r2, r0 + 8004f36: 68fb ldr r3, [r7, #12] + 8004f38: 1ad3 subs r3, r2, r3 + 8004f3a: f241 3288 movw r2, #5000 ; 0x1388 + 8004f3e: 4293 cmp r3, r2 + 8004f40: bf8c ite hi + 8004f42: 2301 movhi r3, #1 + 8004f44: 2300 movls r3, #0 + 8004f46: b2db uxtb r3, r3 + 8004f48: 2b00 cmp r3, #0 + 8004f4a: d088 beq.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + configured_ = false; + 8004f4c: 687b ldr r3, [r7, #4] + 8004f4e: 2200 movs r2, #0 + 8004f50: f883 2684 strb.w r2, [r3, #1668] ; 0x684 + return SPIN_TIMEOUT; + 8004f54: f06f 0301 mvn.w r3, #1 + 8004f58: e133 b.n 80051c2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3b0> + else if (mode_ == MODE_PROTOCOL_VER) + 8004f5a: 687b ldr r3, [r7, #4] + 8004f5c: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004f60: 2b01 cmp r3, #1 + 8004f62: d11b bne.n 8004f9c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x18a> + if (data == PROTOCOL_VER) + 8004f64: 68bb ldr r3, [r7, #8] + 8004f66: 2bfe cmp r3, #254 ; 0xfe + 8004f68: d107 bne.n 8004f7a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x168> + mode_++; + 8004f6a: 687b ldr r3, [r7, #4] + 8004f6c: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004f70: 1c5a adds r2, r3, #1 + 8004f72: 687b ldr r3, [r7, #4] + 8004f74: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8004f78: e771 b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + mode_ = MODE_FIRST_FF; + 8004f7a: 687b ldr r3, [r7, #4] + 8004f7c: 2200 movs r2, #0 + 8004f7e: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + if (configured_ == false) + 8004f82: 687b ldr r3, [r7, #4] + 8004f84: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 + 8004f88: f083 0301 eor.w r3, r3, #1 + 8004f8c: b2db uxtb r3, r3 + 8004f8e: 2b00 cmp r3, #0 + 8004f90: f43f af65 beq.w 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + requestSyncTime(); /* send a msg back showing our protocol version */ + 8004f94: 6878 ldr r0, [r7, #4] + 8004f96: f000 f918 bl 80051ca <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv> + 8004f9a: e760 b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + else if (mode_ == MODE_SIZE_L) /* bottom half of message size */ + 8004f9c: 687b ldr r3, [r7, #4] + 8004f9e: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004fa2: 2b02 cmp r3, #2 + 8004fa4: d113 bne.n 8004fce <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x1bc> + bytes_ = data; + 8004fa6: 687b ldr r3, [r7, #4] + 8004fa8: 68ba ldr r2, [r7, #8] + 8004faa: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 + index_ = 0; + 8004fae: 687b ldr r3, [r7, #4] + 8004fb0: 2200 movs r2, #0 + 8004fb2: f8c3 267c str.w r2, [r3, #1660] ; 0x67c + mode_++; + 8004fb6: 687b ldr r3, [r7, #4] + 8004fb8: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004fbc: 1c5a adds r2, r3, #1 + 8004fbe: 687b ldr r3, [r7, #4] + 8004fc0: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + checksum_ = data; /* first byte for calculating size checksum */ + 8004fc4: 687b ldr r3, [r7, #4] + 8004fc6: 68ba ldr r2, [r7, #8] + 8004fc8: f8c3 2680 str.w r2, [r3, #1664] ; 0x680 + 8004fcc: e747 b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + else if (mode_ == MODE_SIZE_H) /* top half of message size */ + 8004fce: 687b ldr r3, [r7, #4] + 8004fd0: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004fd4: 2b03 cmp r3, #3 + 8004fd6: d110 bne.n 8004ffa <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x1e8> + bytes_ += data << 8; + 8004fd8: 687b ldr r3, [r7, #4] + 8004fda: f8d3 2674 ldr.w r2, [r3, #1652] ; 0x674 + 8004fde: 68bb ldr r3, [r7, #8] + 8004fe0: 021b lsls r3, r3, #8 + 8004fe2: 441a add r2, r3 + 8004fe4: 687b ldr r3, [r7, #4] + 8004fe6: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 + mode_++; + 8004fea: 687b ldr r3, [r7, #4] + 8004fec: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8004ff0: 1c5a adds r2, r3, #1 + 8004ff2: 687b ldr r3, [r7, #4] + 8004ff4: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8004ff8: e731 b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + else if (mode_ == MODE_SIZE_CHECKSUM) + 8004ffa: 687b ldr r3, [r7, #4] + 8004ffc: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8005000: 2b04 cmp r3, #4 + 8005002: d116 bne.n 8005032 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x220> + if ((checksum_ % 256) == 255) + 8005004: 687b ldr r3, [r7, #4] + 8005006: f8d3 3680 ldr.w r3, [r3, #1664] ; 0x680 + 800500a: 425a negs r2, r3 + 800500c: b2db uxtb r3, r3 + 800500e: b2d2 uxtb r2, r2 + 8005010: bf58 it pl + 8005012: 4253 negpl r3, r2 + 8005014: 2bff cmp r3, #255 ; 0xff + 8005016: d107 bne.n 8005028 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x216> + mode_++; + 8005018: 687b ldr r3, [r7, #4] + 800501a: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 800501e: 1c5a adds r2, r3, #1 + 8005020: 687b ldr r3, [r7, #4] + 8005022: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8005026: e71a b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + mode_ = MODE_FIRST_FF; /* Abandon the frame if the msg len is wrong */ + 8005028: 687b ldr r3, [r7, #4] + 800502a: 2200 movs r2, #0 + 800502c: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8005030: e715 b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + else if (mode_ == MODE_TOPIC_L) /* bottom half of topic id */ + 8005032: 687b ldr r3, [r7, #4] + 8005034: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8005038: 2b05 cmp r3, #5 + 800503a: d10f bne.n 800505c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x24a> + topic_ = data; + 800503c: 687b ldr r3, [r7, #4] + 800503e: 68ba ldr r2, [r7, #8] + 8005040: f8c3 2678 str.w r2, [r3, #1656] ; 0x678 + mode_++; + 8005044: 687b ldr r3, [r7, #4] + 8005046: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 800504a: 1c5a adds r2, r3, #1 + 800504c: 687b ldr r3, [r7, #4] + 800504e: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + checksum_ = data; /* first byte included in checksum */ + 8005052: 687b ldr r3, [r7, #4] + 8005054: 68ba ldr r2, [r7, #8] + 8005056: f8c3 2680 str.w r2, [r3, #1664] ; 0x680 + 800505a: e700 b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + else if (mode_ == MODE_TOPIC_H) /* top half of topic id */ + 800505c: 687b ldr r3, [r7, #4] + 800505e: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 8005062: 2b06 cmp r3, #6 + 8005064: d117 bne.n 8005096 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x284> + topic_ += data << 8; + 8005066: 687b ldr r3, [r7, #4] + 8005068: f8d3 2678 ldr.w r2, [r3, #1656] ; 0x678 + 800506c: 68bb ldr r3, [r7, #8] + 800506e: 021b lsls r3, r3, #8 + 8005070: 441a add r2, r3 + 8005072: 687b ldr r3, [r7, #4] + 8005074: f8c3 2678 str.w r2, [r3, #1656] ; 0x678 + mode_ = MODE_MESSAGE; + 8005078: 687b ldr r3, [r7, #4] + 800507a: 2207 movs r2, #7 + 800507c: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + if (bytes_ == 0) + 8005080: 687b ldr r3, [r7, #4] + 8005082: f8d3 3674 ldr.w r3, [r3, #1652] ; 0x674 + 8005086: 2b00 cmp r3, #0 + 8005088: f47f aee9 bne.w 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + mode_ = MODE_MSG_CHECKSUM; + 800508c: 687b ldr r3, [r7, #4] + 800508e: 2208 movs r2, #8 + 8005090: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + 8005094: e6e3 b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + else if (mode_ == MODE_MSG_CHECKSUM) /* do checksum */ + 8005096: 687b ldr r3, [r7, #4] + 8005098: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 + 800509c: 2b08 cmp r3, #8 + 800509e: f47f aede bne.w 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + mode_ = MODE_FIRST_FF; + 80050a2: 687b ldr r3, [r7, #4] + 80050a4: 2200 movs r2, #0 + 80050a6: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 + if ((checksum_ % 256) == 255) + 80050aa: 687b ldr r3, [r7, #4] + 80050ac: f8d3 3680 ldr.w r3, [r3, #1664] ; 0x680 + 80050b0: 425a negs r2, r3 + 80050b2: b2db uxtb r3, r3 + 80050b4: b2d2 uxtb r2, r2 + 80050b6: bf58 it pl + 80050b8: 4253 negpl r3, r2 + 80050ba: 2bff cmp r3, #255 ; 0xff + 80050bc: f47f aecf bne.w 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + if (topic_ == TopicInfo::ID_PUBLISHER) + 80050c0: 687b ldr r3, [r7, #4] + 80050c2: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 80050c6: 2b00 cmp r3, #0 + 80050c8: d110 bne.n 80050ec <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x2da> + requestSyncTime(); + 80050ca: 6878 ldr r0, [r7, #4] + 80050cc: f000 f87d bl 80051ca <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv> + negotiateTopics(); + 80050d0: 6878 ldr r0, [r7, #4] + 80050d2: f000 f898 bl 8005206 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv> + last_sync_time = c_time; + 80050d6: 687b ldr r3, [r7, #4] + 80050d8: 68fa ldr r2, [r7, #12] + 80050da: f8c3 2688 str.w r2, [r3, #1672] ; 0x688 + last_sync_receive_time = c_time; + 80050de: 687b ldr r3, [r7, #4] + 80050e0: 68fa ldr r2, [r7, #12] + 80050e2: f8c3 268c str.w r2, [r3, #1676] ; 0x68c + return SPIN_ERR; + 80050e6: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 80050ea: e06a b.n 80051c2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3b0> + else if (topic_ == TopicInfo::ID_TIME) + 80050ec: 687b ldr r3, [r7, #4] + 80050ee: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 80050f2: 2b0a cmp r3, #10 + 80050f4: d107 bne.n 8005106 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x2f4> + syncTime(message_in); + 80050f6: 687b ldr r3, [r7, #4] + 80050f8: f503 73d4 add.w r3, r3, #424 ; 0x1a8 + 80050fc: 4619 mov r1, r3 + 80050fe: 6878 ldr r0, [r7, #4] + 8005100: f000 f962 bl 80053c8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh> + 8005104: e6ab b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + else if (topic_ == TopicInfo::ID_PARAMETER_REQUEST) + 8005106: 687b ldr r3, [r7, #4] + 8005108: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 800510c: 2b06 cmp r3, #6 + 800510e: d10e bne.n 800512e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x31c> + req_param_resp.deserialize(message_in); + 8005110: 687b ldr r3, [r7, #4] + 8005112: f503 62d3 add.w r2, r3, #1688 ; 0x698 + 8005116: 687b ldr r3, [r7, #4] + 8005118: f503 73d4 add.w r3, r3, #424 ; 0x1a8 + 800511c: 4619 mov r1, r3 + 800511e: 4610 mov r0, r2 + 8005120: f7ff f8b9 bl 8004296 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh> + param_recieved = true; + 8005124: 687b ldr r3, [r7, #4] + 8005126: 2201 movs r2, #1 + 8005128: f883 2694 strb.w r2, [r3, #1684] ; 0x694 + 800512c: e697 b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + else if (topic_ == TopicInfo::ID_TX_STOP) + 800512e: 687b ldr r3, [r7, #4] + 8005130: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 8005134: 2b0b cmp r3, #11 + 8005136: d104 bne.n 8005142 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x330> + configured_ = false; + 8005138: 687b ldr r3, [r7, #4] + 800513a: 2200 movs r2, #0 + 800513c: f883 2684 strb.w r2, [r3, #1668] ; 0x684 + 8005140: e68d b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + if (subscribers[topic_ - 100]) + 8005142: 687b ldr r3, [r7, #4] + 8005144: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 8005148: 3b64 subs r3, #100 ; 0x64 + 800514a: 687a ldr r2, [r7, #4] + 800514c: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8005150: 009b lsls r3, r3, #2 + 8005152: 4413 add r3, r2 + 8005154: 685b ldr r3, [r3, #4] + 8005156: 2b00 cmp r3, #0 + 8005158: f43f ae81 beq.w 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + subscribers[topic_ - 100]->callback(message_in); + 800515c: 687b ldr r3, [r7, #4] + 800515e: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 8005162: 3b64 subs r3, #100 ; 0x64 + 8005164: 687a ldr r2, [r7, #4] + 8005166: f503 73c1 add.w r3, r3, #386 ; 0x182 + 800516a: 009b lsls r3, r3, #2 + 800516c: 4413 add r3, r2 + 800516e: 6858 ldr r0, [r3, #4] + 8005170: 687b ldr r3, [r7, #4] + 8005172: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 + 8005176: 3b64 subs r3, #100 ; 0x64 + 8005178: 687a ldr r2, [r7, #4] + 800517a: f503 73c1 add.w r3, r3, #386 ; 0x182 + 800517e: 009b lsls r3, r3, #2 + 8005180: 4413 add r3, r2 + 8005182: 685b ldr r3, [r3, #4] + 8005184: 681b ldr r3, [r3, #0] + 8005186: 681b ldr r3, [r3, #0] + 8005188: 687a ldr r2, [r7, #4] + 800518a: f502 72d4 add.w r2, r2, #424 ; 0x1a8 + 800518e: 4611 mov r1, r2 + 8005190: 4798 blx r3 + while (true) + 8005192: e664 b.n 8004e5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> + break; + 8005194: bf00 nop + if (configured_ && ((c_time - last_sync_time) > (SYNC_SECONDS * 500))) + 8005196: 687b ldr r3, [r7, #4] + 8005198: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 + 800519c: 2b00 cmp r3, #0 + 800519e: d00f beq.n 80051c0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3ae> + 80051a0: 687b ldr r3, [r7, #4] + 80051a2: f8d3 3688 ldr.w r3, [r3, #1672] ; 0x688 + 80051a6: 68fa ldr r2, [r7, #12] + 80051a8: 1ad3 subs r3, r2, r3 + 80051aa: f640 12c4 movw r2, #2500 ; 0x9c4 + 80051ae: 4293 cmp r3, r2 + 80051b0: d906 bls.n 80051c0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3ae> + requestSyncTime(); + 80051b2: 6878 ldr r0, [r7, #4] + 80051b4: f000 f809 bl 80051ca <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv> + last_sync_time = c_time; + 80051b8: 687b ldr r3, [r7, #4] + 80051ba: 68fa ldr r2, [r7, #12] + 80051bc: f8c3 2688 str.w r2, [r3, #1672] ; 0x688 + return SPIN_OK; + 80051c0: 2300 movs r3, #0 + } + 80051c2: 4618 mov r0, r3 + 80051c4: 3710 adds r7, #16 + 80051c6: 46bd mov sp, r7 + 80051c8: bd80 pop {r7, pc} + +080051ca <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv>: + void requestSyncTime() + 80051ca: b580 push {r7, lr} + 80051cc: b086 sub sp, #24 + 80051ce: af00 add r7, sp, #0 + 80051d0: 6078 str r0, [r7, #4] + std_msgs::Time t; + 80051d2: f107 030c add.w r3, r7, #12 + 80051d6: 4618 mov r0, r3 + 80051d8: f7fe fbc4 bl 8003964 <_ZN8std_msgs4TimeC1Ev> + publish(TopicInfo::ID_TIME, &t); + 80051dc: 687b ldr r3, [r7, #4] + 80051de: 681b ldr r3, [r3, #0] + 80051e0: 681b ldr r3, [r3, #0] + 80051e2: f107 020c add.w r2, r7, #12 + 80051e6: 210a movs r1, #10 + 80051e8: 6878 ldr r0, [r7, #4] + 80051ea: 4798 blx r3 + rt_time = hardware_.time(); + 80051ec: 687b ldr r3, [r7, #4] + 80051ee: 3304 adds r3, #4 + 80051f0: 4618 mov r0, r3 + 80051f2: f7ff fb36 bl 8004862 <_ZN13STM32Hardware4timeEv> + 80051f6: 4602 mov r2, r0 + 80051f8: 687b ldr r3, [r7, #4] + 80051fa: f8c3 2198 str.w r2, [r3, #408] ; 0x198 + } + 80051fe: bf00 nop + 8005200: 3718 adds r7, #24 + 8005202: 46bd mov sp, r7 + 8005204: bd80 pop {r7, pc} + +08005206 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv>: + } + } + return false; + } + + void negotiateTopics() + 8005206: b590 push {r4, r7, lr} + 8005208: b08b sub sp, #44 ; 0x2c + 800520a: af00 add r7, sp, #0 + 800520c: 6078 str r0, [r7, #4] + { + rosserial_msgs::TopicInfo ti; + 800520e: f107 030c add.w r3, r7, #12 + 8005212: 4618 mov r0, r3 + 8005214: f7fe fc96 bl 8003b44 <_ZN14rosserial_msgs9TopicInfoC1Ev> + int i; + for (i = 0; i < MAX_PUBLISHERS; i++) + 8005218: 2300 movs r3, #0 + 800521a: 627b str r3, [r7, #36] ; 0x24 + 800521c: 6a7b ldr r3, [r7, #36] ; 0x24 + 800521e: 2b18 cmp r3, #24 + 8005220: dc5b bgt.n 80052da <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0xd4> + { + if (publishers[i] != 0) // non-empty slot + 8005222: 687b ldr r3, [r7, #4] + 8005224: 6a7a ldr r2, [r7, #36] ; 0x24 + 8005226: f502 72b5 add.w r2, r2, #362 ; 0x16a + 800522a: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 800522e: 2b00 cmp r3, #0 + 8005230: d04f beq.n 80052d2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0xcc> + { + ti.topic_id = publishers[i]->id_; + 8005232: 687b ldr r3, [r7, #4] + 8005234: 6a7a ldr r2, [r7, #36] ; 0x24 + 8005236: f502 72b5 add.w r2, r2, #362 ; 0x16a + 800523a: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 800523e: 689b ldr r3, [r3, #8] + 8005240: b29b uxth r3, r3 + 8005242: 823b strh r3, [r7, #16] + ti.topic_name = (char *) publishers[i]->topic_; + 8005244: 687b ldr r3, [r7, #4] + 8005246: 6a7a ldr r2, [r7, #36] ; 0x24 + 8005248: f502 72b5 add.w r2, r2, #362 ; 0x16a + 800524c: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8005250: 681b ldr r3, [r3, #0] + 8005252: 617b str r3, [r7, #20] + ti.message_type = (char *) publishers[i]->msg_->getType(); + 8005254: 687b ldr r3, [r7, #4] + 8005256: 6a7a ldr r2, [r7, #36] ; 0x24 + 8005258: f502 72b5 add.w r2, r2, #362 ; 0x16a + 800525c: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8005260: 6859 ldr r1, [r3, #4] + 8005262: 687b ldr r3, [r7, #4] + 8005264: 6a7a ldr r2, [r7, #36] ; 0x24 + 8005266: f502 72b5 add.w r2, r2, #362 ; 0x16a + 800526a: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 800526e: 685b ldr r3, [r3, #4] + 8005270: 681b ldr r3, [r3, #0] + 8005272: 3308 adds r3, #8 + 8005274: 681b ldr r3, [r3, #0] + 8005276: 4608 mov r0, r1 + 8005278: 4798 blx r3 + 800527a: 4603 mov r3, r0 + 800527c: 61bb str r3, [r7, #24] + ti.md5sum = (char *) publishers[i]->msg_->getMD5(); + 800527e: 687b ldr r3, [r7, #4] + 8005280: 6a7a ldr r2, [r7, #36] ; 0x24 + 8005282: f502 72b5 add.w r2, r2, #362 ; 0x16a + 8005286: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 800528a: 6859 ldr r1, [r3, #4] + 800528c: 687b ldr r3, [r7, #4] + 800528e: 6a7a ldr r2, [r7, #36] ; 0x24 + 8005290: f502 72b5 add.w r2, r2, #362 ; 0x16a + 8005294: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 8005298: 685b ldr r3, [r3, #4] + 800529a: 681b ldr r3, [r3, #0] + 800529c: 330c adds r3, #12 + 800529e: 681b ldr r3, [r3, #0] + 80052a0: 4608 mov r0, r1 + 80052a2: 4798 blx r3 + 80052a4: 4603 mov r3, r0 + 80052a6: 61fb str r3, [r7, #28] + ti.buffer_size = OUTPUT_SIZE; + 80052a8: f44f 7300 mov.w r3, #512 ; 0x200 + 80052ac: 623b str r3, [r7, #32] + publish(publishers[i]->getEndpointType(), &ti); + 80052ae: 687b ldr r3, [r7, #4] + 80052b0: 681b ldr r3, [r3, #0] + 80052b2: 681c ldr r4, [r3, #0] + 80052b4: 687b ldr r3, [r7, #4] + 80052b6: 6a7a ldr r2, [r7, #36] ; 0x24 + 80052b8: f502 72b5 add.w r2, r2, #362 ; 0x16a + 80052bc: f853 3022 ldr.w r3, [r3, r2, lsl #2] + 80052c0: 4618 mov r0, r3 + 80052c2: f7ff f9a0 bl 8004606 <_ZN3ros9Publisher15getEndpointTypeEv> + 80052c6: 4601 mov r1, r0 + 80052c8: f107 030c add.w r3, r7, #12 + 80052cc: 461a mov r2, r3 + 80052ce: 6878 ldr r0, [r7, #4] + 80052d0: 47a0 blx r4 + for (i = 0; i < MAX_PUBLISHERS; i++) + 80052d2: 6a7b ldr r3, [r7, #36] ; 0x24 + 80052d4: 3301 adds r3, #1 + 80052d6: 627b str r3, [r7, #36] ; 0x24 + 80052d8: e7a0 b.n 800521c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0x16> + } + } + for (i = 0; i < MAX_SUBSCRIBERS; i++) + 80052da: 2300 movs r3, #0 + 80052dc: 627b str r3, [r7, #36] ; 0x24 + 80052de: 6a7b ldr r3, [r7, #36] ; 0x24 + 80052e0: 2b18 cmp r3, #24 + 80052e2: dc68 bgt.n 80053b6 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0x1b0> + { + if (subscribers[i] != 0) // non-empty slot + 80052e4: 687a ldr r2, [r7, #4] + 80052e6: 6a7b ldr r3, [r7, #36] ; 0x24 + 80052e8: f503 73c1 add.w r3, r3, #386 ; 0x182 + 80052ec: 009b lsls r3, r3, #2 + 80052ee: 4413 add r3, r2 + 80052f0: 685b ldr r3, [r3, #4] + 80052f2: 2b00 cmp r3, #0 + 80052f4: d05b beq.n 80053ae <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0x1a8> + { + ti.topic_id = subscribers[i]->id_; + 80052f6: 687a ldr r2, [r7, #4] + 80052f8: 6a7b ldr r3, [r7, #36] ; 0x24 + 80052fa: f503 73c1 add.w r3, r3, #386 ; 0x182 + 80052fe: 009b lsls r3, r3, #2 + 8005300: 4413 add r3, r2 + 8005302: 685b ldr r3, [r3, #4] + 8005304: 685b ldr r3, [r3, #4] + 8005306: b29b uxth r3, r3 + 8005308: 823b strh r3, [r7, #16] + ti.topic_name = (char *) subscribers[i]->topic_; + 800530a: 687a ldr r2, [r7, #4] + 800530c: 6a7b ldr r3, [r7, #36] ; 0x24 + 800530e: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8005312: 009b lsls r3, r3, #2 + 8005314: 4413 add r3, r2 + 8005316: 685b ldr r3, [r3, #4] + 8005318: 689b ldr r3, [r3, #8] + 800531a: 617b str r3, [r7, #20] + ti.message_type = (char *) subscribers[i]->getMsgType(); + 800531c: 687a ldr r2, [r7, #4] + 800531e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8005320: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8005324: 009b lsls r3, r3, #2 + 8005326: 4413 add r3, r2 + 8005328: 6859 ldr r1, [r3, #4] + 800532a: 687a ldr r2, [r7, #4] + 800532c: 6a7b ldr r3, [r7, #36] ; 0x24 + 800532e: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8005332: 009b lsls r3, r3, #2 + 8005334: 4413 add r3, r2 + 8005336: 685b ldr r3, [r3, #4] + 8005338: 681b ldr r3, [r3, #0] + 800533a: 3308 adds r3, #8 + 800533c: 681b ldr r3, [r3, #0] + 800533e: 4608 mov r0, r1 + 8005340: 4798 blx r3 + 8005342: 4603 mov r3, r0 + 8005344: 61bb str r3, [r7, #24] + ti.md5sum = (char *) subscribers[i]->getMsgMD5(); + 8005346: 687a ldr r2, [r7, #4] + 8005348: 6a7b ldr r3, [r7, #36] ; 0x24 + 800534a: f503 73c1 add.w r3, r3, #386 ; 0x182 + 800534e: 009b lsls r3, r3, #2 + 8005350: 4413 add r3, r2 + 8005352: 6859 ldr r1, [r3, #4] + 8005354: 687a ldr r2, [r7, #4] + 8005356: 6a7b ldr r3, [r7, #36] ; 0x24 + 8005358: f503 73c1 add.w r3, r3, #386 ; 0x182 + 800535c: 009b lsls r3, r3, #2 + 800535e: 4413 add r3, r2 + 8005360: 685b ldr r3, [r3, #4] + 8005362: 681b ldr r3, [r3, #0] + 8005364: 330c adds r3, #12 + 8005366: 681b ldr r3, [r3, #0] + 8005368: 4608 mov r0, r1 + 800536a: 4798 blx r3 + 800536c: 4603 mov r3, r0 + 800536e: 61fb str r3, [r7, #28] + ti.buffer_size = INPUT_SIZE; + 8005370: f44f 7300 mov.w r3, #512 ; 0x200 + 8005374: 623b str r3, [r7, #32] + publish(subscribers[i]->getEndpointType(), &ti); + 8005376: 687b ldr r3, [r7, #4] + 8005378: 681b ldr r3, [r3, #0] + 800537a: 681c ldr r4, [r3, #0] + 800537c: 687a ldr r2, [r7, #4] + 800537e: 6a7b ldr r3, [r7, #36] ; 0x24 + 8005380: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8005384: 009b lsls r3, r3, #2 + 8005386: 4413 add r3, r2 + 8005388: 6859 ldr r1, [r3, #4] + 800538a: 687a ldr r2, [r7, #4] + 800538c: 6a7b ldr r3, [r7, #36] ; 0x24 + 800538e: f503 73c1 add.w r3, r3, #386 ; 0x182 + 8005392: 009b lsls r3, r3, #2 + 8005394: 4413 add r3, r2 + 8005396: 685b ldr r3, [r3, #4] + 8005398: 681b ldr r3, [r3, #0] + 800539a: 3304 adds r3, #4 + 800539c: 681b ldr r3, [r3, #0] + 800539e: 4608 mov r0, r1 + 80053a0: 4798 blx r3 + 80053a2: 4601 mov r1, r0 + 80053a4: f107 030c add.w r3, r7, #12 + 80053a8: 461a mov r2, r3 + 80053aa: 6878 ldr r0, [r7, #4] + 80053ac: 47a0 blx r4 + for (i = 0; i < MAX_SUBSCRIBERS; i++) + 80053ae: 6a7b ldr r3, [r7, #36] ; 0x24 + 80053b0: 3301 adds r3, #1 + 80053b2: 627b str r3, [r7, #36] ; 0x24 + 80053b4: e793 b.n 80052de <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0xd8> + } + } + configured_ = true; + 80053b6: 687b ldr r3, [r7, #4] + 80053b8: 2201 movs r2, #1 + 80053ba: f883 2684 strb.w r2, [r3, #1668] ; 0x684 + } + 80053be: bf00 nop + 80053c0: 372c adds r7, #44 ; 0x2c + 80053c2: 46bd mov sp, r7 + 80053c4: bd90 pop {r4, r7, pc} + ... + +080053c8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh>: + void syncTime(uint8_t * data) + 80053c8: b580 push {r7, lr} + 80053ca: b086 sub sp, #24 + 80053cc: af00 add r7, sp, #0 + 80053ce: 6078 str r0, [r7, #4] + 80053d0: 6039 str r1, [r7, #0] + std_msgs::Time t; + 80053d2: f107 0308 add.w r3, r7, #8 + 80053d6: 4618 mov r0, r3 + 80053d8: f7fe fac4 bl 8003964 <_ZN8std_msgs4TimeC1Ev> + uint32_t offset = hardware_.time() - rt_time; + 80053dc: 687b ldr r3, [r7, #4] + 80053de: 3304 adds r3, #4 + 80053e0: 4618 mov r0, r3 + 80053e2: f7ff fa3e bl 8004862 <_ZN13STM32Hardware4timeEv> + 80053e6: 4602 mov r2, r0 + 80053e8: 687b ldr r3, [r7, #4] + 80053ea: f8d3 3198 ldr.w r3, [r3, #408] ; 0x198 + 80053ee: 1ad3 subs r3, r2, r3 + 80053f0: 617b str r3, [r7, #20] + t.deserialize(data); + 80053f2: f107 0308 add.w r3, r7, #8 + 80053f6: 6839 ldr r1, [r7, #0] + 80053f8: 4618 mov r0, r3 + 80053fa: f7fe fb23 bl 8003a44 <_ZN8std_msgs4Time11deserializeEPh> + t.data.sec += offset / 1000; + 80053fe: 68fa ldr r2, [r7, #12] + 8005400: 697b ldr r3, [r7, #20] + 8005402: 4915 ldr r1, [pc, #84] ; (8005458 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh+0x90>) + 8005404: fba1 1303 umull r1, r3, r1, r3 + 8005408: 099b lsrs r3, r3, #6 + 800540a: 4413 add r3, r2 + 800540c: 60fb str r3, [r7, #12] + t.data.nsec += (offset % 1000) * 1000000UL; + 800540e: 6939 ldr r1, [r7, #16] + 8005410: 697a ldr r2, [r7, #20] + 8005412: 4b11 ldr r3, [pc, #68] ; (8005458 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh+0x90>) + 8005414: fba3 0302 umull r0, r3, r3, r2 + 8005418: 099b lsrs r3, r3, #6 + 800541a: f44f 707a mov.w r0, #1000 ; 0x3e8 + 800541e: fb00 f303 mul.w r3, r0, r3 + 8005422: 1ad3 subs r3, r2, r3 + 8005424: 4a0d ldr r2, [pc, #52] ; (800545c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh+0x94>) + 8005426: fb02 f303 mul.w r3, r2, r3 + 800542a: 440b add r3, r1 + 800542c: 613b str r3, [r7, #16] + this->setNow(t.data); + 800542e: f107 0308 add.w r3, r7, #8 + 8005432: 3304 adds r3, #4 + 8005434: 4619 mov r1, r3 + 8005436: 6878 ldr r0, [r7, #4] + 8005438: f000 f8a4 bl 8005584 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE> + last_sync_receive_time = hardware_.time(); + 800543c: 687b ldr r3, [r7, #4] + 800543e: 3304 adds r3, #4 + 8005440: 4618 mov r0, r3 + 8005442: f7ff fa0e bl 8004862 <_ZN13STM32Hardware4timeEv> + 8005446: 4602 mov r2, r0 + 8005448: 687b ldr r3, [r7, #4] + 800544a: f8c3 268c str.w r2, [r3, #1676] ; 0x68c + } + 800544e: bf00 nop + 8005450: 3718 adds r7, #24 + 8005452: 46bd mov sp, r7 + 8005454: bd80 pop {r7, pc} + 8005456: bf00 nop + 8005458: 10624dd3 .word 0x10624dd3 + 800545c: 000f4240 .word 0x000f4240 + +08005460 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE>: + + virtual int publish(int id, const Msg * msg) + 8005460: b580 push {r7, lr} + 8005462: b088 sub sp, #32 + 8005464: af00 add r7, sp, #0 + 8005466: 60f8 str r0, [r7, #12] + 8005468: 60b9 str r1, [r7, #8] + 800546a: 607a str r2, [r7, #4] + { + if (id >= 100 && !configured_) + 800546c: 68bb ldr r3, [r7, #8] + 800546e: 2b63 cmp r3, #99 ; 0x63 + 8005470: dd09 ble.n 8005486 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x26> + 8005472: 68fb ldr r3, [r7, #12] + 8005474: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 + 8005478: f083 0301 eor.w r3, r3, #1 + 800547c: b2db uxtb r3, r3 + 800547e: 2b00 cmp r3, #0 + 8005480: d001 beq.n 8005486 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x26> + return 0; + 8005482: 2300 movs r3, #0 + 8005484: e077 b.n 8005576 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x116> + + /* serialize message */ + int l = msg->serialize(message_out + 7); + 8005486: 687b ldr r3, [r7, #4] + 8005488: 681b ldr r3, [r3, #0] + 800548a: 681b ldr r3, [r3, #0] + 800548c: 68fa ldr r2, [r7, #12] + 800548e: f502 726a add.w r2, r2, #936 ; 0x3a8 + 8005492: 3207 adds r2, #7 + 8005494: 4611 mov r1, r2 + 8005496: 6878 ldr r0, [r7, #4] + 8005498: 4798 blx r3 + 800549a: 6178 str r0, [r7, #20] + + /* setup the header */ + message_out[0] = 0xff; + 800549c: 68fb ldr r3, [r7, #12] + 800549e: 22ff movs r2, #255 ; 0xff + 80054a0: f883 23a8 strb.w r2, [r3, #936] ; 0x3a8 + message_out[1] = PROTOCOL_VER; + 80054a4: 68fb ldr r3, [r7, #12] + 80054a6: 22fe movs r2, #254 ; 0xfe + 80054a8: f883 23a9 strb.w r2, [r3, #937] ; 0x3a9 + message_out[2] = (uint8_t)((uint16_t)l & 255); + 80054ac: 697b ldr r3, [r7, #20] + 80054ae: b2da uxtb r2, r3 + 80054b0: 68fb ldr r3, [r7, #12] + 80054b2: f883 23aa strb.w r2, [r3, #938] ; 0x3aa + message_out[3] = (uint8_t)((uint16_t)l >> 8); + 80054b6: 697b ldr r3, [r7, #20] + 80054b8: b29b uxth r3, r3 + 80054ba: 121b asrs r3, r3, #8 + 80054bc: b2da uxtb r2, r3 + 80054be: 68fb ldr r3, [r7, #12] + 80054c0: f883 23ab strb.w r2, [r3, #939] ; 0x3ab + message_out[4] = 255 - ((message_out[2] + message_out[3]) % 256); + 80054c4: 68fb ldr r3, [r7, #12] + 80054c6: f893 23aa ldrb.w r2, [r3, #938] ; 0x3aa + 80054ca: 68fb ldr r3, [r7, #12] + 80054cc: f893 33ab ldrb.w r3, [r3, #939] ; 0x3ab + 80054d0: 4413 add r3, r2 + 80054d2: b2db uxtb r3, r3 + 80054d4: 43db mvns r3, r3 + 80054d6: b2da uxtb r2, r3 + 80054d8: 68fb ldr r3, [r7, #12] + 80054da: f883 23ac strb.w r2, [r3, #940] ; 0x3ac + message_out[5] = (uint8_t)((int16_t)id & 255); + 80054de: 68bb ldr r3, [r7, #8] + 80054e0: b2da uxtb r2, r3 + 80054e2: 68fb ldr r3, [r7, #12] + 80054e4: f883 23ad strb.w r2, [r3, #941] ; 0x3ad + message_out[6] = (uint8_t)((int16_t)id >> 8); + 80054e8: 68bb ldr r3, [r7, #8] + 80054ea: b21b sxth r3, r3 + 80054ec: 121b asrs r3, r3, #8 + 80054ee: b2da uxtb r2, r3 + 80054f0: 68fb ldr r3, [r7, #12] + 80054f2: f883 23ae strb.w r2, [r3, #942] ; 0x3ae + + /* calculate checksum */ + int chk = 0; + 80054f6: 2300 movs r3, #0 + 80054f8: 61fb str r3, [r7, #28] + for (int i = 5; i < l + 7; i++) + 80054fa: 2305 movs r3, #5 + 80054fc: 61bb str r3, [r7, #24] + 80054fe: 697b ldr r3, [r7, #20] + 8005500: 3307 adds r3, #7 + 8005502: 69ba ldr r2, [r7, #24] + 8005504: 429a cmp r2, r3 + 8005506: da0d bge.n 8005524 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0xc4> + chk += message_out[i]; + 8005508: 68fa ldr r2, [r7, #12] + 800550a: 69bb ldr r3, [r7, #24] + 800550c: 4413 add r3, r2 + 800550e: f503 736a add.w r3, r3, #936 ; 0x3a8 + 8005512: 781b ldrb r3, [r3, #0] + 8005514: 461a mov r2, r3 + 8005516: 69fb ldr r3, [r7, #28] + 8005518: 4413 add r3, r2 + 800551a: 61fb str r3, [r7, #28] + for (int i = 5; i < l + 7; i++) + 800551c: 69bb ldr r3, [r7, #24] + 800551e: 3301 adds r3, #1 + 8005520: 61bb str r3, [r7, #24] + 8005522: e7ec b.n 80054fe <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x9e> + l += 7; + 8005524: 697b ldr r3, [r7, #20] + 8005526: 3307 adds r3, #7 + 8005528: 617b str r3, [r7, #20] + message_out[l++] = 255 - (chk % 256); + 800552a: 69fb ldr r3, [r7, #28] + 800552c: 425a negs r2, r3 + 800552e: b2db uxtb r3, r3 + 8005530: b2d2 uxtb r2, r2 + 8005532: bf58 it pl + 8005534: 4253 negpl r3, r2 + 8005536: b2da uxtb r2, r3 + 8005538: 697b ldr r3, [r7, #20] + 800553a: 1c59 adds r1, r3, #1 + 800553c: 6179 str r1, [r7, #20] + 800553e: 43d2 mvns r2, r2 + 8005540: b2d1 uxtb r1, r2 + 8005542: 68fa ldr r2, [r7, #12] + 8005544: 4413 add r3, r2 + 8005546: 460a mov r2, r1 + 8005548: f883 23a8 strb.w r2, [r3, #936] ; 0x3a8 + + if (l <= OUTPUT_SIZE) + 800554c: 697b ldr r3, [r7, #20] + 800554e: f5b3 7f00 cmp.w r3, #512 ; 0x200 + 8005552: dc0a bgt.n 800556a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x10a> + { + hardware_.write(message_out, l); + 8005554: 68fb ldr r3, [r7, #12] + 8005556: 1d18 adds r0, r3, #4 + 8005558: 68fb ldr r3, [r7, #12] + 800555a: f503 736a add.w r3, r3, #936 ; 0x3a8 + 800555e: 697a ldr r2, [r7, #20] + 8005560: 4619 mov r1, r3 + 8005562: f7ff f939 bl 80047d8 <_ZN13STM32Hardware5writeEPhi> + return l; + 8005566: 697b ldr r3, [r7, #20] + 8005568: e005 b.n 8005576 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x116> + } + else + { + logerror("Message from device dropped: message larger than buffer."); + 800556a: 4905 ldr r1, [pc, #20] ; (8005580 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x120>) + 800556c: 68f8 ldr r0, [r7, #12] + 800556e: f000 f849 bl 8005604 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8logerrorEPKc> + return -1; + 8005572: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + } + } + 8005576: 4618 mov r0, r3 + 8005578: 3720 adds r7, #32 + 800557a: 46bd mov sp, r7 + 800557c: bd80 pop {r7, pc} + 800557e: bf00 nop + 8005580: 08005ef8 .word 0x08005ef8 + +08005584 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE>: + void setNow(Time & new_now) + 8005584: b580 push {r7, lr} + 8005586: b084 sub sp, #16 + 8005588: af00 add r7, sp, #0 + 800558a: 6078 str r0, [r7, #4] + 800558c: 6039 str r1, [r7, #0] + uint32_t ms = hardware_.time(); + 800558e: 687b ldr r3, [r7, #4] + 8005590: 3304 adds r3, #4 + 8005592: 4618 mov r0, r3 + 8005594: f7ff f965 bl 8004862 <_ZN13STM32Hardware4timeEv> + 8005598: 60f8 str r0, [r7, #12] + sec_offset = new_now.sec - ms / 1000 - 1; + 800559a: 683b ldr r3, [r7, #0] + 800559c: 681a ldr r2, [r3, #0] + 800559e: 68fb ldr r3, [r7, #12] + 80055a0: 4915 ldr r1, [pc, #84] ; (80055f8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x74>) + 80055a2: fba1 1303 umull r1, r3, r1, r3 + 80055a6: 099b lsrs r3, r3, #6 + 80055a8: 1ad3 subs r3, r2, r3 + 80055aa: 1e5a subs r2, r3, #1 + 80055ac: 687b ldr r3, [r7, #4] + 80055ae: f8c3 219c str.w r2, [r3, #412] ; 0x19c + nsec_offset = new_now.nsec - (ms % 1000) * 1000000UL + 1000000000UL; + 80055b2: 683b ldr r3, [r7, #0] + 80055b4: 6859 ldr r1, [r3, #4] + 80055b6: 68fa ldr r2, [r7, #12] + 80055b8: 4b0f ldr r3, [pc, #60] ; (80055f8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x74>) + 80055ba: fba3 0302 umull r0, r3, r3, r2 + 80055be: 099b lsrs r3, r3, #6 + 80055c0: f44f 707a mov.w r0, #1000 ; 0x3e8 + 80055c4: fb00 f303 mul.w r3, r0, r3 + 80055c8: 1ad3 subs r3, r2, r3 + 80055ca: 4a0c ldr r2, [pc, #48] ; (80055fc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x78>) + 80055cc: fb02 f303 mul.w r3, r2, r3 + 80055d0: 1aca subs r2, r1, r3 + 80055d2: 4b0b ldr r3, [pc, #44] ; (8005600 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x7c>) + 80055d4: 4413 add r3, r2 + 80055d6: 687a ldr r2, [r7, #4] + 80055d8: f8c2 31a0 str.w r3, [r2, #416] ; 0x1a0 + normalizeSecNSec(sec_offset, nsec_offset); + 80055dc: 687b ldr r3, [r7, #4] + 80055de: f503 72ce add.w r2, r3, #412 ; 0x19c + 80055e2: 687b ldr r3, [r7, #4] + 80055e4: f503 73d0 add.w r3, r3, #416 ; 0x1a0 + 80055e8: 4619 mov r1, r3 + 80055ea: 4610 mov r0, r2 + 80055ec: f000 f842 bl 8005674 <_ZN3ros16normalizeSecNSecERmS0_> + } + 80055f0: bf00 nop + 80055f2: 3710 adds r7, #16 + 80055f4: 46bd mov sp, r7 + 80055f6: bd80 pop {r7, pc} + 80055f8: 10624dd3 .word 0x10624dd3 + 80055fc: 000f4240 .word 0x000f4240 + 8005600: 3b9aca00 .word 0x3b9aca00 + +08005604 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8logerrorEPKc>: + } + void logwarn(const char *msg) + { + log(rosserial_msgs::Log::WARN, msg); + } + void logerror(const char*msg) + 8005604: b580 push {r7, lr} + 8005606: b082 sub sp, #8 + 8005608: af00 add r7, sp, #0 + 800560a: 6078 str r0, [r7, #4] + 800560c: 6039 str r1, [r7, #0] + { + log(rosserial_msgs::Log::ERROR, msg); + 800560e: 683a ldr r2, [r7, #0] + 8005610: 2103 movs r1, #3 + 8005612: 6878 ldr r0, [r7, #4] + 8005614: f000 f804 bl 8005620 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE3logEcPKc> + } + 8005618: bf00 nop + 800561a: 3708 adds r7, #8 + 800561c: 46bd mov sp, r7 + 800561e: bd80 pop {r7, pc} + +08005620 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE3logEcPKc>: + void log(char byte, const char * msg) + 8005620: b580 push {r7, lr} + 8005622: b088 sub sp, #32 + 8005624: af00 add r7, sp, #0 + 8005626: 60f8 str r0, [r7, #12] + 8005628: 460b mov r3, r1 + 800562a: 607a str r2, [r7, #4] + 800562c: 72fb strb r3, [r7, #11] + rosserial_msgs::Log l; + 800562e: f107 0314 add.w r3, r7, #20 + 8005632: 4618 mov r0, r3 + 8005634: f7fe fc4a bl 8003ecc <_ZN14rosserial_msgs3LogC1Ev> + l.level = byte; + 8005638: 7afb ldrb r3, [r7, #11] + 800563a: 763b strb r3, [r7, #24] + l.msg = (char*)msg; + 800563c: 687b ldr r3, [r7, #4] + 800563e: 61fb str r3, [r7, #28] + publish(rosserial_msgs::TopicInfo::ID_LOG, &l); + 8005640: 68fb ldr r3, [r7, #12] + 8005642: 681b ldr r3, [r3, #0] + 8005644: 681b ldr r3, [r3, #0] + 8005646: f107 0214 add.w r2, r7, #20 + 800564a: 2107 movs r1, #7 + 800564c: 68f8 ldr r0, [r7, #12] + 800564e: 4798 blx r3 + } + 8005650: bf00 nop + 8005652: 3720 adds r7, #32 + 8005654: 46bd mov sp, r7 + 8005656: bd80 pop {r7, pc} + +08005658 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9connectedEv>: + virtual bool connected() + 8005658: b480 push {r7} + 800565a: b083 sub sp, #12 + 800565c: af00 add r7, sp, #0 + 800565e: 6078 str r0, [r7, #4] + return configured_; + 8005660: 687b ldr r3, [r7, #4] + 8005662: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 + }; + 8005666: 4618 mov r0, r3 + 8005668: 370c adds r7, #12 + 800566a: 46bd mov sp, r7 + 800566c: f85d 7b04 ldr.w r7, [sp], #4 + 8005670: 4770 bx lr + ... + +08005674 <_ZN3ros16normalizeSecNSecERmS0_>: +#include "ros/ros_time.h" + +namespace ros +{ +void normalizeSecNSec(uint32_t& sec, uint32_t& nsec) +{ + 8005674: b480 push {r7} + 8005676: b085 sub sp, #20 + 8005678: af00 add r7, sp, #0 + 800567a: 6078 str r0, [r7, #4] + 800567c: 6039 str r1, [r7, #0] + uint32_t nsec_part = nsec % 1000000000UL; + 800567e: 683b ldr r3, [r7, #0] + 8005680: 681b ldr r3, [r3, #0] + 8005682: 0a5a lsrs r2, r3, #9 + 8005684: 490f ldr r1, [pc, #60] ; (80056c4 <_ZN3ros16normalizeSecNSecERmS0_+0x50>) + 8005686: fba1 1202 umull r1, r2, r1, r2 + 800568a: 09d2 lsrs r2, r2, #7 + 800568c: 490e ldr r1, [pc, #56] ; (80056c8 <_ZN3ros16normalizeSecNSecERmS0_+0x54>) + 800568e: fb01 f202 mul.w r2, r1, r2 + 8005692: 1a9b subs r3, r3, r2 + 8005694: 60fb str r3, [r7, #12] + uint32_t sec_part = nsec / 1000000000UL; + 8005696: 683b ldr r3, [r7, #0] + 8005698: 681b ldr r3, [r3, #0] + 800569a: 0a5b lsrs r3, r3, #9 + 800569c: 4a09 ldr r2, [pc, #36] ; (80056c4 <_ZN3ros16normalizeSecNSecERmS0_+0x50>) + 800569e: fba2 2303 umull r2, r3, r2, r3 + 80056a2: 09db lsrs r3, r3, #7 + 80056a4: 60bb str r3, [r7, #8] + sec += sec_part; + 80056a6: 687b ldr r3, [r7, #4] + 80056a8: 681a ldr r2, [r3, #0] + 80056aa: 68bb ldr r3, [r7, #8] + 80056ac: 441a add r2, r3 + 80056ae: 687b ldr r3, [r7, #4] + 80056b0: 601a str r2, [r3, #0] + nsec = nsec_part; + 80056b2: 683b ldr r3, [r7, #0] + 80056b4: 68fa ldr r2, [r7, #12] + 80056b6: 601a str r2, [r3, #0] +} + 80056b8: bf00 nop + 80056ba: 3714 adds r7, #20 + 80056bc: 46bd mov sp, r7 + 80056be: f85d 7b04 ldr.w r7, [sp], #4 + 80056c2: 4770 bx lr + 80056c4: 00044b83 .word 0x00044b83 + 80056c8: 3b9aca00 .word 0x3b9aca00 + +080056cc : +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + 80056cc: b480 push {r7} + 80056ce: b083 sub sp, #12 + 80056d0: af00 add r7, sp, #0 + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_PWR_CLK_ENABLE(); + 80056d2: 4b0f ldr r3, [pc, #60] ; (8005710 ) + 80056d4: 6c1b ldr r3, [r3, #64] ; 0x40 + 80056d6: 4a0e ldr r2, [pc, #56] ; (8005710 ) + 80056d8: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 + 80056dc: 6413 str r3, [r2, #64] ; 0x40 + 80056de: 4b0c ldr r3, [pc, #48] ; (8005710 ) + 80056e0: 6c1b ldr r3, [r3, #64] ; 0x40 + 80056e2: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 + 80056e6: 607b str r3, [r7, #4] + 80056e8: 687b ldr r3, [r7, #4] + __HAL_RCC_SYSCFG_CLK_ENABLE(); + 80056ea: 4b09 ldr r3, [pc, #36] ; (8005710 ) + 80056ec: 6c5b ldr r3, [r3, #68] ; 0x44 + 80056ee: 4a08 ldr r2, [pc, #32] ; (8005710 ) + 80056f0: f443 4380 orr.w r3, r3, #16384 ; 0x4000 + 80056f4: 6453 str r3, [r2, #68] ; 0x44 + 80056f6: 4b06 ldr r3, [pc, #24] ; (8005710 ) + 80056f8: 6c5b ldr r3, [r3, #68] ; 0x44 + 80056fa: f403 4380 and.w r3, r3, #16384 ; 0x4000 + 80056fe: 603b str r3, [r7, #0] + 8005700: 683b ldr r3, [r7, #0] + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + 8005702: bf00 nop + 8005704: 370c adds r7, #12 + 8005706: 46bd mov sp, r7 + 8005708: f85d 7b04 ldr.w r7, [sp], #4 + 800570c: 4770 bx lr + 800570e: bf00 nop + 8005710: 40023800 .word 0x40023800 + +08005714 : +* This function configures the hardware resources used in this example +* @param htim_base: TIM_Base handle pointer +* @retval None +*/ +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) +{ + 8005714: b480 push {r7} + 8005716: b085 sub sp, #20 + 8005718: af00 add r7, sp, #0 + 800571a: 6078 str r0, [r7, #4] + if(htim_base->Instance==TIM2) + 800571c: 687b ldr r3, [r7, #4] + 800571e: 681b ldr r3, [r3, #0] + 8005720: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 + 8005724: d10b bne.n 800573e + { + /* USER CODE BEGIN TIM2_MspInit 0 */ + + /* USER CODE END TIM2_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM2_CLK_ENABLE(); + 8005726: 4b09 ldr r3, [pc, #36] ; (800574c ) + 8005728: 6c1b ldr r3, [r3, #64] ; 0x40 + 800572a: 4a08 ldr r2, [pc, #32] ; (800574c ) + 800572c: f043 0301 orr.w r3, r3, #1 + 8005730: 6413 str r3, [r2, #64] ; 0x40 + 8005732: 4b06 ldr r3, [pc, #24] ; (800574c ) + 8005734: 6c1b ldr r3, [r3, #64] ; 0x40 + 8005736: f003 0301 and.w r3, r3, #1 + 800573a: 60fb str r3, [r7, #12] + 800573c: 68fb ldr r3, [r7, #12] + /* USER CODE BEGIN TIM2_MspInit 1 */ + + /* USER CODE END TIM2_MspInit 1 */ + } + +} + 800573e: bf00 nop + 8005740: 3714 adds r7, #20 + 8005742: 46bd mov sp, r7 + 8005744: f85d 7b04 ldr.w r7, [sp], #4 + 8005748: 4770 bx lr + 800574a: bf00 nop + 800574c: 40023800 .word 0x40023800 + +08005750 : +* This function configures the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ +void HAL_UART_MspInit(UART_HandleTypeDef* huart) +{ + 8005750: b580 push {r7, lr} + 8005752: b08a sub sp, #40 ; 0x28 + 8005754: af00 add r7, sp, #0 + 8005756: 6078 str r0, [r7, #4] + GPIO_InitTypeDef GPIO_InitStruct = {0}; + 8005758: f107 0314 add.w r3, r7, #20 + 800575c: 2200 movs r2, #0 + 800575e: 601a str r2, [r3, #0] + 8005760: 605a str r2, [r3, #4] + 8005762: 609a str r2, [r3, #8] + 8005764: 60da str r2, [r3, #12] + 8005766: 611a str r2, [r3, #16] + if(huart->Instance==USART3) + 8005768: 687b ldr r3, [r7, #4] + 800576a: 681b ldr r3, [r3, #0] + 800576c: 4a4a ldr r2, [pc, #296] ; (8005898 ) + 800576e: 4293 cmp r3, r2 + 8005770: f040 808d bne.w 800588e + { + /* USER CODE BEGIN USART3_MspInit 0 */ + + /* USER CODE END USART3_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_USART3_CLK_ENABLE(); + 8005774: 4b49 ldr r3, [pc, #292] ; (800589c ) + 8005776: 6c1b ldr r3, [r3, #64] ; 0x40 + 8005778: 4a48 ldr r2, [pc, #288] ; (800589c ) + 800577a: f443 2380 orr.w r3, r3, #262144 ; 0x40000 + 800577e: 6413 str r3, [r2, #64] ; 0x40 + 8005780: 4b46 ldr r3, [pc, #280] ; (800589c ) + 8005782: 6c1b ldr r3, [r3, #64] ; 0x40 + 8005784: f403 2380 and.w r3, r3, #262144 ; 0x40000 + 8005788: 613b str r3, [r7, #16] + 800578a: 693b ldr r3, [r7, #16] + + __HAL_RCC_GPIOD_CLK_ENABLE(); + 800578c: 4b43 ldr r3, [pc, #268] ; (800589c ) + 800578e: 6b1b ldr r3, [r3, #48] ; 0x30 + 8005790: 4a42 ldr r2, [pc, #264] ; (800589c ) + 8005792: f043 0308 orr.w r3, r3, #8 + 8005796: 6313 str r3, [r2, #48] ; 0x30 + 8005798: 4b40 ldr r3, [pc, #256] ; (800589c ) + 800579a: 6b1b ldr r3, [r3, #48] ; 0x30 + 800579c: f003 0308 and.w r3, r3, #8 + 80057a0: 60fb str r3, [r7, #12] + 80057a2: 68fb ldr r3, [r7, #12] + /**USART3 GPIO Configuration + PD8 ------> USART3_TX + PD9 ------> USART3_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9; + 80057a4: f44f 7340 mov.w r3, #768 ; 0x300 + 80057a8: 617b str r3, [r7, #20] + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + 80057aa: 2302 movs r3, #2 + 80057ac: 61bb str r3, [r7, #24] + GPIO_InitStruct.Pull = GPIO_NOPULL; + 80057ae: 2300 movs r3, #0 + 80057b0: 61fb str r3, [r7, #28] + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + 80057b2: 2303 movs r3, #3 + 80057b4: 623b str r3, [r7, #32] + GPIO_InitStruct.Alternate = GPIO_AF7_USART3; + 80057b6: 2307 movs r3, #7 + 80057b8: 627b str r3, [r7, #36] ; 0x24 + HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); + 80057ba: f107 0314 add.w r3, r7, #20 + 80057be: 4619 mov r1, r3 + 80057c0: 4837 ldr r0, [pc, #220] ; (80058a0 ) + 80057c2: f7fb fbeb bl 8000f9c + + /* USART3 DMA Init */ + /* USART3_RX Init */ + hdma_usart3_rx.Instance = DMA1_Stream1; + 80057c6: 4b37 ldr r3, [pc, #220] ; (80058a4 ) + 80057c8: 4a37 ldr r2, [pc, #220] ; (80058a8 ) + 80057ca: 601a str r2, [r3, #0] + hdma_usart3_rx.Init.Channel = DMA_CHANNEL_4; + 80057cc: 4b35 ldr r3, [pc, #212] ; (80058a4 ) + 80057ce: f04f 6200 mov.w r2, #134217728 ; 0x8000000 + 80057d2: 605a str r2, [r3, #4] + hdma_usart3_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; + 80057d4: 4b33 ldr r3, [pc, #204] ; (80058a4 ) + 80057d6: 2200 movs r2, #0 + 80057d8: 609a str r2, [r3, #8] + hdma_usart3_rx.Init.PeriphInc = DMA_PINC_DISABLE; + 80057da: 4b32 ldr r3, [pc, #200] ; (80058a4 ) + 80057dc: 2200 movs r2, #0 + 80057de: 60da str r2, [r3, #12] + hdma_usart3_rx.Init.MemInc = DMA_MINC_ENABLE; + 80057e0: 4b30 ldr r3, [pc, #192] ; (80058a4 ) + 80057e2: f44f 6280 mov.w r2, #1024 ; 0x400 + 80057e6: 611a str r2, [r3, #16] + hdma_usart3_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + 80057e8: 4b2e ldr r3, [pc, #184] ; (80058a4 ) + 80057ea: 2200 movs r2, #0 + 80057ec: 615a str r2, [r3, #20] + hdma_usart3_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + 80057ee: 4b2d ldr r3, [pc, #180] ; (80058a4 ) + 80057f0: 2200 movs r2, #0 + 80057f2: 619a str r2, [r3, #24] + hdma_usart3_rx.Init.Mode = DMA_NORMAL; + 80057f4: 4b2b ldr r3, [pc, #172] ; (80058a4 ) + 80057f6: 2200 movs r2, #0 + 80057f8: 61da str r2, [r3, #28] + hdma_usart3_rx.Init.Priority = DMA_PRIORITY_LOW; + 80057fa: 4b2a ldr r3, [pc, #168] ; (80058a4 ) + 80057fc: 2200 movs r2, #0 + 80057fe: 621a str r2, [r3, #32] + hdma_usart3_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; + 8005800: 4b28 ldr r3, [pc, #160] ; (80058a4 ) + 8005802: 2200 movs r2, #0 + 8005804: 625a str r2, [r3, #36] ; 0x24 + if (HAL_DMA_Init(&hdma_usart3_rx) != HAL_OK) + 8005806: 4827 ldr r0, [pc, #156] ; (80058a4 ) + 8005808: f7fb f830 bl 800086c + 800580c: 4603 mov r3, r0 + 800580e: 2b00 cmp r3, #0 + 8005810: d001 beq.n 8005816 + { + Error_Handler(); + 8005812: f7ff f9d9 bl 8004bc8 + } + + __HAL_LINKDMA(huart,hdmarx,hdma_usart3_rx); + 8005816: 687b ldr r3, [r7, #4] + 8005818: 4a22 ldr r2, [pc, #136] ; (80058a4 ) + 800581a: 66da str r2, [r3, #108] ; 0x6c + 800581c: 4a21 ldr r2, [pc, #132] ; (80058a4 ) + 800581e: 687b ldr r3, [r7, #4] + 8005820: 6393 str r3, [r2, #56] ; 0x38 + + /* USART3_TX Init */ + hdma_usart3_tx.Instance = DMA1_Stream3; + 8005822: 4b22 ldr r3, [pc, #136] ; (80058ac ) + 8005824: 4a22 ldr r2, [pc, #136] ; (80058b0 ) + 8005826: 601a str r2, [r3, #0] + hdma_usart3_tx.Init.Channel = DMA_CHANNEL_4; + 8005828: 4b20 ldr r3, [pc, #128] ; (80058ac ) + 800582a: f04f 6200 mov.w r2, #134217728 ; 0x8000000 + 800582e: 605a str r2, [r3, #4] + hdma_usart3_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; + 8005830: 4b1e ldr r3, [pc, #120] ; (80058ac ) + 8005832: 2240 movs r2, #64 ; 0x40 + 8005834: 609a str r2, [r3, #8] + hdma_usart3_tx.Init.PeriphInc = DMA_PINC_DISABLE; + 8005836: 4b1d ldr r3, [pc, #116] ; (80058ac ) + 8005838: 2200 movs r2, #0 + 800583a: 60da str r2, [r3, #12] + hdma_usart3_tx.Init.MemInc = DMA_MINC_ENABLE; + 800583c: 4b1b ldr r3, [pc, #108] ; (80058ac ) + 800583e: f44f 6280 mov.w r2, #1024 ; 0x400 + 8005842: 611a str r2, [r3, #16] + hdma_usart3_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + 8005844: 4b19 ldr r3, [pc, #100] ; (80058ac ) + 8005846: 2200 movs r2, #0 + 8005848: 615a str r2, [r3, #20] + hdma_usart3_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + 800584a: 4b18 ldr r3, [pc, #96] ; (80058ac ) + 800584c: 2200 movs r2, #0 + 800584e: 619a str r2, [r3, #24] + hdma_usart3_tx.Init.Mode = DMA_NORMAL; + 8005850: 4b16 ldr r3, [pc, #88] ; (80058ac ) + 8005852: 2200 movs r2, #0 + 8005854: 61da str r2, [r3, #28] + hdma_usart3_tx.Init.Priority = DMA_PRIORITY_LOW; + 8005856: 4b15 ldr r3, [pc, #84] ; (80058ac ) + 8005858: 2200 movs r2, #0 + 800585a: 621a str r2, [r3, #32] + hdma_usart3_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; + 800585c: 4b13 ldr r3, [pc, #76] ; (80058ac ) + 800585e: 2200 movs r2, #0 + 8005860: 625a str r2, [r3, #36] ; 0x24 + if (HAL_DMA_Init(&hdma_usart3_tx) != HAL_OK) + 8005862: 4812 ldr r0, [pc, #72] ; (80058ac ) + 8005864: f7fb f802 bl 800086c + 8005868: 4603 mov r3, r0 + 800586a: 2b00 cmp r3, #0 + 800586c: d001 beq.n 8005872 + { + Error_Handler(); + 800586e: f7ff f9ab bl 8004bc8 + } + + __HAL_LINKDMA(huart,hdmatx,hdma_usart3_tx); + 8005872: 687b ldr r3, [r7, #4] + 8005874: 4a0d ldr r2, [pc, #52] ; (80058ac ) + 8005876: 669a str r2, [r3, #104] ; 0x68 + 8005878: 4a0c ldr r2, [pc, #48] ; (80058ac ) + 800587a: 687b ldr r3, [r7, #4] + 800587c: 6393 str r3, [r2, #56] ; 0x38 + + /* USART3 interrupt Init */ + HAL_NVIC_SetPriority(USART3_IRQn, 0, 0); + 800587e: 2200 movs r2, #0 + 8005880: 2100 movs r1, #0 + 8005882: 2027 movs r0, #39 ; 0x27 + 8005884: f7fa ffbb bl 80007fe + HAL_NVIC_EnableIRQ(USART3_IRQn); + 8005888: 2027 movs r0, #39 ; 0x27 + 800588a: f7fa ffd4 bl 8000836 + /* USER CODE BEGIN USART3_MspInit 1 */ + + /* USER CODE END USART3_MspInit 1 */ + } + +} + 800588e: bf00 nop + 8005890: 3728 adds r7, #40 ; 0x28 + 8005892: 46bd mov sp, r7 + 8005894: bd80 pop {r7, pc} + 8005896: bf00 nop + 8005898: 40004800 .word 0x40004800 + 800589c: 40023800 .word 0x40023800 + 80058a0: 40020c00 .word 0x40020c00 + 80058a4: 20000154 .word 0x20000154 + 80058a8: 40026028 .word 0x40026028 + 80058ac: 200001b4 .word 0x200001b4 + 80058b0: 40026058 .word 0x40026058 + +080058b4 : +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + 80058b4: b480 push {r7} + 80058b6: af00 add r7, sp, #0 + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + + /* USER CODE END NonMaskableInt_IRQn 1 */ +} + 80058b8: bf00 nop + 80058ba: 46bd mov sp, r7 + 80058bc: f85d 7b04 ldr.w r7, [sp], #4 + 80058c0: 4770 bx lr + +080058c2 : + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + 80058c2: b480 push {r7} + 80058c4: af00 add r7, sp, #0 + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + 80058c6: e7fe b.n 80058c6 + +080058c8 : + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + 80058c8: b480 push {r7} + 80058ca: af00 add r7, sp, #0 + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + 80058cc: e7fe b.n 80058cc + +080058ce : + +/** + * @brief This function handles Pre-fetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + 80058ce: b480 push {r7} + 80058d0: af00 add r7, sp, #0 + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + 80058d2: e7fe b.n 80058d2 + +080058d4 : + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + 80058d4: b480 push {r7} + 80058d6: af00 add r7, sp, #0 + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + 80058d8: e7fe b.n 80058d8 + +080058da : + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + 80058da: b480 push {r7} + 80058dc: af00 add r7, sp, #0 + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + 80058de: bf00 nop + 80058e0: 46bd mov sp, r7 + 80058e2: f85d 7b04 ldr.w r7, [sp], #4 + 80058e6: 4770 bx lr + +080058e8 : + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + 80058e8: b480 push {r7} + 80058ea: af00 add r7, sp, #0 + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + 80058ec: bf00 nop + 80058ee: 46bd mov sp, r7 + 80058f0: f85d 7b04 ldr.w r7, [sp], #4 + 80058f4: 4770 bx lr + +080058f6 : + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + 80058f6: b480 push {r7} + 80058f8: af00 add r7, sp, #0 + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + 80058fa: bf00 nop + 80058fc: 46bd mov sp, r7 + 80058fe: f85d 7b04 ldr.w r7, [sp], #4 + 8005902: 4770 bx lr + +08005904 : + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + 8005904: b580 push {r7, lr} + 8005906: af00 add r7, sp, #0 + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + 8005908: f7fa fe5c bl 80005c4 + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + 800590c: bf00 nop + 800590e: bd80 pop {r7, pc} + +08005910 : + +/** + * @brief This function handles DMA1 stream1 global interrupt. + */ +void DMA1_Stream1_IRQHandler(void) +{ + 8005910: b580 push {r7, lr} + 8005912: af00 add r7, sp, #0 + /* USER CODE BEGIN DMA1_Stream1_IRQn 0 */ + + /* USER CODE END DMA1_Stream1_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_usart3_rx); + 8005914: 4802 ldr r0, [pc, #8] ; (8005920 ) + 8005916: f7fb f8d9 bl 8000acc + /* USER CODE BEGIN DMA1_Stream1_IRQn 1 */ + + /* USER CODE END DMA1_Stream1_IRQn 1 */ +} + 800591a: bf00 nop + 800591c: bd80 pop {r7, pc} + 800591e: bf00 nop + 8005920: 20000154 .word 0x20000154 + +08005924 : + +/** + * @brief This function handles DMA1 stream3 global interrupt. + */ +void DMA1_Stream3_IRQHandler(void) +{ + 8005924: b580 push {r7, lr} + 8005926: af00 add r7, sp, #0 + /* USER CODE BEGIN DMA1_Stream3_IRQn 0 */ + + /* USER CODE END DMA1_Stream3_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_usart3_tx); + 8005928: 4802 ldr r0, [pc, #8] ; (8005934 ) + 800592a: f7fb f8cf bl 8000acc + /* USER CODE BEGIN DMA1_Stream3_IRQn 1 */ + + /* USER CODE END DMA1_Stream3_IRQn 1 */ +} + 800592e: bf00 nop + 8005930: bd80 pop {r7, pc} + 8005932: bf00 nop + 8005934: 200001b4 .word 0x200001b4 + +08005938 : + +/** + * @brief This function handles USART3 global interrupt. + */ +void USART3_IRQHandler(void) +{ + 8005938: b580 push {r7, lr} + 800593a: af00 add r7, sp, #0 + /* USER CODE BEGIN USART3_IRQn 0 */ + + /* USER CODE END USART3_IRQn 0 */ + HAL_UART_IRQHandler(&huart3); + 800593c: 4802 ldr r0, [pc, #8] ; (8005948 ) + 800593e: f7fd f931 bl 8002ba4 + /* USER CODE BEGIN USART3_IRQn 1 */ + + /* USER CODE END USART3_IRQn 1 */ +} + 8005942: bf00 nop + 8005944: bd80 pop {r7, pc} + 8005946: bf00 nop + 8005948: 200000d4 .word 0x200000d4 + +0800594c <_getpid>: +void initialise_monitor_handles() +{ +} + +int _getpid(void) +{ + 800594c: b480 push {r7} + 800594e: af00 add r7, sp, #0 + return 1; + 8005950: 2301 movs r3, #1 +} + 8005952: 4618 mov r0, r3 + 8005954: 46bd mov sp, r7 + 8005956: f85d 7b04 ldr.w r7, [sp], #4 + 800595a: 4770 bx lr + +0800595c <_kill>: + +int _kill(int pid, int sig) +{ + 800595c: b580 push {r7, lr} + 800595e: b082 sub sp, #8 + 8005960: af00 add r7, sp, #0 + 8005962: 6078 str r0, [r7, #4] + 8005964: 6039 str r1, [r7, #0] + errno = EINVAL; + 8005966: f000 f8b9 bl 8005adc <__errno> + 800596a: 4602 mov r2, r0 + 800596c: 2316 movs r3, #22 + 800596e: 6013 str r3, [r2, #0] + return -1; + 8005970: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff +} + 8005974: 4618 mov r0, r3 + 8005976: 3708 adds r7, #8 + 8005978: 46bd mov sp, r7 + 800597a: bd80 pop {r7, pc} + +0800597c <_exit>: + +void _exit (int status) +{ + 800597c: b580 push {r7, lr} + 800597e: b082 sub sp, #8 + 8005980: af00 add r7, sp, #0 + 8005982: 6078 str r0, [r7, #4] + _kill(status, -1); + 8005984: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff + 8005988: 6878 ldr r0, [r7, #4] + 800598a: f7ff ffe7 bl 800595c <_kill> + while (1) {} /* Make sure we hang here */ + 800598e: e7fe b.n 800598e <_exit+0x12> + +08005990 <_sbrk>: +/** + _sbrk + Increase program data space. Malloc and related functions depend on this +**/ +caddr_t _sbrk(int incr) +{ + 8005990: b580 push {r7, lr} + 8005992: b084 sub sp, #16 + 8005994: af00 add r7, sp, #0 + 8005996: 6078 str r0, [r7, #4] + extern char end asm("end"); + static char *heap_end; + char *prev_heap_end; + + if (heap_end == 0) + 8005998: 4b11 ldr r3, [pc, #68] ; (80059e0 <_sbrk+0x50>) + 800599a: 681b ldr r3, [r3, #0] + 800599c: 2b00 cmp r3, #0 + 800599e: d102 bne.n 80059a6 <_sbrk+0x16> + heap_end = &end; + 80059a0: 4b0f ldr r3, [pc, #60] ; (80059e0 <_sbrk+0x50>) + 80059a2: 4a10 ldr r2, [pc, #64] ; (80059e4 <_sbrk+0x54>) + 80059a4: 601a str r2, [r3, #0] + + prev_heap_end = heap_end; + 80059a6: 4b0e ldr r3, [pc, #56] ; (80059e0 <_sbrk+0x50>) + 80059a8: 681b ldr r3, [r3, #0] + 80059aa: 60fb str r3, [r7, #12] + if (heap_end + incr > stack_ptr) + 80059ac: 4b0c ldr r3, [pc, #48] ; (80059e0 <_sbrk+0x50>) + 80059ae: 681a ldr r2, [r3, #0] + 80059b0: 687b ldr r3, [r7, #4] + 80059b2: 4413 add r3, r2 + 80059b4: 466a mov r2, sp + 80059b6: 4293 cmp r3, r2 + 80059b8: d907 bls.n 80059ca <_sbrk+0x3a> + { + errno = ENOMEM; + 80059ba: f000 f88f bl 8005adc <__errno> + 80059be: 4602 mov r2, r0 + 80059c0: 230c movs r3, #12 + 80059c2: 6013 str r3, [r2, #0] + return (caddr_t) -1; + 80059c4: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff + 80059c8: e006 b.n 80059d8 <_sbrk+0x48> + } + + heap_end += incr; + 80059ca: 4b05 ldr r3, [pc, #20] ; (80059e0 <_sbrk+0x50>) + 80059cc: 681a ldr r2, [r3, #0] + 80059ce: 687b ldr r3, [r7, #4] + 80059d0: 4413 add r3, r2 + 80059d2: 4a03 ldr r2, [pc, #12] ; (80059e0 <_sbrk+0x50>) + 80059d4: 6013 str r3, [r2, #0] + + return (caddr_t) prev_heap_end; + 80059d6: 68fb ldr r3, [r7, #12] +} + 80059d8: 4618 mov r0, r3 + 80059da: 3710 adds r7, #16 + 80059dc: 46bd mov sp, r7 + 80059de: bd80 pop {r7, pc} + 80059e0: 20000214 .word 0x20000214 + 80059e4: 20000228 .word 0x20000228 + +080059e8 : + * SystemFrequency variable. + * @param None + * @retval None + */ +void SystemInit(void) +{ + 80059e8: b480 push {r7} + 80059ea: af00 add r7, sp, #0 + /* FPU settings ------------------------------------------------------------*/ + #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ + 80059ec: 4b15 ldr r3, [pc, #84] ; (8005a44 ) + 80059ee: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 + 80059f2: 4a14 ldr r2, [pc, #80] ; (8005a44 ) + 80059f4: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 + 80059f8: f8c2 3088 str.w r3, [r2, #136] ; 0x88 + #endif + /* Reset the RCC clock configuration to the default reset state ------------*/ + /* Set HSION bit */ + RCC->CR |= (uint32_t)0x00000001; + 80059fc: 4b12 ldr r3, [pc, #72] ; (8005a48 ) + 80059fe: 681b ldr r3, [r3, #0] + 8005a00: 4a11 ldr r2, [pc, #68] ; (8005a48 ) + 8005a02: f043 0301 orr.w r3, r3, #1 + 8005a06: 6013 str r3, [r2, #0] + + /* Reset CFGR register */ + RCC->CFGR = 0x00000000; + 8005a08: 4b0f ldr r3, [pc, #60] ; (8005a48 ) + 8005a0a: 2200 movs r2, #0 + 8005a0c: 609a str r2, [r3, #8] + + /* Reset HSEON, CSSON and PLLON bits */ + RCC->CR &= (uint32_t)0xFEF6FFFF; + 8005a0e: 4b0e ldr r3, [pc, #56] ; (8005a48 ) + 8005a10: 681a ldr r2, [r3, #0] + 8005a12: 490d ldr r1, [pc, #52] ; (8005a48 ) + 8005a14: 4b0d ldr r3, [pc, #52] ; (8005a4c ) + 8005a16: 4013 ands r3, r2 + 8005a18: 600b str r3, [r1, #0] + + /* Reset PLLCFGR register */ + RCC->PLLCFGR = 0x24003010; + 8005a1a: 4b0b ldr r3, [pc, #44] ; (8005a48 ) + 8005a1c: 4a0c ldr r2, [pc, #48] ; (8005a50 ) + 8005a1e: 605a str r2, [r3, #4] + + /* Reset HSEBYP bit */ + RCC->CR &= (uint32_t)0xFFFBFFFF; + 8005a20: 4b09 ldr r3, [pc, #36] ; (8005a48 ) + 8005a22: 681b ldr r3, [r3, #0] + 8005a24: 4a08 ldr r2, [pc, #32] ; (8005a48 ) + 8005a26: f423 2380 bic.w r3, r3, #262144 ; 0x40000 + 8005a2a: 6013 str r3, [r2, #0] + + /* Disable all interrupts */ + RCC->CIR = 0x00000000; + 8005a2c: 4b06 ldr r3, [pc, #24] ; (8005a48 ) + 8005a2e: 2200 movs r2, #0 + 8005a30: 60da str r2, [r3, #12] + + /* Configure the Vector Table location add offset address ------------------*/ +#ifdef VECT_TAB_SRAM + SCB->VTOR = RAMDTCM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ + 8005a32: 4b04 ldr r3, [pc, #16] ; (8005a44 ) + 8005a34: f04f 6200 mov.w r2, #134217728 ; 0x8000000 + 8005a38: 609a str r2, [r3, #8] +#endif +} + 8005a3a: bf00 nop + 8005a3c: 46bd mov sp, r7 + 8005a3e: f85d 7b04 ldr.w r7, [sp], #4 + 8005a42: 4770 bx lr + 8005a44: e000ed00 .word 0xe000ed00 + 8005a48: 40023800 .word 0x40023800 + 8005a4c: fef6ffff .word 0xfef6ffff + 8005a50: 24003010 .word 0x24003010 + +08005a54 : + + .section .text.Reset_Handler + .weak Reset_Handler + .type Reset_Handler, %function +Reset_Handler: + ldr sp, =_estack /* set stack pointer */ + 8005a54: f8df d034 ldr.w sp, [pc, #52] ; 8005a8c + +/* Copy the data segment initializers from flash to SRAM */ + movs r1, #0 + 8005a58: 2100 movs r1, #0 + b LoopCopyDataInit + 8005a5a: e003 b.n 8005a64 + +08005a5c : + +CopyDataInit: + ldr r3, =_sidata + 8005a5c: 4b0c ldr r3, [pc, #48] ; (8005a90 ) + ldr r3, [r3, r1] + 8005a5e: 585b ldr r3, [r3, r1] + str r3, [r0, r1] + 8005a60: 5043 str r3, [r0, r1] + adds r1, r1, #4 + 8005a62: 3104 adds r1, #4 + +08005a64 : + +LoopCopyDataInit: + ldr r0, =_sdata + 8005a64: 480b ldr r0, [pc, #44] ; (8005a94 ) + ldr r3, =_edata + 8005a66: 4b0c ldr r3, [pc, #48] ; (8005a98 ) + adds r2, r0, r1 + 8005a68: 1842 adds r2, r0, r1 + cmp r2, r3 + 8005a6a: 429a cmp r2, r3 + bcc CopyDataInit + 8005a6c: d3f6 bcc.n 8005a5c + ldr r2, =_sbss + 8005a6e: 4a0b ldr r2, [pc, #44] ; (8005a9c ) + b LoopFillZerobss + 8005a70: e002 b.n 8005a78 + +08005a72 : +/* Zero fill the bss segment. */ +FillZerobss: + movs r3, #0 + 8005a72: 2300 movs r3, #0 + str r3, [r2], #4 + 8005a74: f842 3b04 str.w r3, [r2], #4 + +08005a78 : + +LoopFillZerobss: + ldr r3, = _ebss + 8005a78: 4b09 ldr r3, [pc, #36] ; (8005aa0 ) + cmp r2, r3 + 8005a7a: 429a cmp r2, r3 + bcc FillZerobss + 8005a7c: d3f9 bcc.n 8005a72 + +/* Call the clock system initialization function.*/ + bl SystemInit + 8005a7e: f7ff ffb3 bl 80059e8 +/* Call static constructors */ + bl __libc_init_array + 8005a82: f000 f831 bl 8005ae8 <__libc_init_array> +/* Call the application's entry point.*/ + bl main + 8005a86: f7fe fef7 bl 8004878
+ bx lr + 8005a8a: 4770 bx lr + ldr sp, =_estack /* set stack pointer */ + 8005a8c: 20080000 .word 0x20080000 + ldr r3, =_sidata + 8005a90: 08006038 .word 0x08006038 + ldr r0, =_sdata + 8005a94: 20000000 .word 0x20000000 + ldr r3, =_edata + 8005a98: 20000074 .word 0x20000074 + ldr r2, =_sbss + 8005a9c: 20000074 .word 0x20000074 + ldr r3, = _ebss + 8005aa0: 20000228 .word 0x20000228 + +08005aa4 : + * @retval None +*/ + .section .text.Default_Handler,"ax",%progbits +Default_Handler: +Infinite_Loop: + b Infinite_Loop + 8005aa4: e7fe b.n 8005aa4 + +08005aa6 <__cxa_pure_virtual>: + 8005aa6: b508 push {r3, lr} + 8005aa8: f000 f80c bl 8005ac4 <_ZSt9terminatev> + +08005aac <_ZN10__cxxabiv111__terminateEPFvvE>: + 8005aac: b508 push {r3, lr} + 8005aae: 4780 blx r0 + 8005ab0: f000 f80d bl 8005ace + +08005ab4 <_ZSt13get_terminatev>: + 8005ab4: 4b02 ldr r3, [pc, #8] ; (8005ac0 <_ZSt13get_terminatev+0xc>) + 8005ab6: 6818 ldr r0, [r3, #0] + 8005ab8: f3bf 8f5b dmb ish + 8005abc: 4770 bx lr + 8005abe: bf00 nop + 8005ac0: 2000000c .word 0x2000000c + +08005ac4 <_ZSt9terminatev>: + 8005ac4: b508 push {r3, lr} + 8005ac6: f7ff fff5 bl 8005ab4 <_ZSt13get_terminatev> + 8005aca: f7ff ffef bl 8005aac <_ZN10__cxxabiv111__terminateEPFvvE> + +08005ace : + 8005ace: b508 push {r3, lr} + 8005ad0: 2006 movs r0, #6 + 8005ad2: f000 f871 bl 8005bb8 + 8005ad6: 2001 movs r0, #1 + 8005ad8: f7ff ff50 bl 800597c <_exit> + +08005adc <__errno>: + 8005adc: 4b01 ldr r3, [pc, #4] ; (8005ae4 <__errno+0x8>) + 8005ade: 6818 ldr r0, [r3, #0] + 8005ae0: 4770 bx lr + 8005ae2: bf00 nop + 8005ae4: 20000010 .word 0x20000010 + +08005ae8 <__libc_init_array>: + 8005ae8: b570 push {r4, r5, r6, lr} + 8005aea: 4e0d ldr r6, [pc, #52] ; (8005b20 <__libc_init_array+0x38>) + 8005aec: 4c0d ldr r4, [pc, #52] ; (8005b24 <__libc_init_array+0x3c>) + 8005aee: 1ba4 subs r4, r4, r6 + 8005af0: 10a4 asrs r4, r4, #2 + 8005af2: 2500 movs r5, #0 + 8005af4: 42a5 cmp r5, r4 + 8005af6: d109 bne.n 8005b0c <__libc_init_array+0x24> + 8005af8: 4e0b ldr r6, [pc, #44] ; (8005b28 <__libc_init_array+0x40>) + 8005afa: 4c0c ldr r4, [pc, #48] ; (8005b2c <__libc_init_array+0x44>) + 8005afc: f000 f960 bl 8005dc0 <_init> + 8005b00: 1ba4 subs r4, r4, r6 + 8005b02: 10a4 asrs r4, r4, #2 + 8005b04: 2500 movs r5, #0 + 8005b06: 42a5 cmp r5, r4 + 8005b08: d105 bne.n 8005b16 <__libc_init_array+0x2e> + 8005b0a: bd70 pop {r4, r5, r6, pc} + 8005b0c: f856 3025 ldr.w r3, [r6, r5, lsl #2] + 8005b10: 4798 blx r3 + 8005b12: 3501 adds r5, #1 + 8005b14: e7ee b.n 8005af4 <__libc_init_array+0xc> + 8005b16: f856 3025 ldr.w r3, [r6, r5, lsl #2] + 8005b1a: 4798 blx r3 + 8005b1c: 3501 adds r5, #1 + 8005b1e: e7f2 b.n 8005b06 <__libc_init_array+0x1e> + 8005b20: 08006030 .word 0x08006030 + 8005b24: 08006030 .word 0x08006030 + 8005b28: 08006030 .word 0x08006030 + 8005b2c: 08006034 .word 0x08006034 + +08005b30 : + 8005b30: b510 push {r4, lr} + 8005b32: 1e43 subs r3, r0, #1 + 8005b34: 440a add r2, r1 + 8005b36: 4291 cmp r1, r2 + 8005b38: d100 bne.n 8005b3c + 8005b3a: bd10 pop {r4, pc} + 8005b3c: f811 4b01 ldrb.w r4, [r1], #1 + 8005b40: f803 4f01 strb.w r4, [r3, #1]! + 8005b44: e7f7 b.n 8005b36 + +08005b46 : + 8005b46: 4402 add r2, r0 + 8005b48: 4603 mov r3, r0 + 8005b4a: 4293 cmp r3, r2 + 8005b4c: d100 bne.n 8005b50 + 8005b4e: 4770 bx lr + 8005b50: f803 1b01 strb.w r1, [r3], #1 + 8005b54: e7f9 b.n 8005b4a + ... + +08005b58 : + 8005b58: 4b02 ldr r3, [pc, #8] ; (8005b64 ) + 8005b5a: 460a mov r2, r1 + 8005b5c: 4601 mov r1, r0 + 8005b5e: 6818 ldr r0, [r3, #0] + 8005b60: f000 b8a0 b.w 8005ca4 <_realloc_r> + 8005b64: 20000010 .word 0x20000010 + +08005b68 <_raise_r>: + 8005b68: 291f cmp r1, #31 + 8005b6a: b538 push {r3, r4, r5, lr} + 8005b6c: 4604 mov r4, r0 + 8005b6e: 460d mov r5, r1 + 8005b70: d904 bls.n 8005b7c <_raise_r+0x14> + 8005b72: 2316 movs r3, #22 + 8005b74: 6003 str r3, [r0, #0] + 8005b76: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff + 8005b7a: bd38 pop {r3, r4, r5, pc} + 8005b7c: 6c42 ldr r2, [r0, #68] ; 0x44 + 8005b7e: b112 cbz r2, 8005b86 <_raise_r+0x1e> + 8005b80: f852 3021 ldr.w r3, [r2, r1, lsl #2] + 8005b84: b94b cbnz r3, 8005b9a <_raise_r+0x32> + 8005b86: 4620 mov r0, r4 + 8005b88: f000 f830 bl 8005bec <_getpid_r> + 8005b8c: 462a mov r2, r5 + 8005b8e: 4601 mov r1, r0 + 8005b90: 4620 mov r0, r4 + 8005b92: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} + 8005b96: f000 b817 b.w 8005bc8 <_kill_r> + 8005b9a: 2b01 cmp r3, #1 + 8005b9c: d00a beq.n 8005bb4 <_raise_r+0x4c> + 8005b9e: 1c59 adds r1, r3, #1 + 8005ba0: d103 bne.n 8005baa <_raise_r+0x42> + 8005ba2: 2316 movs r3, #22 + 8005ba4: 6003 str r3, [r0, #0] + 8005ba6: 2001 movs r0, #1 + 8005ba8: e7e7 b.n 8005b7a <_raise_r+0x12> + 8005baa: 2400 movs r4, #0 + 8005bac: f842 4025 str.w r4, [r2, r5, lsl #2] + 8005bb0: 4628 mov r0, r5 + 8005bb2: 4798 blx r3 + 8005bb4: 2000 movs r0, #0 + 8005bb6: e7e0 b.n 8005b7a <_raise_r+0x12> + +08005bb8 : + 8005bb8: 4b02 ldr r3, [pc, #8] ; (8005bc4 ) + 8005bba: 4601 mov r1, r0 + 8005bbc: 6818 ldr r0, [r3, #0] + 8005bbe: f7ff bfd3 b.w 8005b68 <_raise_r> + 8005bc2: bf00 nop + 8005bc4: 20000010 .word 0x20000010 + +08005bc8 <_kill_r>: + 8005bc8: b538 push {r3, r4, r5, lr} + 8005bca: 4c07 ldr r4, [pc, #28] ; (8005be8 <_kill_r+0x20>) + 8005bcc: 2300 movs r3, #0 + 8005bce: 4605 mov r5, r0 + 8005bd0: 4608 mov r0, r1 + 8005bd2: 4611 mov r1, r2 + 8005bd4: 6023 str r3, [r4, #0] + 8005bd6: f7ff fec1 bl 800595c <_kill> + 8005bda: 1c43 adds r3, r0, #1 + 8005bdc: d102 bne.n 8005be4 <_kill_r+0x1c> + 8005bde: 6823 ldr r3, [r4, #0] + 8005be0: b103 cbz r3, 8005be4 <_kill_r+0x1c> + 8005be2: 602b str r3, [r5, #0] + 8005be4: bd38 pop {r3, r4, r5, pc} + 8005be6: bf00 nop + 8005be8: 20000224 .word 0x20000224 + +08005bec <_getpid_r>: + 8005bec: f7ff beae b.w 800594c <_getpid> + +08005bf0 <_malloc_r>: + 8005bf0: b570 push {r4, r5, r6, lr} + 8005bf2: 1ccd adds r5, r1, #3 + 8005bf4: f025 0503 bic.w r5, r5, #3 + 8005bf8: 3508 adds r5, #8 + 8005bfa: 2d0c cmp r5, #12 + 8005bfc: bf38 it cc + 8005bfe: 250c movcc r5, #12 + 8005c00: 2d00 cmp r5, #0 + 8005c02: 4606 mov r6, r0 + 8005c04: db01 blt.n 8005c0a <_malloc_r+0x1a> + 8005c06: 42a9 cmp r1, r5 + 8005c08: d903 bls.n 8005c12 <_malloc_r+0x22> + 8005c0a: 230c movs r3, #12 + 8005c0c: 6033 str r3, [r6, #0] + 8005c0e: 2000 movs r0, #0 + 8005c10: bd70 pop {r4, r5, r6, pc} + 8005c12: f000 f87d bl 8005d10 <__malloc_lock> + 8005c16: 4a21 ldr r2, [pc, #132] ; (8005c9c <_malloc_r+0xac>) + 8005c18: 6814 ldr r4, [r2, #0] + 8005c1a: 4621 mov r1, r4 + 8005c1c: b991 cbnz r1, 8005c44 <_malloc_r+0x54> + 8005c1e: 4c20 ldr r4, [pc, #128] ; (8005ca0 <_malloc_r+0xb0>) + 8005c20: 6823 ldr r3, [r4, #0] + 8005c22: b91b cbnz r3, 8005c2c <_malloc_r+0x3c> + 8005c24: 4630 mov r0, r6 + 8005c26: f000 f863 bl 8005cf0 <_sbrk_r> + 8005c2a: 6020 str r0, [r4, #0] + 8005c2c: 4629 mov r1, r5 + 8005c2e: 4630 mov r0, r6 + 8005c30: f000 f85e bl 8005cf0 <_sbrk_r> + 8005c34: 1c43 adds r3, r0, #1 + 8005c36: d124 bne.n 8005c82 <_malloc_r+0x92> + 8005c38: 230c movs r3, #12 + 8005c3a: 6033 str r3, [r6, #0] + 8005c3c: 4630 mov r0, r6 + 8005c3e: f000 f868 bl 8005d12 <__malloc_unlock> + 8005c42: e7e4 b.n 8005c0e <_malloc_r+0x1e> + 8005c44: 680b ldr r3, [r1, #0] + 8005c46: 1b5b subs r3, r3, r5 + 8005c48: d418 bmi.n 8005c7c <_malloc_r+0x8c> + 8005c4a: 2b0b cmp r3, #11 + 8005c4c: d90f bls.n 8005c6e <_malloc_r+0x7e> + 8005c4e: 600b str r3, [r1, #0] + 8005c50: 50cd str r5, [r1, r3] + 8005c52: 18cc adds r4, r1, r3 + 8005c54: 4630 mov r0, r6 + 8005c56: f000 f85c bl 8005d12 <__malloc_unlock> + 8005c5a: f104 000b add.w r0, r4, #11 + 8005c5e: 1d23 adds r3, r4, #4 + 8005c60: f020 0007 bic.w r0, r0, #7 + 8005c64: 1ac3 subs r3, r0, r3 + 8005c66: d0d3 beq.n 8005c10 <_malloc_r+0x20> + 8005c68: 425a negs r2, r3 + 8005c6a: 50e2 str r2, [r4, r3] + 8005c6c: e7d0 b.n 8005c10 <_malloc_r+0x20> + 8005c6e: 428c cmp r4, r1 + 8005c70: 684b ldr r3, [r1, #4] + 8005c72: bf16 itet ne + 8005c74: 6063 strne r3, [r4, #4] + 8005c76: 6013 streq r3, [r2, #0] + 8005c78: 460c movne r4, r1 + 8005c7a: e7eb b.n 8005c54 <_malloc_r+0x64> + 8005c7c: 460c mov r4, r1 + 8005c7e: 6849 ldr r1, [r1, #4] + 8005c80: e7cc b.n 8005c1c <_malloc_r+0x2c> + 8005c82: 1cc4 adds r4, r0, #3 + 8005c84: f024 0403 bic.w r4, r4, #3 + 8005c88: 42a0 cmp r0, r4 + 8005c8a: d005 beq.n 8005c98 <_malloc_r+0xa8> + 8005c8c: 1a21 subs r1, r4, r0 + 8005c8e: 4630 mov r0, r6 + 8005c90: f000 f82e bl 8005cf0 <_sbrk_r> + 8005c94: 3001 adds r0, #1 + 8005c96: d0cf beq.n 8005c38 <_malloc_r+0x48> + 8005c98: 6025 str r5, [r4, #0] + 8005c9a: e7db b.n 8005c54 <_malloc_r+0x64> + 8005c9c: 20000218 .word 0x20000218 + 8005ca0: 2000021c .word 0x2000021c + +08005ca4 <_realloc_r>: + 8005ca4: b5f8 push {r3, r4, r5, r6, r7, lr} + 8005ca6: 4607 mov r7, r0 + 8005ca8: 4614 mov r4, r2 + 8005caa: 460e mov r6, r1 + 8005cac: b921 cbnz r1, 8005cb8 <_realloc_r+0x14> + 8005cae: 4611 mov r1, r2 + 8005cb0: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} + 8005cb4: f7ff bf9c b.w 8005bf0 <_malloc_r> + 8005cb8: b922 cbnz r2, 8005cc4 <_realloc_r+0x20> + 8005cba: f000 f82b bl 8005d14 <_free_r> + 8005cbe: 4625 mov r5, r4 + 8005cc0: 4628 mov r0, r5 + 8005cc2: bdf8 pop {r3, r4, r5, r6, r7, pc} + 8005cc4: f000 f874 bl 8005db0 <_malloc_usable_size_r> + 8005cc8: 42a0 cmp r0, r4 + 8005cca: d20f bcs.n 8005cec <_realloc_r+0x48> + 8005ccc: 4621 mov r1, r4 + 8005cce: 4638 mov r0, r7 + 8005cd0: f7ff ff8e bl 8005bf0 <_malloc_r> + 8005cd4: 4605 mov r5, r0 + 8005cd6: 2800 cmp r0, #0 + 8005cd8: d0f2 beq.n 8005cc0 <_realloc_r+0x1c> + 8005cda: 4631 mov r1, r6 + 8005cdc: 4622 mov r2, r4 + 8005cde: f7ff ff27 bl 8005b30 + 8005ce2: 4631 mov r1, r6 + 8005ce4: 4638 mov r0, r7 + 8005ce6: f000 f815 bl 8005d14 <_free_r> + 8005cea: e7e9 b.n 8005cc0 <_realloc_r+0x1c> + 8005cec: 4635 mov r5, r6 + 8005cee: e7e7 b.n 8005cc0 <_realloc_r+0x1c> + +08005cf0 <_sbrk_r>: + 8005cf0: b538 push {r3, r4, r5, lr} + 8005cf2: 4c06 ldr r4, [pc, #24] ; (8005d0c <_sbrk_r+0x1c>) + 8005cf4: 2300 movs r3, #0 + 8005cf6: 4605 mov r5, r0 + 8005cf8: 4608 mov r0, r1 + 8005cfa: 6023 str r3, [r4, #0] + 8005cfc: f7ff fe48 bl 8005990 <_sbrk> + 8005d00: 1c43 adds r3, r0, #1 + 8005d02: d102 bne.n 8005d0a <_sbrk_r+0x1a> + 8005d04: 6823 ldr r3, [r4, #0] + 8005d06: b103 cbz r3, 8005d0a <_sbrk_r+0x1a> + 8005d08: 602b str r3, [r5, #0] + 8005d0a: bd38 pop {r3, r4, r5, pc} + 8005d0c: 20000224 .word 0x20000224 + +08005d10 <__malloc_lock>: + 8005d10: 4770 bx lr + +08005d12 <__malloc_unlock>: + 8005d12: 4770 bx lr + +08005d14 <_free_r>: + 8005d14: b538 push {r3, r4, r5, lr} + 8005d16: 4605 mov r5, r0 + 8005d18: 2900 cmp r1, #0 + 8005d1a: d045 beq.n 8005da8 <_free_r+0x94> + 8005d1c: f851 3c04 ldr.w r3, [r1, #-4] + 8005d20: 1f0c subs r4, r1, #4 + 8005d22: 2b00 cmp r3, #0 + 8005d24: bfb8 it lt + 8005d26: 18e4 addlt r4, r4, r3 + 8005d28: f7ff fff2 bl 8005d10 <__malloc_lock> + 8005d2c: 4a1f ldr r2, [pc, #124] ; (8005dac <_free_r+0x98>) + 8005d2e: 6813 ldr r3, [r2, #0] + 8005d30: 4610 mov r0, r2 + 8005d32: b933 cbnz r3, 8005d42 <_free_r+0x2e> + 8005d34: 6063 str r3, [r4, #4] + 8005d36: 6014 str r4, [r2, #0] + 8005d38: 4628 mov r0, r5 + 8005d3a: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} + 8005d3e: f7ff bfe8 b.w 8005d12 <__malloc_unlock> + 8005d42: 42a3 cmp r3, r4 + 8005d44: d90c bls.n 8005d60 <_free_r+0x4c> + 8005d46: 6821 ldr r1, [r4, #0] + 8005d48: 1862 adds r2, r4, r1 + 8005d4a: 4293 cmp r3, r2 + 8005d4c: bf04 itt eq + 8005d4e: 681a ldreq r2, [r3, #0] + 8005d50: 685b ldreq r3, [r3, #4] + 8005d52: 6063 str r3, [r4, #4] + 8005d54: bf04 itt eq + 8005d56: 1852 addeq r2, r2, r1 + 8005d58: 6022 streq r2, [r4, #0] + 8005d5a: 6004 str r4, [r0, #0] + 8005d5c: e7ec b.n 8005d38 <_free_r+0x24> + 8005d5e: 4613 mov r3, r2 + 8005d60: 685a ldr r2, [r3, #4] + 8005d62: b10a cbz r2, 8005d68 <_free_r+0x54> + 8005d64: 42a2 cmp r2, r4 + 8005d66: d9fa bls.n 8005d5e <_free_r+0x4a> + 8005d68: 6819 ldr r1, [r3, #0] + 8005d6a: 1858 adds r0, r3, r1 + 8005d6c: 42a0 cmp r0, r4 + 8005d6e: d10b bne.n 8005d88 <_free_r+0x74> + 8005d70: 6820 ldr r0, [r4, #0] + 8005d72: 4401 add r1, r0 + 8005d74: 1858 adds r0, r3, r1 + 8005d76: 4282 cmp r2, r0 + 8005d78: 6019 str r1, [r3, #0] + 8005d7a: d1dd bne.n 8005d38 <_free_r+0x24> + 8005d7c: 6810 ldr r0, [r2, #0] + 8005d7e: 6852 ldr r2, [r2, #4] + 8005d80: 605a str r2, [r3, #4] + 8005d82: 4401 add r1, r0 + 8005d84: 6019 str r1, [r3, #0] + 8005d86: e7d7 b.n 8005d38 <_free_r+0x24> + 8005d88: d902 bls.n 8005d90 <_free_r+0x7c> + 8005d8a: 230c movs r3, #12 + 8005d8c: 602b str r3, [r5, #0] + 8005d8e: e7d3 b.n 8005d38 <_free_r+0x24> + 8005d90: 6820 ldr r0, [r4, #0] + 8005d92: 1821 adds r1, r4, r0 + 8005d94: 428a cmp r2, r1 + 8005d96: bf04 itt eq + 8005d98: 6811 ldreq r1, [r2, #0] + 8005d9a: 6852 ldreq r2, [r2, #4] + 8005d9c: 6062 str r2, [r4, #4] + 8005d9e: bf04 itt eq + 8005da0: 1809 addeq r1, r1, r0 + 8005da2: 6021 streq r1, [r4, #0] + 8005da4: 605c str r4, [r3, #4] + 8005da6: e7c7 b.n 8005d38 <_free_r+0x24> + 8005da8: bd38 pop {r3, r4, r5, pc} + 8005daa: bf00 nop + 8005dac: 20000218 .word 0x20000218 + +08005db0 <_malloc_usable_size_r>: + 8005db0: f851 3c04 ldr.w r3, [r1, #-4] + 8005db4: 1f18 subs r0, r3, #4 + 8005db6: 2b00 cmp r3, #0 + 8005db8: bfbc itt lt + 8005dba: 580b ldrlt r3, [r1, r0] + 8005dbc: 18c0 addlt r0, r0, r3 + 8005dbe: 4770 bx lr + +08005dc0 <_init>: + 8005dc0: b5f8 push {r3, r4, r5, r6, r7, lr} + 8005dc2: bf00 nop + 8005dc4: bcf8 pop {r3, r4, r5, r6, r7} + 8005dc6: bc08 pop {r3} + 8005dc8: 469e mov lr, r3 + 8005dca: 4770 bx lr + +08005dcc <_fini>: + 8005dcc: b5f8 push {r3, r4, r5, r6, r7, lr} + 8005dce: bf00 nop + 8005dd0: bcf8 pop {r3, r4, r5, r6, r7} + 8005dd2: bc08 pop {r3} + 8005dd4: 469e mov lr, r3 + 8005dd6: 4770 bx lr diff --git a/rosserial_test/Debug/sources.mk b/rosserial_hello_world/Debug/sources.mk similarity index 100% rename from rosserial_test/Debug/sources.mk rename to rosserial_hello_world/Debug/sources.mk diff --git a/rosserial_test/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h b/rosserial_hello_world/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h rename to rosserial_hello_world/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h diff --git a/rosserial_test/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f7xx.h b/rosserial_hello_world/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f7xx.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f7xx.h rename to rosserial_hello_world/Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f7xx.h diff --git a/rosserial_test/Drivers/CMSIS/Device/ST/STM32F7xx/Include/system_stm32f7xx.h b/rosserial_hello_world/Drivers/CMSIS/Device/ST/STM32F7xx/Include/system_stm32f7xx.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Device/ST/STM32F7xx/Include/system_stm32f7xx.h rename to rosserial_hello_world/Drivers/CMSIS/Device/ST/STM32F7xx/Include/system_stm32f7xx.h diff --git a/rosserial_test/Drivers/CMSIS/Include/cmsis_armcc.h b/rosserial_hello_world/Drivers/CMSIS/Include/cmsis_armcc.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/cmsis_armcc.h rename to rosserial_hello_world/Drivers/CMSIS/Include/cmsis_armcc.h diff --git a/rosserial_test/Drivers/CMSIS/Include/cmsis_armclang.h b/rosserial_hello_world/Drivers/CMSIS/Include/cmsis_armclang.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/cmsis_armclang.h rename to rosserial_hello_world/Drivers/CMSIS/Include/cmsis_armclang.h diff --git a/rosserial_test/Drivers/CMSIS/Include/cmsis_compiler.h b/rosserial_hello_world/Drivers/CMSIS/Include/cmsis_compiler.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/cmsis_compiler.h rename to rosserial_hello_world/Drivers/CMSIS/Include/cmsis_compiler.h diff --git a/rosserial_test/Drivers/CMSIS/Include/cmsis_gcc.h b/rosserial_hello_world/Drivers/CMSIS/Include/cmsis_gcc.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/cmsis_gcc.h rename to rosserial_hello_world/Drivers/CMSIS/Include/cmsis_gcc.h diff --git a/rosserial_test/Drivers/CMSIS/Include/cmsis_iccarm.h b/rosserial_hello_world/Drivers/CMSIS/Include/cmsis_iccarm.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/cmsis_iccarm.h rename to rosserial_hello_world/Drivers/CMSIS/Include/cmsis_iccarm.h diff --git a/rosserial_test/Drivers/CMSIS/Include/cmsis_version.h b/rosserial_hello_world/Drivers/CMSIS/Include/cmsis_version.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/cmsis_version.h rename to rosserial_hello_world/Drivers/CMSIS/Include/cmsis_version.h diff --git a/rosserial_test/Drivers/CMSIS/Include/core_armv8mbl.h b/rosserial_hello_world/Drivers/CMSIS/Include/core_armv8mbl.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/core_armv8mbl.h rename to rosserial_hello_world/Drivers/CMSIS/Include/core_armv8mbl.h diff --git a/rosserial_test/Drivers/CMSIS/Include/core_armv8mml.h b/rosserial_hello_world/Drivers/CMSIS/Include/core_armv8mml.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/core_armv8mml.h rename to rosserial_hello_world/Drivers/CMSIS/Include/core_armv8mml.h diff --git a/rosserial_test/Drivers/CMSIS/Include/core_cm0.h b/rosserial_hello_world/Drivers/CMSIS/Include/core_cm0.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/core_cm0.h rename to rosserial_hello_world/Drivers/CMSIS/Include/core_cm0.h diff --git a/rosserial_test/Drivers/CMSIS/Include/core_cm0plus.h b/rosserial_hello_world/Drivers/CMSIS/Include/core_cm0plus.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/core_cm0plus.h rename to rosserial_hello_world/Drivers/CMSIS/Include/core_cm0plus.h diff --git a/rosserial_test/Drivers/CMSIS/Include/core_cm1.h b/rosserial_hello_world/Drivers/CMSIS/Include/core_cm1.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/core_cm1.h rename to rosserial_hello_world/Drivers/CMSIS/Include/core_cm1.h diff --git a/rosserial_test/Drivers/CMSIS/Include/core_cm23.h b/rosserial_hello_world/Drivers/CMSIS/Include/core_cm23.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/core_cm23.h rename to rosserial_hello_world/Drivers/CMSIS/Include/core_cm23.h diff --git a/rosserial_test/Drivers/CMSIS/Include/core_cm3.h b/rosserial_hello_world/Drivers/CMSIS/Include/core_cm3.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/core_cm3.h rename to rosserial_hello_world/Drivers/CMSIS/Include/core_cm3.h diff --git a/rosserial_test/Drivers/CMSIS/Include/core_cm33.h b/rosserial_hello_world/Drivers/CMSIS/Include/core_cm33.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/core_cm33.h rename to rosserial_hello_world/Drivers/CMSIS/Include/core_cm33.h diff --git a/rosserial_test/Drivers/CMSIS/Include/core_cm4.h b/rosserial_hello_world/Drivers/CMSIS/Include/core_cm4.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/core_cm4.h rename to rosserial_hello_world/Drivers/CMSIS/Include/core_cm4.h diff --git a/rosserial_test/Drivers/CMSIS/Include/core_cm7.h b/rosserial_hello_world/Drivers/CMSIS/Include/core_cm7.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/core_cm7.h rename to rosserial_hello_world/Drivers/CMSIS/Include/core_cm7.h diff --git a/rosserial_test/Drivers/CMSIS/Include/core_sc000.h b/rosserial_hello_world/Drivers/CMSIS/Include/core_sc000.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/core_sc000.h rename to rosserial_hello_world/Drivers/CMSIS/Include/core_sc000.h diff --git a/rosserial_test/Drivers/CMSIS/Include/core_sc300.h b/rosserial_hello_world/Drivers/CMSIS/Include/core_sc300.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/core_sc300.h rename to rosserial_hello_world/Drivers/CMSIS/Include/core_sc300.h diff --git a/rosserial_test/Drivers/CMSIS/Include/mpu_armv7.h b/rosserial_hello_world/Drivers/CMSIS/Include/mpu_armv7.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/mpu_armv7.h rename to rosserial_hello_world/Drivers/CMSIS/Include/mpu_armv7.h diff --git a/rosserial_test/Drivers/CMSIS/Include/mpu_armv8.h b/rosserial_hello_world/Drivers/CMSIS/Include/mpu_armv8.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/mpu_armv8.h rename to rosserial_hello_world/Drivers/CMSIS/Include/mpu_armv8.h diff --git a/rosserial_test/Drivers/CMSIS/Include/tz_context.h b/rosserial_hello_world/Drivers/CMSIS/Include/tz_context.h similarity index 100% rename from rosserial_test/Drivers/CMSIS/Include/tz_context.h rename to rosserial_hello_world/Drivers/CMSIS/Include/tz_context.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_cortex.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_cortex.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_cortex.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_cortex.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma_ex.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma_ex.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma_ex.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma_ex.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_exti.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_exti.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_exti.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_exti.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash_ex.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash_ex.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash_ex.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_flash_ex.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio_ex.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio_ex.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio_ex.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_gpio_ex.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c_ex.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c_ex.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c_ex.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c_ex.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr_ex.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr_ex.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr_ex.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_pwr_ex.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc_ex.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc_ex.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc_ex.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_rcc_ex.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim_ex.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim_ex.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim_ex.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_tim_ex.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart_ex.h b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart_ex.h similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart_ex.h rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_uart_ex.h diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_exti.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_exti.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_exti.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_exti.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.c diff --git a/rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart_ex.c b/rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart_ex.c similarity index 100% rename from rosserial_test/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart_ex.c rename to rosserial_hello_world/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart_ex.c diff --git a/rosserial_test/Inc/STM32Hardware.h b/rosserial_hello_world/Inc/STM32Hardware.h similarity index 96% rename from rosserial_test/Inc/STM32Hardware.h rename to rosserial_hello_world/Inc/STM32Hardware.h index 6cd1c09..37bbb21 100644 --- a/rosserial_test/Inc/STM32Hardware.h +++ b/rosserial_hello_world/Inc/STM32Hardware.h @@ -114,12 +114,9 @@ class STM32Hardware { } flush(); - - - //HAL_UART_Transmit(&huart3, data, length, 100); } - unsigned long time(){ return __HAL_TIM_GET_COUNTER(htim); } + unsigned long time(){ return HAL_GetTick(); } protected: }; diff --git a/rosserial_test/Inc/actionlib/TestAction.h b/rosserial_hello_world/Inc/actionlib/TestAction.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestAction.h rename to rosserial_hello_world/Inc/actionlib/TestAction.h diff --git a/rosserial_test/Inc/actionlib/TestActionFeedback.h b/rosserial_hello_world/Inc/actionlib/TestActionFeedback.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestActionFeedback.h rename to rosserial_hello_world/Inc/actionlib/TestActionFeedback.h diff --git a/rosserial_test/Inc/actionlib/TestActionGoal.h b/rosserial_hello_world/Inc/actionlib/TestActionGoal.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestActionGoal.h rename to rosserial_hello_world/Inc/actionlib/TestActionGoal.h diff --git a/rosserial_test/Inc/actionlib/TestActionResult.h b/rosserial_hello_world/Inc/actionlib/TestActionResult.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestActionResult.h rename to rosserial_hello_world/Inc/actionlib/TestActionResult.h diff --git a/rosserial_test/Inc/actionlib/TestFeedback.h b/rosserial_hello_world/Inc/actionlib/TestFeedback.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestFeedback.h rename to rosserial_hello_world/Inc/actionlib/TestFeedback.h diff --git a/rosserial_test/Inc/actionlib/TestGoal.h b/rosserial_hello_world/Inc/actionlib/TestGoal.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestGoal.h rename to rosserial_hello_world/Inc/actionlib/TestGoal.h diff --git a/rosserial_test/Inc/actionlib/TestRequestAction.h b/rosserial_hello_world/Inc/actionlib/TestRequestAction.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestRequestAction.h rename to rosserial_hello_world/Inc/actionlib/TestRequestAction.h diff --git a/rosserial_test/Inc/actionlib/TestRequestActionFeedback.h b/rosserial_hello_world/Inc/actionlib/TestRequestActionFeedback.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestRequestActionFeedback.h rename to rosserial_hello_world/Inc/actionlib/TestRequestActionFeedback.h diff --git a/rosserial_test/Inc/actionlib/TestRequestActionGoal.h b/rosserial_hello_world/Inc/actionlib/TestRequestActionGoal.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestRequestActionGoal.h rename to rosserial_hello_world/Inc/actionlib/TestRequestActionGoal.h diff --git a/rosserial_test/Inc/actionlib/TestRequestActionResult.h b/rosserial_hello_world/Inc/actionlib/TestRequestActionResult.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestRequestActionResult.h rename to rosserial_hello_world/Inc/actionlib/TestRequestActionResult.h diff --git a/rosserial_test/Inc/actionlib/TestRequestFeedback.h b/rosserial_hello_world/Inc/actionlib/TestRequestFeedback.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestRequestFeedback.h rename to rosserial_hello_world/Inc/actionlib/TestRequestFeedback.h diff --git a/rosserial_test/Inc/actionlib/TestRequestGoal.h b/rosserial_hello_world/Inc/actionlib/TestRequestGoal.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestRequestGoal.h rename to rosserial_hello_world/Inc/actionlib/TestRequestGoal.h diff --git a/rosserial_test/Inc/actionlib/TestRequestResult.h b/rosserial_hello_world/Inc/actionlib/TestRequestResult.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestRequestResult.h rename to rosserial_hello_world/Inc/actionlib/TestRequestResult.h diff --git a/rosserial_test/Inc/actionlib/TestResult.h b/rosserial_hello_world/Inc/actionlib/TestResult.h similarity index 100% rename from rosserial_test/Inc/actionlib/TestResult.h rename to rosserial_hello_world/Inc/actionlib/TestResult.h diff --git a/rosserial_test/Inc/actionlib/TwoIntsAction.h b/rosserial_hello_world/Inc/actionlib/TwoIntsAction.h similarity index 100% rename from rosserial_test/Inc/actionlib/TwoIntsAction.h rename to rosserial_hello_world/Inc/actionlib/TwoIntsAction.h diff --git a/rosserial_test/Inc/actionlib/TwoIntsActionFeedback.h b/rosserial_hello_world/Inc/actionlib/TwoIntsActionFeedback.h similarity index 100% rename from rosserial_test/Inc/actionlib/TwoIntsActionFeedback.h rename to rosserial_hello_world/Inc/actionlib/TwoIntsActionFeedback.h diff --git a/rosserial_test/Inc/actionlib/TwoIntsActionGoal.h b/rosserial_hello_world/Inc/actionlib/TwoIntsActionGoal.h similarity index 100% rename from rosserial_test/Inc/actionlib/TwoIntsActionGoal.h rename to rosserial_hello_world/Inc/actionlib/TwoIntsActionGoal.h diff --git a/rosserial_test/Inc/actionlib/TwoIntsActionResult.h b/rosserial_hello_world/Inc/actionlib/TwoIntsActionResult.h similarity index 100% rename from rosserial_test/Inc/actionlib/TwoIntsActionResult.h rename to rosserial_hello_world/Inc/actionlib/TwoIntsActionResult.h diff --git a/rosserial_test/Inc/actionlib/TwoIntsFeedback.h b/rosserial_hello_world/Inc/actionlib/TwoIntsFeedback.h similarity index 100% rename from rosserial_test/Inc/actionlib/TwoIntsFeedback.h rename to rosserial_hello_world/Inc/actionlib/TwoIntsFeedback.h diff --git a/rosserial_test/Inc/actionlib/TwoIntsGoal.h b/rosserial_hello_world/Inc/actionlib/TwoIntsGoal.h similarity index 100% rename from rosserial_test/Inc/actionlib/TwoIntsGoal.h rename to rosserial_hello_world/Inc/actionlib/TwoIntsGoal.h diff --git a/rosserial_test/Inc/actionlib/TwoIntsResult.h b/rosserial_hello_world/Inc/actionlib/TwoIntsResult.h similarity index 100% rename from rosserial_test/Inc/actionlib/TwoIntsResult.h rename to rosserial_hello_world/Inc/actionlib/TwoIntsResult.h diff --git a/rosserial_test/Inc/actionlib_msgs/GoalID.h b/rosserial_hello_world/Inc/actionlib_msgs/GoalID.h similarity index 100% rename from rosserial_test/Inc/actionlib_msgs/GoalID.h rename to rosserial_hello_world/Inc/actionlib_msgs/GoalID.h diff --git a/rosserial_test/Inc/actionlib_msgs/GoalStatus.h b/rosserial_hello_world/Inc/actionlib_msgs/GoalStatus.h similarity index 100% rename from rosserial_test/Inc/actionlib_msgs/GoalStatus.h rename to rosserial_hello_world/Inc/actionlib_msgs/GoalStatus.h diff --git a/rosserial_test/Inc/actionlib_msgs/GoalStatusArray.h b/rosserial_hello_world/Inc/actionlib_msgs/GoalStatusArray.h similarity index 100% rename from rosserial_test/Inc/actionlib_msgs/GoalStatusArray.h rename to rosserial_hello_world/Inc/actionlib_msgs/GoalStatusArray.h diff --git a/rosserial_test/Inc/actionlib_tutorials/AveragingAction.h b/rosserial_hello_world/Inc/actionlib_tutorials/AveragingAction.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/AveragingAction.h rename to rosserial_hello_world/Inc/actionlib_tutorials/AveragingAction.h diff --git a/rosserial_test/Inc/actionlib_tutorials/AveragingActionFeedback.h b/rosserial_hello_world/Inc/actionlib_tutorials/AveragingActionFeedback.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/AveragingActionFeedback.h rename to rosserial_hello_world/Inc/actionlib_tutorials/AveragingActionFeedback.h diff --git a/rosserial_test/Inc/actionlib_tutorials/AveragingActionGoal.h b/rosserial_hello_world/Inc/actionlib_tutorials/AveragingActionGoal.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/AveragingActionGoal.h rename to rosserial_hello_world/Inc/actionlib_tutorials/AveragingActionGoal.h diff --git a/rosserial_test/Inc/actionlib_tutorials/AveragingActionResult.h b/rosserial_hello_world/Inc/actionlib_tutorials/AveragingActionResult.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/AveragingActionResult.h rename to rosserial_hello_world/Inc/actionlib_tutorials/AveragingActionResult.h diff --git a/rosserial_test/Inc/actionlib_tutorials/AveragingFeedback.h b/rosserial_hello_world/Inc/actionlib_tutorials/AveragingFeedback.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/AveragingFeedback.h rename to rosserial_hello_world/Inc/actionlib_tutorials/AveragingFeedback.h diff --git a/rosserial_test/Inc/actionlib_tutorials/AveragingGoal.h b/rosserial_hello_world/Inc/actionlib_tutorials/AveragingGoal.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/AveragingGoal.h rename to rosserial_hello_world/Inc/actionlib_tutorials/AveragingGoal.h diff --git a/rosserial_test/Inc/actionlib_tutorials/AveragingResult.h b/rosserial_hello_world/Inc/actionlib_tutorials/AveragingResult.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/AveragingResult.h rename to rosserial_hello_world/Inc/actionlib_tutorials/AveragingResult.h diff --git a/rosserial_test/Inc/actionlib_tutorials/FibonacciAction.h b/rosserial_hello_world/Inc/actionlib_tutorials/FibonacciAction.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/FibonacciAction.h rename to rosserial_hello_world/Inc/actionlib_tutorials/FibonacciAction.h diff --git a/rosserial_test/Inc/actionlib_tutorials/FibonacciActionFeedback.h b/rosserial_hello_world/Inc/actionlib_tutorials/FibonacciActionFeedback.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/FibonacciActionFeedback.h rename to rosserial_hello_world/Inc/actionlib_tutorials/FibonacciActionFeedback.h diff --git a/rosserial_test/Inc/actionlib_tutorials/FibonacciActionGoal.h b/rosserial_hello_world/Inc/actionlib_tutorials/FibonacciActionGoal.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/FibonacciActionGoal.h rename to rosserial_hello_world/Inc/actionlib_tutorials/FibonacciActionGoal.h diff --git a/rosserial_test/Inc/actionlib_tutorials/FibonacciActionResult.h b/rosserial_hello_world/Inc/actionlib_tutorials/FibonacciActionResult.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/FibonacciActionResult.h rename to rosserial_hello_world/Inc/actionlib_tutorials/FibonacciActionResult.h diff --git a/rosserial_test/Inc/actionlib_tutorials/FibonacciFeedback.h b/rosserial_hello_world/Inc/actionlib_tutorials/FibonacciFeedback.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/FibonacciFeedback.h rename to rosserial_hello_world/Inc/actionlib_tutorials/FibonacciFeedback.h diff --git a/rosserial_test/Inc/actionlib_tutorials/FibonacciGoal.h b/rosserial_hello_world/Inc/actionlib_tutorials/FibonacciGoal.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/FibonacciGoal.h rename to rosserial_hello_world/Inc/actionlib_tutorials/FibonacciGoal.h diff --git a/rosserial_test/Inc/actionlib_tutorials/FibonacciResult.h b/rosserial_hello_world/Inc/actionlib_tutorials/FibonacciResult.h similarity index 100% rename from rosserial_test/Inc/actionlib_tutorials/FibonacciResult.h rename to rosserial_hello_world/Inc/actionlib_tutorials/FibonacciResult.h diff --git a/rosserial_test/Inc/bond/Constants.h b/rosserial_hello_world/Inc/bond/Constants.h similarity index 100% rename from rosserial_test/Inc/bond/Constants.h rename to rosserial_hello_world/Inc/bond/Constants.h diff --git a/rosserial_test/Inc/bond/Status.h b/rosserial_hello_world/Inc/bond/Status.h similarity index 100% rename from rosserial_test/Inc/bond/Status.h rename to rosserial_hello_world/Inc/bond/Status.h diff --git a/rosserial_test/Inc/control_msgs/FollowJointTrajectoryAction.h b/rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryAction.h similarity index 100% rename from rosserial_test/Inc/control_msgs/FollowJointTrajectoryAction.h rename to rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryAction.h diff --git a/rosserial_test/Inc/control_msgs/FollowJointTrajectoryActionFeedback.h b/rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryActionFeedback.h similarity index 100% rename from rosserial_test/Inc/control_msgs/FollowJointTrajectoryActionFeedback.h rename to rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryActionFeedback.h diff --git a/rosserial_test/Inc/control_msgs/FollowJointTrajectoryActionGoal.h b/rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryActionGoal.h similarity index 100% rename from rosserial_test/Inc/control_msgs/FollowJointTrajectoryActionGoal.h rename to rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryActionGoal.h diff --git a/rosserial_test/Inc/control_msgs/FollowJointTrajectoryActionResult.h b/rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryActionResult.h similarity index 100% rename from rosserial_test/Inc/control_msgs/FollowJointTrajectoryActionResult.h rename to rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryActionResult.h diff --git a/rosserial_test/Inc/control_msgs/FollowJointTrajectoryFeedback.h b/rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryFeedback.h similarity index 100% rename from rosserial_test/Inc/control_msgs/FollowJointTrajectoryFeedback.h rename to rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryFeedback.h diff --git a/rosserial_test/Inc/control_msgs/FollowJointTrajectoryGoal.h b/rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryGoal.h similarity index 100% rename from rosserial_test/Inc/control_msgs/FollowJointTrajectoryGoal.h rename to rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryGoal.h diff --git a/rosserial_test/Inc/control_msgs/FollowJointTrajectoryResult.h b/rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryResult.h similarity index 100% rename from rosserial_test/Inc/control_msgs/FollowJointTrajectoryResult.h rename to rosserial_hello_world/Inc/control_msgs/FollowJointTrajectoryResult.h diff --git a/rosserial_test/Inc/control_msgs/GripperCommand.h b/rosserial_hello_world/Inc/control_msgs/GripperCommand.h similarity index 100% rename from rosserial_test/Inc/control_msgs/GripperCommand.h rename to rosserial_hello_world/Inc/control_msgs/GripperCommand.h diff --git a/rosserial_test/Inc/control_msgs/GripperCommandAction.h b/rosserial_hello_world/Inc/control_msgs/GripperCommandAction.h similarity index 100% rename from rosserial_test/Inc/control_msgs/GripperCommandAction.h rename to rosserial_hello_world/Inc/control_msgs/GripperCommandAction.h diff --git a/rosserial_test/Inc/control_msgs/GripperCommandActionFeedback.h b/rosserial_hello_world/Inc/control_msgs/GripperCommandActionFeedback.h similarity index 100% rename from rosserial_test/Inc/control_msgs/GripperCommandActionFeedback.h rename to rosserial_hello_world/Inc/control_msgs/GripperCommandActionFeedback.h diff --git a/rosserial_test/Inc/control_msgs/GripperCommandActionGoal.h b/rosserial_hello_world/Inc/control_msgs/GripperCommandActionGoal.h similarity index 100% rename from rosserial_test/Inc/control_msgs/GripperCommandActionGoal.h rename to rosserial_hello_world/Inc/control_msgs/GripperCommandActionGoal.h diff --git a/rosserial_test/Inc/control_msgs/GripperCommandActionResult.h b/rosserial_hello_world/Inc/control_msgs/GripperCommandActionResult.h similarity index 100% rename from rosserial_test/Inc/control_msgs/GripperCommandActionResult.h rename to rosserial_hello_world/Inc/control_msgs/GripperCommandActionResult.h diff --git a/rosserial_test/Inc/control_msgs/GripperCommandFeedback.h b/rosserial_hello_world/Inc/control_msgs/GripperCommandFeedback.h similarity index 100% rename from rosserial_test/Inc/control_msgs/GripperCommandFeedback.h rename to rosserial_hello_world/Inc/control_msgs/GripperCommandFeedback.h diff --git a/rosserial_test/Inc/control_msgs/GripperCommandGoal.h b/rosserial_hello_world/Inc/control_msgs/GripperCommandGoal.h similarity index 100% rename from rosserial_test/Inc/control_msgs/GripperCommandGoal.h rename to rosserial_hello_world/Inc/control_msgs/GripperCommandGoal.h diff --git a/rosserial_test/Inc/control_msgs/GripperCommandResult.h b/rosserial_hello_world/Inc/control_msgs/GripperCommandResult.h similarity index 100% rename from rosserial_test/Inc/control_msgs/GripperCommandResult.h rename to rosserial_hello_world/Inc/control_msgs/GripperCommandResult.h diff --git a/rosserial_test/Inc/control_msgs/JointControllerState.h b/rosserial_hello_world/Inc/control_msgs/JointControllerState.h similarity index 100% rename from rosserial_test/Inc/control_msgs/JointControllerState.h rename to rosserial_hello_world/Inc/control_msgs/JointControllerState.h diff --git a/rosserial_test/Inc/control_msgs/JointJog.h b/rosserial_hello_world/Inc/control_msgs/JointJog.h similarity index 100% rename from rosserial_test/Inc/control_msgs/JointJog.h rename to rosserial_hello_world/Inc/control_msgs/JointJog.h diff --git a/rosserial_test/Inc/control_msgs/JointTolerance.h b/rosserial_hello_world/Inc/control_msgs/JointTolerance.h similarity index 100% rename from rosserial_test/Inc/control_msgs/JointTolerance.h rename to rosserial_hello_world/Inc/control_msgs/JointTolerance.h diff --git a/rosserial_test/Inc/control_msgs/JointTrajectoryAction.h b/rosserial_hello_world/Inc/control_msgs/JointTrajectoryAction.h similarity index 100% rename from rosserial_test/Inc/control_msgs/JointTrajectoryAction.h rename to rosserial_hello_world/Inc/control_msgs/JointTrajectoryAction.h diff --git a/rosserial_test/Inc/control_msgs/JointTrajectoryActionFeedback.h b/rosserial_hello_world/Inc/control_msgs/JointTrajectoryActionFeedback.h similarity index 100% rename from rosserial_test/Inc/control_msgs/JointTrajectoryActionFeedback.h rename to rosserial_hello_world/Inc/control_msgs/JointTrajectoryActionFeedback.h diff --git a/rosserial_test/Inc/control_msgs/JointTrajectoryActionGoal.h b/rosserial_hello_world/Inc/control_msgs/JointTrajectoryActionGoal.h similarity index 100% rename from rosserial_test/Inc/control_msgs/JointTrajectoryActionGoal.h rename to rosserial_hello_world/Inc/control_msgs/JointTrajectoryActionGoal.h diff --git a/rosserial_test/Inc/control_msgs/JointTrajectoryActionResult.h b/rosserial_hello_world/Inc/control_msgs/JointTrajectoryActionResult.h similarity index 100% rename from rosserial_test/Inc/control_msgs/JointTrajectoryActionResult.h rename to rosserial_hello_world/Inc/control_msgs/JointTrajectoryActionResult.h diff --git a/rosserial_test/Inc/control_msgs/JointTrajectoryControllerState.h b/rosserial_hello_world/Inc/control_msgs/JointTrajectoryControllerState.h similarity index 100% rename from rosserial_test/Inc/control_msgs/JointTrajectoryControllerState.h rename to rosserial_hello_world/Inc/control_msgs/JointTrajectoryControllerState.h diff --git a/rosserial_test/Inc/control_msgs/JointTrajectoryFeedback.h b/rosserial_hello_world/Inc/control_msgs/JointTrajectoryFeedback.h similarity index 100% rename from rosserial_test/Inc/control_msgs/JointTrajectoryFeedback.h rename to rosserial_hello_world/Inc/control_msgs/JointTrajectoryFeedback.h diff --git a/rosserial_test/Inc/control_msgs/JointTrajectoryGoal.h b/rosserial_hello_world/Inc/control_msgs/JointTrajectoryGoal.h similarity index 100% rename from rosserial_test/Inc/control_msgs/JointTrajectoryGoal.h rename to rosserial_hello_world/Inc/control_msgs/JointTrajectoryGoal.h diff --git a/rosserial_test/Inc/control_msgs/JointTrajectoryResult.h b/rosserial_hello_world/Inc/control_msgs/JointTrajectoryResult.h similarity index 100% rename from rosserial_test/Inc/control_msgs/JointTrajectoryResult.h rename to rosserial_hello_world/Inc/control_msgs/JointTrajectoryResult.h diff --git a/rosserial_test/Inc/control_msgs/PidState.h b/rosserial_hello_world/Inc/control_msgs/PidState.h similarity index 100% rename from rosserial_test/Inc/control_msgs/PidState.h rename to rosserial_hello_world/Inc/control_msgs/PidState.h diff --git a/rosserial_test/Inc/control_msgs/PointHeadAction.h b/rosserial_hello_world/Inc/control_msgs/PointHeadAction.h similarity index 100% rename from rosserial_test/Inc/control_msgs/PointHeadAction.h rename to rosserial_hello_world/Inc/control_msgs/PointHeadAction.h diff --git a/rosserial_test/Inc/control_msgs/PointHeadActionFeedback.h b/rosserial_hello_world/Inc/control_msgs/PointHeadActionFeedback.h similarity index 100% rename from rosserial_test/Inc/control_msgs/PointHeadActionFeedback.h rename to rosserial_hello_world/Inc/control_msgs/PointHeadActionFeedback.h diff --git a/rosserial_test/Inc/control_msgs/PointHeadActionGoal.h b/rosserial_hello_world/Inc/control_msgs/PointHeadActionGoal.h similarity index 100% rename from rosserial_test/Inc/control_msgs/PointHeadActionGoal.h rename to rosserial_hello_world/Inc/control_msgs/PointHeadActionGoal.h diff --git a/rosserial_test/Inc/control_msgs/PointHeadActionResult.h b/rosserial_hello_world/Inc/control_msgs/PointHeadActionResult.h similarity index 100% rename from rosserial_test/Inc/control_msgs/PointHeadActionResult.h rename to rosserial_hello_world/Inc/control_msgs/PointHeadActionResult.h diff --git a/rosserial_test/Inc/control_msgs/PointHeadFeedback.h b/rosserial_hello_world/Inc/control_msgs/PointHeadFeedback.h similarity index 100% rename from rosserial_test/Inc/control_msgs/PointHeadFeedback.h rename to rosserial_hello_world/Inc/control_msgs/PointHeadFeedback.h diff --git a/rosserial_test/Inc/control_msgs/PointHeadGoal.h b/rosserial_hello_world/Inc/control_msgs/PointHeadGoal.h similarity index 100% rename from rosserial_test/Inc/control_msgs/PointHeadGoal.h rename to rosserial_hello_world/Inc/control_msgs/PointHeadGoal.h diff --git a/rosserial_test/Inc/control_msgs/PointHeadResult.h b/rosserial_hello_world/Inc/control_msgs/PointHeadResult.h similarity index 100% rename from rosserial_test/Inc/control_msgs/PointHeadResult.h rename to rosserial_hello_world/Inc/control_msgs/PointHeadResult.h diff --git a/rosserial_test/Inc/control_msgs/QueryCalibrationState.h b/rosserial_hello_world/Inc/control_msgs/QueryCalibrationState.h similarity index 100% rename from rosserial_test/Inc/control_msgs/QueryCalibrationState.h rename to rosserial_hello_world/Inc/control_msgs/QueryCalibrationState.h diff --git a/rosserial_test/Inc/control_msgs/QueryTrajectoryState.h b/rosserial_hello_world/Inc/control_msgs/QueryTrajectoryState.h similarity index 100% rename from rosserial_test/Inc/control_msgs/QueryTrajectoryState.h rename to rosserial_hello_world/Inc/control_msgs/QueryTrajectoryState.h diff --git a/rosserial_test/Inc/control_msgs/SingleJointPositionAction.h b/rosserial_hello_world/Inc/control_msgs/SingleJointPositionAction.h similarity index 100% rename from rosserial_test/Inc/control_msgs/SingleJointPositionAction.h rename to rosserial_hello_world/Inc/control_msgs/SingleJointPositionAction.h diff --git a/rosserial_test/Inc/control_msgs/SingleJointPositionActionFeedback.h b/rosserial_hello_world/Inc/control_msgs/SingleJointPositionActionFeedback.h similarity index 100% rename from rosserial_test/Inc/control_msgs/SingleJointPositionActionFeedback.h rename to rosserial_hello_world/Inc/control_msgs/SingleJointPositionActionFeedback.h diff --git a/rosserial_test/Inc/control_msgs/SingleJointPositionActionGoal.h b/rosserial_hello_world/Inc/control_msgs/SingleJointPositionActionGoal.h similarity index 100% rename from rosserial_test/Inc/control_msgs/SingleJointPositionActionGoal.h rename to rosserial_hello_world/Inc/control_msgs/SingleJointPositionActionGoal.h diff --git a/rosserial_test/Inc/control_msgs/SingleJointPositionActionResult.h b/rosserial_hello_world/Inc/control_msgs/SingleJointPositionActionResult.h similarity index 100% rename from rosserial_test/Inc/control_msgs/SingleJointPositionActionResult.h rename to rosserial_hello_world/Inc/control_msgs/SingleJointPositionActionResult.h diff --git a/rosserial_test/Inc/control_msgs/SingleJointPositionFeedback.h b/rosserial_hello_world/Inc/control_msgs/SingleJointPositionFeedback.h similarity index 100% rename from rosserial_test/Inc/control_msgs/SingleJointPositionFeedback.h rename to rosserial_hello_world/Inc/control_msgs/SingleJointPositionFeedback.h diff --git a/rosserial_test/Inc/control_msgs/SingleJointPositionGoal.h b/rosserial_hello_world/Inc/control_msgs/SingleJointPositionGoal.h similarity index 100% rename from rosserial_test/Inc/control_msgs/SingleJointPositionGoal.h rename to rosserial_hello_world/Inc/control_msgs/SingleJointPositionGoal.h diff --git a/rosserial_test/Inc/control_msgs/SingleJointPositionResult.h b/rosserial_hello_world/Inc/control_msgs/SingleJointPositionResult.h similarity index 100% rename from rosserial_test/Inc/control_msgs/SingleJointPositionResult.h rename to rosserial_hello_world/Inc/control_msgs/SingleJointPositionResult.h diff --git a/rosserial_test/Inc/control_toolbox/SetPidGains.h b/rosserial_hello_world/Inc/control_toolbox/SetPidGains.h similarity index 100% rename from rosserial_test/Inc/control_toolbox/SetPidGains.h rename to rosserial_hello_world/Inc/control_toolbox/SetPidGains.h diff --git a/rosserial_test/Inc/controller_manager_msgs/ControllerState.h b/rosserial_hello_world/Inc/controller_manager_msgs/ControllerState.h similarity index 100% rename from rosserial_test/Inc/controller_manager_msgs/ControllerState.h rename to rosserial_hello_world/Inc/controller_manager_msgs/ControllerState.h diff --git a/rosserial_test/Inc/controller_manager_msgs/ControllerStatistics.h b/rosserial_hello_world/Inc/controller_manager_msgs/ControllerStatistics.h similarity index 100% rename from rosserial_test/Inc/controller_manager_msgs/ControllerStatistics.h rename to rosserial_hello_world/Inc/controller_manager_msgs/ControllerStatistics.h diff --git a/rosserial_test/Inc/controller_manager_msgs/ControllersStatistics.h b/rosserial_hello_world/Inc/controller_manager_msgs/ControllersStatistics.h similarity index 100% rename from rosserial_test/Inc/controller_manager_msgs/ControllersStatistics.h rename to rosserial_hello_world/Inc/controller_manager_msgs/ControllersStatistics.h diff --git a/rosserial_test/Inc/controller_manager_msgs/HardwareInterfaceResources.h b/rosserial_hello_world/Inc/controller_manager_msgs/HardwareInterfaceResources.h similarity index 100% rename from rosserial_test/Inc/controller_manager_msgs/HardwareInterfaceResources.h rename to rosserial_hello_world/Inc/controller_manager_msgs/HardwareInterfaceResources.h diff --git a/rosserial_test/Inc/controller_manager_msgs/ListControllerTypes.h b/rosserial_hello_world/Inc/controller_manager_msgs/ListControllerTypes.h similarity index 100% rename from rosserial_test/Inc/controller_manager_msgs/ListControllerTypes.h rename to rosserial_hello_world/Inc/controller_manager_msgs/ListControllerTypes.h diff --git a/rosserial_test/Inc/controller_manager_msgs/ListControllers.h b/rosserial_hello_world/Inc/controller_manager_msgs/ListControllers.h similarity index 100% rename from rosserial_test/Inc/controller_manager_msgs/ListControllers.h rename to rosserial_hello_world/Inc/controller_manager_msgs/ListControllers.h diff --git a/rosserial_test/Inc/controller_manager_msgs/LoadController.h b/rosserial_hello_world/Inc/controller_manager_msgs/LoadController.h similarity index 100% rename from rosserial_test/Inc/controller_manager_msgs/LoadController.h rename to rosserial_hello_world/Inc/controller_manager_msgs/LoadController.h diff --git a/rosserial_test/Inc/controller_manager_msgs/ReloadControllerLibraries.h b/rosserial_hello_world/Inc/controller_manager_msgs/ReloadControllerLibraries.h similarity index 100% rename from rosserial_test/Inc/controller_manager_msgs/ReloadControllerLibraries.h rename to rosserial_hello_world/Inc/controller_manager_msgs/ReloadControllerLibraries.h diff --git a/rosserial_test/Inc/controller_manager_msgs/SwitchController.h b/rosserial_hello_world/Inc/controller_manager_msgs/SwitchController.h similarity index 100% rename from rosserial_test/Inc/controller_manager_msgs/SwitchController.h rename to rosserial_hello_world/Inc/controller_manager_msgs/SwitchController.h diff --git a/rosserial_test/Inc/controller_manager_msgs/UnloadController.h b/rosserial_hello_world/Inc/controller_manager_msgs/UnloadController.h similarity index 100% rename from rosserial_test/Inc/controller_manager_msgs/UnloadController.h rename to rosserial_hello_world/Inc/controller_manager_msgs/UnloadController.h diff --git a/rosserial_test/Inc/diagnostic_msgs/AddDiagnostics.h b/rosserial_hello_world/Inc/diagnostic_msgs/AddDiagnostics.h similarity index 100% rename from rosserial_test/Inc/diagnostic_msgs/AddDiagnostics.h rename to rosserial_hello_world/Inc/diagnostic_msgs/AddDiagnostics.h diff --git a/rosserial_test/Inc/diagnostic_msgs/DiagnosticArray.h b/rosserial_hello_world/Inc/diagnostic_msgs/DiagnosticArray.h similarity index 100% rename from rosserial_test/Inc/diagnostic_msgs/DiagnosticArray.h rename to rosserial_hello_world/Inc/diagnostic_msgs/DiagnosticArray.h diff --git a/rosserial_test/Inc/diagnostic_msgs/DiagnosticStatus.h b/rosserial_hello_world/Inc/diagnostic_msgs/DiagnosticStatus.h similarity index 100% rename from rosserial_test/Inc/diagnostic_msgs/DiagnosticStatus.h rename to rosserial_hello_world/Inc/diagnostic_msgs/DiagnosticStatus.h diff --git a/rosserial_test/Inc/diagnostic_msgs/KeyValue.h b/rosserial_hello_world/Inc/diagnostic_msgs/KeyValue.h similarity index 100% rename from rosserial_test/Inc/diagnostic_msgs/KeyValue.h rename to rosserial_hello_world/Inc/diagnostic_msgs/KeyValue.h diff --git a/rosserial_test/Inc/diagnostic_msgs/SelfTest.h b/rosserial_hello_world/Inc/diagnostic_msgs/SelfTest.h similarity index 100% rename from rosserial_test/Inc/diagnostic_msgs/SelfTest.h rename to rosserial_hello_world/Inc/diagnostic_msgs/SelfTest.h diff --git a/rosserial_test/Inc/duration.cpp b/rosserial_hello_world/Inc/duration.cpp similarity index 100% rename from rosserial_test/Inc/duration.cpp rename to rosserial_hello_world/Inc/duration.cpp diff --git a/rosserial_test/Inc/dynamic_reconfigure/BoolParameter.h b/rosserial_hello_world/Inc/dynamic_reconfigure/BoolParameter.h similarity index 100% rename from rosserial_test/Inc/dynamic_reconfigure/BoolParameter.h rename to rosserial_hello_world/Inc/dynamic_reconfigure/BoolParameter.h diff --git a/rosserial_test/Inc/dynamic_reconfigure/Config.h b/rosserial_hello_world/Inc/dynamic_reconfigure/Config.h similarity index 100% rename from rosserial_test/Inc/dynamic_reconfigure/Config.h rename to rosserial_hello_world/Inc/dynamic_reconfigure/Config.h diff --git a/rosserial_test/Inc/dynamic_reconfigure/ConfigDescription.h b/rosserial_hello_world/Inc/dynamic_reconfigure/ConfigDescription.h similarity index 100% rename from rosserial_test/Inc/dynamic_reconfigure/ConfigDescription.h rename to rosserial_hello_world/Inc/dynamic_reconfigure/ConfigDescription.h diff --git a/rosserial_test/Inc/dynamic_reconfigure/DoubleParameter.h b/rosserial_hello_world/Inc/dynamic_reconfigure/DoubleParameter.h similarity index 100% rename from rosserial_test/Inc/dynamic_reconfigure/DoubleParameter.h rename to rosserial_hello_world/Inc/dynamic_reconfigure/DoubleParameter.h diff --git a/rosserial_test/Inc/dynamic_reconfigure/Group.h b/rosserial_hello_world/Inc/dynamic_reconfigure/Group.h similarity index 100% rename from rosserial_test/Inc/dynamic_reconfigure/Group.h rename to rosserial_hello_world/Inc/dynamic_reconfigure/Group.h diff --git a/rosserial_test/Inc/dynamic_reconfigure/GroupState.h b/rosserial_hello_world/Inc/dynamic_reconfigure/GroupState.h similarity index 100% rename from rosserial_test/Inc/dynamic_reconfigure/GroupState.h rename to rosserial_hello_world/Inc/dynamic_reconfigure/GroupState.h diff --git a/rosserial_test/Inc/dynamic_reconfigure/IntParameter.h b/rosserial_hello_world/Inc/dynamic_reconfigure/IntParameter.h similarity index 100% rename from rosserial_test/Inc/dynamic_reconfigure/IntParameter.h rename to rosserial_hello_world/Inc/dynamic_reconfigure/IntParameter.h diff --git a/rosserial_test/Inc/dynamic_reconfigure/ParamDescription.h b/rosserial_hello_world/Inc/dynamic_reconfigure/ParamDescription.h similarity index 100% rename from rosserial_test/Inc/dynamic_reconfigure/ParamDescription.h rename to rosserial_hello_world/Inc/dynamic_reconfigure/ParamDescription.h diff --git a/rosserial_test/Inc/dynamic_reconfigure/Reconfigure.h b/rosserial_hello_world/Inc/dynamic_reconfigure/Reconfigure.h similarity index 100% rename from rosserial_test/Inc/dynamic_reconfigure/Reconfigure.h rename to rosserial_hello_world/Inc/dynamic_reconfigure/Reconfigure.h diff --git a/rosserial_test/Inc/dynamic_reconfigure/SensorLevels.h b/rosserial_hello_world/Inc/dynamic_reconfigure/SensorLevels.h similarity index 100% rename from rosserial_test/Inc/dynamic_reconfigure/SensorLevels.h rename to rosserial_hello_world/Inc/dynamic_reconfigure/SensorLevels.h diff --git a/rosserial_test/Inc/dynamic_reconfigure/StrParameter.h b/rosserial_hello_world/Inc/dynamic_reconfigure/StrParameter.h similarity index 100% rename from rosserial_test/Inc/dynamic_reconfigure/StrParameter.h rename to rosserial_hello_world/Inc/dynamic_reconfigure/StrParameter.h diff --git a/rosserial_test/Inc/gazebo_msgs/ApplyBodyWrench.h b/rosserial_hello_world/Inc/gazebo_msgs/ApplyBodyWrench.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/ApplyBodyWrench.h rename to rosserial_hello_world/Inc/gazebo_msgs/ApplyBodyWrench.h diff --git a/rosserial_test/Inc/gazebo_msgs/ApplyJointEffort.h b/rosserial_hello_world/Inc/gazebo_msgs/ApplyJointEffort.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/ApplyJointEffort.h rename to rosserial_hello_world/Inc/gazebo_msgs/ApplyJointEffort.h diff --git a/rosserial_test/Inc/gazebo_msgs/BodyRequest.h b/rosserial_hello_world/Inc/gazebo_msgs/BodyRequest.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/BodyRequest.h rename to rosserial_hello_world/Inc/gazebo_msgs/BodyRequest.h diff --git a/rosserial_test/Inc/gazebo_msgs/ContactState.h b/rosserial_hello_world/Inc/gazebo_msgs/ContactState.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/ContactState.h rename to rosserial_hello_world/Inc/gazebo_msgs/ContactState.h diff --git a/rosserial_test/Inc/gazebo_msgs/ContactsState.h b/rosserial_hello_world/Inc/gazebo_msgs/ContactsState.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/ContactsState.h rename to rosserial_hello_world/Inc/gazebo_msgs/ContactsState.h diff --git a/rosserial_test/Inc/gazebo_msgs/DeleteLight.h b/rosserial_hello_world/Inc/gazebo_msgs/DeleteLight.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/DeleteLight.h rename to rosserial_hello_world/Inc/gazebo_msgs/DeleteLight.h diff --git a/rosserial_test/Inc/gazebo_msgs/DeleteModel.h b/rosserial_hello_world/Inc/gazebo_msgs/DeleteModel.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/DeleteModel.h rename to rosserial_hello_world/Inc/gazebo_msgs/DeleteModel.h diff --git a/rosserial_test/Inc/gazebo_msgs/GetJointProperties.h b/rosserial_hello_world/Inc/gazebo_msgs/GetJointProperties.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/GetJointProperties.h rename to rosserial_hello_world/Inc/gazebo_msgs/GetJointProperties.h diff --git a/rosserial_test/Inc/gazebo_msgs/GetLightProperties.h b/rosserial_hello_world/Inc/gazebo_msgs/GetLightProperties.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/GetLightProperties.h rename to rosserial_hello_world/Inc/gazebo_msgs/GetLightProperties.h diff --git a/rosserial_test/Inc/gazebo_msgs/GetLinkProperties.h b/rosserial_hello_world/Inc/gazebo_msgs/GetLinkProperties.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/GetLinkProperties.h rename to rosserial_hello_world/Inc/gazebo_msgs/GetLinkProperties.h diff --git a/rosserial_test/Inc/gazebo_msgs/GetLinkState.h b/rosserial_hello_world/Inc/gazebo_msgs/GetLinkState.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/GetLinkState.h rename to rosserial_hello_world/Inc/gazebo_msgs/GetLinkState.h diff --git a/rosserial_test/Inc/gazebo_msgs/GetModelProperties.h b/rosserial_hello_world/Inc/gazebo_msgs/GetModelProperties.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/GetModelProperties.h rename to rosserial_hello_world/Inc/gazebo_msgs/GetModelProperties.h diff --git a/rosserial_test/Inc/gazebo_msgs/GetModelState.h b/rosserial_hello_world/Inc/gazebo_msgs/GetModelState.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/GetModelState.h rename to rosserial_hello_world/Inc/gazebo_msgs/GetModelState.h diff --git a/rosserial_test/Inc/gazebo_msgs/GetPhysicsProperties.h b/rosserial_hello_world/Inc/gazebo_msgs/GetPhysicsProperties.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/GetPhysicsProperties.h rename to rosserial_hello_world/Inc/gazebo_msgs/GetPhysicsProperties.h diff --git a/rosserial_test/Inc/gazebo_msgs/GetWorldProperties.h b/rosserial_hello_world/Inc/gazebo_msgs/GetWorldProperties.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/GetWorldProperties.h rename to rosserial_hello_world/Inc/gazebo_msgs/GetWorldProperties.h diff --git a/rosserial_test/Inc/gazebo_msgs/JointRequest.h b/rosserial_hello_world/Inc/gazebo_msgs/JointRequest.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/JointRequest.h rename to rosserial_hello_world/Inc/gazebo_msgs/JointRequest.h diff --git a/rosserial_test/Inc/gazebo_msgs/LinkState.h b/rosserial_hello_world/Inc/gazebo_msgs/LinkState.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/LinkState.h rename to rosserial_hello_world/Inc/gazebo_msgs/LinkState.h diff --git a/rosserial_test/Inc/gazebo_msgs/LinkStates.h b/rosserial_hello_world/Inc/gazebo_msgs/LinkStates.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/LinkStates.h rename to rosserial_hello_world/Inc/gazebo_msgs/LinkStates.h diff --git a/rosserial_test/Inc/gazebo_msgs/ModelState.h b/rosserial_hello_world/Inc/gazebo_msgs/ModelState.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/ModelState.h rename to rosserial_hello_world/Inc/gazebo_msgs/ModelState.h diff --git a/rosserial_test/Inc/gazebo_msgs/ModelStates.h b/rosserial_hello_world/Inc/gazebo_msgs/ModelStates.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/ModelStates.h rename to rosserial_hello_world/Inc/gazebo_msgs/ModelStates.h diff --git a/rosserial_test/Inc/gazebo_msgs/ODEJointProperties.h b/rosserial_hello_world/Inc/gazebo_msgs/ODEJointProperties.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/ODEJointProperties.h rename to rosserial_hello_world/Inc/gazebo_msgs/ODEJointProperties.h diff --git a/rosserial_test/Inc/gazebo_msgs/ODEPhysics.h b/rosserial_hello_world/Inc/gazebo_msgs/ODEPhysics.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/ODEPhysics.h rename to rosserial_hello_world/Inc/gazebo_msgs/ODEPhysics.h diff --git a/rosserial_test/Inc/gazebo_msgs/SetJointProperties.h b/rosserial_hello_world/Inc/gazebo_msgs/SetJointProperties.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/SetJointProperties.h rename to rosserial_hello_world/Inc/gazebo_msgs/SetJointProperties.h diff --git a/rosserial_test/Inc/gazebo_msgs/SetJointTrajectory.h b/rosserial_hello_world/Inc/gazebo_msgs/SetJointTrajectory.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/SetJointTrajectory.h rename to rosserial_hello_world/Inc/gazebo_msgs/SetJointTrajectory.h diff --git a/rosserial_test/Inc/gazebo_msgs/SetLightProperties.h b/rosserial_hello_world/Inc/gazebo_msgs/SetLightProperties.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/SetLightProperties.h rename to rosserial_hello_world/Inc/gazebo_msgs/SetLightProperties.h diff --git a/rosserial_test/Inc/gazebo_msgs/SetLinkProperties.h b/rosserial_hello_world/Inc/gazebo_msgs/SetLinkProperties.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/SetLinkProperties.h rename to rosserial_hello_world/Inc/gazebo_msgs/SetLinkProperties.h diff --git a/rosserial_test/Inc/gazebo_msgs/SetLinkState.h b/rosserial_hello_world/Inc/gazebo_msgs/SetLinkState.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/SetLinkState.h rename to rosserial_hello_world/Inc/gazebo_msgs/SetLinkState.h diff --git a/rosserial_test/Inc/gazebo_msgs/SetModelConfiguration.h b/rosserial_hello_world/Inc/gazebo_msgs/SetModelConfiguration.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/SetModelConfiguration.h rename to rosserial_hello_world/Inc/gazebo_msgs/SetModelConfiguration.h diff --git a/rosserial_test/Inc/gazebo_msgs/SetModelState.h b/rosserial_hello_world/Inc/gazebo_msgs/SetModelState.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/SetModelState.h rename to rosserial_hello_world/Inc/gazebo_msgs/SetModelState.h diff --git a/rosserial_test/Inc/gazebo_msgs/SetPhysicsProperties.h b/rosserial_hello_world/Inc/gazebo_msgs/SetPhysicsProperties.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/SetPhysicsProperties.h rename to rosserial_hello_world/Inc/gazebo_msgs/SetPhysicsProperties.h diff --git a/rosserial_test/Inc/gazebo_msgs/SpawnModel.h b/rosserial_hello_world/Inc/gazebo_msgs/SpawnModel.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/SpawnModel.h rename to rosserial_hello_world/Inc/gazebo_msgs/SpawnModel.h diff --git a/rosserial_test/Inc/gazebo_msgs/WorldState.h b/rosserial_hello_world/Inc/gazebo_msgs/WorldState.h similarity index 100% rename from rosserial_test/Inc/gazebo_msgs/WorldState.h rename to rosserial_hello_world/Inc/gazebo_msgs/WorldState.h diff --git a/rosserial_test/Inc/geometry_msgs/Accel.h b/rosserial_hello_world/Inc/geometry_msgs/Accel.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/Accel.h rename to rosserial_hello_world/Inc/geometry_msgs/Accel.h diff --git a/rosserial_test/Inc/geometry_msgs/AccelStamped.h b/rosserial_hello_world/Inc/geometry_msgs/AccelStamped.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/AccelStamped.h rename to rosserial_hello_world/Inc/geometry_msgs/AccelStamped.h diff --git a/rosserial_test/Inc/geometry_msgs/AccelWithCovariance.h b/rosserial_hello_world/Inc/geometry_msgs/AccelWithCovariance.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/AccelWithCovariance.h rename to rosserial_hello_world/Inc/geometry_msgs/AccelWithCovariance.h diff --git a/rosserial_test/Inc/geometry_msgs/AccelWithCovarianceStamped.h b/rosserial_hello_world/Inc/geometry_msgs/AccelWithCovarianceStamped.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/AccelWithCovarianceStamped.h rename to rosserial_hello_world/Inc/geometry_msgs/AccelWithCovarianceStamped.h diff --git a/rosserial_test/Inc/geometry_msgs/Inertia.h b/rosserial_hello_world/Inc/geometry_msgs/Inertia.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/Inertia.h rename to rosserial_hello_world/Inc/geometry_msgs/Inertia.h diff --git a/rosserial_test/Inc/geometry_msgs/InertiaStamped.h b/rosserial_hello_world/Inc/geometry_msgs/InertiaStamped.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/InertiaStamped.h rename to rosserial_hello_world/Inc/geometry_msgs/InertiaStamped.h diff --git a/rosserial_test/Inc/geometry_msgs/Point.h b/rosserial_hello_world/Inc/geometry_msgs/Point.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/Point.h rename to rosserial_hello_world/Inc/geometry_msgs/Point.h diff --git a/rosserial_test/Inc/geometry_msgs/Point32.h b/rosserial_hello_world/Inc/geometry_msgs/Point32.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/Point32.h rename to rosserial_hello_world/Inc/geometry_msgs/Point32.h diff --git a/rosserial_test/Inc/geometry_msgs/PointStamped.h b/rosserial_hello_world/Inc/geometry_msgs/PointStamped.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/PointStamped.h rename to rosserial_hello_world/Inc/geometry_msgs/PointStamped.h diff --git a/rosserial_test/Inc/geometry_msgs/Polygon.h b/rosserial_hello_world/Inc/geometry_msgs/Polygon.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/Polygon.h rename to rosserial_hello_world/Inc/geometry_msgs/Polygon.h diff --git a/rosserial_test/Inc/geometry_msgs/PolygonStamped.h b/rosserial_hello_world/Inc/geometry_msgs/PolygonStamped.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/PolygonStamped.h rename to rosserial_hello_world/Inc/geometry_msgs/PolygonStamped.h diff --git a/rosserial_test/Inc/geometry_msgs/Pose.h b/rosserial_hello_world/Inc/geometry_msgs/Pose.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/Pose.h rename to rosserial_hello_world/Inc/geometry_msgs/Pose.h diff --git a/rosserial_test/Inc/geometry_msgs/Pose2D.h b/rosserial_hello_world/Inc/geometry_msgs/Pose2D.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/Pose2D.h rename to rosserial_hello_world/Inc/geometry_msgs/Pose2D.h diff --git a/rosserial_test/Inc/geometry_msgs/PoseArray.h b/rosserial_hello_world/Inc/geometry_msgs/PoseArray.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/PoseArray.h rename to rosserial_hello_world/Inc/geometry_msgs/PoseArray.h diff --git a/rosserial_test/Inc/geometry_msgs/PoseStamped.h b/rosserial_hello_world/Inc/geometry_msgs/PoseStamped.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/PoseStamped.h rename to rosserial_hello_world/Inc/geometry_msgs/PoseStamped.h diff --git a/rosserial_test/Inc/geometry_msgs/PoseWithCovariance.h b/rosserial_hello_world/Inc/geometry_msgs/PoseWithCovariance.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/PoseWithCovariance.h rename to rosserial_hello_world/Inc/geometry_msgs/PoseWithCovariance.h diff --git a/rosserial_test/Inc/geometry_msgs/PoseWithCovarianceStamped.h b/rosserial_hello_world/Inc/geometry_msgs/PoseWithCovarianceStamped.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/PoseWithCovarianceStamped.h rename to rosserial_hello_world/Inc/geometry_msgs/PoseWithCovarianceStamped.h diff --git a/rosserial_test/Inc/geometry_msgs/Quaternion.h b/rosserial_hello_world/Inc/geometry_msgs/Quaternion.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/Quaternion.h rename to rosserial_hello_world/Inc/geometry_msgs/Quaternion.h diff --git a/rosserial_test/Inc/geometry_msgs/QuaternionStamped.h b/rosserial_hello_world/Inc/geometry_msgs/QuaternionStamped.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/QuaternionStamped.h rename to rosserial_hello_world/Inc/geometry_msgs/QuaternionStamped.h diff --git a/rosserial_test/Inc/geometry_msgs/Transform.h b/rosserial_hello_world/Inc/geometry_msgs/Transform.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/Transform.h rename to rosserial_hello_world/Inc/geometry_msgs/Transform.h diff --git a/rosserial_test/Inc/geometry_msgs/TransformStamped.h b/rosserial_hello_world/Inc/geometry_msgs/TransformStamped.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/TransformStamped.h rename to rosserial_hello_world/Inc/geometry_msgs/TransformStamped.h diff --git a/rosserial_test/Inc/geometry_msgs/Twist.h b/rosserial_hello_world/Inc/geometry_msgs/Twist.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/Twist.h rename to rosserial_hello_world/Inc/geometry_msgs/Twist.h diff --git a/rosserial_test/Inc/geometry_msgs/TwistStamped.h b/rosserial_hello_world/Inc/geometry_msgs/TwistStamped.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/TwistStamped.h rename to rosserial_hello_world/Inc/geometry_msgs/TwistStamped.h diff --git a/rosserial_test/Inc/geometry_msgs/TwistWithCovariance.h b/rosserial_hello_world/Inc/geometry_msgs/TwistWithCovariance.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/TwistWithCovariance.h rename to rosserial_hello_world/Inc/geometry_msgs/TwistWithCovariance.h diff --git a/rosserial_test/Inc/geometry_msgs/TwistWithCovarianceStamped.h b/rosserial_hello_world/Inc/geometry_msgs/TwistWithCovarianceStamped.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/TwistWithCovarianceStamped.h rename to rosserial_hello_world/Inc/geometry_msgs/TwistWithCovarianceStamped.h diff --git a/rosserial_test/Inc/geometry_msgs/Vector3.h b/rosserial_hello_world/Inc/geometry_msgs/Vector3.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/Vector3.h rename to rosserial_hello_world/Inc/geometry_msgs/Vector3.h diff --git a/rosserial_test/Inc/geometry_msgs/Vector3Stamped.h b/rosserial_hello_world/Inc/geometry_msgs/Vector3Stamped.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/Vector3Stamped.h rename to rosserial_hello_world/Inc/geometry_msgs/Vector3Stamped.h diff --git a/rosserial_test/Inc/geometry_msgs/Wrench.h b/rosserial_hello_world/Inc/geometry_msgs/Wrench.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/Wrench.h rename to rosserial_hello_world/Inc/geometry_msgs/Wrench.h diff --git a/rosserial_test/Inc/geometry_msgs/WrenchStamped.h b/rosserial_hello_world/Inc/geometry_msgs/WrenchStamped.h similarity index 100% rename from rosserial_test/Inc/geometry_msgs/WrenchStamped.h rename to rosserial_hello_world/Inc/geometry_msgs/WrenchStamped.h diff --git a/rosserial_test/Inc/laser_assembler/AssembleScans.h b/rosserial_hello_world/Inc/laser_assembler/AssembleScans.h similarity index 100% rename from rosserial_test/Inc/laser_assembler/AssembleScans.h rename to rosserial_hello_world/Inc/laser_assembler/AssembleScans.h diff --git a/rosserial_test/Inc/laser_assembler/AssembleScans2.h b/rosserial_hello_world/Inc/laser_assembler/AssembleScans2.h similarity index 100% rename from rosserial_test/Inc/laser_assembler/AssembleScans2.h rename to rosserial_hello_world/Inc/laser_assembler/AssembleScans2.h diff --git a/rosserial_test/Inc/main.h b/rosserial_hello_world/Inc/main.h similarity index 100% rename from rosserial_test/Inc/main.h rename to rosserial_hello_world/Inc/main.h diff --git a/rosserial_test/Inc/map_msgs/GetMapROI.h b/rosserial_hello_world/Inc/map_msgs/GetMapROI.h similarity index 100% rename from rosserial_test/Inc/map_msgs/GetMapROI.h rename to rosserial_hello_world/Inc/map_msgs/GetMapROI.h diff --git a/rosserial_test/Inc/map_msgs/GetPointMap.h b/rosserial_hello_world/Inc/map_msgs/GetPointMap.h similarity index 100% rename from rosserial_test/Inc/map_msgs/GetPointMap.h rename to rosserial_hello_world/Inc/map_msgs/GetPointMap.h diff --git a/rosserial_test/Inc/map_msgs/GetPointMapROI.h b/rosserial_hello_world/Inc/map_msgs/GetPointMapROI.h similarity index 100% rename from rosserial_test/Inc/map_msgs/GetPointMapROI.h rename to rosserial_hello_world/Inc/map_msgs/GetPointMapROI.h diff --git a/rosserial_test/Inc/map_msgs/OccupancyGridUpdate.h b/rosserial_hello_world/Inc/map_msgs/OccupancyGridUpdate.h similarity index 100% rename from rosserial_test/Inc/map_msgs/OccupancyGridUpdate.h rename to rosserial_hello_world/Inc/map_msgs/OccupancyGridUpdate.h diff --git a/rosserial_test/Inc/map_msgs/PointCloud2Update.h b/rosserial_hello_world/Inc/map_msgs/PointCloud2Update.h similarity index 100% rename from rosserial_test/Inc/map_msgs/PointCloud2Update.h rename to rosserial_hello_world/Inc/map_msgs/PointCloud2Update.h diff --git a/rosserial_test/Inc/map_msgs/ProjectedMap.h b/rosserial_hello_world/Inc/map_msgs/ProjectedMap.h similarity index 100% rename from rosserial_test/Inc/map_msgs/ProjectedMap.h rename to rosserial_hello_world/Inc/map_msgs/ProjectedMap.h diff --git a/rosserial_test/Inc/map_msgs/ProjectedMapInfo.h b/rosserial_hello_world/Inc/map_msgs/ProjectedMapInfo.h similarity index 100% rename from rosserial_test/Inc/map_msgs/ProjectedMapInfo.h rename to rosserial_hello_world/Inc/map_msgs/ProjectedMapInfo.h diff --git a/rosserial_test/Inc/map_msgs/ProjectedMapsInfo.h b/rosserial_hello_world/Inc/map_msgs/ProjectedMapsInfo.h similarity index 100% rename from rosserial_test/Inc/map_msgs/ProjectedMapsInfo.h rename to rosserial_hello_world/Inc/map_msgs/ProjectedMapsInfo.h diff --git a/rosserial_test/Inc/map_msgs/SaveMap.h b/rosserial_hello_world/Inc/map_msgs/SaveMap.h similarity index 100% rename from rosserial_test/Inc/map_msgs/SaveMap.h rename to rosserial_hello_world/Inc/map_msgs/SaveMap.h diff --git a/rosserial_test/Inc/map_msgs/SetMapProjections.h b/rosserial_hello_world/Inc/map_msgs/SetMapProjections.h similarity index 100% rename from rosserial_test/Inc/map_msgs/SetMapProjections.h rename to rosserial_hello_world/Inc/map_msgs/SetMapProjections.h diff --git a/rosserial_test/Inc/nav_msgs/GetMap.h b/rosserial_hello_world/Inc/nav_msgs/GetMap.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/GetMap.h rename to rosserial_hello_world/Inc/nav_msgs/GetMap.h diff --git a/rosserial_test/Inc/nav_msgs/GetMapAction.h b/rosserial_hello_world/Inc/nav_msgs/GetMapAction.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/GetMapAction.h rename to rosserial_hello_world/Inc/nav_msgs/GetMapAction.h diff --git a/rosserial_test/Inc/nav_msgs/GetMapActionFeedback.h b/rosserial_hello_world/Inc/nav_msgs/GetMapActionFeedback.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/GetMapActionFeedback.h rename to rosserial_hello_world/Inc/nav_msgs/GetMapActionFeedback.h diff --git a/rosserial_test/Inc/nav_msgs/GetMapActionGoal.h b/rosserial_hello_world/Inc/nav_msgs/GetMapActionGoal.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/GetMapActionGoal.h rename to rosserial_hello_world/Inc/nav_msgs/GetMapActionGoal.h diff --git a/rosserial_test/Inc/nav_msgs/GetMapActionResult.h b/rosserial_hello_world/Inc/nav_msgs/GetMapActionResult.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/GetMapActionResult.h rename to rosserial_hello_world/Inc/nav_msgs/GetMapActionResult.h diff --git a/rosserial_test/Inc/nav_msgs/GetMapFeedback.h b/rosserial_hello_world/Inc/nav_msgs/GetMapFeedback.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/GetMapFeedback.h rename to rosserial_hello_world/Inc/nav_msgs/GetMapFeedback.h diff --git a/rosserial_test/Inc/nav_msgs/GetMapGoal.h b/rosserial_hello_world/Inc/nav_msgs/GetMapGoal.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/GetMapGoal.h rename to rosserial_hello_world/Inc/nav_msgs/GetMapGoal.h diff --git a/rosserial_test/Inc/nav_msgs/GetMapResult.h b/rosserial_hello_world/Inc/nav_msgs/GetMapResult.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/GetMapResult.h rename to rosserial_hello_world/Inc/nav_msgs/GetMapResult.h diff --git a/rosserial_test/Inc/nav_msgs/GetPlan.h b/rosserial_hello_world/Inc/nav_msgs/GetPlan.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/GetPlan.h rename to rosserial_hello_world/Inc/nav_msgs/GetPlan.h diff --git a/rosserial_test/Inc/nav_msgs/GridCells.h b/rosserial_hello_world/Inc/nav_msgs/GridCells.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/GridCells.h rename to rosserial_hello_world/Inc/nav_msgs/GridCells.h diff --git a/rosserial_test/Inc/nav_msgs/MapMetaData.h b/rosserial_hello_world/Inc/nav_msgs/MapMetaData.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/MapMetaData.h rename to rosserial_hello_world/Inc/nav_msgs/MapMetaData.h diff --git a/rosserial_test/Inc/nav_msgs/OccupancyGrid.h b/rosserial_hello_world/Inc/nav_msgs/OccupancyGrid.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/OccupancyGrid.h rename to rosserial_hello_world/Inc/nav_msgs/OccupancyGrid.h diff --git a/rosserial_test/Inc/nav_msgs/Odometry.h b/rosserial_hello_world/Inc/nav_msgs/Odometry.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/Odometry.h rename to rosserial_hello_world/Inc/nav_msgs/Odometry.h diff --git a/rosserial_test/Inc/nav_msgs/Path.h b/rosserial_hello_world/Inc/nav_msgs/Path.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/Path.h rename to rosserial_hello_world/Inc/nav_msgs/Path.h diff --git a/rosserial_test/Inc/nav_msgs/SetMap.h b/rosserial_hello_world/Inc/nav_msgs/SetMap.h similarity index 100% rename from rosserial_test/Inc/nav_msgs/SetMap.h rename to rosserial_hello_world/Inc/nav_msgs/SetMap.h diff --git a/rosserial_test/Inc/nodelet/NodeletList.h b/rosserial_hello_world/Inc/nodelet/NodeletList.h similarity index 100% rename from rosserial_test/Inc/nodelet/NodeletList.h rename to rosserial_hello_world/Inc/nodelet/NodeletList.h diff --git a/rosserial_test/Inc/nodelet/NodeletLoad.h b/rosserial_hello_world/Inc/nodelet/NodeletLoad.h similarity index 100% rename from rosserial_test/Inc/nodelet/NodeletLoad.h rename to rosserial_hello_world/Inc/nodelet/NodeletLoad.h diff --git a/rosserial_test/Inc/nodelet/NodeletUnload.h b/rosserial_hello_world/Inc/nodelet/NodeletUnload.h similarity index 100% rename from rosserial_test/Inc/nodelet/NodeletUnload.h rename to rosserial_hello_world/Inc/nodelet/NodeletUnload.h diff --git a/rosserial_test/Inc/pcl_msgs/ModelCoefficients.h b/rosserial_hello_world/Inc/pcl_msgs/ModelCoefficients.h similarity index 100% rename from rosserial_test/Inc/pcl_msgs/ModelCoefficients.h rename to rosserial_hello_world/Inc/pcl_msgs/ModelCoefficients.h diff --git a/rosserial_test/Inc/pcl_msgs/PointIndices.h b/rosserial_hello_world/Inc/pcl_msgs/PointIndices.h similarity index 100% rename from rosserial_test/Inc/pcl_msgs/PointIndices.h rename to rosserial_hello_world/Inc/pcl_msgs/PointIndices.h diff --git a/rosserial_test/Inc/pcl_msgs/PolygonMesh.h b/rosserial_hello_world/Inc/pcl_msgs/PolygonMesh.h similarity index 100% rename from rosserial_test/Inc/pcl_msgs/PolygonMesh.h rename to rosserial_hello_world/Inc/pcl_msgs/PolygonMesh.h diff --git a/rosserial_test/Inc/pcl_msgs/Vertices.h b/rosserial_hello_world/Inc/pcl_msgs/Vertices.h similarity index 100% rename from rosserial_test/Inc/pcl_msgs/Vertices.h rename to rosserial_hello_world/Inc/pcl_msgs/Vertices.h diff --git a/rosserial_test/Inc/polled_camera/GetPolledImage.h b/rosserial_hello_world/Inc/polled_camera/GetPolledImage.h similarity index 100% rename from rosserial_test/Inc/polled_camera/GetPolledImage.h rename to rosserial_hello_world/Inc/polled_camera/GetPolledImage.h diff --git a/rosserial_test/Inc/ros.h b/rosserial_hello_world/Inc/ros.h similarity index 100% rename from rosserial_test/Inc/ros.h rename to rosserial_hello_world/Inc/ros.h diff --git a/rosserial_test/Inc/ros/duration.h b/rosserial_hello_world/Inc/ros/duration.h similarity index 100% rename from rosserial_test/Inc/ros/duration.h rename to rosserial_hello_world/Inc/ros/duration.h diff --git a/rosserial_test/Inc/ros/msg.h b/rosserial_hello_world/Inc/ros/msg.h similarity index 100% rename from rosserial_test/Inc/ros/msg.h rename to rosserial_hello_world/Inc/ros/msg.h diff --git a/rosserial_test/Inc/ros/node_handle.h b/rosserial_hello_world/Inc/ros/node_handle.h similarity index 100% rename from rosserial_test/Inc/ros/node_handle.h rename to rosserial_hello_world/Inc/ros/node_handle.h diff --git a/rosserial_test/Inc/ros/publisher.h b/rosserial_hello_world/Inc/ros/publisher.h similarity index 100% rename from rosserial_test/Inc/ros/publisher.h rename to rosserial_hello_world/Inc/ros/publisher.h diff --git a/rosserial_test/Inc/ros/ros_time.h b/rosserial_hello_world/Inc/ros/ros_time.h similarity index 100% rename from rosserial_test/Inc/ros/ros_time.h rename to rosserial_hello_world/Inc/ros/ros_time.h diff --git a/rosserial_test/Inc/ros/service_client.h b/rosserial_hello_world/Inc/ros/service_client.h similarity index 100% rename from rosserial_test/Inc/ros/service_client.h rename to rosserial_hello_world/Inc/ros/service_client.h diff --git a/rosserial_test/Inc/ros/service_server.h b/rosserial_hello_world/Inc/ros/service_server.h similarity index 100% rename from rosserial_test/Inc/ros/service_server.h rename to rosserial_hello_world/Inc/ros/service_server.h diff --git a/rosserial_test/Inc/ros/subscriber.h b/rosserial_hello_world/Inc/ros/subscriber.h similarity index 100% rename from rosserial_test/Inc/ros/subscriber.h rename to rosserial_hello_world/Inc/ros/subscriber.h diff --git a/rosserial_test/Inc/roscpp/Empty.h b/rosserial_hello_world/Inc/roscpp/Empty.h similarity index 100% rename from rosserial_test/Inc/roscpp/Empty.h rename to rosserial_hello_world/Inc/roscpp/Empty.h diff --git a/rosserial_test/Inc/roscpp/GetLoggers.h b/rosserial_hello_world/Inc/roscpp/GetLoggers.h similarity index 100% rename from rosserial_test/Inc/roscpp/GetLoggers.h rename to rosserial_hello_world/Inc/roscpp/GetLoggers.h diff --git a/rosserial_test/Inc/roscpp/Logger.h b/rosserial_hello_world/Inc/roscpp/Logger.h similarity index 100% rename from rosserial_test/Inc/roscpp/Logger.h rename to rosserial_hello_world/Inc/roscpp/Logger.h diff --git a/rosserial_test/Inc/roscpp/SetLoggerLevel.h b/rosserial_hello_world/Inc/roscpp/SetLoggerLevel.h similarity index 100% rename from rosserial_test/Inc/roscpp/SetLoggerLevel.h rename to rosserial_hello_world/Inc/roscpp/SetLoggerLevel.h diff --git a/rosserial_test/Inc/roscpp_tutorials/TwoInts.h b/rosserial_hello_world/Inc/roscpp_tutorials/TwoInts.h similarity index 100% rename from rosserial_test/Inc/roscpp_tutorials/TwoInts.h rename to rosserial_hello_world/Inc/roscpp_tutorials/TwoInts.h diff --git a/rosserial_test/Inc/rosgraph_msgs/Clock.h b/rosserial_hello_world/Inc/rosgraph_msgs/Clock.h similarity index 100% rename from rosserial_test/Inc/rosgraph_msgs/Clock.h rename to rosserial_hello_world/Inc/rosgraph_msgs/Clock.h diff --git a/rosserial_test/Inc/rosgraph_msgs/Log.h b/rosserial_hello_world/Inc/rosgraph_msgs/Log.h similarity index 100% rename from rosserial_test/Inc/rosgraph_msgs/Log.h rename to rosserial_hello_world/Inc/rosgraph_msgs/Log.h diff --git a/rosserial_test/Inc/rosgraph_msgs/TopicStatistics.h b/rosserial_hello_world/Inc/rosgraph_msgs/TopicStatistics.h similarity index 100% rename from rosserial_test/Inc/rosgraph_msgs/TopicStatistics.h rename to rosserial_hello_world/Inc/rosgraph_msgs/TopicStatistics.h diff --git a/rosserial_test/Inc/rospy_tutorials/AddTwoInts.h b/rosserial_hello_world/Inc/rospy_tutorials/AddTwoInts.h similarity index 100% rename from rosserial_test/Inc/rospy_tutorials/AddTwoInts.h rename to rosserial_hello_world/Inc/rospy_tutorials/AddTwoInts.h diff --git a/rosserial_test/Inc/rospy_tutorials/BadTwoInts.h b/rosserial_hello_world/Inc/rospy_tutorials/BadTwoInts.h similarity index 100% rename from rosserial_test/Inc/rospy_tutorials/BadTwoInts.h rename to rosserial_hello_world/Inc/rospy_tutorials/BadTwoInts.h diff --git a/rosserial_test/Inc/rospy_tutorials/Floats.h b/rosserial_hello_world/Inc/rospy_tutorials/Floats.h similarity index 100% rename from rosserial_test/Inc/rospy_tutorials/Floats.h rename to rosserial_hello_world/Inc/rospy_tutorials/Floats.h diff --git a/rosserial_test/Inc/rospy_tutorials/HeaderString.h b/rosserial_hello_world/Inc/rospy_tutorials/HeaderString.h similarity index 100% rename from rosserial_test/Inc/rospy_tutorials/HeaderString.h rename to rosserial_hello_world/Inc/rospy_tutorials/HeaderString.h diff --git a/rosserial_test/Inc/rosserial_msgs/Log.h b/rosserial_hello_world/Inc/rosserial_msgs/Log.h similarity index 100% rename from rosserial_test/Inc/rosserial_msgs/Log.h rename to rosserial_hello_world/Inc/rosserial_msgs/Log.h diff --git a/rosserial_test/Inc/rosserial_msgs/RequestMessageInfo.h b/rosserial_hello_world/Inc/rosserial_msgs/RequestMessageInfo.h similarity index 100% rename from rosserial_test/Inc/rosserial_msgs/RequestMessageInfo.h rename to rosserial_hello_world/Inc/rosserial_msgs/RequestMessageInfo.h diff --git a/rosserial_test/Inc/rosserial_msgs/RequestParam.h b/rosserial_hello_world/Inc/rosserial_msgs/RequestParam.h similarity index 100% rename from rosserial_test/Inc/rosserial_msgs/RequestParam.h rename to rosserial_hello_world/Inc/rosserial_msgs/RequestParam.h diff --git a/rosserial_test/Inc/rosserial_msgs/RequestServiceInfo.h b/rosserial_hello_world/Inc/rosserial_msgs/RequestServiceInfo.h similarity index 100% rename from rosserial_test/Inc/rosserial_msgs/RequestServiceInfo.h rename to rosserial_hello_world/Inc/rosserial_msgs/RequestServiceInfo.h diff --git a/rosserial_test/Inc/rosserial_msgs/TopicInfo.h b/rosserial_hello_world/Inc/rosserial_msgs/TopicInfo.h similarity index 100% rename from rosserial_test/Inc/rosserial_msgs/TopicInfo.h rename to rosserial_hello_world/Inc/rosserial_msgs/TopicInfo.h diff --git a/rosserial_test/Inc/sensor_msgs/BatteryState.h b/rosserial_hello_world/Inc/sensor_msgs/BatteryState.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/BatteryState.h rename to rosserial_hello_world/Inc/sensor_msgs/BatteryState.h diff --git a/rosserial_test/Inc/sensor_msgs/CameraInfo.h b/rosserial_hello_world/Inc/sensor_msgs/CameraInfo.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/CameraInfo.h rename to rosserial_hello_world/Inc/sensor_msgs/CameraInfo.h diff --git a/rosserial_test/Inc/sensor_msgs/ChannelFloat32.h b/rosserial_hello_world/Inc/sensor_msgs/ChannelFloat32.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/ChannelFloat32.h rename to rosserial_hello_world/Inc/sensor_msgs/ChannelFloat32.h diff --git a/rosserial_test/Inc/sensor_msgs/CompressedImage.h b/rosserial_hello_world/Inc/sensor_msgs/CompressedImage.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/CompressedImage.h rename to rosserial_hello_world/Inc/sensor_msgs/CompressedImage.h diff --git a/rosserial_test/Inc/sensor_msgs/FluidPressure.h b/rosserial_hello_world/Inc/sensor_msgs/FluidPressure.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/FluidPressure.h rename to rosserial_hello_world/Inc/sensor_msgs/FluidPressure.h diff --git a/rosserial_test/Inc/sensor_msgs/Illuminance.h b/rosserial_hello_world/Inc/sensor_msgs/Illuminance.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/Illuminance.h rename to rosserial_hello_world/Inc/sensor_msgs/Illuminance.h diff --git a/rosserial_test/Inc/sensor_msgs/Image.h b/rosserial_hello_world/Inc/sensor_msgs/Image.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/Image.h rename to rosserial_hello_world/Inc/sensor_msgs/Image.h diff --git a/rosserial_test/Inc/sensor_msgs/Imu.h b/rosserial_hello_world/Inc/sensor_msgs/Imu.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/Imu.h rename to rosserial_hello_world/Inc/sensor_msgs/Imu.h diff --git a/rosserial_test/Inc/sensor_msgs/JointState.h b/rosserial_hello_world/Inc/sensor_msgs/JointState.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/JointState.h rename to rosserial_hello_world/Inc/sensor_msgs/JointState.h diff --git a/rosserial_test/Inc/sensor_msgs/Joy.h b/rosserial_hello_world/Inc/sensor_msgs/Joy.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/Joy.h rename to rosserial_hello_world/Inc/sensor_msgs/Joy.h diff --git a/rosserial_test/Inc/sensor_msgs/JoyFeedback.h b/rosserial_hello_world/Inc/sensor_msgs/JoyFeedback.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/JoyFeedback.h rename to rosserial_hello_world/Inc/sensor_msgs/JoyFeedback.h diff --git a/rosserial_test/Inc/sensor_msgs/JoyFeedbackArray.h b/rosserial_hello_world/Inc/sensor_msgs/JoyFeedbackArray.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/JoyFeedbackArray.h rename to rosserial_hello_world/Inc/sensor_msgs/JoyFeedbackArray.h diff --git a/rosserial_test/Inc/sensor_msgs/LaserEcho.h b/rosserial_hello_world/Inc/sensor_msgs/LaserEcho.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/LaserEcho.h rename to rosserial_hello_world/Inc/sensor_msgs/LaserEcho.h diff --git a/rosserial_test/Inc/sensor_msgs/LaserScan.h b/rosserial_hello_world/Inc/sensor_msgs/LaserScan.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/LaserScan.h rename to rosserial_hello_world/Inc/sensor_msgs/LaserScan.h diff --git a/rosserial_test/Inc/sensor_msgs/MagneticField.h b/rosserial_hello_world/Inc/sensor_msgs/MagneticField.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/MagneticField.h rename to rosserial_hello_world/Inc/sensor_msgs/MagneticField.h diff --git a/rosserial_test/Inc/sensor_msgs/MultiDOFJointState.h b/rosserial_hello_world/Inc/sensor_msgs/MultiDOFJointState.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/MultiDOFJointState.h rename to rosserial_hello_world/Inc/sensor_msgs/MultiDOFJointState.h diff --git a/rosserial_test/Inc/sensor_msgs/MultiEchoLaserScan.h b/rosserial_hello_world/Inc/sensor_msgs/MultiEchoLaserScan.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/MultiEchoLaserScan.h rename to rosserial_hello_world/Inc/sensor_msgs/MultiEchoLaserScan.h diff --git a/rosserial_test/Inc/sensor_msgs/NavSatFix.h b/rosserial_hello_world/Inc/sensor_msgs/NavSatFix.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/NavSatFix.h rename to rosserial_hello_world/Inc/sensor_msgs/NavSatFix.h diff --git a/rosserial_test/Inc/sensor_msgs/NavSatStatus.h b/rosserial_hello_world/Inc/sensor_msgs/NavSatStatus.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/NavSatStatus.h rename to rosserial_hello_world/Inc/sensor_msgs/NavSatStatus.h diff --git a/rosserial_test/Inc/sensor_msgs/PointCloud.h b/rosserial_hello_world/Inc/sensor_msgs/PointCloud.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/PointCloud.h rename to rosserial_hello_world/Inc/sensor_msgs/PointCloud.h diff --git a/rosserial_test/Inc/sensor_msgs/PointCloud2.h b/rosserial_hello_world/Inc/sensor_msgs/PointCloud2.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/PointCloud2.h rename to rosserial_hello_world/Inc/sensor_msgs/PointCloud2.h diff --git a/rosserial_test/Inc/sensor_msgs/PointField.h b/rosserial_hello_world/Inc/sensor_msgs/PointField.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/PointField.h rename to rosserial_hello_world/Inc/sensor_msgs/PointField.h diff --git a/rosserial_test/Inc/sensor_msgs/Range.h b/rosserial_hello_world/Inc/sensor_msgs/Range.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/Range.h rename to rosserial_hello_world/Inc/sensor_msgs/Range.h diff --git a/rosserial_test/Inc/sensor_msgs/RegionOfInterest.h b/rosserial_hello_world/Inc/sensor_msgs/RegionOfInterest.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/RegionOfInterest.h rename to rosserial_hello_world/Inc/sensor_msgs/RegionOfInterest.h diff --git a/rosserial_test/Inc/sensor_msgs/RelativeHumidity.h b/rosserial_hello_world/Inc/sensor_msgs/RelativeHumidity.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/RelativeHumidity.h rename to rosserial_hello_world/Inc/sensor_msgs/RelativeHumidity.h diff --git a/rosserial_test/Inc/sensor_msgs/SetCameraInfo.h b/rosserial_hello_world/Inc/sensor_msgs/SetCameraInfo.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/SetCameraInfo.h rename to rosserial_hello_world/Inc/sensor_msgs/SetCameraInfo.h diff --git a/rosserial_test/Inc/sensor_msgs/Temperature.h b/rosserial_hello_world/Inc/sensor_msgs/Temperature.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/Temperature.h rename to rosserial_hello_world/Inc/sensor_msgs/Temperature.h diff --git a/rosserial_test/Inc/sensor_msgs/TimeReference.h b/rosserial_hello_world/Inc/sensor_msgs/TimeReference.h similarity index 100% rename from rosserial_test/Inc/sensor_msgs/TimeReference.h rename to rosserial_hello_world/Inc/sensor_msgs/TimeReference.h diff --git a/rosserial_test/Inc/shape_msgs/Mesh.h b/rosserial_hello_world/Inc/shape_msgs/Mesh.h similarity index 100% rename from rosserial_test/Inc/shape_msgs/Mesh.h rename to rosserial_hello_world/Inc/shape_msgs/Mesh.h diff --git a/rosserial_test/Inc/shape_msgs/MeshTriangle.h b/rosserial_hello_world/Inc/shape_msgs/MeshTriangle.h similarity index 100% rename from rosserial_test/Inc/shape_msgs/MeshTriangle.h rename to rosserial_hello_world/Inc/shape_msgs/MeshTriangle.h diff --git a/rosserial_test/Inc/shape_msgs/Plane.h b/rosserial_hello_world/Inc/shape_msgs/Plane.h similarity index 100% rename from rosserial_test/Inc/shape_msgs/Plane.h rename to rosserial_hello_world/Inc/shape_msgs/Plane.h diff --git a/rosserial_test/Inc/shape_msgs/SolidPrimitive.h b/rosserial_hello_world/Inc/shape_msgs/SolidPrimitive.h similarity index 100% rename from rosserial_test/Inc/shape_msgs/SolidPrimitive.h rename to rosserial_hello_world/Inc/shape_msgs/SolidPrimitive.h diff --git a/rosserial_test/Inc/smach_msgs/SmachContainerInitialStatusCmd.h b/rosserial_hello_world/Inc/smach_msgs/SmachContainerInitialStatusCmd.h similarity index 100% rename from rosserial_test/Inc/smach_msgs/SmachContainerInitialStatusCmd.h rename to rosserial_hello_world/Inc/smach_msgs/SmachContainerInitialStatusCmd.h diff --git a/rosserial_test/Inc/smach_msgs/SmachContainerStatus.h b/rosserial_hello_world/Inc/smach_msgs/SmachContainerStatus.h similarity index 100% rename from rosserial_test/Inc/smach_msgs/SmachContainerStatus.h rename to rosserial_hello_world/Inc/smach_msgs/SmachContainerStatus.h diff --git a/rosserial_test/Inc/smach_msgs/SmachContainerStructure.h b/rosserial_hello_world/Inc/smach_msgs/SmachContainerStructure.h similarity index 100% rename from rosserial_test/Inc/smach_msgs/SmachContainerStructure.h rename to rosserial_hello_world/Inc/smach_msgs/SmachContainerStructure.h diff --git a/rosserial_test/Inc/std_msgs/Bool.h b/rosserial_hello_world/Inc/std_msgs/Bool.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Bool.h rename to rosserial_hello_world/Inc/std_msgs/Bool.h diff --git a/rosserial_test/Inc/std_msgs/Byte.h b/rosserial_hello_world/Inc/std_msgs/Byte.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Byte.h rename to rosserial_hello_world/Inc/std_msgs/Byte.h diff --git a/rosserial_test/Inc/std_msgs/ByteMultiArray.h b/rosserial_hello_world/Inc/std_msgs/ByteMultiArray.h similarity index 100% rename from rosserial_test/Inc/std_msgs/ByteMultiArray.h rename to rosserial_hello_world/Inc/std_msgs/ByteMultiArray.h diff --git a/rosserial_test/Inc/std_msgs/Char.h b/rosserial_hello_world/Inc/std_msgs/Char.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Char.h rename to rosserial_hello_world/Inc/std_msgs/Char.h diff --git a/rosserial_test/Inc/std_msgs/ColorRGBA.h b/rosserial_hello_world/Inc/std_msgs/ColorRGBA.h similarity index 100% rename from rosserial_test/Inc/std_msgs/ColorRGBA.h rename to rosserial_hello_world/Inc/std_msgs/ColorRGBA.h diff --git a/rosserial_test/Inc/std_msgs/Duration.h b/rosserial_hello_world/Inc/std_msgs/Duration.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Duration.h rename to rosserial_hello_world/Inc/std_msgs/Duration.h diff --git a/rosserial_test/Inc/std_msgs/Empty.h b/rosserial_hello_world/Inc/std_msgs/Empty.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Empty.h rename to rosserial_hello_world/Inc/std_msgs/Empty.h diff --git a/rosserial_test/Inc/std_msgs/Float32.h b/rosserial_hello_world/Inc/std_msgs/Float32.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Float32.h rename to rosserial_hello_world/Inc/std_msgs/Float32.h diff --git a/rosserial_test/Inc/std_msgs/Float32MultiArray.h b/rosserial_hello_world/Inc/std_msgs/Float32MultiArray.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Float32MultiArray.h rename to rosserial_hello_world/Inc/std_msgs/Float32MultiArray.h diff --git a/rosserial_test/Inc/std_msgs/Float64.h b/rosserial_hello_world/Inc/std_msgs/Float64.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Float64.h rename to rosserial_hello_world/Inc/std_msgs/Float64.h diff --git a/rosserial_test/Inc/std_msgs/Float64MultiArray.h b/rosserial_hello_world/Inc/std_msgs/Float64MultiArray.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Float64MultiArray.h rename to rosserial_hello_world/Inc/std_msgs/Float64MultiArray.h diff --git a/rosserial_test/Inc/std_msgs/Header.h b/rosserial_hello_world/Inc/std_msgs/Header.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Header.h rename to rosserial_hello_world/Inc/std_msgs/Header.h diff --git a/rosserial_test/Inc/std_msgs/Int16.h b/rosserial_hello_world/Inc/std_msgs/Int16.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Int16.h rename to rosserial_hello_world/Inc/std_msgs/Int16.h diff --git a/rosserial_test/Inc/std_msgs/Int16MultiArray.h b/rosserial_hello_world/Inc/std_msgs/Int16MultiArray.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Int16MultiArray.h rename to rosserial_hello_world/Inc/std_msgs/Int16MultiArray.h diff --git a/rosserial_test/Inc/std_msgs/Int32.h b/rosserial_hello_world/Inc/std_msgs/Int32.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Int32.h rename to rosserial_hello_world/Inc/std_msgs/Int32.h diff --git a/rosserial_test/Inc/std_msgs/Int32MultiArray.h b/rosserial_hello_world/Inc/std_msgs/Int32MultiArray.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Int32MultiArray.h rename to rosserial_hello_world/Inc/std_msgs/Int32MultiArray.h diff --git a/rosserial_test/Inc/std_msgs/Int64.h b/rosserial_hello_world/Inc/std_msgs/Int64.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Int64.h rename to rosserial_hello_world/Inc/std_msgs/Int64.h diff --git a/rosserial_test/Inc/std_msgs/Int64MultiArray.h b/rosserial_hello_world/Inc/std_msgs/Int64MultiArray.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Int64MultiArray.h rename to rosserial_hello_world/Inc/std_msgs/Int64MultiArray.h diff --git a/rosserial_test/Inc/std_msgs/Int8.h b/rosserial_hello_world/Inc/std_msgs/Int8.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Int8.h rename to rosserial_hello_world/Inc/std_msgs/Int8.h diff --git a/rosserial_test/Inc/std_msgs/Int8MultiArray.h b/rosserial_hello_world/Inc/std_msgs/Int8MultiArray.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Int8MultiArray.h rename to rosserial_hello_world/Inc/std_msgs/Int8MultiArray.h diff --git a/rosserial_test/Inc/std_msgs/MultiArrayDimension.h b/rosserial_hello_world/Inc/std_msgs/MultiArrayDimension.h similarity index 100% rename from rosserial_test/Inc/std_msgs/MultiArrayDimension.h rename to rosserial_hello_world/Inc/std_msgs/MultiArrayDimension.h diff --git a/rosserial_test/Inc/std_msgs/MultiArrayLayout.h b/rosserial_hello_world/Inc/std_msgs/MultiArrayLayout.h similarity index 100% rename from rosserial_test/Inc/std_msgs/MultiArrayLayout.h rename to rosserial_hello_world/Inc/std_msgs/MultiArrayLayout.h diff --git a/rosserial_test/Inc/std_msgs/String.h b/rosserial_hello_world/Inc/std_msgs/String.h similarity index 100% rename from rosserial_test/Inc/std_msgs/String.h rename to rosserial_hello_world/Inc/std_msgs/String.h diff --git a/rosserial_test/Inc/std_msgs/Time.h b/rosserial_hello_world/Inc/std_msgs/Time.h similarity index 100% rename from rosserial_test/Inc/std_msgs/Time.h rename to rosserial_hello_world/Inc/std_msgs/Time.h diff --git a/rosserial_test/Inc/std_msgs/UInt16.h b/rosserial_hello_world/Inc/std_msgs/UInt16.h similarity index 100% rename from rosserial_test/Inc/std_msgs/UInt16.h rename to rosserial_hello_world/Inc/std_msgs/UInt16.h diff --git a/rosserial_test/Inc/std_msgs/UInt16MultiArray.h b/rosserial_hello_world/Inc/std_msgs/UInt16MultiArray.h similarity index 100% rename from rosserial_test/Inc/std_msgs/UInt16MultiArray.h rename to rosserial_hello_world/Inc/std_msgs/UInt16MultiArray.h diff --git a/rosserial_test/Inc/std_msgs/UInt32.h b/rosserial_hello_world/Inc/std_msgs/UInt32.h similarity index 100% rename from rosserial_test/Inc/std_msgs/UInt32.h rename to rosserial_hello_world/Inc/std_msgs/UInt32.h diff --git a/rosserial_test/Inc/std_msgs/UInt32MultiArray.h b/rosserial_hello_world/Inc/std_msgs/UInt32MultiArray.h similarity index 100% rename from rosserial_test/Inc/std_msgs/UInt32MultiArray.h rename to rosserial_hello_world/Inc/std_msgs/UInt32MultiArray.h diff --git a/rosserial_test/Inc/std_msgs/UInt64.h b/rosserial_hello_world/Inc/std_msgs/UInt64.h similarity index 100% rename from rosserial_test/Inc/std_msgs/UInt64.h rename to rosserial_hello_world/Inc/std_msgs/UInt64.h diff --git a/rosserial_test/Inc/std_msgs/UInt64MultiArray.h b/rosserial_hello_world/Inc/std_msgs/UInt64MultiArray.h similarity index 100% rename from rosserial_test/Inc/std_msgs/UInt64MultiArray.h rename to rosserial_hello_world/Inc/std_msgs/UInt64MultiArray.h diff --git a/rosserial_test/Inc/std_msgs/UInt8.h b/rosserial_hello_world/Inc/std_msgs/UInt8.h similarity index 100% rename from rosserial_test/Inc/std_msgs/UInt8.h rename to rosserial_hello_world/Inc/std_msgs/UInt8.h diff --git a/rosserial_test/Inc/std_msgs/UInt8MultiArray.h b/rosserial_hello_world/Inc/std_msgs/UInt8MultiArray.h similarity index 100% rename from rosserial_test/Inc/std_msgs/UInt8MultiArray.h rename to rosserial_hello_world/Inc/std_msgs/UInt8MultiArray.h diff --git a/rosserial_test/Inc/std_srvs/Empty.h b/rosserial_hello_world/Inc/std_srvs/Empty.h similarity index 100% rename from rosserial_test/Inc/std_srvs/Empty.h rename to rosserial_hello_world/Inc/std_srvs/Empty.h diff --git a/rosserial_test/Inc/std_srvs/SetBool.h b/rosserial_hello_world/Inc/std_srvs/SetBool.h similarity index 100% rename from rosserial_test/Inc/std_srvs/SetBool.h rename to rosserial_hello_world/Inc/std_srvs/SetBool.h diff --git a/rosserial_test/Inc/std_srvs/Trigger.h b/rosserial_hello_world/Inc/std_srvs/Trigger.h similarity index 100% rename from rosserial_test/Inc/std_srvs/Trigger.h rename to rosserial_hello_world/Inc/std_srvs/Trigger.h diff --git a/rosserial_test/Inc/stereo_msgs/DisparityImage.h b/rosserial_hello_world/Inc/stereo_msgs/DisparityImage.h similarity index 100% rename from rosserial_test/Inc/stereo_msgs/DisparityImage.h rename to rosserial_hello_world/Inc/stereo_msgs/DisparityImage.h diff --git a/rosserial_test/Inc/stm32f7xx_hal_conf.h b/rosserial_hello_world/Inc/stm32f7xx_hal_conf.h similarity index 100% rename from rosserial_test/Inc/stm32f7xx_hal_conf.h rename to rosserial_hello_world/Inc/stm32f7xx_hal_conf.h diff --git a/rosserial_test/Inc/stm32f7xx_it.h b/rosserial_hello_world/Inc/stm32f7xx_it.h similarity index 92% rename from rosserial_test/Inc/stm32f7xx_it.h rename to rosserial_hello_world/Inc/stm32f7xx_it.h index d2fcd67..c2cc023 100644 --- a/rosserial_test/Inc/stm32f7xx_it.h +++ b/rosserial_hello_world/Inc/stm32f7xx_it.h @@ -56,6 +56,9 @@ void SVC_Handler(void); void DebugMon_Handler(void); void PendSV_Handler(void); void SysTick_Handler(void); +void DMA1_Stream1_IRQHandler(void); +void DMA1_Stream3_IRQHandler(void); +void USART3_IRQHandler(void); /* USER CODE BEGIN EFP */ /* USER CODE END EFP */ diff --git a/rosserial_test/Inc/test.hpp b/rosserial_hello_world/Inc/test.hpp similarity index 100% rename from rosserial_test/Inc/test.hpp rename to rosserial_hello_world/Inc/test.hpp diff --git a/rosserial_test/Inc/tf/FrameGraph.h b/rosserial_hello_world/Inc/tf/FrameGraph.h similarity index 100% rename from rosserial_test/Inc/tf/FrameGraph.h rename to rosserial_hello_world/Inc/tf/FrameGraph.h diff --git a/rosserial_test/Inc/tf/tf.h b/rosserial_hello_world/Inc/tf/tf.h similarity index 100% rename from rosserial_test/Inc/tf/tf.h rename to rosserial_hello_world/Inc/tf/tf.h diff --git a/rosserial_test/Inc/tf/tfMessage.h b/rosserial_hello_world/Inc/tf/tfMessage.h similarity index 100% rename from rosserial_test/Inc/tf/tfMessage.h rename to rosserial_hello_world/Inc/tf/tfMessage.h diff --git a/rosserial_test/Inc/tf/transform_broadcaster.h b/rosserial_hello_world/Inc/tf/transform_broadcaster.h similarity index 100% rename from rosserial_test/Inc/tf/transform_broadcaster.h rename to rosserial_hello_world/Inc/tf/transform_broadcaster.h diff --git a/rosserial_test/Inc/tf2_msgs/FrameGraph.h b/rosserial_hello_world/Inc/tf2_msgs/FrameGraph.h similarity index 100% rename from rosserial_test/Inc/tf2_msgs/FrameGraph.h rename to rosserial_hello_world/Inc/tf2_msgs/FrameGraph.h diff --git a/rosserial_test/Inc/tf2_msgs/LookupTransformAction.h b/rosserial_hello_world/Inc/tf2_msgs/LookupTransformAction.h similarity index 100% rename from rosserial_test/Inc/tf2_msgs/LookupTransformAction.h rename to rosserial_hello_world/Inc/tf2_msgs/LookupTransformAction.h diff --git a/rosserial_test/Inc/tf2_msgs/LookupTransformActionFeedback.h b/rosserial_hello_world/Inc/tf2_msgs/LookupTransformActionFeedback.h similarity index 100% rename from rosserial_test/Inc/tf2_msgs/LookupTransformActionFeedback.h rename to rosserial_hello_world/Inc/tf2_msgs/LookupTransformActionFeedback.h diff --git a/rosserial_test/Inc/tf2_msgs/LookupTransformActionGoal.h b/rosserial_hello_world/Inc/tf2_msgs/LookupTransformActionGoal.h similarity index 100% rename from rosserial_test/Inc/tf2_msgs/LookupTransformActionGoal.h rename to rosserial_hello_world/Inc/tf2_msgs/LookupTransformActionGoal.h diff --git a/rosserial_test/Inc/tf2_msgs/LookupTransformActionResult.h b/rosserial_hello_world/Inc/tf2_msgs/LookupTransformActionResult.h similarity index 100% rename from rosserial_test/Inc/tf2_msgs/LookupTransformActionResult.h rename to rosserial_hello_world/Inc/tf2_msgs/LookupTransformActionResult.h diff --git a/rosserial_test/Inc/tf2_msgs/LookupTransformFeedback.h b/rosserial_hello_world/Inc/tf2_msgs/LookupTransformFeedback.h similarity index 100% rename from rosserial_test/Inc/tf2_msgs/LookupTransformFeedback.h rename to rosserial_hello_world/Inc/tf2_msgs/LookupTransformFeedback.h diff --git a/rosserial_test/Inc/tf2_msgs/LookupTransformGoal.h b/rosserial_hello_world/Inc/tf2_msgs/LookupTransformGoal.h similarity index 100% rename from rosserial_test/Inc/tf2_msgs/LookupTransformGoal.h rename to rosserial_hello_world/Inc/tf2_msgs/LookupTransformGoal.h diff --git a/rosserial_test/Inc/tf2_msgs/LookupTransformResult.h b/rosserial_hello_world/Inc/tf2_msgs/LookupTransformResult.h similarity index 100% rename from rosserial_test/Inc/tf2_msgs/LookupTransformResult.h rename to rosserial_hello_world/Inc/tf2_msgs/LookupTransformResult.h diff --git a/rosserial_test/Inc/tf2_msgs/TF2Error.h b/rosserial_hello_world/Inc/tf2_msgs/TF2Error.h similarity index 100% rename from rosserial_test/Inc/tf2_msgs/TF2Error.h rename to rosserial_hello_world/Inc/tf2_msgs/TF2Error.h diff --git a/rosserial_test/Inc/tf2_msgs/TFMessage.h b/rosserial_hello_world/Inc/tf2_msgs/TFMessage.h similarity index 100% rename from rosserial_test/Inc/tf2_msgs/TFMessage.h rename to rosserial_hello_world/Inc/tf2_msgs/TFMessage.h diff --git a/rosserial_test/Inc/theora_image_transport/Packet.h b/rosserial_hello_world/Inc/theora_image_transport/Packet.h similarity index 100% rename from rosserial_test/Inc/theora_image_transport/Packet.h rename to rosserial_hello_world/Inc/theora_image_transport/Packet.h diff --git a/rosserial_test/Inc/topic_tools/DemuxAdd.h b/rosserial_hello_world/Inc/topic_tools/DemuxAdd.h similarity index 100% rename from rosserial_test/Inc/topic_tools/DemuxAdd.h rename to rosserial_hello_world/Inc/topic_tools/DemuxAdd.h diff --git a/rosserial_test/Inc/topic_tools/DemuxDelete.h b/rosserial_hello_world/Inc/topic_tools/DemuxDelete.h similarity index 100% rename from rosserial_test/Inc/topic_tools/DemuxDelete.h rename to rosserial_hello_world/Inc/topic_tools/DemuxDelete.h diff --git a/rosserial_test/Inc/topic_tools/DemuxList.h b/rosserial_hello_world/Inc/topic_tools/DemuxList.h similarity index 100% rename from rosserial_test/Inc/topic_tools/DemuxList.h rename to rosserial_hello_world/Inc/topic_tools/DemuxList.h diff --git a/rosserial_test/Inc/topic_tools/DemuxSelect.h b/rosserial_hello_world/Inc/topic_tools/DemuxSelect.h similarity index 100% rename from rosserial_test/Inc/topic_tools/DemuxSelect.h rename to rosserial_hello_world/Inc/topic_tools/DemuxSelect.h diff --git a/rosserial_test/Inc/topic_tools/MuxAdd.h b/rosserial_hello_world/Inc/topic_tools/MuxAdd.h similarity index 100% rename from rosserial_test/Inc/topic_tools/MuxAdd.h rename to rosserial_hello_world/Inc/topic_tools/MuxAdd.h diff --git a/rosserial_test/Inc/topic_tools/MuxDelete.h b/rosserial_hello_world/Inc/topic_tools/MuxDelete.h similarity index 100% rename from rosserial_test/Inc/topic_tools/MuxDelete.h rename to rosserial_hello_world/Inc/topic_tools/MuxDelete.h diff --git a/rosserial_test/Inc/topic_tools/MuxList.h b/rosserial_hello_world/Inc/topic_tools/MuxList.h similarity index 100% rename from rosserial_test/Inc/topic_tools/MuxList.h rename to rosserial_hello_world/Inc/topic_tools/MuxList.h diff --git a/rosserial_test/Inc/topic_tools/MuxSelect.h b/rosserial_hello_world/Inc/topic_tools/MuxSelect.h similarity index 100% rename from rosserial_test/Inc/topic_tools/MuxSelect.h rename to rosserial_hello_world/Inc/topic_tools/MuxSelect.h diff --git a/rosserial_test/Inc/trajectory_msgs/JointTrajectory.h b/rosserial_hello_world/Inc/trajectory_msgs/JointTrajectory.h similarity index 100% rename from rosserial_test/Inc/trajectory_msgs/JointTrajectory.h rename to rosserial_hello_world/Inc/trajectory_msgs/JointTrajectory.h diff --git a/rosserial_test/Inc/trajectory_msgs/JointTrajectoryPoint.h b/rosserial_hello_world/Inc/trajectory_msgs/JointTrajectoryPoint.h similarity index 100% rename from rosserial_test/Inc/trajectory_msgs/JointTrajectoryPoint.h rename to rosserial_hello_world/Inc/trajectory_msgs/JointTrajectoryPoint.h diff --git a/rosserial_test/Inc/trajectory_msgs/MultiDOFJointTrajectory.h b/rosserial_hello_world/Inc/trajectory_msgs/MultiDOFJointTrajectory.h similarity index 100% rename from rosserial_test/Inc/trajectory_msgs/MultiDOFJointTrajectory.h rename to rosserial_hello_world/Inc/trajectory_msgs/MultiDOFJointTrajectory.h diff --git a/rosserial_test/Inc/trajectory_msgs/MultiDOFJointTrajectoryPoint.h b/rosserial_hello_world/Inc/trajectory_msgs/MultiDOFJointTrajectoryPoint.h similarity index 100% rename from rosserial_test/Inc/trajectory_msgs/MultiDOFJointTrajectoryPoint.h rename to rosserial_hello_world/Inc/trajectory_msgs/MultiDOFJointTrajectoryPoint.h diff --git a/rosserial_test/Inc/turtle_actionlib/ShapeAction.h b/rosserial_hello_world/Inc/turtle_actionlib/ShapeAction.h similarity index 100% rename from rosserial_test/Inc/turtle_actionlib/ShapeAction.h rename to rosserial_hello_world/Inc/turtle_actionlib/ShapeAction.h diff --git a/rosserial_test/Inc/turtle_actionlib/ShapeActionFeedback.h b/rosserial_hello_world/Inc/turtle_actionlib/ShapeActionFeedback.h similarity index 100% rename from rosserial_test/Inc/turtle_actionlib/ShapeActionFeedback.h rename to rosserial_hello_world/Inc/turtle_actionlib/ShapeActionFeedback.h diff --git a/rosserial_test/Inc/turtle_actionlib/ShapeActionGoal.h b/rosserial_hello_world/Inc/turtle_actionlib/ShapeActionGoal.h similarity index 100% rename from rosserial_test/Inc/turtle_actionlib/ShapeActionGoal.h rename to rosserial_hello_world/Inc/turtle_actionlib/ShapeActionGoal.h diff --git a/rosserial_test/Inc/turtle_actionlib/ShapeActionResult.h b/rosserial_hello_world/Inc/turtle_actionlib/ShapeActionResult.h similarity index 100% rename from rosserial_test/Inc/turtle_actionlib/ShapeActionResult.h rename to rosserial_hello_world/Inc/turtle_actionlib/ShapeActionResult.h diff --git a/rosserial_test/Inc/turtle_actionlib/ShapeFeedback.h b/rosserial_hello_world/Inc/turtle_actionlib/ShapeFeedback.h similarity index 100% rename from rosserial_test/Inc/turtle_actionlib/ShapeFeedback.h rename to rosserial_hello_world/Inc/turtle_actionlib/ShapeFeedback.h diff --git a/rosserial_test/Inc/turtle_actionlib/ShapeGoal.h b/rosserial_hello_world/Inc/turtle_actionlib/ShapeGoal.h similarity index 100% rename from rosserial_test/Inc/turtle_actionlib/ShapeGoal.h rename to rosserial_hello_world/Inc/turtle_actionlib/ShapeGoal.h diff --git a/rosserial_test/Inc/turtle_actionlib/ShapeResult.h b/rosserial_hello_world/Inc/turtle_actionlib/ShapeResult.h similarity index 100% rename from rosserial_test/Inc/turtle_actionlib/ShapeResult.h rename to rosserial_hello_world/Inc/turtle_actionlib/ShapeResult.h diff --git a/rosserial_test/Inc/turtle_actionlib/Velocity.h b/rosserial_hello_world/Inc/turtle_actionlib/Velocity.h similarity index 100% rename from rosserial_test/Inc/turtle_actionlib/Velocity.h rename to rosserial_hello_world/Inc/turtle_actionlib/Velocity.h diff --git a/rosserial_test/Inc/turtlesim/Color.h b/rosserial_hello_world/Inc/turtlesim/Color.h similarity index 100% rename from rosserial_test/Inc/turtlesim/Color.h rename to rosserial_hello_world/Inc/turtlesim/Color.h diff --git a/rosserial_test/Inc/turtlesim/Kill.h b/rosserial_hello_world/Inc/turtlesim/Kill.h similarity index 100% rename from rosserial_test/Inc/turtlesim/Kill.h rename to rosserial_hello_world/Inc/turtlesim/Kill.h diff --git a/rosserial_test/Inc/turtlesim/Pose.h b/rosserial_hello_world/Inc/turtlesim/Pose.h similarity index 100% rename from rosserial_test/Inc/turtlesim/Pose.h rename to rosserial_hello_world/Inc/turtlesim/Pose.h diff --git a/rosserial_test/Inc/turtlesim/SetPen.h b/rosserial_hello_world/Inc/turtlesim/SetPen.h similarity index 100% rename from rosserial_test/Inc/turtlesim/SetPen.h rename to rosserial_hello_world/Inc/turtlesim/SetPen.h diff --git a/rosserial_test/Inc/turtlesim/Spawn.h b/rosserial_hello_world/Inc/turtlesim/Spawn.h similarity index 100% rename from rosserial_test/Inc/turtlesim/Spawn.h rename to rosserial_hello_world/Inc/turtlesim/Spawn.h diff --git a/rosserial_test/Inc/turtlesim/TeleportAbsolute.h b/rosserial_hello_world/Inc/turtlesim/TeleportAbsolute.h similarity index 100% rename from rosserial_test/Inc/turtlesim/TeleportAbsolute.h rename to rosserial_hello_world/Inc/turtlesim/TeleportAbsolute.h diff --git a/rosserial_test/Inc/turtlesim/TeleportRelative.h b/rosserial_hello_world/Inc/turtlesim/TeleportRelative.h similarity index 100% rename from rosserial_test/Inc/turtlesim/TeleportRelative.h rename to rosserial_hello_world/Inc/turtlesim/TeleportRelative.h diff --git a/rosserial_test/Inc/visualization_msgs/ImageMarker.h b/rosserial_hello_world/Inc/visualization_msgs/ImageMarker.h similarity index 100% rename from rosserial_test/Inc/visualization_msgs/ImageMarker.h rename to rosserial_hello_world/Inc/visualization_msgs/ImageMarker.h diff --git a/rosserial_test/Inc/visualization_msgs/InteractiveMarker.h b/rosserial_hello_world/Inc/visualization_msgs/InteractiveMarker.h similarity index 100% rename from rosserial_test/Inc/visualization_msgs/InteractiveMarker.h rename to rosserial_hello_world/Inc/visualization_msgs/InteractiveMarker.h diff --git a/rosserial_test/Inc/visualization_msgs/InteractiveMarkerControl.h b/rosserial_hello_world/Inc/visualization_msgs/InteractiveMarkerControl.h similarity index 100% rename from rosserial_test/Inc/visualization_msgs/InteractiveMarkerControl.h rename to rosserial_hello_world/Inc/visualization_msgs/InteractiveMarkerControl.h diff --git a/rosserial_test/Inc/visualization_msgs/InteractiveMarkerFeedback.h b/rosserial_hello_world/Inc/visualization_msgs/InteractiveMarkerFeedback.h similarity index 100% rename from rosserial_test/Inc/visualization_msgs/InteractiveMarkerFeedback.h rename to rosserial_hello_world/Inc/visualization_msgs/InteractiveMarkerFeedback.h diff --git a/rosserial_test/Inc/visualization_msgs/InteractiveMarkerInit.h b/rosserial_hello_world/Inc/visualization_msgs/InteractiveMarkerInit.h similarity index 100% rename from rosserial_test/Inc/visualization_msgs/InteractiveMarkerInit.h rename to rosserial_hello_world/Inc/visualization_msgs/InteractiveMarkerInit.h diff --git a/rosserial_test/Inc/visualization_msgs/InteractiveMarkerPose.h b/rosserial_hello_world/Inc/visualization_msgs/InteractiveMarkerPose.h similarity index 100% rename from rosserial_test/Inc/visualization_msgs/InteractiveMarkerPose.h rename to rosserial_hello_world/Inc/visualization_msgs/InteractiveMarkerPose.h diff --git a/rosserial_test/Inc/visualization_msgs/InteractiveMarkerUpdate.h b/rosserial_hello_world/Inc/visualization_msgs/InteractiveMarkerUpdate.h similarity index 100% rename from rosserial_test/Inc/visualization_msgs/InteractiveMarkerUpdate.h rename to rosserial_hello_world/Inc/visualization_msgs/InteractiveMarkerUpdate.h diff --git a/rosserial_test/Inc/visualization_msgs/Marker.h b/rosserial_hello_world/Inc/visualization_msgs/Marker.h similarity index 100% rename from rosserial_test/Inc/visualization_msgs/Marker.h rename to rosserial_hello_world/Inc/visualization_msgs/Marker.h diff --git a/rosserial_test/Inc/visualization_msgs/MarkerArray.h b/rosserial_hello_world/Inc/visualization_msgs/MarkerArray.h similarity index 100% rename from rosserial_test/Inc/visualization_msgs/MarkerArray.h rename to rosserial_hello_world/Inc/visualization_msgs/MarkerArray.h diff --git a/rosserial_test/Inc/visualization_msgs/MenuEntry.h b/rosserial_hello_world/Inc/visualization_msgs/MenuEntry.h similarity index 100% rename from rosserial_test/Inc/visualization_msgs/MenuEntry.h rename to rosserial_hello_world/Inc/visualization_msgs/MenuEntry.h diff --git a/rosserial_test/STM32F767ZITX_FLASH.ld b/rosserial_hello_world/STM32F767ZITX_FLASH.ld similarity index 100% rename from rosserial_test/STM32F767ZITX_FLASH.ld rename to rosserial_hello_world/STM32F767ZITX_FLASH.ld diff --git a/rosserial_test/STM32F767ZITX_RAM.ld b/rosserial_hello_world/STM32F767ZITX_RAM.ld similarity index 100% rename from rosserial_test/STM32F767ZITX_RAM.ld rename to rosserial_hello_world/STM32F767ZITX_RAM.ld diff --git a/rosserial_hello_world/Src/main.cpp b/rosserial_hello_world/Src/main.cpp new file mode 100644 index 0000000..86237cf --- /dev/null +++ b/rosserial_hello_world/Src/main.cpp @@ -0,0 +1,314 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2019 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +#include +#include + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN PTD */ + +/* USER CODE END PTD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ + +TIM_HandleTypeDef htim2; + +UART_HandleTypeDef huart3; +DMA_HandleTypeDef hdma_usart3_rx; +DMA_HandleTypeDef hdma_usart3_tx; + +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_Init(void); +static void MX_DMA_Init(void); +static void MX_TIM2_Init(void); +static void MX_USART3_UART_Init(void); +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ +/* USER CODE END 0 */ + +/** + * @brief The application entry point. + * @retval int + */ +int main(void) { + /* USER CODE BEGIN 1 */ + + /* USER CODE END 1 */ + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + MX_DMA_Init(); + MX_TIM2_Init(); + MX_USART3_UART_Init(); + /* USER CODE BEGIN 2 */ + ros::NodeHandle nh; + + std_msgs::String str_msg; + ros::Publisher chatter("chatter", &str_msg); + char hello[] = "Hello world!"; + + nh.initNode(); + nh.advertise(chatter); + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) { + + str_msg.data = hello; + chatter.publish(&str_msg); + nh.spinOnce(); + + //HAL_UART_Transmit(&huart3, (uint8_t*)hello, strlen(hello), 100); + + HAL_Delay(1000); + + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + } + /* USER CODE END 3 */ +} + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) { + RCC_OscInitTypeDef RCC_OscInitStruct = { 0 }; + RCC_ClkInitTypeDef RCC_ClkInitStruct = { 0 }; + RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = { 0 }; + + /** Configure the main internal regulator output voltage + */ + __HAL_RCC_PWR_CLK_ENABLE() + ; + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3); + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK + | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) { + Error_Handler(); + } + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3; + PeriphClkInitStruct.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { + Error_Handler(); + } +} + +/** + * @brief TIM2 Initialization Function + * @param None + * @retval None + */ +static void MX_TIM2_Init(void) { + + /* USER CODE BEGIN TIM2_Init 0 */ + + /* USER CODE END TIM2_Init 0 */ + + TIM_ClockConfigTypeDef sClockSourceConfig = { 0 }; + TIM_MasterConfigTypeDef sMasterConfig = { 0 }; + + /* USER CODE BEGIN TIM2_Init 1 */ + + /* USER CODE END TIM2_Init 1 */ + htim2.Instance = TIM2; + htim2.Init.Prescaler = 0; + htim2.Init.CounterMode = TIM_COUNTERMODE_UP; + htim2.Init.Period = 0; + htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim2) != HAL_OK) { + Error_Handler(); + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) + != HAL_OK) { + Error_Handler(); + } + /* USER CODE BEGIN TIM2_Init 2 */ + + /* USER CODE END TIM2_Init 2 */ + +} + +/** + * @brief USART3 Initialization Function + * @param None + * @retval None + */ +static void MX_USART3_UART_Init(void) { + + /* USER CODE BEGIN USART3_Init 0 */ + + /* USER CODE END USART3_Init 0 */ + + /* USER CODE BEGIN USART3_Init 1 */ + + /* USER CODE END USART3_Init 1 */ + huart3.Instance = USART3; + huart3.Init.BaudRate = 115200; + huart3.Init.WordLength = UART_WORDLENGTH_8B; + huart3.Init.StopBits = UART_STOPBITS_1; + huart3.Init.Parity = UART_PARITY_NONE; + huart3.Init.Mode = UART_MODE_TX_RX; + huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart3.Init.OverSampling = UART_OVERSAMPLING_16; + huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; + huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; + if (HAL_UART_Init(&huart3) != HAL_OK) { + Error_Handler(); + } + /* USER CODE BEGIN USART3_Init 2 */ + + /* USER CODE END USART3_Init 2 */ + +} + +/** + * Enable DMA controller clock + */ +static void MX_DMA_Init(void) { + + /* DMA controller clock enable */ + __HAL_RCC_DMA1_CLK_ENABLE() + ; + + /* DMA interrupt init */ + /* DMA1_Stream1_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn); + /* DMA1_Stream3_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Stream3_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn); + +} + +/** + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) { + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOD_CLK_ENABLE() + ; + +} + +/* USER CODE BEGIN 4 */ + +/* USER CODE END 4 */ + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) { + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + + /* USER CODE END Error_Handler_Debug */ +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* USER CODE BEGIN 6 */ + /* User can add his own implementation to report the file name and line number, + tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* USER CODE END 6 */ +} +#endif /* USE_FULL_ASSERT */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/rosserial_test/Src/ros_time.cpp b/rosserial_hello_world/Src/ros_time.cpp similarity index 100% rename from rosserial_test/Src/ros_time.cpp rename to rosserial_hello_world/Src/ros_time.cpp diff --git a/rosserial_test/Src/stm32f7xx_hal_msp.c b/rosserial_hello_world/Src/stm32f7xx_hal_msp.c similarity index 66% rename from rosserial_test/Src/stm32f7xx_hal_msp.c rename to rosserial_hello_world/Src/stm32f7xx_hal_msp.c index fa7a3b8..b1cbc25 100644 --- a/rosserial_test/Src/stm32f7xx_hal_msp.c +++ b/rosserial_hello_world/Src/stm32f7xx_hal_msp.c @@ -24,6 +24,9 @@ /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ +extern DMA_HandleTypeDef hdma_usart3_rx; + +extern DMA_HandleTypeDef hdma_usart3_tx; /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN TD */ @@ -78,14 +81,14 @@ void HAL_MspInit(void) } /** -* @brief TIM_OnePulse MSP Initialization +* @brief TIM_Base MSP Initialization * This function configures the hardware resources used in this example -* @param htim_onepulse: TIM_OnePulse handle pointer +* @param htim_base: TIM_Base handle pointer * @retval None */ -void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef* htim_onepulse) +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) { - if(htim_onepulse->Instance==TIM2) + if(htim_base->Instance==TIM2) { /* USER CODE BEGIN TIM2_MspInit 0 */ @@ -100,14 +103,14 @@ void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef* htim_onepulse) } /** -* @brief TIM_OnePulse MSP De-Initialization +* @brief TIM_Base MSP De-Initialization * This function freeze the hardware resources used in this example -* @param htim_onepulse: TIM_OnePulse handle pointer +* @param htim_base: TIM_Base handle pointer * @retval None */ -void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef* htim_onepulse) +void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) { - if(htim_onepulse->Instance==TIM2) + if(htim_base->Instance==TIM2) { /* USER CODE BEGIN TIM2_MspDeInit 0 */ @@ -150,6 +153,46 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart) GPIO_InitStruct.Alternate = GPIO_AF7_USART3; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); + /* USART3 DMA Init */ + /* USART3_RX Init */ + hdma_usart3_rx.Instance = DMA1_Stream1; + hdma_usart3_rx.Init.Channel = DMA_CHANNEL_4; + hdma_usart3_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_usart3_rx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_usart3_rx.Init.MemInc = DMA_MINC_ENABLE; + hdma_usart3_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_usart3_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_usart3_rx.Init.Mode = DMA_NORMAL; + hdma_usart3_rx.Init.Priority = DMA_PRIORITY_LOW; + hdma_usart3_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; + if (HAL_DMA_Init(&hdma_usart3_rx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(huart,hdmarx,hdma_usart3_rx); + + /* USART3_TX Init */ + hdma_usart3_tx.Instance = DMA1_Stream3; + hdma_usart3_tx.Init.Channel = DMA_CHANNEL_4; + hdma_usart3_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; + hdma_usart3_tx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_usart3_tx.Init.MemInc = DMA_MINC_ENABLE; + hdma_usart3_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_usart3_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_usart3_tx.Init.Mode = DMA_NORMAL; + hdma_usart3_tx.Init.Priority = DMA_PRIORITY_LOW; + hdma_usart3_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; + if (HAL_DMA_Init(&hdma_usart3_tx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(huart,hdmatx,hdma_usart3_tx); + + /* USART3 interrupt Init */ + HAL_NVIC_SetPriority(USART3_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(USART3_IRQn); /* USER CODE BEGIN USART3_MspInit 1 */ /* USER CODE END USART3_MspInit 1 */ @@ -179,6 +222,12 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) */ HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8|GPIO_PIN_9); + /* USART3 DMA DeInit */ + HAL_DMA_DeInit(huart->hdmarx); + HAL_DMA_DeInit(huart->hdmatx); + + /* USART3 interrupt DeInit */ + HAL_NVIC_DisableIRQ(USART3_IRQn); /* USER CODE BEGIN USART3_MspDeInit 1 */ /* USER CODE END USART3_MspDeInit 1 */ diff --git a/rosserial_test/Src/stm32f7xx_it.c b/rosserial_hello_world/Src/stm32f7xx_it.c similarity index 80% rename from rosserial_test/Src/stm32f7xx_it.c rename to rosserial_hello_world/Src/stm32f7xx_it.c index 3293934..5e96494 100644 --- a/rosserial_test/Src/stm32f7xx_it.c +++ b/rosserial_hello_world/Src/stm32f7xx_it.c @@ -56,7 +56,9 @@ /* USER CODE END 0 */ /* External variables --------------------------------------------------------*/ - +extern DMA_HandleTypeDef hdma_usart3_rx; +extern DMA_HandleTypeDef hdma_usart3_tx; +extern UART_HandleTypeDef huart3; /* USER CODE BEGIN EV */ /* USER CODE END EV */ @@ -197,6 +199,48 @@ void SysTick_Handler(void) /* please refer to the startup file (startup_stm32f7xx.s). */ /******************************************************************************/ +/** + * @brief This function handles DMA1 stream1 global interrupt. + */ +void DMA1_Stream1_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Stream1_IRQn 0 */ + + /* USER CODE END DMA1_Stream1_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_usart3_rx); + /* USER CODE BEGIN DMA1_Stream1_IRQn 1 */ + + /* USER CODE END DMA1_Stream1_IRQn 1 */ +} + +/** + * @brief This function handles DMA1 stream3 global interrupt. + */ +void DMA1_Stream3_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Stream3_IRQn 0 */ + + /* USER CODE END DMA1_Stream3_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_usart3_tx); + /* USER CODE BEGIN DMA1_Stream3_IRQn 1 */ + + /* USER CODE END DMA1_Stream3_IRQn 1 */ +} + +/** + * @brief This function handles USART3 global interrupt. + */ +void USART3_IRQHandler(void) +{ + /* USER CODE BEGIN USART3_IRQn 0 */ + + /* USER CODE END USART3_IRQn 0 */ + HAL_UART_IRQHandler(&huart3); + /* USER CODE BEGIN USART3_IRQn 1 */ + + /* USER CODE END USART3_IRQn 1 */ +} + /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ diff --git a/rosserial_test/Src/syscalls.c b/rosserial_hello_world/Src/syscalls.c similarity index 100% rename from rosserial_test/Src/syscalls.c rename to rosserial_hello_world/Src/syscalls.c diff --git a/rosserial_test/Src/sysmem.c b/rosserial_hello_world/Src/sysmem.c similarity index 100% rename from rosserial_test/Src/sysmem.c rename to rosserial_hello_world/Src/sysmem.c diff --git a/rosserial_test/Src/system_stm32f7xx.c b/rosserial_hello_world/Src/system_stm32f7xx.c similarity index 100% rename from rosserial_test/Src/system_stm32f7xx.c rename to rosserial_hello_world/Src/system_stm32f7xx.c diff --git a/rosserial_test/Src/test.cpp b/rosserial_hello_world/Src/test.cpp similarity index 100% rename from rosserial_test/Src/test.cpp rename to rosserial_hello_world/Src/test.cpp diff --git a/rosserial_test/Startup/startup_stm32f767zitx.s b/rosserial_hello_world/Startup/startup_stm32f767zitx.s similarity index 100% rename from rosserial_test/Startup/startup_stm32f767zitx.s rename to rosserial_hello_world/Startup/startup_stm32f767zitx.s diff --git a/rosserial_test/rosserial_test.ioc b/rosserial_hello_world/rosserial_hello_world.ioc similarity index 67% rename from rosserial_test/rosserial_test.ioc rename to rosserial_hello_world/rosserial_hello_world.ioc index 49891c0..173d074 100644 --- a/rosserial_test/rosserial_test.ioc +++ b/rosserial_hello_world/rosserial_hello_world.ioc @@ -1,20 +1,44 @@ #MicroXplorer Configuration settings - do not modify +Dma.Request0=USART3_RX +Dma.Request1=USART3_TX +Dma.RequestsNb=2 +Dma.USART3_RX.0.Direction=DMA_PERIPH_TO_MEMORY +Dma.USART3_RX.0.FIFOMode=DMA_FIFOMODE_DISABLE +Dma.USART3_RX.0.Instance=DMA1_Stream1 +Dma.USART3_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.USART3_RX.0.MemInc=DMA_MINC_ENABLE +Dma.USART3_RX.0.Mode=DMA_NORMAL +Dma.USART3_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.USART3_RX.0.PeriphInc=DMA_PINC_DISABLE +Dma.USART3_RX.0.Priority=DMA_PRIORITY_LOW +Dma.USART3_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode +Dma.USART3_TX.1.Direction=DMA_MEMORY_TO_PERIPH +Dma.USART3_TX.1.FIFOMode=DMA_FIFOMODE_DISABLE +Dma.USART3_TX.1.Instance=DMA1_Stream3 +Dma.USART3_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.USART3_TX.1.MemInc=DMA_MINC_ENABLE +Dma.USART3_TX.1.Mode=DMA_NORMAL +Dma.USART3_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.USART3_TX.1.PeriphInc=DMA_PINC_DISABLE +Dma.USART3_TX.1.Priority=DMA_PRIORITY_LOW +Dma.USART3_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode File.Version=6 KeepUserPlacement=false Mcu.Family=STM32F7 Mcu.IP0=CORTEX_M7 -Mcu.IP1=NVIC -Mcu.IP2=RCC -Mcu.IP3=SYS -Mcu.IP4=TIM2 -Mcu.IP5=USART3 -Mcu.IPNb=6 +Mcu.IP1=DMA +Mcu.IP2=NVIC +Mcu.IP3=RCC +Mcu.IP4=SYS +Mcu.IP5=TIM2 +Mcu.IP6=USART3 +Mcu.IPNb=7 Mcu.Name=STM32F767ZITx Mcu.Package=LQFP144 Mcu.Pin0=PD8 Mcu.Pin1=PD9 Mcu.Pin2=VP_SYS_VS_Systick -Mcu.Pin3=VP_TIM2_VS_OPM +Mcu.Pin3=VP_TIM2_VS_ClockSourceINT Mcu.PinsNb=4 Mcu.ThirdPartyNb=0 Mcu.UserConstants= @@ -22,6 +46,8 @@ Mcu.UserName=STM32F767ZITx MxCube.Version=5.3.0 MxDb.Version=DB.5.0.30 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.DMA1_Stream1_IRQn=true\:0\:0\:false\:false\:true\:false\:true +NVIC.DMA1_Stream3_IRQn=true\:0\:0\:false\:false\:true\:false\:true NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false @@ -30,6 +56,7 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true +NVIC.USART3_IRQn=true\:0\:0\:false\:false\:true\:true\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false PCC.Checker=false PCC.Line=STM32F7x7 @@ -66,13 +93,13 @@ ProjectManager.MainLocation=Src ProjectManager.NoMain=false ProjectManager.PreviousToolchain= ProjectManager.ProjectBuild=false -ProjectManager.ProjectFileName=rosserial_test.ioc -ProjectManager.ProjectName=rosserial_test +ProjectManager.ProjectFileName=rosserial_hello_world.ioc +ProjectManager.ProjectName=rosserial_hello_world ProjectManager.StackSize=0x400 ProjectManager.TargetToolchain=STM32CubeIDE ProjectManager.ToolChainLocation= ProjectManager.UnderRoot=true -ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_TIM2_Init-TIM2-false-HAL-true,4-MX_USART3_UART_Init-USART3-false-HAL-true +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_TIM2_Init-TIM2-false-HAL-true,5-MX_USART3_UART_Init-USART3-false-HAL-true RCC.CECFreq_Value=32786.88524590164 RCC.DFSDMFreq_Value=16000000 RCC.FamilyName=M @@ -103,13 +130,11 @@ RCC.VCOI2SOutputFreq_Value=192000000 RCC.VCOInputFreq_Value=1000000 RCC.VCOOutputFreq_Value=192000000 RCC.VCOSAIOutputFreq_Value=192000000 -TIM2.IPParameters=Prescaler -TIM2.Prescaler=0 USART3.IPParameters=VirtualMode-Asynchronous USART3.VirtualMode-Asynchronous=VM_ASYNC VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick -VP_TIM2_VS_OPM.Mode=OPM_bit -VP_TIM2_VS_OPM.Signal=TIM2_VS_OPM +VP_TIM2_VS_ClockSourceINT.Mode=Internal +VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT board=custom isbadioc=false diff --git a/rosserial_test/rosserial_test.elf.launch b/rosserial_hello_world/rosserial_test.elf.launch similarity index 100% rename from rosserial_test/rosserial_test.elf.launch rename to rosserial_hello_world/rosserial_test.elf.launch diff --git a/rosserial_test/Debug/rosserial_test.list b/rosserial_test/Debug/rosserial_test.list deleted file mode 100644 index 444ce02..0000000 --- a/rosserial_test/Debug/rosserial_test.list +++ /dev/null @@ -1,32568 +0,0 @@ - -rosserial_test.elf: file format elf32-littlearm - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .isr_vector 000001f8 08000000 08000000 00010000 2**0 - CONTENTS, ALLOC, LOAD, READONLY, DATA - 1 .text 000117b0 08000200 08000200 00010200 2**4 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .rodata 000016f0 080119b0 080119b0 000219b0 2**3 - CONTENTS, ALLOC, LOAD, READONLY, DATA - 3 .ARM.extab 00000100 080130a0 080130a0 000230a0 2**2 - CONTENTS, ALLOC, LOAD, READONLY, DATA - 4 .ARM 00000188 080131a0 080131a0 000231a0 2**2 - CONTENTS, ALLOC, LOAD, READONLY, DATA - 5 .preinit_array 00000000 08013328 08013328 000309c0 2**0 - CONTENTS, ALLOC, LOAD, DATA - 6 .init_array 0000000c 08013328 08013328 00023328 2**2 - CONTENTS, ALLOC, LOAD, DATA - 7 .fini_array 00000004 08013334 08013334 00023334 2**2 - CONTENTS, ALLOC, LOAD, DATA - 8 .data 000009c0 20000000 08013338 00030000 2**3 - CONTENTS, ALLOC, LOAD, DATA - 9 .bss 0000014c 200009c0 08013cf8 000309c0 2**2 - ALLOC - 10 ._user_heap_stack 00000604 20000b0c 08013cf8 00030b0c 2**0 - ALLOC - 11 .ARM.attributes 0000002e 00000000 00000000 000309c0 2**0 - CONTENTS, READONLY - 12 .debug_info 00010b10 00000000 00000000 000309ee 2**0 - CONTENTS, READONLY, DEBUGGING - 13 .debug_abbrev 0000253c 00000000 00000000 000414fe 2**0 - CONTENTS, READONLY, DEBUGGING - 14 .debug_aranges 00000d70 00000000 00000000 00043a40 2**3 - CONTENTS, READONLY, DEBUGGING - 15 .debug_ranges 00000c90 00000000 00000000 000447b0 2**3 - CONTENTS, READONLY, DEBUGGING - 16 .debug_macro 0002b117 00000000 00000000 00045440 2**0 - CONTENTS, READONLY, DEBUGGING - 17 .debug_line 0000a042 00000000 00000000 00070557 2**0 - CONTENTS, READONLY, DEBUGGING - 18 .debug_str 000f9e37 00000000 00000000 0007a599 2**0 - CONTENTS, READONLY, DEBUGGING - 19 .comment 0000007b 00000000 00000000 001743d0 2**0 - CONTENTS, READONLY - 20 .debug_frame 00005e00 00000000 00000000 0017444c 2**2 - CONTENTS, READONLY, DEBUGGING - -Disassembly of section .text: - -08000200 <__do_global_dtors_aux>: - 8000200: b510 push {r4, lr} - 8000202: 4c05 ldr r4, [pc, #20] ; (8000218 <__do_global_dtors_aux+0x18>) - 8000204: 7823 ldrb r3, [r4, #0] - 8000206: b933 cbnz r3, 8000216 <__do_global_dtors_aux+0x16> - 8000208: 4b04 ldr r3, [pc, #16] ; (800021c <__do_global_dtors_aux+0x1c>) - 800020a: b113 cbz r3, 8000212 <__do_global_dtors_aux+0x12> - 800020c: 4804 ldr r0, [pc, #16] ; (8000220 <__do_global_dtors_aux+0x20>) - 800020e: f3af 8000 nop.w - 8000212: 2301 movs r3, #1 - 8000214: 7023 strb r3, [r4, #0] - 8000216: bd10 pop {r4, pc} - 8000218: 200009c0 .word 0x200009c0 - 800021c: 00000000 .word 0x00000000 - 8000220: 08011998 .word 0x08011998 - -08000224 : - 8000224: b508 push {r3, lr} - 8000226: 4b03 ldr r3, [pc, #12] ; (8000234 ) - 8000228: b11b cbz r3, 8000232 - 800022a: 4903 ldr r1, [pc, #12] ; (8000238 ) - 800022c: 4803 ldr r0, [pc, #12] ; (800023c ) - 800022e: f3af 8000 nop.w - 8000232: bd08 pop {r3, pc} - 8000234: 00000000 .word 0x00000000 - 8000238: 200009c4 .word 0x200009c4 - 800023c: 08011998 .word 0x08011998 - -08000240 : - 8000240: b4f0 push {r4, r5, r6, r7} - 8000242: 1e4c subs r4, r1, #1 - 8000244: 4605 mov r5, r0 - 8000246: 2c4e cmp r4, #78 ; 0x4e - 8000248: d83f bhi.n 80002ca - 800024a: e8df f004 tbb [pc, r4] - 800024e: 3b3b .short 0x3b3b - 8000250: 3e3e3b3b .word 0x3e3e3b3b - 8000254: 28283e3e .word 0x28283e3e - 8000258: 2828283b .word 0x2828283b - 800025c: 28282828 .word 0x28282828 - 8000260: 28282828 .word 0x28282828 - 8000264: 29293e28 .word 0x29293e28 - 8000268: 29292929 .word 0x29292929 - 800026c: 283b2929 .word 0x283b2929 - 8000270: 28282828 .word 0x28282828 - 8000274: 3c29283e .word 0x3c29283e - 8000278: 293b3e3b .word 0x293b3e3b - 800027c: 3e3e3c29 .word 0x3e3e3c29 - 8000280: 3b282828 .word 0x3b282828 - 8000284: 3b3b3b3b .word 0x3b3b3b3b - 8000288: 283b3b28 .word 0x283b3b28 - 800028c: 283e3e3b .word 0x283e3e3b - 8000290: 3e3e2828 .word 0x3e3e2828 - 8000294: 2828283e .word 0x2828283e - 8000298: 293b293b .word 0x293b293b - 800029c: 29 .byte 0x29 - 800029d: 00 .byte 0x00 - 800029e: b1a2 cbz r2, 80002ca - 80002a0: e9d5 4005 ldrd r4, r0, [r5, #20] - 80002a4: 4284 cmp r4, r0 - 80002a6: da10 bge.n 80002ca - 80002a8: 692f ldr r7, [r5, #16] - 80002aa: 0126 lsls r6, r4, #4 - 80002ac: 19b8 adds r0, r7, r6 - 80002ae: 3401 adds r4, #1 - 80002b0: f04f 0c00 mov.w ip, #0 - 80002b4: f8c0 c004 str.w ip, [r0, #4] - 80002b8: 616c str r4, [r5, #20] - 80002ba: 55b9 strb r1, [r7, r6] - 80002bc: e9c0 2302 strd r2, r3, [r0, #8] - 80002c0: bcf0 pop {r4, r5, r6, r7} - 80002c2: 4770 bx lr - 80002c4: b10a cbz r2, 80002ca - 80002c6: 2b00 cmp r3, #0 - 80002c8: d1ea bne.n 80002a0 - 80002ca: 2000 movs r0, #0 - 80002cc: bcf0 pop {r4, r5, r6, r7} - 80002ce: 4770 bx lr - -080002d0 : - 80002d0: b410 push {r4} - 80002d2: 68c3 ldr r3, [r0, #12] - 80002d4: 781c ldrb r4, [r3, #0] - 80002d6: 2c52 cmp r4, #82 ; 0x52 - 80002d8: 460a mov r2, r1 - 80002da: d00f beq.n 80002fc - 80002dc: 2c4f cmp r4, #79 ; 0x4f - 80002de: d003 beq.n 80002e8 - 80002e0: 4608 mov r0, r1 - 80002e2: f85d 4b04 ldr.w r4, [sp], #4 - 80002e6: 4770 bx lr - 80002e8: 6b01 ldr r1, [r0, #48] ; 0x30 - 80002ea: 3103 adds r1, #3 - 80002ec: 6301 str r1, [r0, #48] ; 0x30 - 80002ee: 2120 movs r1, #32 - 80002f0: 3301 adds r3, #1 - 80002f2: 60c3 str r3, [r0, #12] - 80002f4: f85d 4b04 ldr.w r4, [sp], #4 - 80002f8: 2300 movs r3, #0 - 80002fa: e7a1 b.n 8000240 - 80002fc: 6b01 ldr r1, [r0, #48] ; 0x30 - 80002fe: 3102 adds r1, #2 - 8000300: 6301 str r1, [r0, #48] ; 0x30 - 8000302: 211f movs r1, #31 - 8000304: e7f4 b.n 80002f0 - 8000306: bf00 nop - -08000308 : - 8000308: 2a00 cmp r2, #0 - 800030a: d04e beq.n 80003aa - 800030c: b570 push {r4, r5, r6, lr} - 800030e: 4605 mov r5, r0 - 8000310: 460e mov r6, r1 - 8000312: 4614 mov r4, r2 - 8000314: 7823 ldrb r3, [r4, #0] - 8000316: 3b01 subs r3, #1 - 8000318: 2b4e cmp r3, #78 ; 0x4e - 800031a: d82c bhi.n 8000376 - 800031c: e8df f003 tbb [pc, r3] - 8000320: 40373737 .word 0x40373737 - 8000324: 28282b2b .word 0x28282b2b - 8000328: 37373737 .word 0x37373737 - 800032c: 37373737 .word 0x37373737 - 8000330: 37373737 .word 0x37373737 - 8000334: 2b373737 .word 0x2b373737 - 8000338: 37373737 .word 0x37373737 - 800033c: 37373737 .word 0x37373737 - 8000340: 30303737 .word 0x30303737 - 8000344: 372b3737 .word 0x372b3737 - 8000348: 2c373737 .word 0x2c373737 - 800034c: 37373737 .word 0x37373737 - 8000350: 3737282b .word 0x3737282b - 8000354: 37373737 .word 0x37373737 - 8000358: 37373737 .word 0x37373737 - 800035c: 2b373737 .word 0x2b373737 - 8000360: 2c2c372b .word 0x2c2c372b - 8000364: 372b2c2c .word 0x372b2c2c - 8000368: 37373737 .word 0x37373737 - 800036c: 3737 .short 0x3737 - 800036e: 37 .byte 0x37 - 800036f: 00 .byte 0x00 - 8000370: 68e4 ldr r4, [r4, #12] - 8000372: 2c00 cmp r4, #0 - 8000374: d1ce bne.n 8000314 - 8000376: bd70 pop {r4, r5, r6, pc} - 8000378: 68a4 ldr r4, [r4, #8] - 800037a: 2c00 cmp r4, #0 - 800037c: d1ca bne.n 8000314 - 800037e: e7fa b.n 8000376 - 8000380: 68a2 ldr r2, [r4, #8] - 8000382: 7813 ldrb r3, [r2, #0] - 8000384: 2b05 cmp r3, #5 - 8000386: d103 bne.n 8000390 - 8000388: 6833 ldr r3, [r6, #0] - 800038a: 3301 adds r3, #1 - 800038c: 6033 str r3, [r6, #0] - 800038e: 68a2 ldr r2, [r4, #8] - 8000390: 4631 mov r1, r6 - 8000392: 4628 mov r0, r5 - 8000394: f7ff ffb8 bl 8000308 - 8000398: 68e4 ldr r4, [r4, #12] - 800039a: 2c00 cmp r4, #0 - 800039c: d1ba bne.n 8000314 - 800039e: e7ea b.n 8000376 - 80003a0: 682b ldr r3, [r5, #0] - 80003a2: 3301 adds r3, #1 - 80003a4: 602b str r3, [r5, #0] - 80003a6: 68a2 ldr r2, [r4, #8] - 80003a8: e7f2 b.n 8000390 - 80003aa: 4770 bx lr - -080003ac : - 80003ac: b39a cbz r2, 8000416 - 80003ae: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 80003b2: 188e adds r6, r1, r2 - 80003b4: 4604 mov r4, r0 - 80003b6: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 80003ba: 3e01 subs r6, #1 - 80003bc: 1e4d subs r5, r1, #1 - 80003be: 2700 movs r7, #0 - 80003c0: e016 b.n 80003f0 - 80003c2: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80003c6: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80003ca: f884 70ff strb.w r7, [r4, #255] ; 0xff - 80003ce: 4798 blx r3 - 80003d0: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80003d4: 2200 movs r2, #0 - 80003d6: 3301 adds r3, #1 - 80003d8: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80003dc: 42b5 cmp r5, r6 - 80003de: f04f 0301 mov.w r3, #1 - 80003e2: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80003e6: f804 8002 strb.w r8, [r4, r2] - 80003ea: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 80003ee: d010 beq.n 8000412 - 80003f0: 2bff cmp r3, #255 ; 0xff - 80003f2: 4619 mov r1, r3 - 80003f4: 4620 mov r0, r4 - 80003f6: f815 8f01 ldrb.w r8, [r5, #1]! - 80003fa: d0e2 beq.n 80003c2 - 80003fc: 461a mov r2, r3 - 80003fe: 42b5 cmp r5, r6 - 8000400: f103 0301 add.w r3, r3, #1 - 8000404: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8000408: f804 8002 strb.w r8, [r4, r2] - 800040c: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 8000410: d1ee bne.n 80003f0 - 8000412: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8000416: 4770 bx lr - -08000418 : - 8000418: f1a0 031c sub.w r3, r0, #28 - 800041c: 2b04 cmp r3, #4 - 800041e: d907 bls.n 8000430 - 8000420: 284c cmp r0, #76 ; 0x4c - 8000422: d005 beq.n 8000430 - 8000424: 384e subs r0, #78 ; 0x4e - 8000426: 2801 cmp r0, #1 - 8000428: bf8c ite hi - 800042a: 2000 movhi r0, #0 - 800042c: 2001 movls r0, #1 - 800042e: 4770 bx lr - 8000430: 2001 movs r0, #1 - 8000432: 4770 bx lr - -08000434 : - 8000434: b470 push {r4, r5, r6} - 8000436: 6802 ldr r2, [r0, #0] - 8000438: 7811 ldrb r1, [r2, #0] - 800043a: 296e cmp r1, #110 ; 0x6e - 800043c: d018 beq.n 8000470 - 800043e: f1a1 0330 sub.w r3, r1, #48 ; 0x30 - 8000442: 2b09 cmp r3, #9 - 8000444: d81e bhi.n 8000484 - 8000446: 2600 movs r6, #0 - 8000448: 2300 movs r3, #0 - 800044a: 3201 adds r2, #1 - 800044c: eb03 0383 add.w r3, r3, r3, lsl #2 - 8000450: 6002 str r2, [r0, #0] - 8000452: eb01 0443 add.w r4, r1, r3, lsl #1 - 8000456: 7811 ldrb r1, [r2, #0] - 8000458: f1a1 0530 sub.w r5, r1, #48 ; 0x30 - 800045c: 2d09 cmp r5, #9 - 800045e: f1a4 0330 sub.w r3, r4, #48 ; 0x30 - 8000462: d9f2 bls.n 800044a - 8000464: b10e cbz r6, 800046a - 8000466: f1c4 0330 rsb r3, r4, #48 ; 0x30 - 800046a: 4618 mov r0, r3 - 800046c: bc70 pop {r4, r5, r6} - 800046e: 4770 bx lr - 8000470: 1c53 adds r3, r2, #1 - 8000472: 6003 str r3, [r0, #0] - 8000474: 7851 ldrb r1, [r2, #1] - 8000476: f1a1 0230 sub.w r2, r1, #48 ; 0x30 - 800047a: 2a09 cmp r2, #9 - 800047c: d802 bhi.n 8000484 - 800047e: 461a mov r2, r3 - 8000480: 2601 movs r6, #1 - 8000482: e7e1 b.n 8000448 - 8000484: 2300 movs r3, #0 - 8000486: 4618 mov r0, r3 - 8000488: bc70 pop {r4, r5, r6} - 800048a: 4770 bx lr - -0800048c : - 800048c: e9d0 3205 ldrd r3, r2, [r0, #20] - 8000490: 4293 cmp r3, r2 - 8000492: b570 push {r4, r5, r6, lr} - 8000494: da0e bge.n 80004b4 - 8000496: 6901 ldr r1, [r0, #16] - 8000498: 011a lsls r2, r3, #4 - 800049a: 188c adds r4, r1, r2 - 800049c: 3301 adds r3, #1 - 800049e: 2600 movs r6, #0 - 80004a0: 2541 movs r5, #65 ; 0x41 - 80004a2: 6066 str r6, [r4, #4] - 80004a4: 300c adds r0, #12 - 80004a6: 6083 str r3, [r0, #8] - 80004a8: 548d strb r5, [r1, r2] - 80004aa: f7ff ffc3 bl 8000434 - 80004ae: 60a0 str r0, [r4, #8] - 80004b0: 4620 mov r0, r4 - 80004b2: bd70 pop {r4, r5, r6, pc} - 80004b4: 2400 movs r4, #0 - 80004b6: 4620 mov r0, r4 - 80004b8: bd70 pop {r4, r5, r6, pc} - 80004ba: bf00 nop - -080004bc : - 80004bc: b510 push {r4, lr} - 80004be: 68c3 ldr r3, [r0, #12] - 80004c0: 781a ldrb r2, [r3, #0] - 80004c2: 2a5f cmp r2, #95 ; 0x5f - 80004c4: 4604 mov r4, r0 - 80004c6: d00d beq.n 80004e4 - 80004c8: 2a6e cmp r2, #110 ; 0x6e - 80004ca: d00d beq.n 80004e8 - 80004cc: 300c adds r0, #12 - 80004ce: f7ff ffb1 bl 8000434 - 80004d2: 3001 adds r0, #1 - 80004d4: d408 bmi.n 80004e8 - 80004d6: 68e3 ldr r3, [r4, #12] - 80004d8: 781a ldrb r2, [r3, #0] - 80004da: 2a5f cmp r2, #95 ; 0x5f - 80004dc: d104 bne.n 80004e8 - 80004de: 3301 adds r3, #1 - 80004e0: 60e3 str r3, [r4, #12] - 80004e2: bd10 pop {r4, pc} - 80004e4: 2000 movs r0, #0 - 80004e6: e7fa b.n 80004de - 80004e8: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 80004ec: bd10 pop {r4, pc} - 80004ee: bf00 nop - -080004f0 : - 80004f0: b5f8 push {r3, r4, r5, r6, r7, lr} - 80004f2: 68c3 ldr r3, [r0, #12] - 80004f4: 781a ldrb r2, [r3, #0] - 80004f6: 2a54 cmp r2, #84 ; 0x54 - 80004f8: d119 bne.n 800052e - 80004fa: 3301 adds r3, #1 - 80004fc: 60c3 str r3, [r0, #12] - 80004fe: 4604 mov r4, r0 - 8000500: f7ff ffdc bl 80004bc - 8000504: 1e05 subs r5, r0, #0 - 8000506: db12 blt.n 800052e - 8000508: e9d4 3105 ldrd r3, r1, [r4, #20] - 800050c: 6aa2 ldr r2, [r4, #40] ; 0x28 - 800050e: 428b cmp r3, r1 - 8000510: f102 0201 add.w r2, r2, #1 - 8000514: 62a2 str r2, [r4, #40] ; 0x28 - 8000516: da0a bge.n 800052e - 8000518: 6921 ldr r1, [r4, #16] - 800051a: 011a lsls r2, r3, #4 - 800051c: 1888 adds r0, r1, r2 - 800051e: 3301 adds r3, #1 - 8000520: 2700 movs r7, #0 - 8000522: 2605 movs r6, #5 - 8000524: 6047 str r7, [r0, #4] - 8000526: 6163 str r3, [r4, #20] - 8000528: 548e strb r6, [r1, r2] - 800052a: 6085 str r5, [r0, #8] - 800052c: bdf8 pop {r3, r4, r5, r6, r7, pc} - 800052e: 2000 movs r0, #0 - 8000530: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8000532: bf00 nop - -08000534 : - 8000534: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8000538: 4604 mov r4, r0 - 800053a: 300c adds r0, #12 - 800053c: f7ff ff7a bl 8000434 - 8000540: 1e07 subs r7, r0, #0 - 8000542: dd49 ble.n 80005d8 - 8000544: 68e5 ldr r5, [r4, #12] - 8000546: 6863 ldr r3, [r4, #4] - 8000548: 1b5b subs r3, r3, r5 - 800054a: 429f cmp r7, r3 - 800054c: dc42 bgt.n 80005d4 - 800054e: 68a2 ldr r2, [r4, #8] - 8000550: 19eb adds r3, r5, r7 - 8000552: 0752 lsls r2, r2, #29 - 8000554: 60e3 str r3, [r4, #12] - 8000556: d504 bpl.n 8000562 - 8000558: 5dea ldrb r2, [r5, r7] - 800055a: 2a24 cmp r2, #36 ; 0x24 - 800055c: bf04 itt eq - 800055e: 3301 addeq r3, #1 - 8000560: 60e3 streq r3, [r4, #12] - 8000562: 2f09 cmp r7, #9 - 8000564: e9d4 6805 ldrd r6, r8, [r4, #20] - 8000568: dc10 bgt.n 800058c - 800056a: 45b0 cmp r8, r6 - 800056c: dd32 ble.n 80005d4 - 800056e: 6921 ldr r1, [r4, #16] - 8000570: 0132 lsls r2, r6, #4 - 8000572: 1888 adds r0, r1, r2 - 8000574: 3601 adds r6, #1 - 8000576: 2300 movs r3, #0 - 8000578: 6043 str r3, [r0, #4] - 800057a: 6166 str r6, [r4, #20] - 800057c: b355 cbz r5, 80005d4 - 800057e: 6043 str r3, [r0, #4] - 8000580: 548b strb r3, [r1, r2] - 8000582: e9c0 5702 strd r5, r7, [r0, #8] - 8000586: 62e0 str r0, [r4, #44] ; 0x2c - 8000588: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 800058c: 2208 movs r2, #8 - 800058e: 4914 ldr r1, [pc, #80] ; (80005e0 ) - 8000590: 4628 mov r0, r5 - 8000592: f00d fee1 bl 800e358 - 8000596: 2800 cmp r0, #0 - 8000598: d1e7 bne.n 800056a - 800059a: 7a2b ldrb r3, [r5, #8] - 800059c: 2b2e cmp r3, #46 ; 0x2e - 800059e: d003 beq.n 80005a8 - 80005a0: 2b5f cmp r3, #95 ; 0x5f - 80005a2: d001 beq.n 80005a8 - 80005a4: 2b24 cmp r3, #36 ; 0x24 - 80005a6: d1e0 bne.n 800056a - 80005a8: 7a6b ldrb r3, [r5, #9] - 80005aa: 2b4e cmp r3, #78 ; 0x4e - 80005ac: d1dd bne.n 800056a - 80005ae: 6b23 ldr r3, [r4, #48] ; 0x30 - 80005b0: 3316 adds r3, #22 - 80005b2: 1bdf subs r7, r3, r7 - 80005b4: 45b0 cmp r8, r6 - 80005b6: 6327 str r7, [r4, #48] ; 0x30 - 80005b8: dd0c ble.n 80005d4 - 80005ba: 6922 ldr r2, [r4, #16] - 80005bc: 4d09 ldr r5, [pc, #36] ; (80005e4 ) - 80005be: 0133 lsls r3, r6, #4 - 80005c0: 18d0 adds r0, r2, r3 - 80005c2: 2100 movs r1, #0 - 80005c4: 3601 adds r6, #1 - 80005c6: 6166 str r6, [r4, #20] - 80005c8: 6041 str r1, [r0, #4] - 80005ca: 54d1 strb r1, [r2, r3] - 80005cc: 2315 movs r3, #21 - 80005ce: e9c0 5302 strd r5, r3, [r0, #8] - 80005d2: e7d8 b.n 8000586 - 80005d4: 2000 movs r0, #0 - 80005d6: e7d6 b.n 8000586 - 80005d8: 2000 movs r0, #0 - 80005da: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 80005de: bf00 nop - 80005e0: 08012550 .word 0x08012550 - 80005e4: 0801255c .word 0x0801255c - -080005e8 : - 80005e8: b570 push {r4, r5, r6, lr} - 80005ea: 68c3 ldr r3, [r0, #12] - 80005ec: 6ac6 ldr r6, [r0, #44] ; 0x2c - 80005ee: 781a ldrb r2, [r3, #0] - 80005f0: 2a42 cmp r2, #66 ; 0x42 - 80005f2: 4604 mov r4, r0 - 80005f4: 460d mov r5, r1 - 80005f6: d10f bne.n 8000618 - 80005f8: 3301 adds r3, #1 - 80005fa: 60e3 str r3, [r4, #12] - 80005fc: 4620 mov r0, r4 - 80005fe: f7ff ff99 bl 8000534 - 8000602: 462a mov r2, r5 - 8000604: 4603 mov r3, r0 - 8000606: 214b movs r1, #75 ; 0x4b - 8000608: 4620 mov r0, r4 - 800060a: f7ff fe19 bl 8000240 - 800060e: 68e3 ldr r3, [r4, #12] - 8000610: 781a ldrb r2, [r3, #0] - 8000612: 2a42 cmp r2, #66 ; 0x42 - 8000614: 4605 mov r5, r0 - 8000616: d0ef beq.n 80005f8 - 8000618: 62e6 str r6, [r4, #44] ; 0x2c - 800061a: 4628 mov r0, r5 - 800061c: bd70 pop {r4, r5, r6, pc} - 800061e: bf00 nop - -08000620 : - 8000620: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 8000624: 4605 mov r5, r0 - 8000626: 68c0 ldr r0, [r0, #12] - 8000628: 7803 ldrb r3, [r0, #0] - 800062a: 2b53 cmp r3, #83 ; 0x53 - 800062c: d131 bne.n 8000692 - 800062e: 1c43 adds r3, r0, #1 - 8000630: 60eb str r3, [r5, #12] - 8000632: 7842 ldrb r2, [r0, #1] - 8000634: b3a2 cbz r2, 80006a0 - 8000636: 1c83 adds r3, r0, #2 - 8000638: 60eb str r3, [r5, #12] - 800063a: 7842 ldrb r2, [r0, #1] - 800063c: 2a5f cmp r2, #95 ; 0x5f - 800063e: f000 8089 beq.w 8000754 - 8000642: f1a2 0430 sub.w r4, r2, #48 ; 0x30 - 8000646: b2e3 uxtb r3, r4 - 8000648: 2b09 cmp r3, #9 - 800064a: d825 bhi.n 8000698 - 800064c: 2100 movs r1, #0 - 800064e: e00e b.n 800066e - 8000650: 3b30 subs r3, #48 ; 0x30 - 8000652: 4299 cmp r1, r3 - 8000654: d81d bhi.n 8000692 - 8000656: 68e9 ldr r1, [r5, #12] - 8000658: 780a ldrb r2, [r1, #0] - 800065a: 1c48 adds r0, r1, #1 - 800065c: b122 cbz r2, 8000668 - 800065e: 60e8 str r0, [r5, #12] - 8000660: 780a ldrb r2, [r1, #0] - 8000662: 2a5f cmp r2, #95 ; 0x5f - 8000664: f000 8082 beq.w 800076c - 8000668: f1a2 0430 sub.w r4, r2, #48 ; 0x30 - 800066c: 4619 mov r1, r3 - 800066e: b2e4 uxtb r4, r4 - 8000670: eb01 03c1 add.w r3, r1, r1, lsl #3 - 8000674: 2c09 cmp r4, #9 - 8000676: f1a2 0041 sub.w r0, r2, #65 ; 0x41 - 800067a: eb02 0383 add.w r3, r2, r3, lsl #2 - 800067e: d9e7 bls.n 8000650 - 8000680: 2819 cmp r0, #25 - 8000682: d806 bhi.n 8000692 - 8000684: eb01 03c1 add.w r3, r1, r1, lsl #3 - 8000688: eb02 0383 add.w r3, r2, r3, lsl #2 - 800068c: 3b37 subs r3, #55 ; 0x37 - 800068e: 4299 cmp r1, r3 - 8000690: d9e1 bls.n 8000656 - 8000692: 2000 movs r0, #0 - 8000694: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 8000698: f1a2 0341 sub.w r3, r2, #65 ; 0x41 - 800069c: 2b19 cmp r3, #25 - 800069e: d9d5 bls.n 800064c - 80006a0: 68ab ldr r3, [r5, #8] - 80006a2: f003 0308 and.w r3, r3, #8 - 80006a6: 2b00 cmp r3, #0 - 80006a8: bf14 ite ne - 80006aa: 2401 movne r4, #1 - 80006ac: 2400 moveq r4, #0 - 80006ae: d101 bne.n 80006b4 - 80006b0: 2900 cmp r1, #0 - 80006b2: d15d bne.n 8000770 - 80006b4: 4b35 ldr r3, [pc, #212] ; (800078c ) - 80006b6: 2174 movs r1, #116 ; 0x74 - 80006b8: 4291 cmp r1, r2 - 80006ba: f103 00c4 add.w r0, r3, #196 ; 0xc4 - 80006be: d005 beq.n 80006cc - 80006c0: 331c adds r3, #28 - 80006c2: 4283 cmp r3, r0 - 80006c4: d2e5 bcs.n 8000692 - 80006c6: 7819 ldrb r1, [r3, #0] - 80006c8: 4291 cmp r1, r2 - 80006ca: d1f9 bne.n 80006c0 - 80006cc: 6958 ldr r0, [r3, #20] - 80006ce: e9d5 2105 ldrd r2, r1, [r5, #20] - 80006d2: b1a8 cbz r0, 8000700 - 80006d4: 428a cmp r2, r1 - 80006d6: da57 bge.n 8000788 - 80006d8: f8d5 c010 ldr.w ip, [r5, #16] - 80006dc: f8d3 e018 ldr.w lr, [r3, #24] - 80006e0: 0117 lsls r7, r2, #4 - 80006e2: eb0c 0607 add.w r6, ip, r7 - 80006e6: 3201 adds r2, #1 - 80006e8: f04f 0900 mov.w r9, #0 - 80006ec: f04f 0818 mov.w r8, #24 - 80006f0: f8c6 9004 str.w r9, [r6, #4] - 80006f4: 616a str r2, [r5, #20] - 80006f6: f80c 8007 strb.w r8, [ip, r7] - 80006fa: e9c6 0e02 strd r0, lr, [r6, #8] - 80006fe: 62ee str r6, [r5, #44] ; 0x2c - 8000700: 2c00 cmp r4, #0 - 8000702: d13c bne.n 800077e - 8000704: e9d3 6401 ldrd r6, r4, [r3, #4] - 8000708: 6b2b ldr r3, [r5, #48] ; 0x30 - 800070a: 4291 cmp r1, r2 - 800070c: 4423 add r3, r4 - 800070e: 632b str r3, [r5, #48] ; 0x30 - 8000710: dd38 ble.n 8000784 - 8000712: 6929 ldr r1, [r5, #16] - 8000714: 0113 lsls r3, r2, #4 - 8000716: 18c8 adds r0, r1, r3 - 8000718: 3201 adds r2, #1 - 800071a: f04f 0c00 mov.w ip, #0 - 800071e: 2718 movs r7, #24 - 8000720: f8c0 c004 str.w ip, [r0, #4] - 8000724: 616a str r2, [r5, #20] - 8000726: 54cf strb r7, [r1, r3] - 8000728: e9c0 6402 strd r6, r4, [r0, #8] - 800072c: 68eb ldr r3, [r5, #12] - 800072e: 781b ldrb r3, [r3, #0] - 8000730: 2b42 cmp r3, #66 ; 0x42 - 8000732: d1af bne.n 8000694 - 8000734: 4601 mov r1, r0 - 8000736: 4628 mov r0, r5 - 8000738: f7ff ff56 bl 80005e8 - 800073c: 2800 cmp r0, #0 - 800073e: d0a8 beq.n 8000692 - 8000740: e9d5 3208 ldrd r3, r2, [r5, #32] - 8000744: 4293 cmp r3, r2 - 8000746: daa5 bge.n 8000694 - 8000748: 69e9 ldr r1, [r5, #28] - 800074a: 1c5a adds r2, r3, #1 - 800074c: f841 0023 str.w r0, [r1, r3, lsl #2] - 8000750: 622a str r2, [r5, #32] - 8000752: e79f b.n 8000694 - 8000754: 2300 movs r3, #0 - 8000756: 6a2a ldr r2, [r5, #32] - 8000758: 429a cmp r2, r3 - 800075a: d99a bls.n 8000692 - 800075c: 6aaa ldr r2, [r5, #40] ; 0x28 - 800075e: 69e9 ldr r1, [r5, #28] - 8000760: 3201 adds r2, #1 - 8000762: 62aa str r2, [r5, #40] ; 0x28 - 8000764: f851 0023 ldr.w r0, [r1, r3, lsl #2] - 8000768: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 800076c: 3301 adds r3, #1 - 800076e: e7f2 b.n 8000756 - 8000770: 68eb ldr r3, [r5, #12] - 8000772: 781b ldrb r3, [r3, #0] - 8000774: 3b43 subs r3, #67 ; 0x43 - 8000776: 2b01 cmp r3, #1 - 8000778: bf98 it ls - 800077a: 460c movls r4, r1 - 800077c: e79a b.n 80006b4 - 800077e: e9d3 6403 ldrd r6, r4, [r3, #12] - 8000782: e7c1 b.n 8000708 - 8000784: 2000 movs r0, #0 - 8000786: e7d1 b.n 800072c - 8000788: 2600 movs r6, #0 - 800078a: e7b8 b.n 80006fe - 800078c: 08011b0c .word 0x08011b0c - -08000790 : - 8000790: 68c3 ldr r3, [r0, #12] - 8000792: 781a ldrb r2, [r3, #0] - 8000794: 2a5f cmp r2, #95 ; 0x5f - 8000796: d001 beq.n 800079c - 8000798: 2001 movs r0, #1 - 800079a: 4770 bx lr - 800079c: b510 push {r4, lr} - 800079e: 1c5a adds r2, r3, #1 - 80007a0: 4604 mov r4, r0 - 80007a2: f840 2f0c str.w r2, [r0, #12]! - 80007a6: 785a ldrb r2, [r3, #1] - 80007a8: 2a5f cmp r2, #95 ; 0x5f - 80007aa: d004 beq.n 80007b6 - 80007ac: f7ff fe42 bl 8000434 - 80007b0: 43c0 mvns r0, r0 - 80007b2: 0fc0 lsrs r0, r0, #31 - 80007b4: bd10 pop {r4, pc} - 80007b6: 3302 adds r3, #2 - 80007b8: 60e3 str r3, [r4, #12] - 80007ba: f7ff fe3b bl 8000434 - 80007be: 2800 cmp r0, #0 - 80007c0: db05 blt.n 80007ce - 80007c2: 2809 cmp r0, #9 - 80007c4: dd07 ble.n 80007d6 - 80007c6: 68e3 ldr r3, [r4, #12] - 80007c8: 781a ldrb r2, [r3, #0] - 80007ca: 2a5f cmp r2, #95 ; 0x5f - 80007cc: d001 beq.n 80007d2 - 80007ce: 2000 movs r0, #0 - 80007d0: bd10 pop {r4, pc} - 80007d2: 3301 adds r3, #1 - 80007d4: 60e3 str r3, [r4, #12] - 80007d6: 2001 movs r0, #1 - 80007d8: bd10 pop {r4, pc} - 80007da: bf00 nop - -080007dc : - 80007dc: b170 cbz r0, 80007fc - 80007de: 7803 ldrb r3, [r0, #0] - 80007e0: 2b2f cmp r3, #47 ; 0x2f - 80007e2: d10f bne.n 8000804 - 80007e4: 2900 cmp r1, #0 - 80007e6: dc04 bgt.n 80007f2 - 80007e8: e009 b.n 80007fe - 80007ea: 7803 ldrb r3, [r0, #0] - 80007ec: 2b2f cmp r3, #47 ; 0x2f - 80007ee: d109 bne.n 8000804 - 80007f0: b131 cbz r1, 8000800 - 80007f2: 68c0 ldr r0, [r0, #12] - 80007f4: 3901 subs r1, #1 - 80007f6: 2800 cmp r0, #0 - 80007f8: d1f7 bne.n 80007ea - 80007fa: 4770 bx lr - 80007fc: 4770 bx lr - 80007fe: d101 bne.n 8000804 - 8000800: 6880 ldr r0, [r0, #8] - 8000802: 4770 bx lr - 8000804: 2000 movs r0, #0 - 8000806: 4770 bx lr - -08000808 : - 8000808: f8d0 3110 ldr.w r3, [r0, #272] ; 0x110 - 800080c: b133 cbz r3, 800081c - 800080e: 6809 ldr r1, [r1, #0] - 8000810: 685b ldr r3, [r3, #4] - 8000812: 2900 cmp r1, #0 - 8000814: 68db ldr r3, [r3, #12] - 8000816: db04 blt.n 8000822 - 8000818: 4618 mov r0, r3 - 800081a: e7df b.n 80007dc - 800081c: 2201 movs r2, #1 - 800081e: f8c0 2118 str.w r2, [r0, #280] ; 0x118 - 8000822: 4618 mov r0, r3 - 8000824: 4770 bx lr - 8000826: bf00 nop - -08000828 : - 8000828: 2900 cmp r1, #0 - 800082a: d042 beq.n 80008b2 - 800082c: b538 push {r3, r4, r5, lr} - 800082e: 4605 mov r5, r0 - 8000830: 460c mov r4, r1 - 8000832: 7823 ldrb r3, [r4, #0] - 8000834: 2b4b cmp r3, #75 ; 0x4b - 8000836: d827 bhi.n 8000888 - 8000838: e8df f003 tbb [pc, r3] - 800083c: 2626262e .word 0x2626262e - 8000840: 2b2e3026 .word 0x2b2e3026 - 8000844: 2626262b .word 0x2626262b - 8000848: 26262626 .word 0x26262626 - 800084c: 26262626 .word 0x26262626 - 8000850: 26262626 .word 0x26262626 - 8000854: 2626262e .word 0x2626262e - 8000858: 26262626 .word 0x26262626 - 800085c: 26262626 .word 0x26262626 - 8000860: 2e262626 .word 0x2e262626 - 8000864: 26262626 .word 0x26262626 - 8000868: 2626262e .word 0x2626262e - 800086c: 262b2e26 .word 0x262b2e26 - 8000870: 26262626 .word 0x26262626 - 8000874: 26262626 .word 0x26262626 - 8000878: 26262626 .word 0x26262626 - 800087c: 26262e2e .word 0x26262e2e - 8000880: 2e2e2e26 .word 0x2e2e2e26 - 8000884: 2e2e2626 .word 0x2e2e2626 - 8000888: 68a1 ldr r1, [r4, #8] - 800088a: 4628 mov r0, r5 - 800088c: f7ff ffcc bl 8000828 - 8000890: b918 cbnz r0, 800089a - 8000892: 68e4 ldr r4, [r4, #12] - 8000894: 2c00 cmp r4, #0 - 8000896: d1cc bne.n 8000832 - 8000898: 2000 movs r0, #0 - 800089a: bd38 pop {r3, r4, r5, pc} - 800089c: f104 0108 add.w r1, r4, #8 - 80008a0: 4628 mov r0, r5 - 80008a2: f7ff ffb1 bl 8000808 - 80008a6: 2800 cmp r0, #0 - 80008a8: d0f6 beq.n 8000898 - 80008aa: 7803 ldrb r3, [r0, #0] - 80008ac: 2b2f cmp r3, #47 ; 0x2f - 80008ae: d1f3 bne.n 8000898 - 80008b0: bd38 pop {r3, r4, r5, pc} - 80008b2: 2000 movs r0, #0 - 80008b4: 4770 bx lr - 80008b6: bf00 nop - -080008b8 : - 80008b8: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 80008bc: 4614 mov r4, r2 - 80008be: e9d4 5702 ldrd r5, r7, [r4, #8] - 80008c2: 6852 ldr r2, [r2, #4] - 80008c4: 1c4b adds r3, r1, #1 - 80008c6: 4413 add r3, r2 - 80008c8: 42ab cmp r3, r5 - 80008ca: b082 sub sp, #8 - 80008cc: 460e mov r6, r1 - 80008ce: 4680 mov r8, r0 - 80008d0: d814 bhi.n 80008fc - 80008d2: b117 cbz r7, 80008da - 80008d4: b002 add sp, #8 - 80008d6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 80008da: e9d4 0300 ldrd r0, r3, [r4] - 80008de: 4632 mov r2, r6 - 80008e0: 4641 mov r1, r8 - 80008e2: 4418 add r0, r3 - 80008e4: f00d fd47 bl 800e376 - 80008e8: e9d4 3200 ldrd r3, r2, [r4] - 80008ec: 4433 add r3, r6 - 80008ee: 549f strb r7, [r3, r2] - 80008f0: 6863 ldr r3, [r4, #4] - 80008f2: 441e add r6, r3 - 80008f4: 6066 str r6, [r4, #4] - 80008f6: b002 add sp, #8 - 80008f8: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 80008fc: 2f00 cmp r7, #0 - 80008fe: d1e9 bne.n 80008d4 - 8000900: b91d cbnz r5, 800090a - 8000902: 2b02 cmp r3, #2 - 8000904: f04f 0502 mov.w r5, #2 - 8000908: d902 bls.n 8000910 - 800090a: 006d lsls r5, r5, #1 - 800090c: 42ab cmp r3, r5 - 800090e: d8fc bhi.n 800090a - 8000910: 4629 mov r1, r5 - 8000912: 6820 ldr r0, [r4, #0] - 8000914: f00d fd9c bl 800e450 - 8000918: b128 cbz r0, 8000926 - 800091a: 68e7 ldr r7, [r4, #12] - 800091c: 6020 str r0, [r4, #0] - 800091e: 60a5 str r5, [r4, #8] - 8000920: 2f00 cmp r7, #0 - 8000922: d1d7 bne.n 80008d4 - 8000924: e7d9 b.n 80008da - 8000926: 9001 str r0, [sp, #4] - 8000928: 6820 ldr r0, [r4, #0] - 800092a: f00d fad7 bl 800dedc - 800092e: 9b01 ldr r3, [sp, #4] - 8000930: 2201 movs r2, #1 - 8000932: e9c4 3300 strd r3, r3, [r4] - 8000936: e9c4 3202 strd r3, r2, [r4, #8] - 800093a: e7cb b.n 80008d4 - -0800093c : - 800093c: b538 push {r3, r4, r5, lr} - 800093e: 4604 mov r4, r0 - 8000940: b929 cbnz r1, 800094e - 8000942: 68c3 ldr r3, [r0, #12] - 8000944: 781a ldrb r2, [r3, #0] - 8000946: b132 cbz r2, 8000956 - 8000948: 1c5a adds r2, r3, #1 - 800094a: 60c2 str r2, [r0, #12] - 800094c: 7819 ldrb r1, [r3, #0] - 800094e: 2968 cmp r1, #104 ; 0x68 - 8000950: d012 beq.n 8000978 - 8000952: 2976 cmp r1, #118 ; 0x76 - 8000954: d001 beq.n 800095a - 8000956: 2000 movs r0, #0 - 8000958: bd38 pop {r3, r4, r5, pc} - 800095a: f104 050c add.w r5, r4, #12 - 800095e: 4628 mov r0, r5 - 8000960: f7ff fd68 bl 8000434 - 8000964: 68e3 ldr r3, [r4, #12] - 8000966: 781a ldrb r2, [r3, #0] - 8000968: 2a5f cmp r2, #95 ; 0x5f - 800096a: d1f4 bne.n 8000956 - 800096c: 3301 adds r3, #1 - 800096e: 60e3 str r3, [r4, #12] - 8000970: 4628 mov r0, r5 - 8000972: f7ff fd5f bl 8000434 - 8000976: e003 b.n 8000980 - 8000978: f104 000c add.w r0, r4, #12 - 800097c: f7ff fd5a bl 8000434 - 8000980: 68e3 ldr r3, [r4, #12] - 8000982: 781a ldrb r2, [r3, #0] - 8000984: 2a5f cmp r2, #95 ; 0x5f - 8000986: d1e6 bne.n 8000956 - 8000988: 3301 adds r3, #1 - 800098a: 60e3 str r3, [r4, #12] - 800098c: 2001 movs r0, #1 - 800098e: bd38 pop {r3, r4, r5, pc} - -08000990 : - 8000990: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8000994: b088 sub sp, #32 - 8000996: 460a mov r2, r1 - 8000998: 4604 mov r4, r0 - 800099a: 491c ldr r1, [pc, #112] ; (8000a0c ) - 800099c: a801 add r0, sp, #4 - 800099e: f00d ff5d bl 800e85c - 80009a2: a801 add r0, sp, #4 - 80009a4: f006 fa16 bl 8006dd4 - 80009a8: b368 cbz r0, 8000a06 - 80009aa: ad01 add r5, sp, #4 - 80009ac: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80009b0: 182e adds r6, r5, r0 - 80009b2: 2700 movs r7, #0 - 80009b4: e016 b.n 80009e4 - 80009b6: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80009ba: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80009be: f884 70ff strb.w r7, [r4, #255] ; 0xff - 80009c2: 4798 blx r3 - 80009c4: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80009c8: 2200 movs r2, #0 - 80009ca: 3301 adds r3, #1 - 80009cc: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80009d0: 42ae cmp r6, r5 - 80009d2: f04f 0301 mov.w r3, #1 - 80009d6: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80009da: f804 8002 strb.w r8, [r4, r2] - 80009de: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 80009e2: d010 beq.n 8000a06 - 80009e4: 2bff cmp r3, #255 ; 0xff - 80009e6: 4619 mov r1, r3 - 80009e8: 4620 mov r0, r4 - 80009ea: f815 8b01 ldrb.w r8, [r5], #1 - 80009ee: d0e2 beq.n 80009b6 - 80009f0: 461a mov r2, r3 - 80009f2: 42ae cmp r6, r5 - 80009f4: f103 0301 add.w r3, r3, #1 - 80009f8: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80009fc: f804 8002 strb.w r8, [r4, r2] - 8000a00: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 8000a04: d1ee bne.n 80009e4 - 8000a06: b008 add sp, #32 - 8000a08: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8000a0c: 08012574 .word 0x08012574 - -08000a10 : - 8000a10: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8000a14: 68c3 ldr r3, [r0, #12] - 8000a16: 781d ldrb r5, [r3, #0] - 8000a18: b083 sub sp, #12 - 8000a1a: 2200 movs r2, #0 - 8000a1c: 428d cmp r5, r1 - 8000a1e: 4604 mov r4, r0 - 8000a20: 9201 str r2, [sp, #4] - 8000a22: f000 8199 beq.w 8000d58 - 8000a26: f8df 94c0 ldr.w r9, [pc, #1216] ; 8000ee8 - 8000a2a: 4688 mov r8, r1 - 8000a2c: af01 add r7, sp, #4 - 8000a2e: 2501 movs r5, #1 - 8000a30: 6b66 ldr r6, [r4, #52] ; 0x34 - 8000a32: 6365 str r5, [r4, #52] ; 0x34 - 8000a34: 781a ldrb r2, [r3, #0] - 8000a36: 2a4c cmp r2, #76 ; 0x4c - 8000a38: d05c beq.n 8000af4 - 8000a3a: 2a54 cmp r2, #84 ; 0x54 - 8000a3c: d066 beq.n 8000b0c - 8000a3e: 2a73 cmp r2, #115 ; 0x73 - 8000a40: d045 beq.n 8000ace - 8000a42: 2a66 cmp r2, #102 ; 0x66 - 8000a44: d11c bne.n 8000a80 - 8000a46: 785a ldrb r2, [r3, #1] - 8000a48: 2a70 cmp r2, #112 ; 0x70 - 8000a4a: f000 8087 beq.w 8000b5c - 8000a4e: 4620 mov r0, r4 - 8000a50: f001 fa70 bl 8001f34 - 8000a54: 4605 mov r5, r0 - 8000a56: 2800 cmp r0, #0 - 8000a58: f000 818c beq.w 8000d74 - 8000a5c: 7803 ldrb r3, [r0, #0] - 8000a5e: 2b31 cmp r3, #49 ; 0x31 - 8000a60: f000 8098 beq.w 8000b94 - 8000a64: 2b32 cmp r3, #50 ; 0x32 - 8000a66: d056 beq.n 8000b16 - 8000a68: 2b33 cmp r3, #51 ; 0x33 - 8000a6a: d171 bne.n 8000b50 - 8000a6c: 68e3 ldr r3, [r4, #12] - 8000a6e: 781a ldrb r2, [r3, #0] - 8000a70: 2a5f cmp r2, #95 ; 0x5f - 8000a72: f000 81da beq.w 8000e2a - 8000a76: 4620 mov r0, r4 - 8000a78: f000 fa38 bl 8000eec - 8000a7c: 4603 mov r3, r0 - 8000a7e: e0c1 b.n 8000c04 - 8000a80: f1a2 0130 sub.w r1, r2, #48 ; 0x30 - 8000a84: 2909 cmp r1, #9 - 8000a86: f200 80e7 bhi.w 8000c58 - 8000a8a: 4620 mov r0, r4 - 8000a8c: f001 fbfe bl 800228c - 8000a90: 4605 mov r5, r0 - 8000a92: 2800 cmp r0, #0 - 8000a94: f000 816e beq.w 8000d74 - 8000a98: 68e3 ldr r3, [r4, #12] - 8000a9a: 781a ldrb r2, [r3, #0] - 8000a9c: 2a49 cmp r2, #73 ; 0x49 - 8000a9e: f000 80b8 beq.w 8000c12 - 8000aa2: 6366 str r6, [r4, #52] ; 0x34 - 8000aa4: 462a mov r2, r5 - 8000aa6: 2300 movs r3, #0 - 8000aa8: 212e movs r1, #46 ; 0x2e - 8000aaa: 4620 mov r0, r4 - 8000aac: f7ff fbc8 bl 8000240 - 8000ab0: 6038 str r0, [r7, #0] - 8000ab2: b330 cbz r0, 8000b02 - 8000ab4: 68e3 ldr r3, [r4, #12] - 8000ab6: 781a ldrb r2, [r3, #0] - 8000ab8: 4542 cmp r2, r8 - 8000aba: f100 070c add.w r7, r0, #12 - 8000abe: d1b6 bne.n 8000a2e - 8000ac0: 3301 adds r3, #1 - 8000ac2: 9d01 ldr r5, [sp, #4] - 8000ac4: 60e3 str r3, [r4, #12] - 8000ac6: 4628 mov r0, r5 - 8000ac8: b003 add sp, #12 - 8000aca: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8000ace: 785a ldrb r2, [r3, #1] - 8000ad0: 2a72 cmp r2, #114 ; 0x72 - 8000ad2: f000 80ab beq.w 8000c2c - 8000ad6: 2a70 cmp r2, #112 ; 0x70 - 8000ad8: d1b9 bne.n 8000a4e - 8000ada: 3302 adds r3, #2 - 8000adc: 60e3 str r3, [r4, #12] - 8000ade: 4620 mov r0, r4 - 8000ae0: f000 fa04 bl 8000eec - 8000ae4: 2300 movs r3, #0 - 8000ae6: 4602 mov r2, r0 - 8000ae8: 214a movs r1, #74 ; 0x4a - 8000aea: 4620 mov r0, r4 - 8000aec: f7ff fba8 bl 8000240 - 8000af0: 4605 mov r5, r0 - 8000af2: e003 b.n 8000afc - 8000af4: 4620 mov r0, r4 - 8000af6: f002 f813 bl 8002b20 - 8000afa: 4605 mov r5, r0 - 8000afc: 6366 str r6, [r4, #52] ; 0x34 - 8000afe: 2d00 cmp r5, #0 - 8000b00: d1d0 bne.n 8000aa4 - 8000b02: 2500 movs r5, #0 - 8000b04: 4628 mov r0, r5 - 8000b06: b003 add sp, #12 - 8000b08: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8000b0c: 4620 mov r0, r4 - 8000b0e: f7ff fcef bl 80004f0 - 8000b12: 4605 mov r5, r0 - 8000b14: e7f2 b.n 8000afc - 8000b16: 6883 ldr r3, [r0, #8] - 8000b18: 2b03 cmp r3, #3 - 8000b1a: d819 bhi.n 8000b50 - 8000b1c: a201 add r2, pc, #4 ; (adr r2, 8000b24 ) - 8000b1e: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8000b22: bf00 nop - 8000b24: 08000cb7 .word 0x08000cb7 - 8000b28: 08000a77 .word 0x08000a77 - 8000b2c: 08000b51 .word 0x08000b51 - 8000b30: 08000b51 .word 0x08000b51 - 8000b34: 2a74 cmp r2, #116 ; 0x74 - 8000b36: d18a bne.n 8000a4e - 8000b38: 785b ldrb r3, [r3, #1] - 8000b3a: 2b6c cmp r3, #108 ; 0x6c - 8000b3c: d187 bne.n 8000a4e - 8000b3e: 4620 mov r0, r4 - 8000b40: f000 fdfe bl 8001740 - 8000b44: 68e3 ldr r3, [r4, #12] - 8000b46: 785a ldrb r2, [r3, #1] - 8000b48: 4605 mov r5, r0 - 8000b4a: 2a00 cmp r2, #0 - 8000b4c: f040 8123 bne.w 8000d96 - 8000b50: 2500 movs r5, #0 - 8000b52: 4628 mov r0, r5 - 8000b54: 6366 str r6, [r4, #52] ; 0x34 - 8000b56: b003 add sp, #12 - 8000b58: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8000b5c: 1c9a adds r2, r3, #2 - 8000b5e: 60e2 str r2, [r4, #12] - 8000b60: 789a ldrb r2, [r3, #2] - 8000b62: 2a54 cmp r2, #84 ; 0x54 - 8000b64: f040 8082 bne.w 8000c6c - 8000b68: 3303 adds r3, #3 - 8000b6a: 60e3 str r3, [r4, #12] - 8000b6c: 2000 movs r0, #0 - 8000b6e: e9d4 3205 ldrd r3, r2, [r4, #20] - 8000b72: 4293 cmp r3, r2 - 8000b74: daec bge.n 8000b50 - 8000b76: 6921 ldr r1, [r4, #16] - 8000b78: 011a lsls r2, r3, #4 - 8000b7a: 188d adds r5, r1, r2 - 8000b7c: 3301 adds r3, #1 - 8000b7e: f04f 0e00 mov.w lr, #0 - 8000b82: f04f 0c06 mov.w ip, #6 - 8000b86: f8c5 e004 str.w lr, [r5, #4] - 8000b8a: 6163 str r3, [r4, #20] - 8000b8c: f801 c002 strb.w ip, [r1, r2] - 8000b90: 60a8 str r0, [r5, #8] - 8000b92: e786 b.n 8000aa2 - 8000b94: f8d0 b008 ldr.w fp, [r0, #8] - 8000b98: 6b23 ldr r3, [r4, #48] ; 0x30 - 8000b9a: f8db 2008 ldr.w r2, [fp, #8] - 8000b9e: f8db a000 ldr.w sl, [fp] - 8000ba2: 3a02 subs r2, #2 - 8000ba4: 4413 add r3, r2 - 8000ba6: 6323 str r3, [r4, #48] ; 0x30 - 8000ba8: 4650 mov r0, sl - 8000baa: 4649 mov r1, r9 - 8000bac: f006 f908 bl 8006dc0 - 8000bb0: 2800 cmp r0, #0 - 8000bb2: f000 80e4 beq.w 8000d7e - 8000bb6: f8db b00c ldr.w fp, [fp, #12] - 8000bba: f1bb 0f03 cmp.w fp, #3 - 8000bbe: d8c7 bhi.n 8000b50 - 8000bc0: e8df f01b tbh [pc, fp, lsl #1] - 8000bc4: 00040079 .word 0x00040079 - 8000bc8: 008100f7 .word 0x008100f7 - 8000bcc: f89a 3000 ldrb.w r3, [sl] - 8000bd0: 2b70 cmp r3, #112 ; 0x70 - 8000bd2: d065 beq.n 8000ca0 - 8000bd4: 2b6d cmp r3, #109 ; 0x6d - 8000bd6: d063 beq.n 8000ca0 - 8000bd8: f04f 0b00 mov.w fp, #0 - 8000bdc: 4650 mov r0, sl - 8000bde: 49bd ldr r1, [pc, #756] ; (8000ed4 ) - 8000be0: f006 f8ee bl 8006dc0 - 8000be4: 2800 cmp r0, #0 - 8000be6: f040 80c0 bne.w 8000d6a - 8000bea: 4620 mov r0, r4 - 8000bec: f000 fb90 bl 8001310 - 8000bf0: 4603 mov r3, r0 - 8000bf2: f1bb 0f00 cmp.w fp, #0 - 8000bf6: d005 beq.n 8000c04 - 8000bf8: 461a mov r2, r3 - 8000bfa: 2138 movs r1, #56 ; 0x38 - 8000bfc: 4620 mov r0, r4 - 8000bfe: f7ff fb1f bl 8000240 - 8000c02: 4603 mov r3, r0 - 8000c04: 462a mov r2, r5 - 8000c06: 2136 movs r1, #54 ; 0x36 - 8000c08: 4620 mov r0, r4 - 8000c0a: f7ff fb19 bl 8000240 - 8000c0e: 4605 mov r5, r0 - 8000c10: e774 b.n 8000afc - 8000c12: 3301 adds r3, #1 - 8000c14: 60e3 str r3, [r4, #12] - 8000c16: 4620 mov r0, r4 - 8000c18: f000 fb7a bl 8001310 - 8000c1c: 462a mov r2, r5 - 8000c1e: 4603 mov r3, r0 - 8000c20: 2104 movs r1, #4 - 8000c22: 4620 mov r0, r4 - 8000c24: f7ff fb0c bl 8000240 - 8000c28: 4605 mov r5, r0 - 8000c2a: e767 b.n 8000afc - 8000c2c: 3302 adds r3, #2 - 8000c2e: 60e3 str r3, [r4, #12] - 8000c30: 4620 mov r0, r4 - 8000c32: f000 fd85 bl 8001740 - 8000c36: 4682 mov sl, r0 - 8000c38: 4620 mov r0, r4 - 8000c3a: f001 fb27 bl 800228c - 8000c3e: 68e3 ldr r3, [r4, #12] - 8000c40: 781a ldrb r2, [r3, #0] - 8000c42: 2a49 cmp r2, #73 ; 0x49 - 8000c44: 4683 mov fp, r0 - 8000c46: d01e beq.n 8000c86 - 8000c48: 4603 mov r3, r0 - 8000c4a: 4629 mov r1, r5 - 8000c4c: 4652 mov r2, sl - 8000c4e: 4620 mov r0, r4 - 8000c50: f7ff faf6 bl 8000240 - 8000c54: 4605 mov r5, r0 - 8000c56: e751 b.n 8000afc - 8000c58: 2a6f cmp r2, #111 ; 0x6f - 8000c5a: f040 8094 bne.w 8000d86 - 8000c5e: 785a ldrb r2, [r3, #1] - 8000c60: 2a6e cmp r2, #110 ; 0x6e - 8000c62: f47f aef4 bne.w 8000a4e - 8000c66: 3302 adds r3, #2 - 8000c68: 60e3 str r3, [r4, #12] - 8000c6a: e70e b.n 8000a8a - 8000c6c: 4620 mov r0, r4 - 8000c6e: f7ff fc25 bl 80004bc - 8000c72: f06f 4300 mvn.w r3, #2147483648 ; 0x80000000 - 8000c76: 4298 cmp r0, r3 - 8000c78: f43f af6a beq.w 8000b50 - 8000c7c: 1c43 adds r3, r0, #1 - 8000c7e: f43f af67 beq.w 8000b50 - 8000c82: 3001 adds r0, #1 - 8000c84: e773 b.n 8000b6e - 8000c86: 3301 adds r3, #1 - 8000c88: 60e3 str r3, [r4, #12] - 8000c8a: 4620 mov r0, r4 - 8000c8c: f000 fb40 bl 8001310 - 8000c90: 465a mov r2, fp - 8000c92: 4603 mov r3, r0 - 8000c94: 2104 movs r1, #4 - 8000c96: 4620 mov r0, r4 - 8000c98: f7ff fad2 bl 8000240 - 8000c9c: 4603 mov r3, r0 - 8000c9e: e7d4 b.n 8000c4a - 8000ca0: f89a 2001 ldrb.w r2, [sl, #1] - 8000ca4: 429a cmp r2, r3 - 8000ca6: d197 bne.n 8000bd8 - 8000ca8: 68e3 ldr r3, [r4, #12] - 8000caa: 781a ldrb r2, [r3, #0] - 8000cac: 2a5f cmp r2, #95 ; 0x5f - 8000cae: d195 bne.n 8000bdc - 8000cb0: 3301 adds r3, #1 - 8000cb2: 60e3 str r3, [r4, #12] - 8000cb4: e790 b.n 8000bd8 - 8000cb6: 462a mov r2, r5 - 8000cb8: 2300 movs r3, #0 - 8000cba: 2135 movs r1, #53 ; 0x35 - 8000cbc: 4620 mov r0, r4 - 8000cbe: f7ff fabf bl 8000240 - 8000cc2: 4605 mov r5, r0 - 8000cc4: e71a b.n 8000afc - 8000cc6: f1ba 0f00 cmp.w sl, #0 - 8000cca: f43f af41 beq.w 8000b50 - 8000cce: 4982 ldr r1, [pc, #520] ; (8000ed8 ) - 8000cd0: 4650 mov r0, sl - 8000cd2: f006 f875 bl 8006dc0 - 8000cd6: 2800 cmp r0, #0 - 8000cd8: f000 80c7 beq.w 8000e6a - 8000cdc: f89a 3000 ldrb.w r3, [sl] - 8000ce0: 2b66 cmp r3, #102 ; 0x66 - 8000ce2: f000 80ed beq.w 8000ec0 - 8000ce6: 2b6e cmp r3, #110 ; 0x6e - 8000ce8: f47f af32 bne.w 8000b50 - 8000cec: f89a 3001 ldrb.w r3, [sl, #1] - 8000cf0: 2b77 cmp r3, #119 ; 0x77 - 8000cf2: d002 beq.n 8000cfa - 8000cf4: 2b61 cmp r3, #97 ; 0x61 - 8000cf6: f47f af2b bne.w 8000b50 - 8000cfa: 215f movs r1, #95 ; 0x5f - 8000cfc: 4620 mov r0, r4 - 8000cfe: f7ff fe87 bl 8000a10 - 8000d02: 4682 mov sl, r0 - 8000d04: 4620 mov r0, r4 - 8000d06: f000 fd1b bl 8001740 - 8000d0a: 68e3 ldr r3, [r4, #12] - 8000d0c: 781a ldrb r2, [r3, #0] - 8000d0e: 2a45 cmp r2, #69 ; 0x45 - 8000d10: 4683 mov fp, r0 - 8000d12: f000 8086 beq.w 8000e22 - 8000d16: 2a70 cmp r2, #112 ; 0x70 - 8000d18: f000 80c6 beq.w 8000ea8 - 8000d1c: 2a69 cmp r2, #105 ; 0x69 - 8000d1e: f47f af17 bne.w 8000b50 - 8000d22: 785b ldrb r3, [r3, #1] - 8000d24: 2b6c cmp r3, #108 ; 0x6c - 8000d26: f47f af13 bne.w 8000b50 - 8000d2a: 4620 mov r0, r4 - 8000d2c: f000 f8de bl 8000eec - 8000d30: 4603 mov r3, r0 - 8000d32: 465a mov r2, fp - 8000d34: 213b movs r1, #59 ; 0x3b - 8000d36: 4620 mov r0, r4 - 8000d38: f7ff fa82 bl 8000240 - 8000d3c: 4652 mov r2, sl - 8000d3e: 4603 mov r3, r0 - 8000d40: 213a movs r1, #58 ; 0x3a - 8000d42: 4620 mov r0, r4 - 8000d44: f7ff fa7c bl 8000240 - 8000d48: 462a mov r2, r5 - 8000d4a: 4603 mov r3, r0 - 8000d4c: 2139 movs r1, #57 ; 0x39 - 8000d4e: 4620 mov r0, r4 - 8000d50: f7ff fa76 bl 8000240 - 8000d54: 4605 mov r5, r0 - 8000d56: e6d1 b.n 8000afc - 8000d58: 3301 adds r3, #1 - 8000d5a: 60c3 str r3, [r0, #12] - 8000d5c: 212e movs r1, #46 ; 0x2e - 8000d5e: 4613 mov r3, r2 - 8000d60: b003 add sp, #12 - 8000d62: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8000d66: f7ff ba6b b.w 8000240 - 8000d6a: 4620 mov r0, r4 - 8000d6c: f000 f8be bl 8000eec - 8000d70: 4603 mov r3, r0 - 8000d72: e73e b.n 8000bf2 - 8000d74: 4628 mov r0, r5 - 8000d76: 6366 str r6, [r4, #52] ; 0x34 - 8000d78: b003 add sp, #12 - 8000d7a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8000d7e: 4620 mov r0, r4 - 8000d80: f000 fcde bl 8001740 - 8000d84: e73d b.n 8000c02 - 8000d86: 2a69 cmp r2, #105 ; 0x69 - 8000d88: f47f aed4 bne.w 8000b34 - 8000d8c: 785a ldrb r2, [r3, #1] - 8000d8e: 2a6c cmp r2, #108 ; 0x6c - 8000d90: f47f ae5d bne.w 8000a4e - 8000d94: 2500 movs r5, #0 - 8000d96: 3302 adds r3, #2 - 8000d98: 60e3 str r3, [r4, #12] - 8000d9a: 2145 movs r1, #69 ; 0x45 - 8000d9c: 4620 mov r0, r4 - 8000d9e: f7ff fe37 bl 8000a10 - 8000da2: 462a mov r2, r5 - 8000da4: 4603 mov r3, r0 - 8000da6: 2130 movs r1, #48 ; 0x30 - 8000da8: 4620 mov r0, r4 - 8000daa: f7ff fa49 bl 8000240 - 8000dae: 4605 mov r5, r0 - 8000db0: e6a4 b.n 8000afc - 8000db2: f1ba 0f00 cmp.w sl, #0 - 8000db6: f43f aecb beq.w 8000b50 - 8000dba: 68ab ldr r3, [r5, #8] - 8000dbc: 681b ldr r3, [r3, #0] - 8000dbe: 785a ldrb r2, [r3, #1] - 8000dc0: 2a63 cmp r2, #99 ; 0x63 - 8000dc2: d03a beq.n 8000e3a - 8000dc4: f89a 3000 ldrb.w r3, [sl] - 8000dc8: 2b66 cmp r3, #102 ; 0x66 - 8000dca: d149 bne.n 8000e60 - 8000dcc: 4620 mov r0, r4 - 8000dce: f001 f8b1 bl 8001f34 - 8000dd2: 4683 mov fp, r0 - 8000dd4: 4941 ldr r1, [pc, #260] ; (8000edc ) - 8000dd6: 4650 mov r0, sl - 8000dd8: f005 fff2 bl 8006dc0 - 8000ddc: 2800 cmp r0, #0 - 8000dde: d039 beq.n 8000e54 - 8000de0: 493f ldr r1, [pc, #252] ; (8000ee0 ) - 8000de2: 4650 mov r0, sl - 8000de4: f005 ffec bl 8006dc0 - 8000de8: b128 cbz r0, 8000df6 - 8000dea: 4650 mov r0, sl - 8000dec: 493d ldr r1, [pc, #244] ; (8000ee4 ) - 8000dee: f005 ffe7 bl 8006dc0 - 8000df2: 2800 cmp r0, #0 - 8000df4: d168 bne.n 8000ec8 - 8000df6: 4620 mov r0, r4 - 8000df8: f001 fa48 bl 800228c - 8000dfc: 68e3 ldr r3, [r4, #12] - 8000dfe: 781a ldrb r2, [r3, #0] - 8000e00: 2a49 cmp r2, #73 ; 0x49 - 8000e02: 4682 mov sl, r0 - 8000e04: d043 beq.n 8000e8e - 8000e06: 4653 mov r3, sl - 8000e08: 465a mov r2, fp - 8000e0a: 2138 movs r1, #56 ; 0x38 - 8000e0c: 4620 mov r0, r4 - 8000e0e: f7ff fa17 bl 8000240 - 8000e12: 462a mov r2, r5 - 8000e14: 4603 mov r3, r0 - 8000e16: 2137 movs r1, #55 ; 0x37 - 8000e18: 4620 mov r0, r4 - 8000e1a: f7ff fa11 bl 8000240 - 8000e1e: 4605 mov r5, r0 - 8000e20: e66c b.n 8000afc - 8000e22: 3301 adds r3, #1 - 8000e24: 60e3 str r3, [r4, #12] - 8000e26: 2300 movs r3, #0 - 8000e28: e783 b.n 8000d32 - 8000e2a: 3301 adds r3, #1 - 8000e2c: 60e3 str r3, [r4, #12] - 8000e2e: 2145 movs r1, #69 ; 0x45 - 8000e30: 4620 mov r0, r4 - 8000e32: f7ff fded bl 8000a10 - 8000e36: 4603 mov r3, r0 - 8000e38: e6e4 b.n 8000c04 - 8000e3a: 781b ldrb r3, [r3, #0] - 8000e3c: f1a3 0263 sub.w r2, r3, #99 ; 0x63 - 8000e40: 2a01 cmp r2, #1 - 8000e42: d902 bls.n 8000e4a - 8000e44: 3b72 subs r3, #114 ; 0x72 - 8000e46: 2b01 cmp r3, #1 - 8000e48: d8bc bhi.n 8000dc4 - 8000e4a: 4620 mov r0, r4 - 8000e4c: f000 fc78 bl 8001740 - 8000e50: 4683 mov fp, r0 - 8000e52: e7bf b.n 8000dd4 - 8000e54: 2145 movs r1, #69 ; 0x45 - 8000e56: 4620 mov r0, r4 - 8000e58: f7ff fdda bl 8000a10 - 8000e5c: 4682 mov sl, r0 - 8000e5e: e7d2 b.n 8000e06 - 8000e60: 4620 mov r0, r4 - 8000e62: f000 f843 bl 8000eec - 8000e66: 4683 mov fp, r0 - 8000e68: e7b4 b.n 8000dd4 - 8000e6a: 4620 mov r0, r4 - 8000e6c: f000 f83e bl 8000eec - 8000e70: 4682 mov sl, r0 - 8000e72: 4620 mov r0, r4 - 8000e74: f000 f83a bl 8000eec - 8000e78: 4683 mov fp, r0 - 8000e7a: 4620 mov r0, r4 - 8000e7c: f000 f836 bl 8000eec - 8000e80: 4603 mov r3, r0 - 8000e82: 2800 cmp r0, #0 - 8000e84: f47f af55 bne.w 8000d32 - 8000e88: 6366 str r6, [r4, #52] ; 0x34 - 8000e8a: 4605 mov r5, r0 - 8000e8c: e61b b.n 8000ac6 - 8000e8e: 3301 adds r3, #1 - 8000e90: 60e3 str r3, [r4, #12] - 8000e92: 4620 mov r0, r4 - 8000e94: f000 fa3c bl 8001310 - 8000e98: 4652 mov r2, sl - 8000e9a: 4603 mov r3, r0 - 8000e9c: 2104 movs r1, #4 - 8000e9e: 4620 mov r0, r4 - 8000ea0: f7ff f9ce bl 8000240 - 8000ea4: 4682 mov sl, r0 - 8000ea6: e7ae b.n 8000e06 - 8000ea8: 785a ldrb r2, [r3, #1] - 8000eaa: 2a69 cmp r2, #105 ; 0x69 - 8000eac: f47f ae50 bne.w 8000b50 - 8000eb0: 3302 adds r3, #2 - 8000eb2: 60e3 str r3, [r4, #12] - 8000eb4: 2145 movs r1, #69 ; 0x45 - 8000eb6: 4620 mov r0, r4 - 8000eb8: f7ff fdaa bl 8000a10 - 8000ebc: 4603 mov r3, r0 - 8000ebe: e738 b.n 8000d32 - 8000ec0: 4620 mov r0, r4 - 8000ec2: f001 f837 bl 8001f34 - 8000ec6: e7d3 b.n 8000e70 - 8000ec8: 4620 mov r0, r4 - 8000eca: f000 f80f bl 8000eec - 8000ece: 4682 mov sl, r0 - 8000ed0: e799 b.n 8000e06 - 8000ed2: bf00 nop - 8000ed4: 08012578 .word 0x08012578 - 8000ed8: 08012588 .word 0x08012588 - 8000edc: 0801257c .word 0x0801257c - 8000ee0: 08012580 .word 0x08012580 - 8000ee4: 08012584 .word 0x08012584 - 8000ee8: 08012a94 .word 0x08012a94 - -08000eec : - 8000eec: 68c1 ldr r1, [r0, #12] - 8000eee: 780b ldrb r3, [r1, #0] - 8000ef0: 2b4c cmp r3, #76 ; 0x4c - 8000ef2: d067 beq.n 8000fc4 - 8000ef4: 2b54 cmp r3, #84 ; 0x54 - 8000ef6: d067 beq.n 8000fc8 - 8000ef8: 2b73 cmp r3, #115 ; 0x73 - 8000efa: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8000efe: 4604 mov r4, r0 - 8000f00: d01c beq.n 8000f3c - 8000f02: 2b66 cmp r3, #102 ; 0x66 - 8000f04: d13d bne.n 8000f82 - 8000f06: 784b ldrb r3, [r1, #1] - 8000f08: 2b70 cmp r3, #112 ; 0x70 - 8000f0a: d11d bne.n 8000f48 - 8000f0c: 1c8b adds r3, r1, #2 - 8000f0e: 60c3 str r3, [r0, #12] - 8000f10: 788b ldrb r3, [r1, #2] - 8000f12: 2b54 cmp r3, #84 ; 0x54 - 8000f14: f040 809a bne.w 800104c - 8000f18: 3103 adds r1, #3 - 8000f1a: 60c1 str r1, [r0, #12] - 8000f1c: 2000 movs r0, #0 - 8000f1e: e9d4 3205 ldrd r3, r2, [r4, #20] - 8000f22: 4293 cmp r3, r2 - 8000f24: da4a bge.n 8000fbc - 8000f26: 6921 ldr r1, [r4, #16] - 8000f28: 011a lsls r2, r3, #4 - 8000f2a: 188d adds r5, r1, r2 - 8000f2c: 3301 adds r3, #1 - 8000f2e: 2700 movs r7, #0 - 8000f30: 2606 movs r6, #6 - 8000f32: 606f str r7, [r5, #4] - 8000f34: 6163 str r3, [r4, #20] - 8000f36: 548e strb r6, [r1, r2] - 8000f38: 60a8 str r0, [r5, #8] - 8000f3a: e02f b.n 8000f9c - 8000f3c: 784b ldrb r3, [r1, #1] - 8000f3e: 2b72 cmp r3, #114 ; 0x72 - 8000f40: d06e beq.n 8001020 - 8000f42: 2b70 cmp r3, #112 ; 0x70 - 8000f44: f000 8160 beq.w 8001208 - 8000f48: 4620 mov r0, r4 - 8000f4a: f000 fff3 bl 8001f34 - 8000f4e: 4605 mov r5, r0 - 8000f50: b3a0 cbz r0, 8000fbc - 8000f52: 7803 ldrb r3, [r0, #0] - 8000f54: 2b31 cmp r3, #49 ; 0x31 - 8000f56: d039 beq.n 8000fcc - 8000f58: 2b32 cmp r3, #50 ; 0x32 - 8000f5a: f000 8127 beq.w 80011ac - 8000f5e: 2b33 cmp r3, #51 ; 0x33 - 8000f60: d12c bne.n 8000fbc - 8000f62: 68e3 ldr r3, [r4, #12] - 8000f64: 781a ldrb r2, [r3, #0] - 8000f66: 2a5f cmp r2, #95 ; 0x5f - 8000f68: f000 8176 beq.w 8001258 - 8000f6c: 4620 mov r0, r4 - 8000f6e: f7ff ffbd bl 8000eec - 8000f72: 4603 mov r3, r0 - 8000f74: 462a mov r2, r5 - 8000f76: 4620 mov r0, r4 - 8000f78: 2136 movs r1, #54 ; 0x36 - 8000f7a: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 8000f7e: f7ff b95f b.w 8000240 - 8000f82: f1a3 0230 sub.w r2, r3, #48 ; 0x30 - 8000f86: 2a09 cmp r2, #9 - 8000f88: d841 bhi.n 800100e - 8000f8a: 4620 mov r0, r4 - 8000f8c: f001 f97e bl 800228c - 8000f90: 4605 mov r5, r0 - 8000f92: b198 cbz r0, 8000fbc - 8000f94: 68e3 ldr r3, [r4, #12] - 8000f96: 781a ldrb r2, [r3, #0] - 8000f98: 2a49 cmp r2, #73 ; 0x49 - 8000f9a: d02b beq.n 8000ff4 - 8000f9c: 4628 mov r0, r5 - 8000f9e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8000fa2: 2b74 cmp r3, #116 ; 0x74 - 8000fa4: d1d0 bne.n 8000f48 - 8000fa6: 784b ldrb r3, [r1, #1] - 8000fa8: 2b6c cmp r3, #108 ; 0x6c - 8000faa: d1cd bne.n 8000f48 - 8000fac: f000 fbc8 bl 8001740 - 8000fb0: 68e1 ldr r1, [r4, #12] - 8000fb2: 784b ldrb r3, [r1, #1] - 8000fb4: 4605 mov r5, r0 - 8000fb6: 2b00 cmp r3, #0 - 8000fb8: f040 8190 bne.w 80012dc - 8000fbc: 2500 movs r5, #0 - 8000fbe: 4628 mov r0, r5 - 8000fc0: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8000fc4: f001 bdac b.w 8002b20 - 8000fc8: f7ff ba92 b.w 80004f0 - 8000fcc: 6887 ldr r7, [r0, #8] - 8000fce: 6b23 ldr r3, [r4, #48] ; 0x30 - 8000fd0: 68ba ldr r2, [r7, #8] - 8000fd2: 683e ldr r6, [r7, #0] - 8000fd4: 49c8 ldr r1, [pc, #800] ; (80012f8 ) - 8000fd6: 3a02 subs r2, #2 - 8000fd8: 4413 add r3, r2 - 8000fda: 6323 str r3, [r4, #48] ; 0x30 - 8000fdc: 4630 mov r0, r6 - 8000fde: f005 feef bl 8006dc0 - 8000fe2: 2800 cmp r0, #0 - 8000fe4: d05b beq.n 800109e - 8000fe6: 68ff ldr r7, [r7, #12] - 8000fe8: 2f03 cmp r7, #3 - 8000fea: d8e7 bhi.n 8000fbc - 8000fec: e8df f007 tbb [pc, r7] - 8000ff0: 64a7385c .word 0x64a7385c - 8000ff4: 3301 adds r3, #1 - 8000ff6: 60e3 str r3, [r4, #12] - 8000ff8: 4620 mov r0, r4 - 8000ffa: f000 f989 bl 8001310 - 8000ffe: 462a mov r2, r5 - 8001000: 4603 mov r3, r0 - 8001002: 2104 movs r1, #4 - 8001004: 4620 mov r0, r4 - 8001006: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 800100a: f7ff b919 b.w 8000240 - 800100e: 2b6f cmp r3, #111 ; 0x6f - 8001010: f040 815c bne.w 80012cc - 8001014: 784b ldrb r3, [r1, #1] - 8001016: 2b6e cmp r3, #110 ; 0x6e - 8001018: d196 bne.n 8000f48 - 800101a: 3102 adds r1, #2 - 800101c: 60c1 str r1, [r0, #12] - 800101e: e7b4 b.n 8000f8a - 8001020: 3102 adds r1, #2 - 8001022: 60c1 str r1, [r0, #12] - 8001024: f000 fb8c bl 8001740 - 8001028: 4605 mov r5, r0 - 800102a: 4620 mov r0, r4 - 800102c: f001 f92e bl 800228c - 8001030: 68e3 ldr r3, [r4, #12] - 8001032: 7819 ldrb r1, [r3, #0] - 8001034: 2949 cmp r1, #73 ; 0x49 - 8001036: 4606 mov r6, r0 - 8001038: f000 80d9 beq.w 80011ee - 800103c: 4603 mov r3, r0 - 800103e: 462a mov r2, r5 - 8001040: 4620 mov r0, r4 - 8001042: 2101 movs r1, #1 - 8001044: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 8001048: f7ff b8fa b.w 8000240 - 800104c: f7ff fa36 bl 80004bc - 8001050: 43c3 mvns r3, r0 - 8001052: f033 4300 bics.w r3, r3, #2147483648 ; 0x80000000 - 8001056: bf18 it ne - 8001058: 3001 addne r0, #1 - 800105a: f47f af60 bne.w 8000f1e - 800105e: e7ad b.n 8000fbc - 8001060: 2e00 cmp r6, #0 - 8001062: d083 beq.n 8000f6c - 8001064: 7833 ldrb r3, [r6, #0] - 8001066: 2b70 cmp r3, #112 ; 0x70 - 8001068: f000 80b0 beq.w 80011cc - 800106c: 2b6d cmp r3, #109 ; 0x6d - 800106e: f000 80ad beq.w 80011cc - 8001072: 2700 movs r7, #0 - 8001074: 4630 mov r0, r6 - 8001076: 49a1 ldr r1, [pc, #644] ; (80012fc ) - 8001078: f005 fea2 bl 8006dc0 - 800107c: 2800 cmp r0, #0 - 800107e: f040 80b1 bne.w 80011e4 - 8001082: 4620 mov r0, r4 - 8001084: f000 f944 bl 8001310 - 8001088: 4603 mov r3, r0 - 800108a: 2f00 cmp r7, #0 - 800108c: f43f af72 beq.w 8000f74 - 8001090: 461a mov r2, r3 - 8001092: 2138 movs r1, #56 ; 0x38 - 8001094: 4620 mov r0, r4 - 8001096: f7ff f8d3 bl 8000240 - 800109a: 4603 mov r3, r0 - 800109c: e76a b.n 8000f74 - 800109e: 4620 mov r0, r4 - 80010a0: f000 fb4e bl 8001740 - 80010a4: 4603 mov r3, r0 - 80010a6: e765 b.n 8000f74 - 80010a8: 462a mov r2, r5 - 80010aa: 4620 mov r0, r4 - 80010ac: 2300 movs r3, #0 - 80010ae: 2135 movs r1, #53 ; 0x35 - 80010b0: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 80010b4: f7ff b8c4 b.w 8000240 - 80010b8: 4991 ldr r1, [pc, #580] ; (8001300 ) - 80010ba: 4630 mov r0, r6 - 80010bc: f005 fe80 bl 8006dc0 - 80010c0: 2800 cmp r0, #0 - 80010c2: f000 80d1 beq.w 8001268 - 80010c6: 7833 ldrb r3, [r6, #0] - 80010c8: 2b66 cmp r3, #102 ; 0x66 - 80010ca: f000 80f6 beq.w 80012ba - 80010ce: 2b6e cmp r3, #110 ; 0x6e - 80010d0: f47f af74 bne.w 8000fbc - 80010d4: 7873 ldrb r3, [r6, #1] - 80010d6: 2b77 cmp r3, #119 ; 0x77 - 80010d8: d002 beq.n 80010e0 - 80010da: 2b61 cmp r3, #97 ; 0x61 - 80010dc: f47f af6e bne.w 8000fbc - 80010e0: 215f movs r1, #95 ; 0x5f - 80010e2: 4620 mov r0, r4 - 80010e4: f7ff fc94 bl 8000a10 - 80010e8: 4606 mov r6, r0 - 80010ea: 4620 mov r0, r4 - 80010ec: f000 fb28 bl 8001740 - 80010f0: 68e3 ldr r3, [r4, #12] - 80010f2: 7819 ldrb r1, [r3, #0] - 80010f4: 2945 cmp r1, #69 ; 0x45 - 80010f6: 4607 mov r7, r0 - 80010f8: f000 80aa beq.w 8001250 - 80010fc: 2970 cmp r1, #112 ; 0x70 - 80010fe: f000 80d0 beq.w 80012a2 - 8001102: 2969 cmp r1, #105 ; 0x69 - 8001104: f47f af5a bne.w 8000fbc - 8001108: 785b ldrb r3, [r3, #1] - 800110a: 2b6c cmp r3, #108 ; 0x6c - 800110c: f47f af56 bne.w 8000fbc - 8001110: 4620 mov r0, r4 - 8001112: f7ff feeb bl 8000eec - 8001116: 4603 mov r3, r0 - 8001118: 463a mov r2, r7 - 800111a: 213b movs r1, #59 ; 0x3b - 800111c: 4620 mov r0, r4 - 800111e: f7ff f88f bl 8000240 - 8001122: 4632 mov r2, r6 - 8001124: 4603 mov r3, r0 - 8001126: 213a movs r1, #58 ; 0x3a - 8001128: 4620 mov r0, r4 - 800112a: f7ff f889 bl 8000240 - 800112e: 462a mov r2, r5 - 8001130: 4603 mov r3, r0 - 8001132: 2139 movs r1, #57 ; 0x39 - 8001134: 4620 mov r0, r4 - 8001136: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 800113a: f7ff b881 b.w 8000240 - 800113e: 2e00 cmp r6, #0 - 8001140: f43f af3c beq.w 8000fbc - 8001144: 68ab ldr r3, [r5, #8] - 8001146: 681b ldr r3, [r3, #0] - 8001148: 785a ldrb r2, [r3, #1] - 800114a: 2a63 cmp r2, #99 ; 0x63 - 800114c: d068 beq.n 8001220 - 800114e: 7833 ldrb r3, [r6, #0] - 8001150: 2b66 cmp r3, #102 ; 0x66 - 8001152: d178 bne.n 8001246 - 8001154: 4620 mov r0, r4 - 8001156: f000 feed bl 8001f34 - 800115a: 4607 mov r7, r0 - 800115c: 4969 ldr r1, [pc, #420] ; (8001304 ) - 800115e: 4630 mov r0, r6 - 8001160: f005 fe2e bl 8006dc0 - 8001164: 2800 cmp r0, #0 - 8001166: d068 beq.n 800123a - 8001168: 4967 ldr r1, [pc, #412] ; (8001308 ) - 800116a: 4630 mov r0, r6 - 800116c: f005 fe28 bl 8006dc0 - 8001170: b130 cbz r0, 8001180 - 8001172: 4630 mov r0, r6 - 8001174: 4965 ldr r1, [pc, #404] ; (800130c ) - 8001176: f005 fe23 bl 8006dc0 - 800117a: 2800 cmp r0, #0 - 800117c: f040 80a1 bne.w 80012c2 - 8001180: 4620 mov r0, r4 - 8001182: f001 f883 bl 800228c - 8001186: 68e3 ldr r3, [r4, #12] - 8001188: 781a ldrb r2, [r3, #0] - 800118a: 2a49 cmp r2, #73 ; 0x49 - 800118c: 4606 mov r6, r0 - 800118e: d07b beq.n 8001288 - 8001190: 4633 mov r3, r6 - 8001192: 463a mov r2, r7 - 8001194: 2138 movs r1, #56 ; 0x38 - 8001196: 4620 mov r0, r4 - 8001198: f7ff f852 bl 8000240 - 800119c: 462a mov r2, r5 - 800119e: 4603 mov r3, r0 - 80011a0: 2137 movs r1, #55 ; 0x37 - 80011a2: 4620 mov r0, r4 - 80011a4: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 80011a8: f7ff b84a b.w 8000240 - 80011ac: 6883 ldr r3, [r0, #8] - 80011ae: 2b03 cmp r3, #3 - 80011b0: f63f af04 bhi.w 8000fbc - 80011b4: a201 add r2, pc, #4 ; (adr r2, 80011bc ) - 80011b6: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 80011ba: bf00 nop - 80011bc: 080010a9 .word 0x080010a9 - 80011c0: 08000f6d .word 0x08000f6d - 80011c4: 08000fbd .word 0x08000fbd - 80011c8: 08000fbd .word 0x08000fbd - 80011cc: 7872 ldrb r2, [r6, #1] - 80011ce: 429a cmp r2, r3 - 80011d0: f47f af4f bne.w 8001072 - 80011d4: 68e3 ldr r3, [r4, #12] - 80011d6: 781a ldrb r2, [r3, #0] - 80011d8: 2a5f cmp r2, #95 ; 0x5f - 80011da: f47f af4b bne.w 8001074 - 80011de: 3301 adds r3, #1 - 80011e0: 60e3 str r3, [r4, #12] - 80011e2: e746 b.n 8001072 - 80011e4: 4620 mov r0, r4 - 80011e6: f7ff fe81 bl 8000eec - 80011ea: 4603 mov r3, r0 - 80011ec: e74d b.n 800108a - 80011ee: 3301 adds r3, #1 - 80011f0: 60e3 str r3, [r4, #12] - 80011f2: 4620 mov r0, r4 - 80011f4: f000 f88c bl 8001310 - 80011f8: 4632 mov r2, r6 - 80011fa: 4603 mov r3, r0 - 80011fc: 2104 movs r1, #4 - 80011fe: 4620 mov r0, r4 - 8001200: f7ff f81e bl 8000240 - 8001204: 4603 mov r3, r0 - 8001206: e71a b.n 800103e - 8001208: 3102 adds r1, #2 - 800120a: 60e1 str r1, [r4, #12] - 800120c: f7ff fe6e bl 8000eec - 8001210: 2300 movs r3, #0 - 8001212: 4602 mov r2, r0 - 8001214: 214a movs r1, #74 ; 0x4a - 8001216: 4620 mov r0, r4 - 8001218: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 800121c: f7ff b810 b.w 8000240 - 8001220: 781b ldrb r3, [r3, #0] - 8001222: f1a3 0263 sub.w r2, r3, #99 ; 0x63 - 8001226: 2a01 cmp r2, #1 - 8001228: d902 bls.n 8001230 - 800122a: 3b72 subs r3, #114 ; 0x72 - 800122c: 2b01 cmp r3, #1 - 800122e: d88e bhi.n 800114e - 8001230: 4620 mov r0, r4 - 8001232: f000 fa85 bl 8001740 - 8001236: 4607 mov r7, r0 - 8001238: e790 b.n 800115c - 800123a: 2145 movs r1, #69 ; 0x45 - 800123c: 4620 mov r0, r4 - 800123e: f7ff fbe7 bl 8000a10 - 8001242: 4606 mov r6, r0 - 8001244: e7a4 b.n 8001190 - 8001246: 4620 mov r0, r4 - 8001248: f7ff fe50 bl 8000eec - 800124c: 4607 mov r7, r0 - 800124e: e785 b.n 800115c - 8001250: 3301 adds r3, #1 - 8001252: 60e3 str r3, [r4, #12] - 8001254: 2300 movs r3, #0 - 8001256: e75f b.n 8001118 - 8001258: 3301 adds r3, #1 - 800125a: 60e3 str r3, [r4, #12] - 800125c: 2145 movs r1, #69 ; 0x45 - 800125e: 4620 mov r0, r4 - 8001260: f7ff fbd6 bl 8000a10 - 8001264: 4603 mov r3, r0 - 8001266: e685 b.n 8000f74 - 8001268: 4620 mov r0, r4 - 800126a: f7ff fe3f bl 8000eec - 800126e: 4606 mov r6, r0 - 8001270: 4620 mov r0, r4 - 8001272: f7ff fe3b bl 8000eec - 8001276: 4607 mov r7, r0 - 8001278: 4620 mov r0, r4 - 800127a: f7ff fe37 bl 8000eec - 800127e: 4603 mov r3, r0 - 8001280: 2800 cmp r0, #0 - 8001282: f47f af49 bne.w 8001118 - 8001286: e699 b.n 8000fbc - 8001288: 3301 adds r3, #1 - 800128a: 60e3 str r3, [r4, #12] - 800128c: 4620 mov r0, r4 - 800128e: f000 f83f bl 8001310 - 8001292: 4632 mov r2, r6 - 8001294: 4603 mov r3, r0 - 8001296: 2104 movs r1, #4 - 8001298: 4620 mov r0, r4 - 800129a: f7fe ffd1 bl 8000240 - 800129e: 4606 mov r6, r0 - 80012a0: e776 b.n 8001190 - 80012a2: 785a ldrb r2, [r3, #1] - 80012a4: 2a69 cmp r2, #105 ; 0x69 - 80012a6: f47f ae89 bne.w 8000fbc - 80012aa: 3302 adds r3, #2 - 80012ac: 60e3 str r3, [r4, #12] - 80012ae: 2145 movs r1, #69 ; 0x45 - 80012b0: 4620 mov r0, r4 - 80012b2: f7ff fbad bl 8000a10 - 80012b6: 4603 mov r3, r0 - 80012b8: e72e b.n 8001118 - 80012ba: 4620 mov r0, r4 - 80012bc: f000 fe3a bl 8001f34 - 80012c0: e7d5 b.n 800126e - 80012c2: 4620 mov r0, r4 - 80012c4: f7ff fe12 bl 8000eec - 80012c8: 4606 mov r6, r0 - 80012ca: e761 b.n 8001190 - 80012cc: 2b69 cmp r3, #105 ; 0x69 - 80012ce: f47f ae68 bne.w 8000fa2 - 80012d2: 784b ldrb r3, [r1, #1] - 80012d4: 2b6c cmp r3, #108 ; 0x6c - 80012d6: f47f ae37 bne.w 8000f48 - 80012da: 2500 movs r5, #0 - 80012dc: 3102 adds r1, #2 - 80012de: 60e1 str r1, [r4, #12] - 80012e0: 4620 mov r0, r4 - 80012e2: 2145 movs r1, #69 ; 0x45 - 80012e4: f7ff fb94 bl 8000a10 - 80012e8: 462a mov r2, r5 - 80012ea: 4603 mov r3, r0 - 80012ec: 2130 movs r1, #48 ; 0x30 - 80012ee: 4620 mov r0, r4 - 80012f0: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 80012f4: f7fe bfa4 b.w 8000240 - 80012f8: 08012a94 .word 0x08012a94 - 80012fc: 08012578 .word 0x08012578 - 8001300: 08012588 .word 0x08012588 - 8001304: 0801257c .word 0x0801257c - 8001308: 08012580 .word 0x08012580 - 800130c: 08012584 .word 0x08012584 - -08001310 : - 8001310: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8001314: 68c2 ldr r2, [r0, #12] - 8001316: 6ac7 ldr r7, [r0, #44] ; 0x2c - 8001318: 7813 ldrb r3, [r2, #0] - 800131a: 2b45 cmp r3, #69 ; 0x45 - 800131c: b082 sub sp, #8 - 800131e: 4604 mov r4, r0 - 8001320: d04e beq.n 80013c0 - 8001322: ad02 add r5, sp, #8 - 8001324: 2100 movs r1, #0 - 8001326: f845 1d04 str.w r1, [r5, #-4]! - 800132a: 2601 movs r6, #1 - 800132c: 3b49 subs r3, #73 ; 0x49 - 800132e: 2b0f cmp r3, #15 - 8001330: d83d bhi.n 80013ae - 8001332: e8df f003 tbb [pc, r3] - 8001336: 3737 .short 0x3737 - 8001338: 3c3c323c .word 0x3c3c323c - 800133c: 3c3c3c3c .word 0x3c3c3c3c - 8001340: 3c3c3c3c .word 0x3c3c3c3c - 8001344: 083c .short 0x083c - 8001346: 3201 adds r2, #1 - 8001348: f8d4 8034 ldr.w r8, [r4, #52] ; 0x34 - 800134c: 60e2 str r2, [r4, #12] - 800134e: 6366 str r6, [r4, #52] ; 0x34 - 8001350: 4620 mov r0, r4 - 8001352: f7ff fdcb bl 8000eec - 8001356: 68e3 ldr r3, [r4, #12] - 8001358: f8c4 8034 str.w r8, [r4, #52] ; 0x34 - 800135c: 781a ldrb r2, [r3, #0] - 800135e: 2a45 cmp r2, #69 ; 0x45 - 8001360: 4684 mov ip, r0 - 8001362: f103 0301 add.w r3, r3, #1 - 8001366: d127 bne.n 80013b8 - 8001368: 60e3 str r3, [r4, #12] - 800136a: 2300 movs r3, #0 - 800136c: 212f movs r1, #47 ; 0x2f - 800136e: 4662 mov r2, ip - 8001370: 4620 mov r0, r4 - 8001372: f1bc 0f00 cmp.w ip, #0 - 8001376: d01f beq.n 80013b8 - 8001378: f7fe ff62 bl 8000240 - 800137c: 6028 str r0, [r5, #0] - 800137e: f100 050c add.w r5, r0, #12 - 8001382: b1c8 cbz r0, 80013b8 - 8001384: 68e2 ldr r2, [r4, #12] - 8001386: 7813 ldrb r3, [r2, #0] - 8001388: 2b45 cmp r3, #69 ; 0x45 - 800138a: d1cf bne.n 800132c - 800138c: 9801 ldr r0, [sp, #4] - 800138e: 62e7 str r7, [r4, #44] ; 0x2c - 8001390: 3201 adds r2, #1 - 8001392: 60e2 str r2, [r4, #12] - 8001394: b002 add sp, #8 - 8001396: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 800139a: 4620 mov r0, r4 - 800139c: f001 fbc0 bl 8002b20 - 80013a0: 4684 mov ip, r0 - 80013a2: e7e2 b.n 800136a - 80013a4: 4620 mov r0, r4 - 80013a6: f000 f815 bl 80013d4 - 80013aa: 4684 mov ip, r0 - 80013ac: e7dd b.n 800136a - 80013ae: 4620 mov r0, r4 - 80013b0: f000 f9c6 bl 8001740 - 80013b4: 4684 mov ip, r0 - 80013b6: e7d8 b.n 800136a - 80013b8: 2000 movs r0, #0 - 80013ba: b002 add sp, #8 - 80013bc: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 80013c0: 3201 adds r2, #1 - 80013c2: 2300 movs r3, #0 - 80013c4: 60c2 str r2, [r0, #12] - 80013c6: 212f movs r1, #47 ; 0x2f - 80013c8: 461a mov r2, r3 - 80013ca: b002 add sp, #8 - 80013cc: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 80013d0: f7fe bf36 b.w 8000240 - -080013d4 : - 80013d4: 68c3 ldr r3, [r0, #12] - 80013d6: 781a ldrb r2, [r3, #0] - 80013d8: 3a49 subs r2, #73 ; 0x49 - 80013da: 2a01 cmp r2, #1 - 80013dc: d802 bhi.n 80013e4 - 80013de: 3301 adds r3, #1 - 80013e0: 60c3 str r3, [r0, #12] - 80013e2: e795 b.n 8001310 - 80013e4: 2000 movs r0, #0 - 80013e6: 4770 bx lr - -080013e8 : - 80013e8: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - 80013ec: 68c2 ldr r2, [r0, #12] - 80013ee: 7813 ldrb r3, [r2, #0] - 80013f0: 3b4e subs r3, #78 ; 0x4e - 80013f2: b083 sub sp, #12 - 80013f4: 4604 mov r4, r0 - 80013f6: 2b0c cmp r3, #12 - 80013f8: d846 bhi.n 8001488 - 80013fa: e8df f003 tbb [pc, r3] - 80013fe: 4567 .short 0x4567 - 8001400: 0e454545 .word 0x0e454545 - 8001404: 45450745 .word 0x45450745 - 8001408: 4545 .short 0x4545 - 800140a: a4 .byte 0xa4 - 800140b: 00 .byte 0x00 - 800140c: f000 ff3e bl 800228c - 8001410: 4605 mov r5, r0 - 8001412: 4628 mov r0, r5 - 8001414: b003 add sp, #12 - 8001416: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 800141a: 7853 ldrb r3, [r2, #1] - 800141c: 2b74 cmp r3, #116 ; 0x74 - 800141e: f040 80d7 bne.w 80015d0 - 8001422: e9d0 3105 ldrd r3, r1, [r0, #20] - 8001426: 3202 adds r2, #2 - 8001428: 428b cmp r3, r1 - 800142a: 60c2 str r2, [r0, #12] - 800142c: f280 8127 bge.w 800167e - 8001430: 6901 ldr r1, [r0, #16] - 8001432: 48c0 ldr r0, [pc, #768] ; (8001734 ) - 8001434: 011a lsls r2, r3, #4 - 8001436: 188d adds r5, r1, r2 - 8001438: 3301 adds r3, #1 - 800143a: 6163 str r3, [r4, #20] - 800143c: 2300 movs r3, #0 - 800143e: 606b str r3, [r5, #4] - 8001440: 548b strb r3, [r1, r2] - 8001442: 2303 movs r3, #3 - 8001444: e9c5 0302 strd r0, r3, [r5, #8] - 8001448: 4620 mov r0, r4 - 800144a: f000 ff1f bl 800228c - 800144e: 462a mov r2, r5 - 8001450: 4603 mov r3, r0 - 8001452: 2101 movs r1, #1 - 8001454: 4620 mov r0, r4 - 8001456: f7fe fef3 bl 8000240 - 800145a: 6b23 ldr r3, [r4, #48] ; 0x30 - 800145c: 68e2 ldr r2, [r4, #12] - 800145e: 3303 adds r3, #3 - 8001460: 6323 str r3, [r4, #48] ; 0x30 - 8001462: 7813 ldrb r3, [r2, #0] - 8001464: 2b49 cmp r3, #73 ; 0x49 - 8001466: 4605 mov r5, r0 - 8001468: d1d3 bne.n 8001412 - 800146a: 2800 cmp r0, #0 - 800146c: f000 80ba beq.w 80015e4 - 8001470: e9d4 3208 ldrd r3, r2, [r4, #32] - 8001474: 4293 cmp r3, r2 - 8001476: f280 80b5 bge.w 80015e4 - 800147a: 69e1 ldr r1, [r4, #28] - 800147c: 1c5a adds r2, r3, #1 - 800147e: f841 0023 str.w r0, [r1, r3, lsl #2] - 8001482: 6222 str r2, [r4, #32] - 8001484: 4620 mov r0, r4 - 8001486: e014 b.n 80014b2 - 8001488: f000 ff00 bl 800228c - 800148c: 68e3 ldr r3, [r4, #12] - 800148e: 781b ldrb r3, [r3, #0] - 8001490: 2b49 cmp r3, #73 ; 0x49 - 8001492: 4605 mov r5, r0 - 8001494: d1bd bne.n 8001412 - 8001496: 2800 cmp r0, #0 - 8001498: f000 80a4 beq.w 80015e4 - 800149c: e9d4 3208 ldrd r3, r2, [r4, #32] - 80014a0: 4293 cmp r3, r2 - 80014a2: f280 809f bge.w 80015e4 - 80014a6: 69e1 ldr r1, [r4, #28] - 80014a8: 1c5a adds r2, r3, #1 - 80014aa: f841 0023 str.w r0, [r1, r3, lsl #2] - 80014ae: 4620 mov r0, r4 - 80014b0: 6222 str r2, [r4, #32] - 80014b2: f7ff ff8f bl 80013d4 - 80014b6: 462a mov r2, r5 - 80014b8: 4603 mov r3, r0 - 80014ba: 2104 movs r1, #4 - 80014bc: 4620 mov r0, r4 - 80014be: f7fe febf bl 8000240 - 80014c2: 4605 mov r5, r0 - 80014c4: 4628 mov r0, r5 - 80014c6: b003 add sp, #12 - 80014c8: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 80014cc: 3201 adds r2, #1 - 80014ce: 60c2 str r2, [r0, #12] - 80014d0: a901 add r1, sp, #4 - 80014d2: 2201 movs r2, #1 - 80014d4: f000 fde6 bl 80020a4 - 80014d8: 4680 mov r8, r0 - 80014da: 2800 cmp r0, #0 - 80014dc: f000 8082 beq.w 80015e4 - 80014e0: 2100 movs r1, #0 - 80014e2: 4620 mov r0, r4 - 80014e4: f7fe fef4 bl 80002d0 - 80014e8: 68e2 ldr r2, [r4, #12] - 80014ea: 4e93 ldr r6, [pc, #588] ; (8001738 ) - 80014ec: 7815 ldrb r5, [r2, #0] - 80014ee: 4681 mov r9, r0 - 80014f0: 2700 movs r7, #0 - 80014f2: 2d00 cmp r5, #0 - 80014f4: f000 80b3 beq.w 800165e - 80014f8: 2d44 cmp r5, #68 ; 0x44 - 80014fa: f000 8096 beq.w 800162a - 80014fe: f1a5 0330 sub.w r3, r5, #48 ; 0x30 - 8001502: b2db uxtb r3, r3 - 8001504: 2b1c cmp r3, #28 - 8001506: d96f bls.n 80015e8 - 8001508: f1a5 0361 sub.w r3, r5, #97 ; 0x61 - 800150c: b2db uxtb r3, r3 - 800150e: 2b19 cmp r3, #25 - 8001510: d96e bls.n 80015f0 - 8001512: 2d55 cmp r5, #85 ; 0x55 - 8001514: f000 80a1 beq.w 800165a - 8001518: 2d53 cmp r5, #83 ; 0x53 - 800151a: f000 80b2 beq.w 8001682 - 800151e: 2d49 cmp r5, #73 ; 0x49 - 8001520: f000 80a4 beq.w 800166c - 8001524: 2d54 cmp r5, #84 ; 0x54 - 8001526: f000 80e6 beq.w 80016f6 - 800152a: 2d45 cmp r5, #69 ; 0x45 - 800152c: f000 80e9 beq.w 8001702 - 8001530: 2d4d cmp r5, #77 ; 0x4d - 8001532: f040 8094 bne.w 800165e - 8001536: 2f00 cmp r7, #0 - 8001538: f000 8091 beq.w 800165e - 800153c: 1c53 adds r3, r2, #1 - 800153e: 60e3 str r3, [r4, #12] - 8001540: 7855 ldrb r5, [r2, #1] - 8001542: 461a mov r2, r3 - 8001544: e7d5 b.n 80014f2 - 8001546: 3201 adds r2, #1 - 8001548: 60c2 str r2, [r0, #12] - 800154a: 2100 movs r1, #0 - 800154c: f001 f83a bl 80025c4 - 8001550: 68e3 ldr r3, [r4, #12] - 8001552: 781a ldrb r2, [r3, #0] - 8001554: 2a45 cmp r2, #69 ; 0x45 - 8001556: 4606 mov r6, r0 - 8001558: d144 bne.n 80015e4 - 800155a: 1c5a adds r2, r3, #1 - 800155c: 60e2 str r2, [r4, #12] - 800155e: 785a ldrb r2, [r3, #1] - 8001560: 2a73 cmp r2, #115 ; 0x73 - 8001562: f000 80b0 beq.w 80016c6 - 8001566: 2a64 cmp r2, #100 ; 0x64 - 8001568: f000 8095 beq.w 8001696 - 800156c: 4620 mov r0, r4 - 800156e: f7ff ff3b bl 80013e8 - 8001572: 4605 mov r5, r0 - 8001574: b308 cbz r0, 80015ba - 8001576: 7803 ldrb r3, [r0, #0] - 8001578: 2b45 cmp r3, #69 ; 0x45 - 800157a: d01e beq.n 80015ba - 800157c: 2b47 cmp r3, #71 ; 0x47 - 800157e: d01c beq.n 80015ba - 8001580: f04f 37ff mov.w r7, #4294967295 ; 0xffffffff - 8001584: 4620 mov r0, r4 - 8001586: f7ff f903 bl 8000790 - 800158a: b358 cbz r0, 80015e4 - 800158c: 1c7b adds r3, r7, #1 - 800158e: d014 beq.n 80015ba - 8001590: e9d4 3205 ldrd r3, r2, [r4, #20] - 8001594: 4293 cmp r3, r2 - 8001596: f280 8094 bge.w 80016c2 - 800159a: 6920 ldr r0, [r4, #16] - 800159c: 0119 lsls r1, r3, #4 - 800159e: 1842 adds r2, r0, r1 - 80015a0: 3301 adds r3, #1 - 80015a2: f04f 0e00 mov.w lr, #0 - 80015a6: f04f 0c46 mov.w ip, #70 ; 0x46 - 80015aa: f8c2 e004 str.w lr, [r2, #4] - 80015ae: 6163 str r3, [r4, #20] - 80015b0: f800 c001 strb.w ip, [r0, r1] - 80015b4: e9c2 5702 strd r5, r7, [r2, #8] - 80015b8: 4615 mov r5, r2 - 80015ba: 462b mov r3, r5 - 80015bc: 4632 mov r2, r6 - 80015be: 4620 mov r0, r4 - 80015c0: 2102 movs r1, #2 - 80015c2: f7fe fe3d bl 8000240 - 80015c6: 4605 mov r5, r0 - 80015c8: 4628 mov r0, r5 - 80015ca: b003 add sp, #12 - 80015cc: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 80015d0: 2100 movs r1, #0 - 80015d2: f7ff f825 bl 8000620 - 80015d6: 68e3 ldr r3, [r4, #12] - 80015d8: 781b ldrb r3, [r3, #0] - 80015da: 2b49 cmp r3, #73 ; 0x49 - 80015dc: 4605 mov r5, r0 - 80015de: f47f af18 bne.w 8001412 - 80015e2: e74f b.n 8001484 - 80015e4: 2500 movs r5, #0 - 80015e6: e714 b.n 8001412 - 80015e8: fa26 f303 lsr.w r3, r6, r3 - 80015ec: 07d9 lsls r1, r3, #31 - 80015ee: d58b bpl.n 8001508 - 80015f0: 4620 mov r0, r4 - 80015f2: f000 fe4b bl 800228c - 80015f6: b35f cbz r7, 8001650 - 80015f8: 2101 movs r1, #1 - 80015fa: 4603 mov r3, r0 - 80015fc: 463a mov r2, r7 - 80015fe: 4620 mov r0, r4 - 8001600: f7fe fe1e bl 8000240 - 8001604: 4607 mov r7, r0 - 8001606: 68e2 ldr r2, [r4, #12] - 8001608: 2d53 cmp r5, #83 ; 0x53 - 800160a: 7813 ldrb r3, [r2, #0] - 800160c: d01e beq.n 800164c - 800160e: 2b45 cmp r3, #69 ; 0x45 - 8001610: d01a beq.n 8001648 - 8001612: b327 cbz r7, 800165e - 8001614: e9d4 3108 ldrd r3, r1, [r4, #32] - 8001618: 428b cmp r3, r1 - 800161a: da20 bge.n 800165e - 800161c: 69e1 ldr r1, [r4, #28] - 800161e: f841 7023 str.w r7, [r1, r3, lsl #2] - 8001622: 3301 adds r3, #1 - 8001624: 6223 str r3, [r4, #32] - 8001626: 7815 ldrb r5, [r2, #0] - 8001628: e763 b.n 80014f2 - 800162a: 7853 ldrb r3, [r2, #1] - 800162c: f003 03df and.w r3, r3, #223 ; 0xdf - 8001630: 2b54 cmp r3, #84 ; 0x54 - 8001632: 4620 mov r0, r4 - 8001634: d00e beq.n 8001654 - 8001636: f000 fe29 bl 800228c - 800163a: 2f00 cmp r7, #0 - 800163c: d1dc bne.n 80015f8 - 800163e: 68e2 ldr r2, [r4, #12] - 8001640: 7813 ldrb r3, [r2, #0] - 8001642: 2b45 cmp r3, #69 ; 0x45 - 8001644: 4607 mov r7, r0 - 8001646: d1e4 bne.n 8001612 - 8001648: 461d mov r5, r3 - 800164a: e758 b.n 80014fe - 800164c: 461d mov r5, r3 - 800164e: e750 b.n 80014f2 - 8001650: 4607 mov r7, r0 - 8001652: e7d8 b.n 8001606 - 8001654: f000 f874 bl 8001740 - 8001658: e7ef b.n 800163a - 800165a: 4620 mov r0, r4 - 800165c: e7eb b.n 8001636 - 800165e: 2500 movs r5, #0 - 8001660: 4628 mov r0, r5 - 8001662: f8c8 5000 str.w r5, [r8] - 8001666: b003 add sp, #12 - 8001668: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 800166c: 2f00 cmp r7, #0 - 800166e: d0f6 beq.n 800165e - 8001670: 3201 adds r2, #1 - 8001672: 60e2 str r2, [r4, #12] - 8001674: 4620 mov r0, r4 - 8001676: f7ff fe4b bl 8001310 - 800167a: 2104 movs r1, #4 - 800167c: e7bd b.n 80015fa - 800167e: 2500 movs r5, #0 - 8001680: e6e2 b.n 8001448 - 8001682: 2101 movs r1, #1 - 8001684: 4620 mov r0, r4 - 8001686: f7fe ffcb bl 8000620 - 800168a: 2f00 cmp r7, #0 - 800168c: d1b4 bne.n 80015f8 - 800168e: 68e2 ldr r2, [r4, #12] - 8001690: 4607 mov r7, r0 - 8001692: 7815 ldrb r5, [r2, #0] - 8001694: e72d b.n 80014f2 - 8001696: 3302 adds r3, #2 - 8001698: 60e3 str r3, [r4, #12] - 800169a: 4620 mov r0, r4 - 800169c: f7fe ff0e bl 80004bc - 80016a0: 1e07 subs r7, r0, #0 - 80016a2: db9f blt.n 80015e4 - 80016a4: 4620 mov r0, r4 - 80016a6: f7ff fe9f bl 80013e8 - 80016aa: 4605 mov r5, r0 - 80016ac: 2800 cmp r0, #0 - 80016ae: f43f af6f beq.w 8001590 - 80016b2: 7803 ldrb r3, [r0, #0] - 80016b4: 2b45 cmp r3, #69 ; 0x45 - 80016b6: f43f af69 beq.w 800158c - 80016ba: 2b47 cmp r3, #71 ; 0x47 - 80016bc: f43f af66 beq.w 800158c - 80016c0: e760 b.n 8001584 - 80016c2: 2500 movs r5, #0 - 80016c4: e779 b.n 80015ba - 80016c6: 3302 adds r3, #2 - 80016c8: 60e3 str r3, [r4, #12] - 80016ca: 4620 mov r0, r4 - 80016cc: f7ff f860 bl 8000790 - 80016d0: 2800 cmp r0, #0 - 80016d2: d087 beq.n 80015e4 - 80016d4: e9d4 2305 ldrd r2, r3, [r4, #20] - 80016d8: 429a cmp r2, r3 - 80016da: da10 bge.n 80016fe - 80016dc: 6920 ldr r0, [r4, #16] - 80016de: 4d17 ldr r5, [pc, #92] ; (800173c ) - 80016e0: 0111 lsls r1, r2, #4 - 80016e2: 1843 adds r3, r0, r1 - 80016e4: 3201 adds r2, #1 - 80016e6: 6162 str r2, [r4, #20] - 80016e8: 2200 movs r2, #0 - 80016ea: 605a str r2, [r3, #4] - 80016ec: 5442 strb r2, [r0, r1] - 80016ee: 220e movs r2, #14 - 80016f0: e9c3 5202 strd r5, r2, [r3, #8] - 80016f4: e762 b.n 80015bc - 80016f6: 4620 mov r0, r4 - 80016f8: f7fe fefa bl 80004f0 - 80016fc: e79d b.n 800163a - 80016fe: 2300 movs r3, #0 - 8001700: e75c b.n 80015bc - 8001702: f8c8 7000 str.w r7, [r8] - 8001706: 2f00 cmp r7, #0 - 8001708: f43f af6c beq.w 80015e4 - 800170c: f1b9 0f00 cmp.w r9, #0 - 8001710: d004 beq.n 800171c - 8001712: 9b01 ldr r3, [sp, #4] - 8001714: f8c9 3008 str.w r3, [r9, #8] - 8001718: f8cd 9004 str.w r9, [sp, #4] - 800171c: 7813 ldrb r3, [r2, #0] - 800171e: 2b45 cmp r3, #69 ; 0x45 - 8001720: f47f af60 bne.w 80015e4 - 8001724: 9d01 ldr r5, [sp, #4] - 8001726: 3201 adds r2, #1 - 8001728: 4628 mov r0, r5 - 800172a: 60e2 str r2, [r4, #12] - 800172c: b003 add sp, #12 - 800172e: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 8001732: bf00 nop - 8001734: 0801259c .word 0x0801259c - 8001738: 100803ff .word 0x100803ff - 800173c: 0801258c .word 0x0801258c - -08001740 : - 8001740: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - 8001744: 68c2 ldr r2, [r0, #12] - 8001746: 7813 ldrb r3, [r2, #0] - 8001748: 2b72 cmp r3, #114 ; 0x72 - 800174a: b083 sub sp, #12 - 800174c: 4604 mov r4, r0 - 800174e: d05f beq.n 8001810 - 8001750: 2b56 cmp r3, #86 ; 0x56 - 8001752: d05d beq.n 8001810 - 8001754: 2b4b cmp r3, #75 ; 0x4b - 8001756: d05b beq.n 8001810 - 8001758: 2b44 cmp r3, #68 ; 0x44 - 800175a: d051 beq.n 8001800 - 800175c: f1a3 0130 sub.w r1, r3, #48 ; 0x30 - 8001760: 294a cmp r1, #74 ; 0x4a - 8001762: f200 809e bhi.w 80018a2 - 8001766: e8df f011 tbh [pc, r1, lsl #1] - 800176a: 0111 .short 0x0111 - 800176c: 01110111 .word 0x01110111 - 8001770: 01110111 .word 0x01110111 - 8001774: 01110111 .word 0x01110111 - 8001778: 01110111 .word 0x01110111 - 800177c: 009c0111 .word 0x009c0111 - 8001780: 009c009c .word 0x009c009c - 8001784: 009c009c .word 0x009c009c - 8001788: 009c009c .word 0x009c009c - 800178c: 009c021e .word 0x009c021e - 8001790: 009c013b .word 0x009c013b - 8001794: 0135009c .word 0x0135009c - 8001798: 009c0149 .word 0x009c0149 - 800179c: 009c009c .word 0x009c009c - 80017a0: 009c009c .word 0x009c009c - 80017a4: 01110206 .word 0x01110206 - 80017a8: 01650157 .word 0x01650157 - 80017ac: 0173009c .word 0x0173009c - 80017b0: 01a50181 .word 0x01a50181 - 80017b4: 009c01cc .word 0x009c01cc - 80017b8: 009c009c .word 0x009c009c - 80017bc: 0111009c .word 0x0111009c - 80017c0: 009c009c .word 0x009c009c - 80017c4: 009c009c .word 0x009c009c - 80017c8: 009c009c .word 0x009c009c - 80017cc: 01e401e4 .word 0x01e401e4 - 80017d0: 01e401e4 .word 0x01e401e4 - 80017d4: 01e401e4 .word 0x01e401e4 - 80017d8: 01e401e4 .word 0x01e401e4 - 80017dc: 01e401e4 .word 0x01e401e4 - 80017e0: 01e4009c .word 0x01e4009c - 80017e4: 01e401e4 .word 0x01e401e4 - 80017e8: 009c01e4 .word 0x009c01e4 - 80017ec: 009c009c .word 0x009c009c - 80017f0: 01e401e4 .word 0x01e401e4 - 80017f4: 01e40127 .word 0x01e40127 - 80017f8: 01e401e4 .word 0x01e401e4 - 80017fc: 01e401e4 .word 0x01e401e4 - 8001800: 7853 ldrb r3, [r2, #1] - 8001802: f003 01df and.w r1, r3, #223 ; 0xdf - 8001806: 294f cmp r1, #79 ; 0x4f - 8001808: d002 beq.n 8001810 - 800180a: 3b77 subs r3, #119 ; 0x77 - 800180c: 2b01 cmp r3, #1 - 800180e: d84d bhi.n 80018ac - 8001810: 2200 movs r2, #0 - 8001812: a901 add r1, sp, #4 - 8001814: 4620 mov r0, r4 - 8001816: f000 fc45 bl 80020a4 - 800181a: 4605 mov r5, r0 - 800181c: 2800 cmp r0, #0 - 800181e: d040 beq.n 80018a2 - 8001820: 68e3 ldr r3, [r4, #12] - 8001822: 781b ldrb r3, [r3, #0] - 8001824: 2b46 cmp r3, #70 ; 0x46 - 8001826: 4620 mov r0, r4 - 8001828: d119 bne.n 800185e - 800182a: f000 fd0f bl 800224c - 800182e: 6028 str r0, [r5, #0] - 8001830: 2800 cmp r0, #0 - 8001832: d036 beq.n 80018a2 - 8001834: 7803 ldrb r3, [r0, #0] - 8001836: 9a01 ldr r2, [sp, #4] - 8001838: 3b1f subs r3, #31 - 800183a: 2b01 cmp r3, #1 - 800183c: d913 bls.n 8001866 - 800183e: 2a00 cmp r2, #0 - 8001840: d02f beq.n 80018a2 - 8001842: e9d4 3108 ldrd r3, r1, [r4, #32] - 8001846: 428b cmp r3, r1 - 8001848: da2b bge.n 80018a2 - 800184a: 69e0 ldr r0, [r4, #28] - 800184c: f840 2023 str.w r2, [r0, r3, lsl #2] - 8001850: 1c59 adds r1, r3, #1 - 8001852: 9d01 ldr r5, [sp, #4] - 8001854: 6221 str r1, [r4, #32] - 8001856: 4628 mov r0, r5 - 8001858: b003 add sp, #12 - 800185a: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 800185e: f7ff ff6f bl 8001740 - 8001862: 6028 str r0, [r5, #0] - 8001864: e7e4 b.n 8001830 - 8001866: 6883 ldr r3, [r0, #8] - 8001868: 6082 str r2, [r0, #8] - 800186a: 682a ldr r2, [r5, #0] - 800186c: 9201 str r2, [sp, #4] - 800186e: 602b str r3, [r5, #0] - 8001870: 9a01 ldr r2, [sp, #4] - 8001872: e7e4 b.n 800183e - 8001874: 2301 movs r3, #1 - 8001876: 6b45 ldr r5, [r0, #52] ; 0x34 - 8001878: 6343 str r3, [r0, #52] ; 0x34 - 800187a: f7ff fb37 bl 8000eec - 800187e: 6365 str r5, [r4, #52] ; 0x34 - 8001880: 4602 mov r2, r0 - 8001882: 2300 movs r3, #0 - 8001884: 2142 movs r1, #66 ; 0x42 - 8001886: 4620 mov r0, r4 - 8001888: f7fe fcda bl 8000240 - 800188c: 4605 mov r5, r0 - 800188e: 9001 str r0, [sp, #4] - 8001890: b138 cbz r0, 80018a2 - 8001892: 68e3 ldr r3, [r4, #12] - 8001894: 781a ldrb r2, [r3, #0] - 8001896: b122 cbz r2, 80018a2 - 8001898: 1c5a adds r2, r3, #1 - 800189a: 60e2 str r2, [r4, #12] - 800189c: 781b ldrb r3, [r3, #0] - 800189e: 2b45 cmp r3, #69 ; 0x45 - 80018a0: d07b beq.n 800199a - 80018a2: 2500 movs r5, #0 - 80018a4: 4628 mov r0, r5 - 80018a6: b003 add sp, #12 - 80018a8: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 80018ac: 1c53 adds r3, r2, #1 - 80018ae: 60c3 str r3, [r0, #12] - 80018b0: 7853 ldrb r3, [r2, #1] - 80018b2: 2b00 cmp r3, #0 - 80018b4: d0f5 beq.n 80018a2 - 80018b6: 1c93 adds r3, r2, #2 - 80018b8: 60c3 str r3, [r0, #12] - 80018ba: 7853 ldrb r3, [r2, #1] - 80018bc: 3b46 subs r3, #70 ; 0x46 - 80018be: 2b30 cmp r3, #48 ; 0x30 - 80018c0: d8ef bhi.n 80018a2 - 80018c2: a101 add r1, pc, #4 ; (adr r1, 80018c8 ) - 80018c4: f851 f023 ldr.w pc, [r1, r3, lsl #2] - 80018c8: 08001d85 .word 0x08001d85 - 80018cc: 080018a3 .word 0x080018a3 - 80018d0: 080018a3 .word 0x080018a3 - 80018d4: 080018a3 .word 0x080018a3 - 80018d8: 080018a3 .word 0x080018a3 - 80018dc: 080018a3 .word 0x080018a3 - 80018e0: 080018a3 .word 0x080018a3 - 80018e4: 080018a3 .word 0x080018a3 - 80018e8: 080018a3 .word 0x080018a3 - 80018ec: 080018a3 .word 0x080018a3 - 80018f0: 080018a3 .word 0x080018a3 - 80018f4: 080018a3 .word 0x080018a3 - 80018f8: 080018a3 .word 0x080018a3 - 80018fc: 080018a3 .word 0x080018a3 - 8001900: 08001875 .word 0x08001875 - 8001904: 080018a3 .word 0x080018a3 - 8001908: 080018a3 .word 0x080018a3 - 800190c: 080018a3 .word 0x080018a3 - 8001910: 080018a3 .word 0x080018a3 - 8001914: 080018a3 .word 0x080018a3 - 8001918: 080018a3 .word 0x080018a3 - 800191c: 080018a3 .word 0x080018a3 - 8001920: 080018a3 .word 0x080018a3 - 8001924: 080018a3 .word 0x080018a3 - 8001928: 080018a3 .word 0x080018a3 - 800192c: 080018a3 .word 0x080018a3 - 8001930: 080018a3 .word 0x080018a3 - 8001934: 08001d61 .word 0x08001d61 - 8001938: 080018a3 .word 0x080018a3 - 800193c: 08001d3d .word 0x08001d3d - 8001940: 08001d15 .word 0x08001d15 - 8001944: 08001ced .word 0x08001ced - 8001948: 08001cc5 .word 0x08001cc5 - 800194c: 080018a3 .word 0x080018a3 - 8001950: 08001c9d .word 0x08001c9d - 8001954: 08001e39 .word 0x08001e39 - 8001958: 080018a3 .word 0x080018a3 - 800195c: 080018a3 .word 0x080018a3 - 8001960: 080018a3 .word 0x080018a3 - 8001964: 080018a3 .word 0x080018a3 - 8001968: 08001ded .word 0x08001ded - 800196c: 080018a3 .word 0x080018a3 - 8001970: 08001c87 .word 0x08001c87 - 8001974: 080018a3 .word 0x080018a3 - 8001978: 080018a3 .word 0x080018a3 - 800197c: 08001c5f .word 0x08001c5f - 8001980: 08001875 .word 0x08001875 - 8001984: 080018a3 .word 0x080018a3 - 8001988: 08001c25 .word 0x08001c25 - 800198c: 4620 mov r0, r4 - 800198e: f7ff fd2b bl 80013e8 - 8001992: 4605 mov r5, r0 - 8001994: 9001 str r0, [sp, #4] - 8001996: 2d00 cmp r5, #0 - 8001998: d083 beq.n 80018a2 - 800199a: e9d4 3208 ldrd r3, r2, [r4, #32] - 800199e: 4293 cmp r3, r2 - 80019a0: f6bf af7f bge.w 80018a2 - 80019a4: 69e1 ldr r1, [r4, #28] - 80019a6: f841 5023 str.w r5, [r1, r3, lsl #2] - 80019aa: 9d01 ldr r5, [sp, #4] - 80019ac: 1c5a adds r2, r3, #1 - 80019ae: 4628 mov r0, r5 - 80019b0: 6222 str r2, [r4, #32] - 80019b2: b003 add sp, #12 - 80019b4: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 80019b8: 3201 adds r2, #1 - 80019ba: 60e2 str r2, [r4, #12] - 80019bc: 4620 mov r0, r4 - 80019be: f7fe fdb9 bl 8000534 - 80019c2: 2300 movs r3, #0 - 80019c4: 4602 mov r2, r0 - 80019c6: 2128 movs r1, #40 ; 0x28 - 80019c8: 4620 mov r0, r4 - 80019ca: f7fe fc39 bl 8000240 - 80019ce: 4605 mov r5, r0 - 80019d0: 9001 str r0, [sp, #4] - 80019d2: e7e0 b.n 8001996 - 80019d4: 4620 mov r0, r4 - 80019d6: f000 fc39 bl 800224c - 80019da: 4605 mov r5, r0 - 80019dc: 9001 str r0, [sp, #4] - 80019de: e7da b.n 8001996 - 80019e0: 3201 adds r2, #1 - 80019e2: 60e2 str r2, [r4, #12] - 80019e4: 4620 mov r0, r4 - 80019e6: f7ff feab bl 8001740 - 80019ea: 2300 movs r3, #0 - 80019ec: 4602 mov r2, r0 - 80019ee: 2125 movs r1, #37 ; 0x25 - 80019f0: 4620 mov r0, r4 - 80019f2: f7fe fc25 bl 8000240 - 80019f6: 4605 mov r5, r0 - 80019f8: 9001 str r0, [sp, #4] - 80019fa: e7cc b.n 8001996 - 80019fc: 3201 adds r2, #1 - 80019fe: 60e2 str r2, [r4, #12] - 8001a00: 4620 mov r0, r4 - 8001a02: f7ff fe9d bl 8001740 - 8001a06: 2300 movs r3, #0 - 8001a08: 4602 mov r2, r0 - 8001a0a: 2126 movs r1, #38 ; 0x26 - 8001a0c: 4620 mov r0, r4 - 8001a0e: f7fe fc17 bl 8000240 - 8001a12: 4605 mov r5, r0 - 8001a14: 9001 str r0, [sp, #4] - 8001a16: e7be b.n 8001996 - 8001a18: 3201 adds r2, #1 - 8001a1a: 60e2 str r2, [r4, #12] - 8001a1c: 4620 mov r0, r4 - 8001a1e: f7ff fe8f bl 8001740 - 8001a22: 2300 movs r3, #0 - 8001a24: 4602 mov r2, r0 - 8001a26: 2124 movs r1, #36 ; 0x24 - 8001a28: 4620 mov r0, r4 - 8001a2a: f7fe fc09 bl 8000240 - 8001a2e: 4605 mov r5, r0 - 8001a30: 9001 str r0, [sp, #4] - 8001a32: e7b0 b.n 8001996 - 8001a34: 3201 adds r2, #1 - 8001a36: 60e2 str r2, [r4, #12] - 8001a38: 4620 mov r0, r4 - 8001a3a: f7ff fe81 bl 8001740 - 8001a3e: 2300 movs r3, #0 - 8001a40: 4602 mov r2, r0 - 8001a42: 2122 movs r1, #34 ; 0x22 - 8001a44: 4620 mov r0, r4 - 8001a46: f7fe fbfb bl 8000240 - 8001a4a: 4605 mov r5, r0 - 8001a4c: 9001 str r0, [sp, #4] - 8001a4e: e7a2 b.n 8001996 - 8001a50: 3201 adds r2, #1 - 8001a52: 60e2 str r2, [r4, #12] - 8001a54: 4620 mov r0, r4 - 8001a56: f7ff fe73 bl 8001740 - 8001a5a: 2300 movs r3, #0 - 8001a5c: 4602 mov r2, r0 - 8001a5e: 2123 movs r1, #35 ; 0x23 - 8001a60: 4620 mov r0, r4 - 8001a62: f7fe fbed bl 8000240 - 8001a66: 4605 mov r5, r0 - 8001a68: 9001 str r0, [sp, #4] - 8001a6a: e794 b.n 8001996 - 8001a6c: 7853 ldrb r3, [r2, #1] - 8001a6e: f1a3 0230 sub.w r2, r3, #48 ; 0x30 - 8001a72: 2a09 cmp r2, #9 - 8001a74: d905 bls.n 8001a82 - 8001a76: 2b5f cmp r3, #95 ; 0x5f - 8001a78: d003 beq.n 8001a82 - 8001a7a: 3b41 subs r3, #65 ; 0x41 - 8001a7c: 2b19 cmp r3, #25 - 8001a7e: f200 820f bhi.w 8001ea0 - 8001a82: 2100 movs r1, #0 - 8001a84: 4620 mov r0, r4 - 8001a86: f7fe fdcb bl 8000620 - 8001a8a: 68e3 ldr r3, [r4, #12] - 8001a8c: 9001 str r0, [sp, #4] - 8001a8e: 781a ldrb r2, [r3, #0] - 8001a90: 2a49 cmp r2, #73 ; 0x49 - 8001a92: 4605 mov r5, r0 - 8001a94: f47f aedf bne.w 8001856 - 8001a98: 3301 adds r3, #1 - 8001a9a: 60e3 str r3, [r4, #12] - 8001a9c: 4620 mov r0, r4 - 8001a9e: f7ff fc37 bl 8001310 - 8001aa2: 4603 mov r3, r0 - 8001aa4: 462a mov r2, r5 - 8001aa6: 2104 movs r1, #4 - 8001aa8: 4620 mov r0, r4 - 8001aaa: f7fe fbc9 bl 8000240 - 8001aae: 4605 mov r5, r0 - 8001ab0: 9001 str r0, [sp, #4] - 8001ab2: e770 b.n 8001996 - 8001ab4: 4620 mov r0, r4 - 8001ab6: f7fe fd1b bl 80004f0 - 8001aba: 68e6 ldr r6, [r4, #12] - 8001abc: 9001 str r0, [sp, #4] - 8001abe: 7833 ldrb r3, [r6, #0] - 8001ac0: 2b49 cmp r3, #73 ; 0x49 - 8001ac2: 4605 mov r5, r0 - 8001ac4: f47f af67 bne.w 8001996 - 8001ac8: 6ba3 ldr r3, [r4, #56] ; 0x38 - 8001aca: 2b00 cmp r3, #0 - 8001acc: f040 81f5 bne.w 8001eba - 8001ad0: 2800 cmp r0, #0 - 8001ad2: f43f aee6 beq.w 80018a2 - 8001ad6: e9d4 2108 ldrd r2, r1, [r4, #32] - 8001ada: 428a cmp r2, r1 - 8001adc: f6bf aee1 bge.w 80018a2 - 8001ae0: 69e1 ldr r1, [r4, #28] - 8001ae2: f841 0022 str.w r0, [r1, r2, lsl #2] - 8001ae6: 3201 adds r2, #1 - 8001ae8: 6222 str r2, [r4, #32] - 8001aea: 7831 ldrb r1, [r6, #0] - 8001aec: 9d01 ldr r5, [sp, #4] - 8001aee: 3949 subs r1, #73 ; 0x49 - 8001af0: 2901 cmp r1, #1 - 8001af2: d8d7 bhi.n 8001aa4 - 8001af4: 3601 adds r6, #1 - 8001af6: 60e6 str r6, [r4, #12] - 8001af8: 4620 mov r0, r4 - 8001afa: f7ff fc09 bl 8001310 - 8001afe: 4603 mov r3, r0 - 8001b00: e7d0 b.n 8001aa4 - 8001b02: 3201 adds r2, #1 - 8001b04: 60e2 str r2, [r4, #12] - 8001b06: 4620 mov r0, r4 - 8001b08: f7fe fd14 bl 8000534 - 8001b0c: 68e3 ldr r3, [r4, #12] - 8001b0e: 9001 str r0, [sp, #4] - 8001b10: 781a ldrb r2, [r3, #0] - 8001b12: 2a49 cmp r2, #73 ; 0x49 - 8001b14: 4605 mov r5, r0 - 8001b16: f000 81a8 beq.w 8001e6a - 8001b1a: 4620 mov r0, r4 - 8001b1c: f7ff fe10 bl 8001740 - 8001b20: 9b01 ldr r3, [sp, #4] - 8001b22: 4602 mov r2, r0 - 8001b24: 2121 movs r1, #33 ; 0x21 - 8001b26: 4620 mov r0, r4 - 8001b28: f7fe fb8a bl 8000240 - 8001b2c: 4605 mov r5, r0 - 8001b2e: 9001 str r0, [sp, #4] - 8001b30: e731 b.n 8001996 - 8001b32: e9d4 1005 ldrd r1, r0, [r4, #20] - 8001b36: 3b61 subs r3, #97 ; 0x61 - 8001b38: 4db6 ldr r5, [pc, #728] ; (8001e14 ) - 8001b3a: eb03 0383 add.w r3, r3, r3, lsl #2 - 8001b3e: 4281 cmp r1, r0 - 8001b40: eb05 0383 add.w r3, r5, r3, lsl #2 - 8001b44: f280 818b bge.w 8001e5e - 8001b48: 6858 ldr r0, [r3, #4] - 8001b4a: 6b26 ldr r6, [r4, #48] ; 0x30 - 8001b4c: f8d4 c010 ldr.w ip, [r4, #16] - 8001b50: 010f lsls r7, r1, #4 - 8001b52: eb0c 0507 add.w r5, ip, r7 - 8001b56: 4406 add r6, r0 - 8001b58: 4630 mov r0, r6 - 8001b5a: 3201 adds r2, #1 - 8001b5c: 3101 adds r1, #1 - 8001b5e: f04f 0e00 mov.w lr, #0 - 8001b62: 2627 movs r6, #39 ; 0x27 - 8001b64: f8c5 e004 str.w lr, [r5, #4] - 8001b68: 6161 str r1, [r4, #20] - 8001b6a: f80c 6007 strb.w r6, [ip, r7] - 8001b6e: 60ab str r3, [r5, #8] - 8001b70: 60e2 str r2, [r4, #12] - 8001b72: 6320 str r0, [r4, #48] ; 0x30 - 8001b74: e66f b.n 8001856 - 8001b76: 3201 adds r2, #1 - 8001b78: 60e2 str r2, [r4, #12] - 8001b7a: 4620 mov r0, r4 - 8001b7c: f7ff fde0 bl 8001740 - 8001b80: 4605 mov r5, r0 - 8001b82: 2800 cmp r0, #0 - 8001b84: f43f ae8d beq.w 80018a2 - 8001b88: 4620 mov r0, r4 - 8001b8a: f7ff fdd9 bl 8001740 - 8001b8e: 4603 mov r3, r0 - 8001b90: 2800 cmp r0, #0 - 8001b92: f43f ae86 beq.w 80018a2 - 8001b96: 462a mov r2, r5 - 8001b98: 212b movs r1, #43 ; 0x2b - 8001b9a: 4620 mov r0, r4 - 8001b9c: f7fe fb50 bl 8000240 - 8001ba0: 4605 mov r5, r0 - 8001ba2: 9001 str r0, [sp, #4] - 8001ba4: e6f7 b.n 8001996 - 8001ba6: 1c55 adds r5, r2, #1 - 8001ba8: 60e5 str r5, [r4, #12] - 8001baa: 7853 ldrb r3, [r2, #1] - 8001bac: 2b5f cmp r3, #95 ; 0x5f - 8001bae: f000 815a beq.w 8001e66 - 8001bb2: 3b30 subs r3, #48 ; 0x30 - 8001bb4: 2b09 cmp r3, #9 - 8001bb6: f200 8165 bhi.w 8001e84 - 8001bba: 4628 mov r0, r5 - 8001bbc: e000 b.n 8001bc0 - 8001bbe: 4608 mov r0, r1 - 8001bc0: 1c41 adds r1, r0, #1 - 8001bc2: 60e1 str r1, [r4, #12] - 8001bc4: 7843 ldrb r3, [r0, #1] - 8001bc6: 3b30 subs r3, #48 ; 0x30 - 8001bc8: 2b09 cmp r3, #9 - 8001bca: d9f8 bls.n 8001bbe - 8001bcc: e9d4 3205 ldrd r3, r2, [r4, #20] - 8001bd0: 4293 cmp r3, r2 - 8001bd2: eba1 0705 sub.w r7, r1, r5 - 8001bd6: f6bf ae64 bge.w 80018a2 - 8001bda: f8d4 e010 ldr.w lr, [r4, #16] - 8001bde: ea4f 1c03 mov.w ip, r3, lsl #4 - 8001be2: eb0e 060c add.w r6, lr, ip - 8001be6: 3301 adds r3, #1 - 8001be8: 2200 movs r2, #0 - 8001bea: 6072 str r2, [r6, #4] - 8001bec: 6163 str r3, [r4, #20] - 8001bee: 2f00 cmp r7, #0 - 8001bf0: f43f ae57 beq.w 80018a2 - 8001bf4: 6072 str r2, [r6, #4] - 8001bf6: f80e 200c strb.w r2, [lr, ip] - 8001bfa: e9c6 5702 strd r5, r7, [r6, #8] - 8001bfe: 7843 ldrb r3, [r0, #1] - 8001c00: 460d mov r5, r1 - 8001c02: 2b5f cmp r3, #95 ; 0x5f - 8001c04: f47f ae4d bne.w 80018a2 - 8001c08: 3501 adds r5, #1 - 8001c0a: 60e5 str r5, [r4, #12] - 8001c0c: 4620 mov r0, r4 - 8001c0e: f7ff fd97 bl 8001740 - 8001c12: 4632 mov r2, r6 - 8001c14: 4603 mov r3, r0 - 8001c16: 212a movs r1, #42 ; 0x2a - 8001c18: 4620 mov r0, r4 - 8001c1a: f7fe fb11 bl 8000240 - 8001c1e: 4605 mov r5, r0 - 8001c20: 9001 str r0, [sp, #4] - 8001c22: e6b8 b.n 8001996 - 8001c24: 7893 ldrb r3, [r2, #2] - 8001c26: 2b5f cmp r3, #95 ; 0x5f - 8001c28: f000 8178 beq.w 8001f1c - 8001c2c: f7fe fc2e bl 800048c - 8001c30: 4605 mov r5, r0 - 8001c32: 2d00 cmp r5, #0 - 8001c34: f43f ae35 beq.w 80018a2 - 8001c38: 68e3 ldr r3, [r4, #12] - 8001c3a: 781a ldrb r2, [r3, #0] - 8001c3c: 2a5f cmp r2, #95 ; 0x5f - 8001c3e: f47f ae30 bne.w 80018a2 - 8001c42: 3301 adds r3, #1 - 8001c44: 60e3 str r3, [r4, #12] - 8001c46: 4620 mov r0, r4 - 8001c48: f7ff fd7a bl 8001740 - 8001c4c: 462a mov r2, r5 - 8001c4e: 4603 mov r3, r0 - 8001c50: 212d movs r1, #45 ; 0x2d - 8001c52: 4620 mov r0, r4 - 8001c54: f7fe faf4 bl 8000240 - 8001c58: 4605 mov r5, r0 - 8001c5a: 9001 str r0, [sp, #4] - 8001c5c: e69b b.n 8001996 - 8001c5e: e9d0 3205 ldrd r3, r2, [r0, #20] - 8001c62: 4293 cmp r3, r2 - 8001c64: f280 80fb bge.w 8001e5e - 8001c68: 6900 ldr r0, [r0, #16] - 8001c6a: 6b22 ldr r2, [r4, #48] ; 0x30 - 8001c6c: 0119 lsls r1, r3, #4 - 8001c6e: 1845 adds r5, r0, r1 - 8001c70: 3301 adds r3, #1 - 8001c72: 2600 movs r6, #0 - 8001c74: 606e str r6, [r5, #4] - 8001c76: 3208 adds r2, #8 - 8001c78: 6163 str r3, [r4, #20] - 8001c7a: 2627 movs r6, #39 ; 0x27 - 8001c7c: 4b66 ldr r3, [pc, #408] ; (8001e18 ) - 8001c7e: 5446 strb r6, [r0, r1] - 8001c80: 60ab str r3, [r5, #8] - 8001c82: 6322 str r2, [r4, #48] ; 0x30 - 8001c84: e5e7 b.n 8001856 - 8001c86: f7ff fd5b bl 8001740 - 8001c8a: 2300 movs r3, #0 - 8001c8c: 4602 mov r2, r0 - 8001c8e: 214a movs r1, #74 ; 0x4a - 8001c90: 4620 mov r0, r4 - 8001c92: f7fe fad5 bl 8000240 - 8001c96: 4605 mov r5, r0 - 8001c98: 9001 str r0, [sp, #4] - 8001c9a: e67c b.n 8001996 - 8001c9c: e9d0 3205 ldrd r3, r2, [r0, #20] - 8001ca0: 4293 cmp r3, r2 - 8001ca2: f280 80dc bge.w 8001e5e - 8001ca6: 6900 ldr r0, [r0, #16] - 8001ca8: 6b22 ldr r2, [r4, #48] ; 0x30 - 8001caa: 0119 lsls r1, r3, #4 - 8001cac: 1845 adds r5, r0, r1 - 8001cae: 3301 adds r3, #1 - 8001cb0: 2600 movs r6, #0 - 8001cb2: 606e str r6, [r5, #4] - 8001cb4: 3204 adds r2, #4 - 8001cb6: 6163 str r3, [r4, #20] - 8001cb8: 2627 movs r6, #39 ; 0x27 - 8001cba: 4b58 ldr r3, [pc, #352] ; (8001e1c ) - 8001cbc: 5446 strb r6, [r0, r1] - 8001cbe: 60ab str r3, [r5, #8] - 8001cc0: 6322 str r2, [r4, #48] ; 0x30 - 8001cc2: e5c8 b.n 8001856 - 8001cc4: e9d0 3205 ldrd r3, r2, [r0, #20] - 8001cc8: 4293 cmp r3, r2 - 8001cca: f280 80c8 bge.w 8001e5e - 8001cce: 6900 ldr r0, [r0, #16] - 8001cd0: 6b22 ldr r2, [r4, #48] ; 0x30 - 8001cd2: 0119 lsls r1, r3, #4 - 8001cd4: 1845 adds r5, r0, r1 - 8001cd6: 3301 adds r3, #1 - 8001cd8: 2600 movs r6, #0 - 8001cda: 606e str r6, [r5, #4] - 8001cdc: 3209 adds r2, #9 - 8001cde: 6163 str r3, [r4, #20] - 8001ce0: 2627 movs r6, #39 ; 0x27 - 8001ce2: 4b4f ldr r3, [pc, #316] ; (8001e20 ) - 8001ce4: 5446 strb r6, [r0, r1] - 8001ce6: 60ab str r3, [r5, #8] - 8001ce8: 6322 str r2, [r4, #48] ; 0x30 - 8001cea: e5b4 b.n 8001856 - 8001cec: e9d0 3205 ldrd r3, r2, [r0, #20] - 8001cf0: 4293 cmp r3, r2 - 8001cf2: f280 80b4 bge.w 8001e5e - 8001cf6: 6900 ldr r0, [r0, #16] - 8001cf8: 6b22 ldr r2, [r4, #48] ; 0x30 - 8001cfa: 0119 lsls r1, r3, #4 - 8001cfc: 1845 adds r5, r0, r1 - 8001cfe: 3301 adds r3, #1 - 8001d00: 2600 movs r6, #0 - 8001d02: 606e str r6, [r5, #4] - 8001d04: 320a adds r2, #10 - 8001d06: 6163 str r3, [r4, #20] - 8001d08: 2627 movs r6, #39 ; 0x27 - 8001d0a: 4b46 ldr r3, [pc, #280] ; (8001e24 ) - 8001d0c: 5446 strb r6, [r0, r1] - 8001d0e: 60ab str r3, [r5, #8] - 8001d10: 6322 str r2, [r4, #48] ; 0x30 - 8001d12: e5a0 b.n 8001856 - 8001d14: e9d0 3205 ldrd r3, r2, [r0, #20] - 8001d18: 4293 cmp r3, r2 - 8001d1a: f280 80a0 bge.w 8001e5e - 8001d1e: 6900 ldr r0, [r0, #16] - 8001d20: 6b22 ldr r2, [r4, #48] ; 0x30 - 8001d22: 0119 lsls r1, r3, #4 - 8001d24: 1845 adds r5, r0, r1 - 8001d26: 3301 adds r3, #1 - 8001d28: 2600 movs r6, #0 - 8001d2a: 606e str r6, [r5, #4] - 8001d2c: 3209 adds r2, #9 - 8001d2e: 6163 str r3, [r4, #20] - 8001d30: 2627 movs r6, #39 ; 0x27 - 8001d32: 4b3d ldr r3, [pc, #244] ; (8001e28 ) - 8001d34: 5446 strb r6, [r0, r1] - 8001d36: 60ab str r3, [r5, #8] - 8001d38: 6322 str r2, [r4, #48] ; 0x30 - 8001d3a: e58c b.n 8001856 - 8001d3c: e9d0 3205 ldrd r3, r2, [r0, #20] - 8001d40: 4293 cmp r3, r2 - 8001d42: f6bf adae bge.w 80018a2 - 8001d46: 6901 ldr r1, [r0, #16] - 8001d48: 4e38 ldr r6, [pc, #224] ; (8001e2c ) - 8001d4a: 011a lsls r2, r3, #4 - 8001d4c: 188d adds r5, r1, r2 - 8001d4e: 3301 adds r3, #1 - 8001d50: 6143 str r3, [r0, #20] - 8001d52: 2300 movs r3, #0 - 8001d54: 200e movs r0, #14 - 8001d56: 606b str r3, [r5, #4] - 8001d58: 548b strb r3, [r1, r2] - 8001d5a: e9c5 6002 strd r6, r0, [r5, #8] - 8001d5e: e57a b.n 8001856 - 8001d60: e9d0 3205 ldrd r3, r2, [r0, #20] - 8001d64: 4293 cmp r3, r2 - 8001d66: f6bf ad9c bge.w 80018a2 - 8001d6a: 6901 ldr r1, [r0, #16] - 8001d6c: 4e30 ldr r6, [pc, #192] ; (8001e30 ) - 8001d6e: 011a lsls r2, r3, #4 - 8001d70: 188d adds r5, r1, r2 - 8001d72: 3301 adds r3, #1 - 8001d74: 6143 str r3, [r0, #20] - 8001d76: 2300 movs r3, #0 - 8001d78: 2004 movs r0, #4 - 8001d7a: 606b str r3, [r5, #4] - 8001d7c: 548b strb r3, [r1, r2] - 8001d7e: e9c5 6002 strd r6, r0, [r5, #8] - 8001d82: e568 b.n 8001856 - 8001d84: e9d0 3105 ldrd r3, r1, [r0, #20] - 8001d88: 428b cmp r3, r1 - 8001d8a: f280 80af bge.w 8001eec - 8001d8e: 6905 ldr r5, [r0, #16] - 8001d90: 0118 lsls r0, r3, #4 - 8001d92: 1829 adds r1, r5, r0 - 8001d94: 3301 adds r3, #1 - 8001d96: 2700 movs r7, #0 - 8001d98: 262c movs r6, #44 ; 0x2c - 8001d9a: 604f str r7, [r1, #4] - 8001d9c: 9101 str r1, [sp, #4] - 8001d9e: 6163 str r3, [r4, #20] - 8001da0: 542e strb r6, [r5, r0] - 8001da2: 7893 ldrb r3, [r2, #2] - 8001da4: 3b30 subs r3, #48 ; 0x30 - 8001da6: b2db uxtb r3, r3 - 8001da8: 2b09 cmp r3, #9 - 8001daa: bf94 ite ls - 8001dac: 2301 movls r3, #1 - 8001dae: 463b movhi r3, r7 - 8001db0: 818b strh r3, [r1, #12] - 8001db2: f240 80ae bls.w 8001f12 - 8001db6: 4620 mov r0, r4 - 8001db8: 9d01 ldr r5, [sp, #4] - 8001dba: f7ff fcc1 bl 8001740 - 8001dbe: 9b01 ldr r3, [sp, #4] - 8001dc0: 60a8 str r0, [r5, #8] - 8001dc2: 689b ldr r3, [r3, #8] - 8001dc4: 2b00 cmp r3, #0 - 8001dc6: f43f ad6c beq.w 80018a2 - 8001dca: f104 000c add.w r0, r4, #12 - 8001dce: f7fe fb31 bl 8000434 - 8001dd2: 68e2 ldr r2, [r4, #12] - 8001dd4: 7813 ldrb r3, [r2, #0] - 8001dd6: b113 cbz r3, 8001dde - 8001dd8: 1c53 adds r3, r2, #1 - 8001dda: 60e3 str r3, [r4, #12] - 8001ddc: 7813 ldrb r3, [r2, #0] - 8001dde: 9d01 ldr r5, [sp, #4] - 8001de0: f1a3 0273 sub.w r2, r3, #115 ; 0x73 - 8001de4: 4253 negs r3, r2 - 8001de6: 4153 adcs r3, r2 - 8001de8: 81eb strh r3, [r5, #14] - 8001dea: e534 b.n 8001856 - 8001dec: e9d0 3205 ldrd r3, r2, [r0, #20] - 8001df0: 4293 cmp r3, r2 - 8001df2: da34 bge.n 8001e5e - 8001df4: 6900 ldr r0, [r0, #16] - 8001df6: 6b22 ldr r2, [r4, #48] ; 0x30 - 8001df8: 0119 lsls r1, r3, #4 - 8001dfa: 1845 adds r5, r0, r1 - 8001dfc: 3301 adds r3, #1 - 8001dfe: 2600 movs r6, #0 - 8001e00: 606e str r6, [r5, #4] - 8001e02: 3211 adds r2, #17 - 8001e04: 6163 str r3, [r4, #20] - 8001e06: 2627 movs r6, #39 ; 0x27 - 8001e08: 4b0a ldr r3, [pc, #40] ; (8001e34 ) - 8001e0a: 5446 strb r6, [r0, r1] - 8001e0c: 60ab str r3, [r5, #8] - 8001e0e: 6322 str r2, [r4, #48] ; 0x30 - 8001e10: e521 b.n 8001856 - 8001e12: bf00 nop - 8001e14: 08011bd0 .word 0x08011bd0 - 8001e18: 08011e28 .word 0x08011e28 - 8001e1c: 08011e14 .word 0x08011e14 - 8001e20: 08011dd8 .word 0x08011dd8 - 8001e24: 08011e00 .word 0x08011e00 - 8001e28: 08011dec .word 0x08011dec - 8001e2c: 080125a8 .word 0x080125a8 - 8001e30: 080125a0 .word 0x080125a0 - 8001e34: 08011e50 .word 0x08011e50 - 8001e38: e9d0 3205 ldrd r3, r2, [r0, #20] - 8001e3c: 4293 cmp r3, r2 - 8001e3e: da0e bge.n 8001e5e - 8001e40: 6900 ldr r0, [r0, #16] - 8001e42: 6b22 ldr r2, [r4, #48] ; 0x30 - 8001e44: 0119 lsls r1, r3, #4 - 8001e46: 1845 adds r5, r0, r1 - 8001e48: 3301 adds r3, #1 - 8001e4a: 2600 movs r6, #0 - 8001e4c: 606e str r6, [r5, #4] - 8001e4e: 3208 adds r2, #8 - 8001e50: 6163 str r3, [r4, #20] - 8001e52: 2627 movs r6, #39 ; 0x27 - 8001e54: 4b36 ldr r3, [pc, #216] ; (8001f30 ) - 8001e56: 5446 strb r6, [r0, r1] - 8001e58: 60ab str r3, [r5, #8] - 8001e5a: 6322 str r2, [r4, #48] ; 0x30 - 8001e5c: e4fb b.n 8001856 - 8001e5e: 2300 movs r3, #0 - 8001e60: 9301 str r3, [sp, #4] - 8001e62: 689b ldr r3, [r3, #8] - 8001e64: deff udf #255 ; 0xff - 8001e66: 2600 movs r6, #0 - 8001e68: e6ce b.n 8001c08 - 8001e6a: 3301 adds r3, #1 - 8001e6c: 60e3 str r3, [r4, #12] - 8001e6e: 4620 mov r0, r4 - 8001e70: f7ff fa4e bl 8001310 - 8001e74: 462a mov r2, r5 - 8001e76: 4603 mov r3, r0 - 8001e78: 2104 movs r1, #4 - 8001e7a: 4620 mov r0, r4 - 8001e7c: f7fe f9e0 bl 8000240 - 8001e80: 9001 str r0, [sp, #4] - 8001e82: e64a b.n 8001b1a - 8001e84: 2301 movs r3, #1 - 8001e86: 6b65 ldr r5, [r4, #52] ; 0x34 - 8001e88: 6363 str r3, [r4, #52] ; 0x34 - 8001e8a: 4620 mov r0, r4 - 8001e8c: f7ff f82e bl 8000eec - 8001e90: 6365 str r5, [r4, #52] ; 0x34 - 8001e92: 4606 mov r6, r0 - 8001e94: 2800 cmp r0, #0 - 8001e96: f43f ad04 beq.w 80018a2 - 8001e9a: 68e5 ldr r5, [r4, #12] - 8001e9c: 782b ldrb r3, [r5, #0] - 8001e9e: e6b0 b.n 8001c02 - 8001ea0: 4620 mov r0, r4 - 8001ea2: f7ff faa1 bl 80013e8 - 8001ea6: 4605 mov r5, r0 - 8001ea8: 9001 str r0, [sp, #4] - 8001eaa: 2800 cmp r0, #0 - 8001eac: f43f acf9 beq.w 80018a2 - 8001eb0: 7803 ldrb r3, [r0, #0] - 8001eb2: 2b18 cmp r3, #24 - 8001eb4: f47f ad71 bne.w 800199a - 8001eb8: e4cd b.n 8001856 - 8001eba: 1c73 adds r3, r6, #1 - 8001ebc: 60e3 str r3, [r4, #12] - 8001ebe: 4620 mov r0, r4 - 8001ec0: f8d4 9014 ldr.w r9, [r4, #20] - 8001ec4: f8d4 8020 ldr.w r8, [r4, #32] - 8001ec8: 6aa7 ldr r7, [r4, #40] ; 0x28 - 8001eca: 6b25 ldr r5, [r4, #48] ; 0x30 - 8001ecc: f7ff fa20 bl 8001310 - 8001ed0: 68e2 ldr r2, [r4, #12] - 8001ed2: 7812 ldrb r2, [r2, #0] - 8001ed4: 2a49 cmp r2, #73 ; 0x49 - 8001ed6: 4603 mov r3, r0 - 8001ed8: d00b beq.n 8001ef2 - 8001eda: 6325 str r5, [r4, #48] ; 0x30 - 8001edc: 60e6 str r6, [r4, #12] - 8001ede: f8c4 9014 str.w r9, [r4, #20] - 8001ee2: f8c4 8020 str.w r8, [r4, #32] - 8001ee6: 62a7 str r7, [r4, #40] ; 0x28 - 8001ee8: 9d01 ldr r5, [sp, #4] - 8001eea: e554 b.n 8001996 - 8001eec: 2300 movs r3, #0 - 8001eee: 701b strb r3, [r3, #0] - 8001ef0: deff udf #255 ; 0xff - 8001ef2: 9901 ldr r1, [sp, #4] - 8001ef4: 2900 cmp r1, #0 - 8001ef6: f43f acd4 beq.w 80018a2 - 8001efa: e9d4 2008 ldrd r2, r0, [r4, #32] - 8001efe: 4282 cmp r2, r0 - 8001f00: f6bf accf bge.w 80018a2 - 8001f04: 69e0 ldr r0, [r4, #28] - 8001f06: f840 1022 str.w r1, [r0, r2, lsl #2] - 8001f0a: 3201 adds r2, #1 - 8001f0c: 6222 str r2, [r4, #32] - 8001f0e: 9a01 ldr r2, [sp, #4] - 8001f10: e5c9 b.n 8001aa6 - 8001f12: f104 000c add.w r0, r4, #12 - 8001f16: f7fe fa8d bl 8000434 - 8001f1a: e74c b.n 8001db6 - 8001f1c: 3203 adds r2, #3 - 8001f1e: 2301 movs r3, #1 - 8001f20: 6b46 ldr r6, [r0, #52] ; 0x34 - 8001f22: 60c2 str r2, [r0, #12] - 8001f24: 6343 str r3, [r0, #52] ; 0x34 - 8001f26: f7fe ffe1 bl 8000eec - 8001f2a: 6366 str r6, [r4, #52] ; 0x34 - 8001f2c: 4605 mov r5, r0 - 8001f2e: e680 b.n 8001c32 - 8001f30: 08011e3c .word 0x08011e3c - -08001f34 : - 8001f34: b5f8 push {r3, r4, r5, r6, r7, lr} - 8001f36: 68c3 ldr r3, [r0, #12] - 8001f38: 781e ldrb r6, [r3, #0] - 8001f3a: 4686 mov lr, r0 - 8001f3c: b336 cbz r6, 8001f8c - 8001f3e: 1c5a adds r2, r3, #1 - 8001f40: 60c2 str r2, [r0, #12] - 8001f42: 785a ldrb r2, [r3, #1] - 8001f44: 781e ldrb r6, [r3, #0] - 8001f46: 2a00 cmp r2, #0 - 8001f48: d04a beq.n 8001fe0 - 8001f4a: 1c9a adds r2, r3, #2 - 8001f4c: 60c2 str r2, [r0, #12] - 8001f4e: 2e76 cmp r6, #118 ; 0x76 - 8001f50: 4604 mov r4, r0 - 8001f52: f893 c001 ldrb.w ip, [r3, #1] - 8001f56: d145 bne.n 8001fe4 - 8001f58: f1ac 0530 sub.w r5, ip, #48 ; 0x30 - 8001f5c: b2eb uxtb r3, r5 - 8001f5e: 2b09 cmp r3, #9 - 8001f60: d815 bhi.n 8001f8e - 8001f62: f7fe fae7 bl 8000534 - 8001f66: e9d4 3105 ldrd r3, r1, [r4, #20] - 8001f6a: 428b cmp r3, r1 - 8001f6c: 4602 mov r2, r0 - 8001f6e: da21 bge.n 8001fb4 - 8001f70: 6926 ldr r6, [r4, #16] - 8001f72: 0119 lsls r1, r3, #4 - 8001f74: 1870 adds r0, r6, r1 - 8001f76: 3301 adds r3, #1 - 8001f78: 2700 movs r7, #0 - 8001f7a: 6047 str r7, [r0, #4] - 8001f7c: 6163 str r3, [r4, #20] - 8001f7e: b1ca cbz r2, 8001fb4 - 8001f80: 2332 movs r3, #50 ; 0x32 - 8001f82: 6047 str r7, [r0, #4] - 8001f84: 5473 strb r3, [r6, r1] - 8001f86: e9c0 5202 strd r5, r2, [r0, #8] - 8001f8a: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8001f8c: 46b4 mov ip, r6 - 8001f8e: 4c23 ldr r4, [pc, #140] ; (800201c ) - 8001f90: 2043 movs r0, #67 ; 0x43 - 8001f92: 2200 movs r2, #0 - 8001f94: 1a83 subs r3, r0, r2 - 8001f96: eb03 73d3 add.w r3, r3, r3, lsr #31 - 8001f9a: eb02 0363 add.w r3, r2, r3, asr #1 - 8001f9e: 0119 lsls r1, r3, #4 - 8001fa0: 1867 adds r7, r4, r1 - 8001fa2: 5861 ldr r1, [r4, r1] - 8001fa4: 780d ldrb r5, [r1, #0] - 8001fa6: 42b5 cmp r5, r6 - 8001fa8: d006 beq.n 8001fb8 - 8001faa: bf94 ite ls - 8001fac: 1c5a addls r2, r3, #1 - 8001fae: 4618 movhi r0, r3 - 8001fb0: 4282 cmp r2, r0 - 8001fb2: d1ef bne.n 8001f94 - 8001fb4: 2000 movs r0, #0 - 8001fb6: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8001fb8: 7849 ldrb r1, [r1, #1] - 8001fba: 4561 cmp r1, ip - 8001fbc: d1f5 bne.n 8001faa - 8001fbe: e9de 3205 ldrd r3, r2, [lr, #20] - 8001fc2: 4293 cmp r3, r2 - 8001fc4: daf6 bge.n 8001fb4 - 8001fc6: f8de 1010 ldr.w r1, [lr, #16] - 8001fca: 011a lsls r2, r3, #4 - 8001fcc: 1888 adds r0, r1, r2 - 8001fce: 3301 adds r3, #1 - 8001fd0: 2500 movs r5, #0 - 8001fd2: 2431 movs r4, #49 ; 0x31 - 8001fd4: 6045 str r5, [r0, #4] - 8001fd6: f8ce 3014 str.w r3, [lr, #20] - 8001fda: 548c strb r4, [r1, r2] - 8001fdc: 6087 str r7, [r0, #8] - 8001fde: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8001fe0: 4694 mov ip, r2 - 8001fe2: e7d4 b.n 8001f8e - 8001fe4: 2e63 cmp r6, #99 ; 0x63 - 8001fe6: d1d2 bne.n 8001f8e - 8001fe8: f1bc 0f76 cmp.w ip, #118 ; 0x76 - 8001fec: d1cf bne.n 8001f8e - 8001fee: e9d0 350d ldrd r3, r5, [r0, #52] ; 0x34 - 8001ff2: fab3 f383 clz r3, r3 - 8001ff6: 095b lsrs r3, r3, #5 - 8001ff8: 6383 str r3, [r0, #56] ; 0x38 - 8001ffa: f7ff fba1 bl 8001740 - 8001ffe: 6ba3 ldr r3, [r4, #56] ; 0x38 - 8002000: 4602 mov r2, r0 - 8002002: b92b cbnz r3, 8002010 - 8002004: 2133 movs r1, #51 ; 0x33 - 8002006: 4620 mov r0, r4 - 8002008: f7fe f91a bl 8000240 - 800200c: 63a5 str r5, [r4, #56] ; 0x38 - 800200e: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8002010: 2300 movs r3, #0 - 8002012: 2134 movs r1, #52 ; 0x34 - 8002014: 4620 mov r0, r4 - 8002016: f7fe f913 bl 8000240 - 800201a: e7f7 b.n 800200c - 800201c: 08011e64 .word 0x08011e64 - -08002020 : - 8002020: b530 push {r4, r5, lr} - 8002022: 68c2 ldr r2, [r0, #12] - 8002024: b083 sub sp, #12 - 8002026: 2300 movs r3, #0 - 8002028: 9301 str r3, [sp, #4] - 800202a: 7813 ldrb r3, [r2, #0] - 800202c: 2b00 cmp r3, #0 - 800202e: d036 beq.n 800209e - 8002030: 2b45 cmp r3, #69 ; 0x45 - 8002032: d034 beq.n 800209e - 8002034: 2b2e cmp r3, #46 ; 0x2e - 8002036: d032 beq.n 800209e - 8002038: 4604 mov r4, r0 - 800203a: ad01 add r5, sp, #4 - 800203c: e015 b.n 800206a - 800203e: 2b4f cmp r3, #79 ; 0x4f - 8002040: d016 beq.n 8002070 - 8002042: f7ff fb7d bl 8001740 - 8002046: 2300 movs r3, #0 - 8002048: 4602 mov r2, r0 - 800204a: 212e movs r1, #46 ; 0x2e - 800204c: b338 cbz r0, 800209e - 800204e: 4620 mov r0, r4 - 8002050: f7fe f8f6 bl 8000240 - 8002054: 6028 str r0, [r5, #0] - 8002056: b310 cbz r0, 800209e - 8002058: 68e2 ldr r2, [r4, #12] - 800205a: 7813 ldrb r3, [r2, #0] - 800205c: f100 050c add.w r5, r0, #12 - 8002060: b14b cbz r3, 8002076 - 8002062: 2b45 cmp r3, #69 ; 0x45 - 8002064: d007 beq.n 8002076 - 8002066: 2b2e cmp r3, #46 ; 0x2e - 8002068: d005 beq.n 8002076 - 800206a: 2b52 cmp r3, #82 ; 0x52 - 800206c: 4620 mov r0, r4 - 800206e: d1e6 bne.n 800203e - 8002070: 7853 ldrb r3, [r2, #1] - 8002072: 2b45 cmp r3, #69 ; 0x45 - 8002074: d1e5 bne.n 8002042 - 8002076: 9801 ldr r0, [sp, #4] - 8002078: b188 cbz r0, 800209e - 800207a: 68c3 ldr r3, [r0, #12] - 800207c: b10b cbz r3, 8002082 - 800207e: b003 add sp, #12 - 8002080: bd30 pop {r4, r5, pc} - 8002082: 6882 ldr r2, [r0, #8] - 8002084: 7811 ldrb r1, [r2, #0] - 8002086: 2927 cmp r1, #39 ; 0x27 - 8002088: d1f9 bne.n 800207e - 800208a: 6892 ldr r2, [r2, #8] - 800208c: 7c11 ldrb r1, [r2, #16] - 800208e: 2909 cmp r1, #9 - 8002090: d1f5 bne.n 800207e - 8002092: 6851 ldr r1, [r2, #4] - 8002094: 6b22 ldr r2, [r4, #48] ; 0x30 - 8002096: 1a52 subs r2, r2, r1 - 8002098: 6322 str r2, [r4, #48] ; 0x30 - 800209a: 6083 str r3, [r0, #8] - 800209c: e7ef b.n 800207e - 800209e: 2000 movs r0, #0 - 80020a0: b003 add sp, #12 - 80020a2: bd30 pop {r4, r5, pc} - -080020a4 : - 80020a4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 80020a8: 4689 mov r9, r1 - 80020aa: b083 sub sp, #12 - 80020ac: 68c1 ldr r1, [r0, #12] - 80020ae: 1e13 subs r3, r2, #0 - 80020b0: 9301 str r3, [sp, #4] - 80020b2: 4604 mov r4, r0 - 80020b4: 780b ldrb r3, [r1, #0] - 80020b6: bf15 itete ne - 80020b8: f04f 081e movne.w r8, #30 - 80020bc: f04f 081b moveq.w r8, #27 - 80020c0: 271d movne r7, #29 - 80020c2: 271a moveq r7, #26 - 80020c4: bf14 ite ne - 80020c6: 261c movne r6, #28 - 80020c8: 2619 moveq r6, #25 - 80020ca: 464d mov r5, r9 - 80020cc: f04f 0a01 mov.w sl, #1 - 80020d0: e01c b.n 800210c - 80020d2: 2b56 cmp r3, #86 ; 0x56 - 80020d4: d03f beq.n 8002156 - 80020d6: 2b4b cmp r3, #75 ; 0x4b - 80020d8: d043 beq.n 8002162 - 80020da: 784b ldrb r3, [r1, #1] - 80020dc: 2b00 cmp r3, #0 - 80020de: d035 beq.n 800214c - 80020e0: 1c8b adds r3, r1, #2 - 80020e2: 60e3 str r3, [r4, #12] - 80020e4: 784b ldrb r3, [r1, #1] - 80020e6: 2b78 cmp r3, #120 ; 0x78 - 80020e8: d041 beq.n 800216e - 80020ea: 2b6f cmp r3, #111 ; 0x6f - 80020ec: d145 bne.n 800217a - 80020ee: 6b23 ldr r3, [r4, #48] ; 0x30 - 80020f0: 3309 adds r3, #9 - 80020f2: 6323 str r3, [r4, #48] ; 0x30 - 80020f4: 214e movs r1, #78 ; 0x4e - 80020f6: 2300 movs r3, #0 - 80020f8: 2200 movs r2, #0 - 80020fa: 4620 mov r0, r4 - 80020fc: f7fe f8a0 bl 8000240 - 8002100: 6028 str r0, [r5, #0] - 8002102: b318 cbz r0, 800214c - 8002104: 68e1 ldr r1, [r4, #12] - 8002106: 780b ldrb r3, [r1, #0] - 8002108: f100 0508 add.w r5, r0, #8 - 800210c: 2b72 cmp r3, #114 ; 0x72 - 800210e: d00d beq.n 800212c - 8002110: 2b56 cmp r3, #86 ; 0x56 - 8002112: d00b beq.n 800212c - 8002114: 2b4b cmp r3, #75 ; 0x4b - 8002116: d009 beq.n 800212c - 8002118: 2b44 cmp r3, #68 ; 0x44 - 800211a: d146 bne.n 80021aa - 800211c: 784a ldrb r2, [r1, #1] - 800211e: f002 00df and.w r0, r2, #223 ; 0xdf - 8002122: 284f cmp r0, #79 ; 0x4f - 8002124: d002 beq.n 800212c - 8002126: 3a77 subs r2, #119 ; 0x77 - 8002128: 2a01 cmp r2, #1 - 800212a: d83e bhi.n 80021aa - 800212c: 1c4a adds r2, r1, #1 - 800212e: 2b72 cmp r3, #114 ; 0x72 - 8002130: 60e2 str r2, [r4, #12] - 8002132: d1ce bne.n 80020d2 - 8002134: 6b23 ldr r3, [r4, #48] ; 0x30 - 8002136: 3309 adds r3, #9 - 8002138: 6323 str r3, [r4, #48] ; 0x30 - 800213a: 4631 mov r1, r6 - 800213c: 2300 movs r3, #0 - 800213e: 2200 movs r2, #0 - 8002140: 4620 mov r0, r4 - 8002142: f7fe f87d bl 8000240 - 8002146: 6028 str r0, [r5, #0] - 8002148: 2800 cmp r0, #0 - 800214a: d1db bne.n 8002104 - 800214c: 2500 movs r5, #0 - 800214e: 4628 mov r0, r5 - 8002150: b003 add sp, #12 - 8002152: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8002156: 6b23 ldr r3, [r4, #48] ; 0x30 - 8002158: 3309 adds r3, #9 - 800215a: 6323 str r3, [r4, #48] ; 0x30 - 800215c: 4639 mov r1, r7 - 800215e: 2300 movs r3, #0 - 8002160: e7ca b.n 80020f8 - 8002162: 6b23 ldr r3, [r4, #48] ; 0x30 - 8002164: 3306 adds r3, #6 - 8002166: 6323 str r3, [r4, #48] ; 0x30 - 8002168: 4641 mov r1, r8 - 800216a: 2300 movs r3, #0 - 800216c: e7c4 b.n 80020f8 - 800216e: 6b23 ldr r3, [r4, #48] ; 0x30 - 8002170: 3311 adds r3, #17 - 8002172: 6323 str r3, [r4, #48] ; 0x30 - 8002174: 214c movs r1, #76 ; 0x4c - 8002176: 2300 movs r3, #0 - 8002178: e7be b.n 80020f8 - 800217a: 2b4f cmp r3, #79 ; 0x4f - 800217c: d132 bne.n 80021e4 - 800217e: e9d4 3b0c ldrd r3, fp, [r4, #48] ; 0x30 - 8002182: 3309 adds r3, #9 - 8002184: 6323 str r3, [r4, #48] ; 0x30 - 8002186: f8c4 a034 str.w sl, [r4, #52] ; 0x34 - 800218a: 4620 mov r0, r4 - 800218c: f7fe feae bl 8000eec - 8002190: f8c4 b034 str.w fp, [r4, #52] ; 0x34 - 8002194: 4603 mov r3, r0 - 8002196: 2800 cmp r0, #0 - 8002198: d0d8 beq.n 800214c - 800219a: 68e2 ldr r2, [r4, #12] - 800219c: 7811 ldrb r1, [r2, #0] - 800219e: 2945 cmp r1, #69 ; 0x45 - 80021a0: d1d4 bne.n 800214c - 80021a2: 3201 adds r2, #1 - 80021a4: 60e2 str r2, [r4, #12] - 80021a6: 214e movs r1, #78 ; 0x4e - 80021a8: e7a6 b.n 80020f8 - 80021aa: 9a01 ldr r2, [sp, #4] - 80021ac: 2a00 cmp r2, #0 - 80021ae: d1ce bne.n 800214e - 80021b0: 2b46 cmp r3, #70 ; 0x46 - 80021b2: d1cc bne.n 800214e - 80021b4: 454d cmp r5, r9 - 80021b6: d0ca beq.n 800214e - 80021b8: 241d movs r4, #29 - 80021ba: 201e movs r0, #30 - 80021bc: 211c movs r1, #28 - 80021be: e008 b.n 80021d2 - 80021c0: 2a1b cmp r2, #27 - 80021c2: d00d beq.n 80021e0 - 80021c4: 2a19 cmp r2, #25 - 80021c6: d100 bne.n 80021ca - 80021c8: 7019 strb r1, [r3, #0] - 80021ca: f103 0908 add.w r9, r3, #8 - 80021ce: 454d cmp r5, r9 - 80021d0: d0bd beq.n 800214e - 80021d2: f8d9 3000 ldr.w r3, [r9] - 80021d6: 781a ldrb r2, [r3, #0] - 80021d8: 2a1a cmp r2, #26 - 80021da: d1f1 bne.n 80021c0 - 80021dc: 701c strb r4, [r3, #0] - 80021de: e7f4 b.n 80021ca - 80021e0: 7018 strb r0, [r3, #0] - 80021e2: e7f2 b.n 80021ca - 80021e4: 2b77 cmp r3, #119 ; 0x77 - 80021e6: d1b1 bne.n 800214c - 80021e8: 6b23 ldr r3, [r4, #48] ; 0x30 - 80021ea: 3306 adds r3, #6 - 80021ec: 6323 str r3, [r4, #48] ; 0x30 - 80021ee: 4620 mov r0, r4 - 80021f0: f7ff ff16 bl 8002020 - 80021f4: 4603 mov r3, r0 - 80021f6: 2800 cmp r0, #0 - 80021f8: d0a8 beq.n 800214c - 80021fa: 68e2 ldr r2, [r4, #12] - 80021fc: 7811 ldrb r1, [r2, #0] - 80021fe: 2945 cmp r1, #69 ; 0x45 - 8002200: d1a4 bne.n 800214c - 8002202: 3201 adds r2, #1 - 8002204: 60e2 str r2, [r4, #12] - 8002206: 214f movs r1, #79 ; 0x4f - 8002208: e776 b.n 80020f8 - 800220a: bf00 nop - -0800220c : - 800220c: b570 push {r4, r5, r6, lr} - 800220e: 68c3 ldr r3, [r0, #12] - 8002210: 781a ldrb r2, [r3, #0] - 8002212: 2a4a cmp r2, #74 ; 0x4a - 8002214: 4604 mov r4, r0 - 8002216: d013 beq.n 8002240 - 8002218: b181 cbz r1, 800223c - 800221a: 4620 mov r0, r4 - 800221c: f7ff fa90 bl 8001740 - 8002220: 4605 mov r5, r0 - 8002222: b180 cbz r0, 8002246 - 8002224: 4620 mov r0, r4 - 8002226: f7ff fefb bl 8002020 - 800222a: b160 cbz r0, 8002246 - 800222c: 4603 mov r3, r0 - 800222e: 462a mov r2, r5 - 8002230: 4620 mov r0, r4 - 8002232: 2129 movs r1, #41 ; 0x29 - 8002234: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - 8002238: f7fe b802 b.w 8000240 - 800223c: 460d mov r5, r1 - 800223e: e7f1 b.n 8002224 - 8002240: 3301 adds r3, #1 - 8002242: 60c3 str r3, [r0, #12] - 8002244: e7e9 b.n 800221a - 8002246: 2000 movs r0, #0 - 8002248: bd70 pop {r4, r5, r6, pc} - 800224a: bf00 nop - -0800224c : - 800224c: 68c3 ldr r3, [r0, #12] - 800224e: 781a ldrb r2, [r3, #0] - 8002250: 2a46 cmp r2, #70 ; 0x46 - 8002252: d118 bne.n 8002286 - 8002254: b510 push {r4, lr} - 8002256: 1c5a adds r2, r3, #1 - 8002258: 60c2 str r2, [r0, #12] - 800225a: 785a ldrb r2, [r3, #1] - 800225c: 2a59 cmp r2, #89 ; 0x59 - 800225e: bf04 itt eq - 8002260: 3302 addeq r3, #2 - 8002262: 60c3 streq r3, [r0, #12] - 8002264: 2101 movs r1, #1 - 8002266: 4604 mov r4, r0 - 8002268: f7ff ffd0 bl 800220c - 800226c: 4601 mov r1, r0 - 800226e: 4620 mov r0, r4 - 8002270: f7fe f82e bl 80002d0 - 8002274: 68e3 ldr r3, [r4, #12] - 8002276: 781a ldrb r2, [r3, #0] - 8002278: 2a45 cmp r2, #69 ; 0x45 - 800227a: d102 bne.n 8002282 - 800227c: 3301 adds r3, #1 - 800227e: 60e3 str r3, [r4, #12] - 8002280: bd10 pop {r4, pc} - 8002282: 2000 movs r0, #0 - 8002284: bd10 pop {r4, pc} - 8002286: 2000 movs r0, #0 - 8002288: 4770 bx lr - 800228a: bf00 nop - -0800228c : - 800228c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8002290: 68c1 ldr r1, [r0, #12] - 8002292: 780b ldrb r3, [r1, #0] - 8002294: f1a3 0230 sub.w r2, r3, #48 ; 0x30 - 8002298: 2a09 cmp r2, #9 - 800229a: 4604 mov r4, r0 - 800229c: d93c bls.n 8002318 - 800229e: f1a3 0261 sub.w r2, r3, #97 ; 0x61 - 80022a2: 2a19 cmp r2, #25 - 80022a4: d922 bls.n 80022ec - 80022a6: f1a3 0243 sub.w r2, r3, #67 ; 0x43 - 80022aa: 2a01 cmp r2, #1 - 80022ac: d969 bls.n 8002382 - 80022ae: 2b4c cmp r3, #76 ; 0x4c - 80022b0: d056 beq.n 8002360 - 80022b2: 2b55 cmp r3, #85 ; 0x55 - 80022b4: d15f bne.n 8002376 - 80022b6: 784b ldrb r3, [r1, #1] - 80022b8: 2b6c cmp r3, #108 ; 0x6c - 80022ba: f000 80e5 beq.w 8002488 - 80022be: 2b74 cmp r3, #116 ; 0x74 - 80022c0: d159 bne.n 8002376 - 80022c2: 1c4b adds r3, r1, #1 - 80022c4: 60c3 str r3, [r0, #12] - 80022c6: 784b ldrb r3, [r1, #1] - 80022c8: 2b74 cmp r3, #116 ; 0x74 - 80022ca: d158 bne.n 800237e - 80022cc: 3102 adds r1, #2 - 80022ce: 60c1 str r1, [r0, #12] - 80022d0: f7fe f8f4 bl 80004bc - 80022d4: 2800 cmp r0, #0 - 80022d6: f2c0 8155 blt.w 8002584 - 80022da: e9d4 3205 ldrd r3, r2, [r4, #20] - 80022de: 4293 cmp r3, r2 - 80022e0: 68e7 ldr r7, [r4, #12] - 80022e2: f2c0 80f3 blt.w 80024cc - 80022e6: 783b ldrb r3, [r7, #0] - 80022e8: 2500 movs r5, #0 - 80022ea: e010 b.n 800230e - 80022ec: 2b6f cmp r3, #111 ; 0x6f - 80022ee: d104 bne.n 80022fa - 80022f0: 784b ldrb r3, [r1, #1] - 80022f2: 2b6e cmp r3, #110 ; 0x6e - 80022f4: bf04 itt eq - 80022f6: 3102 addeq r1, #2 - 80022f8: 60c1 streq r1, [r0, #12] - 80022fa: 4620 mov r0, r4 - 80022fc: f7ff fe1a bl 8001f34 - 8002300: 4605 mov r5, r0 - 8002302: b110 cbz r0, 800230a - 8002304: 7803 ldrb r3, [r0, #0] - 8002306: 2b31 cmp r3, #49 ; 0x31 - 8002308: d013 beq.n 8002332 - 800230a: 68e3 ldr r3, [r4, #12] - 800230c: 781b ldrb r3, [r3, #0] - 800230e: 2b42 cmp r3, #66 ; 0x42 - 8002310: d009 beq.n 8002326 - 8002312: 4628 mov r0, r5 - 8002314: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8002318: f7fe f90c bl 8000534 - 800231c: 68e3 ldr r3, [r4, #12] - 800231e: 781b ldrb r3, [r3, #0] - 8002320: 2b42 cmp r3, #66 ; 0x42 - 8002322: 4605 mov r5, r0 - 8002324: d1f5 bne.n 8002312 - 8002326: 4629 mov r1, r5 - 8002328: 4620 mov r0, r4 - 800232a: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 800232e: f7fe b95b b.w 80005e8 - 8002332: 6882 ldr r2, [r0, #8] - 8002334: 6b23 ldr r3, [r4, #48] ; 0x30 - 8002336: 6896 ldr r6, [r2, #8] - 8002338: 6810 ldr r0, [r2, #0] - 800233a: 49a1 ldr r1, [pc, #644] ; (80025c0 ) - 800233c: 3307 adds r3, #7 - 800233e: 4433 add r3, r6 - 8002340: 6323 str r3, [r4, #48] ; 0x30 - 8002342: f004 fd3d bl 8006dc0 - 8002346: 2800 cmp r0, #0 - 8002348: d1df bne.n 800230a - 800234a: 4620 mov r0, r4 - 800234c: f7fe f8f2 bl 8000534 - 8002350: 462a mov r2, r5 - 8002352: 4603 mov r3, r0 - 8002354: 2136 movs r1, #54 ; 0x36 - 8002356: 4620 mov r0, r4 - 8002358: f7fd ff72 bl 8000240 - 800235c: 4605 mov r5, r0 - 800235e: e7d4 b.n 800230a - 8002360: 3101 adds r1, #1 - 8002362: 60c1 str r1, [r0, #12] - 8002364: f7fe f8e6 bl 8000534 - 8002368: 4605 mov r5, r0 - 800236a: b120 cbz r0, 8002376 - 800236c: 4620 mov r0, r4 - 800236e: f7fe fa0f bl 8000790 - 8002372: 2800 cmp r0, #0 - 8002374: d1c9 bne.n 800230a - 8002376: 2500 movs r5, #0 - 8002378: 4628 mov r0, r5 - 800237a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 800237e: 2500 movs r5, #0 - 8002380: e7c5 b.n 800230e - 8002382: 6ac2 ldr r2, [r0, #44] ; 0x2c - 8002384: b132 cbz r2, 8002394 - 8002386: 7810 ldrb r0, [r2, #0] - 8002388: b9e0 cbnz r0, 80023c4 - 800238a: 6b23 ldr r3, [r4, #48] ; 0x30 - 800238c: 68d0 ldr r0, [r2, #12] - 800238e: 4403 add r3, r0 - 8002390: 6323 str r3, [r4, #48] ; 0x30 - 8002392: 780b ldrb r3, [r1, #0] - 8002394: 2b43 cmp r3, #67 ; 0x43 - 8002396: d018 beq.n 80023ca - 8002398: 2b44 cmp r3, #68 ; 0x44 - 800239a: d1f0 bne.n 800237e - 800239c: 784b ldrb r3, [r1, #1] - 800239e: 3b30 subs r3, #48 ; 0x30 - 80023a0: 2b05 cmp r3, #5 - 80023a2: d8e8 bhi.n 8002376 - 80023a4: a001 add r0, pc, #4 ; (adr r0, 80023ac ) - 80023a6: f850 f023 ldr.w pc, [r0, r3, lsl #2] - 80023aa: bf00 nop - 80023ac: 0800241d .word 0x0800241d - 80023b0: 080023e7 .word 0x080023e7 - 80023b4: 0800242f .word 0x0800242f - 80023b8: 08002377 .word 0x08002377 - 80023bc: 08002429 .word 0x08002429 - 80023c0: 08002423 .word 0x08002423 - 80023c4: 2818 cmp r0, #24 - 80023c6: d1e5 bne.n 8002394 - 80023c8: e7df b.n 800238a - 80023ca: 784b ldrb r3, [r1, #1] - 80023cc: 2b49 cmp r3, #73 ; 0x49 - 80023ce: f000 80b0 beq.w 8002532 - 80023d2: 3b31 subs r3, #49 ; 0x31 - 80023d4: 2b04 cmp r3, #4 - 80023d6: d8ce bhi.n 8002376 - 80023d8: e8df f013 tbh [pc, r3, lsl #1] - 80023dc: 005100ed .word 0x005100ed - 80023e0: 0047004c .word 0x0047004c - 80023e4: 002c .short 0x002c - 80023e6: f04f 0c02 mov.w ip, #2 - 80023ea: e9d4 3005 ldrd r3, r0, [r4, #20] - 80023ee: 1c8d adds r5, r1, #2 - 80023f0: 4283 cmp r3, r0 - 80023f2: 60e5 str r5, [r4, #12] - 80023f4: f280 80d0 bge.w 8002598 - 80023f8: 6926 ldr r6, [r4, #16] - 80023fa: 0118 lsls r0, r3, #4 - 80023fc: 1835 adds r5, r6, r0 - 80023fe: 3301 adds r3, #1 - 8002400: 2700 movs r7, #0 - 8002402: 606f str r7, [r5, #4] - 8002404: 6163 str r3, [r4, #20] - 8002406: 2a00 cmp r2, #0 - 8002408: f000 80cf beq.w 80025aa - 800240c: 2308 movs r3, #8 - 800240e: 606f str r7, [r5, #4] - 8002410: 5433 strb r3, [r6, r0] - 8002412: f885 c008 strb.w ip, [r5, #8] - 8002416: 60ea str r2, [r5, #12] - 8002418: 788b ldrb r3, [r1, #2] - 800241a: e778 b.n 800230e - 800241c: f04f 0c01 mov.w ip, #1 - 8002420: e7e3 b.n 80023ea - 8002422: f04f 0c05 mov.w ip, #5 - 8002426: e7e0 b.n 80023ea - 8002428: f04f 0c04 mov.w ip, #4 - 800242c: e7dd b.n 80023ea - 800242e: f04f 0c03 mov.w ip, #3 - 8002432: e7da b.n 80023ea - 8002434: 3102 adds r1, #2 - 8002436: 60e1 str r1, [r4, #12] - 8002438: f04f 0805 mov.w r8, #5 - 800243c: e9d4 3005 ldrd r3, r0, [r4, #20] - 8002440: 4283 cmp r3, r0 - 8002442: f280 80ac bge.w 800259e - 8002446: 6926 ldr r6, [r4, #16] - 8002448: 0118 lsls r0, r3, #4 - 800244a: 1835 adds r5, r6, r0 - 800244c: 3301 adds r3, #1 - 800244e: 2700 movs r7, #0 - 8002450: 606f str r7, [r5, #4] - 8002452: 6163 str r3, [r4, #20] - 8002454: 2a00 cmp r2, #0 - 8002456: f000 80ab beq.w 80025b0 - 800245a: 2307 movs r3, #7 - 800245c: 606f str r7, [r5, #4] - 800245e: 5433 strb r3, [r6, r0] - 8002460: f885 8008 strb.w r8, [r5, #8] - 8002464: 60ea str r2, [r5, #12] - 8002466: 780b ldrb r3, [r1, #0] - 8002468: e751 b.n 800230e - 800246a: 3102 adds r1, #2 - 800246c: 60e1 str r1, [r4, #12] - 800246e: f04f 0804 mov.w r8, #4 - 8002472: e7e3 b.n 800243c - 8002474: 3102 adds r1, #2 - 8002476: 60e1 str r1, [r4, #12] - 8002478: f04f 0803 mov.w r8, #3 - 800247c: e7de b.n 800243c - 800247e: 3102 adds r1, #2 - 8002480: 60e1 str r1, [r4, #12] - 8002482: f04f 0802 mov.w r8, #2 - 8002486: e7d9 b.n 800243c - 8002488: 1c4b adds r3, r1, #1 - 800248a: 60c3 str r3, [r0, #12] - 800248c: 784b ldrb r3, [r1, #1] - 800248e: 2b6c cmp r3, #108 ; 0x6c - 8002490: f47f af75 bne.w 800237e - 8002494: 3102 adds r1, #2 - 8002496: 60c1 str r1, [r0, #12] - 8002498: f7ff fdc2 bl 8002020 - 800249c: 4606 mov r6, r0 - 800249e: 2800 cmp r0, #0 - 80024a0: d070 beq.n 8002584 - 80024a2: 68e2 ldr r2, [r4, #12] - 80024a4: 7813 ldrb r3, [r2, #0] - 80024a6: 2b45 cmp r3, #69 ; 0x45 - 80024a8: f47f af69 bne.w 800237e - 80024ac: 3201 adds r2, #1 - 80024ae: 60e2 str r2, [r4, #12] - 80024b0: 4620 mov r0, r4 - 80024b2: f7fe f803 bl 80004bc - 80024b6: f1b0 0e00 subs.w lr, r0, #0 - 80024ba: db63 blt.n 8002584 - 80024bc: e9d4 3205 ldrd r3, r2, [r4, #20] - 80024c0: 4293 cmp r3, r2 - 80024c2: 68e0 ldr r0, [r4, #12] - 80024c4: db1b blt.n 80024fe - 80024c6: 7803 ldrb r3, [r0, #0] - 80024c8: 2500 movs r5, #0 - 80024ca: e720 b.n 800230e - 80024cc: 6926 ldr r6, [r4, #16] - 80024ce: 6a22 ldr r2, [r4, #32] - 80024d0: f8d4 e024 ldr.w lr, [r4, #36] ; 0x24 - 80024d4: 0119 lsls r1, r3, #4 - 80024d6: 1875 adds r5, r6, r1 - 80024d8: 3301 adds r3, #1 - 80024da: f04f 0c00 mov.w ip, #0 - 80024de: f8c5 c004 str.w ip, [r5, #4] - 80024e2: 4572 cmp r2, lr - 80024e4: 6163 str r3, [r4, #20] - 80024e6: f04f 0347 mov.w r3, #71 ; 0x47 - 80024ea: 5473 strb r3, [r6, r1] - 80024ec: 60a8 str r0, [r5, #8] - 80024ee: da4d bge.n 800258c - 80024f0: 69e3 ldr r3, [r4, #28] - 80024f2: f843 5022 str.w r5, [r3, r2, lsl #2] - 80024f6: 3201 adds r2, #1 - 80024f8: 6222 str r2, [r4, #32] - 80024fa: 783b ldrb r3, [r7, #0] - 80024fc: e707 b.n 800230e - 80024fe: 6927 ldr r7, [r4, #16] - 8002500: 6a22 ldr r2, [r4, #32] - 8002502: f8d4 8024 ldr.w r8, [r4, #36] ; 0x24 - 8002506: 0119 lsls r1, r3, #4 - 8002508: 187d adds r5, r7, r1 - 800250a: 3301 adds r3, #1 - 800250c: f04f 0c00 mov.w ip, #0 - 8002510: f8c5 c004 str.w ip, [r5, #4] - 8002514: 4542 cmp r2, r8 - 8002516: 6163 str r3, [r4, #20] - 8002518: f04f 0345 mov.w r3, #69 ; 0x45 - 800251c: 547b strb r3, [r7, r1] - 800251e: e9c5 6e02 strd r6, lr, [r5, #8] - 8002522: da36 bge.n 8002592 - 8002524: 69e3 ldr r3, [r4, #28] - 8002526: f843 5022 str.w r5, [r3, r2, lsl #2] - 800252a: 3201 adds r2, #1 - 800252c: 6222 str r2, [r4, #32] - 800252e: 7803 ldrb r3, [r0, #0] - 8002530: e6ed b.n 800230e - 8002532: 1c4b adds r3, r1, #1 - 8002534: 60e3 str r3, [r4, #12] - 8002536: 788b ldrb r3, [r1, #2] - 8002538: 3b31 subs r3, #49 ; 0x31 - 800253a: 2b04 cmp r3, #4 - 800253c: d832 bhi.n 80025a4 - 800253e: e8df f003 tbb [pc, r3] - 8002542: 1c03 .short 0x1c03 - 8002544: 1217 .short 0x1217 - 8002546: 0d .byte 0x0d - 8002547: 00 .byte 0x00 - 8002548: 3103 adds r1, #3 - 800254a: 60e1 str r1, [r4, #12] - 800254c: f04f 0801 mov.w r8, #1 - 8002550: 4620 mov r0, r4 - 8002552: f7ff f8f5 bl 8001740 - 8002556: 6ae2 ldr r2, [r4, #44] ; 0x2c - 8002558: 68e1 ldr r1, [r4, #12] - 800255a: e76f b.n 800243c - 800255c: 3103 adds r1, #3 - 800255e: 60e1 str r1, [r4, #12] - 8002560: f04f 0805 mov.w r8, #5 - 8002564: e7f4 b.n 8002550 - 8002566: 3103 adds r1, #3 - 8002568: 60e1 str r1, [r4, #12] - 800256a: f04f 0804 mov.w r8, #4 - 800256e: e7ef b.n 8002550 - 8002570: 3103 adds r1, #3 - 8002572: 60e1 str r1, [r4, #12] - 8002574: f04f 0803 mov.w r8, #3 - 8002578: e7ea b.n 8002550 - 800257a: 3103 adds r1, #3 - 800257c: 60e1 str r1, [r4, #12] - 800257e: f04f 0802 mov.w r8, #2 - 8002582: e7e5 b.n 8002550 - 8002584: 68e3 ldr r3, [r4, #12] - 8002586: 2500 movs r5, #0 - 8002588: 781b ldrb r3, [r3, #0] - 800258a: e6c0 b.n 800230e - 800258c: 783b ldrb r3, [r7, #0] - 800258e: 4665 mov r5, ip - 8002590: e6bd b.n 800230e - 8002592: 7803 ldrb r3, [r0, #0] - 8002594: 4665 mov r5, ip - 8002596: e6ba b.n 800230e - 8002598: 788b ldrb r3, [r1, #2] - 800259a: 2500 movs r5, #0 - 800259c: e6b7 b.n 800230e - 800259e: 780b ldrb r3, [r1, #0] - 80025a0: 2500 movs r5, #0 - 80025a2: e6b4 b.n 800230e - 80025a4: 784b ldrb r3, [r1, #1] - 80025a6: 2500 movs r5, #0 - 80025a8: e6b1 b.n 800230e - 80025aa: 788b ldrb r3, [r1, #2] - 80025ac: 4615 mov r5, r2 - 80025ae: e6ae b.n 800230e - 80025b0: 780b ldrb r3, [r1, #0] - 80025b2: 4615 mov r5, r2 - 80025b4: e6ab b.n 800230e - 80025b6: 3102 adds r1, #2 - 80025b8: 60e1 str r1, [r4, #12] - 80025ba: f04f 0801 mov.w r8, #1 - 80025be: e73d b.n 800243c - 80025c0: 080125b8 .word 0x080125b8 - -080025c4 : - 80025c4: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80025c8: 68c3 ldr r3, [r0, #12] - 80025ca: 781a ldrb r2, [r3, #0] - 80025cc: 2a47 cmp r2, #71 ; 0x47 - 80025ce: 4604 mov r4, r0 - 80025d0: d019 beq.n 8002606 - 80025d2: 2a54 cmp r2, #84 ; 0x54 - 80025d4: d017 beq.n 8002606 - 80025d6: 460e mov r6, r1 - 80025d8: f7fe ff06 bl 80013e8 - 80025dc: 4605 mov r5, r0 - 80025de: 2800 cmp r0, #0 - 80025e0: d07d beq.n 80026de - 80025e2: 2e00 cmp r6, #0 - 80025e4: d057 beq.n 8002696 - 80025e6: 68a3 ldr r3, [r4, #8] - 80025e8: 07db lsls r3, r3, #31 - 80025ea: d454 bmi.n 8002696 - 80025ec: e000 b.n 80025f0 - 80025ee: 68ad ldr r5, [r5, #8] - 80025f0: 782b ldrb r3, [r5, #0] - 80025f2: f1a3 021c sub.w r2, r3, #28 - 80025f6: 2a04 cmp r2, #4 - 80025f8: d9f9 bls.n 80025ee - 80025fa: 2b02 cmp r3, #2 - 80025fc: f000 8186 beq.w 800290c - 8002600: 4628 mov r0, r5 - 8002602: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8002606: 6b21 ldr r1, [r4, #48] ; 0x30 - 8002608: f101 0214 add.w r2, r1, #20 - 800260c: 6322 str r2, [r4, #48] ; 0x30 - 800260e: 781a ldrb r2, [r3, #0] - 8002610: 2a54 cmp r2, #84 ; 0x54 - 8002612: d068 beq.n 80026e6 - 8002614: 2a47 cmp r2, #71 ; 0x47 - 8002616: d162 bne.n 80026de - 8002618: 1c5a adds r2, r3, #1 - 800261a: 60e2 str r2, [r4, #12] - 800261c: 785a ldrb r2, [r3, #1] - 800261e: 2a00 cmp r2, #0 - 8002620: d05d beq.n 80026de - 8002622: 1c9a adds r2, r3, #2 - 8002624: 60e2 str r2, [r4, #12] - 8002626: 785a ldrb r2, [r3, #1] - 8002628: 3a41 subs r2, #65 ; 0x41 - 800262a: 2a31 cmp r2, #49 ; 0x31 - 800262c: d857 bhi.n 80026de - 800262e: e8df f012 tbh [pc, r2, lsl #1] - 8002632: 013e .short 0x013e - 8002634: 00560056 .word 0x00560056 - 8002638: 00560056 .word 0x00560056 - 800263c: 00560056 .word 0x00560056 - 8002640: 00560056 .word 0x00560056 - 8002644: 00560056 .word 0x00560056 - 8002648: 00560056 .word 0x00560056 - 800264c: 00560056 .word 0x00560056 - 8002650: 00560056 .word 0x00560056 - 8002654: 0056014a .word 0x0056014a - 8002658: 00560159 .word 0x00560159 - 800265c: 005600e0 .word 0x005600e0 - 8002660: 00560056 .word 0x00560056 - 8002664: 00560056 .word 0x00560056 - 8002668: 00560056 .word 0x00560056 - 800266c: 00560056 .word 0x00560056 - 8002670: 00560056 .word 0x00560056 - 8002674: 00560056 .word 0x00560056 - 8002678: 00560056 .word 0x00560056 - 800267c: 00560056 .word 0x00560056 - 8002680: 00560056 .word 0x00560056 - 8002684: 00560056 .word 0x00560056 - 8002688: 00560056 .word 0x00560056 - 800268c: 00560056 .word 0x00560056 - 8002690: 00560056 .word 0x00560056 - 8002694: 00eb .short 0x00eb - 8002696: 68e3 ldr r3, [r4, #12] - 8002698: 781b ldrb r3, [r3, #0] - 800269a: 2b00 cmp r3, #0 - 800269c: d0b0 beq.n 8002600 - 800269e: 2b45 cmp r3, #69 ; 0x45 - 80026a0: d0ae beq.n 8002600 - 80026a2: 4629 mov r1, r5 - 80026a4: 780b ldrb r3, [r1, #0] - 80026a6: 2b20 cmp r3, #32 - 80026a8: f200 8218 bhi.w 8002adc - 80026ac: 2b1c cmp r3, #28 - 80026ae: f080 821e bcs.w 8002aee - 80026b2: 2b04 cmp r3, #4 - 80026b4: f040 8091 bne.w 80027da - 80026b8: 688a ldr r2, [r1, #8] - 80026ba: b16a cbz r2, 80026d8 - 80026bc: 7813 ldrb r3, [r2, #0] - 80026be: 2b08 cmp r3, #8 - 80026c0: f103 31ff add.w r1, r3, #4294967295 ; 0xffffffff - 80026c4: f200 8086 bhi.w 80027d4 - 80026c8: 2b07 cmp r3, #7 - 80026ca: f080 8086 bcs.w 80027da - 80026ce: 2901 cmp r1, #1 - 80026d0: d802 bhi.n 80026d8 - 80026d2: 68d2 ldr r2, [r2, #12] - 80026d4: 2a00 cmp r2, #0 - 80026d6: d1f1 bne.n 80026bc - 80026d8: 2101 movs r1, #1 - 80026da: e07f b.n 80027dc - 80026dc: 60e7 str r7, [r4, #12] - 80026de: 2500 movs r5, #0 - 80026e0: 4628 mov r0, r5 - 80026e2: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 80026e6: 1c5a adds r2, r3, #1 - 80026e8: 60e2 str r2, [r4, #12] - 80026ea: 785a ldrb r2, [r3, #1] - 80026ec: 2a00 cmp r2, #0 - 80026ee: d0f6 beq.n 80026de - 80026f0: 1c9a adds r2, r3, #2 - 80026f2: 60e2 str r2, [r4, #12] - 80026f4: 785b ldrb r3, [r3, #1] - 80026f6: 3b43 subs r3, #67 ; 0x43 - 80026f8: 2b33 cmp r3, #51 ; 0x33 - 80026fa: d8f0 bhi.n 80026de - 80026fc: a201 add r2, pc, #4 ; (adr r2, 8002704 ) - 80026fe: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8002702: bf00 nop - 8002704: 08002a59 .word 0x08002a59 - 8002708: 080026df .word 0x080026df - 800270c: 080026df .word 0x080026df - 8002710: 08002a43 .word 0x08002a43 - 8002714: 080026df .word 0x080026df - 8002718: 08002a2d .word 0x08002a2d - 800271c: 08002a17 .word 0x08002a17 - 8002720: 08002a01 .word 0x08002a01 - 8002724: 080026df .word 0x080026df - 8002728: 080026df .word 0x080026df - 800272c: 080026df .word 0x080026df - 8002730: 080026df .word 0x080026df - 8002734: 080026df .word 0x080026df - 8002738: 080026df .word 0x080026df - 800273c: 080026df .word 0x080026df - 8002740: 080026df .word 0x080026df - 8002744: 080029eb .word 0x080029eb - 8002748: 080029d1 .word 0x080029d1 - 800274c: 080026df .word 0x080026df - 8002750: 080029b7 .word 0x080029b7 - 8002754: 080029a1 .word 0x080029a1 - 8002758: 080026df .word 0x080026df - 800275c: 080026df .word 0x080026df - 8002760: 080026df .word 0x080026df - 8002764: 080026df .word 0x080026df - 8002768: 080026df .word 0x080026df - 800276c: 080026df .word 0x080026df - 8002770: 080026df .word 0x080026df - 8002774: 080026df .word 0x080026df - 8002778: 080026df .word 0x080026df - 800277c: 080026df .word 0x080026df - 8002780: 080026df .word 0x080026df - 8002784: 0800296d .word 0x0800296d - 8002788: 080026df .word 0x080026df - 800278c: 080026df .word 0x080026df - 8002790: 080026df .word 0x080026df - 8002794: 080026df .word 0x080026df - 8002798: 08002947 .word 0x08002947 - 800279c: 080026df .word 0x080026df - 80027a0: 080026df .word 0x080026df - 80027a4: 080026df .word 0x080026df - 80027a8: 080026df .word 0x080026df - 80027ac: 080026df .word 0x080026df - 80027b0: 080026df .word 0x080026df - 80027b4: 080026df .word 0x080026df - 80027b8: 080026df .word 0x080026df - 80027bc: 080026df .word 0x080026df - 80027c0: 080026df .word 0x080026df - 80027c4: 080026df .word 0x080026df - 80027c8: 080026df .word 0x080026df - 80027cc: 080026df .word 0x080026df - 80027d0: 08002921 .word 0x08002921 - 80027d4: 2b34 cmp r3, #52 ; 0x34 - 80027d6: f47f af7f bne.w 80026d8 - 80027da: 2100 movs r1, #0 - 80027dc: 4620 mov r0, r4 - 80027de: f7ff fd15 bl 800220c - 80027e2: 462a mov r2, r5 - 80027e4: 4603 mov r3, r0 - 80027e6: 2103 movs r1, #3 - 80027e8: 4620 mov r0, r4 - 80027ea: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80027ee: f7fd bd27 b.w 8000240 - 80027f2: 4620 mov r0, r4 - 80027f4: f7fe fdf8 bl 80013e8 - 80027f8: 2300 movs r3, #0 - 80027fa: 4602 mov r2, r0 - 80027fc: 2113 movs r1, #19 - 80027fe: 4620 mov r0, r4 - 8002800: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8002804: f7fd bd1c b.w 8000240 - 8002808: f104 000c add.w r0, r4, #12 - 800280c: f7fd fe12 bl 8000434 - 8002810: 2801 cmp r0, #1 - 8002812: f77f af64 ble.w 80026de - 8002816: 68e3 ldr r3, [r4, #12] - 8002818: 781a ldrb r2, [r3, #0] - 800281a: 2a00 cmp r2, #0 - 800281c: f43f af5f beq.w 80026de - 8002820: 1c5f adds r7, r3, #1 - 8002822: 60e7 str r7, [r4, #12] - 8002824: 781b ldrb r3, [r3, #0] - 8002826: 2b5f cmp r3, #95 ; 0x5f - 8002828: f47f af59 bne.w 80026de - 800282c: 2200 movs r2, #0 - 800282e: 1e45 subs r5, r0, #1 - 8002830: 4690 mov r8, r2 - 8002832: f04f 0940 mov.w r9, #64 ; 0x40 - 8002836: 783b ldrb r3, [r7, #0] - 8002838: 2b00 cmp r3, #0 - 800283a: f43f af50 beq.w 80026de - 800283e: 2b24 cmp r3, #36 ; 0x24 - 8002840: f040 812a bne.w 8002a98 - 8002844: 787b ldrb r3, [r7, #1] - 8002846: 2b53 cmp r3, #83 ; 0x53 - 8002848: f000 8156 beq.w 8002af8 - 800284c: 2b5f cmp r3, #95 ; 0x5f - 800284e: f000 8155 beq.w 8002afc - 8002852: 2b24 cmp r3, #36 ; 0x24 - 8002854: f47f af43 bne.w 80026de - 8002858: 4619 mov r1, r3 - 800285a: e9d4 0305 ldrd r0, r3, [r4, #20] - 800285e: 68e7 ldr r7, [r4, #12] - 8002860: 4298 cmp r0, r3 - 8002862: f107 0702 add.w r7, r7, #2 - 8002866: f6bf af39 bge.w 80026dc - 800286a: f8d4 c010 ldr.w ip, [r4, #16] - 800286e: 0106 lsls r6, r0, #4 - 8002870: eb0c 0306 add.w r3, ip, r6 - 8002874: 3001 adds r0, #1 - 8002876: f8c3 8004 str.w r8, [r3, #4] - 800287a: 3d02 subs r5, #2 - 800287c: 6160 str r0, [r4, #20] - 800287e: f80c 9006 strb.w r9, [ip, r6] - 8002882: 6099 str r1, [r3, #8] - 8002884: 60e7 str r7, [r4, #12] - 8002886: 2a00 cmp r2, #0 - 8002888: f000 8126 beq.w 8002ad8 - 800288c: 213f movs r1, #63 ; 0x3f - 800288e: 4620 mov r0, r4 - 8002890: f7fd fcd6 bl 8000240 - 8002894: 4602 mov r2, r0 - 8002896: 2800 cmp r0, #0 - 8002898: f43f af21 beq.w 80026de - 800289c: 2d00 cmp r5, #0 - 800289e: dcca bgt.n 8002836 - 80028a0: 4620 mov r0, r4 - 80028a2: 2300 movs r3, #0 - 80028a4: 213e movs r1, #62 ; 0x3e - 80028a6: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80028aa: f7fd bcc9 b.w 8000240 - 80028ae: 2100 movs r1, #0 - 80028b0: 4620 mov r0, r4 - 80028b2: f7ff fe87 bl 80025c4 - 80028b6: 2300 movs r3, #0 - 80028b8: 4602 mov r2, r0 - 80028ba: 2117 movs r1, #23 - 80028bc: 4620 mov r0, r4 - 80028be: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80028c2: f7fd bcbd b.w 8000240 - 80028c6: 4620 mov r0, r4 - 80028c8: f7fe fd8e bl 80013e8 - 80028cc: 4605 mov r5, r0 - 80028ce: 4620 mov r0, r4 - 80028d0: f7fd fddc bl 800048c - 80028d4: 462a mov r2, r5 - 80028d6: 4603 mov r3, r0 - 80028d8: 2116 movs r1, #22 - 80028da: 4620 mov r0, r4 - 80028dc: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80028e0: f7fd bcae b.w 8000240 - 80028e4: 789a ldrb r2, [r3, #2] - 80028e6: 2100 movs r1, #0 - 80028e8: 4620 mov r0, r4 - 80028ea: b12a cbz r2, 80028f8 - 80028ec: 1cda adds r2, r3, #3 - 80028ee: 60e2 str r2, [r4, #12] - 80028f0: 789b ldrb r3, [r3, #2] - 80028f2: 2b6e cmp r3, #110 ; 0x6e - 80028f4: f000 8109 beq.w 8002b0a - 80028f8: f7ff fe64 bl 80025c4 - 80028fc: 2300 movs r3, #0 - 80028fe: 4602 mov r2, r0 - 8002900: 2148 movs r1, #72 ; 0x48 - 8002902: 4620 mov r0, r4 - 8002904: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8002908: f7fd bc9a b.w 8000240 - 800290c: 68ea ldr r2, [r5, #12] - 800290e: e000 b.n 8002912 - 8002910: 6892 ldr r2, [r2, #8] - 8002912: 7810 ldrb r0, [r2, #0] - 8002914: f7fd fd80 bl 8000418 - 8002918: 2800 cmp r0, #0 - 800291a: d1f9 bne.n 8002910 - 800291c: 60ea str r2, [r5, #12] - 800291e: e66f b.n 8002600 - 8002920: 2176 movs r1, #118 ; 0x76 - 8002922: 4620 mov r0, r4 - 8002924: f7fe f80a bl 800093c - 8002928: 2800 cmp r0, #0 - 800292a: f43f aed8 beq.w 80026de - 800292e: 2100 movs r1, #0 - 8002930: 4620 mov r0, r4 - 8002932: f7ff fe47 bl 80025c4 - 8002936: 2300 movs r3, #0 - 8002938: 4602 mov r2, r0 - 800293a: 2110 movs r1, #16 - 800293c: 4620 mov r0, r4 - 800293e: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8002942: f7fd bc7d b.w 8000240 - 8002946: 2168 movs r1, #104 ; 0x68 - 8002948: 4620 mov r0, r4 - 800294a: f7fd fff7 bl 800093c - 800294e: 2800 cmp r0, #0 - 8002950: f43f aec5 beq.w 80026de - 8002954: 2100 movs r1, #0 - 8002956: 4620 mov r0, r4 - 8002958: f7ff fe34 bl 80025c4 - 800295c: 2300 movs r3, #0 - 800295e: 4602 mov r2, r0 - 8002960: 210f movs r1, #15 - 8002962: 4620 mov r0, r4 - 8002964: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8002968: f7fd bc6a b.w 8000240 - 800296c: 2100 movs r1, #0 - 800296e: 4620 mov r0, r4 - 8002970: f7fd ffe4 bl 800093c - 8002974: 2800 cmp r0, #0 - 8002976: f43f aeb2 beq.w 80026de - 800297a: 2100 movs r1, #0 - 800297c: 4620 mov r0, r4 - 800297e: f7fd ffdd bl 800093c - 8002982: 2800 cmp r0, #0 - 8002984: f43f aeab beq.w 80026de - 8002988: 2100 movs r1, #0 - 800298a: 4620 mov r0, r4 - 800298c: f7ff fe1a bl 80025c4 - 8002990: 2300 movs r3, #0 - 8002992: 4602 mov r2, r0 - 8002994: 2111 movs r1, #17 - 8002996: 4620 mov r0, r4 - 8002998: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 800299c: f7fd bc50 b.w 8000240 - 80029a0: 4620 mov r0, r4 - 80029a2: f7fe fd21 bl 80013e8 - 80029a6: 2300 movs r3, #0 - 80029a8: 4602 mov r2, r0 - 80029aa: 2115 movs r1, #21 - 80029ac: 4620 mov r0, r4 - 80029ae: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80029b2: f7fd bc45 b.w 8000240 - 80029b6: 310f adds r1, #15 - 80029b8: 6321 str r1, [r4, #48] ; 0x30 - 80029ba: 4620 mov r0, r4 - 80029bc: f7fe fec0 bl 8001740 - 80029c0: 2300 movs r3, #0 - 80029c2: 4602 mov r2, r0 - 80029c4: 2109 movs r1, #9 - 80029c6: 4620 mov r0, r4 - 80029c8: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80029cc: f7fd bc38 b.w 8000240 - 80029d0: 310a adds r1, #10 - 80029d2: 6321 str r1, [r4, #48] ; 0x30 - 80029d4: 4620 mov r0, r4 - 80029d6: f7fe feb3 bl 8001740 - 80029da: 2300 movs r3, #0 - 80029dc: 4602 mov r2, r0 - 80029de: 210a movs r1, #10 - 80029e0: 4620 mov r0, r4 - 80029e2: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80029e6: f7fd bc2b b.w 8000240 - 80029ea: 4620 mov r0, r4 - 80029ec: f7fe fea8 bl 8001740 - 80029f0: 2300 movs r3, #0 - 80029f2: 4602 mov r2, r0 - 80029f4: 210d movs r1, #13 - 80029f6: 4620 mov r0, r4 - 80029f8: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80029fc: f7fd bc20 b.w 8000240 - 8002a00: 4620 mov r0, r4 - 8002a02: f7fe fe9d bl 8001740 - 8002a06: 2300 movs r3, #0 - 8002a08: 4602 mov r2, r0 - 8002a0a: 2112 movs r1, #18 - 8002a0c: 4620 mov r0, r4 - 8002a0e: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8002a12: f7fd bc15 b.w 8000240 - 8002a16: 4620 mov r0, r4 - 8002a18: f7fe fe92 bl 8001740 - 8002a1c: 2300 movs r3, #0 - 8002a1e: 4602 mov r2, r0 - 8002a20: 210c movs r1, #12 - 8002a22: 4620 mov r0, r4 - 8002a24: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8002a28: f7fd bc0a b.w 8000240 - 8002a2c: 4620 mov r0, r4 - 8002a2e: f7fe fcdb bl 80013e8 - 8002a32: 2300 movs r3, #0 - 8002a34: 4602 mov r2, r0 - 8002a36: 2114 movs r1, #20 - 8002a38: 4620 mov r0, r4 - 8002a3a: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8002a3e: f7fd bbff b.w 8000240 - 8002a42: 4620 mov r0, r4 - 8002a44: f7fe fe7c bl 8001740 - 8002a48: 2300 movs r3, #0 - 8002a4a: 4602 mov r2, r0 - 8002a4c: 210e movs r1, #14 - 8002a4e: 4620 mov r0, r4 - 8002a50: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8002a54: f7fd bbf4 b.w 8000240 - 8002a58: 4620 mov r0, r4 - 8002a5a: f7fe fe71 bl 8001740 - 8002a5e: 4605 mov r5, r0 - 8002a60: f104 000c add.w r0, r4, #12 - 8002a64: f7fd fce6 bl 8000434 - 8002a68: 2800 cmp r0, #0 - 8002a6a: f6ff ae38 blt.w 80026de - 8002a6e: 68e3 ldr r3, [r4, #12] - 8002a70: 781a ldrb r2, [r3, #0] - 8002a72: 2a5f cmp r2, #95 ; 0x5f - 8002a74: f47f ae33 bne.w 80026de - 8002a78: 3301 adds r3, #1 - 8002a7a: 60e3 str r3, [r4, #12] - 8002a7c: 4620 mov r0, r4 - 8002a7e: f7fe fe5f bl 8001740 - 8002a82: 6b23 ldr r3, [r4, #48] ; 0x30 - 8002a84: 1d59 adds r1, r3, #5 - 8002a86: 6321 str r1, [r4, #48] ; 0x30 - 8002a88: 4602 mov r2, r0 - 8002a8a: 462b mov r3, r5 - 8002a8c: 4620 mov r0, r4 - 8002a8e: 210b movs r1, #11 - 8002a90: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8002a94: f7fd bbd4 b.w 8000240 - 8002a98: 463e mov r6, r7 - 8002a9a: 2100 movs r1, #0 - 8002a9c: e004 b.n 8002aa8 - 8002a9e: f816 3f01 ldrb.w r3, [r6, #1]! - 8002aa2: b123 cbz r3, 8002aae - 8002aa4: 2b24 cmp r3, #36 ; 0x24 - 8002aa6: d002 beq.n 8002aae - 8002aa8: 3101 adds r1, #1 - 8002aaa: 42a9 cmp r1, r5 - 8002aac: dbf7 blt.n 8002a9e - 8002aae: e9d4 3005 ldrd r3, r0, [r4, #20] - 8002ab2: 4283 cmp r3, r0 - 8002ab4: da24 bge.n 8002b00 - 8002ab6: e9d4 c603 ldrd ip, r6, [r4, #12] - 8002aba: 0118 lsls r0, r3, #4 - 8002abc: 3301 adds r3, #1 - 8002abe: 6163 str r3, [r4, #20] - 8002ac0: 1833 adds r3, r6, r0 - 8002ac2: 1a6d subs r5, r5, r1 - 8002ac4: f8c3 8004 str.w r8, [r3, #4] - 8002ac8: f806 8000 strb.w r8, [r6, r0] - 8002acc: 609f str r7, [r3, #8] - 8002ace: eb0c 0701 add.w r7, ip, r1 - 8002ad2: 60d9 str r1, [r3, #12] - 8002ad4: 60e7 str r7, [r4, #12] - 8002ad6: e6d6 b.n 8002886 - 8002ad8: 461a mov r2, r3 - 8002ada: e6df b.n 800289c - 8002adc: 2b4c cmp r3, #76 ; 0x4c - 8002ade: f1a3 024e sub.w r2, r3, #78 ; 0x4e - 8002ae2: d004 beq.n 8002aee - 8002ae4: f4ff ae79 bcc.w 80027da - 8002ae8: 2a01 cmp r2, #1 - 8002aea: f63f ae76 bhi.w 80027da - 8002aee: 6889 ldr r1, [r1, #8] - 8002af0: 2900 cmp r1, #0 - 8002af2: f47f add7 bne.w 80026a4 - 8002af6: e671 b.n 80027dc - 8002af8: 212f movs r1, #47 ; 0x2f - 8002afa: e6ae b.n 800285a - 8002afc: 212e movs r1, #46 ; 0x2e - 8002afe: e6ac b.n 800285a - 8002b00: 68e3 ldr r3, [r4, #12] - 8002b02: 440b add r3, r1 - 8002b04: 60e3 str r3, [r4, #12] - 8002b06: 2500 movs r5, #0 - 8002b08: e57a b.n 8002600 - 8002b0a: f7ff fd5b bl 80025c4 - 8002b0e: 2300 movs r3, #0 - 8002b10: 4602 mov r2, r0 - 8002b12: 2149 movs r1, #73 ; 0x49 - 8002b14: 4620 mov r0, r4 - 8002b16: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8002b1a: f7fd bb91 b.w 8000240 - 8002b1e: bf00 nop - -08002b20 : - 8002b20: b5f8 push {r3, r4, r5, r6, r7, lr} - 8002b22: 68c2 ldr r2, [r0, #12] - 8002b24: 7813 ldrb r3, [r2, #0] - 8002b26: 2b4c cmp r3, #76 ; 0x4c - 8002b28: d144 bne.n 8002bb4 - 8002b2a: 1c53 adds r3, r2, #1 - 8002b2c: 60c3 str r3, [r0, #12] - 8002b2e: 7851 ldrb r1, [r2, #1] - 8002b30: 295f cmp r1, #95 ; 0x5f - 8002b32: 4604 mov r4, r0 - 8002b34: d040 beq.n 8002bb8 - 8002b36: 295a cmp r1, #90 ; 0x5a - 8002b38: d10c bne.n 8002b54 - 8002b3a: 3301 adds r3, #1 - 8002b3c: 60e3 str r3, [r4, #12] - 8002b3e: 2100 movs r1, #0 - 8002b40: 4620 mov r0, r4 - 8002b42: f7ff fd3f bl 80025c4 - 8002b46: 68e3 ldr r3, [r4, #12] - 8002b48: 781a ldrb r2, [r3, #0] - 8002b4a: 2a45 cmp r2, #69 ; 0x45 - 8002b4c: d132 bne.n 8002bb4 - 8002b4e: 3301 adds r3, #1 - 8002b50: 60e3 str r3, [r4, #12] - 8002b52: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8002b54: f7fe fdf4 bl 8001740 - 8002b58: b360 cbz r0, 8002bb4 - 8002b5a: 7803 ldrb r3, [r0, #0] - 8002b5c: 2b27 cmp r3, #39 ; 0x27 - 8002b5e: d032 beq.n 8002bc6 - 8002b60: 68e6 ldr r6, [r4, #12] - 8002b62: 7833 ldrb r3, [r6, #0] - 8002b64: 2b6e cmp r3, #110 ; 0x6e - 8002b66: d037 beq.n 8002bd8 - 8002b68: 213c movs r1, #60 ; 0x3c - 8002b6a: 2b45 cmp r3, #69 ; 0x45 - 8002b6c: d040 beq.n 8002bf0 - 8002b6e: b30b cbz r3, 8002bb4 - 8002b70: 4633 mov r3, r6 - 8002b72: e000 b.n 8002b76 - 8002b74: b1f5 cbz r5, 8002bb4 - 8002b76: 3301 adds r3, #1 - 8002b78: 60e3 str r3, [r4, #12] - 8002b7a: 781d ldrb r5, [r3, #0] - 8002b7c: 2d45 cmp r5, #69 ; 0x45 - 8002b7e: d1f9 bne.n 8002b74 - 8002b80: 1b9d subs r5, r3, r6 - 8002b82: e9d4 2305 ldrd r2, r3, [r4, #20] - 8002b86: 429a cmp r2, r3 - 8002b88: da0b bge.n 8002ba2 - 8002b8a: f8d4 e010 ldr.w lr, [r4, #16] - 8002b8e: ea4f 1c02 mov.w ip, r2, lsl #4 - 8002b92: eb0e 030c add.w r3, lr, ip - 8002b96: 3201 adds r2, #1 - 8002b98: 2700 movs r7, #0 - 8002b9a: 605f str r7, [r3, #4] - 8002b9c: 6162 str r2, [r4, #20] - 8002b9e: b106 cbz r6, 8002ba2 - 8002ba0: bb05 cbnz r5, 8002be4 - 8002ba2: 2300 movs r3, #0 - 8002ba4: 4602 mov r2, r0 - 8002ba6: 4620 mov r0, r4 - 8002ba8: f7fd fb4a bl 8000240 - 8002bac: 68e3 ldr r3, [r4, #12] - 8002bae: 781a ldrb r2, [r3, #0] - 8002bb0: 2a45 cmp r2, #69 ; 0x45 - 8002bb2: d0cc beq.n 8002b4e - 8002bb4: 2000 movs r0, #0 - 8002bb6: bdf8 pop {r3, r4, r5, r6, r7, pc} - 8002bb8: 1c93 adds r3, r2, #2 - 8002bba: 60c3 str r3, [r0, #12] - 8002bbc: 7892 ldrb r2, [r2, #2] - 8002bbe: 2a5a cmp r2, #90 ; 0x5a - 8002bc0: d0bb beq.n 8002b3a - 8002bc2: 2000 movs r0, #0 - 8002bc4: e7c1 b.n 8002b4a - 8002bc6: 6883 ldr r3, [r0, #8] - 8002bc8: 7c1a ldrb r2, [r3, #16] - 8002bca: 2a00 cmp r2, #0 - 8002bcc: d0c8 beq.n 8002b60 - 8002bce: 685a ldr r2, [r3, #4] - 8002bd0: 6b23 ldr r3, [r4, #48] ; 0x30 - 8002bd2: 1a9b subs r3, r3, r2 - 8002bd4: 6323 str r3, [r4, #48] ; 0x30 - 8002bd6: e7c3 b.n 8002b60 - 8002bd8: 1c72 adds r2, r6, #1 - 8002bda: 60e2 str r2, [r4, #12] - 8002bdc: 7873 ldrb r3, [r6, #1] - 8002bde: 213d movs r1, #61 ; 0x3d - 8002be0: 4616 mov r6, r2 - 8002be2: e7c2 b.n 8002b6a - 8002be4: 605f str r7, [r3, #4] - 8002be6: f80e 700c strb.w r7, [lr, ip] - 8002bea: e9c3 6502 strd r6, r5, [r3, #8] - 8002bee: e7d9 b.n 8002ba4 - 8002bf0: 2500 movs r5, #0 - 8002bf2: e7c6 b.n 8002b82 - -08002bf4 : - 8002bf4: b112 cbz r2, 8002bfc - 8002bf6: 6853 ldr r3, [r2, #4] - 8002bf8: 2b01 cmp r3, #1 - 8002bfa: dd03 ble.n 8002c04 - 8002bfc: 2301 movs r3, #1 - 8002bfe: f8c0 3118 str.w r3, [r0, #280] ; 0x118 - 8002c02: 4770 bx lr - 8002c04: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8002c08: 4615 mov r5, r2 - 8002c0a: 1c5a adds r2, r3, #1 - 8002c0c: 606a str r2, [r5, #4] - 8002c0e: b099 sub sp, #100 ; 0x64 - 8002c10: f8d0 7118 ldr.w r7, [r0, #280] ; 0x118 - 8002c14: 9504 str r5, [sp, #16] - 8002c16: 460e mov r6, r1 - 8002c18: ab04 add r3, sp, #16 - 8002c1a: f8d0 1128 ldr.w r1, [r0, #296] ; 0x128 - 8002c1e: 9105 str r1, [sp, #20] - 8002c20: 4604 mov r4, r0 - 8002c22: f8c0 3128 str.w r3, [r0, #296] ; 0x128 - 8002c26: 2f00 cmp r7, #0 - 8002c28: f040 80d7 bne.w 8002dda - 8002c2c: 7828 ldrb r0, [r5, #0] - 8002c2e: 284f cmp r0, #79 ; 0x4f - 8002c30: f201 82ef bhi.w 8004212 - 8002c34: e8df f010 tbh [pc, r0, lsl #1] - 8002c38: 0ab80a87 .word 0x0ab80a87 - 8002c3c: 0a4f0ab8 .word 0x0a4f0ab8 - 8002c40: 079407c6 .word 0x079407c6 - 8002c44: 075e0767 .word 0x075e0767 - 8002c48: 070f0737 .word 0x070f0737 - 8002c4c: 06bf06e7 .word 0x06bf06e7 - 8002c50: 066f0697 .word 0x066f0697 - 8002c54: 061f0647 .word 0x061f0647 - 8002c58: 091f0947 .word 0x091f0947 - 8002c5c: 08cf08f7 .word 0x08cf08f7 - 8002c60: 087f08a7 .word 0x087f08a7 - 8002c64: 082f0857 .word 0x082f0857 - 8002c68: 09bf09d6 .word 0x09bf09d6 - 8002c6c: 09bf09bf .word 0x09bf09bf - 8002c70: 09990999 .word 0x09990999 - 8002c74: 09990999 .word 0x09990999 - 8002c78: 09990999 .word 0x09990999 - 8002c7c: 096f0999 .word 0x096f0999 - 8002c80: 0999096f .word 0x0999096f - 8002c84: 0a1d0999 .word 0x0a1d0999 - 8002c88: 06060a14 .word 0x06060a14 - 8002c8c: 05720592 .word 0x05720592 - 8002c90: 0572051b .word 0x0572051b - 8002c94: 04d304d3 .word 0x04d304d3 - 8002c98: 045c0488 .word 0x045c0488 - 8002c9c: 0aed0434 .word 0x0aed0434 - 8002ca0: 0404040c .word 0x0404040c - 8002ca4: 039c03b0 .word 0x039c03b0 - 8002ca8: 038d0397 .word 0x038d0397 - 8002cac: 03880388 .word 0x03880388 - 8002cb0: 03330333 .word 0x03330333 - 8002cb4: 02fe030b .word 0x02fe030b - 8002cb8: 02aa02dc .word 0x02aa02dc - 8002cbc: 025a0282 .word 0x025a0282 - 8002cc0: 01f80232 .word 0x01f80232 - 8002cc4: 01d00aed .word 0x01d00aed - 8002cc8: 015301a8 .word 0x015301a8 - 8002ccc: 017b0105 .word 0x017b0105 - 8002cd0: 00d80999 .word 0x00d80999 - 8002cd4: 09990999 .word 0x09990999 - 8002cd8: 68aa ldr r2, [r5, #8] - 8002cda: 6893 ldr r3, [r2, #8] - 8002cdc: 681b ldr r3, [r3, #0] - 8002cde: 7859 ldrb r1, [r3, #1] - 8002ce0: 2963 cmp r1, #99 ; 0x63 - 8002ce2: d109 bne.n 8002cf8 - 8002ce4: 781b ldrb r3, [r3, #0] - 8002ce6: f1a3 0163 sub.w r1, r3, #99 ; 0x63 - 8002cea: 2901 cmp r1, #1 - 8002cec: f242 8319 bls.w 8005322 - 8002cf0: 3b72 subs r3, #114 ; 0x72 - 8002cf2: 2b01 cmp r3, #1 - 8002cf4: f242 8315 bls.w 8005322 - 8002cf8: f105 030c add.w r3, r5, #12 - 8002cfc: 4631 mov r1, r6 - 8002cfe: 4620 mov r0, r4 - 8002d00: f003 fcd2 bl 80066a8 - 8002d04: 4680 mov r8, r0 - 8002d06: 2800 cmp r0, #0 - 8002d08: f042 8400 bne.w 800550c - 8002d0c: 68ab ldr r3, [r5, #8] - 8002d0e: 781a ldrb r2, [r3, #0] - 8002d10: 2a31 cmp r2, #49 ; 0x31 - 8002d12: f002 8592 beq.w 800583a - 8002d16: 689b ldr r3, [r3, #8] - 8002d18: 49d7 ldr r1, [pc, #860] ; (8003078 ) - 8002d1a: 6818 ldr r0, [r3, #0] - 8002d1c: f004 f850 bl 8006dc0 - 8002d20: 68eb ldr r3, [r5, #12] - 8002d22: 689a ldr r2, [r3, #8] - 8002d24: b918 cbnz r0, 8002d2e - 8002d26: 7813 ldrb r3, [r2, #0] - 8002d28: 2b03 cmp r3, #3 - 8002d2a: f002 85d4 beq.w 80058d6 - 8002d2e: 4631 mov r1, r6 - 8002d30: 4620 mov r0, r4 - 8002d32: f003 fc67 bl 8006604 - 8002d36: 68af ldr r7, [r5, #8] - 8002d38: 49d0 ldr r1, [pc, #832] ; (800307c ) - 8002d3a: 68bb ldr r3, [r7, #8] - 8002d3c: f8d3 8000 ldr.w r8, [r3] - 8002d40: 4640 mov r0, r8 - 8002d42: f004 f83d bl 8006dc0 - 8002d46: 4681 mov r9, r0 - 8002d48: 2800 cmp r0, #0 - 8002d4a: f042 83d0 bne.w 80054ee - 8002d4e: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8002d52: 2fff cmp r7, #255 ; 0xff - 8002d54: d110 bne.n 8002d78 - 8002d56: f884 00ff strb.w r0, [r4, #255] ; 0xff - 8002d5a: 4639 mov r1, r7 - 8002d5c: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8002d60: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8002d64: 4620 mov r0, r4 - 8002d66: 4798 blx r3 - 8002d68: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8002d6c: f8c4 9100 str.w r9, [r4, #256] ; 0x100 - 8002d70: 3301 adds r3, #1 - 8002d72: 464f mov r7, r9 - 8002d74: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8002d78: 1c7a adds r2, r7, #1 - 8002d7a: 235b movs r3, #91 ; 0x5b - 8002d7c: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8002d80: 55e3 strb r3, [r4, r7] - 8002d82: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8002d86: 68eb ldr r3, [r5, #12] - 8002d88: 4631 mov r1, r6 - 8002d8a: 68da ldr r2, [r3, #12] - 8002d8c: 4620 mov r0, r4 - 8002d8e: f7ff ff31 bl 8002bf4 - 8002d92: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8002d96: 2fff cmp r7, #255 ; 0xff - 8002d98: d111 bne.n 8002dbe - 8002d9a: 2600 movs r6, #0 - 8002d9c: 4639 mov r1, r7 - 8002d9e: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8002da2: f884 60ff strb.w r6, [r4, #255] ; 0xff - 8002da6: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8002daa: 4620 mov r0, r4 - 8002dac: 4798 blx r3 - 8002dae: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8002db2: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8002db6: 3301 adds r3, #1 - 8002db8: 4637 mov r7, r6 - 8002dba: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8002dbe: 235d movs r3, #93 ; 0x5d - 8002dc0: 1c7a adds r2, r7, #1 - 8002dc2: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8002dc6: 55e3 strb r3, [r4, r7] - 8002dc8: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8002dcc: 68ab ldr r3, [r5, #8] - 8002dce: 781a ldrb r2, [r3, #0] - 8002dd0: 2a31 cmp r2, #49 ; 0x31 - 8002dd2: f002 83ad beq.w 8005530 - 8002dd6: 9905 ldr r1, [sp, #20] - 8002dd8: 686a ldr r2, [r5, #4] - 8002dda: f8c4 1128 str.w r1, [r4, #296] ; 0x128 - 8002dde: 3a01 subs r2, #1 - 8002de0: 606a str r2, [r5, #4] - 8002de2: b019 add sp, #100 ; 0x64 - 8002de4: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8002de8: 4fa5 ldr r7, [pc, #660] ; (8003080 ) - 8002dea: 68aa ldr r2, [r5, #8] - 8002dec: 4631 mov r1, r6 - 8002dee: 4620 mov r0, r4 - 8002df0: f7ff ff00 bl 8002bf4 - 8002df4: f107 0808 add.w r8, r7, #8 - 8002df8: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8002dfc: f04f 0900 mov.w r9, #0 - 8002e00: e016 b.n 8002e30 - 8002e02: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8002e06: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8002e0a: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8002e0e: 4798 blx r3 - 8002e10: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8002e14: 3301 adds r3, #1 - 8002e16: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8002e1a: 2200 movs r2, #0 - 8002e1c: 2301 movs r3, #1 - 8002e1e: 45b8 cmp r8, r7 - 8002e20: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8002e24: f804 a002 strb.w sl, [r4, r2] - 8002e28: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8002e2c: f001 82f9 beq.w 8004422 - 8002e30: 2bff cmp r3, #255 ; 0xff - 8002e32: 4619 mov r1, r3 - 8002e34: 4620 mov r0, r4 - 8002e36: f817 af01 ldrb.w sl, [r7, #1]! - 8002e3a: d0e2 beq.n 8002e02 - 8002e3c: 461a mov r2, r3 - 8002e3e: 3301 adds r3, #1 - 8002e40: e7ed b.n 8002e1e - 8002e42: 68a9 ldr r1, [r5, #8] - 8002e44: 4620 mov r0, r4 - 8002e46: f7fd fcef bl 8000828 - 8002e4a: 2800 cmp r0, #0 - 8002e4c: f002 81e1 beq.w 8005212 - 8002e50: 2300 movs r3, #0 - 8002e52: 7802 ldrb r2, [r0, #0] - 8002e54: 2a2f cmp r2, #47 ; 0x2f - 8002e56: f041 85df bne.w 8004a18 - 8002e5a: 6882 ldr r2, [r0, #8] - 8002e5c: 2a00 cmp r2, #0 - 8002e5e: f001 85db beq.w 8004a18 - 8002e62: 68c0 ldr r0, [r0, #12] - 8002e64: 3301 adds r3, #1 - 8002e66: 2800 cmp r0, #0 - 8002e68: d1f3 bne.n 8002e52 - 8002e6a: 4619 mov r1, r3 - 8002e6c: 68ab ldr r3, [r5, #8] - 8002e6e: 9301 str r3, [sp, #4] - 8002e70: 1e4a subs r2, r1, #1 - 8002e72: 9202 str r2, [sp, #8] - 8002e74: f04f 0a00 mov.w sl, #0 - 8002e78: 4689 mov r9, r1 - 8002e7a: 9503 str r5, [sp, #12] - 8002e7c: f8c4 7120 str.w r7, [r4, #288] ; 0x120 - 8002e80: 9a01 ldr r2, [sp, #4] - 8002e82: 4631 mov r1, r6 - 8002e84: 4620 mov r0, r4 - 8002e86: f7ff feb5 bl 8002bf4 - 8002e8a: 9b02 ldr r3, [sp, #8] - 8002e8c: 429f cmp r7, r3 - 8002e8e: f281 81c6 bge.w 800421e - 8002e92: 4d7c ldr r5, [pc, #496] ; (8003084 ) - 8002e94: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8002e98: f105 0802 add.w r8, r5, #2 - 8002e9c: e016 b.n 8002ecc - 8002e9e: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8002ea2: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8002ea6: f884 a0ff strb.w sl, [r4, #255] ; 0xff - 8002eaa: 4798 blx r3 - 8002eac: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8002eb0: 3301 adds r3, #1 - 8002eb2: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8002eb6: 2200 movs r2, #0 - 8002eb8: 2301 movs r3, #1 - 8002eba: 45a8 cmp r8, r5 - 8002ebc: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8002ec0: f804 b002 strb.w fp, [r4, r2] - 8002ec4: f884 b104 strb.w fp, [r4, #260] ; 0x104 - 8002ec8: f001 81a9 beq.w 800421e - 8002ecc: 2bff cmp r3, #255 ; 0xff - 8002ece: 4619 mov r1, r3 - 8002ed0: 4620 mov r0, r4 - 8002ed2: f815 bb01 ldrb.w fp, [r5], #1 - 8002ed6: d0e2 beq.n 8002e9e - 8002ed8: 461a mov r2, r3 - 8002eda: 3301 adds r3, #1 - 8002edc: e7ed b.n 8002eba - 8002ede: 4f6a ldr r7, [pc, #424] ; (8003088 ) - 8002ee0: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8002ee4: f107 081a add.w r8, r7, #26 - 8002ee8: f04f 0900 mov.w r9, #0 - 8002eec: e016 b.n 8002f1c - 8002eee: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8002ef2: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8002ef6: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8002efa: 4798 blx r3 - 8002efc: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8002f00: 3301 adds r3, #1 - 8002f02: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8002f06: 2200 movs r2, #0 - 8002f08: 2301 movs r3, #1 - 8002f0a: 45b8 cmp r8, r7 - 8002f0c: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8002f10: f804 a002 strb.w sl, [r4, r2] - 8002f14: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8002f18: f001 82f1 beq.w 80044fe - 8002f1c: 2bff cmp r3, #255 ; 0xff - 8002f1e: 4619 mov r1, r3 - 8002f20: 4620 mov r0, r4 - 8002f22: f817 af01 ldrb.w sl, [r7, #1]! - 8002f26: d0e2 beq.n 8002eee - 8002f28: 461a mov r2, r3 - 8002f2a: 3301 adds r3, #1 - 8002f2c: e7ed b.n 8002f0a - 8002f2e: 4f57 ldr r7, [pc, #348] ; (800308c ) - 8002f30: 68aa ldr r2, [r5, #8] - 8002f32: 4631 mov r1, r6 - 8002f34: 4620 mov r0, r4 - 8002f36: f7ff fe5d bl 8002bf4 - 8002f3a: f107 0805 add.w r8, r7, #5 - 8002f3e: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8002f42: f04f 0900 mov.w r9, #0 - 8002f46: e016 b.n 8002f76 - 8002f48: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8002f4c: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8002f50: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8002f54: 4798 blx r3 - 8002f56: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8002f5a: 3301 adds r3, #1 - 8002f5c: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8002f60: 2200 movs r2, #0 - 8002f62: 2301 movs r3, #1 - 8002f64: 45b8 cmp r8, r7 - 8002f66: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8002f6a: f804 a002 strb.w sl, [r4, r2] - 8002f6e: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8002f72: f001 827c beq.w 800446e - 8002f76: 2bff cmp r3, #255 ; 0xff - 8002f78: 4619 mov r1, r3 - 8002f7a: 4620 mov r0, r4 - 8002f7c: f817 ab01 ldrb.w sl, [r7], #1 - 8002f80: d0e2 beq.n 8002f48 - 8002f82: 461a mov r2, r3 - 8002f84: 3301 adds r3, #1 - 8002f86: e7ed b.n 8002f64 - 8002f88: 4f41 ldr r7, [pc, #260] ; (8003090 ) - 8002f8a: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8002f8e: f107 0816 add.w r8, r7, #22 - 8002f92: f04f 0900 mov.w r9, #0 - 8002f96: e016 b.n 8002fc6 - 8002f98: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8002f9c: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8002fa0: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8002fa4: 4798 blx r3 - 8002fa6: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8002faa: 3301 adds r3, #1 - 8002fac: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8002fb0: 2200 movs r2, #0 - 8002fb2: 2301 movs r3, #1 - 8002fb4: 45b8 cmp r8, r7 - 8002fb6: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8002fba: f804 a002 strb.w sl, [r4, r2] - 8002fbe: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8002fc2: f001 81f4 beq.w 80043ae - 8002fc6: 2bff cmp r3, #255 ; 0xff - 8002fc8: 4619 mov r1, r3 - 8002fca: 4620 mov r0, r4 - 8002fcc: f817 af01 ldrb.w sl, [r7, #1]! - 8002fd0: d0e2 beq.n 8002f98 - 8002fd2: 461a mov r2, r3 - 8002fd4: 3301 adds r3, #1 - 8002fd6: e7ed b.n 8002fb4 - 8002fd8: 4e2e ldr r6, [pc, #184] ; (8003094 ) - 8002fda: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8002fde: f106 070e add.w r7, r6, #14 - 8002fe2: f04f 0800 mov.w r8, #0 - 8002fe6: e016 b.n 8003016 - 8002fe8: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8002fec: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8002ff0: f884 80ff strb.w r8, [r4, #255] ; 0xff - 8002ff4: 4798 blx r3 - 8002ff6: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8002ffa: 3301 adds r3, #1 - 8002ffc: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003000: 2200 movs r2, #0 - 8003002: 2301 movs r3, #1 - 8003004: 42b7 cmp r7, r6 - 8003006: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800300a: f804 9002 strb.w r9, [r4, r2] - 800300e: f884 9104 strb.w r9, [r4, #260] ; 0x104 - 8003012: f001 81d5 beq.w 80043c0 - 8003016: 2bff cmp r3, #255 ; 0xff - 8003018: 4619 mov r1, r3 - 800301a: 4620 mov r0, r4 - 800301c: f816 9f01 ldrb.w r9, [r6, #1]! - 8003020: d0e2 beq.n 8002fe8 - 8003022: 461a mov r2, r3 - 8003024: 3301 adds r3, #1 - 8003026: e7ed b.n 8003004 - 8003028: 4f1b ldr r7, [pc, #108] ; (8003098 ) - 800302a: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 800302e: f107 0808 add.w r8, r7, #8 - 8003032: f04f 0900 mov.w r9, #0 - 8003036: e016 b.n 8003066 - 8003038: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800303c: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003040: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003044: 4798 blx r3 - 8003046: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800304a: 3301 adds r3, #1 - 800304c: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003050: 2200 movs r2, #0 - 8003052: 2301 movs r3, #1 - 8003054: 45b8 cmp r8, r7 - 8003056: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800305a: f804 a002 strb.w sl, [r4, r2] - 800305e: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003062: f001 8114 beq.w 800428e - 8003066: 2bff cmp r3, #255 ; 0xff - 8003068: 4619 mov r1, r3 - 800306a: 4620 mov r0, r4 - 800306c: f817 af01 ldrb.w sl, [r7, #1]! - 8003070: d0e2 beq.n 8003038 - 8003072: 461a mov r2, r3 - 8003074: 3301 adds r3, #1 - 8003076: e7ed b.n 8003054 - 8003078: 0801257c .word 0x0801257c - 800307c: 0801277c .word 0x0801277c - 8003080: 08012837 .word 0x08012837 - 8003084: 08012750 .word 0x08012750 - 8003088: 0801271b .word 0x0801271b - 800308c: 080125bc .word 0x080125bc - 8003090: 0801271f .word 0x0801271f - 8003094: 08012827 .word 0x08012827 - 8003098: 08012817 .word 0x08012817 - 800309c: 4fb9 ldr r7, [pc, #740] ; (8003384 ) - 800309e: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80030a2: f107 081c add.w r8, r7, #28 - 80030a6: f04f 0900 mov.w r9, #0 - 80030aa: e016 b.n 80030da - 80030ac: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80030b0: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80030b4: f884 90ff strb.w r9, [r4, #255] ; 0xff - 80030b8: 4798 blx r3 - 80030ba: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80030be: 3301 adds r3, #1 - 80030c0: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80030c4: 2200 movs r2, #0 - 80030c6: 2301 movs r3, #1 - 80030c8: 45b8 cmp r8, r7 - 80030ca: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80030ce: f804 a002 strb.w sl, [r4, r2] - 80030d2: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 80030d6: f001 810f beq.w 80042f8 - 80030da: 2bff cmp r3, #255 ; 0xff - 80030dc: 4619 mov r1, r3 - 80030de: 4620 mov r0, r4 - 80030e0: f817 af01 ldrb.w sl, [r7, #1]! - 80030e4: d0e2 beq.n 80030ac - 80030e6: 461a mov r2, r3 - 80030e8: 3301 adds r3, #1 - 80030ea: e7ed b.n 80030c8 - 80030ec: 4fa6 ldr r7, [pc, #664] ; (8003388 ) - 80030ee: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80030f2: f107 081d add.w r8, r7, #29 - 80030f6: f04f 0900 mov.w r9, #0 - 80030fa: e016 b.n 800312a - 80030fc: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003100: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003104: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003108: 4798 blx r3 - 800310a: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800310e: 3301 adds r3, #1 - 8003110: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003114: 2200 movs r2, #0 - 8003116: 2301 movs r3, #1 - 8003118: 4547 cmp r7, r8 - 800311a: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800311e: f804 a002 strb.w sl, [r4, r2] - 8003122: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003126: f001 8083 beq.w 8004230 - 800312a: 2bff cmp r3, #255 ; 0xff - 800312c: 4619 mov r1, r3 - 800312e: 4620 mov r0, r4 - 8003130: f817 af01 ldrb.w sl, [r7, #1]! - 8003134: d0e2 beq.n 80030fc - 8003136: 461a mov r2, r3 - 8003138: 3301 adds r3, #1 - 800313a: e7ed b.n 8003118 - 800313c: 4f93 ldr r7, [pc, #588] ; (800338c ) - 800313e: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003142: f107 080a add.w r8, r7, #10 - 8003146: f04f 0900 mov.w r9, #0 - 800314a: e016 b.n 800317a - 800314c: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003150: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003154: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003158: 4798 blx r3 - 800315a: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800315e: 3301 adds r3, #1 - 8003160: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003164: 2200 movs r2, #0 - 8003166: 2301 movs r3, #1 - 8003168: 45b8 cmp r8, r7 - 800316a: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800316e: f804 a002 strb.w sl, [r4, r2] - 8003172: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003176: f001 8064 beq.w 8004242 - 800317a: 2bff cmp r3, #255 ; 0xff - 800317c: 4619 mov r1, r3 - 800317e: 4620 mov r0, r4 - 8003180: f817 ab01 ldrb.w sl, [r7], #1 - 8003184: d0e2 beq.n 800314c - 8003186: 461a mov r2, r3 - 8003188: 3301 adds r3, #1 - 800318a: e7ed b.n 8003168 - 800318c: a808 add r0, sp, #32 - 800318e: 68aa ldr r2, [r5, #8] - 8003190: 497f ldr r1, [pc, #508] ; (8003390 ) - 8003192: f00b fb63 bl 800e85c - 8003196: a808 add r0, sp, #32 - 8003198: f003 fe1c bl 8006dd4 - 800319c: 2800 cmp r0, #0 - 800319e: f001 81b7 beq.w 8004510 - 80031a2: ae08 add r6, sp, #32 - 80031a4: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80031a8: 1837 adds r7, r6, r0 - 80031aa: f04f 0800 mov.w r8, #0 - 80031ae: e016 b.n 80031de - 80031b0: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80031b4: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80031b8: f884 80ff strb.w r8, [r4, #255] ; 0xff - 80031bc: 4798 blx r3 - 80031be: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80031c2: 3301 adds r3, #1 - 80031c4: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80031c8: 2200 movs r2, #0 - 80031ca: 2301 movs r3, #1 - 80031cc: 42be cmp r6, r7 - 80031ce: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80031d2: f804 9002 strb.w r9, [r4, r2] - 80031d6: f884 9104 strb.w r9, [r4, #260] ; 0x104 - 80031da: f001 8199 beq.w 8004510 - 80031de: 2bff cmp r3, #255 ; 0xff - 80031e0: 4619 mov r1, r3 - 80031e2: 4620 mov r0, r4 - 80031e4: f816 9b01 ldrb.w r9, [r6], #1 - 80031e8: d0e2 beq.n 80031b0 - 80031ea: 461a mov r2, r3 - 80031ec: 3301 adds r3, #1 - 80031ee: e7ed b.n 80031cc - 80031f0: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 80031f4: f895 8008 ldrb.w r8, [r5, #8] - 80031f8: 2fff cmp r7, #255 ; 0xff - 80031fa: d111 bne.n 8003220 - 80031fc: 2600 movs r6, #0 - 80031fe: 4639 mov r1, r7 - 8003200: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003204: f884 60ff strb.w r6, [r4, #255] ; 0xff - 8003208: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800320c: 4620 mov r0, r4 - 800320e: 4798 blx r3 - 8003210: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003214: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8003218: 3301 adds r3, #1 - 800321a: 4637 mov r7, r6 - 800321c: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003220: 1c7b adds r3, r7, #1 - 8003222: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003226: f804 8007 strb.w r8, [r4, r7] - 800322a: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 800322e: 686a ldr r2, [r5, #4] - 8003230: 9905 ldr r1, [sp, #20] - 8003232: e5d2 b.n 8002dda - 8003234: 68aa ldr r2, [r5, #8] - 8003236: 4631 mov r1, r6 - 8003238: 4620 mov r0, r4 - 800323a: f7ff fcdb bl 8002bf4 - 800323e: 4631 mov r1, r6 - 8003240: 68ea ldr r2, [r5, #12] - 8003242: 4620 mov r0, r4 - 8003244: f7ff fcd6 bl 8002bf4 - 8003248: 9905 ldr r1, [sp, #20] - 800324a: 686a ldr r2, [r5, #4] - 800324c: e5c5 b.n 8002dda - 800324e: 4f51 ldr r7, [pc, #324] ; (8003394 ) - 8003250: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003254: f107 080e add.w r8, r7, #14 - 8003258: f04f 0900 mov.w r9, #0 - 800325c: e016 b.n 800328c - 800325e: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003262: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003266: f884 90ff strb.w r9, [r4, #255] ; 0xff - 800326a: 4798 blx r3 - 800326c: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003270: 3301 adds r3, #1 - 8003272: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003276: 2200 movs r2, #0 - 8003278: 2301 movs r3, #1 - 800327a: 45b8 cmp r8, r7 - 800327c: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003280: f804 a002 strb.w sl, [r4, r2] - 8003284: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003288: f001 8146 beq.w 8004518 - 800328c: 2bff cmp r3, #255 ; 0xff - 800328e: 4619 mov r1, r3 - 8003290: 4620 mov r0, r4 - 8003292: f817 af01 ldrb.w sl, [r7, #1]! - 8003296: d0e2 beq.n 800325e - 8003298: 461a mov r2, r3 - 800329a: 3301 adds r3, #1 - 800329c: e7ed b.n 800327a - 800329e: 68ab ldr r3, [r5, #8] - 80032a0: 781a ldrb r2, [r3, #0] - 80032a2: 2a27 cmp r2, #39 ; 0x27 - 80032a4: f001 8572 beq.w 8004d8c - 80032a8: f04f 0800 mov.w r8, #0 - 80032ac: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 80032b0: 2fff cmp r7, #255 ; 0xff - 80032b2: d112 bne.n 80032da - 80032b4: f04f 0900 mov.w r9, #0 - 80032b8: 4639 mov r1, r7 - 80032ba: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80032be: f884 90ff strb.w r9, [r4, #255] ; 0xff - 80032c2: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80032c6: 4620 mov r0, r4 - 80032c8: 4798 blx r3 - 80032ca: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80032ce: f8c4 9100 str.w r9, [r4, #256] ; 0x100 - 80032d2: 3301 adds r3, #1 - 80032d4: 464f mov r7, r9 - 80032d6: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80032da: 2328 movs r3, #40 ; 0x28 - 80032dc: 1c7a adds r2, r7, #1 - 80032de: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 80032e2: 55e3 strb r3, [r4, r7] - 80032e4: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80032e8: 68aa ldr r2, [r5, #8] - 80032ea: 4631 mov r1, r6 - 80032ec: 4620 mov r0, r4 - 80032ee: f7ff fc81 bl 8002bf4 - 80032f2: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80032f6: 2bff cmp r3, #255 ; 0xff - 80032f8: f041 85b8 bne.w 8004e6c - 80032fc: 2200 movs r2, #0 - 80032fe: 4619 mov r1, r3 - 8003300: f884 20ff strb.w r2, [r4, #255] ; 0xff - 8003304: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003308: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800330c: 4620 mov r0, r4 - 800330e: 4798 blx r3 - 8003310: 2329 movs r3, #41 ; 0x29 - 8003312: 7023 strb r3, [r4, #0] - 8003314: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8003318: 782a ldrb r2, [r5, #0] - 800331a: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800331e: 2101 movs r1, #1 - 8003320: 3301 adds r3, #1 - 8003322: 2a3d cmp r2, #61 ; 0x3d - 8003324: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003328: f8c4 1100 str.w r1, [r4, #256] ; 0x100 - 800332c: f001 85bb beq.w 8004ea6 - 8003330: f1b8 0f08 cmp.w r8, #8 - 8003334: f001 8556 beq.w 8004de4 - 8003338: 4631 mov r1, r6 - 800333a: 68ea ldr r2, [r5, #12] - 800333c: 4620 mov r0, r4 - 800333e: f7ff fc59 bl 8002bf4 - 8003342: 9905 ldr r1, [sp, #20] - 8003344: 686a ldr r2, [r5, #4] - 8003346: e548 b.n 8002dda - 8003348: 2301 movs r3, #1 - 800334a: f8c4 3118 str.w r3, [r4, #280] ; 0x118 - 800334e: 686a ldr r2, [r5, #4] - 8003350: e543 b.n 8002dda - 8003352: 68eb ldr r3, [r5, #12] - 8003354: 781a ldrb r2, [r3, #0] - 8003356: 2a3a cmp r2, #58 ; 0x3a - 8003358: f001 8405 beq.w 8004b66 - 800335c: 2301 movs r3, #1 - 800335e: f8c4 3118 str.w r3, [r4, #280] ; 0x118 - 8003362: 686a ldr r2, [r5, #4] - 8003364: e539 b.n 8002dda - 8003366: 2301 movs r3, #1 - 8003368: f8c4 3118 str.w r3, [r4, #280] ; 0x118 - 800336c: 686a ldr r2, [r5, #4] - 800336e: e534 b.n 8002dda - 8003370: 68eb ldr r3, [r5, #12] - 8003372: 781b ldrb r3, [r3, #0] - 8003374: 2b38 cmp r3, #56 ; 0x38 - 8003376: f43f acaf beq.w 8002cd8 - 800337a: 2301 movs r3, #1 - 800337c: f8c4 3118 str.w r3, [r4, #280] ; 0x118 - 8003380: 686a ldr r2, [r5, #4] - 8003382: e52a b.n 8002dda - 8003384: 080127f7 .word 0x080127f7 - 8003388: 080127d7 .word 0x080127d7 - 800338c: 080127b8 .word 0x080127b8 - 8003390: 08012574 .word 0x08012574 - 8003394: 080127a7 .word 0x080127a7 - 8003398: e9d5 9802 ldrd r9, r8, [r5, #8] - 800339c: f899 3000 ldrb.w r3, [r9] - 80033a0: 2b31 cmp r3, #49 ; 0x31 - 80033a2: f001 843a beq.w 8004c1a - 80033a6: 2b33 cmp r3, #51 ; 0x33 - 80033a8: f042 8192 bne.w 80056d0 - 80033ac: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 80033b0: 2fff cmp r7, #255 ; 0xff - 80033b2: d112 bne.n 80033da - 80033b4: f04f 0a00 mov.w sl, #0 - 80033b8: 4639 mov r1, r7 - 80033ba: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80033be: f884 a0ff strb.w sl, [r4, #255] ; 0xff - 80033c2: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80033c6: 4620 mov r0, r4 - 80033c8: 4798 blx r3 - 80033ca: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80033ce: f8c4 a100 str.w sl, [r4, #256] ; 0x100 - 80033d2: 3301 adds r3, #1 - 80033d4: 4657 mov r7, sl - 80033d6: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80033da: 1c7a adds r2, r7, #1 - 80033dc: 2328 movs r3, #40 ; 0x28 - 80033de: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 80033e2: 55e3 strb r3, [r4, r7] - 80033e4: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80033e8: f8d9 2008 ldr.w r2, [r9, #8] - 80033ec: 4631 mov r1, r6 - 80033ee: 4620 mov r0, r4 - 80033f0: f7ff fc00 bl 8002bf4 - 80033f4: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 80033f8: 2fff cmp r7, #255 ; 0xff - 80033fa: d112 bne.n 8003422 - 80033fc: f04f 0900 mov.w r9, #0 - 8003400: 4639 mov r1, r7 - 8003402: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003406: f884 90ff strb.w r9, [r4, #255] ; 0xff - 800340a: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800340e: 4620 mov r0, r4 - 8003410: 4798 blx r3 - 8003412: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003416: f8c4 9100 str.w r9, [r4, #256] ; 0x100 - 800341a: 3301 adds r3, #1 - 800341c: 464f mov r7, r9 - 800341e: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003422: 2329 movs r3, #41 ; 0x29 - 8003424: 1c7a adds r2, r7, #1 - 8003426: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 800342a: 55e3 strb r3, [r4, r7] - 800342c: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8003430: 4642 mov r2, r8 - 8003432: 4631 mov r1, r6 - 8003434: 4620 mov r0, r4 - 8003436: f003 f8e5 bl 8006604 - 800343a: 9905 ldr r1, [sp, #20] - 800343c: 686a ldr r2, [r5, #4] - 800343e: e4cc b.n 8002dda - 8003440: 4631 mov r1, r6 - 8003442: 68aa ldr r2, [r5, #8] - 8003444: 4620 mov r0, r4 - 8003446: f003 f89d bl 8006584 - 800344a: 9905 ldr r1, [sp, #20] - 800344c: 686a ldr r2, [r5, #4] - 800344e: e4c4 b.n 8002dda - 8003450: 4fd2 ldr r7, [pc, #840] ; (800379c ) - 8003452: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003456: f107 0809 add.w r8, r7, #9 - 800345a: f04f 0900 mov.w r9, #0 - 800345e: e016 b.n 800348e - 8003460: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003464: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003468: f884 90ff strb.w r9, [r4, #255] ; 0xff - 800346c: 4798 blx r3 - 800346e: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003472: 3301 adds r3, #1 - 8003474: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003478: 2200 movs r2, #0 - 800347a: 2301 movs r3, #1 - 800347c: 45b8 cmp r8, r7 - 800347e: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003482: f804 a002 strb.w sl, [r4, r2] - 8003486: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 800348a: f001 8057 beq.w 800453c - 800348e: 2bff cmp r3, #255 ; 0xff - 8003490: 4619 mov r1, r3 - 8003492: 4620 mov r0, r4 - 8003494: f817 af01 ldrb.w sl, [r7, #1]! - 8003498: d0e2 beq.n 8003460 - 800349a: 461a mov r2, r3 - 800349c: 3301 adds r3, #1 - 800349e: e7ed b.n 800347c - 80034a0: 4fbe ldr r7, [pc, #760] ; (800379c ) - 80034a2: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80034a6: f107 0809 add.w r8, r7, #9 - 80034aa: f04f 0900 mov.w r9, #0 - 80034ae: e016 b.n 80034de - 80034b0: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80034b4: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80034b8: f884 90ff strb.w r9, [r4, #255] ; 0xff - 80034bc: 4798 blx r3 - 80034be: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80034c2: 3301 adds r3, #1 - 80034c4: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80034c8: 2200 movs r2, #0 - 80034ca: 2301 movs r3, #1 - 80034cc: 45b8 cmp r8, r7 - 80034ce: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80034d2: f804 a002 strb.w sl, [r4, r2] - 80034d6: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 80034da: f001 8026 beq.w 800452a - 80034de: 2bff cmp r3, #255 ; 0xff - 80034e0: 4619 mov r1, r3 - 80034e2: 4620 mov r0, r4 - 80034e4: f817 af01 ldrb.w sl, [r7, #1]! - 80034e8: d0e2 beq.n 80034b0 - 80034ea: 461a mov r2, r3 - 80034ec: 3301 adds r3, #1 - 80034ee: e7ed b.n 80034cc - 80034f0: f8d5 a008 ldr.w sl, [r5, #8] - 80034f4: 4eaa ldr r6, [pc, #680] ; (80037a0 ) - 80034f6: f8da 7008 ldr.w r7, [sl, #8] - 80034fa: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80034fe: f106 0808 add.w r8, r6, #8 - 8003502: f04f 0900 mov.w r9, #0 - 8003506: e016 b.n 8003536 - 8003508: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800350c: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003510: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003514: 4798 blx r3 - 8003516: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800351a: 3301 adds r3, #1 - 800351c: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003520: 2200 movs r2, #0 - 8003522: 2301 movs r3, #1 - 8003524: 4546 cmp r6, r8 - 8003526: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800352a: f804 b002 strb.w fp, [r4, r2] - 800352e: f884 b104 strb.w fp, [r4, #260] ; 0x104 - 8003532: f001 8021 beq.w 8004578 - 8003536: 2bff cmp r3, #255 ; 0xff - 8003538: 4619 mov r1, r3 - 800353a: 4620 mov r0, r4 - 800353c: f816 bf01 ldrb.w fp, [r6, #1]! - 8003540: d0e2 beq.n 8003508 - 8003542: 461a mov r2, r3 - 8003544: 3301 adds r3, #1 - 8003546: e7ed b.n 8003524 - 8003548: e9d5 2802 ldrd r2, r8, [r5, #8] - 800354c: b11a cbz r2, 8003556 - 800354e: 4631 mov r1, r6 - 8003550: 4620 mov r0, r4 - 8003552: f7ff fb4f bl 8002bf4 - 8003556: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 800355a: 2fff cmp r7, #255 ; 0xff - 800355c: d112 bne.n 8003584 - 800355e: f04f 0900 mov.w r9, #0 - 8003562: 4639 mov r1, r7 - 8003564: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003568: f884 90ff strb.w r9, [r4, #255] ; 0xff - 800356c: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003570: 4620 mov r0, r4 - 8003572: 4798 blx r3 - 8003574: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003578: f8c4 9100 str.w r9, [r4, #256] ; 0x100 - 800357c: 3301 adds r3, #1 - 800357e: 464f mov r7, r9 - 8003580: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003584: 1c78 adds r0, r7, #1 - 8003586: 237b movs r3, #123 ; 0x7b - 8003588: f8c4 0100 str.w r0, [r4, #256] ; 0x100 - 800358c: 4642 mov r2, r8 - 800358e: 55e3 strb r3, [r4, r7] - 8003590: 4631 mov r1, r6 - 8003592: 4620 mov r0, r4 - 8003594: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8003598: f7ff fb2c bl 8002bf4 - 800359c: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 80035a0: 2fff cmp r7, #255 ; 0xff - 80035a2: d111 bne.n 80035c8 - 80035a4: 2600 movs r6, #0 - 80035a6: 4639 mov r1, r7 - 80035a8: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80035ac: f884 60ff strb.w r6, [r4, #255] ; 0xff - 80035b0: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80035b4: 4620 mov r0, r4 - 80035b6: 4798 blx r3 - 80035b8: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80035bc: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 80035c0: 3301 adds r3, #1 - 80035c2: 4637 mov r7, r6 - 80035c4: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80035c8: 1c7a adds r2, r7, #1 - 80035ca: 237d movs r3, #125 ; 0x7d - 80035cc: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 80035d0: 55e3 strb r3, [r4, r7] - 80035d2: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80035d6: 686a ldr r2, [r5, #4] - 80035d8: 9905 ldr r1, [sp, #20] - 80035da: f7ff bbfe b.w 8002dda - 80035de: 68aa ldr r2, [r5, #8] - 80035e0: b11a cbz r2, 80035ea - 80035e2: 4631 mov r1, r6 - 80035e4: 4620 mov r0, r4 - 80035e6: f7ff fb05 bl 8002bf4 - 80035ea: 68eb ldr r3, [r5, #12] - 80035ec: 2b00 cmp r3, #0 - 80035ee: f001 853d beq.w 800506c - 80035f2: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 80035f6: 2ffd cmp r7, #253 ; 0xfd - 80035f8: d912 bls.n 8003620 - 80035fa: f04f 0800 mov.w r8, #0 - 80035fe: f804 8007 strb.w r8, [r4, r7] - 8003602: 4639 mov r1, r7 - 8003604: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003608: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800360c: 4620 mov r0, r4 - 800360e: 4798 blx r3 - 8003610: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003614: f8c4 8100 str.w r8, [r4, #256] ; 0x100 - 8003618: 3301 adds r3, #1 - 800361a: 4647 mov r7, r8 - 800361c: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003620: f8df 8188 ldr.w r8, [pc, #392] ; 80037ac - 8003624: f04f 0a00 mov.w sl, #0 - 8003628: f108 0b02 add.w fp, r8, #2 - 800362c: e016 b.n 800365c - 800362e: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003632: f884 a0ff strb.w sl, [r4, #255] ; 0xff - 8003636: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800363a: 4798 blx r3 - 800363c: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003640: 3301 adds r3, #1 - 8003642: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003646: 2701 movs r7, #1 - 8003648: 2300 movs r3, #0 - 800364a: 45c3 cmp fp, r8 - 800364c: f8c4 7100 str.w r7, [r4, #256] ; 0x100 - 8003650: f804 9003 strb.w r9, [r4, r3] - 8003654: f884 9104 strb.w r9, [r4, #260] ; 0x104 - 8003658: f001 80cf beq.w 80047fa - 800365c: 2fff cmp r7, #255 ; 0xff - 800365e: 4639 mov r1, r7 - 8003660: 4620 mov r0, r4 - 8003662: f818 9b01 ldrb.w r9, [r8], #1 - 8003666: d0e2 beq.n 800362e - 8003668: 463b mov r3, r7 - 800366a: 3701 adds r7, #1 - 800366c: e7ed b.n 800364a - 800366e: f9b5 300e ldrsh.w r3, [r5, #14] - 8003672: 2b00 cmp r3, #0 - 8003674: f041 84a0 bne.w 8004fb8 - 8003678: 68aa ldr r2, [r5, #8] - 800367a: 4b4a ldr r3, [pc, #296] ; (80037a4 ) - 800367c: 6891 ldr r1, [r2, #8] - 800367e: 4299 cmp r1, r3 - 8003680: d020 beq.n 80036c4 - 8003682: 4631 mov r1, r6 - 8003684: 4620 mov r0, r4 - 8003686: f7ff fab5 bl 8002bf4 - 800368a: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 800368e: 2fff cmp r7, #255 ; 0xff - 8003690: d111 bne.n 80036b6 - 8003692: 2600 movs r6, #0 - 8003694: 4639 mov r1, r7 - 8003696: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800369a: f884 60ff strb.w r6, [r4, #255] ; 0xff - 800369e: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80036a2: 4620 mov r0, r4 - 80036a4: 4798 blx r3 - 80036a6: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80036aa: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 80036ae: 3301 adds r3, #1 - 80036b0: 4637 mov r7, r6 - 80036b2: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80036b6: 2320 movs r3, #32 - 80036b8: 1c7a adds r2, r7, #1 - 80036ba: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 80036be: 55e3 strb r3, [r4, r7] - 80036c0: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80036c4: f9b5 200c ldrsh.w r2, [r5, #12] - 80036c8: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80036cc: 2a00 cmp r2, #0 - 80036ce: f001 80a6 beq.w 800481e - 80036d2: 4e35 ldr r6, [pc, #212] ; (80037a8 ) - 80036d4: f04f 0800 mov.w r8, #0 - 80036d8: f106 0906 add.w r9, r6, #6 - 80036dc: e015 b.n 800370a - 80036de: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80036e2: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80036e6: f884 80ff strb.w r8, [r4, #255] ; 0xff - 80036ea: 4798 blx r3 - 80036ec: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80036f0: 3301 adds r3, #1 - 80036f2: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80036f6: 2200 movs r2, #0 - 80036f8: 2301 movs r3, #1 - 80036fa: 45b1 cmp r9, r6 - 80036fc: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003700: 54a7 strb r7, [r4, r2] - 8003702: f884 7104 strb.w r7, [r4, #260] ; 0x104 - 8003706: f001 8183 beq.w 8004a10 - 800370a: 2bff cmp r3, #255 ; 0xff - 800370c: 4619 mov r1, r3 - 800370e: 4620 mov r0, r4 - 8003710: f816 7b01 ldrb.w r7, [r6], #1 - 8003714: d0e3 beq.n 80036de - 8003716: 461a mov r2, r3 - 8003718: 3301 adds r3, #1 - 800371a: e7ee b.n 80036fa - 800371c: ab18 add r3, sp, #96 ; 0x60 - 800371e: f8d4 2114 ldr.w r2, [r4, #276] ; 0x114 - 8003722: f843 2d40 str.w r2, [r3, #-64]! - 8003726: 2000 movs r0, #0 - 8003728: f8c4 3114 str.w r3, [r4, #276] ; 0x114 - 800372c: 900a str r0, [sp, #40] ; 0x28 - 800372e: f8d4 3110 ldr.w r3, [r4, #272] ; 0x110 - 8003732: 68ea ldr r2, [r5, #12] - 8003734: 930b str r3, [sp, #44] ; 0x2c - 8003736: 4631 mov r1, r6 - 8003738: 4620 mov r0, r4 - 800373a: 9509 str r5, [sp, #36] ; 0x24 - 800373c: f7ff fa5a bl 8002bf4 - 8003740: 9b0a ldr r3, [sp, #40] ; 0x28 - 8003742: b923 cbnz r3, 800374e - 8003744: 4631 mov r1, r6 - 8003746: 462a mov r2, r5 - 8003748: 4620 mov r0, r4 - 800374a: f002 f8e9 bl 8005920 - 800374e: 9b08 ldr r3, [sp, #32] - 8003750: f8c4 3114 str.w r3, [r4, #276] ; 0x114 - 8003754: 9905 ldr r1, [sp, #20] - 8003756: 686a ldr r2, [r5, #4] - 8003758: f7ff bb3f b.w 8002dda - 800375c: f10d 0960 add.w r9, sp, #96 ; 0x60 - 8003760: f8d4 c114 ldr.w ip, [r4, #276] ; 0x114 - 8003764: f849 cd40 str.w ip, [r9, #-64]! - 8003768: f8d4 3110 ldr.w r3, [r4, #272] ; 0x110 - 800376c: f8cd c004 str.w ip, [sp, #4] - 8003770: 2200 movs r2, #0 - 8003772: 4667 mov r7, ip - 8003774: f8c4 9114 str.w r9, [r4, #276] ; 0x114 - 8003778: 9509 str r5, [sp, #36] ; 0x24 - 800377a: e9cd 230a strd r2, r3, [sp, #40] ; 0x28 - 800377e: 2f00 cmp r7, #0 - 8003780: f001 852f beq.w 80051e2 - 8003784: 687b ldr r3, [r7, #4] - 8003786: 781b ldrb r3, [r3, #0] - 8003788: 3b19 subs r3, #25 - 800378a: 2b02 cmp r3, #2 - 800378c: f201 8529 bhi.w 80051e2 - 8003790: 4623 mov r3, r4 - 8003792: f04f 0801 mov.w r8, #1 - 8003796: 464c mov r4, r9 - 8003798: 469c mov ip, r3 - 800379a: e00e b.n 80037ba - 800379c: 0801275f .word 0x0801275f - 80037a0: 08012753 .word 0x08012753 - 80037a4: 08011c70 .word 0x08011c70 - 80037a8: 08012740 .word 0x08012740 - 80037ac: 08012750 .word 0x08012750 - 80037b0: 687b ldr r3, [r7, #4] - 80037b2: 781b ldrb r3, [r3, #0] - 80037b4: 3b19 subs r3, #25 - 80037b6: 2b02 cmp r3, #2 - 80037b8: d81d bhi.n 80037f6 - 80037ba: 68bb ldr r3, [r7, #8] - 80037bc: ea4f 1e08 mov.w lr, r8, lsl #4 - 80037c0: aa18 add r2, sp, #96 ; 0x60 - 80037c2: eb02 0b0e add.w fp, r2, lr - 80037c6: b99b cbnz r3, 80037f0 - 80037c8: f1b8 0f03 cmp.w r8, #3 - 80037cc: f201 8517 bhi.w 80051fe - 80037d0: e897 000f ldmia.w r7, {r0, r1, r2, r3} - 80037d4: f1ab 0a40 sub.w sl, fp, #64 ; 0x40 - 80037d8: e88a 000f stmia.w sl, {r0, r1, r2, r3} - 80037dc: f84b 4c40 str.w r4, [fp, #-64] - 80037e0: 2301 movs r3, #1 - 80037e2: eb09 040e add.w r4, r9, lr - 80037e6: f8cc 4114 str.w r4, [ip, #276] ; 0x114 - 80037ea: f108 0801 add.w r8, r8, #1 - 80037ee: 60bb str r3, [r7, #8] - 80037f0: 683f ldr r7, [r7, #0] - 80037f2: 2f00 cmp r7, #0 - 80037f4: d1dc bne.n 80037b0 - 80037f6: 68ea ldr r2, [r5, #12] - 80037f8: 4631 mov r1, r6 - 80037fa: 4660 mov r0, ip - 80037fc: 4664 mov r4, ip - 80037fe: f7ff f9f9 bl 8002bf4 - 8003802: 9b0a ldr r3, [sp, #40] ; 0x28 - 8003804: 9a01 ldr r2, [sp, #4] - 8003806: f8c4 2114 str.w r2, [r4, #276] ; 0x114 - 800380a: b9bb cbnz r3, 800383c - 800380c: f1b8 0f01 cmp.w r8, #1 - 8003810: d00c beq.n 800382c - 8003812: eb09 1808 add.w r8, r9, r8, lsl #4 - 8003816: af0c add r7, sp, #48 ; 0x30 - 8003818: f858 2c0c ldr.w r2, [r8, #-12] - 800381c: 4631 mov r1, r6 - 800381e: f1a8 0810 sub.w r8, r8, #16 - 8003822: 4620 mov r0, r4 - 8003824: f002 f87c bl 8005920 - 8003828: 4547 cmp r7, r8 - 800382a: d1f5 bne.n 8003818 - 800382c: 4631 mov r1, r6 - 800382e: f8d4 3114 ldr.w r3, [r4, #276] ; 0x114 - 8003832: f105 0208 add.w r2, r5, #8 - 8003836: 4620 mov r0, r4 - 8003838: f002 fdca bl 80063d0 - 800383c: 9905 ldr r1, [sp, #20] - 800383e: 686a ldr r2, [r5, #4] - 8003840: f7ff bacb b.w 8002dda - 8003844: 06b2 lsls r2, r6, #26 - 8003846: f026 0860 bic.w r8, r6, #96 ; 0x60 - 800384a: f8d4 3114 ldr.w r3, [r4, #276] ; 0x114 - 800384e: f101 825a bmi.w 8004d06 - 8003852: 68aa ldr r2, [r5, #8] - 8003854: b11a cbz r2, 800385e - 8003856: f016 0640 ands.w r6, r6, #64 ; 0x40 - 800385a: f001 85c3 beq.w 80053e4 - 800385e: 4641 mov r1, r8 - 8003860: f105 020c add.w r2, r5, #12 - 8003864: f8d4 3114 ldr.w r3, [r4, #276] ; 0x114 - 8003868: 4620 mov r0, r4 - 800386a: f002 fb87 bl 8005f7c - 800386e: 9905 ldr r1, [sp, #20] - 8003870: 686a ldr r2, [r5, #4] - 8003872: f7ff bab2 b.w 8002dda - 8003876: 4fcb ldr r7, [pc, #812] ; (8003ba4 ) - 8003878: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 800387c: f107 0815 add.w r8, r7, #21 - 8003880: f04f 0900 mov.w r9, #0 - 8003884: e016 b.n 80038b4 - 8003886: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800388a: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800388e: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003892: 4798 blx r3 - 8003894: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003898: 3301 adds r3, #1 - 800389a: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 800389e: 2200 movs r2, #0 - 80038a0: 2301 movs r3, #1 - 80038a2: 45b8 cmp r8, r7 - 80038a4: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80038a8: f804 a002 strb.w sl, [r4, r2] - 80038ac: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 80038b0: f000 8789 beq.w 80047c6 - 80038b4: 2bff cmp r3, #255 ; 0xff - 80038b6: 4619 mov r1, r3 - 80038b8: 4620 mov r0, r4 - 80038ba: f817 af01 ldrb.w sl, [r7, #1]! - 80038be: d0e2 beq.n 8003886 - 80038c0: 461a mov r2, r3 - 80038c2: 3301 adds r3, #1 - 80038c4: e7ed b.n 80038a2 - 80038c6: 4fb8 ldr r7, [pc, #736] ; (8003ba8 ) - 80038c8: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80038cc: f107 0810 add.w r8, r7, #16 - 80038d0: f04f 0900 mov.w r9, #0 - 80038d4: e016 b.n 8003904 - 80038d6: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80038da: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80038de: f884 90ff strb.w r9, [r4, #255] ; 0xff - 80038e2: 4798 blx r3 - 80038e4: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80038e8: 3301 adds r3, #1 - 80038ea: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80038ee: 2200 movs r2, #0 - 80038f0: 2301 movs r3, #1 - 80038f2: 45b8 cmp r8, r7 - 80038f4: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80038f8: f804 a002 strb.w sl, [r4, r2] - 80038fc: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003900: f000 876a beq.w 80047d8 - 8003904: 2bff cmp r3, #255 ; 0xff - 8003906: 4619 mov r1, r3 - 8003908: 4620 mov r0, r4 - 800390a: f817 af01 ldrb.w sl, [r7, #1]! - 800390e: d0e2 beq.n 80038d6 - 8003910: 461a mov r2, r3 - 8003912: 3301 adds r3, #1 - 8003914: e7ed b.n 80038f2 - 8003916: 4fa5 ldr r7, [pc, #660] ; (8003bac ) - 8003918: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 800391c: f107 0812 add.w r8, r7, #18 - 8003920: f04f 0900 mov.w r9, #0 - 8003924: e016 b.n 8003954 - 8003926: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800392a: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800392e: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003932: 4798 blx r3 - 8003934: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003938: 3301 adds r3, #1 - 800393a: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 800393e: 2200 movs r2, #0 - 8003940: 2301 movs r3, #1 - 8003942: 45b8 cmp r8, r7 - 8003944: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003948: f804 a002 strb.w sl, [r4, r2] - 800394c: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003950: f000 8727 beq.w 80047a2 - 8003954: 2bff cmp r3, #255 ; 0xff - 8003956: 4619 mov r1, r3 - 8003958: 4620 mov r0, r4 - 800395a: f817 af01 ldrb.w sl, [r7, #1]! - 800395e: d0e2 beq.n 8003926 - 8003960: 461a mov r2, r3 - 8003962: 3301 adds r3, #1 - 8003964: e7ed b.n 8003942 - 8003966: 4f92 ldr r7, [pc, #584] ; (8003bb0 ) - 8003968: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 800396c: f107 080d add.w r8, r7, #13 - 8003970: f04f 0900 mov.w r9, #0 - 8003974: e016 b.n 80039a4 - 8003976: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800397a: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800397e: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003982: 4798 blx r3 - 8003984: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003988: 3301 adds r3, #1 - 800398a: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 800398e: 2200 movs r2, #0 - 8003990: 2301 movs r3, #1 - 8003992: 45b8 cmp r8, r7 - 8003994: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003998: f804 a002 strb.w sl, [r4, r2] - 800399c: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 80039a0: f000 8708 beq.w 80047b4 - 80039a4: 2bff cmp r3, #255 ; 0xff - 80039a6: 4619 mov r1, r3 - 80039a8: 4620 mov r0, r4 - 80039aa: f817 ab01 ldrb.w sl, [r7], #1 - 80039ae: d0e2 beq.n 8003976 - 80039b0: 461a mov r2, r3 - 80039b2: 3301 adds r3, #1 - 80039b4: e7ed b.n 8003992 - 80039b6: 4f7f ldr r7, [pc, #508] ; (8003bb4 ) - 80039b8: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80039bc: f107 0818 add.w r8, r7, #24 - 80039c0: f04f 0900 mov.w r9, #0 - 80039c4: e016 b.n 80039f4 - 80039c6: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80039ca: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80039ce: f884 90ff strb.w r9, [r4, #255] ; 0xff - 80039d2: 4798 blx r3 - 80039d4: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80039d8: 3301 adds r3, #1 - 80039da: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80039de: 2200 movs r2, #0 - 80039e0: 2301 movs r3, #1 - 80039e2: 45b8 cmp r8, r7 - 80039e4: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80039e8: f804 a002 strb.w sl, [r4, r2] - 80039ec: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 80039f0: f000 8699 beq.w 8004726 - 80039f4: 2bff cmp r3, #255 ; 0xff - 80039f6: 4619 mov r1, r3 - 80039f8: 4620 mov r0, r4 - 80039fa: f817 af01 ldrb.w sl, [r7, #1]! - 80039fe: d0e2 beq.n 80039c6 - 8003a00: 461a mov r2, r3 - 8003a02: 3301 adds r3, #1 - 8003a04: e7ed b.n 80039e2 - 8003a06: 4f6c ldr r7, [pc, #432] ; (8003bb8 ) - 8003a08: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003a0c: f107 0808 add.w r8, r7, #8 - 8003a10: f04f 0900 mov.w r9, #0 - 8003a14: e016 b.n 8003a44 - 8003a16: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003a1a: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003a1e: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003a22: 4798 blx r3 - 8003a24: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003a28: 3301 adds r3, #1 - 8003a2a: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003a2e: 2200 movs r2, #0 - 8003a30: 2301 movs r3, #1 - 8003a32: 45b8 cmp r8, r7 - 8003a34: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003a38: f804 a002 strb.w sl, [r4, r2] - 8003a3c: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003a40: f000 86a6 beq.w 8004790 - 8003a44: 2bff cmp r3, #255 ; 0xff - 8003a46: 4619 mov r1, r3 - 8003a48: 4620 mov r0, r4 - 8003a4a: f817 af01 ldrb.w sl, [r7, #1]! - 8003a4e: d0e2 beq.n 8003a16 - 8003a50: 461a mov r2, r3 - 8003a52: 3301 adds r3, #1 - 8003a54: e7ed b.n 8003a32 - 8003a56: 4f59 ldr r7, [pc, #356] ; (8003bbc ) - 8003a58: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003a5c: f107 080b add.w r8, r7, #11 - 8003a60: f04f 0900 mov.w r9, #0 - 8003a64: e016 b.n 8003a94 - 8003a66: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003a6a: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003a6e: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003a72: 4798 blx r3 - 8003a74: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003a78: 3301 adds r3, #1 - 8003a7a: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003a7e: 2200 movs r2, #0 - 8003a80: 2301 movs r3, #1 - 8003a82: 45b8 cmp r8, r7 - 8003a84: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003a88: f804 a002 strb.w sl, [r4, r2] - 8003a8c: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003a90: f000 85cc beq.w 800462c - 8003a94: 2bff cmp r3, #255 ; 0xff - 8003a96: 4619 mov r1, r3 - 8003a98: 4620 mov r0, r4 - 8003a9a: f817 ab01 ldrb.w sl, [r7], #1 - 8003a9e: d0e2 beq.n 8003a66 - 8003aa0: 461a mov r2, r3 - 8003aa2: 3301 adds r3, #1 - 8003aa4: e7ed b.n 8003a82 - 8003aa6: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8003aaa: 2fff cmp r7, #255 ; 0xff - 8003aac: d112 bne.n 8003ad4 - 8003aae: f04f 0800 mov.w r8, #0 - 8003ab2: 4639 mov r1, r7 - 8003ab4: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003ab8: f884 80ff strb.w r8, [r4, #255] ; 0xff - 8003abc: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003ac0: 4620 mov r0, r4 - 8003ac2: 4798 blx r3 - 8003ac4: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003ac8: f8c4 8100 str.w r8, [r4, #256] ; 0x100 - 8003acc: 3301 adds r3, #1 - 8003ace: 4647 mov r7, r8 - 8003ad0: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003ad4: 237e movs r3, #126 ; 0x7e - 8003ad6: 1c7a adds r2, r7, #1 - 8003ad8: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8003adc: 55e3 strb r3, [r4, r7] - 8003ade: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8003ae2: 4631 mov r1, r6 - 8003ae4: 68ea ldr r2, [r5, #12] - 8003ae6: 4620 mov r0, r4 - 8003ae8: f7ff f884 bl 8002bf4 - 8003aec: 9905 ldr r1, [sp, #20] - 8003aee: 686a ldr r2, [r5, #4] - 8003af0: f7ff b973 b.w 8002dda - 8003af4: 4631 mov r1, r6 - 8003af6: 68ea ldr r2, [r5, #12] - 8003af8: 4620 mov r0, r4 - 8003afa: f7ff f87b bl 8002bf4 - 8003afe: 9905 ldr r1, [sp, #20] - 8003b00: 686a ldr r2, [r5, #4] - 8003b02: f7ff b96a b.w 8002dda - 8003b06: f8d5 8008 ldr.w r8, [r5, #8] - 8003b0a: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003b0e: f1b8 0f00 cmp.w r8, #0 - 8003b12: f000 878b beq.w 8004a2c - 8003b16: 4e2a ldr r6, [pc, #168] ; (8003bc0 ) - 8003b18: f04f 0900 mov.w r9, #0 - 8003b1c: f106 0a06 add.w sl, r6, #6 - 8003b20: e015 b.n 8003b4e - 8003b22: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003b26: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003b2a: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003b2e: 4798 blx r3 - 8003b30: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003b34: 3301 adds r3, #1 - 8003b36: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003b3a: 2200 movs r2, #0 - 8003b3c: 2301 movs r3, #1 - 8003b3e: 45b2 cmp sl, r6 - 8003b40: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003b44: 54a7 strb r7, [r4, r2] - 8003b46: f884 7104 strb.w r7, [r4, #260] ; 0x104 - 8003b4a: f000 868f beq.w 800486c - 8003b4e: 2bff cmp r3, #255 ; 0xff - 8003b50: 4619 mov r1, r3 - 8003b52: 4620 mov r0, r4 - 8003b54: f816 7b01 ldrb.w r7, [r6], #1 - 8003b58: d0e3 beq.n 8003b22 - 8003b5a: 461a mov r2, r3 - 8003b5c: 3301 adds r3, #1 - 8003b5e: e7ee b.n 8003b3e - 8003b60: f8d4 311c ldr.w r3, [r4, #284] ; 0x11c - 8003b64: 2b00 cmp r3, #0 - 8003b66: f040 86d1 bne.w 800490c - 8003b6a: f105 0108 add.w r1, r5, #8 - 8003b6e: 4620 mov r0, r4 - 8003b70: f7fc fe4a bl 8000808 - 8003b74: 4602 mov r2, r0 - 8003b76: 2800 cmp r0, #0 - 8003b78: f001 8271 beq.w 800505e - 8003b7c: 7803 ldrb r3, [r0, #0] - 8003b7e: 2b2f cmp r3, #47 ; 0x2f - 8003b80: f001 8262 beq.w 8005048 - 8003b84: f8d4 7110 ldr.w r7, [r4, #272] ; 0x110 - 8003b88: 683b ldr r3, [r7, #0] - 8003b8a: f8c4 3110 str.w r3, [r4, #272] ; 0x110 - 8003b8e: 4631 mov r1, r6 - 8003b90: 4620 mov r0, r4 - 8003b92: f7ff f82f bl 8002bf4 - 8003b96: f8c4 7110 str.w r7, [r4, #272] ; 0x110 - 8003b9a: 9905 ldr r1, [sp, #20] - 8003b9c: 686a ldr r2, [r5, #4] - 8003b9e: f7ff b91c b.w 8002dda - 8003ba2: bf00 nop - 8003ba4: 08012663 .word 0x08012663 - 8003ba8: 0801264f .word 0x0801264f - 8003bac: 0801263b .word 0x0801263b - 8003bb0: 0801262c .word 0x0801262c - 8003bb4: 08012607 .word 0x08012607 - 8003bb8: 080125fb .word 0x080125fb - 8003bbc: 080125f0 .word 0x080125f0 - 8003bc0: 080127d0 .word 0x080127d0 - 8003bc4: 2300 movs r3, #0 - 8003bc6: 0771 lsls r1, r6, #29 - 8003bc8: f8d4 9114 ldr.w r9, [r4, #276] ; 0x114 - 8003bcc: f8d4 8144 ldr.w r8, [r4, #324] ; 0x144 - 8003bd0: f8c4 3114 str.w r3, [r4, #276] ; 0x114 - 8003bd4: f8c4 5144 str.w r5, [r4, #324] ; 0x144 - 8003bd8: 68af ldr r7, [r5, #8] - 8003bda: d505 bpl.n 8003be8 - 8003bdc: 783b ldrb r3, [r7, #0] - 8003bde: b91b cbnz r3, 8003be8 - 8003be0: 68fa ldr r2, [r7, #12] - 8003be2: 2a06 cmp r2, #6 - 8003be4: f001 8433 beq.w 800544e - 8003be8: 463a mov r2, r7 - 8003bea: 4631 mov r1, r6 - 8003bec: 4620 mov r0, r4 - 8003bee: f7ff f801 bl 8002bf4 - 8003bf2: f894 3104 ldrb.w r3, [r4, #260] ; 0x104 - 8003bf6: 2b3c cmp r3, #60 ; 0x3c - 8003bf8: f001 8206 beq.w 8005008 - 8003bfc: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8003c00: 2fff cmp r7, #255 ; 0xff - 8003c02: d112 bne.n 8003c2a - 8003c04: f04f 0a00 mov.w sl, #0 - 8003c08: 4639 mov r1, r7 - 8003c0a: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003c0e: f884 a0ff strb.w sl, [r4, #255] ; 0xff - 8003c12: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003c16: 4620 mov r0, r4 - 8003c18: 4798 blx r3 - 8003c1a: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003c1e: f8c4 a100 str.w sl, [r4, #256] ; 0x100 - 8003c22: 3301 adds r3, #1 - 8003c24: 4657 mov r7, sl - 8003c26: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003c2a: 233c movs r3, #60 ; 0x3c - 8003c2c: 1c7a adds r2, r7, #1 - 8003c2e: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8003c32: 55e3 strb r3, [r4, r7] - 8003c34: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8003c38: 4631 mov r1, r6 - 8003c3a: 68ea ldr r2, [r5, #12] - 8003c3c: 4620 mov r0, r4 - 8003c3e: f7fe ffd9 bl 8002bf4 - 8003c42: f894 3104 ldrb.w r3, [r4, #260] ; 0x104 - 8003c46: 2b3e cmp r3, #62 ; 0x3e - 8003c48: f001 806f beq.w 8004d2a - 8003c4c: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8003c50: 2fff cmp r7, #255 ; 0xff - 8003c52: d111 bne.n 8003c78 - 8003c54: 2600 movs r6, #0 - 8003c56: 4639 mov r1, r7 - 8003c58: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003c5c: f884 60ff strb.w r6, [r4, #255] ; 0xff - 8003c60: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003c64: 4620 mov r0, r4 - 8003c66: 4798 blx r3 - 8003c68: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003c6c: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8003c70: 3301 adds r3, #1 - 8003c72: 4637 mov r7, r6 - 8003c74: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003c78: 233e movs r3, #62 ; 0x3e - 8003c7a: 1c7a adds r2, r7, #1 - 8003c7c: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8003c80: 55e3 strb r3, [r4, r7] - 8003c82: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8003c86: f8c4 9114 str.w r9, [r4, #276] ; 0x114 - 8003c8a: f8c4 8144 str.w r8, [r4, #324] ; 0x144 - 8003c8e: 9905 ldr r1, [sp, #20] - 8003c90: 686a ldr r2, [r5, #4] - 8003c92: f7ff b8a2 b.w 8002dda - 8003c96: 4fda ldr r7, [pc, #872] ; (8004000 ) - 8003c98: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003c9c: f107 0811 add.w r8, r7, #17 - 8003ca0: f04f 0900 mov.w r9, #0 - 8003ca4: e016 b.n 8003cd4 - 8003ca6: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003caa: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003cae: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003cb2: 4798 blx r3 - 8003cb4: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003cb8: 3301 adds r3, #1 - 8003cba: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003cbe: 2200 movs r2, #0 - 8003cc0: 2301 movs r3, #1 - 8003cc2: 45b8 cmp r8, r7 - 8003cc4: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003cc8: f804 a002 strb.w sl, [r4, r2] - 8003ccc: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003cd0: f000 84eb beq.w 80046aa - 8003cd4: 2bff cmp r3, #255 ; 0xff - 8003cd6: 4619 mov r1, r3 - 8003cd8: 4620 mov r0, r4 - 8003cda: f817 af01 ldrb.w sl, [r7, #1]! - 8003cde: d0e2 beq.n 8003ca6 - 8003ce0: 461a mov r2, r3 - 8003ce2: 3301 adds r3, #1 - 8003ce4: e7ed b.n 8003cc2 - 8003ce6: 4fc7 ldr r7, [pc, #796] ; (8004004 ) - 8003ce8: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003cec: f107 0815 add.w r8, r7, #21 - 8003cf0: f04f 0900 mov.w r9, #0 - 8003cf4: e016 b.n 8003d24 - 8003cf6: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003cfa: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003cfe: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003d02: 4798 blx r3 - 8003d04: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003d08: 3301 adds r3, #1 - 8003d0a: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003d0e: 2200 movs r2, #0 - 8003d10: 2301 movs r3, #1 - 8003d12: 45b8 cmp r8, r7 - 8003d14: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003d18: f804 a002 strb.w sl, [r4, r2] - 8003d1c: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003d20: f000 84cc beq.w 80046bc - 8003d24: 2bff cmp r3, #255 ; 0xff - 8003d26: 4619 mov r1, r3 - 8003d28: 4620 mov r0, r4 - 8003d2a: f817 af01 ldrb.w sl, [r7, #1]! - 8003d2e: d0e2 beq.n 8003cf6 - 8003d30: 461a mov r2, r3 - 8003d32: 3301 adds r3, #1 - 8003d34: e7ed b.n 8003d12 - 8003d36: 4fb4 ldr r7, [pc, #720] ; (8004008 ) - 8003d38: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003d3c: f107 0819 add.w r8, r7, #25 - 8003d40: f04f 0900 mov.w r9, #0 - 8003d44: e016 b.n 8003d74 - 8003d46: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003d4a: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003d4e: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003d52: 4798 blx r3 - 8003d54: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003d58: 3301 adds r3, #1 - 8003d5a: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003d5e: 2200 movs r2, #0 - 8003d60: 2301 movs r3, #1 - 8003d62: 45b8 cmp r8, r7 - 8003d64: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003d68: f804 a002 strb.w sl, [r4, r2] - 8003d6c: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003d70: f000 8489 beq.w 8004686 - 8003d74: 2bff cmp r3, #255 ; 0xff - 8003d76: 4619 mov r1, r3 - 8003d78: 4620 mov r0, r4 - 8003d7a: f817 af01 ldrb.w sl, [r7, #1]! - 8003d7e: d0e2 beq.n 8003d46 - 8003d80: 461a mov r2, r3 - 8003d82: 3301 adds r3, #1 - 8003d84: e7ed b.n 8003d62 - 8003d86: 4fa1 ldr r7, [pc, #644] ; (800400c ) - 8003d88: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003d8c: f107 0816 add.w r8, r7, #22 - 8003d90: f04f 0900 mov.w r9, #0 - 8003d94: e016 b.n 8003dc4 - 8003d96: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003d9a: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003d9e: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003da2: 4798 blx r3 - 8003da4: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003da8: 3301 adds r3, #1 - 8003daa: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003dae: 2200 movs r2, #0 - 8003db0: 2301 movs r3, #1 - 8003db2: 45b8 cmp r8, r7 - 8003db4: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003db8: f804 a002 strb.w sl, [r4, r2] - 8003dbc: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003dc0: f000 846a beq.w 8004698 - 8003dc4: 2bff cmp r3, #255 ; 0xff - 8003dc6: 4619 mov r1, r3 - 8003dc8: 4620 mov r0, r4 - 8003dca: f817 af01 ldrb.w sl, [r7, #1]! - 8003dce: d0e2 beq.n 8003d96 - 8003dd0: 461a mov r2, r3 - 8003dd2: 3301 adds r3, #1 - 8003dd4: e7ed b.n 8003db2 - 8003dd6: 4f8e ldr r7, [pc, #568] ; (8004010 ) - 8003dd8: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003ddc: f107 0813 add.w r8, r7, #19 - 8003de0: f04f 0900 mov.w r9, #0 - 8003de4: e016 b.n 8003e14 - 8003de6: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003dea: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003dee: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003df2: 4798 blx r3 - 8003df4: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003df8: 3301 adds r3, #1 - 8003dfa: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003dfe: 2200 movs r2, #0 - 8003e00: 2301 movs r3, #1 - 8003e02: 45b8 cmp r8, r7 - 8003e04: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003e08: f804 a002 strb.w sl, [r4, r2] - 8003e0c: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003e10: f000 8427 beq.w 8004662 - 8003e14: 2bff cmp r3, #255 ; 0xff - 8003e16: 4619 mov r1, r3 - 8003e18: 4620 mov r0, r4 - 8003e1a: f817 af01 ldrb.w sl, [r7, #1]! - 8003e1e: d0e2 beq.n 8003de6 - 8003e20: 461a mov r2, r3 - 8003e22: 3301 adds r3, #1 - 8003e24: e7ed b.n 8003e02 - 8003e26: 4f7b ldr r7, [pc, #492] ; (8004014 ) - 8003e28: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003e2c: f107 080f add.w r8, r7, #15 - 8003e30: f04f 0900 mov.w r9, #0 - 8003e34: e016 b.n 8003e64 - 8003e36: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003e3a: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003e3e: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003e42: 4798 blx r3 - 8003e44: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003e48: 3301 adds r3, #1 - 8003e4a: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003e4e: 2200 movs r2, #0 - 8003e50: 2301 movs r3, #1 - 8003e52: 45b8 cmp r8, r7 - 8003e54: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003e58: f804 a002 strb.w sl, [r4, r2] - 8003e5c: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003e60: f000 8408 beq.w 8004674 - 8003e64: 2bff cmp r3, #255 ; 0xff - 8003e66: 4619 mov r1, r3 - 8003e68: 4620 mov r0, r4 - 8003e6a: f817 af01 ldrb.w sl, [r7, #1]! - 8003e6e: d0e2 beq.n 8003e36 - 8003e70: 461a mov r2, r3 - 8003e72: 3301 adds r3, #1 - 8003e74: e7ed b.n 8003e52 - 8003e76: 4f68 ldr r7, [pc, #416] ; (8004018 ) - 8003e78: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003e7c: f107 081a add.w r8, r7, #26 - 8003e80: f04f 0900 mov.w r9, #0 - 8003e84: e016 b.n 8003eb4 - 8003e86: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003e8a: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003e8e: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003e92: 4798 blx r3 - 8003e94: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003e98: 3301 adds r3, #1 - 8003e9a: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003e9e: 2200 movs r2, #0 - 8003ea0: 2301 movs r3, #1 - 8003ea2: 45b8 cmp r8, r7 - 8003ea4: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003ea8: f804 a002 strb.w sl, [r4, r2] - 8003eac: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003eb0: f000 83c5 beq.w 800463e - 8003eb4: 2bff cmp r3, #255 ; 0xff - 8003eb6: 4619 mov r1, r3 - 8003eb8: 4620 mov r0, r4 - 8003eba: f817 af01 ldrb.w sl, [r7, #1]! - 8003ebe: d0e2 beq.n 8003e86 - 8003ec0: 461a mov r2, r3 - 8003ec2: 3301 adds r3, #1 - 8003ec4: e7ed b.n 8003ea2 - 8003ec6: 4f55 ldr r7, [pc, #340] ; (800401c ) - 8003ec8: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003ecc: f107 0811 add.w r8, r7, #17 - 8003ed0: f04f 0900 mov.w r9, #0 - 8003ed4: e016 b.n 8003f04 - 8003ed6: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8003eda: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8003ede: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8003ee2: 4798 blx r3 - 8003ee4: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8003ee8: 3301 adds r3, #1 - 8003eea: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8003eee: 2200 movs r2, #0 - 8003ef0: 2301 movs r3, #1 - 8003ef2: 45b8 cmp r8, r7 - 8003ef4: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8003ef8: f804 a002 strb.w sl, [r4, r2] - 8003efc: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8003f00: f000 83a6 beq.w 8004650 - 8003f04: 2bff cmp r3, #255 ; 0xff - 8003f06: 4619 mov r1, r3 - 8003f08: 4620 mov r0, r4 - 8003f0a: f817 af01 ldrb.w sl, [r7, #1]! - 8003f0e: d0e2 beq.n 8003ed6 - 8003f10: 461a mov r2, r3 - 8003f12: 3301 adds r3, #1 - 8003f14: e7ed b.n 8003ef2 - 8003f16: f8d4 711c ldr.w r7, [r4, #284] ; 0x11c - 8003f1a: f8d5 9008 ldr.w r9, [r5, #8] - 8003f1e: 2f00 cmp r7, #0 - 8003f20: f040 85ae bne.w 8004a80 - 8003f24: f899 2000 ldrb.w r2, [r9] - 8003f28: 2a05 cmp r2, #5 - 8003f2a: f001 8180 beq.w 800522e - 8003f2e: f899 3000 ldrb.w r3, [r9] - 8003f32: 2b23 cmp r3, #35 ; 0x23 - 8003f34: f000 85a0 beq.w 8004a78 - 8003f38: 782a ldrb r2, [r5, #0] - 8003f3a: 429a cmp r2, r3 - 8003f3c: f000 859c beq.w 8004a78 - 8003f40: 2b24 cmp r3, #36 ; 0x24 - 8003f42: f001 8162 beq.w 800520a - 8003f46: f8d4 c114 ldr.w ip, [r4, #276] ; 0x114 - 8003f4a: 46a9 mov r9, r5 - 8003f4c: ab18 add r3, sp, #96 ; 0x60 - 8003f4e: f8d4 2110 ldr.w r2, [r4, #272] ; 0x110 - 8003f52: f843 cd40 str.w ip, [r3, #-64]! - 8003f56: 2100 movs r1, #0 - 8003f58: e9cd 120a strd r1, r2, [sp, #40] ; 0x28 - 8003f5c: f8cd 9024 str.w r9, [sp, #36] ; 0x24 - 8003f60: f8c4 3114 str.w r3, [r4, #276] ; 0x114 - 8003f64: f8d9 2008 ldr.w r2, [r9, #8] - 8003f68: e010 b.n 8003f8c - 8003f6a: 2200 movs r2, #0 - 8003f6c: ab18 add r3, sp, #96 ; 0x60 - 8003f6e: f8d4 1114 ldr.w r1, [r4, #276] ; 0x114 - 8003f72: f843 1d40 str.w r1, [r3, #-64]! - 8003f76: f8d4 1110 ldr.w r1, [r4, #272] ; 0x110 - 8003f7a: 9509 str r5, [sp, #36] ; 0x24 - 8003f7c: 2000 movs r0, #0 - 8003f7e: f8c4 3114 str.w r3, [r4, #276] ; 0x114 - 8003f82: e9cd 010a strd r0, r1, [sp, #40] ; 0x28 - 8003f86: 46a9 mov r9, r5 - 8003f88: 2a00 cmp r2, #0 - 8003f8a: d0eb beq.n 8003f64 - 8003f8c: 4631 mov r1, r6 - 8003f8e: 4620 mov r0, r4 - 8003f90: f7fe fe30 bl 8002bf4 - 8003f94: 9b0a ldr r3, [sp, #40] ; 0x28 - 8003f96: b923 cbnz r3, 8003fa2 - 8003f98: 464a mov r2, r9 - 8003f9a: 4631 mov r1, r6 - 8003f9c: 4620 mov r0, r4 - 8003f9e: f001 fcbf bl 8005920 - 8003fa2: 9b08 ldr r3, [sp, #32] - 8003fa4: f8c4 3114 str.w r3, [r4, #276] ; 0x114 - 8003fa8: b10f cbz r7, 8003fae - 8003faa: f8c4 8110 str.w r8, [r4, #272] ; 0x110 - 8003fae: 9905 ldr r1, [sp, #20] - 8003fb0: 686a ldr r2, [r5, #4] - 8003fb2: f7fe bf12 b.w 8002dda - 8003fb6: f8d4 c114 ldr.w ip, [r4, #276] ; 0x114 - 8003fba: 4663 mov r3, ip - 8003fbc: f1bc 0f00 cmp.w ip, #0 - 8003fc0: d0c3 beq.n 8003f4a - 8003fc2: 6899 ldr r1, [r3, #8] - 8003fc4: b951 cbnz r1, 8003fdc - 8003fc6: 685a ldr r2, [r3, #4] - 8003fc8: 7812 ldrb r2, [r2, #0] - 8003fca: f1a2 0e19 sub.w lr, r2, #25 - 8003fce: f1be 0f02 cmp.w lr, #2 - 8003fd2: f201 80fc bhi.w 80051ce - 8003fd6: 4290 cmp r0, r2 - 8003fd8: f001 80f0 beq.w 80051bc - 8003fdc: 681b ldr r3, [r3, #0] - 8003fde: 2b00 cmp r3, #0 - 8003fe0: d1ef bne.n 8003fc2 - 8003fe2: e7b2 b.n 8003f4a - 8003fe4: e9d5 6702 ldrd r6, r7, [r5, #8] - 8003fe8: 2f00 cmp r7, #0 - 8003fea: f43e aef6 beq.w 8002dda - 8003fee: 4437 add r7, r6 - 8003ff0: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8003ff4: 3f01 subs r7, #1 - 8003ff6: 3e01 subs r6, #1 - 8003ff8: f04f 0800 mov.w r8, #0 - 8003ffc: e027 b.n 800404e - 8003ffe: bf00 nop - 8004000: 08012707 .word 0x08012707 - 8004004: 080126ef .word 0x080126ef - 8004008: 080126d3 .word 0x080126d3 - 800400c: 080126bb .word 0x080126bb - 8004010: 080126a7 .word 0x080126a7 - 8004014: 08012697 .word 0x08012697 - 8004018: 0801267b .word 0x0801267b - 800401c: 08012667 .word 0x08012667 - 8004020: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004024: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004028: f884 80ff strb.w r8, [r4, #255] ; 0xff - 800402c: 4798 blx r3 - 800402e: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004032: 3301 adds r3, #1 - 8004034: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004038: 2200 movs r2, #0 - 800403a: 2301 movs r3, #1 - 800403c: 42b7 cmp r7, r6 - 800403e: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8004042: f804 9002 strb.w r9, [r4, r2] - 8004046: f884 9104 strb.w r9, [r4, #260] ; 0x104 - 800404a: f000 83ce beq.w 80047ea - 800404e: 2bff cmp r3, #255 ; 0xff - 8004050: 4619 mov r1, r3 - 8004052: 4620 mov r0, r4 - 8004054: f816 9f01 ldrb.w r9, [r6, #1]! - 8004058: d0e2 beq.n 8004020 - 800405a: 461a mov r2, r3 - 800405c: 3301 adds r3, #1 - 800405e: e7ed b.n 800403c - 8004060: 4631 mov r1, r6 - 8004062: 68aa ldr r2, [r5, #8] - 8004064: 4620 mov r0, r4 - 8004066: f7fe fdc5 bl 8002bf4 - 800406a: 9905 ldr r1, [sp, #20] - 800406c: 686a ldr r2, [r5, #4] - 800406e: f7fe beb4 b.w 8002dda - 8004072: f016 0604 ands.w r6, r6, #4 - 8004076: 68a8 ldr r0, [r5, #8] - 8004078: f040 8505 bne.w 8004a86 - 800407c: e9d0 7300 ldrd r7, r3, [r0] - 8004080: 2b00 cmp r3, #0 - 8004082: f43e aeaa beq.w 8002dda - 8004086: eb07 0803 add.w r8, r7, r3 - 800408a: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff - 800408e: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8004092: 3f01 subs r7, #1 - 8004094: 46b1 mov r9, r6 - 8004096: e015 b.n 80040c4 - 8004098: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800409c: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80040a0: f884 90ff strb.w r9, [r4, #255] ; 0xff - 80040a4: 4798 blx r3 - 80040a6: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80040aa: 3301 adds r3, #1 - 80040ac: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80040b0: 2200 movs r2, #0 - 80040b2: 2301 movs r3, #1 - 80040b4: 45b8 cmp r8, r7 - 80040b6: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80040ba: 54a6 strb r6, [r4, r2] - 80040bc: f884 6104 strb.w r6, [r4, #260] ; 0x104 - 80040c0: f000 8545 beq.w 8004b4e - 80040c4: 2bff cmp r3, #255 ; 0xff - 80040c6: 4619 mov r1, r3 - 80040c8: 4620 mov r0, r4 - 80040ca: f817 6f01 ldrb.w r6, [r7, #1]! - 80040ce: d0e3 beq.n 8004098 - 80040d0: 461a mov r2, r3 - 80040d2: 3301 adds r3, #1 - 80040d4: e7ee b.n 80040b4 - 80040d6: f8d5 8008 ldr.w r8, [r5, #8] - 80040da: f8d4 3114 ldr.w r3, [r4, #276] ; 0x114 - 80040de: 9302 str r3, [sp, #8] - 80040e0: 2200 movs r2, #0 - 80040e2: f8c4 2114 str.w r2, [r4, #276] ; 0x114 - 80040e6: f1b8 0f00 cmp.w r8, #0 - 80040ea: d025 beq.n 8004138 - 80040ec: f8d4 3110 ldr.w r3, [r4, #272] ; 0x110 - 80040f0: 9301 str r3, [sp, #4] - 80040f2: f10d 0920 add.w r9, sp, #32 - 80040f6: 4623 mov r3, r4 - 80040f8: 4617 mov r7, r2 - 80040fa: 4644 mov r4, r8 - 80040fc: 4692 mov sl, r2 - 80040fe: 4649 mov r1, r9 - 8004100: 46ab mov fp, r5 - 8004102: 4698 mov r8, r3 - 8004104: 7825 ldrb r5, [r4, #0] - 8004106: 9b01 ldr r3, [sp, #4] - 8004108: 600a str r2, [r1, #0] - 800410a: 4628 mov r0, r5 - 800410c: e9c1 4a01 strd r4, sl, [r1, #4] - 8004110: 60cb str r3, [r1, #12] - 8004112: 3701 adds r7, #1 - 8004114: 460a mov r2, r1 - 8004116: f7fc f97f bl 8000418 - 800411a: 2800 cmp r0, #0 - 800411c: f000 87c8 beq.w 80050b0 - 8004120: 68a4 ldr r4, [r4, #8] - 8004122: 2c00 cmp r4, #0 - 8004124: f001 8057 beq.w 80051d6 - 8004128: 2f04 cmp r7, #4 - 800412a: f101 0110 add.w r1, r1, #16 - 800412e: d1e9 bne.n 8004104 - 8004130: 4644 mov r4, r8 - 8004132: 465d mov r5, fp - 8004134: f8c8 2114 str.w r2, [r8, #276] ; 0x114 - 8004138: 2301 movs r3, #1 - 800413a: f8c4 3118 str.w r3, [r4, #280] ; 0x118 - 800413e: 9905 ldr r1, [sp, #20] - 8004140: 686a ldr r2, [r5, #4] - 8004142: f7fe be4a b.w 8002dda - 8004146: f016 0604 ands.w r6, r6, #4 - 800414a: 68af ldr r7, [r5, #8] - 800414c: f040 8405 bne.w 800495a - 8004150: 68eb ldr r3, [r5, #12] - 8004152: 2b00 cmp r3, #0 - 8004154: f43e ae41 beq.w 8002dda - 8004158: eb07 0803 add.w r8, r7, r3 - 800415c: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff - 8004160: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8004164: 3f01 subs r7, #1 - 8004166: 46b1 mov r9, r6 - 8004168: e015 b.n 8004196 - 800416a: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800416e: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004172: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8004176: 4798 blx r3 - 8004178: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800417c: 3301 adds r3, #1 - 800417e: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004182: 2200 movs r2, #0 - 8004184: 2301 movs r3, #1 - 8004186: 45b8 cmp r8, r7 - 8004188: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800418c: 54a6 strb r6, [r4, r2] - 800418e: f884 6104 strb.w r6, [r4, #260] ; 0x104 - 8004192: f000 84e0 beq.w 8004b56 - 8004196: 2bff cmp r3, #255 ; 0xff - 8004198: 4619 mov r1, r3 - 800419a: 4620 mov r0, r4 - 800419c: f817 6f01 ldrb.w r6, [r7, #1]! - 80041a0: d0e3 beq.n 800416a - 80041a2: 461a mov r2, r3 - 80041a4: 3301 adds r3, #1 - 80041a6: e7ee b.n 8004186 - 80041a8: 68aa ldr r2, [r5, #8] - 80041aa: 4631 mov r1, r6 - 80041ac: 4620 mov r0, r4 - 80041ae: f7fe fd21 bl 8002bf4 - 80041b2: f016 0904 ands.w r9, r6, #4 - 80041b6: f000 8681 beq.w 8004ebc - 80041ba: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 80041be: 2fff cmp r7, #255 ; 0xff - 80041c0: d112 bne.n 80041e8 - 80041c2: f04f 0800 mov.w r8, #0 - 80041c6: 4639 mov r1, r7 - 80041c8: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80041cc: f884 80ff strb.w r8, [r4, #255] ; 0xff - 80041d0: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80041d4: 4620 mov r0, r4 - 80041d6: 4798 blx r3 - 80041d8: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80041dc: f8c4 8100 str.w r8, [r4, #256] ; 0x100 - 80041e0: 3301 adds r3, #1 - 80041e2: 4647 mov r7, r8 - 80041e4: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80041e8: 232e movs r3, #46 ; 0x2e - 80041ea: 1c7a adds r2, r7, #1 - 80041ec: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 80041f0: 55e3 strb r3, [r4, r7] - 80041f2: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80041f6: 68ef ldr r7, [r5, #12] - 80041f8: 783b ldrb r3, [r7, #0] - 80041fa: 2b46 cmp r3, #70 ; 0x46 - 80041fc: f000 873a beq.w 8005074 - 8004200: 463a mov r2, r7 - 8004202: 4631 mov r1, r6 - 8004204: 4620 mov r0, r4 - 8004206: f7fe fcf5 bl 8002bf4 - 800420a: 9905 ldr r1, [sp, #20] - 800420c: 686a ldr r2, [r5, #4] - 800420e: f7fe bde4 b.w 8002dda - 8004212: 2301 movs r3, #1 - 8004214: f8c4 3118 str.w r3, [r4, #280] ; 0x118 - 8004218: 686a ldr r2, [r5, #4] - 800421a: f7fe bdde b.w 8002dda - 800421e: 3701 adds r7, #1 - 8004220: 454f cmp r7, r9 - 8004222: f47e ae2b bne.w 8002e7c - 8004226: 9d03 ldr r5, [sp, #12] - 8004228: 9905 ldr r1, [sp, #20] - 800422a: 686a ldr r2, [r5, #4] - 800422c: f7fe bdd5 b.w 8002dda - 8004230: 4631 mov r1, r6 - 8004232: 68aa ldr r2, [r5, #8] - 8004234: 4620 mov r0, r4 - 8004236: f7fe fcdd bl 8002bf4 - 800423a: 9905 ldr r1, [sp, #20] - 800423c: 686a ldr r2, [r5, #4] - 800423e: f7fe bdcc b.w 8002dda - 8004242: 4631 mov r1, r6 - 8004244: 68aa ldr r2, [r5, #8] - 8004246: 4620 mov r0, r4 - 8004248: f7fe fcd4 bl 8002bf4 - 800424c: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8004250: 2fff cmp r7, #255 ; 0xff - 8004252: d111 bne.n 8004278 - 8004254: 2600 movs r6, #0 - 8004256: 4639 mov r1, r7 - 8004258: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800425c: f884 60ff strb.w r6, [r4, #255] ; 0xff - 8004260: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004264: 4620 mov r0, r4 - 8004266: 4798 blx r3 - 8004268: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800426c: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8004270: 3301 adds r3, #1 - 8004272: 4637 mov r7, r6 - 8004274: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004278: 1c7a adds r2, r7, #1 - 800427a: 2329 movs r3, #41 ; 0x29 - 800427c: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8004280: 55e3 strb r3, [r4, r7] - 8004282: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8004286: 686a ldr r2, [r5, #4] - 8004288: 9905 ldr r1, [sp, #20] - 800428a: f7fe bda6 b.w 8002dda - 800428e: f8d4 311c ldr.w r3, [r4, #284] ; 0x11c - 8004292: 68aa ldr r2, [r5, #8] - 8004294: 4fd3 ldr r7, [pc, #844] ; (80045e4 ) - 8004296: 3301 adds r3, #1 - 8004298: 4631 mov r1, r6 - 800429a: f8c4 311c str.w r3, [r4, #284] ; 0x11c - 800429e: 4620 mov r0, r4 - 80042a0: f7fe fca8 bl 8002bf4 - 80042a4: f8d4 211c ldr.w r2, [r4, #284] ; 0x11c - 80042a8: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80042ac: 3a01 subs r2, #1 - 80042ae: f8c4 211c str.w r2, [r4, #284] ; 0x11c - 80042b2: 1cbe adds r6, r7, #2 - 80042b4: f04f 0800 mov.w r8, #0 - 80042b8: e015 b.n 80042e6 - 80042ba: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80042be: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80042c2: f884 80ff strb.w r8, [r4, #255] ; 0xff - 80042c6: 4798 blx r3 - 80042c8: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80042cc: 3301 adds r3, #1 - 80042ce: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80042d2: 2200 movs r2, #0 - 80042d4: 2301 movs r3, #1 - 80042d6: 42b7 cmp r7, r6 - 80042d8: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80042dc: f804 9002 strb.w r9, [r4, r2] - 80042e0: f884 9104 strb.w r9, [r4, #260] ; 0x104 - 80042e4: d011 beq.n 800430a - 80042e6: 2bff cmp r3, #255 ; 0xff - 80042e8: 4619 mov r1, r3 - 80042ea: 4620 mov r0, r4 - 80042ec: f817 9b01 ldrb.w r9, [r7], #1 - 80042f0: d0e3 beq.n 80042ba - 80042f2: 461a mov r2, r3 - 80042f4: 3301 adds r3, #1 - 80042f6: e7ee b.n 80042d6 - 80042f8: 4631 mov r1, r6 - 80042fa: 68aa ldr r2, [r5, #8] - 80042fc: 4620 mov r0, r4 - 80042fe: f7fe fc79 bl 8002bf4 - 8004302: 9905 ldr r1, [sp, #20] - 8004304: 686a ldr r2, [r5, #4] - 8004306: f7fe bd68 b.w 8002dda - 800430a: 68ea ldr r2, [r5, #12] - 800430c: 49b6 ldr r1, [pc, #728] ; (80045e8 ) - 800430e: 3201 adds r2, #1 - 8004310: a808 add r0, sp, #32 - 8004312: f00a faa3 bl 800e85c - 8004316: a808 add r0, sp, #32 - 8004318: f002 fd5c bl 8006dd4 - 800431c: b328 cbz r0, 800436a - 800431e: ae08 add r6, sp, #32 - 8004320: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8004324: 1837 adds r7, r6, r0 - 8004326: f04f 0800 mov.w r8, #0 - 800432a: e015 b.n 8004358 - 800432c: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004330: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004334: f884 80ff strb.w r8, [r4, #255] ; 0xff - 8004338: 4798 blx r3 - 800433a: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800433e: 3301 adds r3, #1 - 8004340: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004344: 2200 movs r2, #0 - 8004346: 2301 movs r3, #1 - 8004348: 42be cmp r6, r7 - 800434a: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800434e: f804 9002 strb.w r9, [r4, r2] - 8004352: f884 9104 strb.w r9, [r4, #260] ; 0x104 - 8004356: d00a beq.n 800436e - 8004358: 2bff cmp r3, #255 ; 0xff - 800435a: 4619 mov r1, r3 - 800435c: 4620 mov r0, r4 - 800435e: f816 9b01 ldrb.w r9, [r6], #1 - 8004362: d0e3 beq.n 800432c - 8004364: 461a mov r2, r3 - 8004366: 3301 adds r3, #1 - 8004368: e7ee b.n 8004348 - 800436a: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 800436e: 2bff cmp r3, #255 ; 0xff - 8004370: d110 bne.n 8004394 - 8004372: 2600 movs r6, #0 - 8004374: 4619 mov r1, r3 - 8004376: f884 60ff strb.w r6, [r4, #255] ; 0xff - 800437a: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800437e: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004382: 4620 mov r0, r4 - 8004384: 4798 blx r3 - 8004386: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800438a: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 800438e: 3301 adds r3, #1 - 8004390: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004394: f8d4 2100 ldr.w r2, [r4, #256] ; 0x100 - 8004398: 9905 ldr r1, [sp, #20] - 800439a: 1c50 adds r0, r2, #1 - 800439c: 237d movs r3, #125 ; 0x7d - 800439e: f8c4 0100 str.w r0, [r4, #256] ; 0x100 - 80043a2: 54a3 strb r3, [r4, r2] - 80043a4: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80043a8: 686a ldr r2, [r5, #4] - 80043aa: f7fe bd16 b.w 8002dda - 80043ae: 4631 mov r1, r6 - 80043b0: 68aa ldr r2, [r5, #8] - 80043b2: 4620 mov r0, r4 - 80043b4: f7fe fc1e bl 8002bf4 - 80043b8: 9905 ldr r1, [sp, #20] - 80043ba: 686a ldr r2, [r5, #4] - 80043bc: f7fe bd0d b.w 8002dda - 80043c0: 68aa ldr r2, [r5, #8] - 80043c2: 4989 ldr r1, [pc, #548] ; (80045e8 ) - 80043c4: 3201 adds r2, #1 - 80043c6: a808 add r0, sp, #32 - 80043c8: f00a fa48 bl 800e85c - 80043cc: a808 add r0, sp, #32 - 80043ce: f002 fd01 bl 8006dd4 - 80043d2: 2800 cmp r0, #0 - 80043d4: d071 beq.n 80044ba - 80043d6: ae08 add r6, sp, #32 - 80043d8: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80043dc: 1837 adds r7, r6, r0 - 80043de: f04f 0800 mov.w r8, #0 - 80043e2: e015 b.n 8004410 - 80043e4: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80043e8: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80043ec: f884 80ff strb.w r8, [r4, #255] ; 0xff - 80043f0: 4798 blx r3 - 80043f2: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80043f6: 3301 adds r3, #1 - 80043f8: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80043fc: 2200 movs r2, #0 - 80043fe: 2301 movs r3, #1 - 8004400: 42b7 cmp r7, r6 - 8004402: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8004406: f804 9002 strb.w r9, [r4, r2] - 800440a: f884 9104 strb.w r9, [r4, #260] ; 0x104 - 800440e: d056 beq.n 80044be - 8004410: 2bff cmp r3, #255 ; 0xff - 8004412: 4619 mov r1, r3 - 8004414: 4620 mov r0, r4 - 8004416: f816 9b01 ldrb.w r9, [r6], #1 - 800441a: d0e3 beq.n 80043e4 - 800441c: 461a mov r2, r3 - 800441e: 3301 adds r3, #1 - 8004420: e7ee b.n 8004400 - 8004422: 4631 mov r1, r6 - 8004424: 68ea ldr r2, [r5, #12] - 8004426: 4620 mov r0, r4 - 8004428: f7fe fbe4 bl 8002bf4 - 800442c: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8004430: 2fff cmp r7, #255 ; 0xff - 8004432: d111 bne.n 8004458 - 8004434: 2600 movs r6, #0 - 8004436: 4639 mov r1, r7 - 8004438: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800443c: f884 60ff strb.w r6, [r4, #255] ; 0xff - 8004440: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004444: 4620 mov r0, r4 - 8004446: 4798 blx r3 - 8004448: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800444c: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8004450: 3301 adds r3, #1 - 8004452: 4637 mov r7, r6 - 8004454: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004458: 1c7a adds r2, r7, #1 - 800445a: 235d movs r3, #93 ; 0x5d - 800445c: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8004460: 55e3 strb r3, [r4, r7] - 8004462: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8004466: 686a ldr r2, [r5, #4] - 8004468: 9905 ldr r1, [sp, #20] - 800446a: f7fe bcb6 b.w 8002dda - 800446e: 4631 mov r1, r6 - 8004470: 68ea ldr r2, [r5, #12] - 8004472: 4620 mov r0, r4 - 8004474: f7fe fbbe bl 8002bf4 - 8004478: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 800447c: 2fff cmp r7, #255 ; 0xff - 800447e: d111 bne.n 80044a4 - 8004480: 2600 movs r6, #0 - 8004482: 4639 mov r1, r7 - 8004484: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004488: f884 60ff strb.w r6, [r4, #255] ; 0xff - 800448c: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004490: 4620 mov r0, r4 - 8004492: 4798 blx r3 - 8004494: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004498: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 800449c: 3301 adds r3, #1 - 800449e: 4637 mov r7, r6 - 80044a0: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80044a4: 1c7a adds r2, r7, #1 - 80044a6: 235d movs r3, #93 ; 0x5d - 80044a8: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 80044ac: 55e3 strb r3, [r4, r7] - 80044ae: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80044b2: 686a ldr r2, [r5, #4] - 80044b4: 9905 ldr r1, [sp, #20] - 80044b6: f7fe bc90 b.w 8002dda - 80044ba: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80044be: 2bff cmp r3, #255 ; 0xff - 80044c0: d110 bne.n 80044e4 - 80044c2: 2600 movs r6, #0 - 80044c4: 4619 mov r1, r3 - 80044c6: f884 60ff strb.w r6, [r4, #255] ; 0xff - 80044ca: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80044ce: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80044d2: 4620 mov r0, r4 - 80044d4: 4798 blx r3 - 80044d6: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80044da: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 80044de: 3301 adds r3, #1 - 80044e0: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80044e4: f8d4 2100 ldr.w r2, [r4, #256] ; 0x100 - 80044e8: 9905 ldr r1, [sp, #20] - 80044ea: 1c50 adds r0, r2, #1 - 80044ec: 237d movs r3, #125 ; 0x7d - 80044ee: f8c4 0100 str.w r0, [r4, #256] ; 0x100 - 80044f2: 54a3 strb r3, [r4, r2] - 80044f4: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80044f8: 686a ldr r2, [r5, #4] - 80044fa: f7fe bc6e b.w 8002dda - 80044fe: 4631 mov r1, r6 - 8004500: 68aa ldr r2, [r5, #8] - 8004502: 4620 mov r0, r4 - 8004504: f7fe fb76 bl 8002bf4 - 8004508: 9905 ldr r1, [sp, #20] - 800450a: 686a ldr r2, [r5, #4] - 800450c: f7fe bc65 b.w 8002dda - 8004510: 9905 ldr r1, [sp, #20] - 8004512: 686a ldr r2, [r5, #4] - 8004514: f7fe bc61 b.w 8002dda - 8004518: 4631 mov r1, r6 - 800451a: 68aa ldr r2, [r5, #8] - 800451c: 4620 mov r0, r4 - 800451e: f7fe fb69 bl 8002bf4 - 8004522: 9905 ldr r1, [sp, #20] - 8004524: 686a ldr r2, [r5, #4] - 8004526: f7fe bc58 b.w 8002dda - 800452a: 4631 mov r1, r6 - 800452c: 68ea ldr r2, [r5, #12] - 800452e: 4620 mov r0, r4 - 8004530: f7fe fb60 bl 8002bf4 - 8004534: 9905 ldr r1, [sp, #20] - 8004536: 686a ldr r2, [r5, #4] - 8004538: f7fe bc4f b.w 8002dda - 800453c: f8d4 2144 ldr.w r2, [r4, #324] ; 0x144 - 8004540: b13a cbz r2, 8004552 - 8004542: ab18 add r3, sp, #96 ; 0x60 - 8004544: f8d4 1110 ldr.w r1, [r4, #272] ; 0x110 - 8004548: f843 1d40 str.w r1, [r3, #-64]! - 800454c: 9209 str r2, [sp, #36] ; 0x24 - 800454e: f8c4 3110 str.w r3, [r4, #272] ; 0x110 - 8004552: 68aa ldr r2, [r5, #8] - 8004554: 7813 ldrb r3, [r2, #0] - 8004556: 2b04 cmp r3, #4 - 8004558: f000 84d6 beq.w 8004f08 - 800455c: 4631 mov r1, r6 - 800455e: 4620 mov r0, r4 - 8004560: f7fe fb48 bl 8002bf4 - 8004564: f8d4 3144 ldr.w r3, [r4, #324] ; 0x144 - 8004568: b113 cbz r3, 8004570 - 800456a: 9b08 ldr r3, [sp, #32] - 800456c: f8c4 3110 str.w r3, [r4, #272] ; 0x110 - 8004570: 9905 ldr r1, [sp, #20] - 8004572: 686a ldr r2, [r5, #4] - 8004574: f7fe bc31 b.w 8002dda - 8004578: f8da 6004 ldr.w r6, [sl, #4] - 800457c: 7832 ldrb r2, [r6, #0] - 800457e: 3a61 subs r2, #97 ; 0x61 - 8004580: 2a19 cmp r2, #25 - 8004582: d81d bhi.n 80045c0 - 8004584: 2bff cmp r3, #255 ; 0xff - 8004586: d110 bne.n 80045aa - 8004588: 2600 movs r6, #0 - 800458a: 4619 mov r1, r3 - 800458c: f884 60ff strb.w r6, [r4, #255] ; 0xff - 8004590: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004594: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004598: 4620 mov r0, r4 - 800459a: 4798 blx r3 - 800459c: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80045a0: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 80045a4: 3301 adds r3, #1 - 80045a6: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80045aa: f8d4 2100 ldr.w r2, [r4, #256] ; 0x100 - 80045ae: 2320 movs r3, #32 - 80045b0: 1c51 adds r1, r2, #1 - 80045b2: f8c4 1100 str.w r1, [r4, #256] ; 0x100 - 80045b6: 54a3 strb r3, [r4, r2] - 80045b8: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80045bc: f8da 6004 ldr.w r6, [sl, #4] - 80045c0: 19f3 adds r3, r6, r7 - 80045c2: f813 3c01 ldrb.w r3, [r3, #-1] - 80045c6: 2b20 cmp r3, #32 - 80045c8: bf08 it eq - 80045ca: f107 37ff addeq.w r7, r7, #4294967295 ; 0xffffffff - 80045ce: 2f00 cmp r7, #0 - 80045d0: f000 86fb beq.w 80053ca - 80045d4: 3e01 subs r6, #1 - 80045d6: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80045da: 4437 add r7, r6 - 80045dc: f04f 0800 mov.w r8, #0 - 80045e0: e01b b.n 800461a - 80045e2: bf00 nop - 80045e4: 08012824 .word 0x08012824 - 80045e8: 08012574 .word 0x08012574 - 80045ec: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80045f0: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80045f4: f884 80ff strb.w r8, [r4, #255] ; 0xff - 80045f8: 4798 blx r3 - 80045fa: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80045fe: 3301 adds r3, #1 - 8004600: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004604: 2200 movs r2, #0 - 8004606: 2301 movs r3, #1 - 8004608: 42be cmp r6, r7 - 800460a: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800460e: f804 9002 strb.w r9, [r4, r2] - 8004612: f884 9104 strb.w r9, [r4, #260] ; 0x104 - 8004616: f000 80ec beq.w 80047f2 - 800461a: 2bff cmp r3, #255 ; 0xff - 800461c: 4619 mov r1, r3 - 800461e: 4620 mov r0, r4 - 8004620: f816 9f01 ldrb.w r9, [r6, #1]! - 8004624: d0e2 beq.n 80045ec - 8004626: 461a mov r2, r3 - 8004628: 3301 adds r3, #1 - 800462a: e7ed b.n 8004608 - 800462c: 4631 mov r1, r6 - 800462e: 68aa ldr r2, [r5, #8] - 8004630: 4620 mov r0, r4 - 8004632: f7fe fadf bl 8002bf4 - 8004636: 9905 ldr r1, [sp, #20] - 8004638: 686a ldr r2, [r5, #4] - 800463a: f7fe bbce b.w 8002dda - 800463e: 4631 mov r1, r6 - 8004640: 68aa ldr r2, [r5, #8] - 8004642: 4620 mov r0, r4 - 8004644: f7fe fad6 bl 8002bf4 - 8004648: 9905 ldr r1, [sp, #20] - 800464a: 686a ldr r2, [r5, #4] - 800464c: f7fe bbc5 b.w 8002dda - 8004650: 4631 mov r1, r6 - 8004652: 68aa ldr r2, [r5, #8] - 8004654: 4620 mov r0, r4 - 8004656: f7fe facd bl 8002bf4 - 800465a: 9905 ldr r1, [sp, #20] - 800465c: 686a ldr r2, [r5, #4] - 800465e: f7fe bbbc b.w 8002dda - 8004662: 4631 mov r1, r6 - 8004664: 68aa ldr r2, [r5, #8] - 8004666: 4620 mov r0, r4 - 8004668: f7fe fac4 bl 8002bf4 - 800466c: 9905 ldr r1, [sp, #20] - 800466e: 686a ldr r2, [r5, #4] - 8004670: f7fe bbb3 b.w 8002dda - 8004674: 4631 mov r1, r6 - 8004676: 68aa ldr r2, [r5, #8] - 8004678: 4620 mov r0, r4 - 800467a: f7fe fabb bl 8002bf4 - 800467e: 9905 ldr r1, [sp, #20] - 8004680: 686a ldr r2, [r5, #4] - 8004682: f7fe bbaa b.w 8002dda - 8004686: 4631 mov r1, r6 - 8004688: 68aa ldr r2, [r5, #8] - 800468a: 4620 mov r0, r4 - 800468c: f7fe fab2 bl 8002bf4 - 8004690: 9905 ldr r1, [sp, #20] - 8004692: 686a ldr r2, [r5, #4] - 8004694: f7fe bba1 b.w 8002dda - 8004698: 4631 mov r1, r6 - 800469a: 68aa ldr r2, [r5, #8] - 800469c: 4620 mov r0, r4 - 800469e: f7fe faa9 bl 8002bf4 - 80046a2: 9905 ldr r1, [sp, #20] - 80046a4: 686a ldr r2, [r5, #4] - 80046a6: f7fe bb98 b.w 8002dda - 80046aa: 4631 mov r1, r6 - 80046ac: 68aa ldr r2, [r5, #8] - 80046ae: 4620 mov r0, r4 - 80046b0: f7fe faa0 bl 8002bf4 - 80046b4: 9905 ldr r1, [sp, #20] - 80046b6: 686a ldr r2, [r5, #4] - 80046b8: f7fe bb8f b.w 8002dda - 80046bc: 4fcf ldr r7, [pc, #828] ; (80049fc ) - 80046be: 68ea ldr r2, [r5, #12] - 80046c0: 4631 mov r1, r6 - 80046c2: 4620 mov r0, r4 - 80046c4: f7fe fa96 bl 8002bf4 - 80046c8: f107 0805 add.w r8, r7, #5 - 80046cc: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80046d0: f04f 0900 mov.w r9, #0 - 80046d4: e015 b.n 8004702 - 80046d6: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80046da: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80046de: f884 90ff strb.w r9, [r4, #255] ; 0xff - 80046e2: 4798 blx r3 - 80046e4: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80046e8: 3301 adds r3, #1 - 80046ea: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80046ee: 2200 movs r2, #0 - 80046f0: 2301 movs r3, #1 - 80046f2: 4547 cmp r7, r8 - 80046f4: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80046f8: f804 a002 strb.w sl, [r4, r2] - 80046fc: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8004700: d008 beq.n 8004714 - 8004702: 2bff cmp r3, #255 ; 0xff - 8004704: 4619 mov r1, r3 - 8004706: 4620 mov r0, r4 - 8004708: f817 ab01 ldrb.w sl, [r7], #1 - 800470c: d0e3 beq.n 80046d6 - 800470e: 461a mov r2, r3 - 8004710: 3301 adds r3, #1 - 8004712: e7ee b.n 80046f2 - 8004714: 4631 mov r1, r6 - 8004716: 68aa ldr r2, [r5, #8] - 8004718: 4620 mov r0, r4 - 800471a: f7fe fa6b bl 8002bf4 - 800471e: 9905 ldr r1, [sp, #20] - 8004720: 686a ldr r2, [r5, #4] - 8004722: f7fe bb5a b.w 8002dda - 8004726: 4fb6 ldr r7, [pc, #728] ; (8004a00 ) - 8004728: 68aa ldr r2, [r5, #8] - 800472a: 4631 mov r1, r6 - 800472c: 4620 mov r0, r4 - 800472e: f7fe fa61 bl 8002bf4 - 8004732: f107 0804 add.w r8, r7, #4 - 8004736: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 800473a: f04f 0900 mov.w r9, #0 - 800473e: e015 b.n 800476c - 8004740: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004744: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004748: f884 90ff strb.w r9, [r4, #255] ; 0xff - 800474c: 4798 blx r3 - 800474e: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004752: 3301 adds r3, #1 - 8004754: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004758: 2200 movs r2, #0 - 800475a: 2301 movs r3, #1 - 800475c: 45b8 cmp r8, r7 - 800475e: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8004762: f804 a002 strb.w sl, [r4, r2] - 8004766: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 800476a: d008 beq.n 800477e - 800476c: 2bff cmp r3, #255 ; 0xff - 800476e: 4619 mov r1, r3 - 8004770: 4620 mov r0, r4 - 8004772: f817 ab01 ldrb.w sl, [r7], #1 - 8004776: d0e3 beq.n 8004740 - 8004778: 461a mov r2, r3 - 800477a: 3301 adds r3, #1 - 800477c: e7ee b.n 800475c - 800477e: 4631 mov r1, r6 - 8004780: 68ea ldr r2, [r5, #12] - 8004782: 4620 mov r0, r4 - 8004784: f7fe fa36 bl 8002bf4 - 8004788: 9905 ldr r1, [sp, #20] - 800478a: 686a ldr r2, [r5, #4] - 800478c: f7fe bb25 b.w 8002dda - 8004790: 4631 mov r1, r6 - 8004792: 68aa ldr r2, [r5, #8] - 8004794: 4620 mov r0, r4 - 8004796: f7fe fa2d bl 8002bf4 - 800479a: 9905 ldr r1, [sp, #20] - 800479c: 686a ldr r2, [r5, #4] - 800479e: f7fe bb1c b.w 8002dda - 80047a2: 4631 mov r1, r6 - 80047a4: 68aa ldr r2, [r5, #8] - 80047a6: 4620 mov r0, r4 - 80047a8: f7fe fa24 bl 8002bf4 - 80047ac: 9905 ldr r1, [sp, #20] - 80047ae: 686a ldr r2, [r5, #4] - 80047b0: f7fe bb13 b.w 8002dda - 80047b4: 4631 mov r1, r6 - 80047b6: 68aa ldr r2, [r5, #8] - 80047b8: 4620 mov r0, r4 - 80047ba: f7fe fa1b bl 8002bf4 - 80047be: 9905 ldr r1, [sp, #20] - 80047c0: 686a ldr r2, [r5, #4] - 80047c2: f7fe bb0a b.w 8002dda - 80047c6: 4631 mov r1, r6 - 80047c8: 68aa ldr r2, [r5, #8] - 80047ca: 4620 mov r0, r4 - 80047cc: f7fe fa12 bl 8002bf4 - 80047d0: 9905 ldr r1, [sp, #20] - 80047d2: 686a ldr r2, [r5, #4] - 80047d4: f7fe bb01 b.w 8002dda - 80047d8: 4631 mov r1, r6 - 80047da: 68aa ldr r2, [r5, #8] - 80047dc: 4620 mov r0, r4 - 80047de: f7fe fa09 bl 8002bf4 - 80047e2: 9905 ldr r1, [sp, #20] - 80047e4: 686a ldr r2, [r5, #4] - 80047e6: f7fe baf8 b.w 8002dda - 80047ea: 9905 ldr r1, [sp, #20] - 80047ec: 686a ldr r2, [r5, #4] - 80047ee: f7fe baf4 b.w 8002dda - 80047f2: 9905 ldr r1, [sp, #20] - 80047f4: 686a ldr r2, [r5, #4] - 80047f6: f7fe baf0 b.w 8002dda - 80047fa: 4631 mov r1, r6 - 80047fc: 68ea ldr r2, [r5, #12] - 80047fe: 9301 str r3, [sp, #4] - 8004800: 4620 mov r0, r4 - 8004802: f8d4 6124 ldr.w r6, [r4, #292] ; 0x124 - 8004806: f7fe f9f5 bl 8002bf4 - 800480a: f8d4 2124 ldr.w r2, [r4, #292] ; 0x124 - 800480e: 9b01 ldr r3, [sp, #4] - 8004810: 4296 cmp r6, r2 - 8004812: f000 8441 beq.w 8005098 - 8004816: 9905 ldr r1, [sp, #20] - 8004818: 686a ldr r2, [r5, #4] - 800481a: f7fe bade b.w 8002dda - 800481e: 4e79 ldr r6, [pc, #484] ; (8004a04 ) - 8004820: 4690 mov r8, r2 - 8004822: f106 0906 add.w r9, r6, #6 - 8004826: e014 b.n 8004852 - 8004828: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800482c: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004830: f884 80ff strb.w r8, [r4, #255] ; 0xff - 8004834: 4798 blx r3 - 8004836: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800483a: 3301 adds r3, #1 - 800483c: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004840: 2200 movs r2, #0 - 8004842: 2301 movs r3, #1 - 8004844: 45b1 cmp r9, r6 - 8004846: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800484a: 54a7 strb r7, [r4, r2] - 800484c: f884 7104 strb.w r7, [r4, #260] ; 0x104 - 8004850: d008 beq.n 8004864 - 8004852: 2bff cmp r3, #255 ; 0xff - 8004854: 4619 mov r1, r3 - 8004856: 4620 mov r0, r4 - 8004858: f816 7b01 ldrb.w r7, [r6], #1 - 800485c: d0e4 beq.n 8004828 - 800485e: 461a mov r2, r3 - 8004860: 3301 adds r3, #1 - 8004862: e7ef b.n 8004844 - 8004864: 9905 ldr r1, [sp, #20] - 8004866: 686a ldr r2, [r5, #4] - 8004868: f7fe bab7 b.w 8002dda - 800486c: 4642 mov r2, r8 - 800486e: a808 add r0, sp, #32 - 8004870: 4965 ldr r1, [pc, #404] ; (8004a08 ) - 8004872: f009 fff3 bl 800e85c - 8004876: a808 add r0, sp, #32 - 8004878: f002 faac bl 8006dd4 - 800487c: b328 cbz r0, 80048ca - 800487e: ae08 add r6, sp, #32 - 8004880: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8004884: eb06 0900 add.w r9, r6, r0 - 8004888: f04f 0800 mov.w r8, #0 - 800488c: e014 b.n 80048b8 - 800488e: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004892: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004896: f884 80ff strb.w r8, [r4, #255] ; 0xff - 800489a: 4798 blx r3 - 800489c: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80048a0: 3301 adds r3, #1 - 80048a2: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80048a6: 2200 movs r2, #0 - 80048a8: 2301 movs r3, #1 - 80048aa: 45b1 cmp r9, r6 - 80048ac: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80048b0: 54a7 strb r7, [r4, r2] - 80048b2: f884 7104 strb.w r7, [r4, #260] ; 0x104 - 80048b6: d008 beq.n 80048ca - 80048b8: 2bff cmp r3, #255 ; 0xff - 80048ba: 4619 mov r1, r3 - 80048bc: 4620 mov r0, r4 - 80048be: f816 7b01 ldrb.w r7, [r6], #1 - 80048c2: d0e4 beq.n 800488e - 80048c4: 461a mov r2, r3 - 80048c6: 3301 adds r3, #1 - 80048c8: e7ef b.n 80048aa - 80048ca: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 80048ce: 2fff cmp r7, #255 ; 0xff - 80048d0: d111 bne.n 80048f6 - 80048d2: 2600 movs r6, #0 - 80048d4: 4639 mov r1, r7 - 80048d6: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80048da: f884 60ff strb.w r6, [r4, #255] ; 0xff - 80048de: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80048e2: 4620 mov r0, r4 - 80048e4: 4798 blx r3 - 80048e6: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80048ea: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 80048ee: 3301 adds r3, #1 - 80048f0: 4637 mov r7, r6 - 80048f2: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80048f6: 1c7a adds r2, r7, #1 - 80048f8: 237d movs r3, #125 ; 0x7d - 80048fa: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 80048fe: 55e3 strb r3, [r4, r7] - 8004900: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8004904: 686a ldr r2, [r5, #4] - 8004906: 9905 ldr r1, [sp, #20] - 8004908: f7fe ba67 b.w 8002dda - 800490c: 4e3f ldr r6, [pc, #252] ; (8004a0c ) - 800490e: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8004912: f106 0905 add.w r9, r6, #5 - 8004916: f04f 0800 mov.w r8, #0 - 800491a: e015 b.n 8004948 - 800491c: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004920: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004924: f884 80ff strb.w r8, [r4, #255] ; 0xff - 8004928: 4798 blx r3 - 800492a: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800492e: 3301 adds r3, #1 - 8004930: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004934: 2200 movs r2, #0 - 8004936: 2301 movs r3, #1 - 8004938: 45b1 cmp r9, r6 - 800493a: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800493e: 54a7 strb r7, [r4, r2] - 8004940: f884 7104 strb.w r7, [r4, #260] ; 0x104 - 8004944: f000 80cf beq.w 8004ae6 - 8004948: 2bff cmp r3, #255 ; 0xff - 800494a: 4619 mov r1, r3 - 800494c: 4620 mov r0, r4 - 800494e: f816 7b01 ldrb.w r7, [r6], #1 - 8004952: d0e3 beq.n 800491c - 8004954: 461a mov r2, r3 - 8004956: 3301 adds r3, #1 - 8004958: e7ee b.n 8004938 - 800495a: 68ee ldr r6, [r5, #12] - 800495c: 443e add r6, r7 - 800495e: 42be cmp r6, r7 - 8004960: f67e aa3b bls.w 8002dda - 8004964: f04f 0800 mov.w r8, #0 - 8004968: e018 b.n 800499c - 800496a: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800496e: f884 80ff strb.w r8, [r4, #255] ; 0xff - 8004972: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004976: 4620 mov r0, r4 - 8004978: 4798 blx r3 - 800497a: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800497e: 3301 adds r3, #1 - 8004980: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004984: 2100 movs r1, #0 - 8004986: 2301 movs r3, #1 - 8004988: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800498c: f804 9001 strb.w r9, [r4, r1] - 8004990: f884 9104 strb.w r9, [r4, #260] ; 0x104 - 8004994: 3701 adds r7, #1 - 8004996: 42be cmp r6, r7 - 8004998: f240 80e1 bls.w 8004b5e - 800499c: 1bf3 subs r3, r6, r7 - 800499e: 2b03 cmp r3, #3 - 80049a0: f897 9000 ldrb.w r9, [r7] - 80049a4: dd02 ble.n 80049ac - 80049a6: f1b9 0f5f cmp.w r9, #95 ; 0x5f - 80049aa: d005 beq.n 80049b8 - 80049ac: f8d4 1100 ldr.w r1, [r4, #256] ; 0x100 - 80049b0: 29ff cmp r1, #255 ; 0xff - 80049b2: d0da beq.n 800496a - 80049b4: 1c4b adds r3, r1, #1 - 80049b6: e7e7 b.n 8004988 - 80049b8: 787b ldrb r3, [r7, #1] - 80049ba: 2b5f cmp r3, #95 ; 0x5f - 80049bc: d1f6 bne.n 80049ac - 80049be: 78bb ldrb r3, [r7, #2] - 80049c0: 2b55 cmp r3, #85 ; 0x55 - 80049c2: d1f3 bne.n 80049ac - 80049c4: 1cf9 adds r1, r7, #3 - 80049c6: 2000 movs r0, #0 - 80049c8: e002 b.n 80049d0 - 80049ca: 4613 mov r3, r2 - 80049cc: eb03 1000 add.w r0, r3, r0, lsl #4 - 80049d0: 428e cmp r6, r1 - 80049d2: 468a mov sl, r1 - 80049d4: d9ea bls.n 80049ac - 80049d6: f811 3b01 ldrb.w r3, [r1], #1 - 80049da: f1a3 0230 sub.w r2, r3, #48 ; 0x30 - 80049de: fa5f fe82 uxtb.w lr, r2 - 80049e2: f1be 0f09 cmp.w lr, #9 - 80049e6: f1a3 0c41 sub.w ip, r3, #65 ; 0x41 - 80049ea: d9ee bls.n 80049ca - 80049ec: f1bc 0f05 cmp.w ip, #5 - 80049f0: f1a3 0261 sub.w r2, r3, #97 ; 0x61 - 80049f4: f200 85c7 bhi.w 8005586 - 80049f8: 3b37 subs r3, #55 ; 0x37 - 80049fa: e7e7 b.n 80049cc - 80049fc: 080126e8 .word 0x080126e8 - 8004a00: 08012624 .word 0x08012624 - 8004a04: 08012748 .word 0x08012748 - 8004a08: 08012574 .word 0x08012574 - 8004a0c: 080125e8 .word 0x080125e8 - 8004a10: 9905 ldr r1, [sp, #20] - 8004a12: 686a ldr r2, [r5, #4] - 8004a14: f7fe b9e1 b.w 8002dda - 8004a18: 68aa ldr r2, [r5, #8] - 8004a1a: 9201 str r2, [sp, #4] - 8004a1c: 4619 mov r1, r3 - 8004a1e: 2b00 cmp r3, #0 - 8004a20: f47e aa26 bne.w 8002e70 - 8004a24: 9905 ldr r1, [sp, #20] - 8004a26: 686a ldr r2, [r5, #4] - 8004a28: f7fe b9d7 b.w 8002dda - 8004a2c: 4ece ldr r6, [pc, #824] ; (8004d68 ) - 8004a2e: f106 0904 add.w r9, r6, #4 - 8004a32: e014 b.n 8004a5e - 8004a34: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004a38: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004a3c: f884 80ff strb.w r8, [r4, #255] ; 0xff - 8004a40: 4798 blx r3 - 8004a42: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004a46: 3301 adds r3, #1 - 8004a48: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004a4c: 2200 movs r2, #0 - 8004a4e: 2301 movs r3, #1 - 8004a50: 45b1 cmp r9, r6 - 8004a52: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8004a56: 54a7 strb r7, [r4, r2] - 8004a58: f884 7104 strb.w r7, [r4, #260] ; 0x104 - 8004a5c: d008 beq.n 8004a70 - 8004a5e: 2bff cmp r3, #255 ; 0xff - 8004a60: 4619 mov r1, r3 - 8004a62: 4620 mov r0, r4 - 8004a64: f816 7b01 ldrb.w r7, [r6], #1 - 8004a68: d0e4 beq.n 8004a34 - 8004a6a: 461a mov r2, r3 - 8004a6c: 3301 adds r3, #1 - 8004a6e: e7ef b.n 8004a50 - 8004a70: 9905 ldr r1, [sp, #20] - 8004a72: 686a ldr r2, [r5, #4] - 8004a74: f7fe b9b1 b.w 8002dda - 8004a78: f8d4 c114 ldr.w ip, [r4, #276] ; 0x114 - 8004a7c: f7ff ba66 b.w 8003f4c - 8004a80: 2700 movs r7, #0 - 8004a82: f7ff ba54 b.w 8003f2e - 8004a86: e9d0 6702 ldrd r6, r7, [r0, #8] - 8004a8a: 2f00 cmp r7, #0 - 8004a8c: f43e a9a5 beq.w 8002dda - 8004a90: 4437 add r7, r6 - 8004a92: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8004a96: 3f01 subs r7, #1 - 8004a98: 3e01 subs r6, #1 - 8004a9a: f04f 0900 mov.w r9, #0 - 8004a9e: e015 b.n 8004acc - 8004aa0: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004aa4: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004aa8: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8004aac: 4798 blx r3 - 8004aae: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004ab2: 3301 adds r3, #1 - 8004ab4: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004ab8: 2200 movs r2, #0 - 8004aba: 2301 movs r3, #1 - 8004abc: 42b7 cmp r7, r6 - 8004abe: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8004ac2: f804 8002 strb.w r8, [r4, r2] - 8004ac6: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 8004aca: d008 beq.n 8004ade - 8004acc: 2bff cmp r3, #255 ; 0xff - 8004ace: 4619 mov r1, r3 - 8004ad0: 4620 mov r0, r4 - 8004ad2: f816 8f01 ldrb.w r8, [r6, #1]! - 8004ad6: d0e3 beq.n 8004aa0 - 8004ad8: 461a mov r2, r3 - 8004ada: 3301 adds r3, #1 - 8004adc: e7ee b.n 8004abc - 8004ade: 9905 ldr r1, [sp, #20] - 8004ae0: 686a ldr r2, [r5, #4] - 8004ae2: f7fe b97a b.w 8002dda - 8004ae6: 68aa ldr r2, [r5, #8] - 8004ae8: 49a0 ldr r1, [pc, #640] ; (8004d6c ) - 8004aea: 3201 adds r2, #1 - 8004aec: a808 add r0, sp, #32 - 8004aee: f009 feb5 bl 800e85c - 8004af2: a808 add r0, sp, #32 - 8004af4: f002 f96e bl 8006dd4 - 8004af8: b328 cbz r0, 8004b46 - 8004afa: ae08 add r6, sp, #32 - 8004afc: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8004b00: eb06 0900 add.w r9, r6, r0 - 8004b04: f04f 0800 mov.w r8, #0 - 8004b08: e014 b.n 8004b34 - 8004b0a: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004b0e: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004b12: f884 80ff strb.w r8, [r4, #255] ; 0xff - 8004b16: 4798 blx r3 - 8004b18: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004b1c: 3301 adds r3, #1 - 8004b1e: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004b22: 2200 movs r2, #0 - 8004b24: 2301 movs r3, #1 - 8004b26: 45b1 cmp r9, r6 - 8004b28: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8004b2c: 54a7 strb r7, [r4, r2] - 8004b2e: f884 7104 strb.w r7, [r4, #260] ; 0x104 - 8004b32: d008 beq.n 8004b46 - 8004b34: 2bff cmp r3, #255 ; 0xff - 8004b36: 4619 mov r1, r3 - 8004b38: 4620 mov r0, r4 - 8004b3a: f816 7b01 ldrb.w r7, [r6], #1 - 8004b3e: d0e4 beq.n 8004b0a - 8004b40: 461a mov r2, r3 - 8004b42: 3301 adds r3, #1 - 8004b44: e7ef b.n 8004b26 - 8004b46: 9905 ldr r1, [sp, #20] - 8004b48: 686a ldr r2, [r5, #4] - 8004b4a: f7fe b946 b.w 8002dda - 8004b4e: 9905 ldr r1, [sp, #20] - 8004b50: 686a ldr r2, [r5, #4] - 8004b52: f7fe b942 b.w 8002dda - 8004b56: 9905 ldr r1, [sp, #20] - 8004b58: 686a ldr r2, [r5, #4] - 8004b5a: f7fe b93e b.w 8002dda - 8004b5e: 9905 ldr r1, [sp, #20] - 8004b60: 686a ldr r2, [r5, #4] - 8004b62: f7fe b93a b.w 8002dda - 8004b66: 68db ldr r3, [r3, #12] - 8004b68: 781b ldrb r3, [r3, #0] - 8004b6a: 2b3b cmp r3, #59 ; 0x3b - 8004b6c: f47e abf6 bne.w 800335c - 8004b70: f105 030c add.w r3, r5, #12 - 8004b74: 68aa ldr r2, [r5, #8] - 8004b76: 4631 mov r1, r6 - 8004b78: 4620 mov r0, r4 - 8004b7a: f001 fd95 bl 80066a8 - 8004b7e: 4680 mov r8, r0 - 8004b80: 2800 cmp r0, #0 - 8004b82: f040 86a0 bne.w 80058c6 - 8004b86: e9d5 7202 ldrd r7, r2, [r5, #8] - 8004b8a: 68b9 ldr r1, [r7, #8] - 8004b8c: 68d3 ldr r3, [r2, #12] - 8004b8e: 6808 ldr r0, [r1, #0] - 8004b90: 4977 ldr r1, [pc, #476] ; (8004d70 ) - 8004b92: f8d2 b008 ldr.w fp, [r2, #8] - 8004b96: e9d3 a902 ldrd sl, r9, [r3, #8] - 8004b9a: f002 f911 bl 8006dc0 - 8004b9e: 2800 cmp r0, #0 - 8004ba0: f000 8674 beq.w 800588c - 8004ba4: 2204 movs r2, #4 - 8004ba6: 4973 ldr r1, [pc, #460] ; (8004d74 ) - 8004ba8: 4620 mov r0, r4 - 8004baa: f7fb fbff bl 80003ac - 8004bae: f8db 3008 ldr.w r3, [fp, #8] - 8004bb2: b303 cbz r3, 8004bf6 - 8004bb4: 465a mov r2, fp - 8004bb6: 4631 mov r1, r6 - 8004bb8: 4620 mov r0, r4 - 8004bba: f001 fd23 bl 8006604 - 8004bbe: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8004bc2: 2fff cmp r7, #255 ; 0xff - 8004bc4: d110 bne.n 8004be8 - 8004bc6: 4639 mov r1, r7 - 8004bc8: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004bcc: f884 80ff strb.w r8, [r4, #255] ; 0xff - 8004bd0: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004bd4: 4620 mov r0, r4 - 8004bd6: 4798 blx r3 - 8004bd8: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004bdc: f8c4 8100 str.w r8, [r4, #256] ; 0x100 - 8004be0: 3301 adds r3, #1 - 8004be2: 4647 mov r7, r8 - 8004be4: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004be8: 2320 movs r3, #32 - 8004bea: 1c7a adds r2, r7, #1 - 8004bec: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8004bf0: 55e3 strb r3, [r4, r7] - 8004bf2: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8004bf6: 4652 mov r2, sl - 8004bf8: 4631 mov r1, r6 - 8004bfa: 4620 mov r0, r4 - 8004bfc: f7fd fffa bl 8002bf4 - 8004c00: f1b9 0f00 cmp.w r9, #0 - 8004c04: f000 8663 beq.w 80058ce - 8004c08: 464a mov r2, r9 - 8004c0a: 4631 mov r1, r6 - 8004c0c: 4620 mov r0, r4 - 8004c0e: f001 fcf9 bl 8006604 - 8004c12: 9905 ldr r1, [sp, #20] - 8004c14: 686a ldr r2, [r5, #4] - 8004c16: f7fe b8e0 b.w 8002dda - 8004c1a: f8d9 3008 ldr.w r3, [r9, #8] - 8004c1e: 4956 ldr r1, [pc, #344] ; (8004d78 ) - 8004c20: f8d3 a000 ldr.w sl, [r3] - 8004c24: 4650 mov r0, sl - 8004c26: f002 f8cb bl 8006dc0 - 8004c2a: f898 3000 ldrb.w r3, [r8] - 8004c2e: b910 cbnz r0, 8004c36 - 8004c30: 2b03 cmp r3, #3 - 8004c32: f000 852b beq.w 800568c - 8004c36: 2b38 cmp r3, #56 ; 0x38 - 8004c38: f000 850c beq.w 8005654 - 8004c3c: 494f ldr r1, [pc, #316] ; (8004d7c ) - 8004c3e: 4650 mov r0, sl - 8004c40: f002 f8be bl 8006dc0 - 8004c44: 4607 mov r7, r0 - 8004c46: 2800 cmp r0, #0 - 8004c48: f000 8513 beq.w 8005672 - 8004c4c: 494c ldr r1, [pc, #304] ; (8004d80 ) - 8004c4e: 4650 mov r0, sl - 8004c50: f002 f8b6 bl 8006dc0 - 8004c54: 2800 cmp r0, #0 - 8004c56: f000 8333 beq.w 80052c0 - 8004c5a: 4631 mov r1, r6 - 8004c5c: 4620 mov r0, r4 - 8004c5e: 464a mov r2, r9 - 8004c60: f001 fc90 bl 8006584 - 8004c64: 4947 ldr r1, [pc, #284] ; (8004d84 ) - 8004c66: 4650 mov r0, sl - 8004c68: f002 f8aa bl 8006dc0 - 8004c6c: 2800 cmp r0, #0 - 8004c6e: f000 83b0 beq.w 80053d2 - 8004c72: 4650 mov r0, sl - 8004c74: 4944 ldr r1, [pc, #272] ; (8004d88 ) - 8004c76: f002 f8a3 bl 8006dc0 - 8004c7a: 4681 mov r9, r0 - 8004c7c: 2800 cmp r0, #0 - 8004c7e: f47e abd7 bne.w 8003430 - 8004c82: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8004c86: 2fff cmp r7, #255 ; 0xff - 8004c88: d110 bne.n 8004cac - 8004c8a: f884 00ff strb.w r0, [r4, #255] ; 0xff - 8004c8e: 4639 mov r1, r7 - 8004c90: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004c94: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004c98: 4620 mov r0, r4 - 8004c9a: 4798 blx r3 - 8004c9c: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004ca0: f8c4 9100 str.w r9, [r4, #256] ; 0x100 - 8004ca4: 3301 adds r3, #1 - 8004ca6: 464f mov r7, r9 - 8004ca8: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004cac: 1c78 adds r0, r7, #1 - 8004cae: 2328 movs r3, #40 ; 0x28 - 8004cb0: f8c4 0100 str.w r0, [r4, #256] ; 0x100 - 8004cb4: 4642 mov r2, r8 - 8004cb6: 55e3 strb r3, [r4, r7] - 8004cb8: 4631 mov r1, r6 - 8004cba: 4620 mov r0, r4 - 8004cbc: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8004cc0: f7fd ff98 bl 8002bf4 - 8004cc4: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8004cc8: 2fff cmp r7, #255 ; 0xff - 8004cca: d111 bne.n 8004cf0 - 8004ccc: 2600 movs r6, #0 - 8004cce: 4639 mov r1, r7 - 8004cd0: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004cd4: f884 60ff strb.w r6, [r4, #255] ; 0xff - 8004cd8: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004cdc: 4620 mov r0, r4 - 8004cde: 4798 blx r3 - 8004ce0: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004ce4: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8004ce8: 3301 adds r3, #1 - 8004cea: 4637 mov r7, r6 - 8004cec: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004cf0: 1c7a adds r2, r7, #1 - 8004cf2: 2329 movs r3, #41 ; 0x29 - 8004cf4: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8004cf8: 55e3 strb r3, [r4, r7] - 8004cfa: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8004cfe: 686a ldr r2, [r5, #4] - 8004d00: 9905 ldr r1, [sp, #20] - 8004d02: f7fe b86a b.w 8002dda - 8004d06: f105 020c add.w r2, r5, #12 - 8004d0a: 4641 mov r1, r8 - 8004d0c: 4620 mov r0, r4 - 8004d0e: f001 f935 bl 8005f7c - 8004d12: 68aa ldr r2, [r5, #8] - 8004d14: 2a00 cmp r2, #0 - 8004d16: f000 83fd beq.w 8005514 - 8004d1a: 4641 mov r1, r8 - 8004d1c: 4620 mov r0, r4 - 8004d1e: f7fd ff69 bl 8002bf4 - 8004d22: 9905 ldr r1, [sp, #20] - 8004d24: 686a ldr r2, [r5, #4] - 8004d26: f7fe b858 b.w 8002dda - 8004d2a: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8004d2e: 2fff cmp r7, #255 ; 0xff - 8004d30: d111 bne.n 8004d56 - 8004d32: 2600 movs r6, #0 - 8004d34: 4639 mov r1, r7 - 8004d36: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004d3a: f884 60ff strb.w r6, [r4, #255] ; 0xff - 8004d3e: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004d42: 4620 mov r0, r4 - 8004d44: 4798 blx r3 - 8004d46: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004d4a: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8004d4e: 3301 adds r3, #1 - 8004d50: 4637 mov r7, r6 - 8004d52: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004d56: 2320 movs r3, #32 - 8004d58: 1c7a adds r2, r7, #1 - 8004d5a: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8004d5e: 55e3 strb r3, [r4, r7] - 8004d60: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8004d64: f7fe bf72 b.w 8003c4c - 8004d68: 080127c8 .word 0x080127c8 - 8004d6c: 08012574 .word 0x08012574 - 8004d70: 08012588 .word 0x08012588 - 8004d74: 08012784 .word 0x08012784 - 8004d78: 0801276c .word 0x0801276c - 8004d7c: 08012770 .word 0x08012770 - 8004d80: 08012578 .word 0x08012578 - 8004d84: 08012774 .word 0x08012774 - 8004d88: 08012a94 .word 0x08012a94 - 8004d8c: 689b ldr r3, [r3, #8] - 8004d8e: f893 8010 ldrb.w r8, [r3, #16] - 8004d92: f1b8 0f00 cmp.w r8, #0 - 8004d96: f43e aa89 beq.w 80032ac - 8004d9a: f1b8 0f06 cmp.w r8, #6 - 8004d9e: f240 843f bls.w 8005620 - 8004da2: f1b8 0f07 cmp.w r8, #7 - 8004da6: f47e aa81 bne.w 80032ac - 8004daa: 68eb ldr r3, [r5, #12] - 8004dac: 781a ldrb r2, [r3, #0] - 8004dae: 2a00 cmp r2, #0 - 8004db0: f47e aa7c bne.w 80032ac - 8004db4: 68da ldr r2, [r3, #12] - 8004db6: 2a01 cmp r2, #1 - 8004db8: f47e aa78 bne.w 80032ac - 8004dbc: 283c cmp r0, #60 ; 0x3c - 8004dbe: f47e aa75 bne.w 80032ac - 8004dc2: 689b ldr r3, [r3, #8] - 8004dc4: 781b ldrb r3, [r3, #0] - 8004dc6: 2b30 cmp r3, #48 ; 0x30 - 8004dc8: f000 84b6 beq.w 8005738 - 8004dcc: 2b31 cmp r3, #49 ; 0x31 - 8004dce: f47e aa6d bne.w 80032ac - 8004dd2: 2204 movs r2, #4 - 8004dd4: 49c3 ldr r1, [pc, #780] ; (80050e4 ) - 8004dd6: 4620 mov r0, r4 - 8004dd8: f7fb fae8 bl 80003ac - 8004ddc: 9905 ldr r1, [sp, #20] - 8004dde: 686a ldr r2, [r5, #4] - 8004de0: f7fd bffb b.w 8002dda - 8004de4: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8004de8: 2fff cmp r7, #255 ; 0xff - 8004dea: d112 bne.n 8004e12 - 8004dec: f04f 0800 mov.w r8, #0 - 8004df0: 4639 mov r1, r7 - 8004df2: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004df6: f884 80ff strb.w r8, [r4, #255] ; 0xff - 8004dfa: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004dfe: 4620 mov r0, r4 - 8004e00: 4798 blx r3 - 8004e02: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004e06: f8c4 8100 str.w r8, [r4, #256] ; 0x100 - 8004e0a: 3301 adds r3, #1 - 8004e0c: 4647 mov r7, r8 - 8004e0e: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004e12: 1c7a adds r2, r7, #1 - 8004e14: 235b movs r3, #91 ; 0x5b - 8004e16: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8004e1a: 55e3 strb r3, [r4, r7] - 8004e1c: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8004e20: 4631 mov r1, r6 - 8004e22: 68ea ldr r2, [r5, #12] - 8004e24: 4620 mov r0, r4 - 8004e26: f7fd fee5 bl 8002bf4 - 8004e2a: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8004e2e: 2fff cmp r7, #255 ; 0xff - 8004e30: d111 bne.n 8004e56 - 8004e32: 2600 movs r6, #0 - 8004e34: 4639 mov r1, r7 - 8004e36: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004e3a: f884 60ff strb.w r6, [r4, #255] ; 0xff - 8004e3e: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004e42: 4620 mov r0, r4 - 8004e44: 4798 blx r3 - 8004e46: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004e4a: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8004e4e: 3301 adds r3, #1 - 8004e50: 4637 mov r7, r6 - 8004e52: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004e56: 1c7a adds r2, r7, #1 - 8004e58: 235d movs r3, #93 ; 0x5d - 8004e5a: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8004e5e: 55e3 strb r3, [r4, r7] - 8004e60: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8004e64: 686a ldr r2, [r5, #4] - 8004e66: 9905 ldr r1, [sp, #20] - 8004e68: f7fd bfb7 b.w 8002dda - 8004e6c: 1c59 adds r1, r3, #1 - 8004e6e: 2229 movs r2, #41 ; 0x29 - 8004e70: f8c4 1100 str.w r1, [r4, #256] ; 0x100 - 8004e74: 54e2 strb r2, [r4, r3] - 8004e76: f884 2104 strb.w r2, [r4, #260] ; 0x104 - 8004e7a: 782b ldrb r3, [r5, #0] - 8004e7c: 2b3d cmp r3, #61 ; 0x3d - 8004e7e: f47e aa57 bne.w 8003330 - 8004e82: 29ff cmp r1, #255 ; 0xff - 8004e84: d10f bne.n 8004ea6 - 8004e86: 2700 movs r7, #0 - 8004e88: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004e8c: f884 70ff strb.w r7, [r4, #255] ; 0xff - 8004e90: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004e94: 4620 mov r0, r4 - 8004e96: 4798 blx r3 - 8004e98: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004e9c: f8c4 7100 str.w r7, [r4, #256] ; 0x100 - 8004ea0: 3301 adds r3, #1 - 8004ea2: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004ea6: f8d4 2100 ldr.w r2, [r4, #256] ; 0x100 - 8004eaa: 232d movs r3, #45 ; 0x2d - 8004eac: 1c51 adds r1, r2, #1 - 8004eae: f8c4 1100 str.w r1, [r4, #256] ; 0x100 - 8004eb2: 54a3 strb r3, [r4, r2] - 8004eb4: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8004eb8: f7fe ba3a b.w 8003330 - 8004ebc: 4f8a ldr r7, [pc, #552] ; (80050e8 ) - 8004ebe: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8004ec2: f107 0a02 add.w sl, r7, #2 - 8004ec6: e016 b.n 8004ef6 - 8004ec8: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004ecc: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004ed0: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8004ed4: 4798 blx r3 - 8004ed6: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004eda: 3301 adds r3, #1 - 8004edc: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004ee0: 2200 movs r2, #0 - 8004ee2: 2301 movs r3, #1 - 8004ee4: 45ba cmp sl, r7 - 8004ee6: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8004eea: f804 8002 strb.w r8, [r4, r2] - 8004eee: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 8004ef2: f43f a980 beq.w 80041f6 - 8004ef6: 2bff cmp r3, #255 ; 0xff - 8004ef8: 4619 mov r1, r3 - 8004efa: 4620 mov r0, r4 - 8004efc: f817 8b01 ldrb.w r8, [r7], #1 - 8004f00: d0e2 beq.n 8004ec8 - 8004f02: 461a mov r2, r3 - 8004f04: 3301 adds r3, #1 - 8004f06: e7ed b.n 8004ee4 - 8004f08: 6892 ldr r2, [r2, #8] - 8004f0a: 4631 mov r1, r6 - 8004f0c: 4620 mov r0, r4 - 8004f0e: f7fd fe71 bl 8002bf4 - 8004f12: f8d4 3144 ldr.w r3, [r4, #324] ; 0x144 - 8004f16: b113 cbz r3, 8004f1e - 8004f18: 9b08 ldr r3, [sp, #32] - 8004f1a: f8c4 3110 str.w r3, [r4, #272] ; 0x110 - 8004f1e: f894 3104 ldrb.w r3, [r4, #260] ; 0x104 - 8004f22: 2b3c cmp r3, #60 ; 0x3c - 8004f24: f000 82c4 beq.w 80054b0 - 8004f28: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8004f2c: 2fff cmp r7, #255 ; 0xff - 8004f2e: d112 bne.n 8004f56 - 8004f30: f04f 0800 mov.w r8, #0 - 8004f34: 4639 mov r1, r7 - 8004f36: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004f3a: f884 80ff strb.w r8, [r4, #255] ; 0xff - 8004f3e: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004f42: 4620 mov r0, r4 - 8004f44: 4798 blx r3 - 8004f46: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004f4a: f8c4 8100 str.w r8, [r4, #256] ; 0x100 - 8004f4e: 3301 adds r3, #1 - 8004f50: 4647 mov r7, r8 - 8004f52: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004f56: 233c movs r3, #60 ; 0x3c - 8004f58: 1c7a adds r2, r7, #1 - 8004f5a: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8004f5e: 55e3 strb r3, [r4, r7] - 8004f60: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8004f64: 68ab ldr r3, [r5, #8] - 8004f66: 4631 mov r1, r6 - 8004f68: 68da ldr r2, [r3, #12] - 8004f6a: 4620 mov r0, r4 - 8004f6c: f7fd fe42 bl 8002bf4 - 8004f70: f894 3104 ldrb.w r3, [r4, #260] ; 0x104 - 8004f74: 2b3e cmp r3, #62 ; 0x3e - 8004f76: f000 827d beq.w 8005474 - 8004f7a: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8004f7e: 2fff cmp r7, #255 ; 0xff - 8004f80: d111 bne.n 8004fa6 - 8004f82: 2600 movs r6, #0 - 8004f84: 4639 mov r1, r7 - 8004f86: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004f8a: f884 60ff strb.w r6, [r4, #255] ; 0xff - 8004f8e: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004f92: 4620 mov r0, r4 - 8004f94: 4798 blx r3 - 8004f96: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004f9a: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8004f9e: 3301 adds r3, #1 - 8004fa0: 4637 mov r7, r6 - 8004fa2: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004fa6: 233e movs r3, #62 ; 0x3e - 8004fa8: 1c7a adds r2, r7, #1 - 8004faa: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8004fae: 55e3 strb r3, [r4, r7] - 8004fb0: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8004fb4: f7ff badc b.w 8004570 - 8004fb8: 4f4c ldr r7, [pc, #304] ; (80050ec ) - 8004fba: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8004fbe: f107 0905 add.w r9, r7, #5 - 8004fc2: f04f 0a00 mov.w sl, #0 - 8004fc6: e016 b.n 8004ff6 - 8004fc8: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8004fcc: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8004fd0: f884 a0ff strb.w sl, [r4, #255] ; 0xff - 8004fd4: 4798 blx r3 - 8004fd6: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8004fda: 3301 adds r3, #1 - 8004fdc: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8004fe0: 2200 movs r2, #0 - 8004fe2: 2301 movs r3, #1 - 8004fe4: 45b9 cmp r9, r7 - 8004fe6: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8004fea: f804 8002 strb.w r8, [r4, r2] - 8004fee: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 8004ff2: f43e ab41 beq.w 8003678 - 8004ff6: 2bff cmp r3, #255 ; 0xff - 8004ff8: 4619 mov r1, r3 - 8004ffa: 4620 mov r0, r4 - 8004ffc: f817 8b01 ldrb.w r8, [r7], #1 - 8005000: d0e2 beq.n 8004fc8 - 8005002: 461a mov r2, r3 - 8005004: 3301 adds r3, #1 - 8005006: e7ed b.n 8004fe4 - 8005008: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 800500c: 2fff cmp r7, #255 ; 0xff - 800500e: d112 bne.n 8005036 - 8005010: f04f 0a00 mov.w sl, #0 - 8005014: 4639 mov r1, r7 - 8005016: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800501a: f884 a0ff strb.w sl, [r4, #255] ; 0xff - 800501e: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005022: 4620 mov r0, r4 - 8005024: 4798 blx r3 - 8005026: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800502a: f8c4 a100 str.w sl, [r4, #256] ; 0x100 - 800502e: 3301 adds r3, #1 - 8005030: 4657 mov r7, sl - 8005032: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005036: 2320 movs r3, #32 - 8005038: 1c7a adds r2, r7, #1 - 800503a: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 800503e: 55e3 strb r3, [r4, r7] - 8005040: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8005044: f7fe bdda b.w 8003bfc - 8005048: f8d4 1120 ldr.w r1, [r4, #288] ; 0x120 - 800504c: 2900 cmp r1, #0 - 800504e: f6fe ad99 blt.w 8003b84 - 8005052: f7fb fbc3 bl 80007dc - 8005056: 4602 mov r2, r0 - 8005058: 2800 cmp r0, #0 - 800505a: f47e ad93 bne.w 8003b84 - 800505e: 2301 movs r3, #1 - 8005060: f8c4 3118 str.w r3, [r4, #280] ; 0x118 - 8005064: 686a ldr r2, [r5, #4] - 8005066: 9905 ldr r1, [sp, #20] - 8005068: f7fd beb7 b.w 8002dda - 800506c: 9905 ldr r1, [sp, #20] - 800506e: 686a ldr r2, [r5, #4] - 8005070: f7fd beb3 b.w 8002dda - 8005074: 220d movs r2, #13 - 8005076: 491e ldr r1, [pc, #120] ; (80050f0 ) - 8005078: 4620 mov r0, r4 - 800507a: f7fb f997 bl 80003ac - 800507e: 68f9 ldr r1, [r7, #12] - 8005080: 4620 mov r0, r4 - 8005082: 3101 adds r1, #1 - 8005084: f7fb fc84 bl 8000990 - 8005088: 2203 movs r2, #3 - 800508a: 491a ldr r1, [pc, #104] ; (80050f4 ) - 800508c: 4620 mov r0, r4 - 800508e: f7fb f98d bl 80003ac - 8005092: 68bf ldr r7, [r7, #8] - 8005094: f7ff b8b4 b.w 8004200 - 8005098: f8d4 0100 ldr.w r0, [r4, #256] ; 0x100 - 800509c: 9905 ldr r1, [sp, #20] - 800509e: 686a ldr r2, [r5, #4] - 80050a0: 42b8 cmp r0, r7 - 80050a2: f47d ae9a bne.w 8002dda - 80050a6: 3b01 subs r3, #1 - 80050a8: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80050ac: f7fd be95 b.w 8002dda - 80050b0: 4642 mov r2, r8 - 80050b2: 465b mov r3, fp - 80050b4: 46ab mov fp, r5 - 80050b6: f1bb 0f04 cmp.w fp, #4 - 80050ba: 46a0 mov r8, r4 - 80050bc: 461d mov r5, r3 - 80050be: 4614 mov r4, r2 - 80050c0: f8c2 1114 str.w r1, [r2, #276] ; 0x114 - 80050c4: f000 82a3 beq.w 800560e - 80050c8: f1bb 0f02 cmp.w fp, #2 - 80050cc: d137 bne.n 800513e - 80050ce: f8d8 a00c ldr.w sl, [r8, #12] - 80050d2: f89a 3000 ldrb.w r3, [sl] - 80050d6: 2b46 cmp r3, #70 ; 0x46 - 80050d8: f000 8327 beq.w 800572a - 80050dc: eb09 1207 add.w r2, r9, r7, lsl #4 - 80050e0: 3a0c subs r2, #12 - 80050e2: e020 b.n 8005126 - 80050e4: 080127a0 .word 0x080127a0 - 80050e8: 080125c4 .word 0x080125c4 - 80050ec: 08012738 .word 0x08012738 - 80050f0: 080125c8 .word 0x080125c8 - 80050f4: 080125d8 .word 0x080125d8 - 80050f8: 2f04 cmp r7, #4 - 80050fa: f43f a81d beq.w 8004138 - 80050fe: e89b 000f ldmia.w fp, {r0, r1, r2, r3} - 8005102: e88c 000f stmia.w ip, {r0, r1, r2, r3} - 8005106: 2300 movs r3, #0 - 8005108: f84e 3c0c str.w r3, [lr, #-12] - 800510c: f84e ac10 str.w sl, [lr, #-16] - 8005110: 9b01 ldr r3, [sp, #4] - 8005112: f8da a008 ldr.w sl, [sl, #8] - 8005116: f8c4 c114 str.w ip, [r4, #276] ; 0x114 - 800511a: 3701 adds r7, #1 - 800511c: f84e bc04 str.w fp, [lr, #-4] - 8005120: f84e 3c08 str.w r3, [lr, #-8] - 8005124: 4672 mov r2, lr - 8005126: f89a 0000 ldrb.w r0, [sl] - 800512a: f7fb f975 bl 8000418 - 800512e: f1a2 0b04 sub.w fp, r2, #4 - 8005132: f102 0e10 add.w lr, r2, #16 - 8005136: f102 0c0c add.w ip, r2, #12 - 800513a: 2800 cmp r0, #0 - 800513c: d1dc bne.n 80050f8 - 800513e: 68ea ldr r2, [r5, #12] - 8005140: 4631 mov r1, r6 - 8005142: 4620 mov r0, r4 - 8005144: f7fd fd56 bl 8002bf4 - 8005148: f898 3000 ldrb.w r3, [r8] - 800514c: 2b04 cmp r3, #4 - 800514e: bf04 itt eq - 8005150: 9b06 ldreq r3, [sp, #24] - 8005152: f8c4 3110 streq.w r3, [r4, #272] ; 0x110 - 8005156: 013f lsls r7, r7, #4 - 8005158: f04f 0a20 mov.w sl, #32 - 800515c: 46a8 mov r8, r5 - 800515e: eb09 0b07 add.w fp, r9, r7 - 8005162: f85b 5c08 ldr.w r5, [fp, #-8] - 8005166: bb0d cbnz r5, 80051ac - 8005168: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 800516c: 2bff cmp r3, #255 ; 0xff - 800516e: 4620 mov r0, r4 - 8005170: 4619 mov r1, r3 - 8005172: d10e bne.n 8005192 - 8005174: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005178: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800517c: f884 50ff strb.w r5, [r4, #255] ; 0xff - 8005180: 4798 blx r3 - 8005182: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005186: f8c4 5100 str.w r5, [r4, #256] ; 0x100 - 800518a: 1c5a adds r2, r3, #1 - 800518c: f8c4 2124 str.w r2, [r4, #292] ; 0x124 - 8005190: 462b mov r3, r5 - 8005192: 1c59 adds r1, r3, #1 - 8005194: f8c4 1100 str.w r1, [r4, #256] ; 0x100 - 8005198: f85b 2c0c ldr.w r2, [fp, #-12] - 800519c: f804 a003 strb.w sl, [r4, r3] - 80051a0: 4631 mov r1, r6 - 80051a2: 4620 mov r0, r4 - 80051a4: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 80051a8: f000 fbba bl 8005920 - 80051ac: 3f10 subs r7, #16 - 80051ae: d1d6 bne.n 800515e - 80051b0: 9b02 ldr r3, [sp, #8] - 80051b2: f8c4 3114 str.w r3, [r4, #276] ; 0x114 - 80051b6: 4645 mov r5, r8 - 80051b8: f7fe bfc1 b.w 800413e - 80051bc: 4631 mov r1, r6 - 80051be: 68aa ldr r2, [r5, #8] - 80051c0: 4620 mov r0, r4 - 80051c2: f7fd fd17 bl 8002bf4 - 80051c6: 9905 ldr r1, [sp, #20] - 80051c8: 686a ldr r2, [r5, #4] - 80051ca: f7fd be06 b.w 8002dda - 80051ce: 460f mov r7, r1 - 80051d0: 46a9 mov r9, r5 - 80051d2: f7fe bebb b.w 8003f4c - 80051d6: 4644 mov r4, r8 - 80051d8: 465d mov r5, fp - 80051da: f8c8 1114 str.w r1, [r8, #276] ; 0x114 - 80051de: f7fe bfab b.w 8004138 - 80051e2: 68ea ldr r2, [r5, #12] - 80051e4: 4631 mov r1, r6 - 80051e6: 4620 mov r0, r4 - 80051e8: f7fd fd04 bl 8002bf4 - 80051ec: 9b0a ldr r3, [sp, #40] ; 0x28 - 80051ee: 9a01 ldr r2, [sp, #4] - 80051f0: f8c4 2114 str.w r2, [r4, #276] ; 0x114 - 80051f4: 2b00 cmp r3, #0 - 80051f6: f43e ab19 beq.w 800382c - 80051fa: f7fe bb1f b.w 800383c - 80051fe: 2301 movs r3, #1 - 8005200: 4664 mov r4, ip - 8005202: f8cc 3118 str.w r3, [ip, #280] ; 0x118 - 8005206: f7fe bb19 b.w 800383c - 800520a: f8d9 2008 ldr.w r2, [r9, #8] - 800520e: f7fe bead b.w 8003f6c - 8005212: 4631 mov r1, r6 - 8005214: 68aa ldr r2, [r5, #8] - 8005216: 4620 mov r0, r4 - 8005218: f001 f9f4 bl 8006604 - 800521c: 2203 movs r2, #3 - 800521e: 49bf ldr r1, [pc, #764] ; (800551c ) - 8005220: 4620 mov r0, r4 - 8005222: f7fb f8c3 bl 80003ac - 8005226: 9905 ldr r1, [sp, #20] - 8005228: 686a ldr r2, [r5, #4] - 800522a: f7fd bdd6 b.w 8002dda - 800522e: f8d4 e130 ldr.w lr, [r4, #304] ; 0x130 - 8005232: f8d4 212c ldr.w r2, [r4, #300] ; 0x12c - 8005236: f1be 0f00 cmp.w lr, #0 - 800523a: dd17 ble.n 800526c - 800523c: 6810 ldr r0, [r2, #0] - 800523e: 4581 cmp r9, r0 - 8005240: f000 81a7 beq.w 8005592 - 8005244: f102 0b08 add.w fp, r2, #8 - 8005248: 46bc mov ip, r7 - 800524a: 9101 str r1, [sp, #4] - 800524c: 4670 mov r0, lr - 800524e: e004 b.n 800525a - 8005250: f852 103c ldr.w r1, [r2, ip, lsl #3] - 8005254: 4589 cmp r9, r1 - 8005256: f000 819d beq.w 8005594 - 800525a: f10c 0c01 add.w ip, ip, #1 - 800525e: 4560 cmp r0, ip - 8005260: 46da mov sl, fp - 8005262: f10b 0b08 add.w fp, fp, #8 - 8005266: d1f3 bne.n 8005250 - 8005268: 9901 ldr r1, [sp, #4] - 800526a: 4686 mov lr, r0 - 800526c: f8d4 3134 ldr.w r3, [r4, #308] ; 0x134 - 8005270: 459e cmp lr, r3 - 8005272: f280 8344 bge.w 80058fe - 8005276: f10e 0301 add.w r3, lr, #1 - 800527a: eb02 0cce add.w ip, r2, lr, lsl #3 - 800527e: f8c4 3130 str.w r3, [r4, #304] ; 0x130 - 8005282: f8d4 0110 ldr.w r0, [r4, #272] ; 0x110 - 8005286: f842 903e str.w r9, [r2, lr, lsl #3] - 800528a: f10c 0c04 add.w ip, ip, #4 - 800528e: 2800 cmp r0, #0 - 8005290: f000 825b beq.w 800574a - 8005294: f8d4 213c ldr.w r2, [r4, #316] ; 0x13c - 8005298: f8d4 3140 ldr.w r3, [r4, #320] ; 0x140 - 800529c: 429a cmp r2, r3 - 800529e: f102 0e01 add.w lr, r2, #1 - 80052a2: f280 832c bge.w 80058fe - 80052a6: f8d4 3138 ldr.w r3, [r4, #312] ; 0x138 - 80052aa: f8c4 e13c str.w lr, [r4, #316] ; 0x13c - 80052ae: eb03 03c2 add.w r3, r3, r2, lsl #3 - 80052b2: 6842 ldr r2, [r0, #4] - 80052b4: 605a str r2, [r3, #4] - 80052b6: f8cc 3000 str.w r3, [ip] - 80052ba: 6800 ldr r0, [r0, #0] - 80052bc: 469c mov ip, r3 - 80052be: e7e6 b.n 800528e - 80052c0: 4606 mov r6, r0 - 80052c2: 4647 mov r7, r8 - 80052c4: e001 b.n 80052ca - 80052c6: 68ff ldr r7, [r7, #12] - 80052c8: b31f cbz r7, 8005312 - 80052ca: 783b ldrb r3, [r7, #0] - 80052cc: 2b2f cmp r3, #47 ; 0x2f - 80052ce: d120 bne.n 8005312 - 80052d0: 68bb ldr r3, [r7, #8] - 80052d2: b1f3 cbz r3, 8005312 - 80052d4: 781a ldrb r2, [r3, #0] - 80052d6: 2a4a cmp r2, #74 ; 0x4a - 80052d8: bf18 it ne - 80052da: 3601 addne r6, #1 - 80052dc: d1f3 bne.n 80052c6 - 80052de: 6899 ldr r1, [r3, #8] - 80052e0: 4620 mov r0, r4 - 80052e2: f7fb faa1 bl 8000828 - 80052e6: 2800 cmp r0, #0 - 80052e8: f000 81ef beq.w 80056ca - 80052ec: 7803 ldrb r3, [r0, #0] - 80052ee: 2b2f cmp r3, #47 ; 0x2f - 80052f0: f040 81eb bne.w 80056ca - 80052f4: 6883 ldr r3, [r0, #8] - 80052f6: b153 cbz r3, 800530e - 80052f8: 2300 movs r3, #0 - 80052fa: e004 b.n 8005306 - 80052fc: 7802 ldrb r2, [r0, #0] - 80052fe: 2a2f cmp r2, #47 ; 0x2f - 8005300: d105 bne.n 800530e - 8005302: 6882 ldr r2, [r0, #8] - 8005304: b11a cbz r2, 800530e - 8005306: 68c0 ldr r0, [r0, #12] - 8005308: 3301 adds r3, #1 - 800530a: 2800 cmp r0, #0 - 800530c: d1f6 bne.n 80052fc - 800530e: 441e add r6, r3 - 8005310: e7d9 b.n 80052c6 - 8005312: 4631 mov r1, r6 - 8005314: 4620 mov r0, r4 - 8005316: f7fb fb3b bl 8000990 - 800531a: 9905 ldr r1, [sp, #20] - 800531c: 686a ldr r2, [r5, #4] - 800531e: f7fd bd5c b.w 8002dda - 8005322: 4631 mov r1, r6 - 8005324: 4620 mov r0, r4 - 8005326: f001 f92d bl 8006584 - 800532a: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 800532e: 2fff cmp r7, #255 ; 0xff - 8005330: d112 bne.n 8005358 - 8005332: f04f 0800 mov.w r8, #0 - 8005336: 4639 mov r1, r7 - 8005338: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800533c: f884 80ff strb.w r8, [r4, #255] ; 0xff - 8005340: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005344: 4620 mov r0, r4 - 8005346: 4798 blx r3 - 8005348: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800534c: f8c4 8100 str.w r8, [r4, #256] ; 0x100 - 8005350: 3301 adds r3, #1 - 8005352: 4647 mov r7, r8 - 8005354: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005358: 1c7a adds r2, r7, #1 - 800535a: 233c movs r3, #60 ; 0x3c - 800535c: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8005360: 55e3 strb r3, [r4, r7] - 8005362: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8005366: 68eb ldr r3, [r5, #12] - 8005368: 4631 mov r1, r6 - 800536a: 689a ldr r2, [r3, #8] - 800536c: 4620 mov r0, r4 - 800536e: f7fd fc41 bl 8002bf4 - 8005372: 2202 movs r2, #2 - 8005374: 496a ldr r1, [pc, #424] ; (8005520 ) - 8005376: 4620 mov r0, r4 - 8005378: f7fb f818 bl 80003ac - 800537c: 68eb ldr r3, [r5, #12] - 800537e: 4631 mov r1, r6 - 8005380: 68da ldr r2, [r3, #12] - 8005382: 4620 mov r0, r4 - 8005384: f7fd fc36 bl 8002bf4 - 8005388: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 800538c: 2fff cmp r7, #255 ; 0xff - 800538e: d111 bne.n 80053b4 - 8005390: 2600 movs r6, #0 - 8005392: 4639 mov r1, r7 - 8005394: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005398: f884 60ff strb.w r6, [r4, #255] ; 0xff - 800539c: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80053a0: 4620 mov r0, r4 - 80053a2: 4798 blx r3 - 80053a4: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80053a8: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 80053ac: 3301 adds r3, #1 - 80053ae: 4637 mov r7, r6 - 80053b0: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80053b4: 1c7a adds r2, r7, #1 - 80053b6: 2329 movs r3, #41 ; 0x29 - 80053b8: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 80053bc: 55e3 strb r3, [r4, r7] - 80053be: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80053c2: 686a ldr r2, [r5, #4] - 80053c4: 9905 ldr r1, [sp, #20] - 80053c6: f7fd bd08 b.w 8002dda - 80053ca: 9905 ldr r1, [sp, #20] - 80053cc: 686a ldr r2, [r5, #4] - 80053ce: f7fd bd04 b.w 8002dda - 80053d2: 4642 mov r2, r8 - 80053d4: 4631 mov r1, r6 - 80053d6: 4620 mov r0, r4 - 80053d8: f7fd fc0c bl 8002bf4 - 80053dc: 9905 ldr r1, [sp, #20] - 80053de: 686a ldr r2, [r5, #4] - 80053e0: f7fd bcfb b.w 8002dda - 80053e4: a918 add r1, sp, #96 ; 0x60 - 80053e6: 4620 mov r0, r4 - 80053e8: f841 3d40 str.w r3, [r1, #-64]! - 80053ec: f8d4 3110 ldr.w r3, [r4, #272] ; 0x110 - 80053f0: f8c4 1114 str.w r1, [r4, #276] ; 0x114 - 80053f4: 4641 mov r1, r8 - 80053f6: 960a str r6, [sp, #40] ; 0x28 - 80053f8: 930b str r3, [sp, #44] ; 0x2c - 80053fa: 9509 str r5, [sp, #36] ; 0x24 - 80053fc: f7fd fbfa bl 8002bf4 - 8005400: 9e0a ldr r6, [sp, #40] ; 0x28 - 8005402: 9b08 ldr r3, [sp, #32] - 8005404: f8c4 3114 str.w r3, [r4, #276] ; 0x114 - 8005408: b9ee cbnz r6, 8005446 - 800540a: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 800540e: 2fff cmp r7, #255 ; 0xff - 8005410: d110 bne.n 8005434 - 8005412: 4639 mov r1, r7 - 8005414: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005418: f884 60ff strb.w r6, [r4, #255] ; 0xff - 800541c: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005420: 4620 mov r0, r4 - 8005422: 4798 blx r3 - 8005424: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005428: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 800542c: 3301 adds r3, #1 - 800542e: 4637 mov r7, r6 - 8005430: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005434: 2320 movs r3, #32 - 8005436: 1c7a adds r2, r7, #1 - 8005438: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 800543c: 55e3 strb r3, [r4, r7] - 800543e: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8005442: f7fe ba0c b.w 800385e - 8005446: 9905 ldr r1, [sp, #20] - 8005448: 686a ldr r2, [r5, #4] - 800544a: f7fd bcc6 b.w 8002dda - 800544e: 4935 ldr r1, [pc, #212] ; (8005524 ) - 8005450: 68b8 ldr r0, [r7, #8] - 8005452: f009 fa23 bl 800e89c - 8005456: 2800 cmp r0, #0 - 8005458: f47e abc6 bne.w 8003be8 - 800545c: 4631 mov r1, r6 - 800545e: 68ea ldr r2, [r5, #12] - 8005460: 4620 mov r0, r4 - 8005462: f7fd fbc7 bl 8002bf4 - 8005466: 2202 movs r2, #2 - 8005468: 492f ldr r1, [pc, #188] ; (8005528 ) - 800546a: 4620 mov r0, r4 - 800546c: f7fa ff9e bl 80003ac - 8005470: f7fe bc09 b.w 8003c86 - 8005474: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8005478: 2fff cmp r7, #255 ; 0xff - 800547a: d111 bne.n 80054a0 - 800547c: 2600 movs r6, #0 - 800547e: 4639 mov r1, r7 - 8005480: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005484: f884 60ff strb.w r6, [r4, #255] ; 0xff - 8005488: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800548c: 4620 mov r0, r4 - 800548e: 4798 blx r3 - 8005490: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005494: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8005498: 3301 adds r3, #1 - 800549a: 4637 mov r7, r6 - 800549c: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80054a0: 2320 movs r3, #32 - 80054a2: 1c7a adds r2, r7, #1 - 80054a4: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 80054a8: 55e3 strb r3, [r4, r7] - 80054aa: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80054ae: e564 b.n 8004f7a - 80054b0: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 80054b4: 2fff cmp r7, #255 ; 0xff - 80054b6: d112 bne.n 80054de - 80054b8: f04f 0800 mov.w r8, #0 - 80054bc: 4639 mov r1, r7 - 80054be: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80054c2: f884 80ff strb.w r8, [r4, #255] ; 0xff - 80054c6: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80054ca: 4620 mov r0, r4 - 80054cc: 4798 blx r3 - 80054ce: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80054d2: f8c4 8100 str.w r8, [r4, #256] ; 0x100 - 80054d6: 3301 adds r3, #1 - 80054d8: 4647 mov r7, r8 - 80054da: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80054de: 2320 movs r3, #32 - 80054e0: 1c7a adds r2, r7, #1 - 80054e2: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 80054e6: 55e3 strb r3, [r4, r7] - 80054e8: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80054ec: e51c b.n 8004f28 - 80054ee: 4640 mov r0, r8 - 80054f0: 490e ldr r1, [pc, #56] ; (800552c ) - 80054f2: f001 fc65 bl 8006dc0 - 80054f6: 2800 cmp r0, #0 - 80054f8: f040 81fb bne.w 80058f2 - 80054fc: 68eb ldr r3, [r5, #12] - 80054fe: 4631 mov r1, r6 - 8005500: 68da ldr r2, [r3, #12] - 8005502: 4620 mov r0, r4 - 8005504: f001 f87e bl 8006604 - 8005508: f7fd bc60 b.w 8002dcc - 800550c: 9905 ldr r1, [sp, #20] - 800550e: 686a ldr r2, [r5, #4] - 8005510: f7fd bc63 b.w 8002dda - 8005514: 9905 ldr r1, [sp, #20] - 8005516: 686a ldr r2, [r5, #4] - 8005518: f7fd bc5f b.w 8002dda - 800551c: 080127c4 .word 0x080127c4 - 8005520: 08012778 .word 0x08012778 - 8005524: 080125dc .word 0x080125dc - 8005528: 080125e4 .word 0x080125e4 - 800552c: 0801257c .word 0x0801257c - 8005530: 689b ldr r3, [r3, #8] - 8005532: 689a ldr r2, [r3, #8] - 8005534: 2a01 cmp r2, #1 - 8005536: f47d ac4e bne.w 8002dd6 - 800553a: 685b ldr r3, [r3, #4] - 800553c: 781b ldrb r3, [r3, #0] - 800553e: 2b3e cmp r3, #62 ; 0x3e - 8005540: f47d ac49 bne.w 8002dd6 - 8005544: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8005548: 2fff cmp r7, #255 ; 0xff - 800554a: d111 bne.n 8005570 - 800554c: 2600 movs r6, #0 - 800554e: 4639 mov r1, r7 - 8005550: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005554: f884 60ff strb.w r6, [r4, #255] ; 0xff - 8005558: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800555c: 4620 mov r0, r4 - 800555e: 4798 blx r3 - 8005560: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005564: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8005568: 3301 adds r3, #1 - 800556a: 4637 mov r7, r6 - 800556c: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005570: 1c7a adds r2, r7, #1 - 8005572: 2329 movs r3, #41 ; 0x29 - 8005574: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8005578: 55e3 strb r3, [r4, r7] - 800557a: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 800557e: 686a ldr r2, [r5, #4] - 8005580: 9905 ldr r1, [sp, #20] - 8005582: f7fd bc2a b.w 8002dda - 8005586: 2a05 cmp r2, #5 - 8005588: f200 80a9 bhi.w 80056de - 800558c: 3b57 subs r3, #87 ; 0x57 - 800558e: f7ff ba1d b.w 80049cc - 8005592: 4692 mov sl, r2 - 8005594: 461a mov r2, r3 - 8005596: e001 b.n 800559c - 8005598: 6852 ldr r2, [r2, #4] - 800559a: b342 cbz r2, 80055ee - 800559c: 6811 ldr r1, [r2, #0] - 800559e: 4589 cmp r9, r1 - 80055a0: d003 beq.n 80055aa - 80055a2: 428d cmp r5, r1 - 80055a4: d1f8 bne.n 8005598 - 80055a6: 429a cmp r2, r3 - 80055a8: d0f6 beq.n 8005598 - 80055aa: f109 0108 add.w r1, r9, #8 - 80055ae: 4620 mov r0, r4 - 80055b0: f7fb f92a bl 8000808 - 80055b4: 4681 mov r9, r0 - 80055b6: b198 cbz r0, 80055e0 - 80055b8: f899 3000 ldrb.w r3, [r9] - 80055bc: 2b2f cmp r3, #47 ; 0x2f - 80055be: f47e acb6 bne.w 8003f2e - 80055c2: f8d4 1120 ldr.w r1, [r4, #288] ; 0x120 - 80055c6: 2900 cmp r1, #0 - 80055c8: f6fe acb6 blt.w 8003f38 - 80055cc: 4648 mov r0, r9 - 80055ce: f7fb f905 bl 80007dc - 80055d2: 4681 mov r9, r0 - 80055d4: 2800 cmp r0, #0 - 80055d6: f47e acaa bne.w 8003f2e - 80055da: b10f cbz r7, 80055e0 - 80055dc: f8c4 8110 str.w r8, [r4, #272] ; 0x110 - 80055e0: 2301 movs r3, #1 - 80055e2: f8c4 3118 str.w r3, [r4, #280] ; 0x118 - 80055e6: 686a ldr r2, [r5, #4] - 80055e8: 9905 ldr r1, [sp, #20] - 80055ea: f7fd bbf6 b.w 8002dda - 80055ee: f8da 3004 ldr.w r3, [sl, #4] - 80055f2: f8d4 8110 ldr.w r8, [r4, #272] ; 0x110 - 80055f6: f8c4 3110 str.w r3, [r4, #272] ; 0x110 - 80055fa: f109 0108 add.w r1, r9, #8 - 80055fe: 4620 mov r0, r4 - 8005600: f7fb f902 bl 8000808 - 8005604: 2701 movs r7, #1 - 8005606: 4681 mov r9, r0 - 8005608: 2800 cmp r0, #0 - 800560a: d1d5 bne.n 80055b8 - 800560c: e7e6 b.n 80055dc - 800560e: ab18 add r3, sp, #96 ; 0x60 - 8005610: 9a01 ldr r2, [sp, #4] - 8005612: f843 2d48 str.w r2, [r3, #-72]! - 8005616: f8cd 801c str.w r8, [sp, #28] - 800561a: f8c4 3110 str.w r3, [r4, #272] ; 0x110 - 800561e: e58e b.n 800513e - 8005620: 68eb ldr r3, [r5, #12] - 8005622: f893 9000 ldrb.w r9, [r3] - 8005626: f1b9 0f00 cmp.w r9, #0 - 800562a: f47d ae3f bne.w 80032ac - 800562e: 283d cmp r0, #61 ; 0x3d - 8005630: f000 80e6 beq.w 8005800 - 8005634: 4631 mov r1, r6 - 8005636: 68ea ldr r2, [r5, #12] - 8005638: 4620 mov r0, r4 - 800563a: f1a8 0802 sub.w r8, r8, #2 - 800563e: f7fd fad9 bl 8002bf4 - 8005642: f1b8 0f04 cmp.w r8, #4 - 8005646: f200 80d7 bhi.w 80057f8 - 800564a: e8df f008 tbb [pc, r8] - 800564e: 93b4 .short 0x93b4 - 8005650: 818a .short 0x818a - 8005652: 35 .byte 0x35 - 8005653: 00 .byte 0x00 - 8005654: f8d8 2008 ldr.w r2, [r8, #8] - 8005658: 4631 mov r1, r6 - 800565a: 4620 mov r0, r4 - 800565c: f000 ffd2 bl 8006604 - 8005660: 464a mov r2, r9 - 8005662: 4631 mov r1, r6 - 8005664: 4620 mov r0, r4 - 8005666: f000 ff8d bl 8006584 - 800566a: 9905 ldr r1, [sp, #20] - 800566c: 686a ldr r2, [r5, #4] - 800566e: f7fd bbb4 b.w 8002dda - 8005672: 4641 mov r1, r8 - 8005674: 4620 mov r0, r4 - 8005676: f7fb f8d7 bl 8000828 - 800567a: b1a8 cbz r0, 80056a8 - 800567c: 7803 ldrb r3, [r0, #0] - 800567e: 2b2f cmp r3, #47 ; 0x2f - 8005680: d112 bne.n 80056a8 - 8005682: 6883 ldr r3, [r0, #8] - 8005684: b183 cbz r3, 80056a8 - 8005686: 68c0 ldr r0, [r0, #12] - 8005688: 3701 adds r7, #1 - 800568a: e7f6 b.n 800567a - 800568c: f8d8 3008 ldr.w r3, [r8, #8] - 8005690: 781a ldrb r2, [r3, #0] - 8005692: 2a01 cmp r2, #1 - 8005694: f47f aad2 bne.w 8004c3c - 8005698: f8d8 200c ldr.w r2, [r8, #12] - 800569c: 7812 ldrb r2, [r2, #0] - 800569e: 2a29 cmp r2, #41 ; 0x29 - 80056a0: bf08 it eq - 80056a2: 4698 moveq r8, r3 - 80056a4: f7ff baca b.w 8004c3c - 80056a8: 4639 mov r1, r7 - 80056aa: 4620 mov r0, r4 - 80056ac: f7fb f970 bl 8000990 - 80056b0: 9905 ldr r1, [sp, #20] - 80056b2: 686a ldr r2, [r5, #4] - 80056b4: f7fd bb91 b.w 8002dda - 80056b8: 2203 movs r2, #3 - 80056ba: 4994 ldr r1, [pc, #592] ; (800590c ) - 80056bc: 4620 mov r0, r4 - 80056be: f7fa fe75 bl 80003ac - 80056c2: 9905 ldr r1, [sp, #20] - 80056c4: 686a ldr r2, [r5, #4] - 80056c6: f7fd bb88 b.w 8002dda - 80056ca: 2300 movs r3, #0 - 80056cc: 441e add r6, r3 - 80056ce: e5fa b.n 80052c6 - 80056d0: 464a mov r2, r9 - 80056d2: 4631 mov r1, r6 - 80056d4: 4620 mov r0, r4 - 80056d6: f000 ff55 bl 8006584 - 80056da: f7fd bea9 b.w 8003430 - 80056de: 2b5f cmp r3, #95 ; 0x5f - 80056e0: f8d4 1100 ldr.w r1, [r4, #256] ; 0x100 - 80056e4: f47f a964 bne.w 80049b0 - 80056e8: 28ff cmp r0, #255 ; 0xff - 80056ea: f63f a961 bhi.w 80049b0 - 80056ee: 29ff cmp r1, #255 ; 0xff - 80056f0: fa5f f980 uxtb.w r9, r0 - 80056f4: d10f bne.n 8005716 - 80056f6: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80056fa: f884 80ff strb.w r8, [r4, #255] ; 0xff - 80056fe: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005702: 4620 mov r0, r4 - 8005704: 4798 blx r3 - 8005706: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800570a: f8c4 8100 str.w r8, [r4, #256] ; 0x100 - 800570e: 3301 adds r3, #1 - 8005710: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005714: 2100 movs r1, #0 - 8005716: 1c4b adds r3, r1, #1 - 8005718: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800571c: 4657 mov r7, sl - 800571e: f804 9001 strb.w r9, [r4, r1] - 8005722: f884 9104 strb.w r9, [r4, #260] ; 0x104 - 8005726: f7ff b935 b.w 8004994 - 800572a: f8da a008 ldr.w sl, [sl, #8] - 800572e: f1ba 0f00 cmp.w sl, #0 - 8005732: f43e ad01 beq.w 8004138 - 8005736: e4d1 b.n 80050dc - 8005738: 2205 movs r2, #5 - 800573a: 4975 ldr r1, [pc, #468] ; (8005910 ) - 800573c: 4620 mov r0, r4 - 800573e: f7fa fe35 bl 80003ac - 8005742: 9905 ldr r1, [sp, #20] - 8005744: 686a ldr r2, [r5, #4] - 8005746: f7fd bb48 b.w 8002dda - 800574a: f8cc 0000 str.w r0, [ip] - 800574e: e72c b.n 80055aa - 8005750: 2202 movs r2, #2 - 8005752: 4970 ldr r1, [pc, #448] ; (8005914 ) - 8005754: 4620 mov r0, r4 - 8005756: f7fa fe29 bl 80003ac - 800575a: 9905 ldr r1, [sp, #20] - 800575c: 686a ldr r2, [r5, #4] - 800575e: f7fd bb3c b.w 8002dda - 8005762: 2202 movs r2, #2 - 8005764: 496c ldr r1, [pc, #432] ; (8005918 ) - 8005766: 4620 mov r0, r4 - 8005768: f7fa fe20 bl 80003ac - 800576c: 9905 ldr r1, [sp, #20] - 800576e: 686a ldr r2, [r5, #4] - 8005770: f7fd bb33 b.w 8002dda - 8005774: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8005778: 2fff cmp r7, #255 ; 0xff - 800577a: d111 bne.n 80057a0 - 800577c: 2600 movs r6, #0 - 800577e: 4639 mov r1, r7 - 8005780: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005784: f884 60ff strb.w r6, [r4, #255] ; 0xff - 8005788: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800578c: 4620 mov r0, r4 - 800578e: 4798 blx r3 - 8005790: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005794: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8005798: 3301 adds r3, #1 - 800579a: 4637 mov r7, r6 - 800579c: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80057a0: 1c7a adds r2, r7, #1 - 80057a2: 236c movs r3, #108 ; 0x6c - 80057a4: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 80057a8: 55e3 strb r3, [r4, r7] - 80057aa: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80057ae: 686a ldr r2, [r5, #4] - 80057b0: 9905 ldr r1, [sp, #20] - 80057b2: f7fd bb12 b.w 8002dda - 80057b6: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 80057ba: 2fff cmp r7, #255 ; 0xff - 80057bc: d111 bne.n 80057e2 - 80057be: 2600 movs r6, #0 - 80057c0: 4639 mov r1, r7 - 80057c2: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80057c6: f884 60ff strb.w r6, [r4, #255] ; 0xff - 80057ca: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80057ce: 4620 mov r0, r4 - 80057d0: 4798 blx r3 - 80057d2: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80057d6: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 80057da: 3301 adds r3, #1 - 80057dc: 4637 mov r7, r6 - 80057de: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80057e2: 1c7a adds r2, r7, #1 - 80057e4: 2375 movs r3, #117 ; 0x75 - 80057e6: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 80057ea: 55e3 strb r3, [r4, r7] - 80057ec: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80057f0: 686a ldr r2, [r5, #4] - 80057f2: 9905 ldr r1, [sp, #20] - 80057f4: f7fd baf1 b.w 8002dda - 80057f8: 9905 ldr r1, [sp, #20] - 80057fa: 686a ldr r2, [r5, #4] - 80057fc: f7fd baed b.w 8002dda - 8005800: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8005804: 2fff cmp r7, #255 ; 0xff - 8005806: d110 bne.n 800582a - 8005808: 4639 mov r1, r7 - 800580a: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800580e: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8005812: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005816: 4620 mov r0, r4 - 8005818: 4798 blx r3 - 800581a: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800581e: f8c4 9100 str.w r9, [r4, #256] ; 0x100 - 8005822: 3301 adds r3, #1 - 8005824: 464f mov r7, r9 - 8005826: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 800582a: 232d movs r3, #45 ; 0x2d - 800582c: 1c7a adds r2, r7, #1 - 800582e: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8005832: 55e3 strb r3, [r4, r7] - 8005834: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8005838: e6fc b.n 8005634 - 800583a: 689a ldr r2, [r3, #8] - 800583c: 6891 ldr r1, [r2, #8] - 800583e: 2901 cmp r1, #1 - 8005840: f47d aa69 bne.w 8002d16 - 8005844: 6852 ldr r2, [r2, #4] - 8005846: 7812 ldrb r2, [r2, #0] - 8005848: 2a3e cmp r2, #62 ; 0x3e - 800584a: f47d aa64 bne.w 8002d16 - 800584e: f8d4 7100 ldr.w r7, [r4, #256] ; 0x100 - 8005852: 2fff cmp r7, #255 ; 0xff - 8005854: d110 bne.n 8005878 - 8005856: f884 00ff strb.w r0, [r4, #255] ; 0xff - 800585a: 4639 mov r1, r7 - 800585c: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005860: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005864: 4620 mov r0, r4 - 8005866: 4798 blx r3 - 8005868: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800586c: f8c4 8100 str.w r8, [r4, #256] ; 0x100 - 8005870: 3301 adds r3, #1 - 8005872: 4647 mov r7, r8 - 8005874: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005878: 2328 movs r3, #40 ; 0x28 - 800587a: 1c7a adds r2, r7, #1 - 800587c: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8005880: 55e3 strb r3, [r4, r7] - 8005882: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8005886: 68ab ldr r3, [r5, #8] - 8005888: f7fd ba45 b.w 8002d16 - 800588c: 465a mov r2, fp - 800588e: 4631 mov r1, r6 - 8005890: 4620 mov r0, r4 - 8005892: f000 feb7 bl 8006604 - 8005896: 463a mov r2, r7 - 8005898: 4631 mov r1, r6 - 800589a: 4620 mov r0, r4 - 800589c: f000 fe72 bl 8006584 - 80058a0: 4652 mov r2, sl - 80058a2: 4631 mov r1, r6 - 80058a4: 4620 mov r0, r4 - 80058a6: f000 fead bl 8006604 - 80058aa: 2203 movs r2, #3 - 80058ac: 491b ldr r1, [pc, #108] ; (800591c ) - 80058ae: 4620 mov r0, r4 - 80058b0: f7fa fd7c bl 80003ac - 80058b4: 464a mov r2, r9 - 80058b6: 4631 mov r1, r6 - 80058b8: 4620 mov r0, r4 - 80058ba: f000 fea3 bl 8006604 - 80058be: 9905 ldr r1, [sp, #20] - 80058c0: 686a ldr r2, [r5, #4] - 80058c2: f7fd ba8a b.w 8002dda - 80058c6: 9905 ldr r1, [sp, #20] - 80058c8: 686a ldr r2, [r5, #4] - 80058ca: f7fd ba86 b.w 8002dda - 80058ce: 9905 ldr r1, [sp, #20] - 80058d0: 686a ldr r2, [r5, #4] - 80058d2: f7fd ba82 b.w 8002dda - 80058d6: 68d3 ldr r3, [r2, #12] - 80058d8: 781b ldrb r3, [r3, #0] - 80058da: 2b29 cmp r3, #41 ; 0x29 - 80058dc: bf1c itt ne - 80058de: 2301 movne r3, #1 - 80058e0: f8c4 3118 strne.w r3, [r4, #280] ; 0x118 - 80058e4: 6892 ldr r2, [r2, #8] - 80058e6: 4631 mov r1, r6 - 80058e8: 4620 mov r0, r4 - 80058ea: f000 fe8b bl 8006604 - 80058ee: f7fd ba22 b.w 8002d36 - 80058f2: 463a mov r2, r7 - 80058f4: 4631 mov r1, r6 - 80058f6: 4620 mov r0, r4 - 80058f8: f000 fe44 bl 8006584 - 80058fc: e5fe b.n 80054fc - 80058fe: 2301 movs r3, #1 - 8005900: f8c4 3118 str.w r3, [r4, #280] ; 0x118 - 8005904: 686a ldr r2, [r5, #4] - 8005906: f7fd ba68 b.w 8002dda - 800590a: bf00 nop - 800590c: 08012794 .word 0x08012794 - 8005910: 08012798 .word 0x08012798 - 8005914: 08012790 .word 0x08012790 - 8005918: 0801278c .word 0x0801278c - 800591c: 08012780 .word 0x08012780 - -08005920 : - 8005920: 7813 ldrb r3, [r2, #0] - 8005922: 3b03 subs r3, #3 - 8005924: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8005928: 4615 mov r5, r2 - 800592a: 4604 mov r4, r0 - 800592c: 460e mov r6, r1 - 800592e: 2b4c cmp r3, #76 ; 0x4c - 8005930: f200 82c8 bhi.w 8005ec4 - 8005934: e8df f013 tbh [pc, r3, lsl #1] - 8005938: 02c60075 .word 0x02c60075 - 800593c: 02c602c6 .word 0x02c602c6 - 8005940: 02c602c6 .word 0x02c602c6 - 8005944: 02c602c6 .word 0x02c602c6 - 8005948: 02c602c6 .word 0x02c602c6 - 800594c: 02c602c6 .word 0x02c602c6 - 8005950: 02c602c6 .word 0x02c602c6 - 8005954: 02c602c6 .word 0x02c602c6 - 8005958: 02c602c6 .word 0x02c602c6 - 800595c: 02c602c6 .word 0x02c602c6 - 8005960: 02c602c6 .word 0x02c602c6 - 8005964: 00a1007a .word 0x00a1007a - 8005968: 007a00c8 .word 0x007a00c8 - 800596c: 00c800a1 .word 0x00c800a1 - 8005970: 010a00ee .word 0x010a00ee - 8005974: 01480126 .word 0x01480126 - 8005978: 02790166 .word 0x02790166 - 800597c: 029f0252 .word 0x029f0252 - 8005980: 02c602c6 .word 0x02c602c6 - 8005984: 02c602c6 .word 0x02c602c6 - 8005988: 02c60184 .word 0x02c60184 - 800598c: 02c601cc .word 0x02c601cc - 8005990: 02c602c6 .word 0x02c602c6 - 8005994: 02c602c6 .word 0x02c602c6 - 8005998: 02c602c6 .word 0x02c602c6 - 800599c: 02c602c6 .word 0x02c602c6 - 80059a0: 02c602c6 .word 0x02c602c6 - 80059a4: 02c602c6 .word 0x02c602c6 - 80059a8: 02c602c6 .word 0x02c602c6 - 80059ac: 02c602c6 .word 0x02c602c6 - 80059b0: 02c602c6 .word 0x02c602c6 - 80059b4: 02c602c6 .word 0x02c602c6 - 80059b8: 02c602c6 .word 0x02c602c6 - 80059bc: 02c602c6 .word 0x02c602c6 - 80059c0: 02c602c6 .word 0x02c602c6 - 80059c4: 02c602c6 .word 0x02c602c6 - 80059c8: 01f402c6 .word 0x01f402c6 - 80059cc: 022a02c6 .word 0x022a02c6 - 80059d0: 004d .short 0x004d - 80059d2: 4fd7 ldr r7, [pc, #860] ; (8005d30 ) - 80059d4: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 80059d8: f107 0806 add.w r8, r7, #6 - 80059dc: f04f 0900 mov.w r9, #0 - 80059e0: e016 b.n 8005a10 - 80059e2: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80059e6: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80059ea: f884 90ff strb.w r9, [r4, #255] ; 0xff - 80059ee: 4798 blx r3 - 80059f0: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80059f4: 3301 adds r3, #1 - 80059f6: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80059fa: 2200 movs r2, #0 - 80059fc: 2301 movs r3, #1 - 80059fe: 4547 cmp r7, r8 - 8005a00: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8005a04: f804 a002 strb.w sl, [r4, r2] - 8005a08: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8005a0c: f000 825f beq.w 8005ece - 8005a10: 2bff cmp r3, #255 ; 0xff - 8005a12: 4619 mov r1, r3 - 8005a14: 4620 mov r0, r4 - 8005a16: f817 ab01 ldrb.w sl, [r7], #1 - 8005a1a: d0e2 beq.n 80059e2 - 8005a1c: 461a mov r2, r3 - 8005a1e: 3301 adds r3, #1 - 8005a20: e7ed b.n 80059fe - 8005a22: 68aa ldr r2, [r5, #8] - 8005a24: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8005a28: f7fd b8e4 b.w 8002bf4 - 8005a2c: 4dc1 ldr r5, [pc, #772] ; (8005d34 ) - 8005a2e: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 8005a32: f105 0609 add.w r6, r5, #9 - 8005a36: 2700 movs r7, #0 - 8005a38: e016 b.n 8005a68 - 8005a3a: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005a3e: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005a42: f884 70ff strb.w r7, [r4, #255] ; 0xff - 8005a46: 4798 blx r3 - 8005a48: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005a4c: 3301 adds r3, #1 - 8005a4e: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005a52: 2200 movs r2, #0 - 8005a54: 2301 movs r3, #1 - 8005a56: 42ae cmp r6, r5 - 8005a58: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8005a5c: f804 8002 strb.w r8, [r4, r2] - 8005a60: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 8005a64: f000 80ea beq.w 8005c3c - 8005a68: 2bff cmp r3, #255 ; 0xff - 8005a6a: 4619 mov r1, r3 - 8005a6c: 4620 mov r0, r4 - 8005a6e: f815 8f01 ldrb.w r8, [r5, #1]! - 8005a72: d0e2 beq.n 8005a3a - 8005a74: 461a mov r2, r3 - 8005a76: 3301 adds r3, #1 - 8005a78: e7ed b.n 8005a56 - 8005a7a: 4daf ldr r5, [pc, #700] ; (8005d38 ) - 8005a7c: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 8005a80: f105 0609 add.w r6, r5, #9 - 8005a84: 2700 movs r7, #0 - 8005a86: e016 b.n 8005ab6 - 8005a88: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005a8c: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005a90: f884 70ff strb.w r7, [r4, #255] ; 0xff - 8005a94: 4798 blx r3 - 8005a96: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005a9a: 3301 adds r3, #1 - 8005a9c: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005aa0: 2200 movs r2, #0 - 8005aa2: 2301 movs r3, #1 - 8005aa4: 42ae cmp r6, r5 - 8005aa6: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8005aaa: f804 8002 strb.w r8, [r4, r2] - 8005aae: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 8005ab2: f000 80c3 beq.w 8005c3c - 8005ab6: 2bff cmp r3, #255 ; 0xff - 8005ab8: 4619 mov r1, r3 - 8005aba: 4620 mov r0, r4 - 8005abc: f815 8f01 ldrb.w r8, [r5, #1]! - 8005ac0: d0e2 beq.n 8005a88 - 8005ac2: 461a mov r2, r3 - 8005ac4: 3301 adds r3, #1 - 8005ac6: e7ed b.n 8005aa4 - 8005ac8: 4d9c ldr r5, [pc, #624] ; (8005d3c ) - 8005aca: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 8005ace: 1dae adds r6, r5, #6 - 8005ad0: 2700 movs r7, #0 - 8005ad2: e016 b.n 8005b02 - 8005ad4: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005ad8: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005adc: f884 70ff strb.w r7, [r4, #255] ; 0xff - 8005ae0: 4798 blx r3 - 8005ae2: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005ae6: 3301 adds r3, #1 - 8005ae8: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005aec: 2200 movs r2, #0 - 8005aee: 2301 movs r3, #1 - 8005af0: 42b5 cmp r5, r6 - 8005af2: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8005af6: f804 8002 strb.w r8, [r4, r2] - 8005afa: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 8005afe: f000 809d beq.w 8005c3c - 8005b02: 2bff cmp r3, #255 ; 0xff - 8005b04: 4619 mov r1, r3 - 8005b06: 4620 mov r0, r4 - 8005b08: f815 8b01 ldrb.w r8, [r5], #1 - 8005b0c: d0e2 beq.n 8005ad4 - 8005b0e: 461a mov r2, r3 - 8005b10: 3301 adds r3, #1 - 8005b12: e7ed b.n 8005af0 - 8005b14: f8d0 1100 ldr.w r1, [r0, #256] ; 0x100 - 8005b18: 29ff cmp r1, #255 ; 0xff - 8005b1a: d10f bne.n 8005b3c - 8005b1c: 2500 movs r5, #0 - 8005b1e: f8d0 3108 ldr.w r3, [r0, #264] ; 0x108 - 8005b22: f880 50ff strb.w r5, [r0, #255] ; 0xff - 8005b26: f8d0 210c ldr.w r2, [r0, #268] ; 0x10c - 8005b2a: 4798 blx r3 - 8005b2c: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005b30: f8c4 5100 str.w r5, [r4, #256] ; 0x100 - 8005b34: 3301 adds r3, #1 - 8005b36: 4629 mov r1, r5 - 8005b38: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005b3c: 2220 movs r2, #32 - 8005b3e: 1c4b adds r3, r1, #1 - 8005b40: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8005b44: 5462 strb r2, [r4, r1] - 8005b46: f884 2104 strb.w r2, [r4, #260] ; 0x104 - 8005b4a: e05d b.n 8005c08 - 8005b4c: f8d0 1100 ldr.w r1, [r0, #256] ; 0x100 - 8005b50: 29ff cmp r1, #255 ; 0xff - 8005b52: d10f bne.n 8005b74 - 8005b54: 2500 movs r5, #0 - 8005b56: f8d0 3108 ldr.w r3, [r0, #264] ; 0x108 - 8005b5a: f880 50ff strb.w r5, [r0, #255] ; 0xff - 8005b5e: f8d0 210c ldr.w r2, [r0, #268] ; 0x10c - 8005b62: 4798 blx r3 - 8005b64: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005b68: f8c4 5100 str.w r5, [r4, #256] ; 0x100 - 8005b6c: 3301 adds r3, #1 - 8005b6e: 4629 mov r1, r5 - 8005b70: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005b74: 2220 movs r2, #32 - 8005b76: 1c4b adds r3, r1, #1 - 8005b78: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8005b7c: 5462 strb r2, [r4, r1] - 8005b7e: f884 2104 strb.w r2, [r4, #260] ; 0x104 - 8005b82: e154 b.n 8005e2e - 8005b84: f8d0 1100 ldr.w r1, [r0, #256] ; 0x100 - 8005b88: 29ff cmp r1, #255 ; 0xff - 8005b8a: d10f bne.n 8005bac - 8005b8c: 2700 movs r7, #0 - 8005b8e: f8d0 3108 ldr.w r3, [r0, #264] ; 0x108 - 8005b92: f880 70ff strb.w r7, [r0, #255] ; 0xff - 8005b96: f8d0 210c ldr.w r2, [r0, #268] ; 0x10c - 8005b9a: 4798 blx r3 - 8005b9c: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005ba0: f8c4 7100 str.w r7, [r4, #256] ; 0x100 - 8005ba4: 3301 adds r3, #1 - 8005ba6: 4639 mov r1, r7 - 8005ba8: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005bac: 1c4a adds r2, r1, #1 - 8005bae: 2320 movs r3, #32 - 8005bb0: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8005bb4: 5463 strb r3, [r4, r1] - 8005bb6: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8005bba: 4631 mov r1, r6 - 8005bbc: 68ea ldr r2, [r5, #12] - 8005bbe: 4620 mov r0, r4 - 8005bc0: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8005bc4: f7fd b816 b.w 8002bf4 - 8005bc8: f011 0604 ands.w r6, r1, #4 - 8005bcc: d136 bne.n 8005c3c - 8005bce: f8d0 1100 ldr.w r1, [r0, #256] ; 0x100 - 8005bd2: 29ff cmp r1, #255 ; 0xff - 8005bd4: d10e bne.n 8005bf4 - 8005bd6: f8d0 3108 ldr.w r3, [r0, #264] ; 0x108 - 8005bda: f880 60ff strb.w r6, [r0, #255] ; 0xff - 8005bde: f8d0 210c ldr.w r2, [r0, #268] ; 0x10c - 8005be2: 4798 blx r3 - 8005be4: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005be8: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8005bec: 3301 adds r3, #1 - 8005bee: 4631 mov r1, r6 - 8005bf0: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005bf4: 232a movs r3, #42 ; 0x2a - 8005bf6: 1c4a adds r2, r1, #1 - 8005bf8: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8005bfc: 5463 strb r3, [r4, r1] - 8005bfe: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8005c02: e01b b.n 8005c3c - 8005c04: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 8005c08: 2bff cmp r3, #255 ; 0xff - 8005c0a: f040 81a9 bne.w 8005f60 - 8005c0e: 2500 movs r5, #0 - 8005c10: 4619 mov r1, r3 - 8005c12: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005c16: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005c1a: f884 50ff strb.w r5, [r4, #255] ; 0xff - 8005c1e: 4620 mov r0, r4 - 8005c20: 4798 blx r3 - 8005c22: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005c26: 1c5a adds r2, r3, #1 - 8005c28: f8c4 2124 str.w r2, [r4, #292] ; 0x124 - 8005c2c: 462b mov r3, r5 - 8005c2e: 2101 movs r1, #1 - 8005c30: 2226 movs r2, #38 ; 0x26 - 8005c32: f8c4 1100 str.w r1, [r4, #256] ; 0x100 - 8005c36: 54e2 strb r2, [r4, r3] - 8005c38: f884 2104 strb.w r2, [r4, #260] ; 0x104 - 8005c3c: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8005c40: f890 3104 ldrb.w r3, [r0, #260] ; 0x104 - 8005c44: 2b28 cmp r3, #40 ; 0x28 - 8005c46: d019 beq.n 8005c7c - 8005c48: f8d0 1100 ldr.w r1, [r0, #256] ; 0x100 - 8005c4c: 29ff cmp r1, #255 ; 0xff - 8005c4e: f040 818b bne.w 8005f68 - 8005c52: 2700 movs r7, #0 - 8005c54: f8d0 3108 ldr.w r3, [r0, #264] ; 0x108 - 8005c58: f8d0 210c ldr.w r2, [r0, #268] ; 0x10c - 8005c5c: f880 70ff strb.w r7, [r0, #255] ; 0xff - 8005c60: 4798 blx r3 - 8005c62: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005c66: 3301 adds r3, #1 - 8005c68: 4639 mov r1, r7 - 8005c6a: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005c6e: 2201 movs r2, #1 - 8005c70: 2320 movs r3, #32 - 8005c72: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8005c76: 5463 strb r3, [r4, r1] - 8005c78: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8005c7c: 68aa ldr r2, [r5, #8] - 8005c7e: 4d30 ldr r5, [pc, #192] ; (8005d40 ) - 8005c80: 4631 mov r1, r6 - 8005c82: 4620 mov r0, r4 - 8005c84: f7fc ffb6 bl 8002bf4 - 8005c88: 1cee adds r6, r5, #3 - 8005c8a: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8005c8e: 2700 movs r7, #0 - 8005c90: e015 b.n 8005cbe - 8005c92: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005c96: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005c9a: f884 70ff strb.w r7, [r4, #255] ; 0xff - 8005c9e: 4798 blx r3 - 8005ca0: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005ca4: 3301 adds r3, #1 - 8005ca6: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005caa: 2200 movs r2, #0 - 8005cac: 2301 movs r3, #1 - 8005cae: 42ae cmp r6, r5 - 8005cb0: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8005cb4: f804 8002 strb.w r8, [r4, r2] - 8005cb8: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 8005cbc: d0be beq.n 8005c3c - 8005cbe: 2bff cmp r3, #255 ; 0xff - 8005cc0: 4619 mov r1, r3 - 8005cc2: 4620 mov r0, r4 - 8005cc4: f815 8b01 ldrb.w r8, [r5], #1 - 8005cc8: d0e3 beq.n 8005c92 - 8005cca: 461a mov r2, r3 - 8005ccc: 3301 adds r3, #1 - 8005cce: e7ee b.n 8005cae - 8005cd0: 4f1c ldr r7, [pc, #112] ; (8005d44 ) - 8005cd2: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 8005cd6: f107 080a add.w r8, r7, #10 - 8005cda: f04f 0900 mov.w r9, #0 - 8005cde: e016 b.n 8005d0e - 8005ce0: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005ce4: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005ce8: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8005cec: 4798 blx r3 - 8005cee: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005cf2: 3301 adds r3, #1 - 8005cf4: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005cf8: 2200 movs r2, #0 - 8005cfa: 2301 movs r3, #1 - 8005cfc: 45b8 cmp r8, r7 - 8005cfe: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8005d02: f804 a002 strb.w sl, [r4, r2] - 8005d06: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8005d0a: f000 811e beq.w 8005f4a - 8005d0e: 2bff cmp r3, #255 ; 0xff - 8005d10: 4619 mov r1, r3 - 8005d12: 4620 mov r0, r4 - 8005d14: f817 ab01 ldrb.w sl, [r7], #1 - 8005d18: d0e2 beq.n 8005ce0 - 8005d1a: 461a mov r2, r3 - 8005d1c: 3301 adds r3, #1 - 8005d1e: e7ed b.n 8005cfc - 8005d20: 4d09 ldr r5, [pc, #36] ; (8005d48 ) - 8005d22: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 8005d26: f105 0611 add.w r6, r5, #17 - 8005d2a: 2700 movs r7, #0 - 8005d2c: e025 b.n 8005d7a - 8005d2e: bf00 nop - 8005d30: 08012884 .word 0x08012884 - 8005d34: 08012843 .word 0x08012843 - 8005d38: 0801284f .word 0x0801284f - 8005d3c: 0801285c .word 0x0801285c - 8005d40: 080128a8 .word 0x080128a8 - 8005d44: 080128ac .word 0x080128ac - 8005d48: 08012863 .word 0x08012863 - 8005d4c: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005d50: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005d54: f884 70ff strb.w r7, [r4, #255] ; 0xff - 8005d58: 4798 blx r3 - 8005d5a: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005d5e: 3301 adds r3, #1 - 8005d60: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005d64: 2200 movs r2, #0 - 8005d66: 2301 movs r3, #1 - 8005d68: 42ae cmp r6, r5 - 8005d6a: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8005d6e: f804 8002 strb.w r8, [r4, r2] - 8005d72: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 8005d76: f43f af61 beq.w 8005c3c - 8005d7a: 2bff cmp r3, #255 ; 0xff - 8005d7c: 4619 mov r1, r3 - 8005d7e: 4620 mov r0, r4 - 8005d80: f815 8f01 ldrb.w r8, [r5, #1]! - 8005d84: d0e2 beq.n 8005d4c - 8005d86: 461a mov r2, r3 - 8005d88: 3301 adds r3, #1 - 8005d8a: e7ed b.n 8005d68 - 8005d8c: 4f77 ldr r7, [pc, #476] ; (8005f6c ) - 8005d8e: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 8005d92: f107 0809 add.w r8, r7, #9 - 8005d96: f04f 0900 mov.w r9, #0 - 8005d9a: e016 b.n 8005dca - 8005d9c: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005da0: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005da4: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8005da8: 4798 blx r3 - 8005daa: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005dae: 3301 adds r3, #1 - 8005db0: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005db4: 2200 movs r2, #0 - 8005db6: 2301 movs r3, #1 - 8005db8: 4547 cmp r7, r8 - 8005dba: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8005dbe: f804 a002 strb.w sl, [r4, r2] - 8005dc2: f884 a104 strb.w sl, [r4, #260] ; 0x104 - 8005dc6: f000 8082 beq.w 8005ece - 8005dca: 2bff cmp r3, #255 ; 0xff - 8005dcc: 4619 mov r1, r3 - 8005dce: 4620 mov r0, r4 - 8005dd0: f817 af01 ldrb.w sl, [r7, #1]! - 8005dd4: d0e2 beq.n 8005d9c - 8005dd6: 461a mov r2, r3 - 8005dd8: 3301 adds r3, #1 - 8005dda: e7ed b.n 8005db8 - 8005ddc: 4d64 ldr r5, [pc, #400] ; (8005f70 ) - 8005dde: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 8005de2: f105 0608 add.w r6, r5, #8 - 8005de6: 2700 movs r7, #0 - 8005de8: e016 b.n 8005e18 - 8005dea: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005dee: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005df2: f884 70ff strb.w r7, [r4, #255] ; 0xff - 8005df6: 4798 blx r3 - 8005df8: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005dfc: 3301 adds r3, #1 - 8005dfe: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005e02: 2200 movs r2, #0 - 8005e04: 2301 movs r3, #1 - 8005e06: 42ae cmp r6, r5 - 8005e08: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8005e0c: f804 8002 strb.w r8, [r4, r2] - 8005e10: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 8005e14: f43f af12 beq.w 8005c3c - 8005e18: 2bff cmp r3, #255 ; 0xff - 8005e1a: 4619 mov r1, r3 - 8005e1c: 4620 mov r0, r4 - 8005e1e: f815 8f01 ldrb.w r8, [r5, #1]! - 8005e22: d0e2 beq.n 8005dea - 8005e24: 461a mov r2, r3 - 8005e26: 3301 adds r3, #1 - 8005e28: e7ed b.n 8005e06 - 8005e2a: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 8005e2e: 4d51 ldr r5, [pc, #324] ; (8005f74 ) - 8005e30: 2700 movs r7, #0 - 8005e32: 1cae adds r6, r5, #2 - 8005e34: e016 b.n 8005e64 - 8005e36: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005e3a: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005e3e: f884 70ff strb.w r7, [r4, #255] ; 0xff - 8005e42: 4798 blx r3 - 8005e44: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005e48: 3301 adds r3, #1 - 8005e4a: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005e4e: 2200 movs r2, #0 - 8005e50: 2301 movs r3, #1 - 8005e52: 42b5 cmp r5, r6 - 8005e54: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8005e58: f804 8002 strb.w r8, [r4, r2] - 8005e5c: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 8005e60: f43f aeec beq.w 8005c3c - 8005e64: 2bff cmp r3, #255 ; 0xff - 8005e66: 4619 mov r1, r3 - 8005e68: 4620 mov r0, r4 - 8005e6a: f815 8b01 ldrb.w r8, [r5], #1 - 8005e6e: d0e2 beq.n 8005e36 - 8005e70: 461a mov r2, r3 - 8005e72: 3301 adds r3, #1 - 8005e74: e7ed b.n 8005e52 - 8005e76: 4d40 ldr r5, [pc, #256] ; (8005f78 ) - 8005e78: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 8005e7c: f105 060a add.w r6, r5, #10 - 8005e80: 2700 movs r7, #0 - 8005e82: e016 b.n 8005eb2 - 8005e84: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005e88: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005e8c: f884 70ff strb.w r7, [r4, #255] ; 0xff - 8005e90: 4798 blx r3 - 8005e92: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005e96: 3301 adds r3, #1 - 8005e98: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005e9c: 2200 movs r2, #0 - 8005e9e: 2301 movs r3, #1 - 8005ea0: 42b5 cmp r5, r6 - 8005ea2: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8005ea6: f804 8002 strb.w r8, [r4, r2] - 8005eaa: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 8005eae: f43f aec5 beq.w 8005c3c - 8005eb2: 2bff cmp r3, #255 ; 0xff - 8005eb4: 4619 mov r1, r3 - 8005eb6: 4620 mov r0, r4 - 8005eb8: f815 8b01 ldrb.w r8, [r5], #1 - 8005ebc: d0e2 beq.n 8005e84 - 8005ebe: 461a mov r2, r3 - 8005ec0: 3301 adds r3, #1 - 8005ec2: e7ed b.n 8005ea0 - 8005ec4: 462a mov r2, r5 - 8005ec6: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8005eca: f7fc be93 b.w 8002bf4 - 8005ece: 68ea ldr r2, [r5, #12] - 8005ed0: 2a00 cmp r2, #0 - 8005ed2: f43f aeb3 beq.w 8005c3c - 8005ed6: 2bff cmp r3, #255 ; 0xff - 8005ed8: d144 bne.n 8005f64 - 8005eda: 2700 movs r7, #0 - 8005edc: 4619 mov r1, r3 - 8005ede: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005ee2: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005ee6: f884 70ff strb.w r7, [r4, #255] ; 0xff - 8005eea: 4620 mov r0, r4 - 8005eec: 4798 blx r3 - 8005eee: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005ef2: 68ea ldr r2, [r5, #12] - 8005ef4: 1c59 adds r1, r3, #1 - 8005ef6: f8c4 1124 str.w r1, [r4, #292] ; 0x124 - 8005efa: 463b mov r3, r7 - 8005efc: 2101 movs r1, #1 - 8005efe: 2528 movs r5, #40 ; 0x28 - 8005f00: f8c4 1100 str.w r1, [r4, #256] ; 0x100 - 8005f04: 4620 mov r0, r4 - 8005f06: 4631 mov r1, r6 - 8005f08: 54e5 strb r5, [r4, r3] - 8005f0a: f884 5104 strb.w r5, [r4, #260] ; 0x104 - 8005f0e: f7fc fe71 bl 8002bf4 - 8005f12: f8d4 1100 ldr.w r1, [r4, #256] ; 0x100 - 8005f16: 29ff cmp r1, #255 ; 0xff - 8005f18: d120 bne.n 8005f5c - 8005f1a: 2500 movs r5, #0 - 8005f1c: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005f20: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005f24: f884 50ff strb.w r5, [r4, #255] ; 0xff - 8005f28: 4620 mov r0, r4 - 8005f2a: 4798 blx r3 - 8005f2c: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005f30: 3301 adds r3, #1 - 8005f32: 4629 mov r1, r5 - 8005f34: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8005f38: 2201 movs r2, #1 - 8005f3a: 2329 movs r3, #41 ; 0x29 - 8005f3c: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8005f40: 5463 strb r3, [r4, r1] - 8005f42: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8005f46: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8005f4a: 4631 mov r1, r6 - 8005f4c: 68aa ldr r2, [r5, #8] - 8005f4e: 4620 mov r0, r4 - 8005f50: f7fc fe50 bl 8002bf4 - 8005f54: f8d4 1100 ldr.w r1, [r4, #256] ; 0x100 - 8005f58: 29ff cmp r1, #255 ; 0xff - 8005f5a: d0de beq.n 8005f1a - 8005f5c: 1c4a adds r2, r1, #1 - 8005f5e: e7ec b.n 8005f3a - 8005f60: 1c59 adds r1, r3, #1 - 8005f62: e665 b.n 8005c30 - 8005f64: 1c59 adds r1, r3, #1 - 8005f66: e7ca b.n 8005efe - 8005f68: 1c4a adds r2, r1, #1 - 8005f6a: e681 b.n 8005c70 - 8005f6c: 08012877 .word 0x08012877 - 8005f70: 0801288f .word 0x0801288f - 8005f74: 0801288c .word 0x0801288c - 8005f78: 0801289c .word 0x0801289c - -08005f7c : - 8005f7c: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 8005f80: 4604 mov r4, r0 - 8005f82: 460e mov r6, r1 - 8005f84: 4617 mov r7, r2 - 8005f86: 461d mov r5, r3 - 8005f88: b1d3 cbz r3, 8005fc0 - 8005f8a: 689b ldr r3, [r3, #8] - 8005f8c: b9c3 cbnz r3, 8005fc0 - 8005f8e: 462a mov r2, r5 - 8005f90: 2001 movs r0, #1 - 8005f92: f8df c1c8 ldr.w ip, [pc, #456] ; 800615c - 8005f96: e001 b.n 8005f9c - 8005f98: 6893 ldr r3, [r2, #8] - 8005f9a: b98b cbnz r3, 8005fc0 - 8005f9c: 6853 ldr r3, [r2, #4] - 8005f9e: 781b ldrb r3, [r3, #0] - 8005fa0: 3b19 subs r3, #25 - 8005fa2: b2db uxtb r3, r3 - 8005fa4: 2b12 cmp r3, #18 - 8005fa6: fa00 f103 lsl.w r1, r0, r3 - 8005faa: d806 bhi.n 8005fba - 8005fac: ea11 0f0c tst.w r1, ip - 8005fb0: f040 80c7 bne.w 8006142 - 8005fb4: f411 6f60 tst.w r1, #3584 ; 0xe00 - 8005fb8: d154 bne.n 8006064 - 8005fba: 6812 ldr r2, [r2, #0] - 8005fbc: 2a00 cmp r2, #0 - 8005fbe: d1eb bne.n 8005f98 - 8005fc0: 2300 movs r3, #0 - 8005fc2: f8d4 8114 ldr.w r8, [r4, #276] ; 0x114 - 8005fc6: f8c4 3114 str.w r3, [r4, #276] ; 0x114 - 8005fca: 4631 mov r1, r6 - 8005fcc: 462a mov r2, r5 - 8005fce: 4620 mov r0, r4 - 8005fd0: f000 f8c6 bl 8006160 - 8005fd4: f8d4 1100 ldr.w r1, [r4, #256] ; 0x100 - 8005fd8: 29ff cmp r1, #255 ; 0xff - 8005fda: f040 80a4 bne.w 8006126 - 8005fde: 2300 movs r3, #0 - 8005fe0: f884 30ff strb.w r3, [r4, #255] ; 0xff - 8005fe4: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8005fe8: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8005fec: 4620 mov r0, r4 - 8005fee: 4798 blx r3 - 8005ff0: 2328 movs r3, #40 ; 0x28 - 8005ff2: 7023 strb r3, [r4, #0] - 8005ff4: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8005ff8: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8005ffc: 683a ldr r2, [r7, #0] - 8005ffe: 1c59 adds r1, r3, #1 - 8006000: 2301 movs r3, #1 - 8006002: f8c4 1124 str.w r1, [r4, #292] ; 0x124 - 8006006: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800600a: 2a00 cmp r2, #0 - 800600c: f000 8097 beq.w 800613e - 8006010: 4631 mov r1, r6 - 8006012: 4620 mov r0, r4 - 8006014: f7fc fdee bl 8002bf4 - 8006018: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 800601c: 2bff cmp r3, #255 ; 0xff - 800601e: f040 808e bne.w 800613e - 8006022: 2700 movs r7, #0 - 8006024: 4619 mov r1, r3 - 8006026: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800602a: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800602e: f884 70ff strb.w r7, [r4, #255] ; 0xff - 8006032: 4620 mov r0, r4 - 8006034: 4798 blx r3 - 8006036: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800603a: 1c5a adds r2, r3, #1 - 800603c: f8c4 2124 str.w r2, [r4, #292] ; 0x124 - 8006040: 463b mov r3, r7 - 8006042: 2201 movs r2, #1 - 8006044: 2029 movs r0, #41 ; 0x29 - 8006046: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 800604a: 4631 mov r1, r6 - 800604c: 54e0 strb r0, [r4, r3] - 800604e: 462a mov r2, r5 - 8006050: f884 0104 strb.w r0, [r4, #260] ; 0x104 - 8006054: 2301 movs r3, #1 - 8006056: 4620 mov r0, r4 - 8006058: f000 f882 bl 8006160 - 800605c: f8c4 8114 str.w r8, [r4, #276] ; 0x114 - 8006060: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 8006064: f894 3104 ldrb.w r3, [r4, #260] ; 0x104 - 8006068: f8d4 1100 ldr.w r1, [r4, #256] ; 0x100 - 800606c: f003 02fd and.w r2, r3, #253 ; 0xfd - 8006070: 2a28 cmp r2, #40 ; 0x28 - 8006072: d01e beq.n 80060b2 - 8006074: 2b20 cmp r3, #32 - 8006076: d01c beq.n 80060b2 - 8006078: 29ff cmp r1, #255 ; 0xff - 800607a: d112 bne.n 80060a2 - 800607c: 2300 movs r3, #0 - 800607e: f884 30ff strb.w r3, [r4, #255] ; 0xff - 8006082: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8006086: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800608a: 4620 mov r0, r4 - 800608c: 4798 blx r3 - 800608e: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8006092: 2220 movs r2, #32 - 8006094: 3301 adds r3, #1 - 8006096: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 800609a: 7022 strb r2, [r4, #0] - 800609c: 2101 movs r1, #1 - 800609e: 1c4a adds r2, r1, #1 - 80060a0: e01a b.n 80060d8 - 80060a2: 1c4b adds r3, r1, #1 - 80060a4: 2220 movs r2, #32 - 80060a6: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80060aa: 5462 strb r2, [r4, r1] - 80060ac: f884 2104 strb.w r2, [r4, #260] ; 0x104 - 80060b0: 4619 mov r1, r3 - 80060b2: 29ff cmp r1, #255 ; 0xff - 80060b4: d1f3 bne.n 800609e - 80060b6: f04f 0800 mov.w r8, #0 - 80060ba: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80060be: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80060c2: f884 80ff strb.w r8, [r4, #255] ; 0xff - 80060c6: 4620 mov r0, r4 - 80060c8: 4798 blx r3 - 80060ca: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80060ce: 3301 adds r3, #1 - 80060d0: 4641 mov r1, r8 - 80060d2: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80060d6: 2201 movs r2, #1 - 80060d8: 2328 movs r3, #40 ; 0x28 - 80060da: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 80060de: 5463 strb r3, [r4, r1] - 80060e0: f04f 0900 mov.w r9, #0 - 80060e4: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80060e8: f8d4 8114 ldr.w r8, [r4, #276] ; 0x114 - 80060ec: f8c4 9114 str.w r9, [r4, #276] ; 0x114 - 80060f0: 464b mov r3, r9 - 80060f2: 462a mov r2, r5 - 80060f4: 4631 mov r1, r6 - 80060f6: 4620 mov r0, r4 - 80060f8: f000 f832 bl 8006160 - 80060fc: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8006100: 2bff cmp r3, #255 ; 0xff - 8006102: d123 bne.n 800614c - 8006104: 4619 mov r1, r3 - 8006106: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800610a: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800610e: f884 90ff strb.w r9, [r4, #255] ; 0xff - 8006112: 4620 mov r0, r4 - 8006114: 4798 blx r3 - 8006116: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800611a: 2229 movs r2, #41 ; 0x29 - 800611c: 3301 adds r3, #1 - 800611e: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8006122: 7022 strb r2, [r4, #0] - 8006124: 2101 movs r1, #1 - 8006126: 2228 movs r2, #40 ; 0x28 - 8006128: 1c4b adds r3, r1, #1 - 800612a: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800612e: 5462 strb r2, [r4, r1] - 8006130: f884 2104 strb.w r2, [r4, #260] ; 0x104 - 8006134: 683a ldr r2, [r7, #0] - 8006136: 2a00 cmp r2, #0 - 8006138: f43f af70 beq.w 800601c - 800613c: e768 b.n 8006010 - 800613e: 1c5a adds r2, r3, #1 - 8006140: e780 b.n 8006044 - 8006142: f894 3104 ldrb.w r3, [r4, #260] ; 0x104 - 8006146: f8d4 1100 ldr.w r1, [r4, #256] ; 0x100 - 800614a: e793 b.n 8006074 - 800614c: 2229 movs r2, #41 ; 0x29 - 800614e: 1c59 adds r1, r3, #1 - 8006150: f8c4 1100 str.w r1, [r4, #256] ; 0x100 - 8006154: 54e2 strb r2, [r4, r3] - 8006156: f884 2104 strb.w r2, [r4, #260] ; 0x104 - 800615a: e73d b.n 8005fd8 - 800615c: 00043107 .word 0x00043107 - -08006160 : - 8006160: 2a00 cmp r2, #0 - 8006162: f000 80ac beq.w 80062be - 8006166: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800616a: 461f mov r7, r3 - 800616c: f8d0 3118 ldr.w r3, [r0, #280] ; 0x118 - 8006170: b089 sub sp, #36 ; 0x24 - 8006172: 4605 mov r5, r0 - 8006174: bb4b cbnz r3, 80061ca - 8006176: 4688 mov r8, r1 - 8006178: 4614 mov r4, r2 - 800617a: f04f 0901 mov.w r9, #1 - 800617e: e002 b.n 8006186 - 8006180: f8d5 3118 ldr.w r3, [r5, #280] ; 0x118 - 8006184: bb0b cbnz r3, 80061ca - 8006186: 68a3 ldr r3, [r4, #8] - 8006188: b9e3 cbnz r3, 80061c4 - 800618a: f8d4 a004 ldr.w sl, [r4, #4] - 800618e: f89a 6000 ldrb.w r6, [sl] - 8006192: 4630 mov r0, r6 - 8006194: b917 cbnz r7, 800619c - 8006196: f7fa f93f bl 8000418 - 800619a: b998 cbnz r0, 80061c4 - 800619c: 68e3 ldr r3, [r4, #12] - 800619e: f8c4 9008 str.w r9, [r4, #8] - 80061a2: 2e29 cmp r6, #41 ; 0x29 - 80061a4: f8d5 b110 ldr.w fp, [r5, #272] ; 0x110 - 80061a8: f8c5 3110 str.w r3, [r5, #272] ; 0x110 - 80061ac: 4652 mov r2, sl - 80061ae: 4641 mov r1, r8 - 80061b0: 4628 mov r0, r5 - 80061b2: d00d beq.n 80061d0 - 80061b4: 2e2a cmp r6, #42 ; 0x2a - 80061b6: d015 beq.n 80061e4 - 80061b8: 2e02 cmp r6, #2 - 80061ba: d01d beq.n 80061f8 - 80061bc: f7ff fbb0 bl 8005920 - 80061c0: f8c5 b110 str.w fp, [r5, #272] ; 0x110 - 80061c4: 6824 ldr r4, [r4, #0] - 80061c6: 2c00 cmp r4, #0 - 80061c8: d1da bne.n 8006180 - 80061ca: b009 add sp, #36 ; 0x24 - 80061cc: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 80061d0: 6823 ldr r3, [r4, #0] - 80061d2: f10a 020c add.w r2, sl, #12 - 80061d6: f7ff fed1 bl 8005f7c - 80061da: f8c5 b110 str.w fp, [r5, #272] ; 0x110 - 80061de: b009 add sp, #36 ; 0x24 - 80061e0: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 80061e4: 6823 ldr r3, [r4, #0] - 80061e6: f10a 0208 add.w r2, sl, #8 - 80061ea: f000 f8f1 bl 80063d0 - 80061ee: f8c5 b110 str.w fp, [r5, #272] ; 0x110 - 80061f2: b009 add sp, #36 ; 0x24 - 80061f4: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 80061f8: 2600 movs r6, #0 - 80061fa: f8d5 7114 ldr.w r7, [r5, #276] ; 0x114 - 80061fe: f8da 2008 ldr.w r2, [sl, #8] - 8006202: f8c5 6114 str.w r6, [r5, #276] ; 0x114 - 8006206: f7fc fcf5 bl 8002bf4 - 800620a: f8c5 7114 str.w r7, [r5, #276] ; 0x114 - 800620e: f018 0704 ands.w r7, r8, #4 - 8006212: d02f beq.n 8006274 - 8006214: f8d5 1100 ldr.w r1, [r5, #256] ; 0x100 - 8006218: 29ff cmp r1, #255 ; 0xff - 800621a: f040 80cf bne.w 80063bc - 800621e: f8d5 3108 ldr.w r3, [r5, #264] ; 0x108 - 8006222: f8d5 210c ldr.w r2, [r5, #268] ; 0x10c - 8006226: f885 60ff strb.w r6, [r5, #255] ; 0xff - 800622a: 4628 mov r0, r5 - 800622c: 4798 blx r3 - 800622e: f8d5 3124 ldr.w r3, [r5, #292] ; 0x124 - 8006232: 3301 adds r3, #1 - 8006234: 4631 mov r1, r6 - 8006236: f8c5 3124 str.w r3, [r5, #292] ; 0x124 - 800623a: 2201 movs r2, #1 - 800623c: 232e movs r3, #46 ; 0x2e - 800623e: f8c5 2100 str.w r2, [r5, #256] ; 0x100 - 8006242: 546b strb r3, [r5, r1] - 8006244: f885 3104 strb.w r3, [r5, #260] ; 0x104 - 8006248: 6863 ldr r3, [r4, #4] - 800624a: 68dc ldr r4, [r3, #12] - 800624c: 7820 ldrb r0, [r4, #0] - 800624e: 2846 cmp r0, #70 ; 0x46 - 8006250: d102 bne.n 8006258 - 8006252: e035 b.n 80062c0 - 8006254: 68a4 ldr r4, [r4, #8] - 8006256: 7820 ldrb r0, [r4, #0] - 8006258: f7fa f8de bl 8000418 - 800625c: 2800 cmp r0, #0 - 800625e: d1f9 bne.n 8006254 - 8006260: 4622 mov r2, r4 - 8006262: 4641 mov r1, r8 - 8006264: 4628 mov r0, r5 - 8006266: f7fc fcc5 bl 8002bf4 - 800626a: f8c5 b110 str.w fp, [r5, #272] ; 0x110 - 800626e: b009 add sp, #36 ; 0x24 - 8006270: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8006274: 4e52 ldr r6, [pc, #328] ; (80063c0 ) - 8006276: f8d5 3100 ldr.w r3, [r5, #256] ; 0x100 - 800627a: f106 0902 add.w r9, r6, #2 - 800627e: e015 b.n 80062ac - 8006280: f8d5 3108 ldr.w r3, [r5, #264] ; 0x108 - 8006284: f8d5 210c ldr.w r2, [r5, #268] ; 0x10c - 8006288: f885 70ff strb.w r7, [r5, #255] ; 0xff - 800628c: 4798 blx r3 - 800628e: f8d5 3124 ldr.w r3, [r5, #292] ; 0x124 - 8006292: 3301 adds r3, #1 - 8006294: f8c5 3124 str.w r3, [r5, #292] ; 0x124 - 8006298: 2200 movs r2, #0 - 800629a: 2301 movs r3, #1 - 800629c: 45b1 cmp r9, r6 - 800629e: f8c5 3100 str.w r3, [r5, #256] ; 0x100 - 80062a2: f805 a002 strb.w sl, [r5, r2] - 80062a6: f885 a104 strb.w sl, [r5, #260] ; 0x104 - 80062aa: d0cd beq.n 8006248 - 80062ac: 2bff cmp r3, #255 ; 0xff - 80062ae: 4619 mov r1, r3 - 80062b0: 4628 mov r0, r5 - 80062b2: f816 ab01 ldrb.w sl, [r6], #1 - 80062b6: d0e3 beq.n 8006280 - 80062b8: 461a mov r2, r3 - 80062ba: 3301 adds r3, #1 - 80062bc: e7ee b.n 800629c - 80062be: 4770 bx lr - 80062c0: 4e40 ldr r6, [pc, #256] ; (80063c4 ) - 80062c2: f8d5 3100 ldr.w r3, [r5, #256] ; 0x100 - 80062c6: f106 070d add.w r7, r6, #13 - 80062ca: f04f 0900 mov.w r9, #0 - 80062ce: e015 b.n 80062fc - 80062d0: f8d5 3108 ldr.w r3, [r5, #264] ; 0x108 - 80062d4: f8d5 210c ldr.w r2, [r5, #268] ; 0x10c - 80062d8: f885 90ff strb.w r9, [r5, #255] ; 0xff - 80062dc: 4798 blx r3 - 80062de: f8d5 3124 ldr.w r3, [r5, #292] ; 0x124 - 80062e2: 3301 adds r3, #1 - 80062e4: f8c5 3124 str.w r3, [r5, #292] ; 0x124 - 80062e8: 2200 movs r2, #0 - 80062ea: 2301 movs r3, #1 - 80062ec: 42b7 cmp r7, r6 - 80062ee: f8c5 3100 str.w r3, [r5, #256] ; 0x100 - 80062f2: f805 a002 strb.w sl, [r5, r2] - 80062f6: f885 a104 strb.w sl, [r5, #260] ; 0x104 - 80062fa: d008 beq.n 800630e - 80062fc: 2bff cmp r3, #255 ; 0xff - 80062fe: 4619 mov r1, r3 - 8006300: 4628 mov r0, r5 - 8006302: f816 ab01 ldrb.w sl, [r6], #1 - 8006306: d0e3 beq.n 80062d0 - 8006308: 461a mov r2, r3 - 800630a: 3301 adds r3, #1 - 800630c: e7ee b.n 80062ec - 800630e: 68e2 ldr r2, [r4, #12] - 8006310: 492d ldr r1, [pc, #180] ; (80063c8 ) - 8006312: 3201 adds r2, #1 - 8006314: a801 add r0, sp, #4 - 8006316: f008 faa1 bl 800e85c - 800631a: a801 add r0, sp, #4 - 800631c: f000 fd5a bl 8006dd4 - 8006320: b328 cbz r0, 800636e - 8006322: ae01 add r6, sp, #4 - 8006324: f8d5 3100 ldr.w r3, [r5, #256] ; 0x100 - 8006328: 1837 adds r7, r6, r0 - 800632a: f04f 0900 mov.w r9, #0 - 800632e: e015 b.n 800635c - 8006330: f8d5 3108 ldr.w r3, [r5, #264] ; 0x108 - 8006334: f8d5 210c ldr.w r2, [r5, #268] ; 0x10c - 8006338: f885 90ff strb.w r9, [r5, #255] ; 0xff - 800633c: 4798 blx r3 - 800633e: f8d5 3124 ldr.w r3, [r5, #292] ; 0x124 - 8006342: 3301 adds r3, #1 - 8006344: f8c5 3124 str.w r3, [r5, #292] ; 0x124 - 8006348: 2200 movs r2, #0 - 800634a: 2301 movs r3, #1 - 800634c: 42be cmp r6, r7 - 800634e: f8c5 3100 str.w r3, [r5, #256] ; 0x100 - 8006352: f805 a002 strb.w sl, [r5, r2] - 8006356: f885 a104 strb.w sl, [r5, #260] ; 0x104 - 800635a: d00a beq.n 8006372 - 800635c: 2bff cmp r3, #255 ; 0xff - 800635e: 4619 mov r1, r3 - 8006360: 4628 mov r0, r5 - 8006362: f816 ab01 ldrb.w sl, [r6], #1 - 8006366: d0e3 beq.n 8006330 - 8006368: 461a mov r2, r3 - 800636a: 3301 adds r3, #1 - 800636c: e7ee b.n 800634c - 800636e: f8d5 3100 ldr.w r3, [r5, #256] ; 0x100 - 8006372: 4e16 ldr r6, [pc, #88] ; (80063cc ) - 8006374: f04f 0900 mov.w r9, #0 - 8006378: 1cf7 adds r7, r6, #3 - 800637a: e016 b.n 80063aa - 800637c: f8d5 3108 ldr.w r3, [r5, #264] ; 0x108 - 8006380: f8d5 210c ldr.w r2, [r5, #268] ; 0x10c - 8006384: f885 90ff strb.w r9, [r5, #255] ; 0xff - 8006388: 4798 blx r3 - 800638a: f8d5 3124 ldr.w r3, [r5, #292] ; 0x124 - 800638e: 3301 adds r3, #1 - 8006390: f8c5 3124 str.w r3, [r5, #292] ; 0x124 - 8006394: 2200 movs r2, #0 - 8006396: 2301 movs r3, #1 - 8006398: 42b7 cmp r7, r6 - 800639a: f8c5 3100 str.w r3, [r5, #256] ; 0x100 - 800639e: f805 a002 strb.w sl, [r5, r2] - 80063a2: f885 a104 strb.w sl, [r5, #260] ; 0x104 - 80063a6: f43f af55 beq.w 8006254 - 80063aa: 2bff cmp r3, #255 ; 0xff - 80063ac: 4619 mov r1, r3 - 80063ae: 4628 mov r0, r5 - 80063b0: f816 ab01 ldrb.w sl, [r6], #1 - 80063b4: d0e2 beq.n 800637c - 80063b6: 461a mov r2, r3 - 80063b8: 3301 adds r3, #1 - 80063ba: e7ed b.n 8006398 - 80063bc: 1c4a adds r2, r1, #1 - 80063be: e73d b.n 800623c - 80063c0: 080125c4 .word 0x080125c4 - 80063c4: 080125c8 .word 0x080125c8 - 80063c8: 08012574 .word 0x08012574 - 80063cc: 080125d8 .word 0x080125d8 - -080063d0 : - 80063d0: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 80063d4: 4604 mov r4, r0 - 80063d6: 460f mov r7, r1 - 80063d8: 4690 mov r8, r2 - 80063da: b15b cbz r3, 80063f4 - 80063dc: 461e mov r6, r3 - 80063de: 689d ldr r5, [r3, #8] - 80063e0: 2d00 cmp r5, #0 - 80063e2: d042 beq.n 800646a - 80063e4: 681b ldr r3, [r3, #0] - 80063e6: 2b00 cmp r3, #0 - 80063e8: d1f9 bne.n 80063de - 80063ea: 4632 mov r2, r6 - 80063ec: 4639 mov r1, r7 - 80063ee: 4620 mov r0, r4 - 80063f0: f7ff feb6 bl 8006160 - 80063f4: f8d4 1100 ldr.w r1, [r4, #256] ; 0x100 - 80063f8: 29ff cmp r1, #255 ; 0xff - 80063fa: f040 80b1 bne.w 8006560 - 80063fe: 2300 movs r3, #0 - 8006400: f884 30ff strb.w r3, [r4, #255] ; 0xff - 8006404: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8006408: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800640c: 4620 mov r0, r4 - 800640e: 4798 blx r3 - 8006410: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8006414: 2220 movs r2, #32 - 8006416: 3301 adds r3, #1 - 8006418: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 800641c: 7022 strb r2, [r4, #0] - 800641e: 2301 movs r3, #1 - 8006420: 225b movs r2, #91 ; 0x5b - 8006422: 1c59 adds r1, r3, #1 - 8006424: f8c4 1100 str.w r1, [r4, #256] ; 0x100 - 8006428: 54e2 strb r2, [r4, r3] - 800642a: f884 2104 strb.w r2, [r4, #260] ; 0x104 - 800642e: f8d8 2000 ldr.w r2, [r8] - 8006432: 2a00 cmp r2, #0 - 8006434: d140 bne.n 80064b8 - 8006436: 29ff cmp r1, #255 ; 0xff - 8006438: d145 bne.n 80064c6 - 800643a: 2500 movs r5, #0 - 800643c: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8006440: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8006444: f884 50ff strb.w r5, [r4, #255] ; 0xff - 8006448: 4620 mov r0, r4 - 800644a: 4798 blx r3 - 800644c: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8006450: 3301 adds r3, #1 - 8006452: 4629 mov r1, r5 - 8006454: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8006458: 2201 movs r2, #1 - 800645a: 235d movs r3, #93 ; 0x5d - 800645c: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 8006460: 5463 strb r3, [r4, r1] - 8006462: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8006466: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800646a: 685b ldr r3, [r3, #4] - 800646c: 781b ldrb r3, [r3, #0] - 800646e: 2b2a cmp r3, #42 ; 0x2a - 8006470: d12b bne.n 80064ca - 8006472: 462b mov r3, r5 - 8006474: 4632 mov r2, r6 - 8006476: 4639 mov r1, r7 - 8006478: 4620 mov r0, r4 - 800647a: f7ff fe71 bl 8006160 - 800647e: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8006482: 2bff cmp r3, #255 ; 0xff - 8006484: d1cc bne.n 8006420 - 8006486: 2200 movs r2, #0 - 8006488: 4619 mov r1, r3 - 800648a: f884 20ff strb.w r2, [r4, #255] ; 0xff - 800648e: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8006492: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8006496: 4620 mov r0, r4 - 8006498: 4798 blx r3 - 800649a: 235b movs r3, #91 ; 0x5b - 800649c: 7023 strb r3, [r4, #0] - 800649e: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80064a2: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80064a6: f8d8 2000 ldr.w r2, [r8] - 80064aa: 3301 adds r3, #1 - 80064ac: 2101 movs r1, #1 - 80064ae: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80064b2: f8c4 1100 str.w r1, [r4, #256] ; 0x100 - 80064b6: b132 cbz r2, 80064c6 - 80064b8: 4639 mov r1, r7 - 80064ba: 4620 mov r0, r4 - 80064bc: f7fc fb9a bl 8002bf4 - 80064c0: f8d4 1100 ldr.w r1, [r4, #256] ; 0x100 - 80064c4: e7b7 b.n 8006436 - 80064c6: 1c4a adds r2, r1, #1 - 80064c8: e7c7 b.n 800645a - 80064ca: f8df 90b4 ldr.w r9, [pc, #180] ; 8006580 - 80064ce: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80064d2: f109 0a02 add.w sl, r9, #2 - 80064d6: e016 b.n 8006506 - 80064d8: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80064dc: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80064e0: f884 50ff strb.w r5, [r4, #255] ; 0xff - 80064e4: 4798 blx r3 - 80064e6: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80064ea: 2200 movs r2, #0 - 80064ec: 3301 adds r3, #1 - 80064ee: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80064f2: 45ca cmp sl, r9 - 80064f4: f04f 0301 mov.w r3, #1 - 80064f8: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80064fc: f804 b002 strb.w fp, [r4, r2] - 8006500: f884 b104 strb.w fp, [r4, #260] ; 0x104 - 8006504: d010 beq.n 8006528 - 8006506: 2bff cmp r3, #255 ; 0xff - 8006508: 4619 mov r1, r3 - 800650a: 4620 mov r0, r4 - 800650c: f819 bb01 ldrb.w fp, [r9], #1 - 8006510: d0e2 beq.n 80064d8 - 8006512: 461a mov r2, r3 - 8006514: 45ca cmp sl, r9 - 8006516: f103 0301 add.w r3, r3, #1 - 800651a: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 800651e: f804 b002 strb.w fp, [r4, r2] - 8006522: f884 b104 strb.w fp, [r4, #260] ; 0x104 - 8006526: d1ee bne.n 8006506 - 8006528: 2300 movs r3, #0 - 800652a: 4632 mov r2, r6 - 800652c: 4639 mov r1, r7 - 800652e: 4620 mov r0, r4 - 8006530: f7ff fe16 bl 8006160 - 8006534: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 8006538: 2bff cmp r3, #255 ; 0xff - 800653a: d119 bne.n 8006570 - 800653c: 2200 movs r2, #0 - 800653e: 4619 mov r1, r3 - 8006540: f884 20ff strb.w r2, [r4, #255] ; 0xff - 8006544: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8006548: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800654c: 4620 mov r0, r4 - 800654e: 4798 blx r3 - 8006550: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8006554: 2229 movs r2, #41 ; 0x29 - 8006556: 3301 adds r3, #1 - 8006558: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 800655c: 7022 strb r2, [r4, #0] - 800655e: 2101 movs r1, #1 - 8006560: 2220 movs r2, #32 - 8006562: 1c4b adds r3, r1, #1 - 8006564: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8006568: 5462 strb r2, [r4, r1] - 800656a: f884 2104 strb.w r2, [r4, #260] ; 0x104 - 800656e: e788 b.n 8006482 - 8006570: 2229 movs r2, #41 ; 0x29 - 8006572: 1c59 adds r1, r3, #1 - 8006574: f8c4 1100 str.w r1, [r4, #256] ; 0x100 - 8006578: 54e2 strb r2, [r4, r3] - 800657a: f884 2104 strb.w r2, [r4, #260] ; 0x104 - 800657e: e73b b.n 80063f8 - 8006580: 080127c0 .word 0x080127c0 - -08006584 : - 8006584: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8006588: 7815 ldrb r5, [r2, #0] - 800658a: 2d31 cmp r5, #49 ; 0x31 - 800658c: d003 beq.n 8006596 - 800658e: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 8006592: f7fc bb2f b.w 8002bf4 - 8006596: 6893 ldr r3, [r2, #8] - 8006598: e9d3 5601 ldrd r5, r6, [r3, #4] - 800659c: b37e cbz r6, 80065fe - 800659e: 442e add r6, r5 - 80065a0: 4604 mov r4, r0 - 80065a2: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 80065a6: 3e01 subs r6, #1 - 80065a8: 3d01 subs r5, #1 - 80065aa: 2700 movs r7, #0 - 80065ac: e016 b.n 80065dc - 80065ae: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80065b2: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80065b6: f884 70ff strb.w r7, [r4, #255] ; 0xff - 80065ba: 4798 blx r3 - 80065bc: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80065c0: 2200 movs r2, #0 - 80065c2: 3301 adds r3, #1 - 80065c4: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80065c8: 42b5 cmp r5, r6 - 80065ca: f04f 0301 mov.w r3, #1 - 80065ce: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80065d2: f804 8002 strb.w r8, [r4, r2] - 80065d6: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 80065da: d010 beq.n 80065fe - 80065dc: 2bff cmp r3, #255 ; 0xff - 80065de: 4619 mov r1, r3 - 80065e0: 4620 mov r0, r4 - 80065e2: f815 8f01 ldrb.w r8, [r5, #1]! - 80065e6: d0e2 beq.n 80065ae - 80065e8: 461a mov r2, r3 - 80065ea: 42b5 cmp r5, r6 - 80065ec: f103 0301 add.w r3, r3, #1 - 80065f0: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80065f4: f804 8002 strb.w r8, [r4, r2] - 80065f8: f884 8104 strb.w r8, [r4, #260] ; 0x104 - 80065fc: d1ee bne.n 80065dc - 80065fe: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8006602: bf00 nop - -08006604 : - 8006604: 7813 ldrb r3, [r2, #0] - 8006606: 2b01 cmp r3, #1 - 8006608: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 800660c: 4604 mov r4, r0 - 800660e: d941 bls.n 8006694 - 8006610: 2b30 cmp r3, #48 ; 0x30 - 8006612: d03f beq.n 8006694 - 8006614: 2b06 cmp r3, #6 - 8006616: d03d beq.n 8006694 - 8006618: f8d0 7100 ldr.w r7, [r0, #256] ; 0x100 - 800661c: 2fff cmp r7, #255 ; 0xff - 800661e: 460e mov r6, r1 - 8006620: 4615 mov r5, r2 - 8006622: d13e bne.n 80066a2 - 8006624: f04f 0800 mov.w r8, #0 - 8006628: 4639 mov r1, r7 - 800662a: f8d0 3108 ldr.w r3, [r0, #264] ; 0x108 - 800662e: f8d0 210c ldr.w r2, [r0, #268] ; 0x10c - 8006632: f880 80ff strb.w r8, [r0, #255] ; 0xff - 8006636: 4798 blx r3 - 8006638: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800663c: 3301 adds r3, #1 - 800663e: 4647 mov r7, r8 - 8006640: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8006644: 2201 movs r2, #1 - 8006646: 2328 movs r3, #40 ; 0x28 - 8006648: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 800664c: 4631 mov r1, r6 - 800664e: 55e3 strb r3, [r4, r7] - 8006650: 462a mov r2, r5 - 8006652: 4620 mov r0, r4 - 8006654: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8006658: f7fc facc bl 8002bf4 - 800665c: f8d4 1100 ldr.w r1, [r4, #256] ; 0x100 - 8006660: 29ff cmp r1, #255 ; 0xff - 8006662: d11c bne.n 800669e - 8006664: 2500 movs r5, #0 - 8006666: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800666a: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800666e: f884 50ff strb.w r5, [r4, #255] ; 0xff - 8006672: 4620 mov r0, r4 - 8006674: 4798 blx r3 - 8006676: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800667a: 3301 adds r3, #1 - 800667c: 4629 mov r1, r5 - 800667e: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8006682: 2201 movs r2, #1 - 8006684: 2329 movs r3, #41 ; 0x29 - 8006686: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 800668a: 5463 strb r3, [r4, r1] - 800668c: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8006690: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8006694: 4620 mov r0, r4 - 8006696: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 800669a: f7fc baab b.w 8002bf4 - 800669e: 1c4a adds r2, r1, #1 - 80066a0: e7f0 b.n 8006684 - 80066a2: 1c7a adds r2, r7, #1 - 80066a4: e7cf b.n 8006646 - 80066a6: bf00 nop - -080066a8 : - 80066a8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 80066ac: 6892 ldr r2, [r2, #8] - 80066ae: 6812 ldr r2, [r2, #0] - 80066b0: 7816 ldrb r6, [r2, #0] - 80066b2: 2e66 cmp r6, #102 ; 0x66 - 80066b4: b083 sub sp, #12 - 80066b6: d003 beq.n 80066c0 - 80066b8: 2000 movs r0, #0 - 80066ba: b003 add sp, #12 - 80066bc: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 80066c0: 681b ldr r3, [r3, #0] - 80066c2: e9d3 8902 ldrd r8, r9, [r3, #8] - 80066c6: f899 3000 ldrb.w r3, [r9] - 80066ca: 2b3b cmp r3, #59 ; 0x3b - 80066cc: f000 8110 beq.w 80068f0 - 80066d0: 2300 movs r3, #0 - 80066d2: 9301 str r3, [sp, #4] - 80066d4: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 80066d8: f8d0 7120 ldr.w r7, [r0, #288] ; 0x120 - 80066dc: f8c0 3120 str.w r3, [r0, #288] ; 0x120 - 80066e0: 7853 ldrb r3, [r2, #1] - 80066e2: 3b4c subs r3, #76 ; 0x4c - 80066e4: 460d mov r5, r1 - 80066e6: 4604 mov r4, r0 - 80066e8: 2b26 cmp r3, #38 ; 0x26 - 80066ea: d83a bhi.n 8006762 - 80066ec: e8df f003 tbb [pc, r3] - 80066f0: 393939b0 .word 0x393939b0 - 80066f4: 39b03939 .word 0x39b03939 - 80066f8: 39393939 .word 0x39393939 - 80066fc: 39393939 .word 0x39393939 - 8006700: 39393939 .word 0x39393939 - 8006704: 39393939 .word 0x39393939 - 8006708: 39393939 .word 0x39393939 - 800670c: 39393939 .word 0x39393939 - 8006710: 39393989 .word 0x39393989 - 8006714: 3939 .short 0x3939 - 8006716: 3f .byte 0x3f - 8006717: 00 .byte 0x00 - 8006718: 4642 mov r2, r8 - 800671a: 4629 mov r1, r5 - 800671c: 4620 mov r0, r4 - 800671e: f7ff ff31 bl 8006584 - 8006722: 9a01 ldr r2, [sp, #4] - 8006724: 4629 mov r1, r5 - 8006726: 4620 mov r0, r4 - 8006728: f7ff ff6c bl 8006604 - 800672c: f8d4 1100 ldr.w r1, [r4, #256] ; 0x100 - 8006730: 29ff cmp r1, #255 ; 0xff - 8006732: f040 80ea bne.w 800690a - 8006736: 2500 movs r5, #0 - 8006738: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800673c: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8006740: f884 50ff strb.w r5, [r4, #255] ; 0xff - 8006744: 4620 mov r0, r4 - 8006746: 4798 blx r3 - 8006748: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800674c: 3301 adds r3, #1 - 800674e: 4629 mov r1, r5 - 8006750: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8006754: 2201 movs r2, #1 - 8006756: 2329 movs r3, #41 ; 0x29 - 8006758: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 800675c: 5463 strb r3, [r4, r1] - 800675e: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 8006762: 2001 movs r0, #1 - 8006764: f8c4 7120 str.w r7, [r4, #288] ; 0x120 - 8006768: b003 add sp, #12 - 800676a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800676e: f8d0 1100 ldr.w r1, [r0, #256] ; 0x100 - 8006772: 29ff cmp r1, #255 ; 0xff - 8006774: f040 80cb bne.w 800690e - 8006778: 2600 movs r6, #0 - 800677a: f8d0 3108 ldr.w r3, [r0, #264] ; 0x108 - 800677e: f8d0 210c ldr.w r2, [r0, #268] ; 0x10c - 8006782: f880 60ff strb.w r6, [r0, #255] ; 0xff - 8006786: 4798 blx r3 - 8006788: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800678c: 3301 adds r3, #1 - 800678e: 4631 mov r1, r6 - 8006790: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 8006794: 2201 movs r2, #1 - 8006796: 2328 movs r3, #40 ; 0x28 - 8006798: f8c4 2100 str.w r2, [r4, #256] ; 0x100 - 800679c: 4620 mov r0, r4 - 800679e: 5463 strb r3, [r4, r1] - 80067a0: 464a mov r2, r9 - 80067a2: 4629 mov r1, r5 - 80067a4: f884 3104 strb.w r3, [r4, #260] ; 0x104 - 80067a8: f7ff ff2c bl 8006604 - 80067ac: 4629 mov r1, r5 - 80067ae: 4d59 ldr r5, [pc, #356] ; (8006914 ) - 80067b0: 4642 mov r2, r8 - 80067b2: 4620 mov r0, r4 - 80067b4: f7ff fee6 bl 8006584 - 80067b8: 1d2e adds r6, r5, #4 - 80067ba: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80067be: f04f 0800 mov.w r8, #0 - 80067c2: e015 b.n 80067f0 - 80067c4: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80067c8: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80067cc: f884 80ff strb.w r8, [r4, #255] ; 0xff - 80067d0: 4798 blx r3 - 80067d2: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80067d6: 3301 adds r3, #1 - 80067d8: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80067dc: 2200 movs r2, #0 - 80067de: 2301 movs r3, #1 - 80067e0: 42ae cmp r6, r5 - 80067e2: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80067e6: f804 9002 strb.w r9, [r4, r2] - 80067ea: f884 9104 strb.w r9, [r4, #260] ; 0x104 - 80067ee: d0b8 beq.n 8006762 - 80067f0: 2bff cmp r3, #255 ; 0xff - 80067f2: 4619 mov r1, r3 - 80067f4: 4620 mov r0, r4 - 80067f6: f815 9b01 ldrb.w r9, [r5], #1 - 80067fa: d0e3 beq.n 80067c4 - 80067fc: 461a mov r2, r3 - 80067fe: 3301 adds r3, #1 - 8006800: e7ee b.n 80067e0 - 8006802: 4e45 ldr r6, [pc, #276] ; (8006918 ) - 8006804: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 8006808: f106 0a04 add.w sl, r6, #4 - 800680c: e017 b.n 800683e - 800680e: f04f 0300 mov.w r3, #0 - 8006812: f884 30ff strb.w r3, [r4, #255] ; 0xff - 8006816: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 800681a: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 800681e: 4798 blx r3 - 8006820: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 8006824: 3301 adds r3, #1 - 8006826: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 800682a: 2200 movs r2, #0 - 800682c: 2301 movs r3, #1 - 800682e: 45b2 cmp sl, r6 - 8006830: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 8006834: f804 b002 strb.w fp, [r4, r2] - 8006838: f884 b104 strb.w fp, [r4, #260] ; 0x104 - 800683c: d05e beq.n 80068fc - 800683e: 2bff cmp r3, #255 ; 0xff - 8006840: 4619 mov r1, r3 - 8006842: 4620 mov r0, r4 - 8006844: f816 bb01 ldrb.w fp, [r6], #1 - 8006848: d0e1 beq.n 800680e - 800684a: 461a mov r2, r3 - 800684c: 3301 adds r3, #1 - 800684e: e7ee b.n 800682e - 8006850: f8d0 3100 ldr.w r3, [r0, #256] ; 0x100 - 8006854: 2bff cmp r3, #255 ; 0xff - 8006856: d110 bne.n 800687a - 8006858: 2600 movs r6, #0 - 800685a: 4619 mov r1, r3 - 800685c: f8d0 210c ldr.w r2, [r0, #268] ; 0x10c - 8006860: f8d0 3108 ldr.w r3, [r0, #264] ; 0x108 - 8006864: f880 60ff strb.w r6, [r0, #255] ; 0xff - 8006868: 4798 blx r3 - 800686a: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 800686e: f8c4 6100 str.w r6, [r4, #256] ; 0x100 - 8006872: 1c5a adds r2, r3, #1 - 8006874: f8c4 2124 str.w r2, [r4, #292] ; 0x124 - 8006878: 4633 mov r3, r6 - 800687a: 1c59 adds r1, r3, #1 - 800687c: f04f 0c28 mov.w ip, #40 ; 0x28 - 8006880: 464a mov r2, r9 - 8006882: f8c4 1100 str.w r1, [r4, #256] ; 0x100 - 8006886: 4620 mov r0, r4 - 8006888: f804 c003 strb.w ip, [r4, r3] - 800688c: 4629 mov r1, r5 - 800688e: f884 c104 strb.w ip, [r4, #260] ; 0x104 - 8006892: f8df 9088 ldr.w r9, [pc, #136] ; 800691c - 8006896: f7ff feb5 bl 8006604 - 800689a: 4642 mov r2, r8 - 800689c: 4629 mov r1, r5 - 800689e: 4620 mov r0, r4 - 80068a0: f7ff fe70 bl 8006584 - 80068a4: f109 0a03 add.w sl, r9, #3 - 80068a8: f8d4 3100 ldr.w r3, [r4, #256] ; 0x100 - 80068ac: 2600 movs r6, #0 - 80068ae: e016 b.n 80068de - 80068b0: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 80068b4: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 80068b8: f884 60ff strb.w r6, [r4, #255] ; 0xff - 80068bc: 4798 blx r3 - 80068be: f8d4 3124 ldr.w r3, [r4, #292] ; 0x124 - 80068c2: 3301 adds r3, #1 - 80068c4: f8c4 3124 str.w r3, [r4, #292] ; 0x124 - 80068c8: 2200 movs r2, #0 - 80068ca: 2301 movs r3, #1 - 80068cc: 45d1 cmp r9, sl - 80068ce: f8c4 3100 str.w r3, [r4, #256] ; 0x100 - 80068d2: f804 b002 strb.w fp, [r4, r2] - 80068d6: f884 b104 strb.w fp, [r4, #260] ; 0x104 - 80068da: f43f af1d beq.w 8006718 - 80068de: 2bff cmp r3, #255 ; 0xff - 80068e0: 4619 mov r1, r3 - 80068e2: 4620 mov r0, r4 - 80068e4: f819 bb01 ldrb.w fp, [r9], #1 - 80068e8: d0e2 beq.n 80068b0 - 80068ea: 461a mov r2, r3 - 80068ec: 3301 adds r3, #1 - 80068ee: e7ed b.n 80068cc - 80068f0: f8d9 300c ldr.w r3, [r9, #12] - 80068f4: 9301 str r3, [sp, #4] - 80068f6: f8d9 9008 ldr.w r9, [r9, #8] - 80068fa: e6eb b.n 80066d4 - 80068fc: 4642 mov r2, r8 - 80068fe: 4629 mov r1, r5 - 8006900: 4620 mov r0, r4 - 8006902: f7ff fe3f bl 8006584 - 8006906: 464a mov r2, r9 - 8006908: e70c b.n 8006724 - 800690a: 1c4a adds r2, r1, #1 - 800690c: e723 b.n 8006756 - 800690e: 1c4a adds r2, r1, #1 - 8006910: e741 b.n 8006796 - 8006912: bf00 nop - 8006914: 080128c0 .word 0x080128c0 - 8006918: 080128b8 .word 0x080128b8 - 800691c: 080127c4 .word 0x080127c4 - -08006920 : - 8006920: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8006924: b0e5 sub sp, #404 ; 0x194 - 8006926: f890 a000 ldrb.w sl, [r0] - 800692a: f1ba 0f5f cmp.w sl, #95 ; 0x5f - 800692e: af00 add r7, sp, #0 - 8006930: 4605 mov r5, r0 - 8006932: 4688 mov r8, r1 - 8006934: 4616 mov r6, r2 - 8006936: f000 80f3 beq.w 8006b20 - 800693a: 2208 movs r2, #8 - 800693c: 49bb ldr r1, [pc, #748] ; (8006c2c ) - 800693e: 4628 mov r0, r5 - 8006940: f007 ffac bl 800e89c - 8006944: b948 cbnz r0, 800695a - 8006946: 7a2b ldrb r3, [r5, #8] - 8006948: 2b2e cmp r3, #46 ; 0x2e - 800694a: f000 80d8 beq.w 8006afe - 800694e: 2b5f cmp r3, #95 ; 0x5f - 8006950: f000 80d5 beq.w 8006afe - 8006954: 2b24 cmp r3, #36 ; 0x24 - 8006956: f000 80d2 beq.w 8006afe - 800695a: f04f 0900 mov.w r9, #0 - 800695e: 4628 mov r0, r5 - 8006960: f000 fa38 bl 8006dd4 - 8006964: 0142 lsls r2, r0, #5 - 8006966: 0083 lsls r3, r0, #2 - 8006968: 3208 adds r2, #8 - 800696a: 330a adds r3, #10 - 800696c: ebad 0d02 sub.w sp, sp, r2 - 8006970: f023 0307 bic.w r3, r3, #7 - 8006974: 2400 movs r4, #0 - 8006976: 46eb mov fp, sp - 8006978: 1829 adds r1, r5, r0 - 800697a: ebad 0d03 sub.w sp, sp, r3 - 800697e: 2211 movs r2, #17 - 8006980: 0043 lsls r3, r0, #1 - 8006982: f1b9 0f01 cmp.w r9, #1 - 8006986: f8c7 b01c str.w fp, [r7, #28] - 800698a: f8c7 d028 str.w sp, [r7, #40] ; 0x28 - 800698e: 60fd str r5, [r7, #12] - 8006990: 61bd str r5, [r7, #24] - 8006992: 6338 str r0, [r7, #48] ; 0x30 - 8006994: 6139 str r1, [r7, #16] - 8006996: 627b str r3, [r7, #36] ; 0x24 - 8006998: 617a str r2, [r7, #20] - 800699a: 623c str r4, [r7, #32] - 800699c: 62fc str r4, [r7, #44] ; 0x2c - 800699e: e9c7 440d strd r4, r4, [r7, #52] ; 0x34 - 80069a2: e9c7 440f strd r4, r4, [r7, #60] ; 0x3c - 80069a6: 647c str r4, [r7, #68] ; 0x44 - 80069a8: f000 80a0 beq.w 8006aec - 80069ac: f0c0 80bf bcc.w 8006b2e - 80069b0: 7aea ldrb r2, [r5, #11] - 80069b2: f1b9 0f02 cmp.w r9, #2 - 80069b6: f105 0a0b add.w sl, r5, #11 - 80069ba: bf14 ite ne - 80069bc: f04f 0944 movne.w r9, #68 ; 0x44 - 80069c0: f04f 0943 moveq.w r9, #67 ; 0x43 - 80069c4: 2a5f cmp r2, #95 ; 0x5f - 80069c6: f8c7 a018 str.w sl, [r7, #24] - 80069ca: f000 80b9 beq.w 8006b40 - 80069ce: 4650 mov r0, sl - 80069d0: 607b str r3, [r7, #4] - 80069d2: f000 f9ff bl 8006dd4 - 80069d6: 687b ldr r3, [r7, #4] - 80069d8: 2b00 cmp r3, #0 - 80069da: f340 8123 ble.w 8006c24 - 80069de: 2300 movs r3, #0 - 80069e0: 2201 movs r2, #1 - 80069e2: f8cb 3004 str.w r3, [fp, #4] - 80069e6: 623a str r2, [r7, #32] - 80069e8: 2800 cmp r0, #0 - 80069ea: f000 811b beq.w 8006c24 - 80069ee: e9cb a002 strd sl, r0, [fp, #8] - 80069f2: f88b 3000 strb.w r3, [fp] - 80069f6: 4649 mov r1, r9 - 80069f8: 2300 movs r3, #0 - 80069fa: 465a mov r2, fp - 80069fc: f107 000c add.w r0, r7, #12 - 8006a00: f7f9 fc1e bl 8000240 - 8006a04: 69bc ldr r4, [r7, #24] - 8006a06: 4605 mov r5, r0 - 8006a08: 4620 mov r0, r4 - 8006a0a: f000 f9e3 bl 8006dd4 - 8006a0e: 1823 adds r3, r4, r0 - 8006a10: 61bb str r3, [r7, #24] - 8006a12: f814 9000 ldrb.w r9, [r4, r0] - 8006a16: f1b9 0f00 cmp.w r9, #0 - 8006a1a: d16a bne.n 8006af2 - 8006a1c: 2d00 cmp r5, #0 - 8006a1e: d068 beq.n 8006af2 - 8006a20: f107 0448 add.w r4, r7, #72 ; 0x48 - 8006a24: 462a mov r2, r5 - 8006a26: f507 71be add.w r1, r7, #380 ; 0x17c - 8006a2a: f507 70c4 add.w r0, r7, #392 ; 0x188 - 8006a2e: f8c4 8108 str.w r8, [r4, #264] ; 0x108 - 8006a32: f8c4 610c str.w r6, [r4, #268] ; 0x10c - 8006a36: f8c4 9100 str.w r9, [r4, #256] ; 0x100 - 8006a3a: f884 9104 strb.w r9, [r4, #260] ; 0x104 - 8006a3e: f8c4 9110 str.w r9, [r4, #272] ; 0x110 - 8006a42: f8c4 9114 str.w r9, [r4, #276] ; 0x114 - 8006a46: f8c4 9120 str.w r9, [r4, #288] ; 0x120 - 8006a4a: f8c4 9124 str.w r9, [r4, #292] ; 0x124 - 8006a4e: f8c4 9118 str.w r9, [r4, #280] ; 0x118 - 8006a52: f8c4 911c str.w r9, [r4, #284] ; 0x11c - 8006a56: f8c4 9128 str.w r9, [r4, #296] ; 0x128 - 8006a5a: f8c4 912c str.w r9, [r4, #300] ; 0x12c - 8006a5e: f8c4 9130 str.w r9, [r4, #304] ; 0x130 - 8006a62: f8c4 9134 str.w r9, [r4, #308] ; 0x134 - 8006a66: f8c4 9138 str.w r9, [r4, #312] ; 0x138 - 8006a6a: f8c4 913c str.w r9, [r4, #316] ; 0x13c - 8006a6e: f8c4 9140 str.w r9, [r4, #320] ; 0x140 - 8006a72: f7f9 fc49 bl 8000308 - 8006a76: f8d4 3134 ldr.w r3, [r4, #308] ; 0x134 - 8006a7a: f8d4 6140 ldr.w r6, [r4, #320] ; 0x140 - 8006a7e: f8c4 9144 str.w r9, [r4, #324] ; 0x144 - 8006a82: 2b01 cmp r3, #1 - 8006a84: fb06 f603 mul.w r6, r6, r3 - 8006a88: 461a mov r2, r3 - 8006a8a: bfb8 it lt - 8006a8c: 2201 movlt r2, #1 - 8006a8e: 00d2 lsls r2, r2, #3 - 8006a90: 2e01 cmp r6, #1 - 8006a92: 4633 mov r3, r6 - 8006a94: f102 0208 add.w r2, r2, #8 - 8006a98: bfb8 it lt - 8006a9a: 2301 movlt r3, #1 - 8006a9c: 46e8 mov r8, sp - 8006a9e: 00db lsls r3, r3, #3 - 8006aa0: ebad 0d02 sub.w sp, sp, r2 - 8006aa4: 3308 adds r3, #8 - 8006aa6: 4669 mov r1, sp - 8006aa8: 462a mov r2, r5 - 8006aaa: ebad 0d03 sub.w sp, sp, r3 - 8006aae: 4620 mov r0, r4 - 8006ab0: f8c4 112c str.w r1, [r4, #300] ; 0x12c - 8006ab4: 2111 movs r1, #17 - 8006ab6: f8c4 d138 str.w sp, [r4, #312] ; 0x138 - 8006aba: f8c4 6140 str.w r6, [r4, #320] ; 0x140 - 8006abe: f7fc f899 bl 8002bf4 - 8006ac2: f8d4 1100 ldr.w r1, [r4, #256] ; 0x100 - 8006ac6: f8d4 3108 ldr.w r3, [r4, #264] ; 0x108 - 8006aca: f804 9001 strb.w r9, [r4, r1] - 8006ace: 4620 mov r0, r4 - 8006ad0: 46c5 mov sp, r8 - 8006ad2: f8d4 210c ldr.w r2, [r4, #268] ; 0x10c - 8006ad6: 4798 blx r3 - 8006ad8: f8d4 0118 ldr.w r0, [r4, #280] ; 0x118 - 8006adc: fab0 f080 clz r0, r0 - 8006ae0: 0940 lsrs r0, r0, #5 - 8006ae2: f507 77ca add.w r7, r7, #404 ; 0x194 - 8006ae6: 46bd mov sp, r7 - 8006ae8: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8006aec: f1ba 0f5f cmp.w sl, #95 ; 0x5f - 8006af0: d033 beq.n 8006b5a - 8006af2: 2000 movs r0, #0 - 8006af4: f507 77ca add.w r7, r7, #404 ; 0x194 - 8006af8: 46bd mov sp, r7 - 8006afa: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8006afe: 7a6b ldrb r3, [r5, #9] - 8006b00: 2b44 cmp r3, #68 ; 0x44 - 8006b02: d002 beq.n 8006b0a - 8006b04: 2b49 cmp r3, #73 ; 0x49 - 8006b06: f47f af28 bne.w 800695a - 8006b0a: 7aaa ldrb r2, [r5, #10] - 8006b0c: 2a5f cmp r2, #95 ; 0x5f - 8006b0e: f47f af24 bne.w 800695a - 8006b12: 2b49 cmp r3, #73 ; 0x49 - 8006b14: bf14 ite ne - 8006b16: f04f 0903 movne.w r9, #3 - 8006b1a: f04f 0902 moveq.w r9, #2 - 8006b1e: e71e b.n 800695e - 8006b20: 7843 ldrb r3, [r0, #1] - 8006b22: 2b5a cmp r3, #90 ; 0x5a - 8006b24: f47f af09 bne.w 800693a - 8006b28: f04f 0901 mov.w r9, #1 - 8006b2c: e717 b.n 800695e - 8006b2e: f107 000c add.w r0, r7, #12 - 8006b32: f7fa fe05 bl 8001740 - 8006b36: 69bb ldr r3, [r7, #24] - 8006b38: 4605 mov r5, r0 - 8006b3a: f893 9000 ldrb.w r9, [r3] - 8006b3e: e76a b.n 8006a16 - 8006b40: 7b2a ldrb r2, [r5, #12] - 8006b42: 2a5a cmp r2, #90 ; 0x5a - 8006b44: f47f af43 bne.w 80069ce - 8006b48: 350d adds r5, #13 - 8006b4a: 4621 mov r1, r4 - 8006b4c: f107 000c add.w r0, r7, #12 - 8006b50: 61bd str r5, [r7, #24] - 8006b52: f7fb fd37 bl 80025c4 - 8006b56: 4683 mov fp, r0 - 8006b58: e74d b.n 80069f6 - 8006b5a: 786b ldrb r3, [r5, #1] - 8006b5c: 2b5a cmp r3, #90 ; 0x5a - 8006b5e: d1c8 bne.n 8006af2 - 8006b60: 3502 adds r5, #2 - 8006b62: 4649 mov r1, r9 - 8006b64: f107 000c add.w r0, r7, #12 - 8006b68: 61bd str r5, [r7, #24] - 8006b6a: f7fb fd2b bl 80025c4 - 8006b6e: 697b ldr r3, [r7, #20] - 8006b70: 07db lsls r3, r3, #31 - 8006b72: 4605 mov r5, r0 - 8006b74: d552 bpl.n 8006c1c - 8006b76: 69b8 ldr r0, [r7, #24] - 8006b78: f890 9000 ldrb.w r9, [r0] - 8006b7c: f1b9 0f2e cmp.w r9, #46 ; 0x2e - 8006b80: f47f af49 bne.w 8006a16 - 8006b84: 7843 ldrb r3, [r0, #1] - 8006b86: f1a3 0261 sub.w r2, r3, #97 ; 0x61 - 8006b8a: 2a19 cmp r2, #25 - 8006b8c: d93a bls.n 8006c04 - 8006b8e: 2b5f cmp r3, #95 ; 0x5f - 8006b90: d038 beq.n 8006c04 - 8006b92: 3b30 subs r3, #48 ; 0x30 - 8006b94: 2b09 cmp r3, #9 - 8006b96: d841 bhi.n 8006c1c - 8006b98: 7803 ldrb r3, [r0, #0] - 8006b9a: 4602 mov r2, r0 - 8006b9c: 2b2e cmp r3, #46 ; 0x2e - 8006b9e: d112 bne.n 8006bc6 - 8006ba0: 7853 ldrb r3, [r2, #1] - 8006ba2: 3b30 subs r3, #48 ; 0x30 - 8006ba4: 2b09 cmp r3, #9 - 8006ba6: d80e bhi.n 8006bc6 - 8006ba8: 7893 ldrb r3, [r2, #2] - 8006baa: f1a3 0130 sub.w r1, r3, #48 ; 0x30 - 8006bae: 2909 cmp r1, #9 - 8006bb0: f102 0202 add.w r2, r2, #2 - 8006bb4: d8f2 bhi.n 8006b9c - 8006bb6: f812 3f01 ldrb.w r3, [r2, #1]! - 8006bba: f1a3 0130 sub.w r1, r3, #48 ; 0x30 - 8006bbe: 2909 cmp r1, #9 - 8006bc0: d9f9 bls.n 8006bb6 - 8006bc2: 2b2e cmp r3, #46 ; 0x2e - 8006bc4: d0ec beq.n 8006ba0 - 8006bc6: e9d7 1308 ldrd r1, r3, [r7, #32] - 8006bca: 4299 cmp r1, r3 - 8006bcc: 61ba str r2, [r7, #24] - 8006bce: da17 bge.n 8006c00 - 8006bd0: f8d7 e01c ldr.w lr, [r7, #28] - 8006bd4: ea4f 1c01 mov.w ip, r1, lsl #4 - 8006bd8: eb0e 030c add.w r3, lr, ip - 8006bdc: 3101 adds r1, #1 - 8006bde: 1a12 subs r2, r2, r0 - 8006be0: 605c str r4, [r3, #4] - 8006be2: 6239 str r1, [r7, #32] - 8006be4: d00c beq.n 8006c00 - 8006be6: 605c str r4, [r3, #4] - 8006be8: f80e 400c strb.w r4, [lr, ip] - 8006bec: e9c3 0202 strd r0, r2, [r3, #8] - 8006bf0: 462a mov r2, r5 - 8006bf2: 214d movs r1, #77 ; 0x4d - 8006bf4: f107 000c add.w r0, r7, #12 - 8006bf8: f7f9 fb22 bl 8000240 - 8006bfc: 4605 mov r5, r0 - 8006bfe: e7ba b.n 8006b76 - 8006c00: 2300 movs r3, #0 - 8006c02: e7f5 b.n 8006bf0 - 8006c04: 1c81 adds r1, r0, #2 - 8006c06: 460a mov r2, r1 - 8006c08: f811 3b01 ldrb.w r3, [r1], #1 - 8006c0c: f1a3 0c61 sub.w ip, r3, #97 ; 0x61 - 8006c10: f1bc 0f19 cmp.w ip, #25 - 8006c14: d9f7 bls.n 8006c06 - 8006c16: 2b5f cmp r3, #95 ; 0x5f - 8006c18: d0f5 beq.n 8006c06 - 8006c1a: e7bf b.n 8006b9c - 8006c1c: 69bb ldr r3, [r7, #24] - 8006c1e: f893 9000 ldrb.w r9, [r3] - 8006c22: e6f8 b.n 8006a16 - 8006c24: f04f 0b00 mov.w fp, #0 - 8006c28: e6e5 b.n 80069f6 - 8006c2a: bf00 nop - 8006c2c: 08012550 .word 0x08012550 - -08006c30 <__cxa_demangle>: - 8006c30: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8006c34: b084 sub sp, #16 - 8006c36: b380 cbz r0, 8006c9a <__cxa_demangle+0x6a> - 8006c38: b101 cbz r1, 8006c3c <__cxa_demangle+0xc> - 8006c3a: b372 cbz r2, 8006c9a <__cxa_demangle+0x6a> - 8006c3c: 2400 movs r4, #0 - 8006c3e: 4617 mov r7, r2 - 8006c40: 460e mov r6, r1 - 8006c42: 466a mov r2, sp - 8006c44: 492b ldr r1, [pc, #172] ; (8006cf4 <__cxa_demangle+0xc4>) - 8006c46: 461d mov r5, r3 - 8006c48: e9cd 4400 strd r4, r4, [sp] - 8006c4c: e9cd 4402 strd r4, r4, [sp, #8] - 8006c50: f7ff fe66 bl 8006920 - 8006c54: 2800 cmp r0, #0 - 8006c56: d047 beq.n 8006ce8 <__cxa_demangle+0xb8> - 8006c58: 9b03 ldr r3, [sp, #12] - 8006c5a: 9c00 ldr r4, [sp, #0] - 8006c5c: b9ab cbnz r3, 8006c8a <__cxa_demangle+0x5a> - 8006c5e: f8dd 8008 ldr.w r8, [sp, #8] - 8006c62: b36c cbz r4, 8006cc0 <__cxa_demangle+0x90> - 8006c64: b1b6 cbz r6, 8006c94 <__cxa_demangle+0x64> - 8006c66: 4620 mov r0, r4 - 8006c68: f000 f8b4 bl 8006dd4 - 8006c6c: 683b ldr r3, [r7, #0] - 8006c6e: 4298 cmp r0, r3 - 8006c70: d31c bcc.n 8006cac <__cxa_demangle+0x7c> - 8006c72: 4630 mov r0, r6 - 8006c74: f007 f932 bl 800dedc - 8006c78: f8c7 8000 str.w r8, [r7] - 8006c7c: b195 cbz r5, 8006ca4 <__cxa_demangle+0x74> - 8006c7e: 2300 movs r3, #0 - 8006c80: 4620 mov r0, r4 - 8006c82: 602b str r3, [r5, #0] - 8006c84: b004 add sp, #16 - 8006c86: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8006c8a: b334 cbz r4, 8006cda <__cxa_demangle+0xaa> - 8006c8c: f04f 0801 mov.w r8, #1 - 8006c90: 2e00 cmp r6, #0 - 8006c92: d1e8 bne.n 8006c66 <__cxa_demangle+0x36> - 8006c94: 2f00 cmp r7, #0 - 8006c96: d1ef bne.n 8006c78 <__cxa_demangle+0x48> - 8006c98: e7f0 b.n 8006c7c <__cxa_demangle+0x4c> - 8006c9a: b113 cbz r3, 8006ca2 <__cxa_demangle+0x72> - 8006c9c: f06f 0202 mvn.w r2, #2 - 8006ca0: 601a str r2, [r3, #0] - 8006ca2: 2400 movs r4, #0 - 8006ca4: 4620 mov r0, r4 - 8006ca6: b004 add sp, #16 - 8006ca8: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8006cac: 1c42 adds r2, r0, #1 - 8006cae: 4621 mov r1, r4 - 8006cb0: 4630 mov r0, r6 - 8006cb2: f007 fb60 bl 800e376 - 8006cb6: 4620 mov r0, r4 - 8006cb8: f007 f910 bl 800dedc - 8006cbc: 4634 mov r4, r6 - 8006cbe: e7dd b.n 8006c7c <__cxa_demangle+0x4c> - 8006cc0: 2d00 cmp r5, #0 - 8006cc2: d0ee beq.n 8006ca2 <__cxa_demangle+0x72> - 8006cc4: f1b8 0f01 cmp.w r8, #1 - 8006cc8: d009 beq.n 8006cde <__cxa_demangle+0xae> - 8006cca: 2400 movs r4, #0 - 8006ccc: f06f 0301 mvn.w r3, #1 - 8006cd0: 4620 mov r0, r4 - 8006cd2: 602b str r3, [r5, #0] - 8006cd4: b004 add sp, #16 - 8006cd6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8006cda: 2d00 cmp r5, #0 - 8006cdc: d0e1 beq.n 8006ca2 <__cxa_demangle+0x72> - 8006cde: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 8006ce2: 602b str r3, [r5, #0] - 8006ce4: 2400 movs r4, #0 - 8006ce6: e7dd b.n 8006ca4 <__cxa_demangle+0x74> - 8006ce8: 9800 ldr r0, [sp, #0] - 8006cea: f007 f8f7 bl 800dedc - 8006cee: 2d00 cmp r5, #0 - 8006cf0: d1eb bne.n 8006cca <__cxa_demangle+0x9a> - 8006cf2: e7d6 b.n 8006ca2 <__cxa_demangle+0x72> - 8006cf4: 080008b9 .word 0x080008b9 - -08006cf8 <__gcclibcxx_demangle_callback>: - 8006cf8: b160 cbz r0, 8006d14 <__gcclibcxx_demangle_callback+0x1c> - 8006cfa: b508 push {r3, lr} - 8006cfc: b139 cbz r1, 8006d0e <__gcclibcxx_demangle_callback+0x16> - 8006cfe: f7ff fe0f bl 8006920 - 8006d02: 2800 cmp r0, #0 - 8006d04: bf0c ite eq - 8006d06: f06f 0001 mvneq.w r0, #1 - 8006d0a: 2000 movne r0, #0 - 8006d0c: bd08 pop {r3, pc} - 8006d0e: f06f 0002 mvn.w r0, #2 - 8006d12: bd08 pop {r3, pc} - 8006d14: f06f 0002 mvn.w r0, #2 - 8006d18: 4770 bx lr - 8006d1a: bf00 nop - 8006d1c: 0000 movs r0, r0 - ... - -08006d20 : - 8006d20: f001 01ff and.w r1, r1, #255 ; 0xff - 8006d24: 2a10 cmp r2, #16 - 8006d26: db2b blt.n 8006d80 - 8006d28: f010 0f07 tst.w r0, #7 - 8006d2c: d008 beq.n 8006d40 - 8006d2e: f810 3b01 ldrb.w r3, [r0], #1 - 8006d32: 3a01 subs r2, #1 - 8006d34: 428b cmp r3, r1 - 8006d36: d02d beq.n 8006d94 - 8006d38: f010 0f07 tst.w r0, #7 - 8006d3c: b342 cbz r2, 8006d90 - 8006d3e: d1f6 bne.n 8006d2e - 8006d40: b4f0 push {r4, r5, r6, r7} - 8006d42: ea41 2101 orr.w r1, r1, r1, lsl #8 - 8006d46: ea41 4101 orr.w r1, r1, r1, lsl #16 - 8006d4a: f022 0407 bic.w r4, r2, #7 - 8006d4e: f07f 0700 mvns.w r7, #0 - 8006d52: 2300 movs r3, #0 - 8006d54: e8f0 5602 ldrd r5, r6, [r0], #8 - 8006d58: 3c08 subs r4, #8 - 8006d5a: ea85 0501 eor.w r5, r5, r1 - 8006d5e: ea86 0601 eor.w r6, r6, r1 - 8006d62: fa85 f547 uadd8 r5, r5, r7 - 8006d66: faa3 f587 sel r5, r3, r7 - 8006d6a: fa86 f647 uadd8 r6, r6, r7 - 8006d6e: faa5 f687 sel r6, r5, r7 - 8006d72: b98e cbnz r6, 8006d98 - 8006d74: d1ee bne.n 8006d54 - 8006d76: bcf0 pop {r4, r5, r6, r7} - 8006d78: f001 01ff and.w r1, r1, #255 ; 0xff - 8006d7c: f002 0207 and.w r2, r2, #7 - 8006d80: b132 cbz r2, 8006d90 - 8006d82: f810 3b01 ldrb.w r3, [r0], #1 - 8006d86: 3a01 subs r2, #1 - 8006d88: ea83 0301 eor.w r3, r3, r1 - 8006d8c: b113 cbz r3, 8006d94 - 8006d8e: d1f8 bne.n 8006d82 - 8006d90: 2000 movs r0, #0 - 8006d92: 4770 bx lr - 8006d94: 3801 subs r0, #1 - 8006d96: 4770 bx lr - 8006d98: 2d00 cmp r5, #0 - 8006d9a: bf06 itte eq - 8006d9c: 4635 moveq r5, r6 - 8006d9e: 3803 subeq r0, #3 - 8006da0: 3807 subne r0, #7 - 8006da2: f015 0f01 tst.w r5, #1 - 8006da6: d107 bne.n 8006db8 - 8006da8: 3001 adds r0, #1 - 8006daa: f415 7f80 tst.w r5, #256 ; 0x100 - 8006dae: bf02 ittt eq - 8006db0: 3001 addeq r0, #1 - 8006db2: f415 3fc0 tsteq.w r5, #98304 ; 0x18000 - 8006db6: 3001 addeq r0, #1 - 8006db8: bcf0 pop {r4, r5, r6, r7} - 8006dba: 3801 subs r0, #1 - 8006dbc: 4770 bx lr - 8006dbe: bf00 nop - -08006dc0 : - 8006dc0: f810 2b01 ldrb.w r2, [r0], #1 - 8006dc4: f811 3b01 ldrb.w r3, [r1], #1 - 8006dc8: 2a01 cmp r2, #1 - 8006dca: bf28 it cs - 8006dcc: 429a cmpcs r2, r3 - 8006dce: d0f7 beq.n 8006dc0 - 8006dd0: 1ad0 subs r0, r2, r3 - 8006dd2: 4770 bx lr - -08006dd4 : - 8006dd4: 4603 mov r3, r0 - 8006dd6: f813 2b01 ldrb.w r2, [r3], #1 - 8006dda: 2a00 cmp r2, #0 - 8006ddc: d1fb bne.n 8006dd6 - 8006dde: 1a18 subs r0, r3, r0 - 8006de0: 3801 subs r0, #1 - 8006de2: 4770 bx lr - -08006de4 <__aeabi_uldivmod>: - 8006de4: b953 cbnz r3, 8006dfc <__aeabi_uldivmod+0x18> - 8006de6: b94a cbnz r2, 8006dfc <__aeabi_uldivmod+0x18> - 8006de8: 2900 cmp r1, #0 - 8006dea: bf08 it eq - 8006dec: 2800 cmpeq r0, #0 - 8006dee: bf1c itt ne - 8006df0: f04f 31ff movne.w r1, #4294967295 ; 0xffffffff - 8006df4: f04f 30ff movne.w r0, #4294967295 ; 0xffffffff - 8006df8: f001 b8f8 b.w 8007fec <__aeabi_idiv0> - 8006dfc: f1ad 0c08 sub.w ip, sp, #8 - 8006e00: e96d ce04 strd ip, lr, [sp, #-16]! - 8006e04: f000 f806 bl 8006e14 <__udivmoddi4> - 8006e08: f8dd e004 ldr.w lr, [sp, #4] - 8006e0c: e9dd 2302 ldrd r2, r3, [sp, #8] - 8006e10: b004 add sp, #16 - 8006e12: 4770 bx lr - -08006e14 <__udivmoddi4>: - 8006e14: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8006e18: 9e08 ldr r6, [sp, #32] - 8006e1a: 4604 mov r4, r0 - 8006e1c: 4688 mov r8, r1 - 8006e1e: 2b00 cmp r3, #0 - 8006e20: d14b bne.n 8006eba <__udivmoddi4+0xa6> - 8006e22: 428a cmp r2, r1 - 8006e24: 4615 mov r5, r2 - 8006e26: d967 bls.n 8006ef8 <__udivmoddi4+0xe4> - 8006e28: fab2 f282 clz r2, r2 - 8006e2c: b14a cbz r2, 8006e42 <__udivmoddi4+0x2e> - 8006e2e: f1c2 0720 rsb r7, r2, #32 - 8006e32: fa01 f302 lsl.w r3, r1, r2 - 8006e36: fa20 f707 lsr.w r7, r0, r7 - 8006e3a: 4095 lsls r5, r2 - 8006e3c: ea47 0803 orr.w r8, r7, r3 - 8006e40: 4094 lsls r4, r2 - 8006e42: ea4f 4e15 mov.w lr, r5, lsr #16 - 8006e46: 0c23 lsrs r3, r4, #16 - 8006e48: fbb8 f7fe udiv r7, r8, lr - 8006e4c: fa1f fc85 uxth.w ip, r5 - 8006e50: fb0e 8817 mls r8, lr, r7, r8 - 8006e54: ea43 4308 orr.w r3, r3, r8, lsl #16 - 8006e58: fb07 f10c mul.w r1, r7, ip - 8006e5c: 4299 cmp r1, r3 - 8006e5e: d909 bls.n 8006e74 <__udivmoddi4+0x60> - 8006e60: 18eb adds r3, r5, r3 - 8006e62: f107 30ff add.w r0, r7, #4294967295 ; 0xffffffff - 8006e66: f080 811b bcs.w 80070a0 <__udivmoddi4+0x28c> - 8006e6a: 4299 cmp r1, r3 - 8006e6c: f240 8118 bls.w 80070a0 <__udivmoddi4+0x28c> - 8006e70: 3f02 subs r7, #2 - 8006e72: 442b add r3, r5 - 8006e74: 1a5b subs r3, r3, r1 - 8006e76: b2a4 uxth r4, r4 - 8006e78: fbb3 f0fe udiv r0, r3, lr - 8006e7c: fb0e 3310 mls r3, lr, r0, r3 - 8006e80: ea44 4403 orr.w r4, r4, r3, lsl #16 - 8006e84: fb00 fc0c mul.w ip, r0, ip - 8006e88: 45a4 cmp ip, r4 - 8006e8a: d909 bls.n 8006ea0 <__udivmoddi4+0x8c> - 8006e8c: 192c adds r4, r5, r4 - 8006e8e: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff - 8006e92: f080 8107 bcs.w 80070a4 <__udivmoddi4+0x290> - 8006e96: 45a4 cmp ip, r4 - 8006e98: f240 8104 bls.w 80070a4 <__udivmoddi4+0x290> - 8006e9c: 3802 subs r0, #2 - 8006e9e: 442c add r4, r5 - 8006ea0: ea40 4007 orr.w r0, r0, r7, lsl #16 - 8006ea4: eba4 040c sub.w r4, r4, ip - 8006ea8: 2700 movs r7, #0 - 8006eaa: b11e cbz r6, 8006eb4 <__udivmoddi4+0xa0> - 8006eac: 40d4 lsrs r4, r2 - 8006eae: 2300 movs r3, #0 - 8006eb0: e9c6 4300 strd r4, r3, [r6] - 8006eb4: 4639 mov r1, r7 - 8006eb6: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8006eba: 428b cmp r3, r1 - 8006ebc: d909 bls.n 8006ed2 <__udivmoddi4+0xbe> - 8006ebe: 2e00 cmp r6, #0 - 8006ec0: f000 80eb beq.w 800709a <__udivmoddi4+0x286> - 8006ec4: 2700 movs r7, #0 - 8006ec6: e9c6 0100 strd r0, r1, [r6] - 8006eca: 4638 mov r0, r7 - 8006ecc: 4639 mov r1, r7 - 8006ece: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 8006ed2: fab3 f783 clz r7, r3 - 8006ed6: 2f00 cmp r7, #0 - 8006ed8: d147 bne.n 8006f6a <__udivmoddi4+0x156> - 8006eda: 428b cmp r3, r1 - 8006edc: d302 bcc.n 8006ee4 <__udivmoddi4+0xd0> - 8006ede: 4282 cmp r2, r0 - 8006ee0: f200 80fa bhi.w 80070d8 <__udivmoddi4+0x2c4> - 8006ee4: 1a84 subs r4, r0, r2 - 8006ee6: eb61 0303 sbc.w r3, r1, r3 - 8006eea: 2001 movs r0, #1 - 8006eec: 4698 mov r8, r3 - 8006eee: 2e00 cmp r6, #0 - 8006ef0: d0e0 beq.n 8006eb4 <__udivmoddi4+0xa0> - 8006ef2: e9c6 4800 strd r4, r8, [r6] - 8006ef6: e7dd b.n 8006eb4 <__udivmoddi4+0xa0> - 8006ef8: b902 cbnz r2, 8006efc <__udivmoddi4+0xe8> - 8006efa: deff udf #255 ; 0xff - 8006efc: fab2 f282 clz r2, r2 - 8006f00: 2a00 cmp r2, #0 - 8006f02: f040 808f bne.w 8007024 <__udivmoddi4+0x210> - 8006f06: 1b49 subs r1, r1, r5 - 8006f08: ea4f 4e15 mov.w lr, r5, lsr #16 - 8006f0c: fa1f f885 uxth.w r8, r5 - 8006f10: 2701 movs r7, #1 - 8006f12: fbb1 fcfe udiv ip, r1, lr - 8006f16: 0c23 lsrs r3, r4, #16 - 8006f18: fb0e 111c mls r1, lr, ip, r1 - 8006f1c: ea43 4301 orr.w r3, r3, r1, lsl #16 - 8006f20: fb08 f10c mul.w r1, r8, ip - 8006f24: 4299 cmp r1, r3 - 8006f26: d907 bls.n 8006f38 <__udivmoddi4+0x124> - 8006f28: 18eb adds r3, r5, r3 - 8006f2a: f10c 30ff add.w r0, ip, #4294967295 ; 0xffffffff - 8006f2e: d202 bcs.n 8006f36 <__udivmoddi4+0x122> - 8006f30: 4299 cmp r1, r3 - 8006f32: f200 80cd bhi.w 80070d0 <__udivmoddi4+0x2bc> - 8006f36: 4684 mov ip, r0 - 8006f38: 1a59 subs r1, r3, r1 - 8006f3a: b2a3 uxth r3, r4 - 8006f3c: fbb1 f0fe udiv r0, r1, lr - 8006f40: fb0e 1410 mls r4, lr, r0, r1 - 8006f44: ea43 4404 orr.w r4, r3, r4, lsl #16 - 8006f48: fb08 f800 mul.w r8, r8, r0 - 8006f4c: 45a0 cmp r8, r4 - 8006f4e: d907 bls.n 8006f60 <__udivmoddi4+0x14c> - 8006f50: 192c adds r4, r5, r4 - 8006f52: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff - 8006f56: d202 bcs.n 8006f5e <__udivmoddi4+0x14a> - 8006f58: 45a0 cmp r8, r4 - 8006f5a: f200 80b6 bhi.w 80070ca <__udivmoddi4+0x2b6> - 8006f5e: 4618 mov r0, r3 - 8006f60: eba4 0408 sub.w r4, r4, r8 - 8006f64: ea40 400c orr.w r0, r0, ip, lsl #16 - 8006f68: e79f b.n 8006eaa <__udivmoddi4+0x96> - 8006f6a: f1c7 0c20 rsb ip, r7, #32 - 8006f6e: 40bb lsls r3, r7 - 8006f70: fa22 fe0c lsr.w lr, r2, ip - 8006f74: ea4e 0e03 orr.w lr, lr, r3 - 8006f78: fa01 f407 lsl.w r4, r1, r7 - 8006f7c: fa20 f50c lsr.w r5, r0, ip - 8006f80: fa21 f30c lsr.w r3, r1, ip - 8006f84: ea4f 481e mov.w r8, lr, lsr #16 - 8006f88: 4325 orrs r5, r4 - 8006f8a: fbb3 f9f8 udiv r9, r3, r8 - 8006f8e: 0c2c lsrs r4, r5, #16 - 8006f90: fb08 3319 mls r3, r8, r9, r3 - 8006f94: fa1f fa8e uxth.w sl, lr - 8006f98: ea44 4303 orr.w r3, r4, r3, lsl #16 - 8006f9c: fb09 f40a mul.w r4, r9, sl - 8006fa0: 429c cmp r4, r3 - 8006fa2: fa02 f207 lsl.w r2, r2, r7 - 8006fa6: fa00 f107 lsl.w r1, r0, r7 - 8006faa: d90b bls.n 8006fc4 <__udivmoddi4+0x1b0> - 8006fac: eb1e 0303 adds.w r3, lr, r3 - 8006fb0: f109 30ff add.w r0, r9, #4294967295 ; 0xffffffff - 8006fb4: f080 8087 bcs.w 80070c6 <__udivmoddi4+0x2b2> - 8006fb8: 429c cmp r4, r3 - 8006fba: f240 8084 bls.w 80070c6 <__udivmoddi4+0x2b2> - 8006fbe: f1a9 0902 sub.w r9, r9, #2 - 8006fc2: 4473 add r3, lr - 8006fc4: 1b1b subs r3, r3, r4 - 8006fc6: b2ad uxth r5, r5 - 8006fc8: fbb3 f0f8 udiv r0, r3, r8 - 8006fcc: fb08 3310 mls r3, r8, r0, r3 - 8006fd0: ea45 4403 orr.w r4, r5, r3, lsl #16 - 8006fd4: fb00 fa0a mul.w sl, r0, sl - 8006fd8: 45a2 cmp sl, r4 - 8006fda: d908 bls.n 8006fee <__udivmoddi4+0x1da> - 8006fdc: eb1e 0404 adds.w r4, lr, r4 - 8006fe0: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff - 8006fe4: d26b bcs.n 80070be <__udivmoddi4+0x2aa> - 8006fe6: 45a2 cmp sl, r4 - 8006fe8: d969 bls.n 80070be <__udivmoddi4+0x2aa> - 8006fea: 3802 subs r0, #2 - 8006fec: 4474 add r4, lr - 8006fee: ea40 4009 orr.w r0, r0, r9, lsl #16 - 8006ff2: fba0 8902 umull r8, r9, r0, r2 - 8006ff6: eba4 040a sub.w r4, r4, sl - 8006ffa: 454c cmp r4, r9 - 8006ffc: 46c2 mov sl, r8 - 8006ffe: 464b mov r3, r9 - 8007000: d354 bcc.n 80070ac <__udivmoddi4+0x298> - 8007002: d051 beq.n 80070a8 <__udivmoddi4+0x294> - 8007004: 2e00 cmp r6, #0 - 8007006: d069 beq.n 80070dc <__udivmoddi4+0x2c8> - 8007008: ebb1 050a subs.w r5, r1, sl - 800700c: eb64 0403 sbc.w r4, r4, r3 - 8007010: fa04 fc0c lsl.w ip, r4, ip - 8007014: 40fd lsrs r5, r7 - 8007016: 40fc lsrs r4, r7 - 8007018: ea4c 0505 orr.w r5, ip, r5 - 800701c: e9c6 5400 strd r5, r4, [r6] - 8007020: 2700 movs r7, #0 - 8007022: e747 b.n 8006eb4 <__udivmoddi4+0xa0> - 8007024: f1c2 0320 rsb r3, r2, #32 - 8007028: fa20 f703 lsr.w r7, r0, r3 - 800702c: 4095 lsls r5, r2 - 800702e: fa01 f002 lsl.w r0, r1, r2 - 8007032: fa21 f303 lsr.w r3, r1, r3 - 8007036: ea4f 4e15 mov.w lr, r5, lsr #16 - 800703a: 4338 orrs r0, r7 - 800703c: 0c01 lsrs r1, r0, #16 - 800703e: fbb3 f7fe udiv r7, r3, lr - 8007042: fa1f f885 uxth.w r8, r5 - 8007046: fb0e 3317 mls r3, lr, r7, r3 - 800704a: ea41 4103 orr.w r1, r1, r3, lsl #16 - 800704e: fb07 f308 mul.w r3, r7, r8 - 8007052: 428b cmp r3, r1 - 8007054: fa04 f402 lsl.w r4, r4, r2 - 8007058: d907 bls.n 800706a <__udivmoddi4+0x256> - 800705a: 1869 adds r1, r5, r1 - 800705c: f107 3cff add.w ip, r7, #4294967295 ; 0xffffffff - 8007060: d22f bcs.n 80070c2 <__udivmoddi4+0x2ae> - 8007062: 428b cmp r3, r1 - 8007064: d92d bls.n 80070c2 <__udivmoddi4+0x2ae> - 8007066: 3f02 subs r7, #2 - 8007068: 4429 add r1, r5 - 800706a: 1acb subs r3, r1, r3 - 800706c: b281 uxth r1, r0 - 800706e: fbb3 f0fe udiv r0, r3, lr - 8007072: fb0e 3310 mls r3, lr, r0, r3 - 8007076: ea41 4103 orr.w r1, r1, r3, lsl #16 - 800707a: fb00 f308 mul.w r3, r0, r8 - 800707e: 428b cmp r3, r1 - 8007080: d907 bls.n 8007092 <__udivmoddi4+0x27e> - 8007082: 1869 adds r1, r5, r1 - 8007084: f100 3cff add.w ip, r0, #4294967295 ; 0xffffffff - 8007088: d217 bcs.n 80070ba <__udivmoddi4+0x2a6> - 800708a: 428b cmp r3, r1 - 800708c: d915 bls.n 80070ba <__udivmoddi4+0x2a6> - 800708e: 3802 subs r0, #2 - 8007090: 4429 add r1, r5 - 8007092: 1ac9 subs r1, r1, r3 - 8007094: ea40 4707 orr.w r7, r0, r7, lsl #16 - 8007098: e73b b.n 8006f12 <__udivmoddi4+0xfe> - 800709a: 4637 mov r7, r6 - 800709c: 4630 mov r0, r6 - 800709e: e709 b.n 8006eb4 <__udivmoddi4+0xa0> - 80070a0: 4607 mov r7, r0 - 80070a2: e6e7 b.n 8006e74 <__udivmoddi4+0x60> - 80070a4: 4618 mov r0, r3 - 80070a6: e6fb b.n 8006ea0 <__udivmoddi4+0x8c> - 80070a8: 4541 cmp r1, r8 - 80070aa: d2ab bcs.n 8007004 <__udivmoddi4+0x1f0> - 80070ac: ebb8 0a02 subs.w sl, r8, r2 - 80070b0: eb69 020e sbc.w r2, r9, lr - 80070b4: 3801 subs r0, #1 - 80070b6: 4613 mov r3, r2 - 80070b8: e7a4 b.n 8007004 <__udivmoddi4+0x1f0> - 80070ba: 4660 mov r0, ip - 80070bc: e7e9 b.n 8007092 <__udivmoddi4+0x27e> - 80070be: 4618 mov r0, r3 - 80070c0: e795 b.n 8006fee <__udivmoddi4+0x1da> - 80070c2: 4667 mov r7, ip - 80070c4: e7d1 b.n 800706a <__udivmoddi4+0x256> - 80070c6: 4681 mov r9, r0 - 80070c8: e77c b.n 8006fc4 <__udivmoddi4+0x1b0> - 80070ca: 3802 subs r0, #2 - 80070cc: 442c add r4, r5 - 80070ce: e747 b.n 8006f60 <__udivmoddi4+0x14c> - 80070d0: f1ac 0c02 sub.w ip, ip, #2 - 80070d4: 442b add r3, r5 - 80070d6: e72f b.n 8006f38 <__udivmoddi4+0x124> - 80070d8: 4638 mov r0, r7 - 80070da: e708 b.n 8006eee <__udivmoddi4+0xda> - 80070dc: 4637 mov r7, r6 - 80070de: e6e9 b.n 8006eb4 <__udivmoddi4+0xa0> - -080070e0 : - 80070e0: 6803 ldr r3, [r0, #0] - 80070e2: 005a lsls r2, r3, #1 - 80070e4: bf4c ite mi - 80070e6: f043 4300 orrmi.w r3, r3, #2147483648 ; 0x80000000 - 80070ea: f023 4300 bicpl.w r3, r3, #2147483648 ; 0x80000000 - 80070ee: 4418 add r0, r3 - 80070f0: 4770 bx lr - 80070f2: bf00 nop - -080070f4 : - 80070f4: b361 cbz r1, 8007150 - 80070f6: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 80070fa: f101 3aff add.w sl, r1, #4294967295 ; 0xffffffff - 80070fe: 4690 mov r8, r2 - 8007100: 4606 mov r6, r0 - 8007102: 46d1 mov r9, sl - 8007104: 2700 movs r7, #0 - 8007106: eb07 0409 add.w r4, r7, r9 - 800710a: eb04 74d4 add.w r4, r4, r4, lsr #31 - 800710e: 1064 asrs r4, r4, #1 - 8007110: 00e5 lsls r5, r4, #3 - 8007112: 1971 adds r1, r6, r5 - 8007114: 4608 mov r0, r1 - 8007116: f7ff ffe3 bl 80070e0 - 800711a: 45a2 cmp sl, r4 - 800711c: 4683 mov fp, r0 - 800711e: f105 0008 add.w r0, r5, #8 - 8007122: 4430 add r0, r6 - 8007124: d009 beq.n 800713a - 8007126: f7ff ffdb bl 80070e0 - 800712a: 45c3 cmp fp, r8 - 800712c: f100 30ff add.w r0, r0, #4294967295 ; 0xffffffff - 8007130: d805 bhi.n 800713e - 8007132: 4540 cmp r0, r8 - 8007134: d209 bcs.n 800714a - 8007136: 1c67 adds r7, r4, #1 - 8007138: e7e5 b.n 8007106 - 800713a: 45c3 cmp fp, r8 - 800713c: d905 bls.n 800714a - 800713e: 42a7 cmp r7, r4 - 8007140: d002 beq.n 8007148 - 8007142: f104 39ff add.w r9, r4, #4294967295 ; 0xffffffff - 8007146: e7de b.n 8007106 - 8007148: 2100 movs r1, #0 - 800714a: 4608 mov r0, r1 - 800714c: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8007150: 4608 mov r0, r1 - 8007152: 4770 bx lr - -08007154 <__gnu_unwind_get_pr_addr>: - 8007154: 2801 cmp r0, #1 - 8007156: d007 beq.n 8007168 <__gnu_unwind_get_pr_addr+0x14> - 8007158: 2802 cmp r0, #2 - 800715a: d007 beq.n 800716c <__gnu_unwind_get_pr_addr+0x18> - 800715c: 4b04 ldr r3, [pc, #16] ; (8007170 <__gnu_unwind_get_pr_addr+0x1c>) - 800715e: 2800 cmp r0, #0 - 8007160: bf0c ite eq - 8007162: 4618 moveq r0, r3 - 8007164: 2000 movne r0, #0 - 8007166: 4770 bx lr - 8007168: 4802 ldr r0, [pc, #8] ; (8007174 <__gnu_unwind_get_pr_addr+0x20>) - 800716a: 4770 bx lr - 800716c: 4802 ldr r0, [pc, #8] ; (8007178 <__gnu_unwind_get_pr_addr+0x24>) - 800716e: 4770 bx lr - 8007170: 08007841 .word 0x08007841 - 8007174: 08007845 .word 0x08007845 - 8007178: 08007849 .word 0x08007849 - -0800717c : - 800717c: b530 push {r4, r5, lr} - 800717e: 4b25 ldr r3, [pc, #148] ; (8007214 ) - 8007180: b083 sub sp, #12 - 8007182: 4604 mov r4, r0 - 8007184: 1e8d subs r5, r1, #2 - 8007186: b34b cbz r3, 80071dc - 8007188: a901 add r1, sp, #4 - 800718a: 4628 mov r0, r5 - 800718c: f3af 8000 nop.w - 8007190: b1f0 cbz r0, 80071d0 - 8007192: 9901 ldr r1, [sp, #4] - 8007194: 462a mov r2, r5 - 8007196: f7ff ffad bl 80070f4 - 800719a: 4601 mov r1, r0 - 800719c: b1c0 cbz r0, 80071d0 - 800719e: f7ff ff9f bl 80070e0 - 80071a2: 684b ldr r3, [r1, #4] - 80071a4: 64a0 str r0, [r4, #72] ; 0x48 - 80071a6: 2b01 cmp r3, #1 - 80071a8: d02e beq.n 8007208 - 80071aa: 2b00 cmp r3, #0 - 80071ac: f101 0004 add.w r0, r1, #4 - 80071b0: db26 blt.n 8007200 - 80071b2: f7ff ff95 bl 80070e0 - 80071b6: 2300 movs r3, #0 - 80071b8: e9c4 0313 strd r0, r3, [r4, #76] ; 0x4c - 80071bc: 6803 ldr r3, [r0, #0] - 80071be: 2b00 cmp r3, #0 - 80071c0: db12 blt.n 80071e8 - 80071c2: f7ff ff8d bl 80070e0 - 80071c6: 2300 movs r3, #0 - 80071c8: 6120 str r0, [r4, #16] - 80071ca: 4618 mov r0, r3 - 80071cc: b003 add sp, #12 - 80071ce: bd30 pop {r4, r5, pc} - 80071d0: 2300 movs r3, #0 - 80071d2: 6123 str r3, [r4, #16] - 80071d4: 2309 movs r3, #9 - 80071d6: 4618 mov r0, r3 - 80071d8: b003 add sp, #12 - 80071da: bd30 pop {r4, r5, pc} - 80071dc: 490e ldr r1, [pc, #56] ; (8007218 ) - 80071de: 480f ldr r0, [pc, #60] ; (800721c ) - 80071e0: 1a09 subs r1, r1, r0 - 80071e2: 10c9 asrs r1, r1, #3 - 80071e4: 9101 str r1, [sp, #4] - 80071e6: e7d5 b.n 8007194 - 80071e8: f3c3 6003 ubfx r0, r3, #24, #4 - 80071ec: f7ff ffb2 bl 8007154 <__gnu_unwind_get_pr_addr> - 80071f0: 2800 cmp r0, #0 - 80071f2: bf14 ite ne - 80071f4: 2300 movne r3, #0 - 80071f6: 2309 moveq r3, #9 - 80071f8: 6120 str r0, [r4, #16] - 80071fa: 4618 mov r0, r3 - 80071fc: b003 add sp, #12 - 80071fe: bd30 pop {r4, r5, pc} - 8007200: 2301 movs r3, #1 - 8007202: e9c4 0313 strd r0, r3, [r4, #76] ; 0x4c - 8007206: e7d9 b.n 80071bc - 8007208: 2300 movs r3, #0 - 800720a: 6123 str r3, [r4, #16] - 800720c: 2305 movs r3, #5 - 800720e: 4618 mov r0, r3 - 8007210: b003 add sp, #12 - 8007212: bd30 pop {r4, r5, pc} - 8007214: 00000000 .word 0x00000000 - 8007218: 08013328 .word 0x08013328 - 800721c: 080131a0 .word 0x080131a0 - -08007220 : - 8007220: 6803 ldr r3, [r0, #0] - 8007222: 07da lsls r2, r3, #31 - 8007224: b510 push {r4, lr} - 8007226: 4604 mov r4, r0 - 8007228: d406 bmi.n 8007238 - 800722a: 079b lsls r3, r3, #30 - 800722c: f100 0048 add.w r0, r0, #72 ; 0x48 - 8007230: d509 bpl.n 8007246 - 8007232: f000 fc5f bl 8007af4 <__gnu_Unwind_Restore_VFP_D> - 8007236: 6823 ldr r3, [r4, #0] - 8007238: 0759 lsls r1, r3, #29 - 800723a: d509 bpl.n 8007250 - 800723c: 071a lsls r2, r3, #28 - 800723e: d50e bpl.n 800725e - 8007240: 06db lsls r3, r3, #27 - 8007242: d513 bpl.n 800726c - 8007244: bd10 pop {r4, pc} - 8007246: f000 fc4d bl 8007ae4 <__gnu_Unwind_Restore_VFP> - 800724a: 6823 ldr r3, [r4, #0] - 800724c: 0759 lsls r1, r3, #29 - 800724e: d4f5 bmi.n 800723c - 8007250: f104 00d0 add.w r0, r4, #208 ; 0xd0 - 8007254: f000 fc56 bl 8007b04 <__gnu_Unwind_Restore_VFP_D_16_to_31> - 8007258: 6823 ldr r3, [r4, #0] - 800725a: 071a lsls r2, r3, #28 - 800725c: d4f0 bmi.n 8007240 - 800725e: f504 70a8 add.w r0, r4, #336 ; 0x150 - 8007262: f000 fc57 bl 8007b14 <__gnu_Unwind_Restore_WMMXD> - 8007266: 6823 ldr r3, [r4, #0] - 8007268: 06db lsls r3, r3, #27 - 800726a: d4eb bmi.n 8007244 - 800726c: f504 70e8 add.w r0, r4, #464 ; 0x1d0 - 8007270: e8bd 4010 ldmia.w sp!, {r4, lr} - 8007274: f000 bc92 b.w 8007b9c <__gnu_Unwind_Restore_WMMXC> - -08007278 <_Unwind_decode_typeinfo_ptr.isra.0>: - 8007278: 6803 ldr r3, [r0, #0] - 800727a: b103 cbz r3, 800727e <_Unwind_decode_typeinfo_ptr.isra.0+0x6> - 800727c: 4403 add r3, r0 - 800727e: 4618 mov r0, r3 - 8007280: 4770 bx lr - 8007282: bf00 nop - -08007284 <__gnu_unwind_24bit.isra.1>: - 8007284: 2009 movs r0, #9 - 8007286: 4770 bx lr - -08007288 <_Unwind_DebugHook>: - 8007288: 4770 bx lr - 800728a: bf00 nop - -0800728c : - 800728c: b570 push {r4, r5, r6, lr} - 800728e: 4604 mov r4, r0 - 8007290: 460d mov r5, r1 - 8007292: e008 b.n 80072a6 - 8007294: 6c2b ldr r3, [r5, #64] ; 0x40 - 8007296: 6163 str r3, [r4, #20] - 8007298: 462a mov r2, r5 - 800729a: 6923 ldr r3, [r4, #16] - 800729c: 4621 mov r1, r4 - 800729e: 2001 movs r0, #1 - 80072a0: 4798 blx r3 - 80072a2: 2808 cmp r0, #8 - 80072a4: d108 bne.n 80072b8 - 80072a6: 6c29 ldr r1, [r5, #64] ; 0x40 - 80072a8: 4620 mov r0, r4 - 80072aa: f7ff ff67 bl 800717c - 80072ae: 4606 mov r6, r0 - 80072b0: 2800 cmp r0, #0 - 80072b2: d0ef beq.n 8007294 - 80072b4: f006 fbc0 bl 800da38 - 80072b8: 2807 cmp r0, #7 - 80072ba: d1fb bne.n 80072b4 - 80072bc: 4630 mov r0, r6 - 80072be: 6c29 ldr r1, [r5, #64] ; 0x40 - 80072c0: f7ff ffe2 bl 8007288 <_Unwind_DebugHook> - 80072c4: 1d28 adds r0, r5, #4 - 80072c6: f000 fc01 bl 8007acc <__restore_core_regs> - 80072ca: bf00 nop - -080072cc : - 80072cc: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80072d0: 1d0c adds r4, r1, #4 - 80072d2: 4605 mov r5, r0 - 80072d4: 4617 mov r7, r2 - 80072d6: cc0f ldmia r4!, {r0, r1, r2, r3} - 80072d8: f5ad 7d72 sub.w sp, sp, #968 ; 0x3c8 - 80072dc: ae03 add r6, sp, #12 - 80072de: c60f stmia r6!, {r0, r1, r2, r3} - 80072e0: cc0f ldmia r4!, {r0, r1, r2, r3} - 80072e2: c60f stmia r6!, {r0, r1, r2, r3} - 80072e4: cc0f ldmia r4!, {r0, r1, r2, r3} - 80072e6: c60f stmia r6!, {r0, r1, r2, r3} - 80072e8: e894 000f ldmia.w r4, {r0, r1, r2, r3} - 80072ec: ac02 add r4, sp, #8 - 80072ee: f8d5 800c ldr.w r8, [r5, #12] - 80072f2: f8d5 9018 ldr.w r9, [r5, #24] - 80072f6: e886 000f stmia.w r6, {r0, r1, r2, r3} - 80072fa: 2300 movs r3, #0 - 80072fc: 6023 str r3, [r4, #0] - 80072fe: e021 b.n 8007344 - 8007300: 6c23 ldr r3, [r4, #64] ; 0x40 - 8007302: 616b str r3, [r5, #20] - 8007304: f44f 72f0 mov.w r2, #480 ; 0x1e0 - 8007308: 4621 mov r1, r4 - 800730a: a87a add r0, sp, #488 ; 0x1e8 - 800730c: f007 f833 bl 800e376 - 8007310: 692b ldr r3, [r5, #16] - 8007312: aa7a add r2, sp, #488 ; 0x1e8 - 8007314: 4629 mov r1, r5 - 8007316: 4630 mov r0, r6 - 8007318: 4798 blx r3 - 800731a: 9b88 ldr r3, [sp, #544] ; 0x220 - 800731c: e9cd 4900 strd r4, r9, [sp] - 8007320: 4682 mov sl, r0 - 8007322: 6463 str r3, [r4, #68] ; 0x44 - 8007324: 4631 mov r1, r6 - 8007326: 462b mov r3, r5 - 8007328: 462a mov r2, r5 - 800732a: 2001 movs r0, #1 - 800732c: 47c0 blx r8 - 800732e: 4607 mov r7, r0 - 8007330: b9f8 cbnz r0, 8007372 - 8007332: f44f 72f0 mov.w r2, #480 ; 0x1e0 - 8007336: a97a add r1, sp, #488 ; 0x1e8 - 8007338: 4620 mov r0, r4 - 800733a: f007 f81c bl 800e376 - 800733e: f1ba 0f08 cmp.w sl, #8 - 8007342: d11c bne.n 800737e - 8007344: 6c21 ldr r1, [r4, #64] ; 0x40 - 8007346: 4628 mov r0, r5 - 8007348: f7ff ff18 bl 800717c - 800734c: 2f00 cmp r7, #0 - 800734e: bf08 it eq - 8007350: 2609 moveq r6, #9 - 8007352: 4607 mov r7, r0 - 8007354: bf18 it ne - 8007356: 260a movne r6, #10 - 8007358: 2800 cmp r0, #0 - 800735a: d0d1 beq.n 8007300 - 800735c: 6ba3 ldr r3, [r4, #56] ; 0x38 - 800735e: f046 0110 orr.w r1, r6, #16 - 8007362: e9cd 4900 strd r4, r9, [sp] - 8007366: 462a mov r2, r5 - 8007368: 6463 str r3, [r4, #68] ; 0x44 - 800736a: 2001 movs r0, #1 - 800736c: 462b mov r3, r5 - 800736e: 47c0 blx r8 - 8007370: b100 cbz r0, 8007374 - 8007372: 2709 movs r7, #9 - 8007374: 4638 mov r0, r7 - 8007376: f50d 7d72 add.w sp, sp, #968 ; 0x3c8 - 800737a: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 800737e: f1ba 0f07 cmp.w sl, #7 - 8007382: d1f6 bne.n 8007372 - 8007384: 4638 mov r0, r7 - 8007386: 6c21 ldr r1, [r4, #64] ; 0x40 - 8007388: f7ff ff7e bl 8007288 <_Unwind_DebugHook> - 800738c: a803 add r0, sp, #12 - 800738e: f000 fb9d bl 8007acc <__restore_core_regs> - 8007392: bf00 nop - -08007394 <_Unwind_GetCFA>: - 8007394: 6c40 ldr r0, [r0, #68] ; 0x44 - 8007396: 4770 bx lr - -08007398 <__gnu_Unwind_RaiseException>: - 8007398: b5f0 push {r4, r5, r6, r7, lr} - 800739a: 6bcb ldr r3, [r1, #60] ; 0x3c - 800739c: 640b str r3, [r1, #64] ; 0x40 - 800739e: 1d0d adds r5, r1, #4 - 80073a0: 460f mov r7, r1 - 80073a2: 4606 mov r6, r0 - 80073a4: cd0f ldmia r5!, {r0, r1, r2, r3} - 80073a6: b0f9 sub sp, #484 ; 0x1e4 - 80073a8: ac01 add r4, sp, #4 - 80073aa: c40f stmia r4!, {r0, r1, r2, r3} - 80073ac: cd0f ldmia r5!, {r0, r1, r2, r3} - 80073ae: c40f stmia r4!, {r0, r1, r2, r3} - 80073b0: cd0f ldmia r5!, {r0, r1, r2, r3} - 80073b2: c40f stmia r4!, {r0, r1, r2, r3} - 80073b4: e895 000f ldmia.w r5, {r0, r1, r2, r3} - 80073b8: f04f 35ff mov.w r5, #4294967295 ; 0xffffffff - 80073bc: e884 000f stmia.w r4, {r0, r1, r2, r3} - 80073c0: 9500 str r5, [sp, #0] - 80073c2: e006 b.n 80073d2 <__gnu_Unwind_RaiseException+0x3a> - 80073c4: 6933 ldr r3, [r6, #16] - 80073c6: 466a mov r2, sp - 80073c8: 4631 mov r1, r6 - 80073ca: 4798 blx r3 - 80073cc: 2808 cmp r0, #8 - 80073ce: 4604 mov r4, r0 - 80073d0: d108 bne.n 80073e4 <__gnu_Unwind_RaiseException+0x4c> - 80073d2: 9910 ldr r1, [sp, #64] ; 0x40 - 80073d4: 4630 mov r0, r6 - 80073d6: f7ff fed1 bl 800717c - 80073da: 2800 cmp r0, #0 - 80073dc: d0f2 beq.n 80073c4 <__gnu_Unwind_RaiseException+0x2c> - 80073de: 2009 movs r0, #9 - 80073e0: b079 add sp, #484 ; 0x1e4 - 80073e2: bdf0 pop {r4, r5, r6, r7, pc} - 80073e4: 4668 mov r0, sp - 80073e6: f7ff ff1b bl 8007220 - 80073ea: 2c06 cmp r4, #6 - 80073ec: d1f7 bne.n 80073de <__gnu_Unwind_RaiseException+0x46> - 80073ee: 4639 mov r1, r7 - 80073f0: 4630 mov r0, r6 - 80073f2: f7ff ff4b bl 800728c - 80073f6: bf00 nop - -080073f8 <__gnu_Unwind_ForcedUnwind>: - 80073f8: b430 push {r4, r5} - 80073fa: 6bdd ldr r5, [r3, #60] ; 0x3c - 80073fc: 60c1 str r1, [r0, #12] - 80073fe: 6182 str r2, [r0, #24] - 8007400: 4619 mov r1, r3 - 8007402: 641d str r5, [r3, #64] ; 0x40 - 8007404: 2200 movs r2, #0 - 8007406: bc30 pop {r4, r5} - 8007408: e760 b.n 80072cc - 800740a: bf00 nop - -0800740c <__gnu_Unwind_Resume>: - 800740c: b570 push {r4, r5, r6, lr} - 800740e: 68c6 ldr r6, [r0, #12] - 8007410: 6943 ldr r3, [r0, #20] - 8007412: 640b str r3, [r1, #64] ; 0x40 - 8007414: b9be cbnz r6, 8007446 <__gnu_Unwind_Resume+0x3a> - 8007416: 6903 ldr r3, [r0, #16] - 8007418: 460a mov r2, r1 - 800741a: 4604 mov r4, r0 - 800741c: 460d mov r5, r1 - 800741e: 4601 mov r1, r0 - 8007420: 2002 movs r0, #2 - 8007422: 4798 blx r3 - 8007424: 2807 cmp r0, #7 - 8007426: d007 beq.n 8007438 <__gnu_Unwind_Resume+0x2c> - 8007428: 2808 cmp r0, #8 - 800742a: d103 bne.n 8007434 <__gnu_Unwind_Resume+0x28> - 800742c: 4629 mov r1, r5 - 800742e: 4620 mov r0, r4 - 8007430: f7ff ff2c bl 800728c - 8007434: f006 fb00 bl 800da38 - 8007438: 4630 mov r0, r6 - 800743a: 6c29 ldr r1, [r5, #64] ; 0x40 - 800743c: f7ff ff24 bl 8007288 <_Unwind_DebugHook> - 8007440: 1d28 adds r0, r5, #4 - 8007442: f000 fb43 bl 8007acc <__restore_core_regs> - 8007446: 2201 movs r2, #1 - 8007448: f7ff ff40 bl 80072cc - 800744c: f006 faf4 bl 800da38 - -08007450 <__gnu_Unwind_Resume_or_Rethrow>: - 8007450: 68c2 ldr r2, [r0, #12] - 8007452: b11a cbz r2, 800745c <__gnu_Unwind_Resume_or_Rethrow+0xc> - 8007454: 6bca ldr r2, [r1, #60] ; 0x3c - 8007456: 640a str r2, [r1, #64] ; 0x40 - 8007458: 2200 movs r2, #0 - 800745a: e737 b.n 80072cc - 800745c: e79c b.n 8007398 <__gnu_Unwind_RaiseException> - 800745e: bf00 nop - -08007460 <_Unwind_Complete>: - 8007460: 4770 bx lr - 8007462: bf00 nop - -08007464 <_Unwind_DeleteException>: - 8007464: 6883 ldr r3, [r0, #8] - 8007466: b113 cbz r3, 800746e <_Unwind_DeleteException+0xa> - 8007468: 4601 mov r1, r0 - 800746a: 2001 movs r0, #1 - 800746c: 4718 bx r3 - 800746e: 4770 bx lr - -08007470 <_Unwind_VRS_Get>: - 8007470: 2904 cmp r1, #4 - 8007472: d807 bhi.n 8007484 <_Unwind_VRS_Get+0x14> - 8007474: e8df f001 tbb [pc, r1] - 8007478: 08060803 .word 0x08060803 - 800747c: 08 .byte 0x08 - 800747d: 00 .byte 0x00 - 800747e: b90b cbnz r3, 8007484 <_Unwind_VRS_Get+0x14> - 8007480: 2a0f cmp r2, #15 - 8007482: d903 bls.n 800748c <_Unwind_VRS_Get+0x1c> - 8007484: 2002 movs r0, #2 - 8007486: 4770 bx lr - 8007488: 2001 movs r0, #1 - 800748a: 4770 bx lr - 800748c: eb00 0282 add.w r2, r0, r2, lsl #2 - 8007490: 4618 mov r0, r3 - 8007492: 6853 ldr r3, [r2, #4] - 8007494: 9a00 ldr r2, [sp, #0] - 8007496: 6013 str r3, [r2, #0] - 8007498: 4770 bx lr - 800749a: bf00 nop - -0800749c <_Unwind_GetGR>: - 800749c: b510 push {r4, lr} - 800749e: b084 sub sp, #16 - 80074a0: 2300 movs r3, #0 - 80074a2: ac03 add r4, sp, #12 - 80074a4: 460a mov r2, r1 - 80074a6: 9400 str r4, [sp, #0] - 80074a8: 4619 mov r1, r3 - 80074aa: f7ff ffe1 bl 8007470 <_Unwind_VRS_Get> - 80074ae: 9803 ldr r0, [sp, #12] - 80074b0: b004 add sp, #16 - 80074b2: bd10 pop {r4, pc} - -080074b4 <_Unwind_VRS_Set>: - 80074b4: 2904 cmp r1, #4 - 80074b6: d807 bhi.n 80074c8 <_Unwind_VRS_Set+0x14> - 80074b8: e8df f001 tbb [pc, r1] - 80074bc: 08060803 .word 0x08060803 - 80074c0: 08 .byte 0x08 - 80074c1: 00 .byte 0x00 - 80074c2: b90b cbnz r3, 80074c8 <_Unwind_VRS_Set+0x14> - 80074c4: 2a0f cmp r2, #15 - 80074c6: d903 bls.n 80074d0 <_Unwind_VRS_Set+0x1c> - 80074c8: 2002 movs r0, #2 - 80074ca: 4770 bx lr - 80074cc: 2001 movs r0, #1 - 80074ce: 4770 bx lr - 80074d0: eb00 0082 add.w r0, r0, r2, lsl #2 - 80074d4: 9a00 ldr r2, [sp, #0] - 80074d6: 6812 ldr r2, [r2, #0] - 80074d8: 6042 str r2, [r0, #4] - 80074da: 4618 mov r0, r3 - 80074dc: 4770 bx lr - 80074de: bf00 nop - -080074e0 <_Unwind_SetGR>: - 80074e0: b510 push {r4, lr} - 80074e2: b084 sub sp, #16 - 80074e4: ac04 add r4, sp, #16 - 80074e6: 2300 movs r3, #0 - 80074e8: f844 2d04 str.w r2, [r4, #-4]! - 80074ec: 460a mov r2, r1 - 80074ee: 9400 str r4, [sp, #0] - 80074f0: 4619 mov r1, r3 - 80074f2: f7ff ffdf bl 80074b4 <_Unwind_VRS_Set> - 80074f6: b004 add sp, #16 - 80074f8: bd10 pop {r4, pc} - 80074fa: bf00 nop - -080074fc <__gnu_Unwind_Backtrace>: - 80074fc: b5f0 push {r4, r5, r6, r7, lr} - 80074fe: 6bd3 ldr r3, [r2, #60] ; 0x3c - 8007500: 6413 str r3, [r2, #64] ; 0x40 - 8007502: 1d15 adds r5, r2, #4 - 8007504: 4607 mov r7, r0 - 8007506: 460e mov r6, r1 - 8007508: cd0f ldmia r5!, {r0, r1, r2, r3} - 800750a: f5ad 7d0f sub.w sp, sp, #572 ; 0x23c - 800750e: ac17 add r4, sp, #92 ; 0x5c - 8007510: c40f stmia r4!, {r0, r1, r2, r3} - 8007512: cd0f ldmia r5!, {r0, r1, r2, r3} - 8007514: c40f stmia r4!, {r0, r1, r2, r3} - 8007516: cd0f ldmia r5!, {r0, r1, r2, r3} - 8007518: c40f stmia r4!, {r0, r1, r2, r3} - 800751a: e895 000f ldmia.w r5, {r0, r1, r2, r3} - 800751e: f04f 35ff mov.w r5, #4294967295 ; 0xffffffff - 8007522: e884 000f stmia.w r4, {r0, r1, r2, r3} - 8007526: 9516 str r5, [sp, #88] ; 0x58 - 8007528: e010 b.n 800754c <__gnu_Unwind_Backtrace+0x50> - 800752a: a816 add r0, sp, #88 ; 0x58 - 800752c: f7ff ffd8 bl 80074e0 <_Unwind_SetGR> - 8007530: 4631 mov r1, r6 - 8007532: a816 add r0, sp, #88 ; 0x58 - 8007534: 47b8 blx r7 - 8007536: aa16 add r2, sp, #88 ; 0x58 - 8007538: 4669 mov r1, sp - 800753a: b978 cbnz r0, 800755c <__gnu_Unwind_Backtrace+0x60> - 800753c: 9b04 ldr r3, [sp, #16] - 800753e: 2008 movs r0, #8 - 8007540: 4798 blx r3 - 8007542: 2805 cmp r0, #5 - 8007544: 4604 mov r4, r0 - 8007546: d00a beq.n 800755e <__gnu_Unwind_Backtrace+0x62> - 8007548: 2809 cmp r0, #9 - 800754a: d007 beq.n 800755c <__gnu_Unwind_Backtrace+0x60> - 800754c: 9926 ldr r1, [sp, #152] ; 0x98 - 800754e: 4668 mov r0, sp - 8007550: f7ff fe14 bl 800717c - 8007554: 466a mov r2, sp - 8007556: 210c movs r1, #12 - 8007558: 2800 cmp r0, #0 - 800755a: d0e6 beq.n 800752a <__gnu_Unwind_Backtrace+0x2e> - 800755c: 2409 movs r4, #9 - 800755e: a816 add r0, sp, #88 ; 0x58 - 8007560: f7ff fe5e bl 8007220 - 8007564: 4620 mov r0, r4 - 8007566: f50d 7d0f add.w sp, sp, #572 ; 0x23c - 800756a: bdf0 pop {r4, r5, r6, r7, pc} - -0800756c <__gnu_unwind_pr_common>: - 800756c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8007570: 460d mov r5, r1 - 8007572: 6cc9 ldr r1, [r1, #76] ; 0x4c - 8007574: b089 sub sp, #36 ; 0x24 - 8007576: 1d0c adds r4, r1, #4 - 8007578: 4616 mov r6, r2 - 800757a: f000 0b03 and.w fp, r0, #3 - 800757e: 680a ldr r2, [r1, #0] - 8007580: 9406 str r4, [sp, #24] - 8007582: 461f mov r7, r3 - 8007584: 2b00 cmp r3, #0 - 8007586: d068 beq.n 800765a <__gnu_unwind_pr_common+0xee> - 8007588: 0c13 lsrs r3, r2, #16 - 800758a: b2d9 uxtb r1, r3 - 800758c: 0412 lsls r2, r2, #16 - 800758e: f88d 301d strb.w r3, [sp, #29] - 8007592: 2302 movs r3, #2 - 8007594: eb04 0481 add.w r4, r4, r1, lsl #2 - 8007598: 9205 str r2, [sp, #20] - 800759a: f88d 301c strb.w r3, [sp, #28] - 800759e: 6d2b ldr r3, [r5, #80] ; 0x50 - 80075a0: f1bb 0f02 cmp.w fp, #2 - 80075a4: bf08 it eq - 80075a6: 6bac ldreq r4, [r5, #56] ; 0x38 - 80075a8: f013 0301 ands.w r3, r3, #1 - 80075ac: d146 bne.n 800763c <__gnu_unwind_pr_common+0xd0> - 80075ae: 9301 str r3, [sp, #4] - 80075b0: f000 0308 and.w r3, r0, #8 - 80075b4: 9300 str r3, [sp, #0] - 80075b6: f8d4 9000 ldr.w r9, [r4] - 80075ba: f1b9 0f00 cmp.w r9, #0 - 80075be: f000 80f3 beq.w 80077a8 <__gnu_unwind_pr_common+0x23c> - 80075c2: 2f02 cmp r7, #2 - 80075c4: d045 beq.n 8007652 <__gnu_unwind_pr_common+0xe6> - 80075c6: f8b4 9000 ldrh.w r9, [r4] - 80075ca: f8b4 8002 ldrh.w r8, [r4, #2] - 80075ce: 3404 adds r4, #4 - 80075d0: 6cab ldr r3, [r5, #72] ; 0x48 - 80075d2: f028 0a01 bic.w sl, r8, #1 - 80075d6: 210f movs r1, #15 - 80075d8: 4630 mov r0, r6 - 80075da: 449a add sl, r3 - 80075dc: f7ff ff5e bl 800749c <_Unwind_GetGR> - 80075e0: 4582 cmp sl, r0 - 80075e2: d834 bhi.n 800764e <__gnu_unwind_pr_common+0xe2> - 80075e4: f029 0301 bic.w r3, r9, #1 - 80075e8: 4453 add r3, sl - 80075ea: 4283 cmp r3, r0 - 80075ec: bf94 ite ls - 80075ee: 2000 movls r0, #0 - 80075f0: 2001 movhi r0, #1 - 80075f2: ea4f 0848 mov.w r8, r8, lsl #1 - 80075f6: f008 0802 and.w r8, r8, #2 - 80075fa: f009 0901 and.w r9, r9, #1 - 80075fe: ea48 0809 orr.w r8, r8, r9 - 8007602: f1b8 0f01 cmp.w r8, #1 - 8007606: d03a beq.n 800767e <__gnu_unwind_pr_common+0x112> - 8007608: d331 bcc.n 800766e <__gnu_unwind_pr_common+0x102> - 800760a: f1b8 0f02 cmp.w r8, #2 - 800760e: d11a bne.n 8007646 <__gnu_unwind_pr_common+0xda> - 8007610: 6823 ldr r3, [r4, #0] - 8007612: f023 4a00 bic.w sl, r3, #2147483648 ; 0x80000000 - 8007616: f1bb 0f00 cmp.w fp, #0 - 800761a: d166 bne.n 80076ea <__gnu_unwind_pr_common+0x17e> - 800761c: b130 cbz r0, 800762c <__gnu_unwind_pr_common+0xc0> - 800761e: 9a00 ldr r2, [sp, #0] - 8007620: 2a00 cmp r2, #0 - 8007622: d06c beq.n 80076fe <__gnu_unwind_pr_common+0x192> - 8007624: f1ba 0f00 cmp.w sl, #0 - 8007628: f000 8090 beq.w 800774c <__gnu_unwind_pr_common+0x1e0> - 800762c: 2b00 cmp r3, #0 - 800762e: da00 bge.n 8007632 <__gnu_unwind_pr_common+0xc6> - 8007630: 3404 adds r4, #4 - 8007632: f10a 0301 add.w r3, sl, #1 - 8007636: eb04 0483 add.w r4, r4, r3, lsl #2 - 800763a: e7bc b.n 80075b6 <__gnu_unwind_pr_common+0x4a> - 800763c: 4630 mov r0, r6 - 800763e: a905 add r1, sp, #20 - 8007640: f000 fb46 bl 8007cd0 <__gnu_unwind_execute> - 8007644: b178 cbz r0, 8007666 <__gnu_unwind_pr_common+0xfa> - 8007646: 2009 movs r0, #9 - 8007648: b009 add sp, #36 ; 0x24 - 800764a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800764e: 2000 movs r0, #0 - 8007650: e7cf b.n 80075f2 <__gnu_unwind_pr_common+0x86> - 8007652: f8d4 8004 ldr.w r8, [r4, #4] - 8007656: 3408 adds r4, #8 - 8007658: e7ba b.n 80075d0 <__gnu_unwind_pr_common+0x64> - 800765a: 0212 lsls r2, r2, #8 - 800765c: 2303 movs r3, #3 - 800765e: 9205 str r2, [sp, #20] - 8007660: f8ad 301c strh.w r3, [sp, #28] - 8007664: e79b b.n 800759e <__gnu_unwind_pr_common+0x32> - 8007666: 2008 movs r0, #8 - 8007668: b009 add sp, #36 ; 0x24 - 800766a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800766e: f1bb 0f00 cmp.w fp, #0 - 8007672: d002 beq.n 800767a <__gnu_unwind_pr_common+0x10e> - 8007674: 2800 cmp r0, #0 - 8007676: f040 80b4 bne.w 80077e2 <__gnu_unwind_pr_common+0x276> - 800767a: 3404 adds r4, #4 - 800767c: e79b b.n 80075b6 <__gnu_unwind_pr_common+0x4a> - 800767e: f1bb 0f00 cmp.w fp, #0 - 8007682: d118 bne.n 80076b6 <__gnu_unwind_pr_common+0x14a> - 8007684: b1a8 cbz r0, 80076b2 <__gnu_unwind_pr_common+0x146> - 8007686: e9d4 2300 ldrd r2, r3, [r4] - 800768a: 1c99 adds r1, r3, #2 - 800768c: ea4f 72d2 mov.w r2, r2, lsr #31 - 8007690: d0d9 beq.n 8007646 <__gnu_unwind_pr_common+0xda> - 8007692: f105 0158 add.w r1, r5, #88 ; 0x58 - 8007696: 3301 adds r3, #1 - 8007698: 9104 str r1, [sp, #16] - 800769a: f000 80b5 beq.w 8007808 <__gnu_unwind_pr_common+0x29c> - 800769e: 1d20 adds r0, r4, #4 - 80076a0: f7ff fdea bl 8007278 <_Unwind_decode_typeinfo_ptr.isra.0> - 80076a4: ab04 add r3, sp, #16 - 80076a6: 4601 mov r1, r0 - 80076a8: 4628 mov r0, r5 - 80076aa: f005 fa1b bl 800cae4 <__cxa_type_match> - 80076ae: 2800 cmp r0, #0 - 80076b0: d167 bne.n 8007782 <__gnu_unwind_pr_common+0x216> - 80076b2: 3408 adds r4, #8 - 80076b4: e77f b.n 80075b6 <__gnu_unwind_pr_common+0x4a> - 80076b6: 210d movs r1, #13 - 80076b8: 4630 mov r0, r6 - 80076ba: f8d5 8020 ldr.w r8, [r5, #32] - 80076be: f7ff feed bl 800749c <_Unwind_GetGR> - 80076c2: 4580 cmp r8, r0 - 80076c4: d1f5 bne.n 80076b2 <__gnu_unwind_pr_common+0x146> - 80076c6: 6aab ldr r3, [r5, #40] ; 0x28 - 80076c8: 429c cmp r4, r3 - 80076ca: d1f2 bne.n 80076b2 <__gnu_unwind_pr_common+0x146> - 80076cc: 4620 mov r0, r4 - 80076ce: f7ff fd07 bl 80070e0 - 80076d2: 210f movs r1, #15 - 80076d4: 4602 mov r2, r0 - 80076d6: 4630 mov r0, r6 - 80076d8: f7ff ff02 bl 80074e0 <_Unwind_SetGR> - 80076dc: 4630 mov r0, r6 - 80076de: 462a mov r2, r5 - 80076e0: 2100 movs r1, #0 - 80076e2: f7ff fefd bl 80074e0 <_Unwind_SetGR> - 80076e6: 2007 movs r0, #7 - 80076e8: e7ae b.n 8007648 <__gnu_unwind_pr_common+0xdc> - 80076ea: 210d movs r1, #13 - 80076ec: 4630 mov r0, r6 - 80076ee: f8d5 8020 ldr.w r8, [r5, #32] - 80076f2: f7ff fed3 bl 800749c <_Unwind_GetGR> - 80076f6: 4580 cmp r8, r0 - 80076f8: d032 beq.n 8007760 <__gnu_unwind_pr_common+0x1f4> - 80076fa: 6823 ldr r3, [r4, #0] - 80076fc: e796 b.n 800762c <__gnu_unwind_pr_common+0xc0> - 80076fe: f1ba 0f00 cmp.w sl, #0 - 8007702: d023 beq.n 800774c <__gnu_unwind_pr_common+0x1e0> - 8007704: f105 0358 add.w r3, r5, #88 ; 0x58 - 8007708: f104 0804 add.w r8, r4, #4 - 800770c: f8cd b008 str.w fp, [sp, #8] - 8007710: f8dd 9000 ldr.w r9, [sp] - 8007714: 9703 str r7, [sp, #12] - 8007716: 46a3 mov fp, r4 - 8007718: 461c mov r4, r3 - 800771a: e002 b.n 8007722 <__gnu_unwind_pr_common+0x1b6> - 800771c: 4557 cmp r7, sl - 800771e: 46b9 mov r9, r7 - 8007720: d040 beq.n 80077a4 <__gnu_unwind_pr_common+0x238> - 8007722: 4640 mov r0, r8 - 8007724: 9404 str r4, [sp, #16] - 8007726: f7ff fda7 bl 8007278 <_Unwind_decode_typeinfo_ptr.isra.0> - 800772a: ab04 add r3, sp, #16 - 800772c: 4601 mov r1, r0 - 800772e: 2200 movs r2, #0 - 8007730: 4628 mov r0, r5 - 8007732: f005 f9d7 bl 800cae4 <__cxa_type_match> - 8007736: f109 0701 add.w r7, r9, #1 - 800773a: f108 0804 add.w r8, r8, #4 - 800773e: 2800 cmp r0, #0 - 8007740: d0ec beq.n 800771c <__gnu_unwind_pr_common+0x1b0> - 8007742: 45d1 cmp r9, sl - 8007744: 465c mov r4, fp - 8007746: e9dd b702 ldrd fp, r7, [sp, #8] - 800774a: d1d6 bne.n 80076fa <__gnu_unwind_pr_common+0x18e> - 800774c: 4630 mov r0, r6 - 800774e: 210d movs r1, #13 - 8007750: f7ff fea4 bl 800749c <_Unwind_GetGR> - 8007754: 9b04 ldr r3, [sp, #16] - 8007756: 6228 str r0, [r5, #32] - 8007758: e9c5 3409 strd r3, r4, [r5, #36] ; 0x24 - 800775c: 2006 movs r0, #6 - 800775e: e773 b.n 8007648 <__gnu_unwind_pr_common+0xdc> - 8007760: 6aab ldr r3, [r5, #40] ; 0x28 - 8007762: 429c cmp r4, r3 - 8007764: d1c9 bne.n 80076fa <__gnu_unwind_pr_common+0x18e> - 8007766: 2204 movs r2, #4 - 8007768: f04f 0800 mov.w r8, #0 - 800776c: 18a3 adds r3, r4, r2 - 800776e: e9c5 a80a strd sl, r8, [r5, #40] ; 0x28 - 8007772: e9c5 230c strd r2, r3, [r5, #48] ; 0x30 - 8007776: 6823 ldr r3, [r4, #0] - 8007778: 4543 cmp r3, r8 - 800777a: db4d blt.n 8007818 <__gnu_unwind_pr_common+0x2ac> - 800777c: 2301 movs r3, #1 - 800777e: 9301 str r3, [sp, #4] - 8007780: e757 b.n 8007632 <__gnu_unwind_pr_common+0xc6> - 8007782: 4680 mov r8, r0 - 8007784: 210d movs r1, #13 - 8007786: 4630 mov r0, r6 - 8007788: f7ff fe88 bl 800749c <_Unwind_GetGR> - 800778c: f1b8 0f02 cmp.w r8, #2 - 8007790: 6228 str r0, [r5, #32] - 8007792: d13e bne.n 8007812 <__gnu_unwind_pr_common+0x2a6> - 8007794: 462b mov r3, r5 - 8007796: 9a04 ldr r2, [sp, #16] - 8007798: f843 2f2c str.w r2, [r3, #44]! - 800779c: 626b str r3, [r5, #36] ; 0x24 - 800779e: 62ac str r4, [r5, #40] ; 0x28 - 80077a0: 2006 movs r0, #6 - 80077a2: e751 b.n 8007648 <__gnu_unwind_pr_common+0xdc> - 80077a4: 465c mov r4, fp - 80077a6: e7d1 b.n 800774c <__gnu_unwind_pr_common+0x1e0> - 80077a8: a905 add r1, sp, #20 - 80077aa: 4630 mov r0, r6 - 80077ac: f000 fa90 bl 8007cd0 <__gnu_unwind_execute> - 80077b0: 2800 cmp r0, #0 - 80077b2: f47f af48 bne.w 8007646 <__gnu_unwind_pr_common+0xda> - 80077b6: 9b01 ldr r3, [sp, #4] - 80077b8: 2b00 cmp r3, #0 - 80077ba: f43f af54 beq.w 8007666 <__gnu_unwind_pr_common+0xfa> - 80077be: 210f movs r1, #15 - 80077c0: 4630 mov r0, r6 - 80077c2: f7ff fe6b bl 800749c <_Unwind_GetGR> - 80077c6: 210e movs r1, #14 - 80077c8: 4602 mov r2, r0 - 80077ca: 4630 mov r0, r6 - 80077cc: f7ff fe88 bl 80074e0 <_Unwind_SetGR> - 80077d0: 4630 mov r0, r6 - 80077d2: 4a1a ldr r2, [pc, #104] ; (800783c <__gnu_unwind_pr_common+0x2d0>) - 80077d4: 210f movs r1, #15 - 80077d6: f7ff fe83 bl 80074e0 <_Unwind_SetGR> - 80077da: 2007 movs r0, #7 - 80077dc: b009 add sp, #36 ; 0x24 - 80077de: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 80077e2: 4620 mov r0, r4 - 80077e4: f7ff fc7c bl 80070e0 - 80077e8: 3404 adds r4, #4 - 80077ea: 4607 mov r7, r0 - 80077ec: 63ac str r4, [r5, #56] ; 0x38 - 80077ee: 4628 mov r0, r5 - 80077f0: f005 f9d0 bl 800cb94 <__cxa_begin_cleanup> - 80077f4: 2800 cmp r0, #0 - 80077f6: f43f af26 beq.w 8007646 <__gnu_unwind_pr_common+0xda> - 80077fa: 4630 mov r0, r6 - 80077fc: 463a mov r2, r7 - 80077fe: 210f movs r1, #15 - 8007800: f7ff fe6e bl 80074e0 <_Unwind_SetGR> - 8007804: 2007 movs r0, #7 - 8007806: e71f b.n 8007648 <__gnu_unwind_pr_common+0xdc> - 8007808: 4630 mov r0, r6 - 800780a: 210d movs r1, #13 - 800780c: f7ff fe46 bl 800749c <_Unwind_GetGR> - 8007810: 6228 str r0, [r5, #32] - 8007812: 9b04 ldr r3, [sp, #16] - 8007814: 626b str r3, [r5, #36] ; 0x24 - 8007816: e7c2 b.n 800779e <__gnu_unwind_pr_common+0x232> - 8007818: f10a 0001 add.w r0, sl, #1 - 800781c: eb04 0080 add.w r0, r4, r0, lsl #2 - 8007820: f7ff fc5e bl 80070e0 - 8007824: 210f movs r1, #15 - 8007826: 4602 mov r2, r0 - 8007828: 4630 mov r0, r6 - 800782a: f7ff fe59 bl 80074e0 <_Unwind_SetGR> - 800782e: 4630 mov r0, r6 - 8007830: 462a mov r2, r5 - 8007832: 4641 mov r1, r8 - 8007834: f7ff fe54 bl 80074e0 <_Unwind_SetGR> - 8007838: 2007 movs r0, #7 - 800783a: e705 b.n 8007648 <__gnu_unwind_pr_common+0xdc> - 800783c: 0800c9fd .word 0x0800c9fd - -08007840 <__aeabi_unwind_cpp_pr0>: - 8007840: 2300 movs r3, #0 - 8007842: e693 b.n 800756c <__gnu_unwind_pr_common> - -08007844 <__aeabi_unwind_cpp_pr1>: - 8007844: 2301 movs r3, #1 - 8007846: e691 b.n 800756c <__gnu_unwind_pr_common> - -08007848 <__aeabi_unwind_cpp_pr2>: - 8007848: 2302 movs r3, #2 - 800784a: e68f b.n 800756c <__gnu_unwind_pr_common> - -0800784c <_Unwind_VRS_Pop>: - 800784c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8007850: 4605 mov r5, r0 - 8007852: b0c4 sub sp, #272 ; 0x110 - 8007854: 2904 cmp r1, #4 - 8007856: d806 bhi.n 8007866 <_Unwind_VRS_Pop+0x1a> - 8007858: e8df f001 tbb [pc, r1] - 800785c: 03052b4d .word 0x03052b4d - 8007860: 09 .byte 0x09 - 8007861: 00 .byte 0x00 - 8007862: 2b03 cmp r3, #3 - 8007864: d05f beq.n 8007926 <_Unwind_VRS_Pop+0xda> - 8007866: 2002 movs r0, #2 - 8007868: b044 add sp, #272 ; 0x110 - 800786a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 800786e: 2b00 cmp r3, #0 - 8007870: d1f9 bne.n 8007866 <_Unwind_VRS_Pop+0x1a> - 8007872: 2a10 cmp r2, #16 - 8007874: d8f7 bhi.n 8007866 <_Unwind_VRS_Pop+0x1a> - 8007876: 682b ldr r3, [r5, #0] - 8007878: 06dc lsls r4, r3, #27 - 800787a: f100 80f4 bmi.w 8007a66 <_Unwind_VRS_Pop+0x21a> - 800787e: ac22 add r4, sp, #136 ; 0x88 - 8007880: 4620 mov r0, r4 - 8007882: 9201 str r2, [sp, #4] - 8007884: f000 f994 bl 8007bb0 <__gnu_Unwind_Save_WMMXC> - 8007888: 6ba8 ldr r0, [r5, #56] ; 0x38 - 800788a: 9a01 ldr r2, [sp, #4] - 800788c: 2300 movs r3, #0 - 800788e: 2601 movs r6, #1 - 8007890: fa06 f103 lsl.w r1, r6, r3 - 8007894: 4211 tst r1, r2 - 8007896: d003 beq.n 80078a0 <_Unwind_VRS_Pop+0x54> - 8007898: 6801 ldr r1, [r0, #0] - 800789a: f844 1023 str.w r1, [r4, r3, lsl #2] - 800789e: 3004 adds r0, #4 - 80078a0: 3301 adds r3, #1 - 80078a2: 2b04 cmp r3, #4 - 80078a4: d1f4 bne.n 8007890 <_Unwind_VRS_Pop+0x44> - 80078a6: 63a8 str r0, [r5, #56] ; 0x38 - 80078a8: 4620 mov r0, r4 - 80078aa: f000 f977 bl 8007b9c <__gnu_Unwind_Restore_WMMXC> - 80078ae: 2000 movs r0, #0 - 80078b0: e7da b.n 8007868 <_Unwind_VRS_Pop+0x1c> - 80078b2: 2b01 cmp r3, #1 - 80078b4: ea4f 4612 mov.w r6, r2, lsr #16 - 80078b8: b297 uxth r7, r2 - 80078ba: d052 beq.n 8007962 <_Unwind_VRS_Pop+0x116> - 80078bc: 2b05 cmp r3, #5 - 80078be: d1d2 bne.n 8007866 <_Unwind_VRS_Pop+0x1a> - 80078c0: eb06 0807 add.w r8, r6, r7 - 80078c4: f1b8 0f20 cmp.w r8, #32 - 80078c8: d8cd bhi.n 8007866 <_Unwind_VRS_Pop+0x1a> - 80078ca: 2e0f cmp r6, #15 - 80078cc: f240 8099 bls.w 8007a02 <_Unwind_VRS_Pop+0x1b6> - 80078d0: 46b8 mov r8, r7 - 80078d2: 2f00 cmp r7, #0 - 80078d4: f040 80db bne.w 8007a8e <_Unwind_VRS_Pop+0x242> - 80078d8: 6baa ldr r2, [r5, #56] ; 0x38 - 80078da: 63aa str r2, [r5, #56] ; 0x38 - 80078dc: 2e0f cmp r6, #15 - 80078de: f240 80be bls.w 8007a5e <_Unwind_VRS_Pop+0x212> - 80078e2: f1b8 0f00 cmp.w r8, #0 - 80078e6: d002 beq.n 80078ee <_Unwind_VRS_Pop+0xa2> - 80078e8: a802 add r0, sp, #8 - 80078ea: f000 f90b bl 8007b04 <__gnu_Unwind_Restore_VFP_D_16_to_31> - 80078ee: 2000 movs r0, #0 - 80078f0: b044 add sp, #272 ; 0x110 - 80078f2: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 80078f6: 2b00 cmp r3, #0 - 80078f8: d1b5 bne.n 8007866 <_Unwind_VRS_Pop+0x1a> - 80078fa: 6bac ldr r4, [r5, #56] ; 0x38 - 80078fc: b297 uxth r7, r2 - 80078fe: 1d28 adds r0, r5, #4 - 8007900: 2601 movs r6, #1 - 8007902: fa06 f103 lsl.w r1, r6, r3 - 8007906: 4239 tst r1, r7 - 8007908: f103 0301 add.w r3, r3, #1 - 800790c: d002 beq.n 8007914 <_Unwind_VRS_Pop+0xc8> - 800790e: 6821 ldr r1, [r4, #0] - 8007910: 6001 str r1, [r0, #0] - 8007912: 3404 adds r4, #4 - 8007914: 2b10 cmp r3, #16 - 8007916: f100 0004 add.w r0, r0, #4 - 800791a: d1f2 bne.n 8007902 <_Unwind_VRS_Pop+0xb6> - 800791c: f412 5000 ands.w r0, r2, #8192 ; 0x2000 - 8007920: d1e5 bne.n 80078ee <_Unwind_VRS_Pop+0xa2> - 8007922: 63ac str r4, [r5, #56] ; 0x38 - 8007924: e7a0 b.n 8007868 <_Unwind_VRS_Pop+0x1c> - 8007926: 0c16 lsrs r6, r2, #16 - 8007928: b297 uxth r7, r2 - 800792a: 19f3 adds r3, r6, r7 - 800792c: 2b10 cmp r3, #16 - 800792e: d89a bhi.n 8007866 <_Unwind_VRS_Pop+0x1a> - 8007930: 682b ldr r3, [r5, #0] - 8007932: 071a lsls r2, r3, #28 - 8007934: d45d bmi.n 80079f2 <_Unwind_VRS_Pop+0x1a6> - 8007936: ac22 add r4, sp, #136 ; 0x88 - 8007938: 4620 mov r0, r4 - 800793a: f000 f90d bl 8007b58 <__gnu_Unwind_Save_WMMXD> - 800793e: eb04 01c6 add.w r1, r4, r6, lsl #3 - 8007942: 6bab ldr r3, [r5, #56] ; 0x38 - 8007944: b13f cbz r7, 8007956 <_Unwind_VRS_Pop+0x10a> - 8007946: eb03 02c7 add.w r2, r3, r7, lsl #3 - 800794a: 6818 ldr r0, [r3, #0] - 800794c: f841 0b04 str.w r0, [r1], #4 - 8007950: 3304 adds r3, #4 - 8007952: 4293 cmp r3, r2 - 8007954: d1f9 bne.n 800794a <_Unwind_VRS_Pop+0xfe> - 8007956: 4620 mov r0, r4 - 8007958: 63ab str r3, [r5, #56] ; 0x38 - 800795a: f000 f8db bl 8007b14 <__gnu_Unwind_Restore_WMMXD> - 800795e: 2000 movs r0, #0 - 8007960: e782 b.n 8007868 <_Unwind_VRS_Pop+0x1c> - 8007962: 19f2 adds r2, r6, r7 - 8007964: 2a10 cmp r2, #16 - 8007966: f63f af7e bhi.w 8007866 <_Unwind_VRS_Pop+0x1a> - 800796a: 2e0f cmp r6, #15 - 800796c: f63f af7b bhi.w 8007866 <_Unwind_VRS_Pop+0x1a> - 8007970: 682a ldr r2, [r5, #0] - 8007972: 07d1 lsls r1, r2, #31 - 8007974: d508 bpl.n 8007988 <_Unwind_VRS_Pop+0x13c> - 8007976: 4628 mov r0, r5 - 8007978: f022 0203 bic.w r2, r2, #3 - 800797c: f840 2b48 str.w r2, [r0], #72 - 8007980: 9301 str r3, [sp, #4] - 8007982: f000 f8b3 bl 8007aec <__gnu_Unwind_Save_VFP> - 8007986: 9b01 ldr r3, [sp, #4] - 8007988: 9301 str r3, [sp, #4] - 800798a: ac22 add r4, sp, #136 ; 0x88 - 800798c: 4620 mov r0, r4 - 800798e: f000 f8ad bl 8007aec <__gnu_Unwind_Save_VFP> - 8007992: 6ba9 ldr r1, [r5, #56] ; 0x38 - 8007994: 9b01 ldr r3, [sp, #4] - 8007996: 2f00 cmp r7, #0 - 8007998: f000 8095 beq.w 8007ac6 <_Unwind_VRS_Pop+0x27a> - 800799c: 007f lsls r7, r7, #1 - 800799e: eb04 04c6 add.w r4, r4, r6, lsl #3 - 80079a2: f04f 0800 mov.w r8, #0 - 80079a6: 3c04 subs r4, #4 - 80079a8: eb01 0287 add.w r2, r1, r7, lsl #2 - 80079ac: f851 0b04 ldr.w r0, [r1], #4 - 80079b0: f844 0f04 str.w r0, [r4, #4]! - 80079b4: 4291 cmp r1, r2 - 80079b6: d1f9 bne.n 80079ac <_Unwind_VRS_Pop+0x160> - 80079b8: f1b8 0f00 cmp.w r8, #0 - 80079bc: d00f beq.n 80079de <_Unwind_VRS_Pop+0x192> - 80079be: ac02 add r4, sp, #8 - 80079c0: 2e10 cmp r6, #16 - 80079c2: 4631 mov r1, r6 - 80079c4: bf38 it cc - 80079c6: 2110 movcc r1, #16 - 80079c8: eb04 01c1 add.w r1, r4, r1, lsl #3 - 80079cc: 3984 subs r1, #132 ; 0x84 - 80079ce: eb02 04c8 add.w r4, r2, r8, lsl #3 - 80079d2: f852 0b04 ldr.w r0, [r2], #4 - 80079d6: f841 0f04 str.w r0, [r1, #4]! - 80079da: 4294 cmp r4, r2 - 80079dc: d1f9 bne.n 80079d2 <_Unwind_VRS_Pop+0x186> - 80079de: 2b01 cmp r3, #1 - 80079e0: f47f af7b bne.w 80078da <_Unwind_VRS_Pop+0x8e> - 80079e4: ac22 add r4, sp, #136 ; 0x88 - 80079e6: 3204 adds r2, #4 - 80079e8: 63aa str r2, [r5, #56] ; 0x38 - 80079ea: 4620 mov r0, r4 - 80079ec: f000 f87a bl 8007ae4 <__gnu_Unwind_Restore_VFP> - 80079f0: e77d b.n 80078ee <_Unwind_VRS_Pop+0xa2> - 80079f2: f023 0308 bic.w r3, r3, #8 - 80079f6: 602b str r3, [r5, #0] - 80079f8: f505 70a8 add.w r0, r5, #336 ; 0x150 - 80079fc: f000 f8ac bl 8007b58 <__gnu_Unwind_Save_WMMXD> - 8007a00: e799 b.n 8007936 <_Unwind_VRS_Pop+0xea> - 8007a02: f1b8 0f10 cmp.w r8, #16 - 8007a06: 682a ldr r2, [r5, #0] - 8007a08: d943 bls.n 8007a92 <_Unwind_VRS_Pop+0x246> - 8007a0a: 07d0 lsls r0, r2, #31 - 8007a0c: f1a8 0810 sub.w r8, r8, #16 - 8007a10: d50b bpl.n 8007a2a <_Unwind_VRS_Pop+0x1de> - 8007a12: 4628 mov r0, r5 - 8007a14: f022 0201 bic.w r2, r2, #1 - 8007a18: f042 0202 orr.w r2, r2, #2 - 8007a1c: f840 2b48 str.w r2, [r0], #72 - 8007a20: 9301 str r3, [sp, #4] - 8007a22: f000 f86b bl 8007afc <__gnu_Unwind_Save_VFP_D> - 8007a26: 682a ldr r2, [r5, #0] - 8007a28: 9b01 ldr r3, [sp, #4] - 8007a2a: 0751 lsls r1, r2, #29 - 8007a2c: d425 bmi.n 8007a7a <_Unwind_VRS_Pop+0x22e> - 8007a2e: 2e0f cmp r6, #15 - 8007a30: d804 bhi.n 8007a3c <_Unwind_VRS_Pop+0x1f0> - 8007a32: a822 add r0, sp, #136 ; 0x88 - 8007a34: 9301 str r3, [sp, #4] - 8007a36: f000 f861 bl 8007afc <__gnu_Unwind_Save_VFP_D> - 8007a3a: 9b01 ldr r3, [sp, #4] - 8007a3c: 9301 str r3, [sp, #4] - 8007a3e: ac02 add r4, sp, #8 - 8007a40: 4620 mov r0, r4 - 8007a42: f000 f863 bl 8007b0c <__gnu_Unwind_Save_VFP_D_16_to_31> - 8007a46: f1c6 0110 rsb r1, r6, #16 - 8007a4a: 2900 cmp r1, #0 - 8007a4c: 6baa ldr r2, [r5, #56] ; 0x38 - 8007a4e: 9b01 ldr r3, [sp, #4] - 8007a50: ddb6 ble.n 80079c0 <_Unwind_VRS_Pop+0x174> - 8007a52: ac22 add r4, sp, #136 ; 0x88 - 8007a54: 004f lsls r7, r1, #1 - 8007a56: eb04 04c6 add.w r4, r4, r6, lsl #3 - 8007a5a: 4611 mov r1, r2 - 8007a5c: e7a3 b.n 80079a6 <_Unwind_VRS_Pop+0x15a> - 8007a5e: a822 add r0, sp, #136 ; 0x88 - 8007a60: f000 f848 bl 8007af4 <__gnu_Unwind_Restore_VFP_D> - 8007a64: e73d b.n 80078e2 <_Unwind_VRS_Pop+0x96> - 8007a66: f023 0310 bic.w r3, r3, #16 - 8007a6a: 602b str r3, [r5, #0] - 8007a6c: f505 70e8 add.w r0, r5, #464 ; 0x1d0 - 8007a70: 9201 str r2, [sp, #4] - 8007a72: f000 f89d bl 8007bb0 <__gnu_Unwind_Save_WMMXC> - 8007a76: 9a01 ldr r2, [sp, #4] - 8007a78: e701 b.n 800787e <_Unwind_VRS_Pop+0x32> - 8007a7a: 4628 mov r0, r5 - 8007a7c: f022 0204 bic.w r2, r2, #4 - 8007a80: f840 2bd0 str.w r2, [r0], #208 - 8007a84: 9301 str r3, [sp, #4] - 8007a86: f000 f841 bl 8007b0c <__gnu_Unwind_Save_VFP_D_16_to_31> - 8007a8a: 9b01 ldr r3, [sp, #4] - 8007a8c: e7cf b.n 8007a2e <_Unwind_VRS_Pop+0x1e2> - 8007a8e: 682a ldr r2, [r5, #0] - 8007a90: e7cb b.n 8007a2a <_Unwind_VRS_Pop+0x1de> - 8007a92: 07d0 lsls r0, r2, #31 - 8007a94: d50a bpl.n 8007aac <_Unwind_VRS_Pop+0x260> - 8007a96: 4628 mov r0, r5 - 8007a98: f022 0201 bic.w r2, r2, #1 - 8007a9c: f042 0202 orr.w r2, r2, #2 - 8007aa0: f840 2b48 str.w r2, [r0], #72 - 8007aa4: 9301 str r3, [sp, #4] - 8007aa6: f000 f829 bl 8007afc <__gnu_Unwind_Save_VFP_D> - 8007aaa: 9b01 ldr r3, [sp, #4] - 8007aac: 9301 str r3, [sp, #4] - 8007aae: ac22 add r4, sp, #136 ; 0x88 - 8007ab0: 4620 mov r0, r4 - 8007ab2: f000 f823 bl 8007afc <__gnu_Unwind_Save_VFP_D> - 8007ab6: 46b8 mov r8, r7 - 8007ab8: 6ba9 ldr r1, [r5, #56] ; 0x38 - 8007aba: 9b01 ldr r3, [sp, #4] - 8007abc: 2f00 cmp r7, #0 - 8007abe: f47f af6d bne.w 800799c <_Unwind_VRS_Pop+0x150> - 8007ac2: 460a mov r2, r1 - 8007ac4: e709 b.n 80078da <_Unwind_VRS_Pop+0x8e> - 8007ac6: 460a mov r2, r1 - 8007ac8: e78d b.n 80079e6 <_Unwind_VRS_Pop+0x19a> - 8007aca: bf00 nop - -08007acc <__restore_core_regs>: - 8007acc: f100 0134 add.w r1, r0, #52 ; 0x34 - 8007ad0: e891 0038 ldmia.w r1, {r3, r4, r5} - 8007ad4: 469c mov ip, r3 - 8007ad6: 46a6 mov lr, r4 - 8007ad8: f84c 5d04 str.w r5, [ip, #-4]! - 8007adc: e890 0fff ldmia.w r0, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp} - 8007ae0: 46e5 mov sp, ip - 8007ae2: bd00 pop {pc} - -08007ae4 <__gnu_Unwind_Restore_VFP>: - 8007ae4: ec90 0b21 fldmiax r0, {d0-d15} ;@ Deprecated - 8007ae8: 4770 bx lr - 8007aea: bf00 nop - -08007aec <__gnu_Unwind_Save_VFP>: - 8007aec: ec80 0b21 fstmiax r0, {d0-d15} ;@ Deprecated - 8007af0: 4770 bx lr - 8007af2: bf00 nop - -08007af4 <__gnu_Unwind_Restore_VFP_D>: - 8007af4: ec90 0b20 vldmia r0, {d0-d15} - 8007af8: 4770 bx lr - 8007afa: bf00 nop - -08007afc <__gnu_Unwind_Save_VFP_D>: - 8007afc: ec80 0b20 vstmia r0, {d0-d15} - 8007b00: 4770 bx lr - 8007b02: bf00 nop - -08007b04 <__gnu_Unwind_Restore_VFP_D_16_to_31>: - 8007b04: ecd0 0b20 vldmia r0, {d16-d31} - 8007b08: 4770 bx lr - 8007b0a: bf00 nop - -08007b0c <__gnu_Unwind_Save_VFP_D_16_to_31>: - 8007b0c: ecc0 0b20 vstmia r0, {d16-d31} - 8007b10: 4770 bx lr - 8007b12: bf00 nop - -08007b14 <__gnu_Unwind_Restore_WMMXD>: - 8007b14: ecf0 0102 ldfe f0, [r0], #8 - 8007b18: ecf0 1102 ldfe f1, [r0], #8 - 8007b1c: ecf0 2102 ldfe f2, [r0], #8 - 8007b20: ecf0 3102 ldfe f3, [r0], #8 - 8007b24: ecf0 4102 ldfe f4, [r0], #8 - 8007b28: ecf0 5102 ldfe f5, [r0], #8 - 8007b2c: ecf0 6102 ldfe f6, [r0], #8 - 8007b30: ecf0 7102 ldfe f7, [r0], #8 - 8007b34: ecf0 8102 ldfp f0, [r0], #8 - 8007b38: ecf0 9102 ldfp f1, [r0], #8 - 8007b3c: ecf0 a102 ldfp f2, [r0], #8 - 8007b40: ecf0 b102 ldfp f3, [r0], #8 - 8007b44: ecf0 c102 ldfp f4, [r0], #8 - 8007b48: ecf0 d102 ldfp f5, [r0], #8 - 8007b4c: ecf0 e102 ldfp f6, [r0], #8 - 8007b50: ecf0 f102 ldfp f7, [r0], #8 - 8007b54: 4770 bx lr - 8007b56: bf00 nop - -08007b58 <__gnu_Unwind_Save_WMMXD>: - 8007b58: ece0 0102 stfe f0, [r0], #8 - 8007b5c: ece0 1102 stfe f1, [r0], #8 - 8007b60: ece0 2102 stfe f2, [r0], #8 - 8007b64: ece0 3102 stfe f3, [r0], #8 - 8007b68: ece0 4102 stfe f4, [r0], #8 - 8007b6c: ece0 5102 stfe f5, [r0], #8 - 8007b70: ece0 6102 stfe f6, [r0], #8 - 8007b74: ece0 7102 stfe f7, [r0], #8 - 8007b78: ece0 8102 stfp f0, [r0], #8 - 8007b7c: ece0 9102 stfp f1, [r0], #8 - 8007b80: ece0 a102 stfp f2, [r0], #8 - 8007b84: ece0 b102 stfp f3, [r0], #8 - 8007b88: ece0 c102 stfp f4, [r0], #8 - 8007b8c: ece0 d102 stfp f5, [r0], #8 - 8007b90: ece0 e102 stfp f6, [r0], #8 - 8007b94: ece0 f102 stfp f7, [r0], #8 - 8007b98: 4770 bx lr - 8007b9a: bf00 nop - -08007b9c <__gnu_Unwind_Restore_WMMXC>: - 8007b9c: fcb0 8101 ldc2 1, cr8, [r0], #4 - 8007ba0: fcb0 9101 ldc2 1, cr9, [r0], #4 - 8007ba4: fcb0 a101 ldc2 1, cr10, [r0], #4 - 8007ba8: fcb0 b101 ldc2 1, cr11, [r0], #4 - 8007bac: 4770 bx lr - 8007bae: bf00 nop - -08007bb0 <__gnu_Unwind_Save_WMMXC>: - 8007bb0: fca0 8101 stc2 1, cr8, [r0], #4 - 8007bb4: fca0 9101 stc2 1, cr9, [r0], #4 - 8007bb8: fca0 a101 stc2 1, cr10, [r0], #4 - 8007bbc: fca0 b101 stc2 1, cr11, [r0], #4 - 8007bc0: 4770 bx lr - 8007bc2: bf00 nop - -08007bc4 <_Unwind_RaiseException>: - 8007bc4: 46ec mov ip, sp - 8007bc6: b500 push {lr} - 8007bc8: e92d 5000 stmdb sp!, {ip, lr} - 8007bcc: e92d 1fff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip} - 8007bd0: f04f 0300 mov.w r3, #0 - 8007bd4: e92d 000c stmdb sp!, {r2, r3} - 8007bd8: a901 add r1, sp, #4 - 8007bda: f7ff fbdd bl 8007398 <__gnu_Unwind_RaiseException> - 8007bde: f8dd e040 ldr.w lr, [sp, #64] ; 0x40 - 8007be2: b012 add sp, #72 ; 0x48 - 8007be4: 4770 bx lr - 8007be6: bf00 nop - -08007be8 <_Unwind_Resume>: - 8007be8: 46ec mov ip, sp - 8007bea: b500 push {lr} - 8007bec: e92d 5000 stmdb sp!, {ip, lr} - 8007bf0: e92d 1fff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip} - 8007bf4: f04f 0300 mov.w r3, #0 - 8007bf8: e92d 000c stmdb sp!, {r2, r3} - 8007bfc: a901 add r1, sp, #4 - 8007bfe: f7ff fc05 bl 800740c <__gnu_Unwind_Resume> - 8007c02: f8dd e040 ldr.w lr, [sp, #64] ; 0x40 - 8007c06: b012 add sp, #72 ; 0x48 - 8007c08: 4770 bx lr - 8007c0a: bf00 nop - -08007c0c <_Unwind_Resume_or_Rethrow>: - 8007c0c: 46ec mov ip, sp - 8007c0e: b500 push {lr} - 8007c10: e92d 5000 stmdb sp!, {ip, lr} - 8007c14: e92d 1fff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip} - 8007c18: f04f 0300 mov.w r3, #0 - 8007c1c: e92d 000c stmdb sp!, {r2, r3} - 8007c20: a901 add r1, sp, #4 - 8007c22: f7ff fc15 bl 8007450 <__gnu_Unwind_Resume_or_Rethrow> - 8007c26: f8dd e040 ldr.w lr, [sp, #64] ; 0x40 - 8007c2a: b012 add sp, #72 ; 0x48 - 8007c2c: 4770 bx lr - 8007c2e: bf00 nop - -08007c30 <_Unwind_ForcedUnwind>: - 8007c30: 46ec mov ip, sp - 8007c32: b500 push {lr} - 8007c34: e92d 5000 stmdb sp!, {ip, lr} - 8007c38: e92d 1fff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip} - 8007c3c: f04f 0300 mov.w r3, #0 - 8007c40: e92d 000c stmdb sp!, {r2, r3} - 8007c44: ab01 add r3, sp, #4 - 8007c46: f7ff fbd7 bl 80073f8 <__gnu_Unwind_ForcedUnwind> - 8007c4a: f8dd e040 ldr.w lr, [sp, #64] ; 0x40 - 8007c4e: b012 add sp, #72 ; 0x48 - 8007c50: 4770 bx lr - 8007c52: bf00 nop - -08007c54 <_Unwind_Backtrace>: - 8007c54: 46ec mov ip, sp - 8007c56: b500 push {lr} - 8007c58: e92d 5000 stmdb sp!, {ip, lr} - 8007c5c: e92d 1fff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, ip} - 8007c60: f04f 0300 mov.w r3, #0 - 8007c64: e92d 000c stmdb sp!, {r2, r3} - 8007c68: aa01 add r2, sp, #4 - 8007c6a: f7ff fc47 bl 80074fc <__gnu_Unwind_Backtrace> - 8007c6e: f8dd e040 ldr.w lr, [sp, #64] ; 0x40 - 8007c72: b012 add sp, #72 ; 0x48 - 8007c74: 4770 bx lr - 8007c76: bf00 nop - -08007c78 : - 8007c78: 7a02 ldrb r2, [r0, #8] - 8007c7a: b982 cbnz r2, 8007c9e - 8007c7c: 7a43 ldrb r3, [r0, #9] - 8007c7e: b1ab cbz r3, 8007cac - 8007c80: 6842 ldr r2, [r0, #4] - 8007c82: 3b01 subs r3, #1 - 8007c84: b410 push {r4} - 8007c86: 7243 strb r3, [r0, #9] - 8007c88: 6813 ldr r3, [r2, #0] - 8007c8a: 2103 movs r1, #3 - 8007c8c: 1d14 adds r4, r2, #4 - 8007c8e: 7201 strb r1, [r0, #8] - 8007c90: 021a lsls r2, r3, #8 - 8007c92: 6044 str r4, [r0, #4] - 8007c94: 6002 str r2, [r0, #0] - 8007c96: f85d 4b04 ldr.w r4, [sp], #4 - 8007c9a: 0e18 lsrs r0, r3, #24 - 8007c9c: 4770 bx lr - 8007c9e: 6803 ldr r3, [r0, #0] - 8007ca0: 3a01 subs r2, #1 - 8007ca2: 7202 strb r2, [r0, #8] - 8007ca4: 021a lsls r2, r3, #8 - 8007ca6: 6002 str r2, [r0, #0] - 8007ca8: 0e18 lsrs r0, r3, #24 - 8007caa: 4770 bx lr - 8007cac: 20b0 movs r0, #176 ; 0xb0 - 8007cae: 4770 bx lr - -08007cb0 <_Unwind_GetGR.constprop.0>: - 8007cb0: b500 push {lr} - 8007cb2: b085 sub sp, #20 - 8007cb4: aa03 add r2, sp, #12 - 8007cb6: 2300 movs r3, #0 - 8007cb8: 9200 str r2, [sp, #0] - 8007cba: 4619 mov r1, r3 - 8007cbc: 220c movs r2, #12 - 8007cbe: f7ff fbd7 bl 8007470 <_Unwind_VRS_Get> - 8007cc2: 9803 ldr r0, [sp, #12] - 8007cc4: b005 add sp, #20 - 8007cc6: f85d fb04 ldr.w pc, [sp], #4 - 8007cca: bf00 nop - -08007ccc : - 8007ccc: e7f0 b.n 8007cb0 <_Unwind_GetGR.constprop.0> - 8007cce: bf00 nop - -08007cd0 <__gnu_unwind_execute>: - 8007cd0: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - 8007cd4: 4605 mov r5, r0 - 8007cd6: b085 sub sp, #20 - 8007cd8: 460e mov r6, r1 - 8007cda: f04f 0800 mov.w r8, #0 - 8007cde: 4630 mov r0, r6 - 8007ce0: f7ff ffca bl 8007c78 - 8007ce4: 28b0 cmp r0, #176 ; 0xb0 - 8007ce6: 4604 mov r4, r0 - 8007ce8: f000 80b1 beq.w 8007e4e <__gnu_unwind_execute+0x17e> - 8007cec: 0607 lsls r7, r0, #24 - 8007cee: d520 bpl.n 8007d32 <__gnu_unwind_execute+0x62> - 8007cf0: f000 03f0 and.w r3, r0, #240 ; 0xf0 - 8007cf4: 2b80 cmp r3, #128 ; 0x80 - 8007cf6: d065 beq.n 8007dc4 <__gnu_unwind_execute+0xf4> - 8007cf8: 2b90 cmp r3, #144 ; 0x90 - 8007cfa: d036 beq.n 8007d6a <__gnu_unwind_execute+0x9a> - 8007cfc: 2ba0 cmp r3, #160 ; 0xa0 - 8007cfe: d078 beq.n 8007df2 <__gnu_unwind_execute+0x122> - 8007d00: 2bb0 cmp r3, #176 ; 0xb0 - 8007d02: d047 beq.n 8007d94 <__gnu_unwind_execute+0xc4> - 8007d04: 2bc0 cmp r3, #192 ; 0xc0 - 8007d06: f000 808a beq.w 8007e1e <__gnu_unwind_execute+0x14e> - 8007d0a: f000 03f8 and.w r3, r0, #248 ; 0xf8 - 8007d0e: 2bd0 cmp r3, #208 ; 0xd0 - 8007d10: d10b bne.n 8007d2a <__gnu_unwind_execute+0x5a> - 8007d12: f000 0207 and.w r2, r0, #7 - 8007d16: 3201 adds r2, #1 - 8007d18: f442 2200 orr.w r2, r2, #524288 ; 0x80000 - 8007d1c: 2305 movs r3, #5 - 8007d1e: 2101 movs r1, #1 - 8007d20: 4628 mov r0, r5 - 8007d22: f7ff fd93 bl 800784c <_Unwind_VRS_Pop> - 8007d26: 2800 cmp r0, #0 - 8007d28: d0d9 beq.n 8007cde <__gnu_unwind_execute+0xe> - 8007d2a: 2009 movs r0, #9 - 8007d2c: b005 add sp, #20 - 8007d2e: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 8007d32: f10d 090c add.w r9, sp, #12 - 8007d36: 2300 movs r3, #0 - 8007d38: 4619 mov r1, r3 - 8007d3a: 0087 lsls r7, r0, #2 - 8007d3c: f8cd 9000 str.w r9, [sp] - 8007d40: 220d movs r2, #13 - 8007d42: 4628 mov r0, r5 - 8007d44: f7ff fb94 bl 8007470 <_Unwind_VRS_Get> - 8007d48: b2ff uxtb r7, r7 - 8007d4a: 9b03 ldr r3, [sp, #12] - 8007d4c: f8cd 9000 str.w r9, [sp] - 8007d50: 3704 adds r7, #4 - 8007d52: 0660 lsls r0, r4, #25 - 8007d54: bf4c ite mi - 8007d56: 1bdf submi r7, r3, r7 - 8007d58: 18ff addpl r7, r7, r3 - 8007d5a: 2300 movs r3, #0 - 8007d5c: 4619 mov r1, r3 - 8007d5e: 220d movs r2, #13 - 8007d60: 4628 mov r0, r5 - 8007d62: 9703 str r7, [sp, #12] - 8007d64: f7ff fba6 bl 80074b4 <_Unwind_VRS_Set> - 8007d68: e7b9 b.n 8007cde <__gnu_unwind_execute+0xe> - 8007d6a: f000 030d and.w r3, r0, #13 - 8007d6e: 2b0d cmp r3, #13 - 8007d70: d0db beq.n 8007d2a <__gnu_unwind_execute+0x5a> - 8007d72: af03 add r7, sp, #12 - 8007d74: 2300 movs r3, #0 - 8007d76: f000 020f and.w r2, r0, #15 - 8007d7a: 4619 mov r1, r3 - 8007d7c: 9700 str r7, [sp, #0] - 8007d7e: 4628 mov r0, r5 - 8007d80: f7ff fb76 bl 8007470 <_Unwind_VRS_Get> - 8007d84: 2300 movs r3, #0 - 8007d86: 9700 str r7, [sp, #0] - 8007d88: 4619 mov r1, r3 - 8007d8a: 220d movs r2, #13 - 8007d8c: 4628 mov r0, r5 - 8007d8e: f7ff fb91 bl 80074b4 <_Unwind_VRS_Set> - 8007d92: e7a4 b.n 8007cde <__gnu_unwind_execute+0xe> - 8007d94: 28b1 cmp r0, #177 ; 0xb1 - 8007d96: d05f beq.n 8007e58 <__gnu_unwind_execute+0x188> - 8007d98: 28b2 cmp r0, #178 ; 0xb2 - 8007d9a: f000 80cc beq.w 8007f36 <__gnu_unwind_execute+0x266> - 8007d9e: 28b3 cmp r0, #179 ; 0xb3 - 8007da0: d07e beq.n 8007ea0 <__gnu_unwind_execute+0x1d0> - 8007da2: f000 03fc and.w r3, r0, #252 ; 0xfc - 8007da6: 2bb4 cmp r3, #180 ; 0xb4 - 8007da8: d0bf beq.n 8007d2a <__gnu_unwind_execute+0x5a> - 8007daa: f000 0207 and.w r2, r0, #7 - 8007dae: 3201 adds r2, #1 - 8007db0: 2301 movs r3, #1 - 8007db2: f442 2200 orr.w r2, r2, #524288 ; 0x80000 - 8007db6: 4619 mov r1, r3 - 8007db8: 4628 mov r0, r5 - 8007dba: f7ff fd47 bl 800784c <_Unwind_VRS_Pop> - 8007dbe: 2800 cmp r0, #0 - 8007dc0: d08d beq.n 8007cde <__gnu_unwind_execute+0xe> - 8007dc2: e7b2 b.n 8007d2a <__gnu_unwind_execute+0x5a> - 8007dc4: 4630 mov r0, r6 - 8007dc6: f7ff ff57 bl 8007c78 - 8007dca: 0224 lsls r4, r4, #8 - 8007dcc: 4304 orrs r4, r0 - 8007dce: f5b4 4f00 cmp.w r4, #32768 ; 0x8000 - 8007dd2: d0aa beq.n 8007d2a <__gnu_unwind_execute+0x5a> - 8007dd4: 0124 lsls r4, r4, #4 - 8007dd6: 2300 movs r3, #0 - 8007dd8: b2a2 uxth r2, r4 - 8007dda: 4619 mov r1, r3 - 8007ddc: 4628 mov r0, r5 - 8007dde: f7ff fd35 bl 800784c <_Unwind_VRS_Pop> - 8007de2: 2800 cmp r0, #0 - 8007de4: d1a1 bne.n 8007d2a <__gnu_unwind_execute+0x5a> - 8007de6: f414 4f00 tst.w r4, #32768 ; 0x8000 - 8007dea: bf18 it ne - 8007dec: f04f 0801 movne.w r8, #1 - 8007df0: e775 b.n 8007cde <__gnu_unwind_execute+0xe> - 8007df2: 43c2 mvns r2, r0 - 8007df4: f002 0307 and.w r3, r2, #7 - 8007df8: f44f 627f mov.w r2, #4080 ; 0xff0 - 8007dfc: 411a asrs r2, r3 - 8007dfe: 0701 lsls r1, r0, #28 - 8007e00: f402 627f and.w r2, r2, #4080 ; 0xff0 - 8007e04: f04f 0300 mov.w r3, #0 - 8007e08: bf48 it mi - 8007e0a: f442 4280 orrmi.w r2, r2, #16384 ; 0x4000 - 8007e0e: 4619 mov r1, r3 - 8007e10: 4628 mov r0, r5 - 8007e12: f7ff fd1b bl 800784c <_Unwind_VRS_Pop> - 8007e16: 2800 cmp r0, #0 - 8007e18: f43f af61 beq.w 8007cde <__gnu_unwind_execute+0xe> - 8007e1c: e785 b.n 8007d2a <__gnu_unwind_execute+0x5a> - 8007e1e: 28c6 cmp r0, #198 ; 0xc6 - 8007e20: d051 beq.n 8007ec6 <__gnu_unwind_execute+0x1f6> - 8007e22: 28c7 cmp r0, #199 ; 0xc7 - 8007e24: d05a beq.n 8007edc <__gnu_unwind_execute+0x20c> - 8007e26: f000 03f8 and.w r3, r0, #248 ; 0xf8 - 8007e2a: 2bc0 cmp r3, #192 ; 0xc0 - 8007e2c: d069 beq.n 8007f02 <__gnu_unwind_execute+0x232> - 8007e2e: 28c8 cmp r0, #200 ; 0xc8 - 8007e30: d075 beq.n 8007f1e <__gnu_unwind_execute+0x24e> - 8007e32: 28c9 cmp r0, #201 ; 0xc9 - 8007e34: f47f af79 bne.w 8007d2a <__gnu_unwind_execute+0x5a> - 8007e38: 4630 mov r0, r6 - 8007e3a: f7ff ff1d bl 8007c78 - 8007e3e: 0302 lsls r2, r0, #12 - 8007e40: f000 000f and.w r0, r0, #15 - 8007e44: f402 2270 and.w r2, r2, #983040 ; 0xf0000 - 8007e48: 3001 adds r0, #1 - 8007e4a: 4302 orrs r2, r0 - 8007e4c: e766 b.n 8007d1c <__gnu_unwind_execute+0x4c> - 8007e4e: f1b8 0f00 cmp.w r8, #0 - 8007e52: d014 beq.n 8007e7e <__gnu_unwind_execute+0x1ae> - 8007e54: 2000 movs r0, #0 - 8007e56: e769 b.n 8007d2c <__gnu_unwind_execute+0x5c> - 8007e58: 4630 mov r0, r6 - 8007e5a: f7ff ff0d bl 8007c78 - 8007e5e: 2800 cmp r0, #0 - 8007e60: f43f af63 beq.w 8007d2a <__gnu_unwind_execute+0x5a> - 8007e64: f010 03f0 ands.w r3, r0, #240 ; 0xf0 - 8007e68: f47f af5f bne.w 8007d2a <__gnu_unwind_execute+0x5a> - 8007e6c: 4602 mov r2, r0 - 8007e6e: 4619 mov r1, r3 - 8007e70: 4628 mov r0, r5 - 8007e72: f7ff fceb bl 800784c <_Unwind_VRS_Pop> - 8007e76: 2800 cmp r0, #0 - 8007e78: f43f af31 beq.w 8007cde <__gnu_unwind_execute+0xe> - 8007e7c: e755 b.n 8007d2a <__gnu_unwind_execute+0x5a> - 8007e7e: ac03 add r4, sp, #12 - 8007e80: 4643 mov r3, r8 - 8007e82: 220e movs r2, #14 - 8007e84: 4641 mov r1, r8 - 8007e86: 9400 str r4, [sp, #0] - 8007e88: 4628 mov r0, r5 - 8007e8a: f7ff faf1 bl 8007470 <_Unwind_VRS_Get> - 8007e8e: 9400 str r4, [sp, #0] - 8007e90: 4628 mov r0, r5 - 8007e92: 4643 mov r3, r8 - 8007e94: 220f movs r2, #15 - 8007e96: 4641 mov r1, r8 - 8007e98: f7ff fb0c bl 80074b4 <_Unwind_VRS_Set> - 8007e9c: 4640 mov r0, r8 - 8007e9e: e745 b.n 8007d2c <__gnu_unwind_execute+0x5c> - 8007ea0: 4630 mov r0, r6 - 8007ea2: f7ff fee9 bl 8007c78 - 8007ea6: 0301 lsls r1, r0, #12 - 8007ea8: f000 000f and.w r0, r0, #15 - 8007eac: f401 2170 and.w r1, r1, #983040 ; 0xf0000 - 8007eb0: 1c42 adds r2, r0, #1 - 8007eb2: 2301 movs r3, #1 - 8007eb4: 430a orrs r2, r1 - 8007eb6: 4628 mov r0, r5 - 8007eb8: 4619 mov r1, r3 - 8007eba: f7ff fcc7 bl 800784c <_Unwind_VRS_Pop> - 8007ebe: 2800 cmp r0, #0 - 8007ec0: f43f af0d beq.w 8007cde <__gnu_unwind_execute+0xe> - 8007ec4: e731 b.n 8007d2a <__gnu_unwind_execute+0x5a> - 8007ec6: 4630 mov r0, r6 - 8007ec8: f7ff fed6 bl 8007c78 - 8007ecc: 0301 lsls r1, r0, #12 - 8007ece: f000 000f and.w r0, r0, #15 - 8007ed2: f401 2170 and.w r1, r1, #983040 ; 0xf0000 - 8007ed6: 1c42 adds r2, r0, #1 - 8007ed8: 2303 movs r3, #3 - 8007eda: e7eb b.n 8007eb4 <__gnu_unwind_execute+0x1e4> - 8007edc: 4630 mov r0, r6 - 8007ede: f7ff fecb bl 8007c78 - 8007ee2: 4602 mov r2, r0 - 8007ee4: 2800 cmp r0, #0 - 8007ee6: f43f af20 beq.w 8007d2a <__gnu_unwind_execute+0x5a> - 8007eea: f010 03f0 ands.w r3, r0, #240 ; 0xf0 - 8007eee: f47f af1c bne.w 8007d2a <__gnu_unwind_execute+0x5a> - 8007ef2: 2104 movs r1, #4 - 8007ef4: 4628 mov r0, r5 - 8007ef6: f7ff fca9 bl 800784c <_Unwind_VRS_Pop> - 8007efa: 2800 cmp r0, #0 - 8007efc: f43f aeef beq.w 8007cde <__gnu_unwind_execute+0xe> - 8007f00: e713 b.n 8007d2a <__gnu_unwind_execute+0x5a> - 8007f02: f000 020f and.w r2, r0, #15 - 8007f06: 3201 adds r2, #1 - 8007f08: 2303 movs r3, #3 - 8007f0a: f442 2220 orr.w r2, r2, #655360 ; 0xa0000 - 8007f0e: 4619 mov r1, r3 - 8007f10: 4628 mov r0, r5 - 8007f12: f7ff fc9b bl 800784c <_Unwind_VRS_Pop> - 8007f16: 2800 cmp r0, #0 - 8007f18: f43f aee1 beq.w 8007cde <__gnu_unwind_execute+0xe> - 8007f1c: e705 b.n 8007d2a <__gnu_unwind_execute+0x5a> - 8007f1e: 4630 mov r0, r6 - 8007f20: f7ff feaa bl 8007c78 - 8007f24: f000 02f0 and.w r2, r0, #240 ; 0xf0 - 8007f28: f000 030f and.w r3, r0, #15 - 8007f2c: 3210 adds r2, #16 - 8007f2e: 3301 adds r3, #1 - 8007f30: ea43 3202 orr.w r2, r3, r2, lsl #12 - 8007f34: e6f2 b.n 8007d1c <__gnu_unwind_execute+0x4c> - 8007f36: 2300 movs r3, #0 - 8007f38: f10d 090c add.w r9, sp, #12 - 8007f3c: 220d movs r2, #13 - 8007f3e: 4619 mov r1, r3 - 8007f40: f8cd 9000 str.w r9, [sp] - 8007f44: 4628 mov r0, r5 - 8007f46: f7ff fa93 bl 8007470 <_Unwind_VRS_Get> - 8007f4a: 4630 mov r0, r6 - 8007f4c: f7ff fe94 bl 8007c78 - 8007f50: 0602 lsls r2, r0, #24 - 8007f52: f04f 0702 mov.w r7, #2 - 8007f56: d50c bpl.n 8007f72 <__gnu_unwind_execute+0x2a2> - 8007f58: 9b03 ldr r3, [sp, #12] - 8007f5a: f000 007f and.w r0, r0, #127 ; 0x7f - 8007f5e: 40b8 lsls r0, r7 - 8007f60: 4403 add r3, r0 - 8007f62: 4630 mov r0, r6 - 8007f64: 9303 str r3, [sp, #12] - 8007f66: f7ff fe87 bl 8007c78 - 8007f6a: 0603 lsls r3, r0, #24 - 8007f6c: f107 0707 add.w r7, r7, #7 - 8007f70: d4f2 bmi.n 8007f58 <__gnu_unwind_execute+0x288> - 8007f72: 9b03 ldr r3, [sp, #12] - 8007f74: f8cd 9000 str.w r9, [sp] - 8007f78: f000 047f and.w r4, r0, #127 ; 0x7f - 8007f7c: f503 7201 add.w r2, r3, #516 ; 0x204 - 8007f80: 40bc lsls r4, r7 - 8007f82: 2300 movs r3, #0 - 8007f84: 4414 add r4, r2 - 8007f86: 4619 mov r1, r3 - 8007f88: 220d movs r2, #13 - 8007f8a: 4628 mov r0, r5 - 8007f8c: 9403 str r4, [sp, #12] - 8007f8e: f7ff fa91 bl 80074b4 <_Unwind_VRS_Set> - 8007f92: e6a4 b.n 8007cde <__gnu_unwind_execute+0xe> - -08007f94 <__gnu_unwind_frame>: - 8007f94: b510 push {r4, lr} - 8007f96: 6cc3 ldr r3, [r0, #76] ; 0x4c - 8007f98: b084 sub sp, #16 - 8007f9a: 685a ldr r2, [r3, #4] - 8007f9c: 2003 movs r0, #3 - 8007f9e: f88d 000c strb.w r0, [sp, #12] - 8007fa2: 79dc ldrb r4, [r3, #7] - 8007fa4: f88d 400d strb.w r4, [sp, #13] - 8007fa8: 0212 lsls r2, r2, #8 - 8007faa: 3308 adds r3, #8 - 8007fac: 4608 mov r0, r1 - 8007fae: a901 add r1, sp, #4 - 8007fb0: 9201 str r2, [sp, #4] - 8007fb2: 9302 str r3, [sp, #8] - 8007fb4: f7ff fe8c bl 8007cd0 <__gnu_unwind_execute> - 8007fb8: b004 add sp, #16 - 8007fba: bd10 pop {r4, pc} - -08007fbc <_Unwind_GetRegionStart>: - 8007fbc: b508 push {r3, lr} - 8007fbe: f7ff fe85 bl 8007ccc - 8007fc2: 6c80 ldr r0, [r0, #72] ; 0x48 - 8007fc4: bd08 pop {r3, pc} - 8007fc6: bf00 nop - -08007fc8 <_Unwind_GetLanguageSpecificData>: - 8007fc8: b508 push {r3, lr} - 8007fca: f7ff fe7f bl 8007ccc - 8007fce: 6cc0 ldr r0, [r0, #76] ; 0x4c - 8007fd0: 79c3 ldrb r3, [r0, #7] - 8007fd2: eb00 0083 add.w r0, r0, r3, lsl #2 - 8007fd6: 3008 adds r0, #8 - 8007fd8: bd08 pop {r3, pc} - 8007fda: bf00 nop - -08007fdc <_Unwind_GetDataRelBase>: - 8007fdc: b508 push {r3, lr} - 8007fde: f005 fd2b bl 800da38 - 8007fe2: bf00 nop - -08007fe4 <_Unwind_GetTextRelBase>: - 8007fe4: b508 push {r3, lr} - 8007fe6: f7ff fff9 bl 8007fdc <_Unwind_GetDataRelBase> - 8007fea: bf00 nop - -08007fec <__aeabi_idiv0>: - 8007fec: 4770 bx lr - 8007fee: bf00 nop - -08007ff0 : - * need to ensure that the SysTick time base is always set to 1 millisecond - * to have correct HAL operation. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_Init(void) -{ - 8007ff0: b580 push {r7, lr} - 8007ff2: af00 add r7, sp, #0 -#if (PREFETCH_ENABLE != 0U) - __HAL_FLASH_PREFETCH_BUFFER_ENABLE(); -#endif /* PREFETCH_ENABLE */ - - /* Set Interrupt Group Priority */ - HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); - 8007ff4: 2003 movs r0, #3 - 8007ff6: f000 f92d bl 8008254 - - /* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */ - HAL_InitTick(TICK_INT_PRIORITY); - 8007ffa: 2000 movs r0, #0 - 8007ffc: f000 f806 bl 800800c - - /* Init the low level hardware */ - HAL_MspInit(); - 8008000: f004 fab8 bl 800c574 - - /* Return function status */ - return HAL_OK; - 8008004: 2300 movs r3, #0 -} - 8008006: 4618 mov r0, r3 - 8008008: bd80 pop {r7, pc} - ... - -0800800c : - * implementation in user file. - * @param TickPriority Tick interrupt priority. - * @retval HAL status - */ -__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) -{ - 800800c: b580 push {r7, lr} - 800800e: b082 sub sp, #8 - 8008010: af00 add r7, sp, #0 - 8008012: 6078 str r0, [r7, #4] - /* Configure the SysTick to have interrupt in 1ms time basis*/ - if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U) - 8008014: 4b12 ldr r3, [pc, #72] ; (8008060 ) - 8008016: 681a ldr r2, [r3, #0] - 8008018: 4b12 ldr r3, [pc, #72] ; (8008064 ) - 800801a: 781b ldrb r3, [r3, #0] - 800801c: 4619 mov r1, r3 - 800801e: f44f 737a mov.w r3, #1000 ; 0x3e8 - 8008022: fbb3 f3f1 udiv r3, r3, r1 - 8008026: fbb2 f3f3 udiv r3, r2, r3 - 800802a: 4618 mov r0, r3 - 800802c: f000 f939 bl 80082a2 - 8008030: 4603 mov r3, r0 - 8008032: 2b00 cmp r3, #0 - 8008034: d001 beq.n 800803a - { - return HAL_ERROR; - 8008036: 2301 movs r3, #1 - 8008038: e00e b.n 8008058 - } - - /* Configure the SysTick IRQ priority */ - if (TickPriority < (1UL << __NVIC_PRIO_BITS)) - 800803a: 687b ldr r3, [r7, #4] - 800803c: 2b0f cmp r3, #15 - 800803e: d80a bhi.n 8008056 - { - HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U); - 8008040: 2200 movs r2, #0 - 8008042: 6879 ldr r1, [r7, #4] - 8008044: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 8008048: f000 f90f bl 800826a - uwTickPrio = TickPriority; - 800804c: 4a06 ldr r2, [pc, #24] ; (8008068 ) - 800804e: 687b ldr r3, [r7, #4] - 8008050: 6013 str r3, [r2, #0] - { - return HAL_ERROR; - } - - /* Return function status */ - return HAL_OK; - 8008052: 2300 movs r3, #0 - 8008054: e000 b.n 8008058 - return HAL_ERROR; - 8008056: 2301 movs r3, #1 -} - 8008058: 4618 mov r0, r3 - 800805a: 3708 adds r7, #8 - 800805c: 46bd mov sp, r7 - 800805e: bd80 pop {r7, pc} - 8008060: 20000008 .word 0x20000008 - 8008064: 20000004 .word 0x20000004 - 8008068: 20000000 .word 0x20000000 - -0800806c : - * @note This function is declared as __weak to be overwritten in case of other - * implementations in user file. - * @retval None - */ -__weak void HAL_IncTick(void) -{ - 800806c: b480 push {r7} - 800806e: af00 add r7, sp, #0 - uwTick += uwTickFreq; - 8008070: 4b06 ldr r3, [pc, #24] ; (800808c ) - 8008072: 781b ldrb r3, [r3, #0] - 8008074: 461a mov r2, r3 - 8008076: 4b06 ldr r3, [pc, #24] ; (8008090 ) - 8008078: 681b ldr r3, [r3, #0] - 800807a: 4413 add r3, r2 - 800807c: 4a04 ldr r2, [pc, #16] ; (8008090 ) - 800807e: 6013 str r3, [r2, #0] -} - 8008080: bf00 nop - 8008082: 46bd mov sp, r7 - 8008084: f85d 7b04 ldr.w r7, [sp], #4 - 8008088: 4770 bx lr - 800808a: bf00 nop - 800808c: 20000004 .word 0x20000004 - 8008090: 20000af8 .word 0x20000af8 - -08008094 : - * @note This function is declared as __weak to be overwritten in case of other - * implementations in user file. - * @retval tick value - */ -__weak uint32_t HAL_GetTick(void) -{ - 8008094: b480 push {r7} - 8008096: af00 add r7, sp, #0 - return uwTick; - 8008098: 4b03 ldr r3, [pc, #12] ; (80080a8 ) - 800809a: 681b ldr r3, [r3, #0] -} - 800809c: 4618 mov r0, r3 - 800809e: 46bd mov sp, r7 - 80080a0: f85d 7b04 ldr.w r7, [sp], #4 - 80080a4: 4770 bx lr - 80080a6: bf00 nop - 80080a8: 20000af8 .word 0x20000af8 - -080080ac : - * implementations in user file. - * @param Delay specifies the delay time length, in milliseconds. - * @retval None - */ -__weak void HAL_Delay(uint32_t Delay) -{ - 80080ac: b580 push {r7, lr} - 80080ae: b084 sub sp, #16 - 80080b0: af00 add r7, sp, #0 - 80080b2: 6078 str r0, [r7, #4] - uint32_t tickstart = HAL_GetTick(); - 80080b4: f7ff ffee bl 8008094 - 80080b8: 60b8 str r0, [r7, #8] - uint32_t wait = Delay; - 80080ba: 687b ldr r3, [r7, #4] - 80080bc: 60fb str r3, [r7, #12] - - /* Add a freq to guarantee minimum wait */ - if (wait < HAL_MAX_DELAY) - 80080be: 68fb ldr r3, [r7, #12] - 80080c0: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 80080c4: d005 beq.n 80080d2 - { - wait += (uint32_t)(uwTickFreq); - 80080c6: 4b09 ldr r3, [pc, #36] ; (80080ec ) - 80080c8: 781b ldrb r3, [r3, #0] - 80080ca: 461a mov r2, r3 - 80080cc: 68fb ldr r3, [r7, #12] - 80080ce: 4413 add r3, r2 - 80080d0: 60fb str r3, [r7, #12] - } - - while ((HAL_GetTick() - tickstart) < wait) - 80080d2: bf00 nop - 80080d4: f7ff ffde bl 8008094 - 80080d8: 4602 mov r2, r0 - 80080da: 68bb ldr r3, [r7, #8] - 80080dc: 1ad3 subs r3, r2, r3 - 80080de: 68fa ldr r2, [r7, #12] - 80080e0: 429a cmp r2, r3 - 80080e2: d8f7 bhi.n 80080d4 - { - } -} - 80080e4: bf00 nop - 80080e6: 3710 adds r7, #16 - 80080e8: 46bd mov sp, r7 - 80080ea: bd80 pop {r7, pc} - 80080ec: 20000004 .word 0x20000004 - -080080f0 <__NVIC_SetPriorityGrouping>: - In case of a conflict between priority grouping and available - priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set. - \param [in] PriorityGroup Priority grouping field. - */ -__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - 80080f0: b480 push {r7} - 80080f2: b085 sub sp, #20 - 80080f4: af00 add r7, sp, #0 - 80080f6: 6078 str r0, [r7, #4] - uint32_t reg_value; - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 80080f8: 687b ldr r3, [r7, #4] - 80080fa: f003 0307 and.w r3, r3, #7 - 80080fe: 60fb str r3, [r7, #12] - - reg_value = SCB->AIRCR; /* read old register configuration */ - 8008100: 4b0b ldr r3, [pc, #44] ; (8008130 <__NVIC_SetPriorityGrouping+0x40>) - 8008102: 68db ldr r3, [r3, #12] - 8008104: 60bb str r3, [r7, #8] - reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */ - 8008106: 68ba ldr r2, [r7, #8] - 8008108: f64f 03ff movw r3, #63743 ; 0xf8ff - 800810c: 4013 ands r3, r2 - 800810e: 60bb str r3, [r7, #8] - reg_value = (reg_value | - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - (PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */ - 8008110: 68fb ldr r3, [r7, #12] - 8008112: 021a lsls r2, r3, #8 - ((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | - 8008114: 68bb ldr r3, [r7, #8] - 8008116: 431a orrs r2, r3 - reg_value = (reg_value | - 8008118: 4b06 ldr r3, [pc, #24] ; (8008134 <__NVIC_SetPriorityGrouping+0x44>) - 800811a: 4313 orrs r3, r2 - 800811c: 60bb str r3, [r7, #8] - SCB->AIRCR = reg_value; - 800811e: 4a04 ldr r2, [pc, #16] ; (8008130 <__NVIC_SetPriorityGrouping+0x40>) - 8008120: 68bb ldr r3, [r7, #8] - 8008122: 60d3 str r3, [r2, #12] -} - 8008124: bf00 nop - 8008126: 3714 adds r7, #20 - 8008128: 46bd mov sp, r7 - 800812a: f85d 7b04 ldr.w r7, [sp], #4 - 800812e: 4770 bx lr - 8008130: e000ed00 .word 0xe000ed00 - 8008134: 05fa0000 .word 0x05fa0000 - -08008138 <__NVIC_GetPriorityGrouping>: - \brief Get Priority Grouping - \details Reads the priority grouping field from the NVIC Interrupt Controller. - \return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field). - */ -__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) -{ - 8008138: b480 push {r7} - 800813a: af00 add r7, sp, #0 - return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos)); - 800813c: 4b04 ldr r3, [pc, #16] ; (8008150 <__NVIC_GetPriorityGrouping+0x18>) - 800813e: 68db ldr r3, [r3, #12] - 8008140: 0a1b lsrs r3, r3, #8 - 8008142: f003 0307 and.w r3, r3, #7 -} - 8008146: 4618 mov r0, r3 - 8008148: 46bd mov sp, r7 - 800814a: f85d 7b04 ldr.w r7, [sp], #4 - 800814e: 4770 bx lr - 8008150: e000ed00 .word 0xe000ed00 - -08008154 <__NVIC_SetPriority>: - \param [in] IRQn Interrupt number. - \param [in] priority Priority to set. - \note The priority cannot be set for every processor exception. - */ -__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) -{ - 8008154: b480 push {r7} - 8008156: b083 sub sp, #12 - 8008158: af00 add r7, sp, #0 - 800815a: 4603 mov r3, r0 - 800815c: 6039 str r1, [r7, #0] - 800815e: 71fb strb r3, [r7, #7] - if ((int32_t)(IRQn) >= 0) - 8008160: f997 3007 ldrsb.w r3, [r7, #7] - 8008164: 2b00 cmp r3, #0 - 8008166: db0a blt.n 800817e <__NVIC_SetPriority+0x2a> - { - NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 8008168: 683b ldr r3, [r7, #0] - 800816a: b2da uxtb r2, r3 - 800816c: 490c ldr r1, [pc, #48] ; (80081a0 <__NVIC_SetPriority+0x4c>) - 800816e: f997 3007 ldrsb.w r3, [r7, #7] - 8008172: 0112 lsls r2, r2, #4 - 8008174: b2d2 uxtb r2, r2 - 8008176: 440b add r3, r1 - 8008178: f883 2300 strb.w r2, [r3, #768] ; 0x300 - } - else - { - SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - } -} - 800817c: e00a b.n 8008194 <__NVIC_SetPriority+0x40> - SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL); - 800817e: 683b ldr r3, [r7, #0] - 8008180: b2da uxtb r2, r3 - 8008182: 4908 ldr r1, [pc, #32] ; (80081a4 <__NVIC_SetPriority+0x50>) - 8008184: 79fb ldrb r3, [r7, #7] - 8008186: f003 030f and.w r3, r3, #15 - 800818a: 3b04 subs r3, #4 - 800818c: 0112 lsls r2, r2, #4 - 800818e: b2d2 uxtb r2, r2 - 8008190: 440b add r3, r1 - 8008192: 761a strb r2, [r3, #24] -} - 8008194: bf00 nop - 8008196: 370c adds r7, #12 - 8008198: 46bd mov sp, r7 - 800819a: f85d 7b04 ldr.w r7, [sp], #4 - 800819e: 4770 bx lr - 80081a0: e000e100 .word 0xe000e100 - 80081a4: e000ed00 .word 0xe000ed00 - -080081a8 : - \param [in] PreemptPriority Preemptive priority value (starting from 0). - \param [in] SubPriority Subpriority value (starting from 0). - \return Encoded priority. Value can be used in the function \ref NVIC_SetPriority(). - */ -__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) -{ - 80081a8: b480 push {r7} - 80081aa: b089 sub sp, #36 ; 0x24 - 80081ac: af00 add r7, sp, #0 - 80081ae: 60f8 str r0, [r7, #12] - 80081b0: 60b9 str r1, [r7, #8] - 80081b2: 607a str r2, [r7, #4] - uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */ - 80081b4: 68fb ldr r3, [r7, #12] - 80081b6: f003 0307 and.w r3, r3, #7 - 80081ba: 61fb str r3, [r7, #28] - uint32_t PreemptPriorityBits; - uint32_t SubPriorityBits; - - PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp); - 80081bc: 69fb ldr r3, [r7, #28] - 80081be: f1c3 0307 rsb r3, r3, #7 - 80081c2: 2b04 cmp r3, #4 - 80081c4: bf28 it cs - 80081c6: 2304 movcs r3, #4 - 80081c8: 61bb str r3, [r7, #24] - SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS)); - 80081ca: 69fb ldr r3, [r7, #28] - 80081cc: 3304 adds r3, #4 - 80081ce: 2b06 cmp r3, #6 - 80081d0: d902 bls.n 80081d8 - 80081d2: 69fb ldr r3, [r7, #28] - 80081d4: 3b03 subs r3, #3 - 80081d6: e000 b.n 80081da - 80081d8: 2300 movs r3, #0 - 80081da: 617b str r3, [r7, #20] - - return ( - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 80081dc: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 80081e0: 69bb ldr r3, [r7, #24] - 80081e2: fa02 f303 lsl.w r3, r2, r3 - 80081e6: 43da mvns r2, r3 - 80081e8: 68bb ldr r3, [r7, #8] - 80081ea: 401a ands r2, r3 - 80081ec: 697b ldr r3, [r7, #20] - 80081ee: 409a lsls r2, r3 - ((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL))) - 80081f0: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff - 80081f4: 697b ldr r3, [r7, #20] - 80081f6: fa01 f303 lsl.w r3, r1, r3 - 80081fa: 43d9 mvns r1, r3 - 80081fc: 687b ldr r3, [r7, #4] - 80081fe: 400b ands r3, r1 - ((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) | - 8008200: 4313 orrs r3, r2 - ); -} - 8008202: 4618 mov r0, r3 - 8008204: 3724 adds r7, #36 ; 0x24 - 8008206: 46bd mov sp, r7 - 8008208: f85d 7b04 ldr.w r7, [sp], #4 - 800820c: 4770 bx lr - ... - -08008210 : - \note When the variable __Vendor_SysTickConfig is set to 1, then the - function SysTick_Config is not included. In this case, the file device.h - must contain a vendor-specific implementation of this function. - */ -__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) -{ - 8008210: b580 push {r7, lr} - 8008212: b082 sub sp, #8 - 8008214: af00 add r7, sp, #0 - 8008216: 6078 str r0, [r7, #4] - if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) - 8008218: 687b ldr r3, [r7, #4] - 800821a: 3b01 subs r3, #1 - 800821c: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000 - 8008220: d301 bcc.n 8008226 - { - return (1UL); /* Reload value impossible */ - 8008222: 2301 movs r3, #1 - 8008224: e00f b.n 8008246 - } - - SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ - 8008226: 4a0a ldr r2, [pc, #40] ; (8008250 ) - 8008228: 687b ldr r3, [r7, #4] - 800822a: 3b01 subs r3, #1 - 800822c: 6053 str r3, [r2, #4] - NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ - 800822e: 210f movs r1, #15 - 8008230: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 8008234: f7ff ff8e bl 8008154 <__NVIC_SetPriority> - SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ - 8008238: 4b05 ldr r3, [pc, #20] ; (8008250 ) - 800823a: 2200 movs r2, #0 - 800823c: 609a str r2, [r3, #8] - SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | - 800823e: 4b04 ldr r3, [pc, #16] ; (8008250 ) - 8008240: 2207 movs r2, #7 - 8008242: 601a str r2, [r3, #0] - SysTick_CTRL_TICKINT_Msk | - SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ - return (0UL); /* Function successful */ - 8008244: 2300 movs r3, #0 -} - 8008246: 4618 mov r0, r3 - 8008248: 3708 adds r7, #8 - 800824a: 46bd mov sp, r7 - 800824c: bd80 pop {r7, pc} - 800824e: bf00 nop - 8008250: e000e010 .word 0xe000e010 - -08008254 : - * @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible. - * The pending IRQ priority will be managed only by the subpriority. - * @retval None - */ -void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) -{ - 8008254: b580 push {r7, lr} - 8008256: b082 sub sp, #8 - 8008258: af00 add r7, sp, #0 - 800825a: 6078 str r0, [r7, #4] - /* Check the parameters */ - assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup)); - - /* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */ - NVIC_SetPriorityGrouping(PriorityGroup); - 800825c: 6878 ldr r0, [r7, #4] - 800825e: f7ff ff47 bl 80080f0 <__NVIC_SetPriorityGrouping> -} - 8008262: bf00 nop - 8008264: 3708 adds r7, #8 - 8008266: 46bd mov sp, r7 - 8008268: bd80 pop {r7, pc} - -0800826a : - * This parameter can be a value between 0 and 15 - * A lower priority value indicates a higher priority. - * @retval None - */ -void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority) -{ - 800826a: b580 push {r7, lr} - 800826c: b086 sub sp, #24 - 800826e: af00 add r7, sp, #0 - 8008270: 4603 mov r3, r0 - 8008272: 60b9 str r1, [r7, #8] - 8008274: 607a str r2, [r7, #4] - 8008276: 73fb strb r3, [r7, #15] - uint32_t prioritygroup = 0x00; - 8008278: 2300 movs r3, #0 - 800827a: 617b str r3, [r7, #20] - - /* Check the parameters */ - assert_param(IS_NVIC_SUB_PRIORITY(SubPriority)); - assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority)); - - prioritygroup = NVIC_GetPriorityGrouping(); - 800827c: f7ff ff5c bl 8008138 <__NVIC_GetPriorityGrouping> - 8008280: 6178 str r0, [r7, #20] - - NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority)); - 8008282: 687a ldr r2, [r7, #4] - 8008284: 68b9 ldr r1, [r7, #8] - 8008286: 6978 ldr r0, [r7, #20] - 8008288: f7ff ff8e bl 80081a8 - 800828c: 4602 mov r2, r0 - 800828e: f997 300f ldrsb.w r3, [r7, #15] - 8008292: 4611 mov r1, r2 - 8008294: 4618 mov r0, r3 - 8008296: f7ff ff5d bl 8008154 <__NVIC_SetPriority> -} - 800829a: bf00 nop - 800829c: 3718 adds r7, #24 - 800829e: 46bd mov sp, r7 - 80082a0: bd80 pop {r7, pc} - -080082a2 : - * @param TicksNumb Specifies the ticks Number of ticks between two interrupts. - * @retval status: - 0 Function succeeded. - * - 1 Function failed. - */ -uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) -{ - 80082a2: b580 push {r7, lr} - 80082a4: b082 sub sp, #8 - 80082a6: af00 add r7, sp, #0 - 80082a8: 6078 str r0, [r7, #4] - return SysTick_Config(TicksNumb); - 80082aa: 6878 ldr r0, [r7, #4] - 80082ac: f7ff ffb0 bl 8008210 - 80082b0: 4603 mov r3, r0 -} - 80082b2: 4618 mov r0, r3 - 80082b4: 3708 adds r7, #8 - 80082b6: 46bd mov sp, r7 - 80082b8: bd80 pop {r7, pc} - -080082ba : - * @param DstAddress The destination memory Buffer address - * @param DataLength The length of data to be transferred from source to destination - * @retval HAL status - */ -HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength) -{ - 80082ba: b580 push {r7, lr} - 80082bc: b086 sub sp, #24 - 80082be: af00 add r7, sp, #0 - 80082c0: 60f8 str r0, [r7, #12] - 80082c2: 60b9 str r1, [r7, #8] - 80082c4: 607a str r2, [r7, #4] - 80082c6: 603b str r3, [r7, #0] - HAL_StatusTypeDef status = HAL_OK; - 80082c8: 2300 movs r3, #0 - 80082ca: 75fb strb r3, [r7, #23] - - /* calculate DMA base and stream number */ - DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; - 80082cc: 68fb ldr r3, [r7, #12] - 80082ce: 6d9b ldr r3, [r3, #88] ; 0x58 - 80082d0: 613b str r3, [r7, #16] - - /* Check the parameters */ - assert_param(IS_DMA_BUFFER_SIZE(DataLength)); - - /* Process locked */ - __HAL_LOCK(hdma); - 80082d2: 68fb ldr r3, [r7, #12] - 80082d4: f893 3034 ldrb.w r3, [r3, #52] ; 0x34 - 80082d8: 2b01 cmp r3, #1 - 80082da: d101 bne.n 80082e0 - 80082dc: 2302 movs r3, #2 - 80082de: e048 b.n 8008372 - 80082e0: 68fb ldr r3, [r7, #12] - 80082e2: 2201 movs r2, #1 - 80082e4: f883 2034 strb.w r2, [r3, #52] ; 0x34 - - if(HAL_DMA_STATE_READY == hdma->State) - 80082e8: 68fb ldr r3, [r7, #12] - 80082ea: f893 3035 ldrb.w r3, [r3, #53] ; 0x35 - 80082ee: b2db uxtb r3, r3 - 80082f0: 2b01 cmp r3, #1 - 80082f2: d137 bne.n 8008364 - { - /* Change DMA peripheral state */ - hdma->State = HAL_DMA_STATE_BUSY; - 80082f4: 68fb ldr r3, [r7, #12] - 80082f6: 2202 movs r2, #2 - 80082f8: f883 2035 strb.w r2, [r3, #53] ; 0x35 - - /* Initialize the error code */ - hdma->ErrorCode = HAL_DMA_ERROR_NONE; - 80082fc: 68fb ldr r3, [r7, #12] - 80082fe: 2200 movs r2, #0 - 8008300: 655a str r2, [r3, #84] ; 0x54 - - /* Configure the source, destination address and the data length */ - DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength); - 8008302: 683b ldr r3, [r7, #0] - 8008304: 687a ldr r2, [r7, #4] - 8008306: 68b9 ldr r1, [r7, #8] - 8008308: 68f8 ldr r0, [r7, #12] - 800830a: f000 f836 bl 800837a - - /* Clear all interrupt flags at correct offset within the register */ - regs->IFCR = 0x3FU << hdma->StreamIndex; - 800830e: 68fb ldr r3, [r7, #12] - 8008310: 6ddb ldr r3, [r3, #92] ; 0x5c - 8008312: 223f movs r2, #63 ; 0x3f - 8008314: 409a lsls r2, r3 - 8008316: 693b ldr r3, [r7, #16] - 8008318: 609a str r2, [r3, #8] - - /* Enable Common interrupts*/ - hdma->Instance->CR |= DMA_IT_TC | DMA_IT_TE | DMA_IT_DME; - 800831a: 68fb ldr r3, [r7, #12] - 800831c: 681b ldr r3, [r3, #0] - 800831e: 681a ldr r2, [r3, #0] - 8008320: 68fb ldr r3, [r7, #12] - 8008322: 681b ldr r3, [r3, #0] - 8008324: f042 0216 orr.w r2, r2, #22 - 8008328: 601a str r2, [r3, #0] - hdma->Instance->FCR |= DMA_IT_FE; - 800832a: 68fb ldr r3, [r7, #12] - 800832c: 681b ldr r3, [r3, #0] - 800832e: 695a ldr r2, [r3, #20] - 8008330: 68fb ldr r3, [r7, #12] - 8008332: 681b ldr r3, [r3, #0] - 8008334: f042 0280 orr.w r2, r2, #128 ; 0x80 - 8008338: 615a str r2, [r3, #20] - - if(hdma->XferHalfCpltCallback != NULL) - 800833a: 68fb ldr r3, [r7, #12] - 800833c: 6c1b ldr r3, [r3, #64] ; 0x40 - 800833e: 2b00 cmp r3, #0 - 8008340: d007 beq.n 8008352 - { - hdma->Instance->CR |= DMA_IT_HT; - 8008342: 68fb ldr r3, [r7, #12] - 8008344: 681b ldr r3, [r3, #0] - 8008346: 681a ldr r2, [r3, #0] - 8008348: 68fb ldr r3, [r7, #12] - 800834a: 681b ldr r3, [r3, #0] - 800834c: f042 0208 orr.w r2, r2, #8 - 8008350: 601a str r2, [r3, #0] - } - - /* Enable the Peripheral */ - __HAL_DMA_ENABLE(hdma); - 8008352: 68fb ldr r3, [r7, #12] - 8008354: 681b ldr r3, [r3, #0] - 8008356: 681a ldr r2, [r3, #0] - 8008358: 68fb ldr r3, [r7, #12] - 800835a: 681b ldr r3, [r3, #0] - 800835c: f042 0201 orr.w r2, r2, #1 - 8008360: 601a str r2, [r3, #0] - 8008362: e005 b.n 8008370 - } - else - { - /* Process unlocked */ - __HAL_UNLOCK(hdma); - 8008364: 68fb ldr r3, [r7, #12] - 8008366: 2200 movs r2, #0 - 8008368: f883 2034 strb.w r2, [r3, #52] ; 0x34 - - /* Return error status */ - status = HAL_BUSY; - 800836c: 2302 movs r3, #2 - 800836e: 75fb strb r3, [r7, #23] - } - - return status; - 8008370: 7dfb ldrb r3, [r7, #23] -} - 8008372: 4618 mov r0, r3 - 8008374: 3718 adds r7, #24 - 8008376: 46bd mov sp, r7 - 8008378: bd80 pop {r7, pc} - -0800837a : - * @param DstAddress The destination memory Buffer address - * @param DataLength The length of data to be transferred from source to destination - * @retval HAL status - */ -static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength) -{ - 800837a: b480 push {r7} - 800837c: b085 sub sp, #20 - 800837e: af00 add r7, sp, #0 - 8008380: 60f8 str r0, [r7, #12] - 8008382: 60b9 str r1, [r7, #8] - 8008384: 607a str r2, [r7, #4] - 8008386: 603b str r3, [r7, #0] - /* Clear DBM bit */ - hdma->Instance->CR &= (uint32_t)(~DMA_SxCR_DBM); - 8008388: 68fb ldr r3, [r7, #12] - 800838a: 681b ldr r3, [r3, #0] - 800838c: 681a ldr r2, [r3, #0] - 800838e: 68fb ldr r3, [r7, #12] - 8008390: 681b ldr r3, [r3, #0] - 8008392: f422 2280 bic.w r2, r2, #262144 ; 0x40000 - 8008396: 601a str r2, [r3, #0] - - /* Configure DMA Stream data length */ - hdma->Instance->NDTR = DataLength; - 8008398: 68fb ldr r3, [r7, #12] - 800839a: 681b ldr r3, [r3, #0] - 800839c: 683a ldr r2, [r7, #0] - 800839e: 605a str r2, [r3, #4] - - /* Memory to Peripheral */ - if((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH) - 80083a0: 68fb ldr r3, [r7, #12] - 80083a2: 689b ldr r3, [r3, #8] - 80083a4: 2b40 cmp r3, #64 ; 0x40 - 80083a6: d108 bne.n 80083ba - { - /* Configure DMA Stream destination address */ - hdma->Instance->PAR = DstAddress; - 80083a8: 68fb ldr r3, [r7, #12] - 80083aa: 681b ldr r3, [r3, #0] - 80083ac: 687a ldr r2, [r7, #4] - 80083ae: 609a str r2, [r3, #8] - - /* Configure DMA Stream source address */ - hdma->Instance->M0AR = SrcAddress; - 80083b0: 68fb ldr r3, [r7, #12] - 80083b2: 681b ldr r3, [r3, #0] - 80083b4: 68ba ldr r2, [r7, #8] - 80083b6: 60da str r2, [r3, #12] - hdma->Instance->PAR = SrcAddress; - - /* Configure DMA Stream destination address */ - hdma->Instance->M0AR = DstAddress; - } -} - 80083b8: e007 b.n 80083ca - hdma->Instance->PAR = SrcAddress; - 80083ba: 68fb ldr r3, [r7, #12] - 80083bc: 681b ldr r3, [r3, #0] - 80083be: 68ba ldr r2, [r7, #8] - 80083c0: 609a str r2, [r3, #8] - hdma->Instance->M0AR = DstAddress; - 80083c2: 68fb ldr r3, [r7, #12] - 80083c4: 681b ldr r3, [r3, #0] - 80083c6: 687a ldr r2, [r7, #4] - 80083c8: 60da str r2, [r3, #12] -} - 80083ca: bf00 nop - 80083cc: 3714 adds r7, #20 - 80083ce: 46bd mov sp, r7 - 80083d0: f85d 7b04 ldr.w r7, [sp], #4 - 80083d4: 4770 bx lr - ... - -080083d8 : - * @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains - * the configuration information for the specified GPIO peripheral. - * @retval None - */ -void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) -{ - 80083d8: b480 push {r7} - 80083da: b089 sub sp, #36 ; 0x24 - 80083dc: af00 add r7, sp, #0 - 80083de: 6078 str r0, [r7, #4] - 80083e0: 6039 str r1, [r7, #0] - uint32_t position = 0x00; - 80083e2: 2300 movs r3, #0 - 80083e4: 61fb str r3, [r7, #28] - uint32_t ioposition = 0x00; - 80083e6: 2300 movs r3, #0 - 80083e8: 617b str r3, [r7, #20] - uint32_t iocurrent = 0x00; - 80083ea: 2300 movs r3, #0 - 80083ec: 613b str r3, [r7, #16] - uint32_t temp = 0x00; - 80083ee: 2300 movs r3, #0 - 80083f0: 61bb str r3, [r7, #24] - assert_param(IS_GPIO_PIN(GPIO_Init->Pin)); - assert_param(IS_GPIO_MODE(GPIO_Init->Mode)); - assert_param(IS_GPIO_PULL(GPIO_Init->Pull)); - - /* Configure the port pins */ - for(position = 0; position < GPIO_NUMBER; position++) - 80083f2: 2300 movs r3, #0 - 80083f4: 61fb str r3, [r7, #28] - 80083f6: e175 b.n 80086e4 - { - /* Get the IO position */ - ioposition = ((uint32_t)0x01) << position; - 80083f8: 2201 movs r2, #1 - 80083fa: 69fb ldr r3, [r7, #28] - 80083fc: fa02 f303 lsl.w r3, r2, r3 - 8008400: 617b str r3, [r7, #20] - /* Get the current IO position */ - iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition; - 8008402: 683b ldr r3, [r7, #0] - 8008404: 681b ldr r3, [r3, #0] - 8008406: 697a ldr r2, [r7, #20] - 8008408: 4013 ands r3, r2 - 800840a: 613b str r3, [r7, #16] - - if(iocurrent == ioposition) - 800840c: 693a ldr r2, [r7, #16] - 800840e: 697b ldr r3, [r7, #20] - 8008410: 429a cmp r2, r3 - 8008412: f040 8164 bne.w 80086de - { - /*--------------------- GPIO Mode Configuration ------------------------*/ - /* In case of Alternate function mode selection */ - if((GPIO_Init->Mode == GPIO_MODE_AF_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)) - 8008416: 683b ldr r3, [r7, #0] - 8008418: 685b ldr r3, [r3, #4] - 800841a: 2b02 cmp r3, #2 - 800841c: d003 beq.n 8008426 - 800841e: 683b ldr r3, [r7, #0] - 8008420: 685b ldr r3, [r3, #4] - 8008422: 2b12 cmp r3, #18 - 8008424: d123 bne.n 800846e - { - /* Check the Alternate function parameter */ - assert_param(IS_GPIO_AF(GPIO_Init->Alternate)); - - /* Configure Alternate function mapped with the current IO */ - temp = GPIOx->AFR[position >> 3]; - 8008426: 69fb ldr r3, [r7, #28] - 8008428: 08da lsrs r2, r3, #3 - 800842a: 687b ldr r3, [r7, #4] - 800842c: 3208 adds r2, #8 - 800842e: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 8008432: 61bb str r3, [r7, #24] - temp &= ~((uint32_t)0xF << ((uint32_t)(position & (uint32_t)0x07) * 4)) ; - 8008434: 69fb ldr r3, [r7, #28] - 8008436: f003 0307 and.w r3, r3, #7 - 800843a: 009b lsls r3, r3, #2 - 800843c: 220f movs r2, #15 - 800843e: fa02 f303 lsl.w r3, r2, r3 - 8008442: 43db mvns r3, r3 - 8008444: 69ba ldr r2, [r7, #24] - 8008446: 4013 ands r3, r2 - 8008448: 61bb str r3, [r7, #24] - temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & (uint32_t)0x07) * 4)); - 800844a: 683b ldr r3, [r7, #0] - 800844c: 691a ldr r2, [r3, #16] - 800844e: 69fb ldr r3, [r7, #28] - 8008450: f003 0307 and.w r3, r3, #7 - 8008454: 009b lsls r3, r3, #2 - 8008456: fa02 f303 lsl.w r3, r2, r3 - 800845a: 69ba ldr r2, [r7, #24] - 800845c: 4313 orrs r3, r2 - 800845e: 61bb str r3, [r7, #24] - GPIOx->AFR[position >> 3] = temp; - 8008460: 69fb ldr r3, [r7, #28] - 8008462: 08da lsrs r2, r3, #3 - 8008464: 687b ldr r3, [r7, #4] - 8008466: 3208 adds r2, #8 - 8008468: 69b9 ldr r1, [r7, #24] - 800846a: f843 1022 str.w r1, [r3, r2, lsl #2] - } - - /* Configure IO Direction mode (Input, Output, Alternate or Analog) */ - temp = GPIOx->MODER; - 800846e: 687b ldr r3, [r7, #4] - 8008470: 681b ldr r3, [r3, #0] - 8008472: 61bb str r3, [r7, #24] - temp &= ~(GPIO_MODER_MODER0 << (position * 2)); - 8008474: 69fb ldr r3, [r7, #28] - 8008476: 005b lsls r3, r3, #1 - 8008478: 2203 movs r2, #3 - 800847a: fa02 f303 lsl.w r3, r2, r3 - 800847e: 43db mvns r3, r3 - 8008480: 69ba ldr r2, [r7, #24] - 8008482: 4013 ands r3, r2 - 8008484: 61bb str r3, [r7, #24] - temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2)); - 8008486: 683b ldr r3, [r7, #0] - 8008488: 685b ldr r3, [r3, #4] - 800848a: f003 0203 and.w r2, r3, #3 - 800848e: 69fb ldr r3, [r7, #28] - 8008490: 005b lsls r3, r3, #1 - 8008492: fa02 f303 lsl.w r3, r2, r3 - 8008496: 69ba ldr r2, [r7, #24] - 8008498: 4313 orrs r3, r2 - 800849a: 61bb str r3, [r7, #24] - GPIOx->MODER = temp; - 800849c: 687b ldr r3, [r7, #4] - 800849e: 69ba ldr r2, [r7, #24] - 80084a0: 601a str r2, [r3, #0] - - /* In case of Output or Alternate function mode selection */ - if((GPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_PP) || - 80084a2: 683b ldr r3, [r7, #0] - 80084a4: 685b ldr r3, [r3, #4] - 80084a6: 2b01 cmp r3, #1 - 80084a8: d00b beq.n 80084c2 - 80084aa: 683b ldr r3, [r7, #0] - 80084ac: 685b ldr r3, [r3, #4] - 80084ae: 2b02 cmp r3, #2 - 80084b0: d007 beq.n 80084c2 - (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)) - 80084b2: 683b ldr r3, [r7, #0] - 80084b4: 685b ldr r3, [r3, #4] - if((GPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (GPIO_Init->Mode == GPIO_MODE_AF_PP) || - 80084b6: 2b11 cmp r3, #17 - 80084b8: d003 beq.n 80084c2 - (GPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (GPIO_Init->Mode == GPIO_MODE_AF_OD)) - 80084ba: 683b ldr r3, [r7, #0] - 80084bc: 685b ldr r3, [r3, #4] - 80084be: 2b12 cmp r3, #18 - 80084c0: d130 bne.n 8008524 - { - /* Check the Speed parameter */ - assert_param(IS_GPIO_SPEED(GPIO_Init->Speed)); - /* Configure the IO Speed */ - temp = GPIOx->OSPEEDR; - 80084c2: 687b ldr r3, [r7, #4] - 80084c4: 689b ldr r3, [r3, #8] - 80084c6: 61bb str r3, [r7, #24] - temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2)); - 80084c8: 69fb ldr r3, [r7, #28] - 80084ca: 005b lsls r3, r3, #1 - 80084cc: 2203 movs r2, #3 - 80084ce: fa02 f303 lsl.w r3, r2, r3 - 80084d2: 43db mvns r3, r3 - 80084d4: 69ba ldr r2, [r7, #24] - 80084d6: 4013 ands r3, r2 - 80084d8: 61bb str r3, [r7, #24] - temp |= (GPIO_Init->Speed << (position * 2)); - 80084da: 683b ldr r3, [r7, #0] - 80084dc: 68da ldr r2, [r3, #12] - 80084de: 69fb ldr r3, [r7, #28] - 80084e0: 005b lsls r3, r3, #1 - 80084e2: fa02 f303 lsl.w r3, r2, r3 - 80084e6: 69ba ldr r2, [r7, #24] - 80084e8: 4313 orrs r3, r2 - 80084ea: 61bb str r3, [r7, #24] - GPIOx->OSPEEDR = temp; - 80084ec: 687b ldr r3, [r7, #4] - 80084ee: 69ba ldr r2, [r7, #24] - 80084f0: 609a str r2, [r3, #8] - - /* Configure the IO Output Type */ - temp = GPIOx->OTYPER; - 80084f2: 687b ldr r3, [r7, #4] - 80084f4: 685b ldr r3, [r3, #4] - 80084f6: 61bb str r3, [r7, #24] - temp &= ~(GPIO_OTYPER_OT_0 << position) ; - 80084f8: 2201 movs r2, #1 - 80084fa: 69fb ldr r3, [r7, #28] - 80084fc: fa02 f303 lsl.w r3, r2, r3 - 8008500: 43db mvns r3, r3 - 8008502: 69ba ldr r2, [r7, #24] - 8008504: 4013 ands r3, r2 - 8008506: 61bb str r3, [r7, #24] - temp |= (((GPIO_Init->Mode & GPIO_OUTPUT_TYPE) >> 4) << position); - 8008508: 683b ldr r3, [r7, #0] - 800850a: 685b ldr r3, [r3, #4] - 800850c: 091b lsrs r3, r3, #4 - 800850e: f003 0201 and.w r2, r3, #1 - 8008512: 69fb ldr r3, [r7, #28] - 8008514: fa02 f303 lsl.w r3, r2, r3 - 8008518: 69ba ldr r2, [r7, #24] - 800851a: 4313 orrs r3, r2 - 800851c: 61bb str r3, [r7, #24] - GPIOx->OTYPER = temp; - 800851e: 687b ldr r3, [r7, #4] - 8008520: 69ba ldr r2, [r7, #24] - 8008522: 605a str r2, [r3, #4] - } - - /* Activate the Pull-up or Pull down resistor for the current IO */ - temp = GPIOx->PUPDR; - 8008524: 687b ldr r3, [r7, #4] - 8008526: 68db ldr r3, [r3, #12] - 8008528: 61bb str r3, [r7, #24] - temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2)); - 800852a: 69fb ldr r3, [r7, #28] - 800852c: 005b lsls r3, r3, #1 - 800852e: 2203 movs r2, #3 - 8008530: fa02 f303 lsl.w r3, r2, r3 - 8008534: 43db mvns r3, r3 - 8008536: 69ba ldr r2, [r7, #24] - 8008538: 4013 ands r3, r2 - 800853a: 61bb str r3, [r7, #24] - temp |= ((GPIO_Init->Pull) << (position * 2)); - 800853c: 683b ldr r3, [r7, #0] - 800853e: 689a ldr r2, [r3, #8] - 8008540: 69fb ldr r3, [r7, #28] - 8008542: 005b lsls r3, r3, #1 - 8008544: fa02 f303 lsl.w r3, r2, r3 - 8008548: 69ba ldr r2, [r7, #24] - 800854a: 4313 orrs r3, r2 - 800854c: 61bb str r3, [r7, #24] - GPIOx->PUPDR = temp; - 800854e: 687b ldr r3, [r7, #4] - 8008550: 69ba ldr r2, [r7, #24] - 8008552: 60da str r2, [r3, #12] - - /*--------------------- EXTI Mode Configuration ------------------------*/ - /* Configure the External Interrupt or event for the current IO */ - if((GPIO_Init->Mode & EXTI_MODE) == EXTI_MODE) - 8008554: 683b ldr r3, [r7, #0] - 8008556: 685b ldr r3, [r3, #4] - 8008558: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 800855c: 2b00 cmp r3, #0 - 800855e: f000 80be beq.w 80086de - { - /* Enable SYSCFG Clock */ - __HAL_RCC_SYSCFG_CLK_ENABLE(); - 8008562: 4b65 ldr r3, [pc, #404] ; (80086f8 ) - 8008564: 6c5b ldr r3, [r3, #68] ; 0x44 - 8008566: 4a64 ldr r2, [pc, #400] ; (80086f8 ) - 8008568: f443 4380 orr.w r3, r3, #16384 ; 0x4000 - 800856c: 6453 str r3, [r2, #68] ; 0x44 - 800856e: 4b62 ldr r3, [pc, #392] ; (80086f8 ) - 8008570: 6c5b ldr r3, [r3, #68] ; 0x44 - 8008572: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 8008576: 60fb str r3, [r7, #12] - 8008578: 68fb ldr r3, [r7, #12] - - temp = SYSCFG->EXTICR[position >> 2]; - 800857a: 4a60 ldr r2, [pc, #384] ; (80086fc ) - 800857c: 69fb ldr r3, [r7, #28] - 800857e: 089b lsrs r3, r3, #2 - 8008580: 3302 adds r3, #2 - 8008582: f852 3023 ldr.w r3, [r2, r3, lsl #2] - 8008586: 61bb str r3, [r7, #24] - temp &= ~(((uint32_t)0x0F) << (4 * (position & 0x03))); - 8008588: 69fb ldr r3, [r7, #28] - 800858a: f003 0303 and.w r3, r3, #3 - 800858e: 009b lsls r3, r3, #2 - 8008590: 220f movs r2, #15 - 8008592: fa02 f303 lsl.w r3, r2, r3 - 8008596: 43db mvns r3, r3 - 8008598: 69ba ldr r2, [r7, #24] - 800859a: 4013 ands r3, r2 - 800859c: 61bb str r3, [r7, #24] - temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03))); - 800859e: 687b ldr r3, [r7, #4] - 80085a0: 4a57 ldr r2, [pc, #348] ; (8008700 ) - 80085a2: 4293 cmp r3, r2 - 80085a4: d037 beq.n 8008616 - 80085a6: 687b ldr r3, [r7, #4] - 80085a8: 4a56 ldr r2, [pc, #344] ; (8008704 ) - 80085aa: 4293 cmp r3, r2 - 80085ac: d031 beq.n 8008612 - 80085ae: 687b ldr r3, [r7, #4] - 80085b0: 4a55 ldr r2, [pc, #340] ; (8008708 ) - 80085b2: 4293 cmp r3, r2 - 80085b4: d02b beq.n 800860e - 80085b6: 687b ldr r3, [r7, #4] - 80085b8: 4a54 ldr r2, [pc, #336] ; (800870c ) - 80085ba: 4293 cmp r3, r2 - 80085bc: d025 beq.n 800860a - 80085be: 687b ldr r3, [r7, #4] - 80085c0: 4a53 ldr r2, [pc, #332] ; (8008710 ) - 80085c2: 4293 cmp r3, r2 - 80085c4: d01f beq.n 8008606 - 80085c6: 687b ldr r3, [r7, #4] - 80085c8: 4a52 ldr r2, [pc, #328] ; (8008714 ) - 80085ca: 4293 cmp r3, r2 - 80085cc: d019 beq.n 8008602 - 80085ce: 687b ldr r3, [r7, #4] - 80085d0: 4a51 ldr r2, [pc, #324] ; (8008718 ) - 80085d2: 4293 cmp r3, r2 - 80085d4: d013 beq.n 80085fe - 80085d6: 687b ldr r3, [r7, #4] - 80085d8: 4a50 ldr r2, [pc, #320] ; (800871c ) - 80085da: 4293 cmp r3, r2 - 80085dc: d00d beq.n 80085fa - 80085de: 687b ldr r3, [r7, #4] - 80085e0: 4a4f ldr r2, [pc, #316] ; (8008720 ) - 80085e2: 4293 cmp r3, r2 - 80085e4: d007 beq.n 80085f6 - 80085e6: 687b ldr r3, [r7, #4] - 80085e8: 4a4e ldr r2, [pc, #312] ; (8008724 ) - 80085ea: 4293 cmp r3, r2 - 80085ec: d101 bne.n 80085f2 - 80085ee: 2309 movs r3, #9 - 80085f0: e012 b.n 8008618 - 80085f2: 230a movs r3, #10 - 80085f4: e010 b.n 8008618 - 80085f6: 2308 movs r3, #8 - 80085f8: e00e b.n 8008618 - 80085fa: 2307 movs r3, #7 - 80085fc: e00c b.n 8008618 - 80085fe: 2306 movs r3, #6 - 8008600: e00a b.n 8008618 - 8008602: 2305 movs r3, #5 - 8008604: e008 b.n 8008618 - 8008606: 2304 movs r3, #4 - 8008608: e006 b.n 8008618 - 800860a: 2303 movs r3, #3 - 800860c: e004 b.n 8008618 - 800860e: 2302 movs r3, #2 - 8008610: e002 b.n 8008618 - 8008612: 2301 movs r3, #1 - 8008614: e000 b.n 8008618 - 8008616: 2300 movs r3, #0 - 8008618: 69fa ldr r2, [r7, #28] - 800861a: f002 0203 and.w r2, r2, #3 - 800861e: 0092 lsls r2, r2, #2 - 8008620: 4093 lsls r3, r2 - 8008622: 69ba ldr r2, [r7, #24] - 8008624: 4313 orrs r3, r2 - 8008626: 61bb str r3, [r7, #24] - SYSCFG->EXTICR[position >> 2] = temp; - 8008628: 4934 ldr r1, [pc, #208] ; (80086fc ) - 800862a: 69fb ldr r3, [r7, #28] - 800862c: 089b lsrs r3, r3, #2 - 800862e: 3302 adds r3, #2 - 8008630: 69ba ldr r2, [r7, #24] - 8008632: f841 2023 str.w r2, [r1, r3, lsl #2] - - /* Clear EXTI line configuration */ - temp = EXTI->IMR; - 8008636: 4b3c ldr r3, [pc, #240] ; (8008728 ) - 8008638: 681b ldr r3, [r3, #0] - 800863a: 61bb str r3, [r7, #24] - temp &= ~((uint32_t)iocurrent); - 800863c: 693b ldr r3, [r7, #16] - 800863e: 43db mvns r3, r3 - 8008640: 69ba ldr r2, [r7, #24] - 8008642: 4013 ands r3, r2 - 8008644: 61bb str r3, [r7, #24] - if((GPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT) - 8008646: 683b ldr r3, [r7, #0] - 8008648: 685b ldr r3, [r3, #4] - 800864a: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 800864e: 2b00 cmp r3, #0 - 8008650: d003 beq.n 800865a - { - temp |= iocurrent; - 8008652: 69ba ldr r2, [r7, #24] - 8008654: 693b ldr r3, [r7, #16] - 8008656: 4313 orrs r3, r2 - 8008658: 61bb str r3, [r7, #24] - } - EXTI->IMR = temp; - 800865a: 4a33 ldr r2, [pc, #204] ; (8008728 ) - 800865c: 69bb ldr r3, [r7, #24] - 800865e: 6013 str r3, [r2, #0] - - temp = EXTI->EMR; - 8008660: 4b31 ldr r3, [pc, #196] ; (8008728 ) - 8008662: 685b ldr r3, [r3, #4] - 8008664: 61bb str r3, [r7, #24] - temp &= ~((uint32_t)iocurrent); - 8008666: 693b ldr r3, [r7, #16] - 8008668: 43db mvns r3, r3 - 800866a: 69ba ldr r2, [r7, #24] - 800866c: 4013 ands r3, r2 - 800866e: 61bb str r3, [r7, #24] - if((GPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT) - 8008670: 683b ldr r3, [r7, #0] - 8008672: 685b ldr r3, [r3, #4] - 8008674: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8008678: 2b00 cmp r3, #0 - 800867a: d003 beq.n 8008684 - { - temp |= iocurrent; - 800867c: 69ba ldr r2, [r7, #24] - 800867e: 693b ldr r3, [r7, #16] - 8008680: 4313 orrs r3, r2 - 8008682: 61bb str r3, [r7, #24] - } - EXTI->EMR = temp; - 8008684: 4a28 ldr r2, [pc, #160] ; (8008728 ) - 8008686: 69bb ldr r3, [r7, #24] - 8008688: 6053 str r3, [r2, #4] - - /* Clear Rising Falling edge configuration */ - temp = EXTI->RTSR; - 800868a: 4b27 ldr r3, [pc, #156] ; (8008728 ) - 800868c: 689b ldr r3, [r3, #8] - 800868e: 61bb str r3, [r7, #24] - temp &= ~((uint32_t)iocurrent); - 8008690: 693b ldr r3, [r7, #16] - 8008692: 43db mvns r3, r3 - 8008694: 69ba ldr r2, [r7, #24] - 8008696: 4013 ands r3, r2 - 8008698: 61bb str r3, [r7, #24] - if((GPIO_Init->Mode & RISING_EDGE) == RISING_EDGE) - 800869a: 683b ldr r3, [r7, #0] - 800869c: 685b ldr r3, [r3, #4] - 800869e: f403 1380 and.w r3, r3, #1048576 ; 0x100000 - 80086a2: 2b00 cmp r3, #0 - 80086a4: d003 beq.n 80086ae - { - temp |= iocurrent; - 80086a6: 69ba ldr r2, [r7, #24] - 80086a8: 693b ldr r3, [r7, #16] - 80086aa: 4313 orrs r3, r2 - 80086ac: 61bb str r3, [r7, #24] - } - EXTI->RTSR = temp; - 80086ae: 4a1e ldr r2, [pc, #120] ; (8008728 ) - 80086b0: 69bb ldr r3, [r7, #24] - 80086b2: 6093 str r3, [r2, #8] - - temp = EXTI->FTSR; - 80086b4: 4b1c ldr r3, [pc, #112] ; (8008728 ) - 80086b6: 68db ldr r3, [r3, #12] - 80086b8: 61bb str r3, [r7, #24] - temp &= ~((uint32_t)iocurrent); - 80086ba: 693b ldr r3, [r7, #16] - 80086bc: 43db mvns r3, r3 - 80086be: 69ba ldr r2, [r7, #24] - 80086c0: 4013 ands r3, r2 - 80086c2: 61bb str r3, [r7, #24] - if((GPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE) - 80086c4: 683b ldr r3, [r7, #0] - 80086c6: 685b ldr r3, [r3, #4] - 80086c8: f403 1300 and.w r3, r3, #2097152 ; 0x200000 - 80086cc: 2b00 cmp r3, #0 - 80086ce: d003 beq.n 80086d8 - { - temp |= iocurrent; - 80086d0: 69ba ldr r2, [r7, #24] - 80086d2: 693b ldr r3, [r7, #16] - 80086d4: 4313 orrs r3, r2 - 80086d6: 61bb str r3, [r7, #24] - } - EXTI->FTSR = temp; - 80086d8: 4a13 ldr r2, [pc, #76] ; (8008728 ) - 80086da: 69bb ldr r3, [r7, #24] - 80086dc: 60d3 str r3, [r2, #12] - for(position = 0; position < GPIO_NUMBER; position++) - 80086de: 69fb ldr r3, [r7, #28] - 80086e0: 3301 adds r3, #1 - 80086e2: 61fb str r3, [r7, #28] - 80086e4: 69fb ldr r3, [r7, #28] - 80086e6: 2b0f cmp r3, #15 - 80086e8: f67f ae86 bls.w 80083f8 - } - } - } -} - 80086ec: bf00 nop - 80086ee: 3724 adds r7, #36 ; 0x24 - 80086f0: 46bd mov sp, r7 - 80086f2: f85d 7b04 ldr.w r7, [sp], #4 - 80086f6: 4770 bx lr - 80086f8: 40023800 .word 0x40023800 - 80086fc: 40013800 .word 0x40013800 - 8008700: 40020000 .word 0x40020000 - 8008704: 40020400 .word 0x40020400 - 8008708: 40020800 .word 0x40020800 - 800870c: 40020c00 .word 0x40020c00 - 8008710: 40021000 .word 0x40021000 - 8008714: 40021400 .word 0x40021400 - 8008718: 40021800 .word 0x40021800 - 800871c: 40021c00 .word 0x40021c00 - 8008720: 40022000 .word 0x40022000 - 8008724: 40022400 .word 0x40022400 - 8008728: 40013c00 .word 0x40013c00 - -0800872c : - * supported by this function. User should request a transition to HSE Off - * first and then HSE On or HSE Bypass. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) -{ - 800872c: b580 push {r7, lr} - 800872e: b086 sub sp, #24 - 8008730: af00 add r7, sp, #0 - 8008732: 6078 str r0, [r7, #4] - uint32_t tickstart; - FlagStatus pwrclkchanged = RESET; - 8008734: 2300 movs r3, #0 - 8008736: 75fb strb r3, [r7, #23] - - /* Check Null pointer */ - if(RCC_OscInitStruct == NULL) - 8008738: 687b ldr r3, [r7, #4] - 800873a: 2b00 cmp r3, #0 - 800873c: d101 bne.n 8008742 - { - return HAL_ERROR; - 800873e: 2301 movs r3, #1 - 8008740: e25e b.n 8008c00 - - /* Check the parameters */ - assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType)); - - /*------------------------------- HSE Configuration ------------------------*/ - if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) - 8008742: 687b ldr r3, [r7, #4] - 8008744: 681b ldr r3, [r3, #0] - 8008746: f003 0301 and.w r3, r3, #1 - 800874a: 2b00 cmp r3, #0 - 800874c: f000 8087 beq.w 800885e - { - /* Check the parameters */ - assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState)); - /* When the HSE is used as system clock or clock source for PLL, It can not be disabled */ - if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSE) - 8008750: 4b96 ldr r3, [pc, #600] ; (80089ac ) - 8008752: 689b ldr r3, [r3, #8] - 8008754: f003 030c and.w r3, r3, #12 - 8008758: 2b04 cmp r3, #4 - 800875a: d00c beq.n 8008776 - || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE))) - 800875c: 4b93 ldr r3, [pc, #588] ; (80089ac ) - 800875e: 689b ldr r3, [r3, #8] - 8008760: f003 030c and.w r3, r3, #12 - 8008764: 2b08 cmp r3, #8 - 8008766: d112 bne.n 800878e - 8008768: 4b90 ldr r3, [pc, #576] ; (80089ac ) - 800876a: 685b ldr r3, [r3, #4] - 800876c: f403 0380 and.w r3, r3, #4194304 ; 0x400000 - 8008770: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 - 8008774: d10b bne.n 800878e - { - if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 8008776: 4b8d ldr r3, [pc, #564] ; (80089ac ) - 8008778: 681b ldr r3, [r3, #0] - 800877a: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 800877e: 2b00 cmp r3, #0 - 8008780: d06c beq.n 800885c - 8008782: 687b ldr r3, [r7, #4] - 8008784: 685b ldr r3, [r3, #4] - 8008786: 2b00 cmp r3, #0 - 8008788: d168 bne.n 800885c - { - return HAL_ERROR; - 800878a: 2301 movs r3, #1 - 800878c: e238 b.n 8008c00 - } - } - else - { - /* Set the new HSE configuration ---------------------------------------*/ - __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); - 800878e: 687b ldr r3, [r7, #4] - 8008790: 685b ldr r3, [r3, #4] - 8008792: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 8008796: d106 bne.n 80087a6 - 8008798: 4b84 ldr r3, [pc, #528] ; (80089ac ) - 800879a: 681b ldr r3, [r3, #0] - 800879c: 4a83 ldr r2, [pc, #524] ; (80089ac ) - 800879e: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 80087a2: 6013 str r3, [r2, #0] - 80087a4: e02e b.n 8008804 - 80087a6: 687b ldr r3, [r7, #4] - 80087a8: 685b ldr r3, [r3, #4] - 80087aa: 2b00 cmp r3, #0 - 80087ac: d10c bne.n 80087c8 - 80087ae: 4b7f ldr r3, [pc, #508] ; (80089ac ) - 80087b0: 681b ldr r3, [r3, #0] - 80087b2: 4a7e ldr r2, [pc, #504] ; (80089ac ) - 80087b4: f423 3380 bic.w r3, r3, #65536 ; 0x10000 - 80087b8: 6013 str r3, [r2, #0] - 80087ba: 4b7c ldr r3, [pc, #496] ; (80089ac ) - 80087bc: 681b ldr r3, [r3, #0] - 80087be: 4a7b ldr r2, [pc, #492] ; (80089ac ) - 80087c0: f423 2380 bic.w r3, r3, #262144 ; 0x40000 - 80087c4: 6013 str r3, [r2, #0] - 80087c6: e01d b.n 8008804 - 80087c8: 687b ldr r3, [r7, #4] - 80087ca: 685b ldr r3, [r3, #4] - 80087cc: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000 - 80087d0: d10c bne.n 80087ec - 80087d2: 4b76 ldr r3, [pc, #472] ; (80089ac ) - 80087d4: 681b ldr r3, [r3, #0] - 80087d6: 4a75 ldr r2, [pc, #468] ; (80089ac ) - 80087d8: f443 2380 orr.w r3, r3, #262144 ; 0x40000 - 80087dc: 6013 str r3, [r2, #0] - 80087de: 4b73 ldr r3, [pc, #460] ; (80089ac ) - 80087e0: 681b ldr r3, [r3, #0] - 80087e2: 4a72 ldr r2, [pc, #456] ; (80089ac ) - 80087e4: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 80087e8: 6013 str r3, [r2, #0] - 80087ea: e00b b.n 8008804 - 80087ec: 4b6f ldr r3, [pc, #444] ; (80089ac ) - 80087ee: 681b ldr r3, [r3, #0] - 80087f0: 4a6e ldr r2, [pc, #440] ; (80089ac ) - 80087f2: f423 3380 bic.w r3, r3, #65536 ; 0x10000 - 80087f6: 6013 str r3, [r2, #0] - 80087f8: 4b6c ldr r3, [pc, #432] ; (80089ac ) - 80087fa: 681b ldr r3, [r3, #0] - 80087fc: 4a6b ldr r2, [pc, #428] ; (80089ac ) - 80087fe: f423 2380 bic.w r3, r3, #262144 ; 0x40000 - 8008802: 6013 str r3, [r2, #0] - - /* Check the HSE State */ - if(RCC_OscInitStruct->HSEState != RCC_HSE_OFF) - 8008804: 687b ldr r3, [r7, #4] - 8008806: 685b ldr r3, [r3, #4] - 8008808: 2b00 cmp r3, #0 - 800880a: d013 beq.n 8008834 - { - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 800880c: f7ff fc42 bl 8008094 - 8008810: 6138 str r0, [r7, #16] - - /* Wait till HSE is ready */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 8008812: e008 b.n 8008826 - { - if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) - 8008814: f7ff fc3e bl 8008094 - 8008818: 4602 mov r2, r0 - 800881a: 693b ldr r3, [r7, #16] - 800881c: 1ad3 subs r3, r2, r3 - 800881e: 2b64 cmp r3, #100 ; 0x64 - 8008820: d901 bls.n 8008826 - { - return HAL_TIMEOUT; - 8008822: 2303 movs r3, #3 - 8008824: e1ec b.n 8008c00 - while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 8008826: 4b61 ldr r3, [pc, #388] ; (80089ac ) - 8008828: 681b ldr r3, [r3, #0] - 800882a: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 800882e: 2b00 cmp r3, #0 - 8008830: d0f0 beq.n 8008814 - 8008832: e014 b.n 800885e - } - } - else - { - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8008834: f7ff fc2e bl 8008094 - 8008838: 6138 str r0, [r7, #16] - - /* Wait till HSE is bypassed or disabled */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) - 800883a: e008 b.n 800884e - { - if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE) - 800883c: f7ff fc2a bl 8008094 - 8008840: 4602 mov r2, r0 - 8008842: 693b ldr r3, [r7, #16] - 8008844: 1ad3 subs r3, r2, r3 - 8008846: 2b64 cmp r3, #100 ; 0x64 - 8008848: d901 bls.n 800884e - { - return HAL_TIMEOUT; - 800884a: 2303 movs r3, #3 - 800884c: e1d8 b.n 8008c00 - while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) - 800884e: 4b57 ldr r3, [pc, #348] ; (80089ac ) - 8008850: 681b ldr r3, [r3, #0] - 8008852: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8008856: 2b00 cmp r3, #0 - 8008858: d1f0 bne.n 800883c - 800885a: e000 b.n 800885e - if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)) - 800885c: bf00 nop - } - } - } - } - /*----------------------------- HSI Configuration --------------------------*/ - if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) - 800885e: 687b ldr r3, [r7, #4] - 8008860: 681b ldr r3, [r3, #0] - 8008862: f003 0302 and.w r3, r3, #2 - 8008866: 2b00 cmp r3, #0 - 8008868: d069 beq.n 800893e - /* Check the parameters */ - assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState)); - assert_param(IS_RCC_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue)); - - /* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */ - if((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI) - 800886a: 4b50 ldr r3, [pc, #320] ; (80089ac ) - 800886c: 689b ldr r3, [r3, #8] - 800886e: f003 030c and.w r3, r3, #12 - 8008872: 2b00 cmp r3, #0 - 8008874: d00b beq.n 800888e - || ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI))) - 8008876: 4b4d ldr r3, [pc, #308] ; (80089ac ) - 8008878: 689b ldr r3, [r3, #8] - 800887a: f003 030c and.w r3, r3, #12 - 800887e: 2b08 cmp r3, #8 - 8008880: d11c bne.n 80088bc - 8008882: 4b4a ldr r3, [pc, #296] ; (80089ac ) - 8008884: 685b ldr r3, [r3, #4] - 8008886: f403 0380 and.w r3, r3, #4194304 ; 0x400000 - 800888a: 2b00 cmp r3, #0 - 800888c: d116 bne.n 80088bc - { - /* When HSI is used as system clock it will not disabled */ - if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) - 800888e: 4b47 ldr r3, [pc, #284] ; (80089ac ) - 8008890: 681b ldr r3, [r3, #0] - 8008892: f003 0302 and.w r3, r3, #2 - 8008896: 2b00 cmp r3, #0 - 8008898: d005 beq.n 80088a6 - 800889a: 687b ldr r3, [r7, #4] - 800889c: 68db ldr r3, [r3, #12] - 800889e: 2b01 cmp r3, #1 - 80088a0: d001 beq.n 80088a6 - { - return HAL_ERROR; - 80088a2: 2301 movs r3, #1 - 80088a4: e1ac b.n 8008c00 - } - /* Otherwise, just the calibration is allowed */ - else - { - /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ - __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 80088a6: 4b41 ldr r3, [pc, #260] ; (80089ac ) - 80088a8: 681b ldr r3, [r3, #0] - 80088aa: f023 02f8 bic.w r2, r3, #248 ; 0xf8 - 80088ae: 687b ldr r3, [r7, #4] - 80088b0: 691b ldr r3, [r3, #16] - 80088b2: 00db lsls r3, r3, #3 - 80088b4: 493d ldr r1, [pc, #244] ; (80089ac ) - 80088b6: 4313 orrs r3, r2 - 80088b8: 600b str r3, [r1, #0] - if((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON)) - 80088ba: e040 b.n 800893e - } - } - else - { - /* Check the HSI State */ - if((RCC_OscInitStruct->HSIState)!= RCC_HSI_OFF) - 80088bc: 687b ldr r3, [r7, #4] - 80088be: 68db ldr r3, [r3, #12] - 80088c0: 2b00 cmp r3, #0 - 80088c2: d023 beq.n 800890c - { - /* Enable the Internal High Speed oscillator (HSI). */ - __HAL_RCC_HSI_ENABLE(); - 80088c4: 4b39 ldr r3, [pc, #228] ; (80089ac ) - 80088c6: 681b ldr r3, [r3, #0] - 80088c8: 4a38 ldr r2, [pc, #224] ; (80089ac ) - 80088ca: f043 0301 orr.w r3, r3, #1 - 80088ce: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 80088d0: f7ff fbe0 bl 8008094 - 80088d4: 6138 str r0, [r7, #16] - - /* Wait till HSI is ready */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 80088d6: e008 b.n 80088ea - { - if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) - 80088d8: f7ff fbdc bl 8008094 - 80088dc: 4602 mov r2, r0 - 80088de: 693b ldr r3, [r7, #16] - 80088e0: 1ad3 subs r3, r2, r3 - 80088e2: 2b02 cmp r3, #2 - 80088e4: d901 bls.n 80088ea - { - return HAL_TIMEOUT; - 80088e6: 2303 movs r3, #3 - 80088e8: e18a b.n 8008c00 - while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 80088ea: 4b30 ldr r3, [pc, #192] ; (80089ac ) - 80088ec: 681b ldr r3, [r3, #0] - 80088ee: f003 0302 and.w r3, r3, #2 - 80088f2: 2b00 cmp r3, #0 - 80088f4: d0f0 beq.n 80088d8 - } - } - - /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/ - __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue); - 80088f6: 4b2d ldr r3, [pc, #180] ; (80089ac ) - 80088f8: 681b ldr r3, [r3, #0] - 80088fa: f023 02f8 bic.w r2, r3, #248 ; 0xf8 - 80088fe: 687b ldr r3, [r7, #4] - 8008900: 691b ldr r3, [r3, #16] - 8008902: 00db lsls r3, r3, #3 - 8008904: 4929 ldr r1, [pc, #164] ; (80089ac ) - 8008906: 4313 orrs r3, r2 - 8008908: 600b str r3, [r1, #0] - 800890a: e018 b.n 800893e - } - else - { - /* Disable the Internal High Speed oscillator (HSI). */ - __HAL_RCC_HSI_DISABLE(); - 800890c: 4b27 ldr r3, [pc, #156] ; (80089ac ) - 800890e: 681b ldr r3, [r3, #0] - 8008910: 4a26 ldr r2, [pc, #152] ; (80089ac ) - 8008912: f023 0301 bic.w r3, r3, #1 - 8008916: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8008918: f7ff fbbc bl 8008094 - 800891c: 6138 str r0, [r7, #16] - - /* Wait till HSI is ready */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) - 800891e: e008 b.n 8008932 - { - if((HAL_GetTick() - tickstart ) > HSI_TIMEOUT_VALUE) - 8008920: f7ff fbb8 bl 8008094 - 8008924: 4602 mov r2, r0 - 8008926: 693b ldr r3, [r7, #16] - 8008928: 1ad3 subs r3, r2, r3 - 800892a: 2b02 cmp r3, #2 - 800892c: d901 bls.n 8008932 - { - return HAL_TIMEOUT; - 800892e: 2303 movs r3, #3 - 8008930: e166 b.n 8008c00 - while(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) - 8008932: 4b1e ldr r3, [pc, #120] ; (80089ac ) - 8008934: 681b ldr r3, [r3, #0] - 8008936: f003 0302 and.w r3, r3, #2 - 800893a: 2b00 cmp r3, #0 - 800893c: d1f0 bne.n 8008920 - } - } - } - } - /*------------------------------ LSI Configuration -------------------------*/ - if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) - 800893e: 687b ldr r3, [r7, #4] - 8008940: 681b ldr r3, [r3, #0] - 8008942: f003 0308 and.w r3, r3, #8 - 8008946: 2b00 cmp r3, #0 - 8008948: d038 beq.n 80089bc - { - /* Check the parameters */ - assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState)); - - /* Check the LSI State */ - if((RCC_OscInitStruct->LSIState)!= RCC_LSI_OFF) - 800894a: 687b ldr r3, [r7, #4] - 800894c: 695b ldr r3, [r3, #20] - 800894e: 2b00 cmp r3, #0 - 8008950: d019 beq.n 8008986 - { - /* Enable the Internal Low Speed oscillator (LSI). */ - __HAL_RCC_LSI_ENABLE(); - 8008952: 4b16 ldr r3, [pc, #88] ; (80089ac ) - 8008954: 6f5b ldr r3, [r3, #116] ; 0x74 - 8008956: 4a15 ldr r2, [pc, #84] ; (80089ac ) - 8008958: f043 0301 orr.w r3, r3, #1 - 800895c: 6753 str r3, [r2, #116] ; 0x74 - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 800895e: f7ff fb99 bl 8008094 - 8008962: 6138 str r0, [r7, #16] - - /* Wait till LSI is ready */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) - 8008964: e008 b.n 8008978 - { - if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) - 8008966: f7ff fb95 bl 8008094 - 800896a: 4602 mov r2, r0 - 800896c: 693b ldr r3, [r7, #16] - 800896e: 1ad3 subs r3, r2, r3 - 8008970: 2b02 cmp r3, #2 - 8008972: d901 bls.n 8008978 - { - return HAL_TIMEOUT; - 8008974: 2303 movs r3, #3 - 8008976: e143 b.n 8008c00 - while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET) - 8008978: 4b0c ldr r3, [pc, #48] ; (80089ac ) - 800897a: 6f5b ldr r3, [r3, #116] ; 0x74 - 800897c: f003 0302 and.w r3, r3, #2 - 8008980: 2b00 cmp r3, #0 - 8008982: d0f0 beq.n 8008966 - 8008984: e01a b.n 80089bc - } - } - else - { - /* Disable the Internal Low Speed oscillator (LSI). */ - __HAL_RCC_LSI_DISABLE(); - 8008986: 4b09 ldr r3, [pc, #36] ; (80089ac ) - 8008988: 6f5b ldr r3, [r3, #116] ; 0x74 - 800898a: 4a08 ldr r2, [pc, #32] ; (80089ac ) - 800898c: f023 0301 bic.w r3, r3, #1 - 8008990: 6753 str r3, [r2, #116] ; 0x74 - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8008992: f7ff fb7f bl 8008094 - 8008996: 6138 str r0, [r7, #16] - - /* Wait till LSI is ready */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) - 8008998: e00a b.n 80089b0 - { - if((HAL_GetTick() - tickstart ) > LSI_TIMEOUT_VALUE) - 800899a: f7ff fb7b bl 8008094 - 800899e: 4602 mov r2, r0 - 80089a0: 693b ldr r3, [r7, #16] - 80089a2: 1ad3 subs r3, r2, r3 - 80089a4: 2b02 cmp r3, #2 - 80089a6: d903 bls.n 80089b0 - { - return HAL_TIMEOUT; - 80089a8: 2303 movs r3, #3 - 80089aa: e129 b.n 8008c00 - 80089ac: 40023800 .word 0x40023800 - while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET) - 80089b0: 4b95 ldr r3, [pc, #596] ; (8008c08 ) - 80089b2: 6f5b ldr r3, [r3, #116] ; 0x74 - 80089b4: f003 0302 and.w r3, r3, #2 - 80089b8: 2b00 cmp r3, #0 - 80089ba: d1ee bne.n 800899a - } - } - } - } - /*------------------------------ LSE Configuration -------------------------*/ - if(((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE) - 80089bc: 687b ldr r3, [r7, #4] - 80089be: 681b ldr r3, [r3, #0] - 80089c0: f003 0304 and.w r3, r3, #4 - 80089c4: 2b00 cmp r3, #0 - 80089c6: f000 80a4 beq.w 8008b12 - /* Check the parameters */ - assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState)); - - /* Update LSE configuration in Backup Domain control register */ - /* Requires to enable write access to Backup Domain of necessary */ - if(__HAL_RCC_PWR_IS_CLK_DISABLED()) - 80089ca: 4b8f ldr r3, [pc, #572] ; (8008c08 ) - 80089cc: 6c1b ldr r3, [r3, #64] ; 0x40 - 80089ce: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 80089d2: 2b00 cmp r3, #0 - 80089d4: d10d bne.n 80089f2 - { - /* Enable Power Clock*/ - __HAL_RCC_PWR_CLK_ENABLE(); - 80089d6: 4b8c ldr r3, [pc, #560] ; (8008c08 ) - 80089d8: 6c1b ldr r3, [r3, #64] ; 0x40 - 80089da: 4a8b ldr r2, [pc, #556] ; (8008c08 ) - 80089dc: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 80089e0: 6413 str r3, [r2, #64] ; 0x40 - 80089e2: 4b89 ldr r3, [pc, #548] ; (8008c08 ) - 80089e4: 6c1b ldr r3, [r3, #64] ; 0x40 - 80089e6: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 80089ea: 60fb str r3, [r7, #12] - 80089ec: 68fb ldr r3, [r7, #12] - pwrclkchanged = SET; - 80089ee: 2301 movs r3, #1 - 80089f0: 75fb strb r3, [r7, #23] - } - - if(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) - 80089f2: 4b86 ldr r3, [pc, #536] ; (8008c0c ) - 80089f4: 681b ldr r3, [r3, #0] - 80089f6: f403 7380 and.w r3, r3, #256 ; 0x100 - 80089fa: 2b00 cmp r3, #0 - 80089fc: d118 bne.n 8008a30 - { - /* Enable write access to Backup domain */ - PWR->CR1 |= PWR_CR1_DBP; - 80089fe: 4b83 ldr r3, [pc, #524] ; (8008c0c ) - 8008a00: 681b ldr r3, [r3, #0] - 8008a02: 4a82 ldr r2, [pc, #520] ; (8008c0c ) - 8008a04: f443 7380 orr.w r3, r3, #256 ; 0x100 - 8008a08: 6013 str r3, [r2, #0] - - /* Wait for Backup domain Write protection disable */ - tickstart = HAL_GetTick(); - 8008a0a: f7ff fb43 bl 8008094 - 8008a0e: 6138 str r0, [r7, #16] - - while(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) - 8008a10: e008 b.n 8008a24 - { - if((HAL_GetTick() - tickstart ) > RCC_DBP_TIMEOUT_VALUE) - 8008a12: f7ff fb3f bl 8008094 - 8008a16: 4602 mov r2, r0 - 8008a18: 693b ldr r3, [r7, #16] - 8008a1a: 1ad3 subs r3, r2, r3 - 8008a1c: 2b64 cmp r3, #100 ; 0x64 - 8008a1e: d901 bls.n 8008a24 - { - return HAL_TIMEOUT; - 8008a20: 2303 movs r3, #3 - 8008a22: e0ed b.n 8008c00 - while(HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP)) - 8008a24: 4b79 ldr r3, [pc, #484] ; (8008c0c ) - 8008a26: 681b ldr r3, [r3, #0] - 8008a28: f403 7380 and.w r3, r3, #256 ; 0x100 - 8008a2c: 2b00 cmp r3, #0 - 8008a2e: d0f0 beq.n 8008a12 - } - } - } - - /* Set the new LSE configuration -----------------------------------------*/ - __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState); - 8008a30: 687b ldr r3, [r7, #4] - 8008a32: 689b ldr r3, [r3, #8] - 8008a34: 2b01 cmp r3, #1 - 8008a36: d106 bne.n 8008a46 - 8008a38: 4b73 ldr r3, [pc, #460] ; (8008c08 ) - 8008a3a: 6f1b ldr r3, [r3, #112] ; 0x70 - 8008a3c: 4a72 ldr r2, [pc, #456] ; (8008c08 ) - 8008a3e: f043 0301 orr.w r3, r3, #1 - 8008a42: 6713 str r3, [r2, #112] ; 0x70 - 8008a44: e02d b.n 8008aa2 - 8008a46: 687b ldr r3, [r7, #4] - 8008a48: 689b ldr r3, [r3, #8] - 8008a4a: 2b00 cmp r3, #0 - 8008a4c: d10c bne.n 8008a68 - 8008a4e: 4b6e ldr r3, [pc, #440] ; (8008c08 ) - 8008a50: 6f1b ldr r3, [r3, #112] ; 0x70 - 8008a52: 4a6d ldr r2, [pc, #436] ; (8008c08 ) - 8008a54: f023 0301 bic.w r3, r3, #1 - 8008a58: 6713 str r3, [r2, #112] ; 0x70 - 8008a5a: 4b6b ldr r3, [pc, #428] ; (8008c08 ) - 8008a5c: 6f1b ldr r3, [r3, #112] ; 0x70 - 8008a5e: 4a6a ldr r2, [pc, #424] ; (8008c08 ) - 8008a60: f023 0304 bic.w r3, r3, #4 - 8008a64: 6713 str r3, [r2, #112] ; 0x70 - 8008a66: e01c b.n 8008aa2 - 8008a68: 687b ldr r3, [r7, #4] - 8008a6a: 689b ldr r3, [r3, #8] - 8008a6c: 2b05 cmp r3, #5 - 8008a6e: d10c bne.n 8008a8a - 8008a70: 4b65 ldr r3, [pc, #404] ; (8008c08 ) - 8008a72: 6f1b ldr r3, [r3, #112] ; 0x70 - 8008a74: 4a64 ldr r2, [pc, #400] ; (8008c08 ) - 8008a76: f043 0304 orr.w r3, r3, #4 - 8008a7a: 6713 str r3, [r2, #112] ; 0x70 - 8008a7c: 4b62 ldr r3, [pc, #392] ; (8008c08 ) - 8008a7e: 6f1b ldr r3, [r3, #112] ; 0x70 - 8008a80: 4a61 ldr r2, [pc, #388] ; (8008c08 ) - 8008a82: f043 0301 orr.w r3, r3, #1 - 8008a86: 6713 str r3, [r2, #112] ; 0x70 - 8008a88: e00b b.n 8008aa2 - 8008a8a: 4b5f ldr r3, [pc, #380] ; (8008c08 ) - 8008a8c: 6f1b ldr r3, [r3, #112] ; 0x70 - 8008a8e: 4a5e ldr r2, [pc, #376] ; (8008c08 ) - 8008a90: f023 0301 bic.w r3, r3, #1 - 8008a94: 6713 str r3, [r2, #112] ; 0x70 - 8008a96: 4b5c ldr r3, [pc, #368] ; (8008c08 ) - 8008a98: 6f1b ldr r3, [r3, #112] ; 0x70 - 8008a9a: 4a5b ldr r2, [pc, #364] ; (8008c08 ) - 8008a9c: f023 0304 bic.w r3, r3, #4 - 8008aa0: 6713 str r3, [r2, #112] ; 0x70 - /* Check the LSE State */ - if((RCC_OscInitStruct->LSEState) != RCC_LSE_OFF) - 8008aa2: 687b ldr r3, [r7, #4] - 8008aa4: 689b ldr r3, [r3, #8] - 8008aa6: 2b00 cmp r3, #0 - 8008aa8: d015 beq.n 8008ad6 - { - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8008aaa: f7ff faf3 bl 8008094 - 8008aae: 6138 str r0, [r7, #16] - - /* Wait till LSE is ready */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) - 8008ab0: e00a b.n 8008ac8 - { - if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) - 8008ab2: f7ff faef bl 8008094 - 8008ab6: 4602 mov r2, r0 - 8008ab8: 693b ldr r3, [r7, #16] - 8008aba: 1ad3 subs r3, r2, r3 - 8008abc: f241 3288 movw r2, #5000 ; 0x1388 - 8008ac0: 4293 cmp r3, r2 - 8008ac2: d901 bls.n 8008ac8 - { - return HAL_TIMEOUT; - 8008ac4: 2303 movs r3, #3 - 8008ac6: e09b b.n 8008c00 - while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) - 8008ac8: 4b4f ldr r3, [pc, #316] ; (8008c08 ) - 8008aca: 6f1b ldr r3, [r3, #112] ; 0x70 - 8008acc: f003 0302 and.w r3, r3, #2 - 8008ad0: 2b00 cmp r3, #0 - 8008ad2: d0ee beq.n 8008ab2 - 8008ad4: e014 b.n 8008b00 - } - } - else - { - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8008ad6: f7ff fadd bl 8008094 - 8008ada: 6138 str r0, [r7, #16] - - /* Wait till LSE is ready */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) - 8008adc: e00a b.n 8008af4 - { - if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) - 8008ade: f7ff fad9 bl 8008094 - 8008ae2: 4602 mov r2, r0 - 8008ae4: 693b ldr r3, [r7, #16] - 8008ae6: 1ad3 subs r3, r2, r3 - 8008ae8: f241 3288 movw r2, #5000 ; 0x1388 - 8008aec: 4293 cmp r3, r2 - 8008aee: d901 bls.n 8008af4 - { - return HAL_TIMEOUT; - 8008af0: 2303 movs r3, #3 - 8008af2: e085 b.n 8008c00 - while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET) - 8008af4: 4b44 ldr r3, [pc, #272] ; (8008c08 ) - 8008af6: 6f1b ldr r3, [r3, #112] ; 0x70 - 8008af8: f003 0302 and.w r3, r3, #2 - 8008afc: 2b00 cmp r3, #0 - 8008afe: d1ee bne.n 8008ade - } - } - } - - /* Restore clock configuration if changed */ - if(pwrclkchanged == SET) - 8008b00: 7dfb ldrb r3, [r7, #23] - 8008b02: 2b01 cmp r3, #1 - 8008b04: d105 bne.n 8008b12 - { - __HAL_RCC_PWR_CLK_DISABLE(); - 8008b06: 4b40 ldr r3, [pc, #256] ; (8008c08 ) - 8008b08: 6c1b ldr r3, [r3, #64] ; 0x40 - 8008b0a: 4a3f ldr r2, [pc, #252] ; (8008c08 ) - 8008b0c: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 - 8008b10: 6413 str r3, [r2, #64] ; 0x40 - } - } - /*-------------------------------- PLL Configuration -----------------------*/ - /* Check the parameters */ - assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState)); - if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE) - 8008b12: 687b ldr r3, [r7, #4] - 8008b14: 699b ldr r3, [r3, #24] - 8008b16: 2b00 cmp r3, #0 - 8008b18: d071 beq.n 8008bfe - { - /* Check if the PLL is used as system clock or not */ - if(__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK) - 8008b1a: 4b3b ldr r3, [pc, #236] ; (8008c08 ) - 8008b1c: 689b ldr r3, [r3, #8] - 8008b1e: f003 030c and.w r3, r3, #12 - 8008b22: 2b08 cmp r3, #8 - 8008b24: d069 beq.n 8008bfa - { - if((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON) - 8008b26: 687b ldr r3, [r7, #4] - 8008b28: 699b ldr r3, [r3, #24] - 8008b2a: 2b02 cmp r3, #2 - 8008b2c: d14b bne.n 8008bc6 -#if defined (RCC_PLLCFGR_PLLR) - assert_param(IS_RCC_PLLR_VALUE(RCC_OscInitStruct->PLL.PLLR)); -#endif - - /* Disable the main PLL. */ - __HAL_RCC_PLL_DISABLE(); - 8008b2e: 4b36 ldr r3, [pc, #216] ; (8008c08 ) - 8008b30: 681b ldr r3, [r3, #0] - 8008b32: 4a35 ldr r2, [pc, #212] ; (8008c08 ) - 8008b34: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 - 8008b38: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8008b3a: f7ff faab bl 8008094 - 8008b3e: 6138 str r0, [r7, #16] - - /* Wait till PLL is ready */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8008b40: e008 b.n 8008b54 - { - if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 8008b42: f7ff faa7 bl 8008094 - 8008b46: 4602 mov r2, r0 - 8008b48: 693b ldr r3, [r7, #16] - 8008b4a: 1ad3 subs r3, r2, r3 - 8008b4c: 2b02 cmp r3, #2 - 8008b4e: d901 bls.n 8008b54 - { - return HAL_TIMEOUT; - 8008b50: 2303 movs r3, #3 - 8008b52: e055 b.n 8008c00 - while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8008b54: 4b2c ldr r3, [pc, #176] ; (8008c08 ) - 8008b56: 681b ldr r3, [r3, #0] - 8008b58: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 8008b5c: 2b00 cmp r3, #0 - 8008b5e: d1f0 bne.n 8008b42 - } - } - - /* Configure the main PLL clock source, multiplication and division factors. */ -#if defined (RCC_PLLCFGR_PLLR) - __HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource, - 8008b60: 687b ldr r3, [r7, #4] - 8008b62: 69da ldr r2, [r3, #28] - 8008b64: 687b ldr r3, [r7, #4] - 8008b66: 6a1b ldr r3, [r3, #32] - 8008b68: 431a orrs r2, r3 - 8008b6a: 687b ldr r3, [r7, #4] - 8008b6c: 6a5b ldr r3, [r3, #36] ; 0x24 - 8008b6e: 019b lsls r3, r3, #6 - 8008b70: 431a orrs r2, r3 - 8008b72: 687b ldr r3, [r7, #4] - 8008b74: 6a9b ldr r3, [r3, #40] ; 0x28 - 8008b76: 085b lsrs r3, r3, #1 - 8008b78: 3b01 subs r3, #1 - 8008b7a: 041b lsls r3, r3, #16 - 8008b7c: 431a orrs r2, r3 - 8008b7e: 687b ldr r3, [r7, #4] - 8008b80: 6adb ldr r3, [r3, #44] ; 0x2c - 8008b82: 061b lsls r3, r3, #24 - 8008b84: 431a orrs r2, r3 - 8008b86: 687b ldr r3, [r7, #4] - 8008b88: 6b1b ldr r3, [r3, #48] ; 0x30 - 8008b8a: 071b lsls r3, r3, #28 - 8008b8c: 491e ldr r1, [pc, #120] ; (8008c08 ) - 8008b8e: 4313 orrs r3, r2 - 8008b90: 604b str r3, [r1, #4] - RCC_OscInitStruct->PLL.PLLP, - RCC_OscInitStruct->PLL.PLLQ); -#endif - - /* Enable the main PLL. */ - __HAL_RCC_PLL_ENABLE(); - 8008b92: 4b1d ldr r3, [pc, #116] ; (8008c08 ) - 8008b94: 681b ldr r3, [r3, #0] - 8008b96: 4a1c ldr r2, [pc, #112] ; (8008c08 ) - 8008b98: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000 - 8008b9c: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8008b9e: f7ff fa79 bl 8008094 - 8008ba2: 6138 str r0, [r7, #16] - - /* Wait till PLL is ready */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 8008ba4: e008 b.n 8008bb8 - { - if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 8008ba6: f7ff fa75 bl 8008094 - 8008baa: 4602 mov r2, r0 - 8008bac: 693b ldr r3, [r7, #16] - 8008bae: 1ad3 subs r3, r2, r3 - 8008bb0: 2b02 cmp r3, #2 - 8008bb2: d901 bls.n 8008bb8 - { - return HAL_TIMEOUT; - 8008bb4: 2303 movs r3, #3 - 8008bb6: e023 b.n 8008c00 - while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 8008bb8: 4b13 ldr r3, [pc, #76] ; (8008c08 ) - 8008bba: 681b ldr r3, [r3, #0] - 8008bbc: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 8008bc0: 2b00 cmp r3, #0 - 8008bc2: d0f0 beq.n 8008ba6 - 8008bc4: e01b b.n 8008bfe - } - } - else - { - /* Disable the main PLL. */ - __HAL_RCC_PLL_DISABLE(); - 8008bc6: 4b10 ldr r3, [pc, #64] ; (8008c08 ) - 8008bc8: 681b ldr r3, [r3, #0] - 8008bca: 4a0f ldr r2, [pc, #60] ; (8008c08 ) - 8008bcc: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 - 8008bd0: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8008bd2: f7ff fa5f bl 8008094 - 8008bd6: 6138 str r0, [r7, #16] - - /* Wait till PLL is ready */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8008bd8: e008 b.n 8008bec - { - if((HAL_GetTick() - tickstart ) > PLL_TIMEOUT_VALUE) - 8008bda: f7ff fa5b bl 8008094 - 8008bde: 4602 mov r2, r0 - 8008be0: 693b ldr r3, [r7, #16] - 8008be2: 1ad3 subs r3, r2, r3 - 8008be4: 2b02 cmp r3, #2 - 8008be6: d901 bls.n 8008bec - { - return HAL_TIMEOUT; - 8008be8: 2303 movs r3, #3 - 8008bea: e009 b.n 8008c00 - while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET) - 8008bec: 4b06 ldr r3, [pc, #24] ; (8008c08 ) - 8008bee: 681b ldr r3, [r3, #0] - 8008bf0: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 8008bf4: 2b00 cmp r3, #0 - 8008bf6: d1f0 bne.n 8008bda - 8008bf8: e001 b.n 8008bfe - } - } - } - else - { - return HAL_ERROR; - 8008bfa: 2301 movs r3, #1 - 8008bfc: e000 b.n 8008c00 - } - } - return HAL_OK; - 8008bfe: 2300 movs r3, #0 -} - 8008c00: 4618 mov r0, r3 - 8008c02: 3718 adds r7, #24 - 8008c04: 46bd mov sp, r7 - 8008c06: bd80 pop {r7, pc} - 8008c08: 40023800 .word 0x40023800 - 8008c0c: 40007000 .word 0x40007000 - -08008c10 : - * HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency - * (for more details refer to section above "Initialization/de-initialization functions") - * @retval None - */ -HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency) -{ - 8008c10: b580 push {r7, lr} - 8008c12: b084 sub sp, #16 - 8008c14: af00 add r7, sp, #0 - 8008c16: 6078 str r0, [r7, #4] - 8008c18: 6039 str r1, [r7, #0] - uint32_t tickstart = 0; - 8008c1a: 2300 movs r3, #0 - 8008c1c: 60fb str r3, [r7, #12] - - /* Check Null pointer */ - if(RCC_ClkInitStruct == NULL) - 8008c1e: 687b ldr r3, [r7, #4] - 8008c20: 2b00 cmp r3, #0 - 8008c22: d101 bne.n 8008c28 - { - return HAL_ERROR; - 8008c24: 2301 movs r3, #1 - 8008c26: e0ce b.n 8008dc6 - /* To correctly read data from FLASH memory, the number of wait states (LATENCY) - must be correctly programmed according to the frequency of the CPU clock - (HCLK) and the supply voltage of the device. */ - - /* Increasing the CPU frequency */ - if(FLatency > __HAL_FLASH_GET_LATENCY()) - 8008c28: 4b69 ldr r3, [pc, #420] ; (8008dd0 ) - 8008c2a: 681b ldr r3, [r3, #0] - 8008c2c: f003 030f and.w r3, r3, #15 - 8008c30: 683a ldr r2, [r7, #0] - 8008c32: 429a cmp r2, r3 - 8008c34: d910 bls.n 8008c58 - { - /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ - __HAL_FLASH_SET_LATENCY(FLatency); - 8008c36: 4b66 ldr r3, [pc, #408] ; (8008dd0 ) - 8008c38: 681b ldr r3, [r3, #0] - 8008c3a: f023 020f bic.w r2, r3, #15 - 8008c3e: 4964 ldr r1, [pc, #400] ; (8008dd0 ) - 8008c40: 683b ldr r3, [r7, #0] - 8008c42: 4313 orrs r3, r2 - 8008c44: 600b str r3, [r1, #0] - - /* Check that the new number of wait states is taken into account to access the Flash - memory by reading the FLASH_ACR register */ - if(__HAL_FLASH_GET_LATENCY() != FLatency) - 8008c46: 4b62 ldr r3, [pc, #392] ; (8008dd0 ) - 8008c48: 681b ldr r3, [r3, #0] - 8008c4a: f003 030f and.w r3, r3, #15 - 8008c4e: 683a ldr r2, [r7, #0] - 8008c50: 429a cmp r2, r3 - 8008c52: d001 beq.n 8008c58 - { - return HAL_ERROR; - 8008c54: 2301 movs r3, #1 - 8008c56: e0b6 b.n 8008dc6 - } - } - - /*-------------------------- HCLK Configuration --------------------------*/ - if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK) - 8008c58: 687b ldr r3, [r7, #4] - 8008c5a: 681b ldr r3, [r3, #0] - 8008c5c: f003 0302 and.w r3, r3, #2 - 8008c60: 2b00 cmp r3, #0 - 8008c62: d020 beq.n 8008ca6 - { - /* Set the highest APBx dividers in order to ensure that we do not go through - a non-spec phase whatever we decrease or increase HCLK. */ - if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) - 8008c64: 687b ldr r3, [r7, #4] - 8008c66: 681b ldr r3, [r3, #0] - 8008c68: f003 0304 and.w r3, r3, #4 - 8008c6c: 2b00 cmp r3, #0 - 8008c6e: d005 beq.n 8008c7c - { - MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16); - 8008c70: 4b58 ldr r3, [pc, #352] ; (8008dd4 ) - 8008c72: 689b ldr r3, [r3, #8] - 8008c74: 4a57 ldr r2, [pc, #348] ; (8008dd4 ) - 8008c76: f443 53e0 orr.w r3, r3, #7168 ; 0x1c00 - 8008c7a: 6093 str r3, [r2, #8] - } - - if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) - 8008c7c: 687b ldr r3, [r7, #4] - 8008c7e: 681b ldr r3, [r3, #0] - 8008c80: f003 0308 and.w r3, r3, #8 - 8008c84: 2b00 cmp r3, #0 - 8008c86: d005 beq.n 8008c94 - { - MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3)); - 8008c88: 4b52 ldr r3, [pc, #328] ; (8008dd4 ) - 8008c8a: 689b ldr r3, [r3, #8] - 8008c8c: 4a51 ldr r2, [pc, #324] ; (8008dd4 ) - 8008c8e: f443 4360 orr.w r3, r3, #57344 ; 0xe000 - 8008c92: 6093 str r3, [r2, #8] - } - - /* Set the new HCLK clock divider */ - assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider)); - MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider); - 8008c94: 4b4f ldr r3, [pc, #316] ; (8008dd4 ) - 8008c96: 689b ldr r3, [r3, #8] - 8008c98: f023 02f0 bic.w r2, r3, #240 ; 0xf0 - 8008c9c: 687b ldr r3, [r7, #4] - 8008c9e: 689b ldr r3, [r3, #8] - 8008ca0: 494c ldr r1, [pc, #304] ; (8008dd4 ) - 8008ca2: 4313 orrs r3, r2 - 8008ca4: 608b str r3, [r1, #8] - } - - /*------------------------- SYSCLK Configuration ---------------------------*/ - if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK) - 8008ca6: 687b ldr r3, [r7, #4] - 8008ca8: 681b ldr r3, [r3, #0] - 8008caa: f003 0301 and.w r3, r3, #1 - 8008cae: 2b00 cmp r3, #0 - 8008cb0: d040 beq.n 8008d34 - { - assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource)); - - /* HSE is selected as System Clock Source */ - if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE) - 8008cb2: 687b ldr r3, [r7, #4] - 8008cb4: 685b ldr r3, [r3, #4] - 8008cb6: 2b01 cmp r3, #1 - 8008cb8: d107 bne.n 8008cca - { - /* Check the HSE ready flag */ - if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) - 8008cba: 4b46 ldr r3, [pc, #280] ; (8008dd4 ) - 8008cbc: 681b ldr r3, [r3, #0] - 8008cbe: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8008cc2: 2b00 cmp r3, #0 - 8008cc4: d115 bne.n 8008cf2 - { - return HAL_ERROR; - 8008cc6: 2301 movs r3, #1 - 8008cc8: e07d b.n 8008dc6 - } - } - /* PLL is selected as System Clock Source */ - else if(RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) - 8008cca: 687b ldr r3, [r7, #4] - 8008ccc: 685b ldr r3, [r3, #4] - 8008cce: 2b02 cmp r3, #2 - 8008cd0: d107 bne.n 8008ce2 - { - /* Check the PLL ready flag */ - if(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET) - 8008cd2: 4b40 ldr r3, [pc, #256] ; (8008dd4 ) - 8008cd4: 681b ldr r3, [r3, #0] - 8008cd6: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 8008cda: 2b00 cmp r3, #0 - 8008cdc: d109 bne.n 8008cf2 - { - return HAL_ERROR; - 8008cde: 2301 movs r3, #1 - 8008ce0: e071 b.n 8008dc6 - } - /* HSI is selected as System Clock Source */ - else - { - /* Check the HSI ready flag */ - if(__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET) - 8008ce2: 4b3c ldr r3, [pc, #240] ; (8008dd4 ) - 8008ce4: 681b ldr r3, [r3, #0] - 8008ce6: f003 0302 and.w r3, r3, #2 - 8008cea: 2b00 cmp r3, #0 - 8008cec: d101 bne.n 8008cf2 - { - return HAL_ERROR; - 8008cee: 2301 movs r3, #1 - 8008cf0: e069 b.n 8008dc6 - } - } - - __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource); - 8008cf2: 4b38 ldr r3, [pc, #224] ; (8008dd4 ) - 8008cf4: 689b ldr r3, [r3, #8] - 8008cf6: f023 0203 bic.w r2, r3, #3 - 8008cfa: 687b ldr r3, [r7, #4] - 8008cfc: 685b ldr r3, [r3, #4] - 8008cfe: 4935 ldr r1, [pc, #212] ; (8008dd4 ) - 8008d00: 4313 orrs r3, r2 - 8008d02: 608b str r3, [r1, #8] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8008d04: f7ff f9c6 bl 8008094 - 8008d08: 60f8 str r0, [r7, #12] - - while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 8008d0a: e00a b.n 8008d22 - { - if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE) - 8008d0c: f7ff f9c2 bl 8008094 - 8008d10: 4602 mov r2, r0 - 8008d12: 68fb ldr r3, [r7, #12] - 8008d14: 1ad3 subs r3, r2, r3 - 8008d16: f241 3288 movw r2, #5000 ; 0x1388 - 8008d1a: 4293 cmp r3, r2 - 8008d1c: d901 bls.n 8008d22 - { - return HAL_TIMEOUT; - 8008d1e: 2303 movs r3, #3 - 8008d20: e051 b.n 8008dc6 - while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos)) - 8008d22: 4b2c ldr r3, [pc, #176] ; (8008dd4 ) - 8008d24: 689b ldr r3, [r3, #8] - 8008d26: f003 020c and.w r2, r3, #12 - 8008d2a: 687b ldr r3, [r7, #4] - 8008d2c: 685b ldr r3, [r3, #4] - 8008d2e: 009b lsls r3, r3, #2 - 8008d30: 429a cmp r2, r3 - 8008d32: d1eb bne.n 8008d0c - } - } - } - - /* Decreasing the number of wait states because of lower CPU frequency */ - if(FLatency < __HAL_FLASH_GET_LATENCY()) - 8008d34: 4b26 ldr r3, [pc, #152] ; (8008dd0 ) - 8008d36: 681b ldr r3, [r3, #0] - 8008d38: f003 030f and.w r3, r3, #15 - 8008d3c: 683a ldr r2, [r7, #0] - 8008d3e: 429a cmp r2, r3 - 8008d40: d210 bcs.n 8008d64 - { - /* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */ - __HAL_FLASH_SET_LATENCY(FLatency); - 8008d42: 4b23 ldr r3, [pc, #140] ; (8008dd0 ) - 8008d44: 681b ldr r3, [r3, #0] - 8008d46: f023 020f bic.w r2, r3, #15 - 8008d4a: 4921 ldr r1, [pc, #132] ; (8008dd0 ) - 8008d4c: 683b ldr r3, [r7, #0] - 8008d4e: 4313 orrs r3, r2 - 8008d50: 600b str r3, [r1, #0] - - /* Check that the new number of wait states is taken into account to access the Flash - memory by reading the FLASH_ACR register */ - if(__HAL_FLASH_GET_LATENCY() != FLatency) - 8008d52: 4b1f ldr r3, [pc, #124] ; (8008dd0 ) - 8008d54: 681b ldr r3, [r3, #0] - 8008d56: f003 030f and.w r3, r3, #15 - 8008d5a: 683a ldr r2, [r7, #0] - 8008d5c: 429a cmp r2, r3 - 8008d5e: d001 beq.n 8008d64 - { - return HAL_ERROR; - 8008d60: 2301 movs r3, #1 - 8008d62: e030 b.n 8008dc6 - } - } - - /*-------------------------- PCLK1 Configuration ---------------------------*/ - if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1) - 8008d64: 687b ldr r3, [r7, #4] - 8008d66: 681b ldr r3, [r3, #0] - 8008d68: f003 0304 and.w r3, r3, #4 - 8008d6c: 2b00 cmp r3, #0 - 8008d6e: d008 beq.n 8008d82 - { - assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider)); - MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider); - 8008d70: 4b18 ldr r3, [pc, #96] ; (8008dd4 ) - 8008d72: 689b ldr r3, [r3, #8] - 8008d74: f423 52e0 bic.w r2, r3, #7168 ; 0x1c00 - 8008d78: 687b ldr r3, [r7, #4] - 8008d7a: 68db ldr r3, [r3, #12] - 8008d7c: 4915 ldr r1, [pc, #84] ; (8008dd4 ) - 8008d7e: 4313 orrs r3, r2 - 8008d80: 608b str r3, [r1, #8] - } - - /*-------------------------- PCLK2 Configuration ---------------------------*/ - if(((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2) - 8008d82: 687b ldr r3, [r7, #4] - 8008d84: 681b ldr r3, [r3, #0] - 8008d86: f003 0308 and.w r3, r3, #8 - 8008d8a: 2b00 cmp r3, #0 - 8008d8c: d009 beq.n 8008da2 - { - assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider)); - MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3)); - 8008d8e: 4b11 ldr r3, [pc, #68] ; (8008dd4 ) - 8008d90: 689b ldr r3, [r3, #8] - 8008d92: f423 4260 bic.w r2, r3, #57344 ; 0xe000 - 8008d96: 687b ldr r3, [r7, #4] - 8008d98: 691b ldr r3, [r3, #16] - 8008d9a: 00db lsls r3, r3, #3 - 8008d9c: 490d ldr r1, [pc, #52] ; (8008dd4 ) - 8008d9e: 4313 orrs r3, r2 - 8008da0: 608b str r3, [r1, #8] - } - - /* Update the SystemCoreClock global variable */ - SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE)>> RCC_CFGR_HPRE_Pos]; - 8008da2: f000 f81d bl 8008de0 - 8008da6: 4601 mov r1, r0 - 8008da8: 4b0a ldr r3, [pc, #40] ; (8008dd4 ) - 8008daa: 689b ldr r3, [r3, #8] - 8008dac: 091b lsrs r3, r3, #4 - 8008dae: f003 030f and.w r3, r3, #15 - 8008db2: 4a09 ldr r2, [pc, #36] ; (8008dd8 ) - 8008db4: 5cd3 ldrb r3, [r2, r3] - 8008db6: fa21 f303 lsr.w r3, r1, r3 - 8008dba: 4a08 ldr r2, [pc, #32] ; (8008ddc ) - 8008dbc: 6013 str r3, [r2, #0] - - /* Configure the source of time base considering new system clocks settings*/ - HAL_InitTick (TICK_INT_PRIORITY); - 8008dbe: 2000 movs r0, #0 - 8008dc0: f7ff f924 bl 800800c - - return HAL_OK; - 8008dc4: 2300 movs r3, #0 -} - 8008dc6: 4618 mov r0, r3 - 8008dc8: 3710 adds r7, #16 - 8008dca: 46bd mov sp, r7 - 8008dcc: bd80 pop {r7, pc} - 8008dce: bf00 nop - 8008dd0: 40023c00 .word 0x40023c00 - 8008dd4: 40023800 .word 0x40023800 - 8008dd8: 08012378 .word 0x08012378 - 8008ddc: 20000008 .word 0x20000008 - -08008de0 : - * - * - * @retval SYSCLK frequency - */ -uint32_t HAL_RCC_GetSysClockFreq(void) -{ - 8008de0: b5f0 push {r4, r5, r6, r7, lr} - 8008de2: b085 sub sp, #20 - 8008de4: af00 add r7, sp, #0 - uint32_t pllm = 0, pllvco = 0, pllp = 0; - 8008de6: 2300 movs r3, #0 - 8008de8: 607b str r3, [r7, #4] - 8008dea: 2300 movs r3, #0 - 8008dec: 60fb str r3, [r7, #12] - 8008dee: 2300 movs r3, #0 - 8008df0: 603b str r3, [r7, #0] - uint32_t sysclockfreq = 0; - 8008df2: 2300 movs r3, #0 - 8008df4: 60bb str r3, [r7, #8] - - /* Get SYSCLK source -------------------------------------------------------*/ - switch (RCC->CFGR & RCC_CFGR_SWS) - 8008df6: 4b50 ldr r3, [pc, #320] ; (8008f38 ) - 8008df8: 689b ldr r3, [r3, #8] - 8008dfa: f003 030c and.w r3, r3, #12 - 8008dfe: 2b04 cmp r3, #4 - 8008e00: d007 beq.n 8008e12 - 8008e02: 2b08 cmp r3, #8 - 8008e04: d008 beq.n 8008e18 - 8008e06: 2b00 cmp r3, #0 - 8008e08: f040 808d bne.w 8008f26 - { - case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ - { - sysclockfreq = HSI_VALUE; - 8008e0c: 4b4b ldr r3, [pc, #300] ; (8008f3c ) - 8008e0e: 60bb str r3, [r7, #8] - break; - 8008e10: e08c b.n 8008f2c - } - case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock source */ - { - sysclockfreq = HSE_VALUE; - 8008e12: 4b4b ldr r3, [pc, #300] ; (8008f40 ) - 8008e14: 60bb str r3, [r7, #8] - break; - 8008e16: e089 b.n 8008f2c - } - case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock source */ - { - /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN - SYSCLK = PLL_VCO / PLLP */ - pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; - 8008e18: 4b47 ldr r3, [pc, #284] ; (8008f38 ) - 8008e1a: 685b ldr r3, [r3, #4] - 8008e1c: f003 033f and.w r3, r3, #63 ; 0x3f - 8008e20: 607b str r3, [r7, #4] - if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLCFGR_PLLSRC_HSI) - 8008e22: 4b45 ldr r3, [pc, #276] ; (8008f38 ) - 8008e24: 685b ldr r3, [r3, #4] - 8008e26: f403 0380 and.w r3, r3, #4194304 ; 0x400000 - 8008e2a: 2b00 cmp r3, #0 - 8008e2c: d023 beq.n 8008e76 - { - /* HSE used as PLL clock source */ - pllvco = (uint32_t) ((((uint64_t) HSE_VALUE * ((uint64_t) ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); - 8008e2e: 4b42 ldr r3, [pc, #264] ; (8008f38 ) - 8008e30: 685b ldr r3, [r3, #4] - 8008e32: 099b lsrs r3, r3, #6 - 8008e34: f04f 0400 mov.w r4, #0 - 8008e38: f240 11ff movw r1, #511 ; 0x1ff - 8008e3c: f04f 0200 mov.w r2, #0 - 8008e40: ea03 0501 and.w r5, r3, r1 - 8008e44: ea04 0602 and.w r6, r4, r2 - 8008e48: 4a3d ldr r2, [pc, #244] ; (8008f40 ) - 8008e4a: fb02 f106 mul.w r1, r2, r6 - 8008e4e: 2200 movs r2, #0 - 8008e50: fb02 f205 mul.w r2, r2, r5 - 8008e54: 440a add r2, r1 - 8008e56: 493a ldr r1, [pc, #232] ; (8008f40 ) - 8008e58: fba5 0101 umull r0, r1, r5, r1 - 8008e5c: 1853 adds r3, r2, r1 - 8008e5e: 4619 mov r1, r3 - 8008e60: 687b ldr r3, [r7, #4] - 8008e62: f04f 0400 mov.w r4, #0 - 8008e66: 461a mov r2, r3 - 8008e68: 4623 mov r3, r4 - 8008e6a: f7fd ffbb bl 8006de4 <__aeabi_uldivmod> - 8008e6e: 4603 mov r3, r0 - 8008e70: 460c mov r4, r1 - 8008e72: 60fb str r3, [r7, #12] - 8008e74: e049 b.n 8008f0a - } - else - { - /* HSI used as PLL clock source */ - pllvco = (uint32_t) ((((uint64_t) HSI_VALUE * ((uint64_t) ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm); - 8008e76: 4b30 ldr r3, [pc, #192] ; (8008f38 ) - 8008e78: 685b ldr r3, [r3, #4] - 8008e7a: 099b lsrs r3, r3, #6 - 8008e7c: f04f 0400 mov.w r4, #0 - 8008e80: f240 11ff movw r1, #511 ; 0x1ff - 8008e84: f04f 0200 mov.w r2, #0 - 8008e88: ea03 0501 and.w r5, r3, r1 - 8008e8c: ea04 0602 and.w r6, r4, r2 - 8008e90: 4629 mov r1, r5 - 8008e92: 4632 mov r2, r6 - 8008e94: f04f 0300 mov.w r3, #0 - 8008e98: f04f 0400 mov.w r4, #0 - 8008e9c: 0154 lsls r4, r2, #5 - 8008e9e: ea44 64d1 orr.w r4, r4, r1, lsr #27 - 8008ea2: 014b lsls r3, r1, #5 - 8008ea4: 4619 mov r1, r3 - 8008ea6: 4622 mov r2, r4 - 8008ea8: 1b49 subs r1, r1, r5 - 8008eaa: eb62 0206 sbc.w r2, r2, r6 - 8008eae: f04f 0300 mov.w r3, #0 - 8008eb2: f04f 0400 mov.w r4, #0 - 8008eb6: 0194 lsls r4, r2, #6 - 8008eb8: ea44 6491 orr.w r4, r4, r1, lsr #26 - 8008ebc: 018b lsls r3, r1, #6 - 8008ebe: 1a5b subs r3, r3, r1 - 8008ec0: eb64 0402 sbc.w r4, r4, r2 - 8008ec4: f04f 0100 mov.w r1, #0 - 8008ec8: f04f 0200 mov.w r2, #0 - 8008ecc: 00e2 lsls r2, r4, #3 - 8008ece: ea42 7253 orr.w r2, r2, r3, lsr #29 - 8008ed2: 00d9 lsls r1, r3, #3 - 8008ed4: 460b mov r3, r1 - 8008ed6: 4614 mov r4, r2 - 8008ed8: 195b adds r3, r3, r5 - 8008eda: eb44 0406 adc.w r4, r4, r6 - 8008ede: f04f 0100 mov.w r1, #0 - 8008ee2: f04f 0200 mov.w r2, #0 - 8008ee6: 02a2 lsls r2, r4, #10 - 8008ee8: ea42 5293 orr.w r2, r2, r3, lsr #22 - 8008eec: 0299 lsls r1, r3, #10 - 8008eee: 460b mov r3, r1 - 8008ef0: 4614 mov r4, r2 - 8008ef2: 4618 mov r0, r3 - 8008ef4: 4621 mov r1, r4 - 8008ef6: 687b ldr r3, [r7, #4] - 8008ef8: f04f 0400 mov.w r4, #0 - 8008efc: 461a mov r2, r3 - 8008efe: 4623 mov r3, r4 - 8008f00: f7fd ff70 bl 8006de4 <__aeabi_uldivmod> - 8008f04: 4603 mov r3, r0 - 8008f06: 460c mov r4, r1 - 8008f08: 60fb str r3, [r7, #12] - } - pllp = ((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >> RCC_PLLCFGR_PLLP_Pos) + 1 ) *2); - 8008f0a: 4b0b ldr r3, [pc, #44] ; (8008f38 ) - 8008f0c: 685b ldr r3, [r3, #4] - 8008f0e: 0c1b lsrs r3, r3, #16 - 8008f10: f003 0303 and.w r3, r3, #3 - 8008f14: 3301 adds r3, #1 - 8008f16: 005b lsls r3, r3, #1 - 8008f18: 603b str r3, [r7, #0] - - sysclockfreq = pllvco/pllp; - 8008f1a: 68fa ldr r2, [r7, #12] - 8008f1c: 683b ldr r3, [r7, #0] - 8008f1e: fbb2 f3f3 udiv r3, r2, r3 - 8008f22: 60bb str r3, [r7, #8] - break; - 8008f24: e002 b.n 8008f2c - } - default: - { - sysclockfreq = HSI_VALUE; - 8008f26: 4b05 ldr r3, [pc, #20] ; (8008f3c ) - 8008f28: 60bb str r3, [r7, #8] - break; - 8008f2a: bf00 nop - } - } - return sysclockfreq; - 8008f2c: 68bb ldr r3, [r7, #8] -} - 8008f2e: 4618 mov r0, r3 - 8008f30: 3714 adds r7, #20 - 8008f32: 46bd mov sp, r7 - 8008f34: bdf0 pop {r4, r5, r6, r7, pc} - 8008f36: bf00 nop - 8008f38: 40023800 .word 0x40023800 - 8008f3c: 00f42400 .word 0x00f42400 - 8008f40: 017d7840 .word 0x017d7840 - -08008f44 : - * right HCLK value. Otherwise, any configuration based on this function will be incorrect. - * @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency. - * @retval HCLK frequency - */ -uint32_t HAL_RCC_GetHCLKFreq(void) -{ - 8008f44: b480 push {r7} - 8008f46: af00 add r7, sp, #0 - return SystemCoreClock; - 8008f48: 4b03 ldr r3, [pc, #12] ; (8008f58 ) - 8008f4a: 681b ldr r3, [r3, #0] -} - 8008f4c: 4618 mov r0, r3 - 8008f4e: 46bd mov sp, r7 - 8008f50: f85d 7b04 ldr.w r7, [sp], #4 - 8008f54: 4770 bx lr - 8008f56: bf00 nop - 8008f58: 20000008 .word 0x20000008 - -08008f5c : - * @note Each time PCLK1 changes, this function must be called to update the - * right PCLK1 value. Otherwise, any configuration based on this function will be incorrect. - * @retval PCLK1 frequency - */ -uint32_t HAL_RCC_GetPCLK1Freq(void) -{ - 8008f5c: b580 push {r7, lr} - 8008f5e: af00 add r7, sp, #0 - /* Get HCLK source and Compute PCLK1 frequency ---------------------------*/ - return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE1)>> RCC_CFGR_PPRE1_Pos]); - 8008f60: f7ff fff0 bl 8008f44 - 8008f64: 4601 mov r1, r0 - 8008f66: 4b05 ldr r3, [pc, #20] ; (8008f7c ) - 8008f68: 689b ldr r3, [r3, #8] - 8008f6a: 0a9b lsrs r3, r3, #10 - 8008f6c: f003 0307 and.w r3, r3, #7 - 8008f70: 4a03 ldr r2, [pc, #12] ; (8008f80 ) - 8008f72: 5cd3 ldrb r3, [r2, r3] - 8008f74: fa21 f303 lsr.w r3, r1, r3 -} - 8008f78: 4618 mov r0, r3 - 8008f7a: bd80 pop {r7, pc} - 8008f7c: 40023800 .word 0x40023800 - 8008f80: 08012388 .word 0x08012388 - -08008f84 : - * @note Each time PCLK2 changes, this function must be called to update the - * right PCLK2 value. Otherwise, any configuration based on this function will be incorrect. - * @retval PCLK2 frequency - */ -uint32_t HAL_RCC_GetPCLK2Freq(void) -{ - 8008f84: b580 push {r7, lr} - 8008f86: af00 add r7, sp, #0 - /* Get HCLK source and Compute PCLK2 frequency ---------------------------*/ - return (HAL_RCC_GetHCLKFreq()>> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE2)>> RCC_CFGR_PPRE2_Pos]); - 8008f88: f7ff ffdc bl 8008f44 - 8008f8c: 4601 mov r1, r0 - 8008f8e: 4b05 ldr r3, [pc, #20] ; (8008fa4 ) - 8008f90: 689b ldr r3, [r3, #8] - 8008f92: 0b5b lsrs r3, r3, #13 - 8008f94: f003 0307 and.w r3, r3, #7 - 8008f98: 4a03 ldr r2, [pc, #12] ; (8008fa8 ) - 8008f9a: 5cd3 ldrb r3, [r2, r3] - 8008f9c: fa21 f303 lsr.w r3, r1, r3 -} - 8008fa0: 4618 mov r0, r3 - 8008fa2: bd80 pop {r7, pc} - 8008fa4: 40023800 .word 0x40023800 - 8008fa8: 08012388 .word 0x08012388 - -08008fac : - * the backup registers) are set to their reset values. - * - * @retval HAL status - */ -HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit) -{ - 8008fac: b580 push {r7, lr} - 8008fae: b088 sub sp, #32 - 8008fb0: af00 add r7, sp, #0 - 8008fb2: 6078 str r0, [r7, #4] - uint32_t tickstart = 0; - 8008fb4: 2300 movs r3, #0 - 8008fb6: 617b str r3, [r7, #20] - uint32_t tmpreg0 = 0; - 8008fb8: 2300 movs r3, #0 - 8008fba: 613b str r3, [r7, #16] - uint32_t tmpreg1 = 0; - 8008fbc: 2300 movs r3, #0 - 8008fbe: 60fb str r3, [r7, #12] - uint32_t plli2sused = 0; - 8008fc0: 2300 movs r3, #0 - 8008fc2: 61fb str r3, [r7, #28] - uint32_t pllsaiused = 0; - 8008fc4: 2300 movs r3, #0 - 8008fc6: 61bb str r3, [r7, #24] - - /* Check the parameters */ - assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection)); - - /*----------------------------------- I2S configuration ----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == (RCC_PERIPHCLK_I2S)) - 8008fc8: 687b ldr r3, [r7, #4] - 8008fca: 681b ldr r3, [r3, #0] - 8008fcc: f003 0301 and.w r3, r3, #1 - 8008fd0: 2b00 cmp r3, #0 - 8008fd2: d012 beq.n 8008ffa - { - /* Check the parameters */ - assert_param(IS_RCC_I2SCLKSOURCE(PeriphClkInit->I2sClockSelection)); - - /* Configure I2S Clock source */ - __HAL_RCC_I2S_CONFIG(PeriphClkInit->I2sClockSelection); - 8008fd4: 4b69 ldr r3, [pc, #420] ; (800917c ) - 8008fd6: 689b ldr r3, [r3, #8] - 8008fd8: 4a68 ldr r2, [pc, #416] ; (800917c ) - 8008fda: f423 0300 bic.w r3, r3, #8388608 ; 0x800000 - 8008fde: 6093 str r3, [r2, #8] - 8008fe0: 4b66 ldr r3, [pc, #408] ; (800917c ) - 8008fe2: 689a ldr r2, [r3, #8] - 8008fe4: 687b ldr r3, [r7, #4] - 8008fe6: 6b5b ldr r3, [r3, #52] ; 0x34 - 8008fe8: 4964 ldr r1, [pc, #400] ; (800917c ) - 8008fea: 4313 orrs r3, r2 - 8008fec: 608b str r3, [r1, #8] - - /* Enable the PLLI2S when it's used as clock source for I2S */ - if(PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S) - 8008fee: 687b ldr r3, [r7, #4] - 8008ff0: 6b5b ldr r3, [r3, #52] ; 0x34 - 8008ff2: 2b00 cmp r3, #0 - 8008ff4: d101 bne.n 8008ffa - { - plli2sused = 1; - 8008ff6: 2301 movs r3, #1 - 8008ff8: 61fb str r3, [r7, #28] - } - } - - /*------------------------------------ SAI1 configuration --------------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == (RCC_PERIPHCLK_SAI1)) - 8008ffa: 687b ldr r3, [r7, #4] - 8008ffc: 681b ldr r3, [r3, #0] - 8008ffe: f403 2300 and.w r3, r3, #524288 ; 0x80000 - 8009002: 2b00 cmp r3, #0 - 8009004: d017 beq.n 8009036 - { - /* Check the parameters */ - assert_param(IS_RCC_SAI1CLKSOURCE(PeriphClkInit->Sai1ClockSelection)); - - /* Configure SAI1 Clock source */ - __HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection); - 8009006: 4b5d ldr r3, [pc, #372] ; (800917c ) - 8009008: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c - 800900c: f423 1240 bic.w r2, r3, #3145728 ; 0x300000 - 8009010: 687b ldr r3, [r7, #4] - 8009012: 6bdb ldr r3, [r3, #60] ; 0x3c - 8009014: 4959 ldr r1, [pc, #356] ; (800917c ) - 8009016: 4313 orrs r3, r2 - 8009018: f8c1 308c str.w r3, [r1, #140] ; 0x8c - /* Enable the PLLI2S when it's used as clock source for SAI */ - if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S) - 800901c: 687b ldr r3, [r7, #4] - 800901e: 6bdb ldr r3, [r3, #60] ; 0x3c - 8009020: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 - 8009024: d101 bne.n 800902a - { - plli2sused = 1; - 8009026: 2301 movs r3, #1 - 8009028: 61fb str r3, [r7, #28] - } - /* Enable the PLLSAI when it's used as clock source for SAI */ - if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI) - 800902a: 687b ldr r3, [r7, #4] - 800902c: 6bdb ldr r3, [r3, #60] ; 0x3c - 800902e: 2b00 cmp r3, #0 - 8009030: d101 bne.n 8009036 - { - pllsaiused = 1; - 8009032: 2301 movs r3, #1 - 8009034: 61bb str r3, [r7, #24] - } - } - - /*------------------------------------ SAI2 configuration --------------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == (RCC_PERIPHCLK_SAI2)) - 8009036: 687b ldr r3, [r7, #4] - 8009038: 681b ldr r3, [r3, #0] - 800903a: f403 1380 and.w r3, r3, #1048576 ; 0x100000 - 800903e: 2b00 cmp r3, #0 - 8009040: d017 beq.n 8009072 - { - /* Check the parameters */ - assert_param(IS_RCC_SAI2CLKSOURCE(PeriphClkInit->Sai2ClockSelection)); - - /* Configure SAI2 Clock source */ - __HAL_RCC_SAI2_CONFIG(PeriphClkInit->Sai2ClockSelection); - 8009042: 4b4e ldr r3, [pc, #312] ; (800917c ) - 8009044: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c - 8009048: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000 - 800904c: 687b ldr r3, [r7, #4] - 800904e: 6c1b ldr r3, [r3, #64] ; 0x40 - 8009050: 494a ldr r1, [pc, #296] ; (800917c ) - 8009052: 4313 orrs r3, r2 - 8009054: f8c1 308c str.w r3, [r1, #140] ; 0x8c - - /* Enable the PLLI2S when it's used as clock source for SAI */ - if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S) - 8009058: 687b ldr r3, [r7, #4] - 800905a: 6c1b ldr r3, [r3, #64] ; 0x40 - 800905c: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 - 8009060: d101 bne.n 8009066 - { - plli2sused = 1; - 8009062: 2301 movs r3, #1 - 8009064: 61fb str r3, [r7, #28] - } - /* Enable the PLLSAI when it's used as clock source for SAI */ - if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI) - 8009066: 687b ldr r3, [r7, #4] - 8009068: 6c1b ldr r3, [r3, #64] ; 0x40 - 800906a: 2b00 cmp r3, #0 - 800906c: d101 bne.n 8009072 - { - pllsaiused = 1; - 800906e: 2301 movs r3, #1 - 8009070: 61bb str r3, [r7, #24] - } - } - - /*-------------------------------------- SPDIF-RX Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX) - 8009072: 687b ldr r3, [r7, #4] - 8009074: 681b ldr r3, [r3, #0] - 8009076: f003 7380 and.w r3, r3, #16777216 ; 0x1000000 - 800907a: 2b00 cmp r3, #0 - 800907c: d001 beq.n 8009082 - { - plli2sused = 1; - 800907e: 2301 movs r3, #1 - 8009080: 61fb str r3, [r7, #28] - } - - /*------------------------------------ RTC configuration --------------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == (RCC_PERIPHCLK_RTC)) - 8009082: 687b ldr r3, [r7, #4] - 8009084: 681b ldr r3, [r3, #0] - 8009086: f003 0320 and.w r3, r3, #32 - 800908a: 2b00 cmp r3, #0 - 800908c: f000 808b beq.w 80091a6 - { - /* Check for RTC Parameters used to output RTCCLK */ - assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection)); - - /* Enable Power Clock*/ - __HAL_RCC_PWR_CLK_ENABLE(); - 8009090: 4b3a ldr r3, [pc, #232] ; (800917c ) - 8009092: 6c1b ldr r3, [r3, #64] ; 0x40 - 8009094: 4a39 ldr r2, [pc, #228] ; (800917c ) - 8009096: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 800909a: 6413 str r3, [r2, #64] ; 0x40 - 800909c: 4b37 ldr r3, [pc, #220] ; (800917c ) - 800909e: 6c1b ldr r3, [r3, #64] ; 0x40 - 80090a0: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 80090a4: 60bb str r3, [r7, #8] - 80090a6: 68bb ldr r3, [r7, #8] - - /* Enable write access to Backup domain */ - PWR->CR1 |= PWR_CR1_DBP; - 80090a8: 4b35 ldr r3, [pc, #212] ; (8009180 ) - 80090aa: 681b ldr r3, [r3, #0] - 80090ac: 4a34 ldr r2, [pc, #208] ; (8009180 ) - 80090ae: f443 7380 orr.w r3, r3, #256 ; 0x100 - 80090b2: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 80090b4: f7fe ffee bl 8008094 - 80090b8: 6178 str r0, [r7, #20] - - /* Wait for Backup domain Write protection disable */ - while((PWR->CR1 & PWR_CR1_DBP) == RESET) - 80090ba: e008 b.n 80090ce - { - if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE) - 80090bc: f7fe ffea bl 8008094 - 80090c0: 4602 mov r2, r0 - 80090c2: 697b ldr r3, [r7, #20] - 80090c4: 1ad3 subs r3, r2, r3 - 80090c6: 2b64 cmp r3, #100 ; 0x64 - 80090c8: d901 bls.n 80090ce - { - return HAL_TIMEOUT; - 80090ca: 2303 movs r3, #3 - 80090cc: e38d b.n 80097ea - while((PWR->CR1 & PWR_CR1_DBP) == RESET) - 80090ce: 4b2c ldr r3, [pc, #176] ; (8009180 ) - 80090d0: 681b ldr r3, [r3, #0] - 80090d2: f403 7380 and.w r3, r3, #256 ; 0x100 - 80090d6: 2b00 cmp r3, #0 - 80090d8: d0f0 beq.n 80090bc - } - } - - /* Reset the Backup domain only if the RTC Clock source selection is modified */ - tmpreg0 = (RCC->BDCR & RCC_BDCR_RTCSEL); - 80090da: 4b28 ldr r3, [pc, #160] ; (800917c ) - 80090dc: 6f1b ldr r3, [r3, #112] ; 0x70 - 80090de: f403 7340 and.w r3, r3, #768 ; 0x300 - 80090e2: 613b str r3, [r7, #16] - - if((tmpreg0 != 0x00000000U) && (tmpreg0 != (PeriphClkInit->RTCClockSelection & RCC_BDCR_RTCSEL))) - 80090e4: 693b ldr r3, [r7, #16] - 80090e6: 2b00 cmp r3, #0 - 80090e8: d035 beq.n 8009156 - 80090ea: 687b ldr r3, [r7, #4] - 80090ec: 6b1b ldr r3, [r3, #48] ; 0x30 - 80090ee: f403 7340 and.w r3, r3, #768 ; 0x300 - 80090f2: 693a ldr r2, [r7, #16] - 80090f4: 429a cmp r2, r3 - 80090f6: d02e beq.n 8009156 - { - /* Store the content of BDCR register before the reset of Backup Domain */ - tmpreg0 = (RCC->BDCR & ~(RCC_BDCR_RTCSEL)); - 80090f8: 4b20 ldr r3, [pc, #128] ; (800917c ) - 80090fa: 6f1b ldr r3, [r3, #112] ; 0x70 - 80090fc: f423 7340 bic.w r3, r3, #768 ; 0x300 - 8009100: 613b str r3, [r7, #16] - - /* RTC Clock selection can be changed only if the Backup Domain is reset */ - __HAL_RCC_BACKUPRESET_FORCE(); - 8009102: 4b1e ldr r3, [pc, #120] ; (800917c ) - 8009104: 6f1b ldr r3, [r3, #112] ; 0x70 - 8009106: 4a1d ldr r2, [pc, #116] ; (800917c ) - 8009108: f443 3380 orr.w r3, r3, #65536 ; 0x10000 - 800910c: 6713 str r3, [r2, #112] ; 0x70 - __HAL_RCC_BACKUPRESET_RELEASE(); - 800910e: 4b1b ldr r3, [pc, #108] ; (800917c ) - 8009110: 6f1b ldr r3, [r3, #112] ; 0x70 - 8009112: 4a1a ldr r2, [pc, #104] ; (800917c ) - 8009114: f423 3380 bic.w r3, r3, #65536 ; 0x10000 - 8009118: 6713 str r3, [r2, #112] ; 0x70 - - /* Restore the Content of BDCR register */ - RCC->BDCR = tmpreg0; - 800911a: 4a18 ldr r2, [pc, #96] ; (800917c ) - 800911c: 693b ldr r3, [r7, #16] - 800911e: 6713 str r3, [r2, #112] ; 0x70 - - /* Wait for LSE reactivation if LSE was enable prior to Backup Domain reset */ - if (HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSEON)) - 8009120: 4b16 ldr r3, [pc, #88] ; (800917c ) - 8009122: 6f1b ldr r3, [r3, #112] ; 0x70 - 8009124: f003 0301 and.w r3, r3, #1 - 8009128: 2b01 cmp r3, #1 - 800912a: d114 bne.n 8009156 - { - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 800912c: f7fe ffb2 bl 8008094 - 8009130: 6178 str r0, [r7, #20] - - /* Wait till LSE is ready */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) - 8009132: e00a b.n 800914a - { - if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE) - 8009134: f7fe ffae bl 8008094 - 8009138: 4602 mov r2, r0 - 800913a: 697b ldr r3, [r7, #20] - 800913c: 1ad3 subs r3, r2, r3 - 800913e: f241 3288 movw r2, #5000 ; 0x1388 - 8009142: 4293 cmp r3, r2 - 8009144: d901 bls.n 800914a - { - return HAL_TIMEOUT; - 8009146: 2303 movs r3, #3 - 8009148: e34f b.n 80097ea - while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) - 800914a: 4b0c ldr r3, [pc, #48] ; (800917c ) - 800914c: 6f1b ldr r3, [r3, #112] ; 0x70 - 800914e: f003 0302 and.w r3, r3, #2 - 8009152: 2b00 cmp r3, #0 - 8009154: d0ee beq.n 8009134 - } - } - } - } - __HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection); - 8009156: 687b ldr r3, [r7, #4] - 8009158: 6b1b ldr r3, [r3, #48] ; 0x30 - 800915a: f403 7340 and.w r3, r3, #768 ; 0x300 - 800915e: f5b3 7f40 cmp.w r3, #768 ; 0x300 - 8009162: d111 bne.n 8009188 - 8009164: 4b05 ldr r3, [pc, #20] ; (800917c ) - 8009166: 689b ldr r3, [r3, #8] - 8009168: f423 12f8 bic.w r2, r3, #2031616 ; 0x1f0000 - 800916c: 687b ldr r3, [r7, #4] - 800916e: 6b19 ldr r1, [r3, #48] ; 0x30 - 8009170: 4b04 ldr r3, [pc, #16] ; (8009184 ) - 8009172: 400b ands r3, r1 - 8009174: 4901 ldr r1, [pc, #4] ; (800917c ) - 8009176: 4313 orrs r3, r2 - 8009178: 608b str r3, [r1, #8] - 800917a: e00b b.n 8009194 - 800917c: 40023800 .word 0x40023800 - 8009180: 40007000 .word 0x40007000 - 8009184: 0ffffcff .word 0x0ffffcff - 8009188: 4bb3 ldr r3, [pc, #716] ; (8009458 ) - 800918a: 689b ldr r3, [r3, #8] - 800918c: 4ab2 ldr r2, [pc, #712] ; (8009458 ) - 800918e: f423 13f8 bic.w r3, r3, #2031616 ; 0x1f0000 - 8009192: 6093 str r3, [r2, #8] - 8009194: 4bb0 ldr r3, [pc, #704] ; (8009458 ) - 8009196: 6f1a ldr r2, [r3, #112] ; 0x70 - 8009198: 687b ldr r3, [r7, #4] - 800919a: 6b1b ldr r3, [r3, #48] ; 0x30 - 800919c: f3c3 030b ubfx r3, r3, #0, #12 - 80091a0: 49ad ldr r1, [pc, #692] ; (8009458 ) - 80091a2: 4313 orrs r3, r2 - 80091a4: 670b str r3, [r1, #112] ; 0x70 - } - - /*------------------------------------ TIM configuration --------------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM) == (RCC_PERIPHCLK_TIM)) - 80091a6: 687b ldr r3, [r7, #4] - 80091a8: 681b ldr r3, [r3, #0] - 80091aa: f003 0310 and.w r3, r3, #16 - 80091ae: 2b00 cmp r3, #0 - 80091b0: d010 beq.n 80091d4 - { - /* Check the parameters */ - assert_param(IS_RCC_TIMPRES(PeriphClkInit->TIMPresSelection)); - - /* Configure Timer Prescaler */ - __HAL_RCC_TIMCLKPRESCALER(PeriphClkInit->TIMPresSelection); - 80091b2: 4ba9 ldr r3, [pc, #676] ; (8009458 ) - 80091b4: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c - 80091b8: 4aa7 ldr r2, [pc, #668] ; (8009458 ) - 80091ba: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000 - 80091be: f8c2 308c str.w r3, [r2, #140] ; 0x8c - 80091c2: 4ba5 ldr r3, [pc, #660] ; (8009458 ) - 80091c4: f8d3 208c ldr.w r2, [r3, #140] ; 0x8c - 80091c8: 687b ldr r3, [r7, #4] - 80091ca: 6b9b ldr r3, [r3, #56] ; 0x38 - 80091cc: 49a2 ldr r1, [pc, #648] ; (8009458 ) - 80091ce: 4313 orrs r3, r2 - 80091d0: f8c1 308c str.w r3, [r1, #140] ; 0x8c - } - - /*-------------------------------------- I2C1 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1) - 80091d4: 687b ldr r3, [r7, #4] - 80091d6: 681b ldr r3, [r3, #0] - 80091d8: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 80091dc: 2b00 cmp r3, #0 - 80091de: d00a beq.n 80091f6 - { - /* Check the parameters */ - assert_param(IS_RCC_I2C1CLKSOURCE(PeriphClkInit->I2c1ClockSelection)); - - /* Configure the I2C1 clock source */ - __HAL_RCC_I2C1_CONFIG(PeriphClkInit->I2c1ClockSelection); - 80091e0: 4b9d ldr r3, [pc, #628] ; (8009458 ) - 80091e2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 80091e6: f423 3240 bic.w r2, r3, #196608 ; 0x30000 - 80091ea: 687b ldr r3, [r7, #4] - 80091ec: 6e5b ldr r3, [r3, #100] ; 0x64 - 80091ee: 499a ldr r1, [pc, #616] ; (8009458 ) - 80091f0: 4313 orrs r3, r2 - 80091f2: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*-------------------------------------- I2C2 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2) - 80091f6: 687b ldr r3, [r7, #4] - 80091f8: 681b ldr r3, [r3, #0] - 80091fa: f403 4300 and.w r3, r3, #32768 ; 0x8000 - 80091fe: 2b00 cmp r3, #0 - 8009200: d00a beq.n 8009218 - { - /* Check the parameters */ - assert_param(IS_RCC_I2C2CLKSOURCE(PeriphClkInit->I2c2ClockSelection)); - - /* Configure the I2C2 clock source */ - __HAL_RCC_I2C2_CONFIG(PeriphClkInit->I2c2ClockSelection); - 8009202: 4b95 ldr r3, [pc, #596] ; (8009458 ) - 8009204: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8009208: f423 2240 bic.w r2, r3, #786432 ; 0xc0000 - 800920c: 687b ldr r3, [r7, #4] - 800920e: 6e9b ldr r3, [r3, #104] ; 0x68 - 8009210: 4991 ldr r1, [pc, #580] ; (8009458 ) - 8009212: 4313 orrs r3, r2 - 8009214: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*-------------------------------------- I2C3 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3) - 8009218: 687b ldr r3, [r7, #4] - 800921a: 681b ldr r3, [r3, #0] - 800921c: f403 3380 and.w r3, r3, #65536 ; 0x10000 - 8009220: 2b00 cmp r3, #0 - 8009222: d00a beq.n 800923a - { - /* Check the parameters */ - assert_param(IS_RCC_I2C3CLKSOURCE(PeriphClkInit->I2c3ClockSelection)); - - /* Configure the I2C3 clock source */ - __HAL_RCC_I2C3_CONFIG(PeriphClkInit->I2c3ClockSelection); - 8009224: 4b8c ldr r3, [pc, #560] ; (8009458 ) - 8009226: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 800922a: f423 1240 bic.w r2, r3, #3145728 ; 0x300000 - 800922e: 687b ldr r3, [r7, #4] - 8009230: 6edb ldr r3, [r3, #108] ; 0x6c - 8009232: 4989 ldr r1, [pc, #548] ; (8009458 ) - 8009234: 4313 orrs r3, r2 - 8009236: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*-------------------------------------- I2C4 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4) - 800923a: 687b ldr r3, [r7, #4] - 800923c: 681b ldr r3, [r3, #0] - 800923e: f403 3300 and.w r3, r3, #131072 ; 0x20000 - 8009242: 2b00 cmp r3, #0 - 8009244: d00a beq.n 800925c - { - /* Check the parameters */ - assert_param(IS_RCC_I2C4CLKSOURCE(PeriphClkInit->I2c4ClockSelection)); - - /* Configure the I2C4 clock source */ - __HAL_RCC_I2C4_CONFIG(PeriphClkInit->I2c4ClockSelection); - 8009246: 4b84 ldr r3, [pc, #528] ; (8009458 ) - 8009248: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 800924c: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000 - 8009250: 687b ldr r3, [r7, #4] - 8009252: 6f1b ldr r3, [r3, #112] ; 0x70 - 8009254: 4980 ldr r1, [pc, #512] ; (8009458 ) - 8009256: 4313 orrs r3, r2 - 8009258: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*-------------------------------------- USART1 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1) - 800925c: 687b ldr r3, [r7, #4] - 800925e: 681b ldr r3, [r3, #0] - 8009260: f003 0340 and.w r3, r3, #64 ; 0x40 - 8009264: 2b00 cmp r3, #0 - 8009266: d00a beq.n 800927e - { - /* Check the parameters */ - assert_param(IS_RCC_USART1CLKSOURCE(PeriphClkInit->Usart1ClockSelection)); - - /* Configure the USART1 clock source */ - __HAL_RCC_USART1_CONFIG(PeriphClkInit->Usart1ClockSelection); - 8009268: 4b7b ldr r3, [pc, #492] ; (8009458 ) - 800926a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 800926e: f023 0203 bic.w r2, r3, #3 - 8009272: 687b ldr r3, [r7, #4] - 8009274: 6c5b ldr r3, [r3, #68] ; 0x44 - 8009276: 4978 ldr r1, [pc, #480] ; (8009458 ) - 8009278: 4313 orrs r3, r2 - 800927a: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*-------------------------------------- USART2 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2) - 800927e: 687b ldr r3, [r7, #4] - 8009280: 681b ldr r3, [r3, #0] - 8009282: f003 0380 and.w r3, r3, #128 ; 0x80 - 8009286: 2b00 cmp r3, #0 - 8009288: d00a beq.n 80092a0 - { - /* Check the parameters */ - assert_param(IS_RCC_USART2CLKSOURCE(PeriphClkInit->Usart2ClockSelection)); - - /* Configure the USART2 clock source */ - __HAL_RCC_USART2_CONFIG(PeriphClkInit->Usart2ClockSelection); - 800928a: 4b73 ldr r3, [pc, #460] ; (8009458 ) - 800928c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8009290: f023 020c bic.w r2, r3, #12 - 8009294: 687b ldr r3, [r7, #4] - 8009296: 6c9b ldr r3, [r3, #72] ; 0x48 - 8009298: 496f ldr r1, [pc, #444] ; (8009458 ) - 800929a: 4313 orrs r3, r2 - 800929c: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*-------------------------------------- USART3 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3) - 80092a0: 687b ldr r3, [r7, #4] - 80092a2: 681b ldr r3, [r3, #0] - 80092a4: f403 7380 and.w r3, r3, #256 ; 0x100 - 80092a8: 2b00 cmp r3, #0 - 80092aa: d00a beq.n 80092c2 - { - /* Check the parameters */ - assert_param(IS_RCC_USART3CLKSOURCE(PeriphClkInit->Usart3ClockSelection)); - - /* Configure the USART3 clock source */ - __HAL_RCC_USART3_CONFIG(PeriphClkInit->Usart3ClockSelection); - 80092ac: 4b6a ldr r3, [pc, #424] ; (8009458 ) - 80092ae: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 80092b2: f023 0230 bic.w r2, r3, #48 ; 0x30 - 80092b6: 687b ldr r3, [r7, #4] - 80092b8: 6cdb ldr r3, [r3, #76] ; 0x4c - 80092ba: 4967 ldr r1, [pc, #412] ; (8009458 ) - 80092bc: 4313 orrs r3, r2 - 80092be: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*-------------------------------------- UART4 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4) - 80092c2: 687b ldr r3, [r7, #4] - 80092c4: 681b ldr r3, [r3, #0] - 80092c6: f403 7300 and.w r3, r3, #512 ; 0x200 - 80092ca: 2b00 cmp r3, #0 - 80092cc: d00a beq.n 80092e4 - { - /* Check the parameters */ - assert_param(IS_RCC_UART4CLKSOURCE(PeriphClkInit->Uart4ClockSelection)); - - /* Configure the UART4 clock source */ - __HAL_RCC_UART4_CONFIG(PeriphClkInit->Uart4ClockSelection); - 80092ce: 4b62 ldr r3, [pc, #392] ; (8009458 ) - 80092d0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 80092d4: f023 02c0 bic.w r2, r3, #192 ; 0xc0 - 80092d8: 687b ldr r3, [r7, #4] - 80092da: 6d1b ldr r3, [r3, #80] ; 0x50 - 80092dc: 495e ldr r1, [pc, #376] ; (8009458 ) - 80092de: 4313 orrs r3, r2 - 80092e0: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*-------------------------------------- UART5 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5) - 80092e4: 687b ldr r3, [r7, #4] - 80092e6: 681b ldr r3, [r3, #0] - 80092e8: f403 6380 and.w r3, r3, #1024 ; 0x400 - 80092ec: 2b00 cmp r3, #0 - 80092ee: d00a beq.n 8009306 - { - /* Check the parameters */ - assert_param(IS_RCC_UART5CLKSOURCE(PeriphClkInit->Uart5ClockSelection)); - - /* Configure the UART5 clock source */ - __HAL_RCC_UART5_CONFIG(PeriphClkInit->Uart5ClockSelection); - 80092f0: 4b59 ldr r3, [pc, #356] ; (8009458 ) - 80092f2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 80092f6: f423 7240 bic.w r2, r3, #768 ; 0x300 - 80092fa: 687b ldr r3, [r7, #4] - 80092fc: 6d5b ldr r3, [r3, #84] ; 0x54 - 80092fe: 4956 ldr r1, [pc, #344] ; (8009458 ) - 8009300: 4313 orrs r3, r2 - 8009302: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*-------------------------------------- USART6 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART6) == RCC_PERIPHCLK_USART6) - 8009306: 687b ldr r3, [r7, #4] - 8009308: 681b ldr r3, [r3, #0] - 800930a: f403 6300 and.w r3, r3, #2048 ; 0x800 - 800930e: 2b00 cmp r3, #0 - 8009310: d00a beq.n 8009328 - { - /* Check the parameters */ - assert_param(IS_RCC_USART6CLKSOURCE(PeriphClkInit->Usart6ClockSelection)); - - /* Configure the USART6 clock source */ - __HAL_RCC_USART6_CONFIG(PeriphClkInit->Usart6ClockSelection); - 8009312: 4b51 ldr r3, [pc, #324] ; (8009458 ) - 8009314: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8009318: f423 6240 bic.w r2, r3, #3072 ; 0xc00 - 800931c: 687b ldr r3, [r7, #4] - 800931e: 6d9b ldr r3, [r3, #88] ; 0x58 - 8009320: 494d ldr r1, [pc, #308] ; (8009458 ) - 8009322: 4313 orrs r3, r2 - 8009324: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*-------------------------------------- UART7 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART7) == RCC_PERIPHCLK_UART7) - 8009328: 687b ldr r3, [r7, #4] - 800932a: 681b ldr r3, [r3, #0] - 800932c: f403 5380 and.w r3, r3, #4096 ; 0x1000 - 8009330: 2b00 cmp r3, #0 - 8009332: d00a beq.n 800934a - { - /* Check the parameters */ - assert_param(IS_RCC_UART7CLKSOURCE(PeriphClkInit->Uart7ClockSelection)); - - /* Configure the UART7 clock source */ - __HAL_RCC_UART7_CONFIG(PeriphClkInit->Uart7ClockSelection); - 8009334: 4b48 ldr r3, [pc, #288] ; (8009458 ) - 8009336: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 800933a: f423 5240 bic.w r2, r3, #12288 ; 0x3000 - 800933e: 687b ldr r3, [r7, #4] - 8009340: 6ddb ldr r3, [r3, #92] ; 0x5c - 8009342: 4945 ldr r1, [pc, #276] ; (8009458 ) - 8009344: 4313 orrs r3, r2 - 8009346: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*-------------------------------------- UART8 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART8) == RCC_PERIPHCLK_UART8) - 800934a: 687b ldr r3, [r7, #4] - 800934c: 681b ldr r3, [r3, #0] - 800934e: f403 5300 and.w r3, r3, #8192 ; 0x2000 - 8009352: 2b00 cmp r3, #0 - 8009354: d00a beq.n 800936c - { - /* Check the parameters */ - assert_param(IS_RCC_UART8CLKSOURCE(PeriphClkInit->Uart8ClockSelection)); - - /* Configure the UART8 clock source */ - __HAL_RCC_UART8_CONFIG(PeriphClkInit->Uart8ClockSelection); - 8009356: 4b40 ldr r3, [pc, #256] ; (8009458 ) - 8009358: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 800935c: f423 4240 bic.w r2, r3, #49152 ; 0xc000 - 8009360: 687b ldr r3, [r7, #4] - 8009362: 6e1b ldr r3, [r3, #96] ; 0x60 - 8009364: 493c ldr r1, [pc, #240] ; (8009458 ) - 8009366: 4313 orrs r3, r2 - 8009368: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*--------------------------------------- CEC Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CEC) == RCC_PERIPHCLK_CEC) - 800936c: 687b ldr r3, [r7, #4] - 800936e: 681b ldr r3, [r3, #0] - 8009370: f403 0380 and.w r3, r3, #4194304 ; 0x400000 - 8009374: 2b00 cmp r3, #0 - 8009376: d00a beq.n 800938e - { - /* Check the parameters */ - assert_param(IS_RCC_CECCLKSOURCE(PeriphClkInit->CecClockSelection)); - - /* Configure the CEC clock source */ - __HAL_RCC_CEC_CONFIG(PeriphClkInit->CecClockSelection); - 8009378: 4b37 ldr r3, [pc, #220] ; (8009458 ) - 800937a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 800937e: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000 - 8009382: 687b ldr r3, [r7, #4] - 8009384: 6f9b ldr r3, [r3, #120] ; 0x78 - 8009386: 4934 ldr r1, [pc, #208] ; (8009458 ) - 8009388: 4313 orrs r3, r2 - 800938a: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*-------------------------------------- CK48 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48) - 800938e: 687b ldr r3, [r7, #4] - 8009390: 681b ldr r3, [r3, #0] - 8009392: f403 1300 and.w r3, r3, #2097152 ; 0x200000 - 8009396: 2b00 cmp r3, #0 - 8009398: d011 beq.n 80093be - { - /* Check the parameters */ - assert_param(IS_RCC_CLK48SOURCE(PeriphClkInit->Clk48ClockSelection)); - - /* Configure the CLK48 source */ - __HAL_RCC_CLK48_CONFIG(PeriphClkInit->Clk48ClockSelection); - 800939a: 4b2f ldr r3, [pc, #188] ; (8009458 ) - 800939c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 80093a0: f023 6200 bic.w r2, r3, #134217728 ; 0x8000000 - 80093a4: 687b ldr r3, [r7, #4] - 80093a6: 6fdb ldr r3, [r3, #124] ; 0x7c - 80093a8: 492b ldr r1, [pc, #172] ; (8009458 ) - 80093aa: 4313 orrs r3, r2 - 80093ac: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - - /* Enable the PLLSAI when it's used as clock source for CK48 */ - if(PeriphClkInit->Clk48ClockSelection == RCC_CLK48SOURCE_PLLSAIP) - 80093b0: 687b ldr r3, [r7, #4] - 80093b2: 6fdb ldr r3, [r3, #124] ; 0x7c - 80093b4: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000 - 80093b8: d101 bne.n 80093be - { - pllsaiused = 1; - 80093ba: 2301 movs r3, #1 - 80093bc: 61bb str r3, [r7, #24] - } - } - - /*-------------------------------------- LTDC Configuration -----------------------------------*/ -#if defined(STM32F746xx) || defined(STM32F756xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) || defined (STM32F750xx) - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == RCC_PERIPHCLK_LTDC) - 80093be: 687b ldr r3, [r7, #4] - 80093c0: 681b ldr r3, [r3, #0] - 80093c2: f003 0308 and.w r3, r3, #8 - 80093c6: 2b00 cmp r3, #0 - 80093c8: d001 beq.n 80093ce - { - pllsaiused = 1; - 80093ca: 2301 movs r3, #1 - 80093cc: 61bb str r3, [r7, #24] - } -#endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */ - - /*-------------------------------------- LPTIM1 Configuration -----------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1) - 80093ce: 687b ldr r3, [r7, #4] - 80093d0: 681b ldr r3, [r3, #0] - 80093d2: f403 2380 and.w r3, r3, #262144 ; 0x40000 - 80093d6: 2b00 cmp r3, #0 - 80093d8: d00a beq.n 80093f0 - { - /* Check the parameters */ - assert_param(IS_RCC_LPTIM1CLK(PeriphClkInit->Lptim1ClockSelection)); - - /* Configure the LTPIM1 clock source */ - __HAL_RCC_LPTIM1_CONFIG(PeriphClkInit->Lptim1ClockSelection); - 80093da: 4b1f ldr r3, [pc, #124] ; (8009458 ) - 80093dc: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 80093e0: f023 7240 bic.w r2, r3, #50331648 ; 0x3000000 - 80093e4: 687b ldr r3, [r7, #4] - 80093e6: 6f5b ldr r3, [r3, #116] ; 0x74 - 80093e8: 491b ldr r1, [pc, #108] ; (8009458 ) - 80093ea: 4313 orrs r3, r2 - 80093ec: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*------------------------------------- SDMMC1 Configuration ------------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC1) == RCC_PERIPHCLK_SDMMC1) - 80093f0: 687b ldr r3, [r7, #4] - 80093f2: 681b ldr r3, [r3, #0] - 80093f4: f403 0300 and.w r3, r3, #8388608 ; 0x800000 - 80093f8: 2b00 cmp r3, #0 - 80093fa: d00b beq.n 8009414 - { - /* Check the parameters */ - assert_param(IS_RCC_SDMMC1CLKSOURCE(PeriphClkInit->Sdmmc1ClockSelection)); - - /* Configure the SDMMC1 clock source */ - __HAL_RCC_SDMMC1_CONFIG(PeriphClkInit->Sdmmc1ClockSelection); - 80093fc: 4b16 ldr r3, [pc, #88] ; (8009458 ) - 80093fe: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8009402: f023 5280 bic.w r2, r3, #268435456 ; 0x10000000 - 8009406: 687b ldr r3, [r7, #4] - 8009408: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80 - 800940c: 4912 ldr r1, [pc, #72] ; (8009458 ) - 800940e: 4313 orrs r3, r2 - 8009410: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - -#if defined (STM32F765xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) - /*------------------------------------- SDMMC2 Configuration ------------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC2) == RCC_PERIPHCLK_SDMMC2) - 8009414: 687b ldr r3, [r7, #4] - 8009416: 681b ldr r3, [r3, #0] - 8009418: f003 6380 and.w r3, r3, #67108864 ; 0x4000000 - 800941c: 2b00 cmp r3, #0 - 800941e: d00b beq.n 8009438 - { - /* Check the parameters */ - assert_param(IS_RCC_SDMMC2CLKSOURCE(PeriphClkInit->Sdmmc2ClockSelection)); - - /* Configure the SDMMC2 clock source */ - __HAL_RCC_SDMMC2_CONFIG(PeriphClkInit->Sdmmc2ClockSelection); - 8009420: 4b0d ldr r3, [pc, #52] ; (8009458 ) - 8009422: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8009426: f023 5200 bic.w r2, r3, #536870912 ; 0x20000000 - 800942a: 687b ldr r3, [r7, #4] - 800942c: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 - 8009430: 4909 ldr r1, [pc, #36] ; (8009458 ) - 8009432: 4313 orrs r3, r2 - 8009434: f8c1 3090 str.w r3, [r1, #144] ; 0x90 - } - - /*------------------------------------- DFSDM1 Configuration -------------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1) == RCC_PERIPHCLK_DFSDM1) - 8009438: 687b ldr r3, [r7, #4] - 800943a: 681b ldr r3, [r3, #0] - 800943c: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 - 8009440: 2b00 cmp r3, #0 - 8009442: d00f beq.n 8009464 - { - /* Check the parameters */ - assert_param(IS_RCC_DFSDM1CLKSOURCE(PeriphClkInit->Dfsdm1ClockSelection)); - - /* Configure the DFSDM1 interface clock source */ - __HAL_RCC_DFSDM1_CONFIG(PeriphClkInit->Dfsdm1ClockSelection); - 8009444: 4b04 ldr r3, [pc, #16] ; (8009458 ) - 8009446: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c - 800944a: f023 7200 bic.w r2, r3, #33554432 ; 0x2000000 - 800944e: 687b ldr r3, [r7, #4] - 8009450: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8009454: e002 b.n 800945c - 8009456: bf00 nop - 8009458: 40023800 .word 0x40023800 - 800945c: 4985 ldr r1, [pc, #532] ; (8009674 ) - 800945e: 4313 orrs r3, r2 - 8009460: f8c1 308c str.w r3, [r1, #140] ; 0x8c - } - - /*------------------------------------- DFSDM AUDIO Configuration -------------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1_AUDIO) == RCC_PERIPHCLK_DFSDM1_AUDIO) - 8009464: 687b ldr r3, [r7, #4] - 8009466: 681b ldr r3, [r3, #0] - 8009468: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 800946c: 2b00 cmp r3, #0 - 800946e: d00b beq.n 8009488 - { - /* Check the parameters */ - assert_param(IS_RCC_DFSDM1AUDIOCLKSOURCE(PeriphClkInit->Dfsdm1AudioClockSelection)); - - /* Configure the DFSDM interface clock source */ - __HAL_RCC_DFSDM1AUDIO_CONFIG(PeriphClkInit->Dfsdm1AudioClockSelection); - 8009470: 4b80 ldr r3, [pc, #512] ; (8009674 ) - 8009472: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c - 8009476: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000 - 800947a: 687b ldr r3, [r7, #4] - 800947c: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c - 8009480: 497c ldr r1, [pc, #496] ; (8009674 ) - 8009482: 4313 orrs r3, r2 - 8009484: f8c1 308c str.w r3, [r1, #140] ; 0x8c - } -#endif /* STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */ - - /*-------------------------------------- PLLI2S Configuration ---------------------------------*/ - /* PLLI2S is configured when a peripheral will use it as source clock : SAI1, SAI2, I2S or SPDIF-RX */ - if((plli2sused == 1) || (PeriphClkInit->PeriphClockSelection == RCC_PERIPHCLK_PLLI2S)) - 8009488: 69fb ldr r3, [r7, #28] - 800948a: 2b01 cmp r3, #1 - 800948c: d005 beq.n 800949a - 800948e: 687b ldr r3, [r7, #4] - 8009490: 681b ldr r3, [r3, #0] - 8009492: f1b3 7f00 cmp.w r3, #33554432 ; 0x2000000 - 8009496: f040 80d6 bne.w 8009646 - { - /* Disable the PLLI2S */ - __HAL_RCC_PLLI2S_DISABLE(); - 800949a: 4b76 ldr r3, [pc, #472] ; (8009674 ) - 800949c: 681b ldr r3, [r3, #0] - 800949e: 4a75 ldr r2, [pc, #468] ; (8009674 ) - 80094a0: f023 6380 bic.w r3, r3, #67108864 ; 0x4000000 - 80094a4: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 80094a6: f7fe fdf5 bl 8008094 - 80094aa: 6178 str r0, [r7, #20] - - /* Wait till PLLI2S is disabled */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET) - 80094ac: e008 b.n 80094c0 - { - if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) - 80094ae: f7fe fdf1 bl 8008094 - 80094b2: 4602 mov r2, r0 - 80094b4: 697b ldr r3, [r7, #20] - 80094b6: 1ad3 subs r3, r2, r3 - 80094b8: 2b64 cmp r3, #100 ; 0x64 - 80094ba: d901 bls.n 80094c0 - { - /* return in case of Timeout detected */ - return HAL_TIMEOUT; - 80094bc: 2303 movs r3, #3 - 80094be: e194 b.n 80097ea - while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET) - 80094c0: 4b6c ldr r3, [pc, #432] ; (8009674 ) - 80094c2: 681b ldr r3, [r3, #0] - 80094c4: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 - 80094c8: 2b00 cmp r3, #0 - 80094ca: d1f0 bne.n 80094ae - - /* check for common PLLI2S Parameters */ - assert_param(IS_RCC_PLLI2SN_VALUE(PeriphClkInit->PLLI2S.PLLI2SN)); - - /*----------------- In Case of PLLI2S is selected as source clock for I2S -------------------*/ - if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) && (PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S))) - 80094cc: 687b ldr r3, [r7, #4] - 80094ce: 681b ldr r3, [r3, #0] - 80094d0: f003 0301 and.w r3, r3, #1 - 80094d4: 2b00 cmp r3, #0 - 80094d6: d021 beq.n 800951c - 80094d8: 687b ldr r3, [r7, #4] - 80094da: 6b5b ldr r3, [r3, #52] ; 0x34 - 80094dc: 2b00 cmp r3, #0 - 80094de: d11d bne.n 800951c - { - /* check for Parameters */ - assert_param(IS_RCC_PLLI2SR_VALUE(PeriphClkInit->PLLI2S.PLLI2SR)); - - /* Read PLLI2SP and PLLI2SQ value from PLLI2SCFGR register (this value is not needed for I2S configuration) */ - tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SP) >> RCC_PLLI2SCFGR_PLLI2SP_Pos); - 80094e0: 4b64 ldr r3, [pc, #400] ; (8009674 ) - 80094e2: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 - 80094e6: 0c1b lsrs r3, r3, #16 - 80094e8: f003 0303 and.w r3, r3, #3 - 80094ec: 613b str r3, [r7, #16] - tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos); - 80094ee: 4b61 ldr r3, [pc, #388] ; (8009674 ) - 80094f0: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 - 80094f4: 0e1b lsrs r3, r3, #24 - 80094f6: f003 030f and.w r3, r3, #15 - 80094fa: 60fb str r3, [r7, #12] - /* Configure the PLLI2S division factors */ - /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLM) */ - /* I2SCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SR */ - __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , tmpreg0, tmpreg1, PeriphClkInit->PLLI2S.PLLI2SR); - 80094fc: 687b ldr r3, [r7, #4] - 80094fe: 685b ldr r3, [r3, #4] - 8009500: 019a lsls r2, r3, #6 - 8009502: 693b ldr r3, [r7, #16] - 8009504: 041b lsls r3, r3, #16 - 8009506: 431a orrs r2, r3 - 8009508: 68fb ldr r3, [r7, #12] - 800950a: 061b lsls r3, r3, #24 - 800950c: 431a orrs r2, r3 - 800950e: 687b ldr r3, [r7, #4] - 8009510: 689b ldr r3, [r3, #8] - 8009512: 071b lsls r3, r3, #28 - 8009514: 4957 ldr r1, [pc, #348] ; (8009674 ) - 8009516: 4313 orrs r3, r2 - 8009518: f8c1 3084 str.w r3, [r1, #132] ; 0x84 - } - - /*----------------- In Case of PLLI2S is selected as source clock for SAI -------------------*/ - if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) || - 800951c: 687b ldr r3, [r7, #4] - 800951e: 681b ldr r3, [r3, #0] - 8009520: f403 2300 and.w r3, r3, #524288 ; 0x80000 - 8009524: 2b00 cmp r3, #0 - 8009526: d004 beq.n 8009532 - 8009528: 687b ldr r3, [r7, #4] - 800952a: 6bdb ldr r3, [r3, #60] ; 0x3c - 800952c: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 - 8009530: d00a beq.n 8009548 - ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S))) - 8009532: 687b ldr r3, [r7, #4] - 8009534: 681b ldr r3, [r3, #0] - 8009536: f403 1380 and.w r3, r3, #1048576 ; 0x100000 - if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) || - 800953a: 2b00 cmp r3, #0 - 800953c: d02e beq.n 800959c - ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S))) - 800953e: 687b ldr r3, [r7, #4] - 8009540: 6c1b ldr r3, [r3, #64] ; 0x40 - 8009542: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000 - 8009546: d129 bne.n 800959c - assert_param(IS_RCC_PLLI2SQ_VALUE(PeriphClkInit->PLLI2S.PLLI2SQ)); - /* Check for PLLI2S/DIVQ parameters */ - assert_param(IS_RCC_PLLI2S_DIVQ_VALUE(PeriphClkInit->PLLI2SDivQ)); - - /* Read PLLI2SP and PLLI2SR values from PLLI2SCFGR register (this value is not needed for SAI configuration) */ - tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SP) >> RCC_PLLI2SCFGR_PLLI2SP_Pos); - 8009548: 4b4a ldr r3, [pc, #296] ; (8009674 ) - 800954a: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 - 800954e: 0c1b lsrs r3, r3, #16 - 8009550: f003 0303 and.w r3, r3, #3 - 8009554: 613b str r3, [r7, #16] - tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos); - 8009556: 4b47 ldr r3, [pc, #284] ; (8009674 ) - 8009558: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 - 800955c: 0f1b lsrs r3, r3, #28 - 800955e: f003 0307 and.w r3, r3, #7 - 8009562: 60fb str r3, [r7, #12] - /* Configure the PLLI2S division factors */ - /* PLLI2S_VCO Input = PLL_SOURCE/PLLM */ - /* PLLI2S_VCO Output = PLLI2S_VCO Input * PLLI2SN */ - /* SAI_CLK(first level) = PLLI2S_VCO Output/PLLI2SQ */ - __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN, tmpreg0, PeriphClkInit->PLLI2S.PLLI2SQ, tmpreg1); - 8009564: 687b ldr r3, [r7, #4] - 8009566: 685b ldr r3, [r3, #4] - 8009568: 019a lsls r2, r3, #6 - 800956a: 693b ldr r3, [r7, #16] - 800956c: 041b lsls r3, r3, #16 - 800956e: 431a orrs r2, r3 - 8009570: 687b ldr r3, [r7, #4] - 8009572: 68db ldr r3, [r3, #12] - 8009574: 061b lsls r3, r3, #24 - 8009576: 431a orrs r2, r3 - 8009578: 68fb ldr r3, [r7, #12] - 800957a: 071b lsls r3, r3, #28 - 800957c: 493d ldr r1, [pc, #244] ; (8009674 ) - 800957e: 4313 orrs r3, r2 - 8009580: f8c1 3084 str.w r3, [r1, #132] ; 0x84 - - /* SAI_CLK_x = SAI_CLK(first level)/PLLI2SDIVQ */ - __HAL_RCC_PLLI2S_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLI2SDivQ); - 8009584: 4b3b ldr r3, [pc, #236] ; (8009674 ) - 8009586: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c - 800958a: f023 021f bic.w r2, r3, #31 - 800958e: 687b ldr r3, [r7, #4] - 8009590: 6a5b ldr r3, [r3, #36] ; 0x24 - 8009592: 3b01 subs r3, #1 - 8009594: 4937 ldr r1, [pc, #220] ; (8009674 ) - 8009596: 4313 orrs r3, r2 - 8009598: f8c1 308c str.w r3, [r1, #140] ; 0x8c - } - - /*----------------- In Case of PLLI2S is selected as source clock for SPDIF-RX -------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX) - 800959c: 687b ldr r3, [r7, #4] - 800959e: 681b ldr r3, [r3, #0] - 80095a0: f003 7380 and.w r3, r3, #16777216 ; 0x1000000 - 80095a4: 2b00 cmp r3, #0 - 80095a6: d01d beq.n 80095e4 - { - /* check for Parameters */ - assert_param(IS_RCC_PLLI2SP_VALUE(PeriphClkInit->PLLI2S.PLLI2SP)); - - /* Read PLLI2SR value from PLLI2SCFGR register (this value is not needed for SPDIF-RX configuration) */ - tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos); - 80095a8: 4b32 ldr r3, [pc, #200] ; (8009674 ) - 80095aa: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 - 80095ae: 0e1b lsrs r3, r3, #24 - 80095b0: f003 030f and.w r3, r3, #15 - 80095b4: 613b str r3, [r7, #16] - tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos); - 80095b6: 4b2f ldr r3, [pc, #188] ; (8009674 ) - 80095b8: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84 - 80095bc: 0f1b lsrs r3, r3, #28 - 80095be: f003 0307 and.w r3, r3, #7 - 80095c2: 60fb str r3, [r7, #12] - /* Configure the PLLI2S division factors */ - /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLM) */ - /* SPDIFCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */ - __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, tmpreg0, tmpreg1); - 80095c4: 687b ldr r3, [r7, #4] - 80095c6: 685b ldr r3, [r3, #4] - 80095c8: 019a lsls r2, r3, #6 - 80095ca: 687b ldr r3, [r7, #4] - 80095cc: 691b ldr r3, [r3, #16] - 80095ce: 041b lsls r3, r3, #16 - 80095d0: 431a orrs r2, r3 - 80095d2: 693b ldr r3, [r7, #16] - 80095d4: 061b lsls r3, r3, #24 - 80095d6: 431a orrs r2, r3 - 80095d8: 68fb ldr r3, [r7, #12] - 80095da: 071b lsls r3, r3, #28 - 80095dc: 4925 ldr r1, [pc, #148] ; (8009674 ) - 80095de: 4313 orrs r3, r2 - 80095e0: f8c1 3084 str.w r3, [r1, #132] ; 0x84 - } - - /*----------------- In Case of PLLI2S is just selected -----------------*/ - if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S) - 80095e4: 687b ldr r3, [r7, #4] - 80095e6: 681b ldr r3, [r3, #0] - 80095e8: f003 7300 and.w r3, r3, #33554432 ; 0x2000000 - 80095ec: 2b00 cmp r3, #0 - 80095ee: d011 beq.n 8009614 - assert_param(IS_RCC_PLLI2SQ_VALUE(PeriphClkInit->PLLI2S.PLLI2SQ)); - - /* Configure the PLLI2S division factors */ - /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLI2SM) */ - /* SPDIFRXCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */ - __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, PeriphClkInit->PLLI2S.PLLI2SQ, PeriphClkInit->PLLI2S.PLLI2SR); - 80095f0: 687b ldr r3, [r7, #4] - 80095f2: 685b ldr r3, [r3, #4] - 80095f4: 019a lsls r2, r3, #6 - 80095f6: 687b ldr r3, [r7, #4] - 80095f8: 691b ldr r3, [r3, #16] - 80095fa: 041b lsls r3, r3, #16 - 80095fc: 431a orrs r2, r3 - 80095fe: 687b ldr r3, [r7, #4] - 8009600: 68db ldr r3, [r3, #12] - 8009602: 061b lsls r3, r3, #24 - 8009604: 431a orrs r2, r3 - 8009606: 687b ldr r3, [r7, #4] - 8009608: 689b ldr r3, [r3, #8] - 800960a: 071b lsls r3, r3, #28 - 800960c: 4919 ldr r1, [pc, #100] ; (8009674 ) - 800960e: 4313 orrs r3, r2 - 8009610: f8c1 3084 str.w r3, [r1, #132] ; 0x84 - } - - /* Enable the PLLI2S */ - __HAL_RCC_PLLI2S_ENABLE(); - 8009614: 4b17 ldr r3, [pc, #92] ; (8009674 ) - 8009616: 681b ldr r3, [r3, #0] - 8009618: 4a16 ldr r2, [pc, #88] ; (8009674 ) - 800961a: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000 - 800961e: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 8009620: f7fe fd38 bl 8008094 - 8009624: 6178 str r0, [r7, #20] - - /* Wait till PLLI2S is ready */ - while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET) - 8009626: e008 b.n 800963a - { - if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE) - 8009628: f7fe fd34 bl 8008094 - 800962c: 4602 mov r2, r0 - 800962e: 697b ldr r3, [r7, #20] - 8009630: 1ad3 subs r3, r2, r3 - 8009632: 2b64 cmp r3, #100 ; 0x64 - 8009634: d901 bls.n 800963a - { - /* return in case of Timeout detected */ - return HAL_TIMEOUT; - 8009636: 2303 movs r3, #3 - 8009638: e0d7 b.n 80097ea - while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET) - 800963a: 4b0e ldr r3, [pc, #56] ; (8009674 ) - 800963c: 681b ldr r3, [r3, #0] - 800963e: f003 6300 and.w r3, r3, #134217728 ; 0x8000000 - 8009642: 2b00 cmp r3, #0 - 8009644: d0f0 beq.n 8009628 - } - } - - /*-------------------------------------- PLLSAI Configuration ---------------------------------*/ - /* PLLSAI is configured when a peripheral will use it as source clock : SAI1, SAI2, LTDC or CK48 */ - if(pllsaiused == 1) - 8009646: 69bb ldr r3, [r7, #24] - 8009648: 2b01 cmp r3, #1 - 800964a: f040 80cd bne.w 80097e8 - { - /* Disable PLLSAI Clock */ - __HAL_RCC_PLLSAI_DISABLE(); - 800964e: 4b09 ldr r3, [pc, #36] ; (8009674 ) - 8009650: 681b ldr r3, [r3, #0] - 8009652: 4a08 ldr r2, [pc, #32] ; (8009674 ) - 8009654: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000 - 8009658: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 800965a: f7fe fd1b bl 8008094 - 800965e: 6178 str r0, [r7, #20] - - /* Wait till PLLSAI is disabled */ - while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET) - 8009660: e00a b.n 8009678 - { - if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE) - 8009662: f7fe fd17 bl 8008094 - 8009666: 4602 mov r2, r0 - 8009668: 697b ldr r3, [r7, #20] - 800966a: 1ad3 subs r3, r2, r3 - 800966c: 2b64 cmp r3, #100 ; 0x64 - 800966e: d903 bls.n 8009678 - { - /* return in case of Timeout detected */ - return HAL_TIMEOUT; - 8009670: 2303 movs r3, #3 - 8009672: e0ba b.n 80097ea - 8009674: 40023800 .word 0x40023800 - while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET) - 8009678: 4b5e ldr r3, [pc, #376] ; (80097f4 ) - 800967a: 681b ldr r3, [r3, #0] - 800967c: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 - 8009680: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 - 8009684: d0ed beq.n 8009662 - - /* Check the PLLSAI division factors */ - assert_param(IS_RCC_PLLSAIN_VALUE(PeriphClkInit->PLLSAI.PLLSAIN)); - - /*----------------- In Case of PLLSAI is selected as source clock for SAI -------------------*/ - if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\ - 8009686: 687b ldr r3, [r7, #4] - 8009688: 681b ldr r3, [r3, #0] - 800968a: f403 2300 and.w r3, r3, #524288 ; 0x80000 - 800968e: 2b00 cmp r3, #0 - 8009690: d003 beq.n 800969a - 8009692: 687b ldr r3, [r7, #4] - 8009694: 6bdb ldr r3, [r3, #60] ; 0x3c - 8009696: 2b00 cmp r3, #0 - 8009698: d009 beq.n 80096ae - ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI))) - 800969a: 687b ldr r3, [r7, #4] - 800969c: 681b ldr r3, [r3, #0] - 800969e: f403 1380 and.w r3, r3, #1048576 ; 0x100000 - if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\ - 80096a2: 2b00 cmp r3, #0 - 80096a4: d02e beq.n 8009704 - ((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI))) - 80096a6: 687b ldr r3, [r7, #4] - 80096a8: 6c1b ldr r3, [r3, #64] ; 0x40 - 80096aa: 2b00 cmp r3, #0 - 80096ac: d12a bne.n 8009704 - assert_param(IS_RCC_PLLSAIQ_VALUE(PeriphClkInit->PLLSAI.PLLSAIQ)); - /* check for PLLSAI/DIVQ Parameter */ - assert_param(IS_RCC_PLLSAI_DIVQ_VALUE(PeriphClkInit->PLLSAIDivQ)); - - /* Read PLLSAIP value from PLLSAICFGR register (this value is not needed for SAI configuration) */ - tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos); - 80096ae: 4b51 ldr r3, [pc, #324] ; (80097f4 ) - 80096b0: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 80096b4: 0c1b lsrs r3, r3, #16 - 80096b6: f003 0303 and.w r3, r3, #3 - 80096ba: 613b str r3, [r7, #16] - tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLSAICFGR_PLLSAIR_Pos); - 80096bc: 4b4d ldr r3, [pc, #308] ; (80097f4 ) - 80096be: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 80096c2: 0f1b lsrs r3, r3, #28 - 80096c4: f003 0307 and.w r3, r3, #7 - 80096c8: 60fb str r3, [r7, #12] - /* PLLSAI_VCO Input = PLL_SOURCE/PLLM */ - /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN */ - /* SAI_CLK(first level) = PLLSAI_VCO Output/PLLSAIQ */ - __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , tmpreg0, PeriphClkInit->PLLSAI.PLLSAIQ, tmpreg1); - 80096ca: 687b ldr r3, [r7, #4] - 80096cc: 695b ldr r3, [r3, #20] - 80096ce: 019a lsls r2, r3, #6 - 80096d0: 693b ldr r3, [r7, #16] - 80096d2: 041b lsls r3, r3, #16 - 80096d4: 431a orrs r2, r3 - 80096d6: 687b ldr r3, [r7, #4] - 80096d8: 699b ldr r3, [r3, #24] - 80096da: 061b lsls r3, r3, #24 - 80096dc: 431a orrs r2, r3 - 80096de: 68fb ldr r3, [r7, #12] - 80096e0: 071b lsls r3, r3, #28 - 80096e2: 4944 ldr r1, [pc, #272] ; (80097f4 ) - 80096e4: 4313 orrs r3, r2 - 80096e6: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - - /* SAI_CLK_x = SAI_CLK(first level)/PLLSAIDIVQ */ - __HAL_RCC_PLLSAI_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLSAIDivQ); - 80096ea: 4b42 ldr r3, [pc, #264] ; (80097f4 ) - 80096ec: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c - 80096f0: f423 52f8 bic.w r2, r3, #7936 ; 0x1f00 - 80096f4: 687b ldr r3, [r7, #4] - 80096f6: 6a9b ldr r3, [r3, #40] ; 0x28 - 80096f8: 3b01 subs r3, #1 - 80096fa: 021b lsls r3, r3, #8 - 80096fc: 493d ldr r1, [pc, #244] ; (80097f4 ) - 80096fe: 4313 orrs r3, r2 - 8009700: f8c1 308c str.w r3, [r1, #140] ; 0x8c - } - - /*----------------- In Case of PLLSAI is selected as source clock for CLK48 -------------------*/ - /* In Case of PLLI2S is selected as source clock for CK48 */ - if((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48) && (PeriphClkInit->Clk48ClockSelection == RCC_CLK48SOURCE_PLLSAIP)) - 8009704: 687b ldr r3, [r7, #4] - 8009706: 681b ldr r3, [r3, #0] - 8009708: f403 1300 and.w r3, r3, #2097152 ; 0x200000 - 800970c: 2b00 cmp r3, #0 - 800970e: d022 beq.n 8009756 - 8009710: 687b ldr r3, [r7, #4] - 8009712: 6fdb ldr r3, [r3, #124] ; 0x7c - 8009714: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000 - 8009718: d11d bne.n 8009756 - { - /* check for Parameters */ - assert_param(IS_RCC_PLLSAIP_VALUE(PeriphClkInit->PLLSAI.PLLSAIP)); - /* Read PLLSAIQ and PLLSAIR value from PLLSAICFGR register (this value is not needed for CK48 configuration) */ - tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIQ) >> RCC_PLLSAICFGR_PLLSAIQ_Pos); - 800971a: 4b36 ldr r3, [pc, #216] ; (80097f4 ) - 800971c: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8009720: 0e1b lsrs r3, r3, #24 - 8009722: f003 030f and.w r3, r3, #15 - 8009726: 613b str r3, [r7, #16] - tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIR) >> RCC_PLLSAICFGR_PLLSAIR_Pos); - 8009728: 4b32 ldr r3, [pc, #200] ; (80097f4 ) - 800972a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 800972e: 0f1b lsrs r3, r3, #28 - 8009730: f003 0307 and.w r3, r3, #7 - 8009734: 60fb str r3, [r7, #12] - - /* Configure the PLLSAI division factors */ - /* PLLSAI_VCO = f(VCO clock) = f(PLLSAI clock input) x (PLLI2SN/PLLM) */ - /* 48CLK = f(PLLSAI clock output) = f(VCO clock) / PLLSAIP */ - __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , PeriphClkInit->PLLSAI.PLLSAIP, tmpreg0, tmpreg1); - 8009736: 687b ldr r3, [r7, #4] - 8009738: 695b ldr r3, [r3, #20] - 800973a: 019a lsls r2, r3, #6 - 800973c: 687b ldr r3, [r7, #4] - 800973e: 6a1b ldr r3, [r3, #32] - 8009740: 041b lsls r3, r3, #16 - 8009742: 431a orrs r2, r3 - 8009744: 693b ldr r3, [r7, #16] - 8009746: 061b lsls r3, r3, #24 - 8009748: 431a orrs r2, r3 - 800974a: 68fb ldr r3, [r7, #12] - 800974c: 071b lsls r3, r3, #28 - 800974e: 4929 ldr r1, [pc, #164] ; (80097f4 ) - 8009750: 4313 orrs r3, r2 - 8009752: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - } - -#if defined(STM32F746xx) || defined(STM32F756xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) || defined (STM32F750xx) - /*---------------------------- LTDC configuration -------------------------------*/ - if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == (RCC_PERIPHCLK_LTDC)) - 8009756: 687b ldr r3, [r7, #4] - 8009758: 681b ldr r3, [r3, #0] - 800975a: f003 0308 and.w r3, r3, #8 - 800975e: 2b00 cmp r3, #0 - 8009760: d028 beq.n 80097b4 - { - assert_param(IS_RCC_PLLSAIR_VALUE(PeriphClkInit->PLLSAI.PLLSAIR)); - assert_param(IS_RCC_PLLSAI_DIVR_VALUE(PeriphClkInit->PLLSAIDivR)); - - /* Read PLLSAIP and PLLSAIQ value from PLLSAICFGR register (these value are not needed for LTDC configuration) */ - tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIQ) >> RCC_PLLSAICFGR_PLLSAIQ_Pos); - 8009762: 4b24 ldr r3, [pc, #144] ; (80097f4 ) - 8009764: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8009768: 0e1b lsrs r3, r3, #24 - 800976a: f003 030f and.w r3, r3, #15 - 800976e: 613b str r3, [r7, #16] - tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos); - 8009770: 4b20 ldr r3, [pc, #128] ; (80097f4 ) - 8009772: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 8009776: 0c1b lsrs r3, r3, #16 - 8009778: f003 0303 and.w r3, r3, #3 - 800977c: 60fb str r3, [r7, #12] - - /* PLLSAI_VCO Input = PLL_SOURCE/PLLM */ - /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN */ - /* LTDC_CLK(first level) = PLLSAI_VCO Output/PLLSAIR */ - __HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , tmpreg1, tmpreg0, PeriphClkInit->PLLSAI.PLLSAIR); - 800977e: 687b ldr r3, [r7, #4] - 8009780: 695b ldr r3, [r3, #20] - 8009782: 019a lsls r2, r3, #6 - 8009784: 68fb ldr r3, [r7, #12] - 8009786: 041b lsls r3, r3, #16 - 8009788: 431a orrs r2, r3 - 800978a: 693b ldr r3, [r7, #16] - 800978c: 061b lsls r3, r3, #24 - 800978e: 431a orrs r2, r3 - 8009790: 687b ldr r3, [r7, #4] - 8009792: 69db ldr r3, [r3, #28] - 8009794: 071b lsls r3, r3, #28 - 8009796: 4917 ldr r1, [pc, #92] ; (80097f4 ) - 8009798: 4313 orrs r3, r2 - 800979a: f8c1 3088 str.w r3, [r1, #136] ; 0x88 - - /* LTDC_CLK = LTDC_CLK(first level)/PLLSAIDIVR */ - __HAL_RCC_PLLSAI_PLLSAICLKDIVR_CONFIG(PeriphClkInit->PLLSAIDivR); - 800979e: 4b15 ldr r3, [pc, #84] ; (80097f4 ) - 80097a0: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c - 80097a4: f423 3240 bic.w r2, r3, #196608 ; 0x30000 - 80097a8: 687b ldr r3, [r7, #4] - 80097aa: 6adb ldr r3, [r3, #44] ; 0x2c - 80097ac: 4911 ldr r1, [pc, #68] ; (80097f4 ) - 80097ae: 4313 orrs r3, r2 - 80097b0: f8c1 308c str.w r3, [r1, #140] ; 0x8c - } -#endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */ - - /* Enable PLLSAI Clock */ - __HAL_RCC_PLLSAI_ENABLE(); - 80097b4: 4b0f ldr r3, [pc, #60] ; (80097f4 ) - 80097b6: 681b ldr r3, [r3, #0] - 80097b8: 4a0e ldr r2, [pc, #56] ; (80097f4 ) - 80097ba: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 80097be: 6013 str r3, [r2, #0] - - /* Get Start Tick*/ - tickstart = HAL_GetTick(); - 80097c0: f7fe fc68 bl 8008094 - 80097c4: 6178 str r0, [r7, #20] - - /* Wait till PLLSAI is ready */ - while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) - 80097c6: e008 b.n 80097da - { - if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE) - 80097c8: f7fe fc64 bl 8008094 - 80097cc: 4602 mov r2, r0 - 80097ce: 697b ldr r3, [r7, #20] - 80097d0: 1ad3 subs r3, r2, r3 - 80097d2: 2b64 cmp r3, #100 ; 0x64 - 80097d4: d901 bls.n 80097da - { - /* return in case of Timeout detected */ - return HAL_TIMEOUT; - 80097d6: 2303 movs r3, #3 - 80097d8: e007 b.n 80097ea - while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET) - 80097da: 4b06 ldr r3, [pc, #24] ; (80097f4 ) - 80097dc: 681b ldr r3, [r3, #0] - 80097de: f003 5300 and.w r3, r3, #536870912 ; 0x20000000 - 80097e2: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000 - 80097e6: d1ef bne.n 80097c8 - } - } - } - return HAL_OK; - 80097e8: 2300 movs r3, #0 -} - 80097ea: 4618 mov r0, r3 - 80097ec: 3720 adds r7, #32 - 80097ee: 46bd mov sp, r7 - 80097f0: bd80 pop {r7, pc} - 80097f2: bf00 nop - 80097f4: 40023800 .word 0x40023800 - -080097f8 : - * @brief Starts the TIM Base generation. - * @param htim TIM Base handle - * @retval HAL status - */ -HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim) -{ - 80097f8: b480 push {r7} - 80097fa: b085 sub sp, #20 - 80097fc: af00 add r7, sp, #0 - 80097fe: 6078 str r0, [r7, #4] - - /* Check the parameters */ - assert_param(IS_TIM_INSTANCE(htim->Instance)); - - /* Set the TIM state */ - htim->State = HAL_TIM_STATE_BUSY; - 8009800: 687b ldr r3, [r7, #4] - 8009802: 2202 movs r2, #2 - 8009804: f883 203d strb.w r2, [r3, #61] ; 0x3d - - /* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */ - tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; - 8009808: 687b ldr r3, [r7, #4] - 800980a: 681b ldr r3, [r3, #0] - 800980c: 689a ldr r2, [r3, #8] - 800980e: 4b0e ldr r3, [pc, #56] ; (8009848 ) - 8009810: 4013 ands r3, r2 - 8009812: 60fb str r3, [r7, #12] - if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) - 8009814: 68fb ldr r3, [r7, #12] - 8009816: 2b06 cmp r3, #6 - 8009818: d00b beq.n 8009832 - 800981a: 68fb ldr r3, [r7, #12] - 800981c: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 8009820: d007 beq.n 8009832 - { - __HAL_TIM_ENABLE(htim); - 8009822: 687b ldr r3, [r7, #4] - 8009824: 681b ldr r3, [r3, #0] - 8009826: 681a ldr r2, [r3, #0] - 8009828: 687b ldr r3, [r7, #4] - 800982a: 681b ldr r3, [r3, #0] - 800982c: f042 0201 orr.w r2, r2, #1 - 8009830: 601a str r2, [r3, #0] - } - - /* Change the TIM state*/ - htim->State = HAL_TIM_STATE_READY; - 8009832: 687b ldr r3, [r7, #4] - 8009834: 2201 movs r2, #1 - 8009836: f883 203d strb.w r2, [r3, #61] ; 0x3d - - /* Return function status */ - return HAL_OK; - 800983a: 2300 movs r3, #0 -} - 800983c: 4618 mov r0, r3 - 800983e: 3714 adds r7, #20 - 8009840: 46bd mov sp, r7 - 8009842: f85d 7b04 ldr.w r7, [sp], #4 - 8009846: 4770 bx lr - 8009848: 00010007 .word 0x00010007 - -0800984c : - * @arg TIM_OPMODE_SINGLE: Only one pulse will be generated. - * @arg TIM_OPMODE_REPETITIVE: Repetitive pulses will be generated. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode) -{ - 800984c: b580 push {r7, lr} - 800984e: b082 sub sp, #8 - 8009850: af00 add r7, sp, #0 - 8009852: 6078 str r0, [r7, #4] - 8009854: 6039 str r1, [r7, #0] - /* Check the TIM handle allocation */ - if (htim == NULL) - 8009856: 687b ldr r3, [r7, #4] - 8009858: 2b00 cmp r3, #0 - 800985a: d101 bne.n 8009860 - { - return HAL_ERROR; - 800985c: 2301 movs r3, #1 - 800985e: e02d b.n 80098bc - assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode)); - assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision)); - assert_param(IS_TIM_OPM_MODE(OnePulseMode)); - assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload)); - - if (htim->State == HAL_TIM_STATE_RESET) - 8009860: 687b ldr r3, [r7, #4] - 8009862: f893 303d ldrb.w r3, [r3, #61] ; 0x3d - 8009866: b2db uxtb r3, r3 - 8009868: 2b00 cmp r3, #0 - 800986a: d106 bne.n 800987a - { - /* Allocate lock resource and initialize it */ - htim->Lock = HAL_UNLOCKED; - 800986c: 687b ldr r3, [r7, #4] - 800986e: 2200 movs r2, #0 - 8009870: f883 203c strb.w r2, [r3, #60] ; 0x3c - } - /* Init the low level hardware : GPIO, CLOCK, NVIC */ - htim->OnePulse_MspInitCallback(htim); -#else - /* Init the low level hardware : GPIO, CLOCK, NVIC and DMA */ - HAL_TIM_OnePulse_MspInit(htim); - 8009874: 6878 ldr r0, [r7, #4] - 8009876: f002 fea1 bl 800c5bc -#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */ - } - - /* Set the TIM state */ - htim->State = HAL_TIM_STATE_BUSY; - 800987a: 687b ldr r3, [r7, #4] - 800987c: 2202 movs r2, #2 - 800987e: f883 203d strb.w r2, [r3, #61] ; 0x3d - - /* Configure the Time base in the One Pulse Mode */ - TIM_Base_SetConfig(htim->Instance, &htim->Init); - 8009882: 687b ldr r3, [r7, #4] - 8009884: 681a ldr r2, [r3, #0] - 8009886: 687b ldr r3, [r7, #4] - 8009888: 3304 adds r3, #4 - 800988a: 4619 mov r1, r3 - 800988c: 4610 mov r0, r2 - 800988e: f000 f819 bl 80098c4 - - /* Reset the OPM Bit */ - htim->Instance->CR1 &= ~TIM_CR1_OPM; - 8009892: 687b ldr r3, [r7, #4] - 8009894: 681b ldr r3, [r3, #0] - 8009896: 681a ldr r2, [r3, #0] - 8009898: 687b ldr r3, [r7, #4] - 800989a: 681b ldr r3, [r3, #0] - 800989c: f022 0208 bic.w r2, r2, #8 - 80098a0: 601a str r2, [r3, #0] - - /* Configure the OPM Mode */ - htim->Instance->CR1 |= OnePulseMode; - 80098a2: 687b ldr r3, [r7, #4] - 80098a4: 681b ldr r3, [r3, #0] - 80098a6: 6819 ldr r1, [r3, #0] - 80098a8: 687b ldr r3, [r7, #4] - 80098aa: 681b ldr r3, [r3, #0] - 80098ac: 683a ldr r2, [r7, #0] - 80098ae: 430a orrs r2, r1 - 80098b0: 601a str r2, [r3, #0] - - /* Initialize the TIM state*/ - htim->State = HAL_TIM_STATE_READY; - 80098b2: 687b ldr r3, [r7, #4] - 80098b4: 2201 movs r2, #1 - 80098b6: f883 203d strb.w r2, [r3, #61] ; 0x3d - - return HAL_OK; - 80098ba: 2300 movs r3, #0 -} - 80098bc: 4618 mov r0, r3 - 80098be: 3708 adds r7, #8 - 80098c0: 46bd mov sp, r7 - 80098c2: bd80 pop {r7, pc} - -080098c4 : - * @param TIMx TIM peripheral - * @param Structure TIM Base configuration structure - * @retval None - */ -void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure) -{ - 80098c4: b480 push {r7} - 80098c6: b085 sub sp, #20 - 80098c8: af00 add r7, sp, #0 - 80098ca: 6078 str r0, [r7, #4] - 80098cc: 6039 str r1, [r7, #0] - uint32_t tmpcr1; - tmpcr1 = TIMx->CR1; - 80098ce: 687b ldr r3, [r7, #4] - 80098d0: 681b ldr r3, [r3, #0] - 80098d2: 60fb str r3, [r7, #12] - - /* Set TIM Time Base Unit parameters ---------------------------------------*/ - if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx)) - 80098d4: 687b ldr r3, [r7, #4] - 80098d6: 4a40 ldr r2, [pc, #256] ; (80099d8 ) - 80098d8: 4293 cmp r3, r2 - 80098da: d013 beq.n 8009904 - 80098dc: 687b ldr r3, [r7, #4] - 80098de: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 - 80098e2: d00f beq.n 8009904 - 80098e4: 687b ldr r3, [r7, #4] - 80098e6: 4a3d ldr r2, [pc, #244] ; (80099dc ) - 80098e8: 4293 cmp r3, r2 - 80098ea: d00b beq.n 8009904 - 80098ec: 687b ldr r3, [r7, #4] - 80098ee: 4a3c ldr r2, [pc, #240] ; (80099e0 ) - 80098f0: 4293 cmp r3, r2 - 80098f2: d007 beq.n 8009904 - 80098f4: 687b ldr r3, [r7, #4] - 80098f6: 4a3b ldr r2, [pc, #236] ; (80099e4 ) - 80098f8: 4293 cmp r3, r2 - 80098fa: d003 beq.n 8009904 - 80098fc: 687b ldr r3, [r7, #4] - 80098fe: 4a3a ldr r2, [pc, #232] ; (80099e8 ) - 8009900: 4293 cmp r3, r2 - 8009902: d108 bne.n 8009916 - { - /* Select the Counter Mode */ - tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS); - 8009904: 68fb ldr r3, [r7, #12] - 8009906: f023 0370 bic.w r3, r3, #112 ; 0x70 - 800990a: 60fb str r3, [r7, #12] - tmpcr1 |= Structure->CounterMode; - 800990c: 683b ldr r3, [r7, #0] - 800990e: 685b ldr r3, [r3, #4] - 8009910: 68fa ldr r2, [r7, #12] - 8009912: 4313 orrs r3, r2 - 8009914: 60fb str r3, [r7, #12] - } - - if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx)) - 8009916: 687b ldr r3, [r7, #4] - 8009918: 4a2f ldr r2, [pc, #188] ; (80099d8 ) - 800991a: 4293 cmp r3, r2 - 800991c: d02b beq.n 8009976 - 800991e: 687b ldr r3, [r7, #4] - 8009920: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 - 8009924: d027 beq.n 8009976 - 8009926: 687b ldr r3, [r7, #4] - 8009928: 4a2c ldr r2, [pc, #176] ; (80099dc ) - 800992a: 4293 cmp r3, r2 - 800992c: d023 beq.n 8009976 - 800992e: 687b ldr r3, [r7, #4] - 8009930: 4a2b ldr r2, [pc, #172] ; (80099e0 ) - 8009932: 4293 cmp r3, r2 - 8009934: d01f beq.n 8009976 - 8009936: 687b ldr r3, [r7, #4] - 8009938: 4a2a ldr r2, [pc, #168] ; (80099e4 ) - 800993a: 4293 cmp r3, r2 - 800993c: d01b beq.n 8009976 - 800993e: 687b ldr r3, [r7, #4] - 8009940: 4a29 ldr r2, [pc, #164] ; (80099e8 ) - 8009942: 4293 cmp r3, r2 - 8009944: d017 beq.n 8009976 - 8009946: 687b ldr r3, [r7, #4] - 8009948: 4a28 ldr r2, [pc, #160] ; (80099ec ) - 800994a: 4293 cmp r3, r2 - 800994c: d013 beq.n 8009976 - 800994e: 687b ldr r3, [r7, #4] - 8009950: 4a27 ldr r2, [pc, #156] ; (80099f0 ) - 8009952: 4293 cmp r3, r2 - 8009954: d00f beq.n 8009976 - 8009956: 687b ldr r3, [r7, #4] - 8009958: 4a26 ldr r2, [pc, #152] ; (80099f4 ) - 800995a: 4293 cmp r3, r2 - 800995c: d00b beq.n 8009976 - 800995e: 687b ldr r3, [r7, #4] - 8009960: 4a25 ldr r2, [pc, #148] ; (80099f8 ) - 8009962: 4293 cmp r3, r2 - 8009964: d007 beq.n 8009976 - 8009966: 687b ldr r3, [r7, #4] - 8009968: 4a24 ldr r2, [pc, #144] ; (80099fc ) - 800996a: 4293 cmp r3, r2 - 800996c: d003 beq.n 8009976 - 800996e: 687b ldr r3, [r7, #4] - 8009970: 4a23 ldr r2, [pc, #140] ; (8009a00 ) - 8009972: 4293 cmp r3, r2 - 8009974: d108 bne.n 8009988 - { - /* Set the clock division */ - tmpcr1 &= ~TIM_CR1_CKD; - 8009976: 68fb ldr r3, [r7, #12] - 8009978: f423 7340 bic.w r3, r3, #768 ; 0x300 - 800997c: 60fb str r3, [r7, #12] - tmpcr1 |= (uint32_t)Structure->ClockDivision; - 800997e: 683b ldr r3, [r7, #0] - 8009980: 68db ldr r3, [r3, #12] - 8009982: 68fa ldr r2, [r7, #12] - 8009984: 4313 orrs r3, r2 - 8009986: 60fb str r3, [r7, #12] - } - - /* Set the auto-reload preload */ - MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload); - 8009988: 68fb ldr r3, [r7, #12] - 800998a: f023 0280 bic.w r2, r3, #128 ; 0x80 - 800998e: 683b ldr r3, [r7, #0] - 8009990: 695b ldr r3, [r3, #20] - 8009992: 4313 orrs r3, r2 - 8009994: 60fb str r3, [r7, #12] - - TIMx->CR1 = tmpcr1; - 8009996: 687b ldr r3, [r7, #4] - 8009998: 68fa ldr r2, [r7, #12] - 800999a: 601a str r2, [r3, #0] - - /* Set the Autoreload value */ - TIMx->ARR = (uint32_t)Structure->Period ; - 800999c: 683b ldr r3, [r7, #0] - 800999e: 689a ldr r2, [r3, #8] - 80099a0: 687b ldr r3, [r7, #4] - 80099a2: 62da str r2, [r3, #44] ; 0x2c - - /* Set the Prescaler value */ - TIMx->PSC = Structure->Prescaler; - 80099a4: 683b ldr r3, [r7, #0] - 80099a6: 681a ldr r2, [r3, #0] - 80099a8: 687b ldr r3, [r7, #4] - 80099aa: 629a str r2, [r3, #40] ; 0x28 - - if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx)) - 80099ac: 687b ldr r3, [r7, #4] - 80099ae: 4a0a ldr r2, [pc, #40] ; (80099d8 ) - 80099b0: 4293 cmp r3, r2 - 80099b2: d003 beq.n 80099bc - 80099b4: 687b ldr r3, [r7, #4] - 80099b6: 4a0c ldr r2, [pc, #48] ; (80099e8 ) - 80099b8: 4293 cmp r3, r2 - 80099ba: d103 bne.n 80099c4 - { - /* Set the Repetition Counter value */ - TIMx->RCR = Structure->RepetitionCounter; - 80099bc: 683b ldr r3, [r7, #0] - 80099be: 691a ldr r2, [r3, #16] - 80099c0: 687b ldr r3, [r7, #4] - 80099c2: 631a str r2, [r3, #48] ; 0x30 - } - - /* Generate an update event to reload the Prescaler - and the repetition counter (only for advanced timer) value immediately */ - TIMx->EGR = TIM_EGR_UG; - 80099c4: 687b ldr r3, [r7, #4] - 80099c6: 2201 movs r2, #1 - 80099c8: 615a str r2, [r3, #20] -} - 80099ca: bf00 nop - 80099cc: 3714 adds r7, #20 - 80099ce: 46bd mov sp, r7 - 80099d0: f85d 7b04 ldr.w r7, [sp], #4 - 80099d4: 4770 bx lr - 80099d6: bf00 nop - 80099d8: 40010000 .word 0x40010000 - 80099dc: 40000400 .word 0x40000400 - 80099e0: 40000800 .word 0x40000800 - 80099e4: 40000c00 .word 0x40000c00 - 80099e8: 40010400 .word 0x40010400 - 80099ec: 40014000 .word 0x40014000 - 80099f0: 40014400 .word 0x40014400 - 80099f4: 40014800 .word 0x40014800 - 80099f8: 40001800 .word 0x40001800 - 80099fc: 40001c00 .word 0x40001c00 - 8009a00: 40002000 .word 0x40002000 - -08009a04 : - * parameters in the UART_InitTypeDef and initialize the associated handle. - * @param huart UART handle. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) -{ - 8009a04: b580 push {r7, lr} - 8009a06: b082 sub sp, #8 - 8009a08: af00 add r7, sp, #0 - 8009a0a: 6078 str r0, [r7, #4] - /* Check the UART handle allocation */ - if (huart == NULL) - 8009a0c: 687b ldr r3, [r7, #4] - 8009a0e: 2b00 cmp r3, #0 - 8009a10: d101 bne.n 8009a16 - { - return HAL_ERROR; - 8009a12: 2301 movs r3, #1 - 8009a14: e040 b.n 8009a98 - { - /* Check the parameters */ - assert_param(IS_UART_INSTANCE(huart->Instance)); - } - - if (huart->gState == HAL_UART_STATE_RESET) - 8009a16: 687b ldr r3, [r7, #4] - 8009a18: 6f5b ldr r3, [r3, #116] ; 0x74 - 8009a1a: 2b00 cmp r3, #0 - 8009a1c: d106 bne.n 8009a2c - { - /* Allocate lock resource and initialize it */ - huart->Lock = HAL_UNLOCKED; - 8009a1e: 687b ldr r3, [r7, #4] - 8009a20: 2200 movs r2, #0 - 8009a22: f883 2070 strb.w r2, [r3, #112] ; 0x70 - - /* Init the low level hardware */ - huart->MspInitCallback(huart); -#else - /* Init the low level hardware : GPIO, CLOCK */ - HAL_UART_MspInit(huart); - 8009a26: 6878 ldr r0, [r7, #4] - 8009a28: f002 fde6 bl 800c5f8 -#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */ - } - - huart->gState = HAL_UART_STATE_BUSY; - 8009a2c: 687b ldr r3, [r7, #4] - 8009a2e: 2224 movs r2, #36 ; 0x24 - 8009a30: 675a str r2, [r3, #116] ; 0x74 - - /* Disable the Peripheral */ - __HAL_UART_DISABLE(huart); - 8009a32: 687b ldr r3, [r7, #4] - 8009a34: 681b ldr r3, [r3, #0] - 8009a36: 681a ldr r2, [r3, #0] - 8009a38: 687b ldr r3, [r7, #4] - 8009a3a: 681b ldr r3, [r3, #0] - 8009a3c: f022 0201 bic.w r2, r2, #1 - 8009a40: 601a str r2, [r3, #0] - - /* Set the UART Communication parameters */ - if (UART_SetConfig(huart) == HAL_ERROR) - 8009a42: 6878 ldr r0, [r7, #4] - 8009a44: f000 f9f0 bl 8009e28 - 8009a48: 4603 mov r3, r0 - 8009a4a: 2b01 cmp r3, #1 - 8009a4c: d101 bne.n 8009a52 - { - return HAL_ERROR; - 8009a4e: 2301 movs r3, #1 - 8009a50: e022 b.n 8009a98 - } - - if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT) - 8009a52: 687b ldr r3, [r7, #4] - 8009a54: 6a5b ldr r3, [r3, #36] ; 0x24 - 8009a56: 2b00 cmp r3, #0 - 8009a58: d002 beq.n 8009a60 - { - UART_AdvFeatureConfig(huart); - 8009a5a: 6878 ldr r0, [r7, #4] - 8009a5c: f000 fc88 bl 800a370 - } - - /* In asynchronous mode, the following bits must be kept cleared: - - LINEN and CLKEN bits in the USART_CR2 register, - - SCEN, HDSEL and IREN bits in the USART_CR3 register.*/ - CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN)); - 8009a60: 687b ldr r3, [r7, #4] - 8009a62: 681b ldr r3, [r3, #0] - 8009a64: 685a ldr r2, [r3, #4] - 8009a66: 687b ldr r3, [r7, #4] - 8009a68: 681b ldr r3, [r3, #0] - 8009a6a: f422 4290 bic.w r2, r2, #18432 ; 0x4800 - 8009a6e: 605a str r2, [r3, #4] - CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN)); - 8009a70: 687b ldr r3, [r7, #4] - 8009a72: 681b ldr r3, [r3, #0] - 8009a74: 689a ldr r2, [r3, #8] - 8009a76: 687b ldr r3, [r7, #4] - 8009a78: 681b ldr r3, [r3, #0] - 8009a7a: f022 022a bic.w r2, r2, #42 ; 0x2a - 8009a7e: 609a str r2, [r3, #8] - - /* Enable the Peripheral */ - __HAL_UART_ENABLE(huart); - 8009a80: 687b ldr r3, [r7, #4] - 8009a82: 681b ldr r3, [r3, #0] - 8009a84: 681a ldr r2, [r3, #0] - 8009a86: 687b ldr r3, [r7, #4] - 8009a88: 681b ldr r3, [r3, #0] - 8009a8a: f042 0201 orr.w r2, r2, #1 - 8009a8e: 601a str r2, [r3, #0] - - /* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */ - return (UART_CheckIdleState(huart)); - 8009a90: 6878 ldr r0, [r7, #4] - 8009a92: f000 fd0f bl 800a4b4 - 8009a96: 4603 mov r3, r0 -} - 8009a98: 4618 mov r0, r3 - 8009a9a: 3708 adds r7, #8 - 8009a9c: 46bd mov sp, r7 - 8009a9e: bd80 pop {r7, pc} - -08009aa0 : - * @param Size Amount of data to be sent. - * @param Timeout Timeout duration. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout) -{ - 8009aa0: b580 push {r7, lr} - 8009aa2: b08a sub sp, #40 ; 0x28 - 8009aa4: af02 add r7, sp, #8 - 8009aa6: 60f8 str r0, [r7, #12] - 8009aa8: 60b9 str r1, [r7, #8] - 8009aaa: 603b str r3, [r7, #0] - 8009aac: 4613 mov r3, r2 - 8009aae: 80fb strh r3, [r7, #6] - uint8_t *pdata8bits; - uint16_t *pdata16bits; - uint32_t tickstart; - - /* Check that a Tx process is not already ongoing */ - if (huart->gState == HAL_UART_STATE_READY) - 8009ab0: 68fb ldr r3, [r7, #12] - 8009ab2: 6f5b ldr r3, [r3, #116] ; 0x74 - 8009ab4: 2b20 cmp r3, #32 - 8009ab6: d17f bne.n 8009bb8 - { - if ((pData == NULL) || (Size == 0U)) - 8009ab8: 68bb ldr r3, [r7, #8] - 8009aba: 2b00 cmp r3, #0 - 8009abc: d002 beq.n 8009ac4 - 8009abe: 88fb ldrh r3, [r7, #6] - 8009ac0: 2b00 cmp r3, #0 - 8009ac2: d101 bne.n 8009ac8 - { - return HAL_ERROR; - 8009ac4: 2301 movs r3, #1 - 8009ac6: e078 b.n 8009bba - } - - /* Process Locked */ - __HAL_LOCK(huart); - 8009ac8: 68fb ldr r3, [r7, #12] - 8009aca: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 8009ace: 2b01 cmp r3, #1 - 8009ad0: d101 bne.n 8009ad6 - 8009ad2: 2302 movs r3, #2 - 8009ad4: e071 b.n 8009bba - 8009ad6: 68fb ldr r3, [r7, #12] - 8009ad8: 2201 movs r2, #1 - 8009ada: f883 2070 strb.w r2, [r3, #112] ; 0x70 - - huart->ErrorCode = HAL_UART_ERROR_NONE; - 8009ade: 68fb ldr r3, [r7, #12] - 8009ae0: 2200 movs r2, #0 - 8009ae2: 67da str r2, [r3, #124] ; 0x7c - huart->gState = HAL_UART_STATE_BUSY_TX; - 8009ae4: 68fb ldr r3, [r7, #12] - 8009ae6: 2221 movs r2, #33 ; 0x21 - 8009ae8: 675a str r2, [r3, #116] ; 0x74 - - /* Init tickstart for timeout managment*/ - tickstart = HAL_GetTick(); - 8009aea: f7fe fad3 bl 8008094 - 8009aee: 6178 str r0, [r7, #20] - - huart->TxXferSize = Size; - 8009af0: 68fb ldr r3, [r7, #12] - 8009af2: 88fa ldrh r2, [r7, #6] - 8009af4: f8a3 2050 strh.w r2, [r3, #80] ; 0x50 - huart->TxXferCount = Size; - 8009af8: 68fb ldr r3, [r7, #12] - 8009afa: 88fa ldrh r2, [r7, #6] - 8009afc: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 - - /* In case of 9bits/No Parity transfer, pData needs to be handled as a uint16_t pointer */ - if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE)) - 8009b00: 68fb ldr r3, [r7, #12] - 8009b02: 689b ldr r3, [r3, #8] - 8009b04: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 - 8009b08: d108 bne.n 8009b1c - 8009b0a: 68fb ldr r3, [r7, #12] - 8009b0c: 691b ldr r3, [r3, #16] - 8009b0e: 2b00 cmp r3, #0 - 8009b10: d104 bne.n 8009b1c - { - pdata8bits = NULL; - 8009b12: 2300 movs r3, #0 - 8009b14: 61fb str r3, [r7, #28] - pdata16bits = (uint16_t *) pData; - 8009b16: 68bb ldr r3, [r7, #8] - 8009b18: 61bb str r3, [r7, #24] - 8009b1a: e003 b.n 8009b24 - } - else - { - pdata8bits = pData; - 8009b1c: 68bb ldr r3, [r7, #8] - 8009b1e: 61fb str r3, [r7, #28] - pdata16bits = NULL; - 8009b20: 2300 movs r3, #0 - 8009b22: 61bb str r3, [r7, #24] - } - - while (huart->TxXferCount > 0U) - 8009b24: e02c b.n 8009b80 - { - if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK) - 8009b26: 683b ldr r3, [r7, #0] - 8009b28: 9300 str r3, [sp, #0] - 8009b2a: 697b ldr r3, [r7, #20] - 8009b2c: 2200 movs r2, #0 - 8009b2e: 2180 movs r1, #128 ; 0x80 - 8009b30: 68f8 ldr r0, [r7, #12] - 8009b32: f000 fcee bl 800a512 - 8009b36: 4603 mov r3, r0 - 8009b38: 2b00 cmp r3, #0 - 8009b3a: d001 beq.n 8009b40 - { - return HAL_TIMEOUT; - 8009b3c: 2303 movs r3, #3 - 8009b3e: e03c b.n 8009bba - } - if (pdata8bits == NULL) - 8009b40: 69fb ldr r3, [r7, #28] - 8009b42: 2b00 cmp r3, #0 - 8009b44: d10b bne.n 8009b5e - { - huart->Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU); - 8009b46: 69bb ldr r3, [r7, #24] - 8009b48: 881b ldrh r3, [r3, #0] - 8009b4a: 461a mov r2, r3 - 8009b4c: 68fb ldr r3, [r7, #12] - 8009b4e: 681b ldr r3, [r3, #0] - 8009b50: f3c2 0208 ubfx r2, r2, #0, #9 - 8009b54: 629a str r2, [r3, #40] ; 0x28 - pdata16bits++; - 8009b56: 69bb ldr r3, [r7, #24] - 8009b58: 3302 adds r3, #2 - 8009b5a: 61bb str r3, [r7, #24] - 8009b5c: e007 b.n 8009b6e - } - else - { - huart->Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU); - 8009b5e: 69fb ldr r3, [r7, #28] - 8009b60: 781a ldrb r2, [r3, #0] - 8009b62: 68fb ldr r3, [r7, #12] - 8009b64: 681b ldr r3, [r3, #0] - 8009b66: 629a str r2, [r3, #40] ; 0x28 - pdata8bits++; - 8009b68: 69fb ldr r3, [r7, #28] - 8009b6a: 3301 adds r3, #1 - 8009b6c: 61fb str r3, [r7, #28] - } - huart->TxXferCount--; - 8009b6e: 68fb ldr r3, [r7, #12] - 8009b70: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 - 8009b74: b29b uxth r3, r3 - 8009b76: 3b01 subs r3, #1 - 8009b78: b29a uxth r2, r3 - 8009b7a: 68fb ldr r3, [r7, #12] - 8009b7c: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 - while (huart->TxXferCount > 0U) - 8009b80: 68fb ldr r3, [r7, #12] - 8009b82: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52 - 8009b86: b29b uxth r3, r3 - 8009b88: 2b00 cmp r3, #0 - 8009b8a: d1cc bne.n 8009b26 - } - - if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK) - 8009b8c: 683b ldr r3, [r7, #0] - 8009b8e: 9300 str r3, [sp, #0] - 8009b90: 697b ldr r3, [r7, #20] - 8009b92: 2200 movs r2, #0 - 8009b94: 2140 movs r1, #64 ; 0x40 - 8009b96: 68f8 ldr r0, [r7, #12] - 8009b98: f000 fcbb bl 800a512 - 8009b9c: 4603 mov r3, r0 - 8009b9e: 2b00 cmp r3, #0 - 8009ba0: d001 beq.n 8009ba6 - { - return HAL_TIMEOUT; - 8009ba2: 2303 movs r3, #3 - 8009ba4: e009 b.n 8009bba - } - - /* At end of Tx process, restore huart->gState to Ready */ - huart->gState = HAL_UART_STATE_READY; - 8009ba6: 68fb ldr r3, [r7, #12] - 8009ba8: 2220 movs r2, #32 - 8009baa: 675a str r2, [r3, #116] ; 0x74 - - /* Process Unlocked */ - __HAL_UNLOCK(huart); - 8009bac: 68fb ldr r3, [r7, #12] - 8009bae: 2200 movs r2, #0 - 8009bb0: f883 2070 strb.w r2, [r3, #112] ; 0x70 - - return HAL_OK; - 8009bb4: 2300 movs r3, #0 - 8009bb6: e000 b.n 8009bba - } - else - { - return HAL_BUSY; - 8009bb8: 2302 movs r3, #2 - } -} - 8009bba: 4618 mov r0, r3 - 8009bbc: 3720 adds r7, #32 - 8009bbe: 46bd mov sp, r7 - 8009bc0: bd80 pop {r7, pc} - ... - -08009bc4 : - * @param pData Pointer to data buffer. - * @param Size Amount of data to be sent. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) -{ - 8009bc4: b580 push {r7, lr} - 8009bc6: b084 sub sp, #16 - 8009bc8: af00 add r7, sp, #0 - 8009bca: 60f8 str r0, [r7, #12] - 8009bcc: 60b9 str r1, [r7, #8] - 8009bce: 4613 mov r3, r2 - 8009bd0: 80fb strh r3, [r7, #6] - /* Check that a Tx process is not already ongoing */ - if (huart->gState == HAL_UART_STATE_READY) - 8009bd2: 68fb ldr r3, [r7, #12] - 8009bd4: 6f5b ldr r3, [r3, #116] ; 0x74 - 8009bd6: 2b20 cmp r3, #32 - 8009bd8: d164 bne.n 8009ca4 - { - if ((pData == NULL) || (Size == 0U)) - 8009bda: 68bb ldr r3, [r7, #8] - 8009bdc: 2b00 cmp r3, #0 - 8009bde: d002 beq.n 8009be6 - 8009be0: 88fb ldrh r3, [r7, #6] - 8009be2: 2b00 cmp r3, #0 - 8009be4: d101 bne.n 8009bea - { - return HAL_ERROR; - 8009be6: 2301 movs r3, #1 - 8009be8: e05d b.n 8009ca6 - } - - /* Process Locked */ - __HAL_LOCK(huart); - 8009bea: 68fb ldr r3, [r7, #12] - 8009bec: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 8009bf0: 2b01 cmp r3, #1 - 8009bf2: d101 bne.n 8009bf8 - 8009bf4: 2302 movs r3, #2 - 8009bf6: e056 b.n 8009ca6 - 8009bf8: 68fb ldr r3, [r7, #12] - 8009bfa: 2201 movs r2, #1 - 8009bfc: f883 2070 strb.w r2, [r3, #112] ; 0x70 - - huart->pTxBuffPtr = pData; - 8009c00: 68fb ldr r3, [r7, #12] - 8009c02: 68ba ldr r2, [r7, #8] - 8009c04: 64da str r2, [r3, #76] ; 0x4c - huart->TxXferSize = Size; - 8009c06: 68fb ldr r3, [r7, #12] - 8009c08: 88fa ldrh r2, [r7, #6] - 8009c0a: f8a3 2050 strh.w r2, [r3, #80] ; 0x50 - huart->TxXferCount = Size; - 8009c0e: 68fb ldr r3, [r7, #12] - 8009c10: 88fa ldrh r2, [r7, #6] - 8009c12: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 - - huart->ErrorCode = HAL_UART_ERROR_NONE; - 8009c16: 68fb ldr r3, [r7, #12] - 8009c18: 2200 movs r2, #0 - 8009c1a: 67da str r2, [r3, #124] ; 0x7c - huart->gState = HAL_UART_STATE_BUSY_TX; - 8009c1c: 68fb ldr r3, [r7, #12] - 8009c1e: 2221 movs r2, #33 ; 0x21 - 8009c20: 675a str r2, [r3, #116] ; 0x74 - - if (huart->hdmatx != NULL) - 8009c22: 68fb ldr r3, [r7, #12] - 8009c24: 6e9b ldr r3, [r3, #104] ; 0x68 - 8009c26: 2b00 cmp r3, #0 - 8009c28: d02a beq.n 8009c80 - { - /* Set the UART DMA transfer complete callback */ - huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; - 8009c2a: 68fb ldr r3, [r7, #12] - 8009c2c: 6e9b ldr r3, [r3, #104] ; 0x68 - 8009c2e: 4a20 ldr r2, [pc, #128] ; (8009cb0 ) - 8009c30: 63da str r2, [r3, #60] ; 0x3c - - /* Set the UART DMA Half transfer complete callback */ - huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt; - 8009c32: 68fb ldr r3, [r7, #12] - 8009c34: 6e9b ldr r3, [r3, #104] ; 0x68 - 8009c36: 4a1f ldr r2, [pc, #124] ; (8009cb4 ) - 8009c38: 641a str r2, [r3, #64] ; 0x40 - - /* Set the DMA error callback */ - huart->hdmatx->XferErrorCallback = UART_DMAError; - 8009c3a: 68fb ldr r3, [r7, #12] - 8009c3c: 6e9b ldr r3, [r3, #104] ; 0x68 - 8009c3e: 4a1e ldr r2, [pc, #120] ; (8009cb8 ) - 8009c40: 64da str r2, [r3, #76] ; 0x4c - - /* Set the DMA abort callback */ - huart->hdmatx->XferAbortCallback = NULL; - 8009c42: 68fb ldr r3, [r7, #12] - 8009c44: 6e9b ldr r3, [r3, #104] ; 0x68 - 8009c46: 2200 movs r2, #0 - 8009c48: 651a str r2, [r3, #80] ; 0x50 - - /* Enable the UART transmit DMA channel */ - if (HAL_DMA_Start_IT(huart->hdmatx, (uint32_t)huart->pTxBuffPtr, (uint32_t)&huart->Instance->TDR, Size) != HAL_OK) - 8009c4a: 68fb ldr r3, [r7, #12] - 8009c4c: 6e98 ldr r0, [r3, #104] ; 0x68 - 8009c4e: 68fb ldr r3, [r7, #12] - 8009c50: 6cdb ldr r3, [r3, #76] ; 0x4c - 8009c52: 4619 mov r1, r3 - 8009c54: 68fb ldr r3, [r7, #12] - 8009c56: 681b ldr r3, [r3, #0] - 8009c58: 3328 adds r3, #40 ; 0x28 - 8009c5a: 461a mov r2, r3 - 8009c5c: 88fb ldrh r3, [r7, #6] - 8009c5e: f7fe fb2c bl 80082ba - 8009c62: 4603 mov r3, r0 - 8009c64: 2b00 cmp r3, #0 - 8009c66: d00b beq.n 8009c80 - { - /* Set error code to DMA */ - huart->ErrorCode = HAL_UART_ERROR_DMA; - 8009c68: 68fb ldr r3, [r7, #12] - 8009c6a: 2210 movs r2, #16 - 8009c6c: 67da str r2, [r3, #124] ; 0x7c - - /* Process Unlocked */ - __HAL_UNLOCK(huart); - 8009c6e: 68fb ldr r3, [r7, #12] - 8009c70: 2200 movs r2, #0 - 8009c72: f883 2070 strb.w r2, [r3, #112] ; 0x70 - - /* Restore huart->gState to ready */ - huart->gState = HAL_UART_STATE_READY; - 8009c76: 68fb ldr r3, [r7, #12] - 8009c78: 2220 movs r2, #32 - 8009c7a: 675a str r2, [r3, #116] ; 0x74 - - return HAL_ERROR; - 8009c7c: 2301 movs r3, #1 - 8009c7e: e012 b.n 8009ca6 - } - } - /* Clear the TC flag in the ICR register */ - __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF); - 8009c80: 68fb ldr r3, [r7, #12] - 8009c82: 681b ldr r3, [r3, #0] - 8009c84: 2240 movs r2, #64 ; 0x40 - 8009c86: 621a str r2, [r3, #32] - - /* Process Unlocked */ - __HAL_UNLOCK(huart); - 8009c88: 68fb ldr r3, [r7, #12] - 8009c8a: 2200 movs r2, #0 - 8009c8c: f883 2070 strb.w r2, [r3, #112] ; 0x70 - - /* Enable the DMA transfer for transmit request by setting the DMAT bit - in the UART CR3 register */ - SET_BIT(huart->Instance->CR3, USART_CR3_DMAT); - 8009c90: 68fb ldr r3, [r7, #12] - 8009c92: 681b ldr r3, [r3, #0] - 8009c94: 689a ldr r2, [r3, #8] - 8009c96: 68fb ldr r3, [r7, #12] - 8009c98: 681b ldr r3, [r3, #0] - 8009c9a: f042 0280 orr.w r2, r2, #128 ; 0x80 - 8009c9e: 609a str r2, [r3, #8] - - return HAL_OK; - 8009ca0: 2300 movs r3, #0 - 8009ca2: e000 b.n 8009ca6 - } - else - { - return HAL_BUSY; - 8009ca4: 2302 movs r3, #2 - } -} - 8009ca6: 4618 mov r0, r3 - 8009ca8: 3710 adds r7, #16 - 8009caa: 46bd mov sp, r7 - 8009cac: bd80 pop {r7, pc} - 8009cae: bf00 nop - 8009cb0: 0800a60d .word 0x0800a60d - 8009cb4: 0800a65d .word 0x0800a65d - 8009cb8: 0800a6f9 .word 0x0800a6f9 - -08009cbc : - * @param pData Pointer to data buffer. - * @param Size Amount of data to be received. - * @retval HAL status - */ -HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size) -{ - 8009cbc: b580 push {r7, lr} - 8009cbe: b084 sub sp, #16 - 8009cc0: af00 add r7, sp, #0 - 8009cc2: 60f8 str r0, [r7, #12] - 8009cc4: 60b9 str r1, [r7, #8] - 8009cc6: 4613 mov r3, r2 - 8009cc8: 80fb strh r3, [r7, #6] - /* Check that a Rx process is not already ongoing */ - if (huart->RxState == HAL_UART_STATE_READY) - 8009cca: 68fb ldr r3, [r7, #12] - 8009ccc: 6f9b ldr r3, [r3, #120] ; 0x78 - 8009cce: 2b20 cmp r3, #32 - 8009cd0: d16c bne.n 8009dac - { - if ((pData == NULL) || (Size == 0U)) - 8009cd2: 68bb ldr r3, [r7, #8] - 8009cd4: 2b00 cmp r3, #0 - 8009cd6: d002 beq.n 8009cde - 8009cd8: 88fb ldrh r3, [r7, #6] - 8009cda: 2b00 cmp r3, #0 - 8009cdc: d101 bne.n 8009ce2 - { - return HAL_ERROR; - 8009cde: 2301 movs r3, #1 - 8009ce0: e065 b.n 8009dae - } - - /* Process Locked */ - __HAL_LOCK(huart); - 8009ce2: 68fb ldr r3, [r7, #12] - 8009ce4: f893 3070 ldrb.w r3, [r3, #112] ; 0x70 - 8009ce8: 2b01 cmp r3, #1 - 8009cea: d101 bne.n 8009cf0 - 8009cec: 2302 movs r3, #2 - 8009cee: e05e b.n 8009dae - 8009cf0: 68fb ldr r3, [r7, #12] - 8009cf2: 2201 movs r2, #1 - 8009cf4: f883 2070 strb.w r2, [r3, #112] ; 0x70 - - huart->pRxBuffPtr = pData; - 8009cf8: 68fb ldr r3, [r7, #12] - 8009cfa: 68ba ldr r2, [r7, #8] - 8009cfc: 655a str r2, [r3, #84] ; 0x54 - huart->RxXferSize = Size; - 8009cfe: 68fb ldr r3, [r7, #12] - 8009d00: 88fa ldrh r2, [r7, #6] - 8009d02: f8a3 2058 strh.w r2, [r3, #88] ; 0x58 - - huart->ErrorCode = HAL_UART_ERROR_NONE; - 8009d06: 68fb ldr r3, [r7, #12] - 8009d08: 2200 movs r2, #0 - 8009d0a: 67da str r2, [r3, #124] ; 0x7c - huart->RxState = HAL_UART_STATE_BUSY_RX; - 8009d0c: 68fb ldr r3, [r7, #12] - 8009d0e: 2222 movs r2, #34 ; 0x22 - 8009d10: 679a str r2, [r3, #120] ; 0x78 - - if (huart->hdmarx != NULL) - 8009d12: 68fb ldr r3, [r7, #12] - 8009d14: 6edb ldr r3, [r3, #108] ; 0x6c - 8009d16: 2b00 cmp r3, #0 - 8009d18: d02a beq.n 8009d70 - { - /* Set the UART DMA transfer complete callback */ - huart->hdmarx->XferCpltCallback = UART_DMAReceiveCplt; - 8009d1a: 68fb ldr r3, [r7, #12] - 8009d1c: 6edb ldr r3, [r3, #108] ; 0x6c - 8009d1e: 4a26 ldr r2, [pc, #152] ; (8009db8 ) - 8009d20: 63da str r2, [r3, #60] ; 0x3c - - /* Set the UART DMA Half transfer complete callback */ - huart->hdmarx->XferHalfCpltCallback = UART_DMARxHalfCplt; - 8009d22: 68fb ldr r3, [r7, #12] - 8009d24: 6edb ldr r3, [r3, #108] ; 0x6c - 8009d26: 4a25 ldr r2, [pc, #148] ; (8009dbc ) - 8009d28: 641a str r2, [r3, #64] ; 0x40 - - /* Set the DMA error callback */ - huart->hdmarx->XferErrorCallback = UART_DMAError; - 8009d2a: 68fb ldr r3, [r7, #12] - 8009d2c: 6edb ldr r3, [r3, #108] ; 0x6c - 8009d2e: 4a24 ldr r2, [pc, #144] ; (8009dc0 ) - 8009d30: 64da str r2, [r3, #76] ; 0x4c - - /* Set the DMA abort callback */ - huart->hdmarx->XferAbortCallback = NULL; - 8009d32: 68fb ldr r3, [r7, #12] - 8009d34: 6edb ldr r3, [r3, #108] ; 0x6c - 8009d36: 2200 movs r2, #0 - 8009d38: 651a str r2, [r3, #80] ; 0x50 - - /* Enable the DMA channel */ - if (HAL_DMA_Start_IT(huart->hdmarx, (uint32_t)&huart->Instance->RDR, (uint32_t)huart->pRxBuffPtr, Size) != HAL_OK) - 8009d3a: 68fb ldr r3, [r7, #12] - 8009d3c: 6ed8 ldr r0, [r3, #108] ; 0x6c - 8009d3e: 68fb ldr r3, [r7, #12] - 8009d40: 681b ldr r3, [r3, #0] - 8009d42: 3324 adds r3, #36 ; 0x24 - 8009d44: 4619 mov r1, r3 - 8009d46: 68fb ldr r3, [r7, #12] - 8009d48: 6d5b ldr r3, [r3, #84] ; 0x54 - 8009d4a: 461a mov r2, r3 - 8009d4c: 88fb ldrh r3, [r7, #6] - 8009d4e: f7fe fab4 bl 80082ba - 8009d52: 4603 mov r3, r0 - 8009d54: 2b00 cmp r3, #0 - 8009d56: d00b beq.n 8009d70 - { - /* Set error code to DMA */ - huart->ErrorCode = HAL_UART_ERROR_DMA; - 8009d58: 68fb ldr r3, [r7, #12] - 8009d5a: 2210 movs r2, #16 - 8009d5c: 67da str r2, [r3, #124] ; 0x7c - - /* Process Unlocked */ - __HAL_UNLOCK(huart); - 8009d5e: 68fb ldr r3, [r7, #12] - 8009d60: 2200 movs r2, #0 - 8009d62: f883 2070 strb.w r2, [r3, #112] ; 0x70 - - /* Restore huart->gState to ready */ - huart->gState = HAL_UART_STATE_READY; - 8009d66: 68fb ldr r3, [r7, #12] - 8009d68: 2220 movs r2, #32 - 8009d6a: 675a str r2, [r3, #116] ; 0x74 - - return HAL_ERROR; - 8009d6c: 2301 movs r3, #1 - 8009d6e: e01e b.n 8009dae - } - } - /* Process Unlocked */ - __HAL_UNLOCK(huart); - 8009d70: 68fb ldr r3, [r7, #12] - 8009d72: 2200 movs r2, #0 - 8009d74: f883 2070 strb.w r2, [r3, #112] ; 0x70 - - /* Enable the UART Parity Error Interrupt */ - SET_BIT(huart->Instance->CR1, USART_CR1_PEIE); - 8009d78: 68fb ldr r3, [r7, #12] - 8009d7a: 681b ldr r3, [r3, #0] - 8009d7c: 681a ldr r2, [r3, #0] - 8009d7e: 68fb ldr r3, [r7, #12] - 8009d80: 681b ldr r3, [r3, #0] - 8009d82: f442 7280 orr.w r2, r2, #256 ; 0x100 - 8009d86: 601a str r2, [r3, #0] - - /* Enable the UART Error Interrupt: (Frame error, noise error, overrun error) */ - SET_BIT(huart->Instance->CR3, USART_CR3_EIE); - 8009d88: 68fb ldr r3, [r7, #12] - 8009d8a: 681b ldr r3, [r3, #0] - 8009d8c: 689a ldr r2, [r3, #8] - 8009d8e: 68fb ldr r3, [r7, #12] - 8009d90: 681b ldr r3, [r3, #0] - 8009d92: f042 0201 orr.w r2, r2, #1 - 8009d96: 609a str r2, [r3, #8] - - /* Enable the DMA transfer for the receiver request by setting the DMAR bit - in the UART CR3 register */ - SET_BIT(huart->Instance->CR3, USART_CR3_DMAR); - 8009d98: 68fb ldr r3, [r7, #12] - 8009d9a: 681b ldr r3, [r3, #0] - 8009d9c: 689a ldr r2, [r3, #8] - 8009d9e: 68fb ldr r3, [r7, #12] - 8009da0: 681b ldr r3, [r3, #0] - 8009da2: f042 0240 orr.w r2, r2, #64 ; 0x40 - 8009da6: 609a str r2, [r3, #8] - - return HAL_OK; - 8009da8: 2300 movs r3, #0 - 8009daa: e000 b.n 8009dae - } - else - { - return HAL_BUSY; - 8009dac: 2302 movs r3, #2 - } -} - 8009dae: 4618 mov r0, r3 - 8009db0: 3710 adds r7, #16 - 8009db2: 46bd mov sp, r7 - 8009db4: bd80 pop {r7, pc} - 8009db6: bf00 nop - 8009db8: 0800a679 .word 0x0800a679 - 8009dbc: 0800a6dd .word 0x0800a6dd - 8009dc0: 0800a6f9 .word 0x0800a6f9 - -08009dc4 : - * @brief Tx Transfer completed callback. - * @param huart UART handle. - * @retval None - */ -__weak void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) -{ - 8009dc4: b480 push {r7} - 8009dc6: b083 sub sp, #12 - 8009dc8: af00 add r7, sp, #0 - 8009dca: 6078 str r0, [r7, #4] - UNUSED(huart); - - /* NOTE : This function should not be modified, when the callback is needed, - the HAL_UART_TxCpltCallback can be implemented in the user file. - */ -} - 8009dcc: bf00 nop - 8009dce: 370c adds r7, #12 - 8009dd0: 46bd mov sp, r7 - 8009dd2: f85d 7b04 ldr.w r7, [sp], #4 - 8009dd6: 4770 bx lr - -08009dd8 : - * @brief Tx Half Transfer completed callback. - * @param huart UART handle. - * @retval None - */ -__weak void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) -{ - 8009dd8: b480 push {r7} - 8009dda: b083 sub sp, #12 - 8009ddc: af00 add r7, sp, #0 - 8009dde: 6078 str r0, [r7, #4] - UNUSED(huart); - - /* NOTE: This function should not be modified, when the callback is needed, - the HAL_UART_TxHalfCpltCallback can be implemented in the user file. - */ -} - 8009de0: bf00 nop - 8009de2: 370c adds r7, #12 - 8009de4: 46bd mov sp, r7 - 8009de6: f85d 7b04 ldr.w r7, [sp], #4 - 8009dea: 4770 bx lr - -08009dec : - * @brief Rx Transfer completed callback. - * @param huart UART handle. - * @retval None - */ -__weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) -{ - 8009dec: b480 push {r7} - 8009dee: b083 sub sp, #12 - 8009df0: af00 add r7, sp, #0 - 8009df2: 6078 str r0, [r7, #4] - UNUSED(huart); - - /* NOTE : This function should not be modified, when the callback is needed, - the HAL_UART_RxCpltCallback can be implemented in the user file. - */ -} - 8009df4: bf00 nop - 8009df6: 370c adds r7, #12 - 8009df8: 46bd mov sp, r7 - 8009dfa: f85d 7b04 ldr.w r7, [sp], #4 - 8009dfe: 4770 bx lr - -08009e00 : - * @brief Rx Half Transfer completed callback. - * @param huart UART handle. - * @retval None - */ -__weak void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) -{ - 8009e00: b480 push {r7} - 8009e02: b083 sub sp, #12 - 8009e04: af00 add r7, sp, #0 - 8009e06: 6078 str r0, [r7, #4] - UNUSED(huart); - - /* NOTE: This function should not be modified, when the callback is needed, - the HAL_UART_RxHalfCpltCallback can be implemented in the user file. - */ -} - 8009e08: bf00 nop - 8009e0a: 370c adds r7, #12 - 8009e0c: 46bd mov sp, r7 - 8009e0e: f85d 7b04 ldr.w r7, [sp], #4 - 8009e12: 4770 bx lr - -08009e14 : - * @brief UART error callback. - * @param huart UART handle. - * @retval None - */ -__weak void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) -{ - 8009e14: b480 push {r7} - 8009e16: b083 sub sp, #12 - 8009e18: af00 add r7, sp, #0 - 8009e1a: 6078 str r0, [r7, #4] - UNUSED(huart); - - /* NOTE : This function should not be modified, when the callback is needed, - the HAL_UART_ErrorCallback can be implemented in the user file. - */ -} - 8009e1c: bf00 nop - 8009e1e: 370c adds r7, #12 - 8009e20: 46bd mov sp, r7 - 8009e22: f85d 7b04 ldr.w r7, [sp], #4 - 8009e26: 4770 bx lr - -08009e28 : - * @brief Configure the UART peripheral. - * @param huart UART handle. - * @retval HAL status - */ -HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart) -{ - 8009e28: b580 push {r7, lr} - 8009e2a: b088 sub sp, #32 - 8009e2c: af00 add r7, sp, #0 - 8009e2e: 6078 str r0, [r7, #4] - uint32_t tmpreg; - uint16_t brrtemp; - UART_ClockSourceTypeDef clocksource; - uint32_t usartdiv = 0x00000000U; - 8009e30: 2300 movs r3, #0 - 8009e32: 61bb str r3, [r7, #24] - HAL_StatusTypeDef ret = HAL_OK; - 8009e34: 2300 movs r3, #0 - 8009e36: 75fb strb r3, [r7, #23] - * the UART Word Length, Parity, Mode and oversampling: - * set the M bits according to huart->Init.WordLength value - * set PCE and PS bits according to huart->Init.Parity value - * set TE and RE bits according to huart->Init.Mode value - * set OVER8 bit according to huart->Init.OverSampling value */ - tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling ; - 8009e38: 687b ldr r3, [r7, #4] - 8009e3a: 689a ldr r2, [r3, #8] - 8009e3c: 687b ldr r3, [r7, #4] - 8009e3e: 691b ldr r3, [r3, #16] - 8009e40: 431a orrs r2, r3 - 8009e42: 687b ldr r3, [r7, #4] - 8009e44: 695b ldr r3, [r3, #20] - 8009e46: 431a orrs r2, r3 - 8009e48: 687b ldr r3, [r7, #4] - 8009e4a: 69db ldr r3, [r3, #28] - 8009e4c: 4313 orrs r3, r2 - 8009e4e: 613b str r3, [r7, #16] - MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg); - 8009e50: 687b ldr r3, [r7, #4] - 8009e52: 681b ldr r3, [r3, #0] - 8009e54: 681a ldr r2, [r3, #0] - 8009e56: 4bb1 ldr r3, [pc, #708] ; (800a11c ) - 8009e58: 4013 ands r3, r2 - 8009e5a: 687a ldr r2, [r7, #4] - 8009e5c: 6812 ldr r2, [r2, #0] - 8009e5e: 6939 ldr r1, [r7, #16] - 8009e60: 430b orrs r3, r1 - 8009e62: 6013 str r3, [r2, #0] - - /*-------------------------- USART CR2 Configuration -----------------------*/ - /* Configure the UART Stop Bits: Set STOP[13:12] bits according - * to huart->Init.StopBits value */ - MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits); - 8009e64: 687b ldr r3, [r7, #4] - 8009e66: 681b ldr r3, [r3, #0] - 8009e68: 685b ldr r3, [r3, #4] - 8009e6a: f423 5140 bic.w r1, r3, #12288 ; 0x3000 - 8009e6e: 687b ldr r3, [r7, #4] - 8009e70: 68da ldr r2, [r3, #12] - 8009e72: 687b ldr r3, [r7, #4] - 8009e74: 681b ldr r3, [r3, #0] - 8009e76: 430a orrs r2, r1 - 8009e78: 605a str r2, [r3, #4] - /* Configure - * - UART HardWare Flow Control: set CTSE and RTSE bits according - * to huart->Init.HwFlowCtl value - * - one-bit sampling method versus three samples' majority rule according - * to huart->Init.OneBitSampling (not applicable to LPUART) */ - tmpreg = (uint32_t)huart->Init.HwFlowCtl; - 8009e7a: 687b ldr r3, [r7, #4] - 8009e7c: 699b ldr r3, [r3, #24] - 8009e7e: 613b str r3, [r7, #16] - - tmpreg |= huart->Init.OneBitSampling; - 8009e80: 687b ldr r3, [r7, #4] - 8009e82: 6a1b ldr r3, [r3, #32] - 8009e84: 693a ldr r2, [r7, #16] - 8009e86: 4313 orrs r3, r2 - 8009e88: 613b str r3, [r7, #16] - MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg); - 8009e8a: 687b ldr r3, [r7, #4] - 8009e8c: 681b ldr r3, [r3, #0] - 8009e8e: 689b ldr r3, [r3, #8] - 8009e90: f423 6130 bic.w r1, r3, #2816 ; 0xb00 - 8009e94: 687b ldr r3, [r7, #4] - 8009e96: 681b ldr r3, [r3, #0] - 8009e98: 693a ldr r2, [r7, #16] - 8009e9a: 430a orrs r2, r1 - 8009e9c: 609a str r2, [r3, #8] - - - /*-------------------------- USART BRR Configuration -----------------------*/ - UART_GETCLOCKSOURCE(huart, clocksource); - 8009e9e: 687b ldr r3, [r7, #4] - 8009ea0: 681b ldr r3, [r3, #0] - 8009ea2: 4a9f ldr r2, [pc, #636] ; (800a120 ) - 8009ea4: 4293 cmp r3, r2 - 8009ea6: d121 bne.n 8009eec - 8009ea8: 4b9e ldr r3, [pc, #632] ; (800a124 ) - 8009eaa: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8009eae: f003 0303 and.w r3, r3, #3 - 8009eb2: 2b03 cmp r3, #3 - 8009eb4: d816 bhi.n 8009ee4 - 8009eb6: a201 add r2, pc, #4 ; (adr r2, 8009ebc ) - 8009eb8: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8009ebc: 08009ecd .word 0x08009ecd - 8009ec0: 08009ed9 .word 0x08009ed9 - 8009ec4: 08009ed3 .word 0x08009ed3 - 8009ec8: 08009edf .word 0x08009edf - 8009ecc: 2301 movs r3, #1 - 8009ece: 77fb strb r3, [r7, #31] - 8009ed0: e151 b.n 800a176 - 8009ed2: 2302 movs r3, #2 - 8009ed4: 77fb strb r3, [r7, #31] - 8009ed6: e14e b.n 800a176 - 8009ed8: 2304 movs r3, #4 - 8009eda: 77fb strb r3, [r7, #31] - 8009edc: e14b b.n 800a176 - 8009ede: 2308 movs r3, #8 - 8009ee0: 77fb strb r3, [r7, #31] - 8009ee2: e148 b.n 800a176 - 8009ee4: 2310 movs r3, #16 - 8009ee6: 77fb strb r3, [r7, #31] - 8009ee8: bf00 nop - 8009eea: e144 b.n 800a176 - 8009eec: 687b ldr r3, [r7, #4] - 8009eee: 681b ldr r3, [r3, #0] - 8009ef0: 4a8d ldr r2, [pc, #564] ; (800a128 ) - 8009ef2: 4293 cmp r3, r2 - 8009ef4: d134 bne.n 8009f60 - 8009ef6: 4b8b ldr r3, [pc, #556] ; (800a124 ) - 8009ef8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8009efc: f003 030c and.w r3, r3, #12 - 8009f00: 2b0c cmp r3, #12 - 8009f02: d829 bhi.n 8009f58 - 8009f04: a201 add r2, pc, #4 ; (adr r2, 8009f0c ) - 8009f06: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 8009f0a: bf00 nop - 8009f0c: 08009f41 .word 0x08009f41 - 8009f10: 08009f59 .word 0x08009f59 - 8009f14: 08009f59 .word 0x08009f59 - 8009f18: 08009f59 .word 0x08009f59 - 8009f1c: 08009f4d .word 0x08009f4d - 8009f20: 08009f59 .word 0x08009f59 - 8009f24: 08009f59 .word 0x08009f59 - 8009f28: 08009f59 .word 0x08009f59 - 8009f2c: 08009f47 .word 0x08009f47 - 8009f30: 08009f59 .word 0x08009f59 - 8009f34: 08009f59 .word 0x08009f59 - 8009f38: 08009f59 .word 0x08009f59 - 8009f3c: 08009f53 .word 0x08009f53 - 8009f40: 2300 movs r3, #0 - 8009f42: 77fb strb r3, [r7, #31] - 8009f44: e117 b.n 800a176 - 8009f46: 2302 movs r3, #2 - 8009f48: 77fb strb r3, [r7, #31] - 8009f4a: e114 b.n 800a176 - 8009f4c: 2304 movs r3, #4 - 8009f4e: 77fb strb r3, [r7, #31] - 8009f50: e111 b.n 800a176 - 8009f52: 2308 movs r3, #8 - 8009f54: 77fb strb r3, [r7, #31] - 8009f56: e10e b.n 800a176 - 8009f58: 2310 movs r3, #16 - 8009f5a: 77fb strb r3, [r7, #31] - 8009f5c: bf00 nop - 8009f5e: e10a b.n 800a176 - 8009f60: 687b ldr r3, [r7, #4] - 8009f62: 681b ldr r3, [r3, #0] - 8009f64: 4a71 ldr r2, [pc, #452] ; (800a12c ) - 8009f66: 4293 cmp r3, r2 - 8009f68: d120 bne.n 8009fac - 8009f6a: 4b6e ldr r3, [pc, #440] ; (800a124 ) - 8009f6c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8009f70: f003 0330 and.w r3, r3, #48 ; 0x30 - 8009f74: 2b10 cmp r3, #16 - 8009f76: d00f beq.n 8009f98 - 8009f78: 2b10 cmp r3, #16 - 8009f7a: d802 bhi.n 8009f82 - 8009f7c: 2b00 cmp r3, #0 - 8009f7e: d005 beq.n 8009f8c - 8009f80: e010 b.n 8009fa4 - 8009f82: 2b20 cmp r3, #32 - 8009f84: d005 beq.n 8009f92 - 8009f86: 2b30 cmp r3, #48 ; 0x30 - 8009f88: d009 beq.n 8009f9e - 8009f8a: e00b b.n 8009fa4 - 8009f8c: 2300 movs r3, #0 - 8009f8e: 77fb strb r3, [r7, #31] - 8009f90: e0f1 b.n 800a176 - 8009f92: 2302 movs r3, #2 - 8009f94: 77fb strb r3, [r7, #31] - 8009f96: e0ee b.n 800a176 - 8009f98: 2304 movs r3, #4 - 8009f9a: 77fb strb r3, [r7, #31] - 8009f9c: e0eb b.n 800a176 - 8009f9e: 2308 movs r3, #8 - 8009fa0: 77fb strb r3, [r7, #31] - 8009fa2: e0e8 b.n 800a176 - 8009fa4: 2310 movs r3, #16 - 8009fa6: 77fb strb r3, [r7, #31] - 8009fa8: bf00 nop - 8009faa: e0e4 b.n 800a176 - 8009fac: 687b ldr r3, [r7, #4] - 8009fae: 681b ldr r3, [r3, #0] - 8009fb0: 4a5f ldr r2, [pc, #380] ; (800a130 ) - 8009fb2: 4293 cmp r3, r2 - 8009fb4: d120 bne.n 8009ff8 - 8009fb6: 4b5b ldr r3, [pc, #364] ; (800a124 ) - 8009fb8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 8009fbc: f003 03c0 and.w r3, r3, #192 ; 0xc0 - 8009fc0: 2b40 cmp r3, #64 ; 0x40 - 8009fc2: d00f beq.n 8009fe4 - 8009fc4: 2b40 cmp r3, #64 ; 0x40 - 8009fc6: d802 bhi.n 8009fce - 8009fc8: 2b00 cmp r3, #0 - 8009fca: d005 beq.n 8009fd8 - 8009fcc: e010 b.n 8009ff0 - 8009fce: 2b80 cmp r3, #128 ; 0x80 - 8009fd0: d005 beq.n 8009fde - 8009fd2: 2bc0 cmp r3, #192 ; 0xc0 - 8009fd4: d009 beq.n 8009fea - 8009fd6: e00b b.n 8009ff0 - 8009fd8: 2300 movs r3, #0 - 8009fda: 77fb strb r3, [r7, #31] - 8009fdc: e0cb b.n 800a176 - 8009fde: 2302 movs r3, #2 - 8009fe0: 77fb strb r3, [r7, #31] - 8009fe2: e0c8 b.n 800a176 - 8009fe4: 2304 movs r3, #4 - 8009fe6: 77fb strb r3, [r7, #31] - 8009fe8: e0c5 b.n 800a176 - 8009fea: 2308 movs r3, #8 - 8009fec: 77fb strb r3, [r7, #31] - 8009fee: e0c2 b.n 800a176 - 8009ff0: 2310 movs r3, #16 - 8009ff2: 77fb strb r3, [r7, #31] - 8009ff4: bf00 nop - 8009ff6: e0be b.n 800a176 - 8009ff8: 687b ldr r3, [r7, #4] - 8009ffa: 681b ldr r3, [r3, #0] - 8009ffc: 4a4d ldr r2, [pc, #308] ; (800a134 ) - 8009ffe: 4293 cmp r3, r2 - 800a000: d124 bne.n 800a04c - 800a002: 4b48 ldr r3, [pc, #288] ; (800a124 ) - 800a004: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 800a008: f403 7340 and.w r3, r3, #768 ; 0x300 - 800a00c: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 800a010: d012 beq.n 800a038 - 800a012: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 800a016: d802 bhi.n 800a01e - 800a018: 2b00 cmp r3, #0 - 800a01a: d007 beq.n 800a02c - 800a01c: e012 b.n 800a044 - 800a01e: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 800a022: d006 beq.n 800a032 - 800a024: f5b3 7f40 cmp.w r3, #768 ; 0x300 - 800a028: d009 beq.n 800a03e - 800a02a: e00b b.n 800a044 - 800a02c: 2300 movs r3, #0 - 800a02e: 77fb strb r3, [r7, #31] - 800a030: e0a1 b.n 800a176 - 800a032: 2302 movs r3, #2 - 800a034: 77fb strb r3, [r7, #31] - 800a036: e09e b.n 800a176 - 800a038: 2304 movs r3, #4 - 800a03a: 77fb strb r3, [r7, #31] - 800a03c: e09b b.n 800a176 - 800a03e: 2308 movs r3, #8 - 800a040: 77fb strb r3, [r7, #31] - 800a042: e098 b.n 800a176 - 800a044: 2310 movs r3, #16 - 800a046: 77fb strb r3, [r7, #31] - 800a048: bf00 nop - 800a04a: e094 b.n 800a176 - 800a04c: 687b ldr r3, [r7, #4] - 800a04e: 681b ldr r3, [r3, #0] - 800a050: 4a39 ldr r2, [pc, #228] ; (800a138 ) - 800a052: 4293 cmp r3, r2 - 800a054: d124 bne.n 800a0a0 - 800a056: 4b33 ldr r3, [pc, #204] ; (800a124 ) - 800a058: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 800a05c: f403 6340 and.w r3, r3, #3072 ; 0xc00 - 800a060: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 800a064: d012 beq.n 800a08c - 800a066: f5b3 6f80 cmp.w r3, #1024 ; 0x400 - 800a06a: d802 bhi.n 800a072 - 800a06c: 2b00 cmp r3, #0 - 800a06e: d007 beq.n 800a080 - 800a070: e012 b.n 800a098 - 800a072: f5b3 6f00 cmp.w r3, #2048 ; 0x800 - 800a076: d006 beq.n 800a086 - 800a078: f5b3 6f40 cmp.w r3, #3072 ; 0xc00 - 800a07c: d009 beq.n 800a092 - 800a07e: e00b b.n 800a098 - 800a080: 2301 movs r3, #1 - 800a082: 77fb strb r3, [r7, #31] - 800a084: e077 b.n 800a176 - 800a086: 2302 movs r3, #2 - 800a088: 77fb strb r3, [r7, #31] - 800a08a: e074 b.n 800a176 - 800a08c: 2304 movs r3, #4 - 800a08e: 77fb strb r3, [r7, #31] - 800a090: e071 b.n 800a176 - 800a092: 2308 movs r3, #8 - 800a094: 77fb strb r3, [r7, #31] - 800a096: e06e b.n 800a176 - 800a098: 2310 movs r3, #16 - 800a09a: 77fb strb r3, [r7, #31] - 800a09c: bf00 nop - 800a09e: e06a b.n 800a176 - 800a0a0: 687b ldr r3, [r7, #4] - 800a0a2: 681b ldr r3, [r3, #0] - 800a0a4: 4a25 ldr r2, [pc, #148] ; (800a13c ) - 800a0a6: 4293 cmp r3, r2 - 800a0a8: d124 bne.n 800a0f4 - 800a0aa: 4b1e ldr r3, [pc, #120] ; (800a124 ) - 800a0ac: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 800a0b0: f403 5340 and.w r3, r3, #12288 ; 0x3000 - 800a0b4: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 - 800a0b8: d012 beq.n 800a0e0 - 800a0ba: f5b3 5f80 cmp.w r3, #4096 ; 0x1000 - 800a0be: d802 bhi.n 800a0c6 - 800a0c0: 2b00 cmp r3, #0 - 800a0c2: d007 beq.n 800a0d4 - 800a0c4: e012 b.n 800a0ec - 800a0c6: f5b3 5f00 cmp.w r3, #8192 ; 0x2000 - 800a0ca: d006 beq.n 800a0da - 800a0cc: f5b3 5f40 cmp.w r3, #12288 ; 0x3000 - 800a0d0: d009 beq.n 800a0e6 - 800a0d2: e00b b.n 800a0ec - 800a0d4: 2300 movs r3, #0 - 800a0d6: 77fb strb r3, [r7, #31] - 800a0d8: e04d b.n 800a176 - 800a0da: 2302 movs r3, #2 - 800a0dc: 77fb strb r3, [r7, #31] - 800a0de: e04a b.n 800a176 - 800a0e0: 2304 movs r3, #4 - 800a0e2: 77fb strb r3, [r7, #31] - 800a0e4: e047 b.n 800a176 - 800a0e6: 2308 movs r3, #8 - 800a0e8: 77fb strb r3, [r7, #31] - 800a0ea: e044 b.n 800a176 - 800a0ec: 2310 movs r3, #16 - 800a0ee: 77fb strb r3, [r7, #31] - 800a0f0: bf00 nop - 800a0f2: e040 b.n 800a176 - 800a0f4: 687b ldr r3, [r7, #4] - 800a0f6: 681b ldr r3, [r3, #0] - 800a0f8: 4a11 ldr r2, [pc, #68] ; (800a140 ) - 800a0fa: 4293 cmp r3, r2 - 800a0fc: d139 bne.n 800a172 - 800a0fe: 4b09 ldr r3, [pc, #36] ; (800a124 ) - 800a100: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90 - 800a104: f403 4340 and.w r3, r3, #49152 ; 0xc000 - 800a108: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 - 800a10c: d027 beq.n 800a15e - 800a10e: f5b3 4f80 cmp.w r3, #16384 ; 0x4000 - 800a112: d817 bhi.n 800a144 - 800a114: 2b00 cmp r3, #0 - 800a116: d01c beq.n 800a152 - 800a118: e027 b.n 800a16a - 800a11a: bf00 nop - 800a11c: efff69f3 .word 0xefff69f3 - 800a120: 40011000 .word 0x40011000 - 800a124: 40023800 .word 0x40023800 - 800a128: 40004400 .word 0x40004400 - 800a12c: 40004800 .word 0x40004800 - 800a130: 40004c00 .word 0x40004c00 - 800a134: 40005000 .word 0x40005000 - 800a138: 40011400 .word 0x40011400 - 800a13c: 40007800 .word 0x40007800 - 800a140: 40007c00 .word 0x40007c00 - 800a144: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 - 800a148: d006 beq.n 800a158 - 800a14a: f5b3 4f40 cmp.w r3, #49152 ; 0xc000 - 800a14e: d009 beq.n 800a164 - 800a150: e00b b.n 800a16a - 800a152: 2300 movs r3, #0 - 800a154: 77fb strb r3, [r7, #31] - 800a156: e00e b.n 800a176 - 800a158: 2302 movs r3, #2 - 800a15a: 77fb strb r3, [r7, #31] - 800a15c: e00b b.n 800a176 - 800a15e: 2304 movs r3, #4 - 800a160: 77fb strb r3, [r7, #31] - 800a162: e008 b.n 800a176 - 800a164: 2308 movs r3, #8 - 800a166: 77fb strb r3, [r7, #31] - 800a168: e005 b.n 800a176 - 800a16a: 2310 movs r3, #16 - 800a16c: 77fb strb r3, [r7, #31] - 800a16e: bf00 nop - 800a170: e001 b.n 800a176 - 800a172: 2310 movs r3, #16 - 800a174: 77fb strb r3, [r7, #31] - - if (huart->Init.OverSampling == UART_OVERSAMPLING_8) - 800a176: 687b ldr r3, [r7, #4] - 800a178: 69db ldr r3, [r3, #28] - 800a17a: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 - 800a17e: d17c bne.n 800a27a - { - switch (clocksource) - 800a180: 7ffb ldrb r3, [r7, #31] - 800a182: 2b08 cmp r3, #8 - 800a184: d859 bhi.n 800a23a - 800a186: a201 add r2, pc, #4 ; (adr r2, 800a18c ) - 800a188: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800a18c: 0800a1b1 .word 0x0800a1b1 - 800a190: 0800a1cf .word 0x0800a1cf - 800a194: 0800a1ed .word 0x0800a1ed - 800a198: 0800a23b .word 0x0800a23b - 800a19c: 0800a205 .word 0x0800a205 - 800a1a0: 0800a23b .word 0x0800a23b - 800a1a4: 0800a23b .word 0x0800a23b - 800a1a8: 0800a23b .word 0x0800a23b - 800a1ac: 0800a223 .word 0x0800a223 - { - case UART_CLOCKSOURCE_PCLK1: - usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate)); - 800a1b0: f7fe fed4 bl 8008f5c - 800a1b4: 4603 mov r3, r0 - 800a1b6: 005a lsls r2, r3, #1 - 800a1b8: 687b ldr r3, [r7, #4] - 800a1ba: 685b ldr r3, [r3, #4] - 800a1bc: 085b lsrs r3, r3, #1 - 800a1be: 441a add r2, r3 - 800a1c0: 687b ldr r3, [r7, #4] - 800a1c2: 685b ldr r3, [r3, #4] - 800a1c4: fbb2 f3f3 udiv r3, r2, r3 - 800a1c8: b29b uxth r3, r3 - 800a1ca: 61bb str r3, [r7, #24] - break; - 800a1cc: e038 b.n 800a240 - case UART_CLOCKSOURCE_PCLK2: - usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate)); - 800a1ce: f7fe fed9 bl 8008f84 - 800a1d2: 4603 mov r3, r0 - 800a1d4: 005a lsls r2, r3, #1 - 800a1d6: 687b ldr r3, [r7, #4] - 800a1d8: 685b ldr r3, [r3, #4] - 800a1da: 085b lsrs r3, r3, #1 - 800a1dc: 441a add r2, r3 - 800a1de: 687b ldr r3, [r7, #4] - 800a1e0: 685b ldr r3, [r3, #4] - 800a1e2: fbb2 f3f3 udiv r3, r2, r3 - 800a1e6: b29b uxth r3, r3 - 800a1e8: 61bb str r3, [r7, #24] - break; - 800a1ea: e029 b.n 800a240 - case UART_CLOCKSOURCE_HSI: - usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HSI_VALUE, huart->Init.BaudRate)); - 800a1ec: 687b ldr r3, [r7, #4] - 800a1ee: 685b ldr r3, [r3, #4] - 800a1f0: 085a lsrs r2, r3, #1 - 800a1f2: 4b5d ldr r3, [pc, #372] ; (800a368 ) - 800a1f4: 4413 add r3, r2 - 800a1f6: 687a ldr r2, [r7, #4] - 800a1f8: 6852 ldr r2, [r2, #4] - 800a1fa: fbb3 f3f2 udiv r3, r3, r2 - 800a1fe: b29b uxth r3, r3 - 800a200: 61bb str r3, [r7, #24] - break; - 800a202: e01d b.n 800a240 - case UART_CLOCKSOURCE_SYSCLK: - usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HAL_RCC_GetSysClockFreq(), huart->Init.BaudRate)); - 800a204: f7fe fdec bl 8008de0 - 800a208: 4603 mov r3, r0 - 800a20a: 005a lsls r2, r3, #1 - 800a20c: 687b ldr r3, [r7, #4] - 800a20e: 685b ldr r3, [r3, #4] - 800a210: 085b lsrs r3, r3, #1 - 800a212: 441a add r2, r3 - 800a214: 687b ldr r3, [r7, #4] - 800a216: 685b ldr r3, [r3, #4] - 800a218: fbb2 f3f3 udiv r3, r2, r3 - 800a21c: b29b uxth r3, r3 - 800a21e: 61bb str r3, [r7, #24] - break; - 800a220: e00e b.n 800a240 - case UART_CLOCKSOURCE_LSE: - usartdiv = (uint16_t)(UART_DIV_SAMPLING8(LSE_VALUE, huart->Init.BaudRate)); - 800a222: 687b ldr r3, [r7, #4] - 800a224: 685b ldr r3, [r3, #4] - 800a226: 085b lsrs r3, r3, #1 - 800a228: f503 3280 add.w r2, r3, #65536 ; 0x10000 - 800a22c: 687b ldr r3, [r7, #4] - 800a22e: 685b ldr r3, [r3, #4] - 800a230: fbb2 f3f3 udiv r3, r2, r3 - 800a234: b29b uxth r3, r3 - 800a236: 61bb str r3, [r7, #24] - break; - 800a238: e002 b.n 800a240 - case UART_CLOCKSOURCE_UNDEFINED: - default: - ret = HAL_ERROR; - 800a23a: 2301 movs r3, #1 - 800a23c: 75fb strb r3, [r7, #23] - break; - 800a23e: bf00 nop - } - - /* USARTDIV must be greater than or equal to 0d16 */ - if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) - 800a240: 69bb ldr r3, [r7, #24] - 800a242: 2b0f cmp r3, #15 - 800a244: d916 bls.n 800a274 - 800a246: 69bb ldr r3, [r7, #24] - 800a248: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 800a24c: d212 bcs.n 800a274 - { - brrtemp = (uint16_t)(usartdiv & 0xFFF0U); - 800a24e: 69bb ldr r3, [r7, #24] - 800a250: b29b uxth r3, r3 - 800a252: f023 030f bic.w r3, r3, #15 - 800a256: 81fb strh r3, [r7, #14] - brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U); - 800a258: 69bb ldr r3, [r7, #24] - 800a25a: 085b lsrs r3, r3, #1 - 800a25c: b29b uxth r3, r3 - 800a25e: f003 0307 and.w r3, r3, #7 - 800a262: b29a uxth r2, r3 - 800a264: 89fb ldrh r3, [r7, #14] - 800a266: 4313 orrs r3, r2 - 800a268: 81fb strh r3, [r7, #14] - huart->Instance->BRR = brrtemp; - 800a26a: 687b ldr r3, [r7, #4] - 800a26c: 681b ldr r3, [r3, #0] - 800a26e: 89fa ldrh r2, [r7, #14] - 800a270: 60da str r2, [r3, #12] - 800a272: e06e b.n 800a352 - } - else - { - ret = HAL_ERROR; - 800a274: 2301 movs r3, #1 - 800a276: 75fb strb r3, [r7, #23] - 800a278: e06b b.n 800a352 - } - } - else - { - switch (clocksource) - 800a27a: 7ffb ldrb r3, [r7, #31] - 800a27c: 2b08 cmp r3, #8 - 800a27e: d857 bhi.n 800a330 - 800a280: a201 add r2, pc, #4 ; (adr r2, 800a288 ) - 800a282: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800a286: bf00 nop - 800a288: 0800a2ad .word 0x0800a2ad - 800a28c: 0800a2c9 .word 0x0800a2c9 - 800a290: 0800a2e5 .word 0x0800a2e5 - 800a294: 0800a331 .word 0x0800a331 - 800a298: 0800a2fd .word 0x0800a2fd - 800a29c: 0800a331 .word 0x0800a331 - 800a2a0: 0800a331 .word 0x0800a331 - 800a2a4: 0800a331 .word 0x0800a331 - 800a2a8: 0800a319 .word 0x0800a319 - { - case UART_CLOCKSOURCE_PCLK1: - usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetPCLK1Freq(), huart->Init.BaudRate)); - 800a2ac: f7fe fe56 bl 8008f5c - 800a2b0: 4602 mov r2, r0 - 800a2b2: 687b ldr r3, [r7, #4] - 800a2b4: 685b ldr r3, [r3, #4] - 800a2b6: 085b lsrs r3, r3, #1 - 800a2b8: 441a add r2, r3 - 800a2ba: 687b ldr r3, [r7, #4] - 800a2bc: 685b ldr r3, [r3, #4] - 800a2be: fbb2 f3f3 udiv r3, r2, r3 - 800a2c2: b29b uxth r3, r3 - 800a2c4: 61bb str r3, [r7, #24] - break; - 800a2c6: e036 b.n 800a336 - case UART_CLOCKSOURCE_PCLK2: - usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetPCLK2Freq(), huart->Init.BaudRate)); - 800a2c8: f7fe fe5c bl 8008f84 - 800a2cc: 4602 mov r2, r0 - 800a2ce: 687b ldr r3, [r7, #4] - 800a2d0: 685b ldr r3, [r3, #4] - 800a2d2: 085b lsrs r3, r3, #1 - 800a2d4: 441a add r2, r3 - 800a2d6: 687b ldr r3, [r7, #4] - 800a2d8: 685b ldr r3, [r3, #4] - 800a2da: fbb2 f3f3 udiv r3, r2, r3 - 800a2de: b29b uxth r3, r3 - 800a2e0: 61bb str r3, [r7, #24] - break; - 800a2e2: e028 b.n 800a336 - case UART_CLOCKSOURCE_HSI: - usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HSI_VALUE, huart->Init.BaudRate)); - 800a2e4: 687b ldr r3, [r7, #4] - 800a2e6: 685b ldr r3, [r3, #4] - 800a2e8: 085a lsrs r2, r3, #1 - 800a2ea: 4b20 ldr r3, [pc, #128] ; (800a36c ) - 800a2ec: 4413 add r3, r2 - 800a2ee: 687a ldr r2, [r7, #4] - 800a2f0: 6852 ldr r2, [r2, #4] - 800a2f2: fbb3 f3f2 udiv r3, r3, r2 - 800a2f6: b29b uxth r3, r3 - 800a2f8: 61bb str r3, [r7, #24] - break; - 800a2fa: e01c b.n 800a336 - case UART_CLOCKSOURCE_SYSCLK: - usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HAL_RCC_GetSysClockFreq(), huart->Init.BaudRate)); - 800a2fc: f7fe fd70 bl 8008de0 - 800a300: 4602 mov r2, r0 - 800a302: 687b ldr r3, [r7, #4] - 800a304: 685b ldr r3, [r3, #4] - 800a306: 085b lsrs r3, r3, #1 - 800a308: 441a add r2, r3 - 800a30a: 687b ldr r3, [r7, #4] - 800a30c: 685b ldr r3, [r3, #4] - 800a30e: fbb2 f3f3 udiv r3, r2, r3 - 800a312: b29b uxth r3, r3 - 800a314: 61bb str r3, [r7, #24] - break; - 800a316: e00e b.n 800a336 - case UART_CLOCKSOURCE_LSE: - usartdiv = (uint16_t)(UART_DIV_SAMPLING16(LSE_VALUE, huart->Init.BaudRate)); - 800a318: 687b ldr r3, [r7, #4] - 800a31a: 685b ldr r3, [r3, #4] - 800a31c: 085b lsrs r3, r3, #1 - 800a31e: f503 4200 add.w r2, r3, #32768 ; 0x8000 - 800a322: 687b ldr r3, [r7, #4] - 800a324: 685b ldr r3, [r3, #4] - 800a326: fbb2 f3f3 udiv r3, r2, r3 - 800a32a: b29b uxth r3, r3 - 800a32c: 61bb str r3, [r7, #24] - break; - 800a32e: e002 b.n 800a336 - case UART_CLOCKSOURCE_UNDEFINED: - default: - ret = HAL_ERROR; - 800a330: 2301 movs r3, #1 - 800a332: 75fb strb r3, [r7, #23] - break; - 800a334: bf00 nop - } - - /* USARTDIV must be greater than or equal to 0d16 */ - if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX)) - 800a336: 69bb ldr r3, [r7, #24] - 800a338: 2b0f cmp r3, #15 - 800a33a: d908 bls.n 800a34e - 800a33c: 69bb ldr r3, [r7, #24] - 800a33e: f5b3 3f80 cmp.w r3, #65536 ; 0x10000 - 800a342: d204 bcs.n 800a34e - { - huart->Instance->BRR = usartdiv; - 800a344: 687b ldr r3, [r7, #4] - 800a346: 681b ldr r3, [r3, #0] - 800a348: 69ba ldr r2, [r7, #24] - 800a34a: 60da str r2, [r3, #12] - 800a34c: e001 b.n 800a352 - } - else - { - ret = HAL_ERROR; - 800a34e: 2301 movs r3, #1 - 800a350: 75fb strb r3, [r7, #23] - } - } - - - /* Clear ISR function pointers */ - huart->RxISR = NULL; - 800a352: 687b ldr r3, [r7, #4] - 800a354: 2200 movs r2, #0 - 800a356: 661a str r2, [r3, #96] ; 0x60 - huart->TxISR = NULL; - 800a358: 687b ldr r3, [r7, #4] - 800a35a: 2200 movs r2, #0 - 800a35c: 665a str r2, [r3, #100] ; 0x64 - - return ret; - 800a35e: 7dfb ldrb r3, [r7, #23] -} - 800a360: 4618 mov r0, r3 - 800a362: 3720 adds r7, #32 - 800a364: 46bd mov sp, r7 - 800a366: bd80 pop {r7, pc} - 800a368: 01e84800 .word 0x01e84800 - 800a36c: 00f42400 .word 0x00f42400 - -0800a370 : - * @brief Configure the UART peripheral advanced features. - * @param huart UART handle. - * @retval None - */ -void UART_AdvFeatureConfig(UART_HandleTypeDef *huart) -{ - 800a370: b480 push {r7} - 800a372: b083 sub sp, #12 - 800a374: af00 add r7, sp, #0 - 800a376: 6078 str r0, [r7, #4] - /* Check whether the set of advanced features to configure is properly set */ - assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit)); - - /* if required, configure TX pin active level inversion */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT)) - 800a378: 687b ldr r3, [r7, #4] - 800a37a: 6a5b ldr r3, [r3, #36] ; 0x24 - 800a37c: f003 0301 and.w r3, r3, #1 - 800a380: 2b00 cmp r3, #0 - 800a382: d00a beq.n 800a39a - { - assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert); - 800a384: 687b ldr r3, [r7, #4] - 800a386: 681b ldr r3, [r3, #0] - 800a388: 685b ldr r3, [r3, #4] - 800a38a: f423 3100 bic.w r1, r3, #131072 ; 0x20000 - 800a38e: 687b ldr r3, [r7, #4] - 800a390: 6a9a ldr r2, [r3, #40] ; 0x28 - 800a392: 687b ldr r3, [r7, #4] - 800a394: 681b ldr r3, [r3, #0] - 800a396: 430a orrs r2, r1 - 800a398: 605a str r2, [r3, #4] - } - - /* if required, configure RX pin active level inversion */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT)) - 800a39a: 687b ldr r3, [r7, #4] - 800a39c: 6a5b ldr r3, [r3, #36] ; 0x24 - 800a39e: f003 0302 and.w r3, r3, #2 - 800a3a2: 2b00 cmp r3, #0 - 800a3a4: d00a beq.n 800a3bc - { - assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert); - 800a3a6: 687b ldr r3, [r7, #4] - 800a3a8: 681b ldr r3, [r3, #0] - 800a3aa: 685b ldr r3, [r3, #4] - 800a3ac: f423 3180 bic.w r1, r3, #65536 ; 0x10000 - 800a3b0: 687b ldr r3, [r7, #4] - 800a3b2: 6ada ldr r2, [r3, #44] ; 0x2c - 800a3b4: 687b ldr r3, [r7, #4] - 800a3b6: 681b ldr r3, [r3, #0] - 800a3b8: 430a orrs r2, r1 - 800a3ba: 605a str r2, [r3, #4] - } - - /* if required, configure data inversion */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT)) - 800a3bc: 687b ldr r3, [r7, #4] - 800a3be: 6a5b ldr r3, [r3, #36] ; 0x24 - 800a3c0: f003 0304 and.w r3, r3, #4 - 800a3c4: 2b00 cmp r3, #0 - 800a3c6: d00a beq.n 800a3de - { - assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert); - 800a3c8: 687b ldr r3, [r7, #4] - 800a3ca: 681b ldr r3, [r3, #0] - 800a3cc: 685b ldr r3, [r3, #4] - 800a3ce: f423 2180 bic.w r1, r3, #262144 ; 0x40000 - 800a3d2: 687b ldr r3, [r7, #4] - 800a3d4: 6b1a ldr r2, [r3, #48] ; 0x30 - 800a3d6: 687b ldr r3, [r7, #4] - 800a3d8: 681b ldr r3, [r3, #0] - 800a3da: 430a orrs r2, r1 - 800a3dc: 605a str r2, [r3, #4] - } - - /* if required, configure RX/TX pins swap */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT)) - 800a3de: 687b ldr r3, [r7, #4] - 800a3e0: 6a5b ldr r3, [r3, #36] ; 0x24 - 800a3e2: f003 0308 and.w r3, r3, #8 - 800a3e6: 2b00 cmp r3, #0 - 800a3e8: d00a beq.n 800a400 - { - assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap); - 800a3ea: 687b ldr r3, [r7, #4] - 800a3ec: 681b ldr r3, [r3, #0] - 800a3ee: 685b ldr r3, [r3, #4] - 800a3f0: f423 4100 bic.w r1, r3, #32768 ; 0x8000 - 800a3f4: 687b ldr r3, [r7, #4] - 800a3f6: 6b5a ldr r2, [r3, #52] ; 0x34 - 800a3f8: 687b ldr r3, [r7, #4] - 800a3fa: 681b ldr r3, [r3, #0] - 800a3fc: 430a orrs r2, r1 - 800a3fe: 605a str r2, [r3, #4] - } - - /* if required, configure RX overrun detection disabling */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT)) - 800a400: 687b ldr r3, [r7, #4] - 800a402: 6a5b ldr r3, [r3, #36] ; 0x24 - 800a404: f003 0310 and.w r3, r3, #16 - 800a408: 2b00 cmp r3, #0 - 800a40a: d00a beq.n 800a422 - { - assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable)); - MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable); - 800a40c: 687b ldr r3, [r7, #4] - 800a40e: 681b ldr r3, [r3, #0] - 800a410: 689b ldr r3, [r3, #8] - 800a412: f423 5180 bic.w r1, r3, #4096 ; 0x1000 - 800a416: 687b ldr r3, [r7, #4] - 800a418: 6b9a ldr r2, [r3, #56] ; 0x38 - 800a41a: 687b ldr r3, [r7, #4] - 800a41c: 681b ldr r3, [r3, #0] - 800a41e: 430a orrs r2, r1 - 800a420: 609a str r2, [r3, #8] - } - - /* if required, configure DMA disabling on reception error */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT)) - 800a422: 687b ldr r3, [r7, #4] - 800a424: 6a5b ldr r3, [r3, #36] ; 0x24 - 800a426: f003 0320 and.w r3, r3, #32 - 800a42a: 2b00 cmp r3, #0 - 800a42c: d00a beq.n 800a444 - { - assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError)); - MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError); - 800a42e: 687b ldr r3, [r7, #4] - 800a430: 681b ldr r3, [r3, #0] - 800a432: 689b ldr r3, [r3, #8] - 800a434: f423 5100 bic.w r1, r3, #8192 ; 0x2000 - 800a438: 687b ldr r3, [r7, #4] - 800a43a: 6bda ldr r2, [r3, #60] ; 0x3c - 800a43c: 687b ldr r3, [r7, #4] - 800a43e: 681b ldr r3, [r3, #0] - 800a440: 430a orrs r2, r1 - 800a442: 609a str r2, [r3, #8] - } - - /* if required, configure auto Baud rate detection scheme */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT)) - 800a444: 687b ldr r3, [r7, #4] - 800a446: 6a5b ldr r3, [r3, #36] ; 0x24 - 800a448: f003 0340 and.w r3, r3, #64 ; 0x40 - 800a44c: 2b00 cmp r3, #0 - 800a44e: d01a beq.n 800a486 - { - assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance)); - assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable); - 800a450: 687b ldr r3, [r7, #4] - 800a452: 681b ldr r3, [r3, #0] - 800a454: 685b ldr r3, [r3, #4] - 800a456: f423 1180 bic.w r1, r3, #1048576 ; 0x100000 - 800a45a: 687b ldr r3, [r7, #4] - 800a45c: 6c1a ldr r2, [r3, #64] ; 0x40 - 800a45e: 687b ldr r3, [r7, #4] - 800a460: 681b ldr r3, [r3, #0] - 800a462: 430a orrs r2, r1 - 800a464: 605a str r2, [r3, #4] - /* set auto Baudrate detection parameters if detection is enabled */ - if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE) - 800a466: 687b ldr r3, [r7, #4] - 800a468: 6c1b ldr r3, [r3, #64] ; 0x40 - 800a46a: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 - 800a46e: d10a bne.n 800a486 - { - assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode); - 800a470: 687b ldr r3, [r7, #4] - 800a472: 681b ldr r3, [r3, #0] - 800a474: 685b ldr r3, [r3, #4] - 800a476: f423 01c0 bic.w r1, r3, #6291456 ; 0x600000 - 800a47a: 687b ldr r3, [r7, #4] - 800a47c: 6c5a ldr r2, [r3, #68] ; 0x44 - 800a47e: 687b ldr r3, [r7, #4] - 800a480: 681b ldr r3, [r3, #0] - 800a482: 430a orrs r2, r1 - 800a484: 605a str r2, [r3, #4] - } - } - - /* if required, configure MSB first on communication line */ - if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT)) - 800a486: 687b ldr r3, [r7, #4] - 800a488: 6a5b ldr r3, [r3, #36] ; 0x24 - 800a48a: f003 0380 and.w r3, r3, #128 ; 0x80 - 800a48e: 2b00 cmp r3, #0 - 800a490: d00a beq.n 800a4a8 - { - assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst)); - MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst); - 800a492: 687b ldr r3, [r7, #4] - 800a494: 681b ldr r3, [r3, #0] - 800a496: 685b ldr r3, [r3, #4] - 800a498: f423 2100 bic.w r1, r3, #524288 ; 0x80000 - 800a49c: 687b ldr r3, [r7, #4] - 800a49e: 6c9a ldr r2, [r3, #72] ; 0x48 - 800a4a0: 687b ldr r3, [r7, #4] - 800a4a2: 681b ldr r3, [r3, #0] - 800a4a4: 430a orrs r2, r1 - 800a4a6: 605a str r2, [r3, #4] - } -} - 800a4a8: bf00 nop - 800a4aa: 370c adds r7, #12 - 800a4ac: 46bd mov sp, r7 - 800a4ae: f85d 7b04 ldr.w r7, [sp], #4 - 800a4b2: 4770 bx lr - -0800a4b4 : - * @brief Check the UART Idle State. - * @param huart UART handle. - * @retval HAL status - */ -HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart) -{ - 800a4b4: b580 push {r7, lr} - 800a4b6: b086 sub sp, #24 - 800a4b8: af02 add r7, sp, #8 - 800a4ba: 6078 str r0, [r7, #4] - uint32_t tickstart; - - /* Initialize the UART ErrorCode */ - huart->ErrorCode = HAL_UART_ERROR_NONE; - 800a4bc: 687b ldr r3, [r7, #4] - 800a4be: 2200 movs r2, #0 - 800a4c0: 67da str r2, [r3, #124] ; 0x7c - - /* Init tickstart for timeout managment*/ - tickstart = HAL_GetTick(); - 800a4c2: f7fd fde7 bl 8008094 - 800a4c6: 60f8 str r0, [r7, #12] - - /* Check if the Transmitter is enabled */ - if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE) - 800a4c8: 687b ldr r3, [r7, #4] - 800a4ca: 681b ldr r3, [r3, #0] - 800a4cc: 681b ldr r3, [r3, #0] - 800a4ce: f003 0308 and.w r3, r3, #8 - 800a4d2: 2b08 cmp r3, #8 - 800a4d4: d10e bne.n 800a4f4 - { - /* Wait until TEACK flag is set */ - if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK) - 800a4d6: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000 - 800a4da: 9300 str r3, [sp, #0] - 800a4dc: 68fb ldr r3, [r7, #12] - 800a4de: 2200 movs r2, #0 - 800a4e0: f44f 1100 mov.w r1, #2097152 ; 0x200000 - 800a4e4: 6878 ldr r0, [r7, #4] - 800a4e6: f000 f814 bl 800a512 - 800a4ea: 4603 mov r3, r0 - 800a4ec: 2b00 cmp r3, #0 - 800a4ee: d001 beq.n 800a4f4 - { - /* Timeout occurred */ - return HAL_TIMEOUT; - 800a4f0: 2303 movs r3, #3 - 800a4f2: e00a b.n 800a50a - } - } - - /* Initialize the UART State */ - huart->gState = HAL_UART_STATE_READY; - 800a4f4: 687b ldr r3, [r7, #4] - 800a4f6: 2220 movs r2, #32 - 800a4f8: 675a str r2, [r3, #116] ; 0x74 - huart->RxState = HAL_UART_STATE_READY; - 800a4fa: 687b ldr r3, [r7, #4] - 800a4fc: 2220 movs r2, #32 - 800a4fe: 679a str r2, [r3, #120] ; 0x78 - - /* Process Unlocked */ - __HAL_UNLOCK(huart); - 800a500: 687b ldr r3, [r7, #4] - 800a502: 2200 movs r2, #0 - 800a504: f883 2070 strb.w r2, [r3, #112] ; 0x70 - - return HAL_OK; - 800a508: 2300 movs r3, #0 -} - 800a50a: 4618 mov r0, r3 - 800a50c: 3710 adds r7, #16 - 800a50e: 46bd mov sp, r7 - 800a510: bd80 pop {r7, pc} - -0800a512 : - * @param Tickstart Tick start value - * @param Timeout Timeout duration - * @retval HAL status - */ -HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout) -{ - 800a512: b580 push {r7, lr} - 800a514: b084 sub sp, #16 - 800a516: af00 add r7, sp, #0 - 800a518: 60f8 str r0, [r7, #12] - 800a51a: 60b9 str r1, [r7, #8] - 800a51c: 603b str r3, [r7, #0] - 800a51e: 4613 mov r3, r2 - 800a520: 71fb strb r3, [r7, #7] - /* Wait until flag is set */ - while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) - 800a522: e02a b.n 800a57a - { - /* Check for the Timeout */ - if (Timeout != HAL_MAX_DELAY) - 800a524: 69bb ldr r3, [r7, #24] - 800a526: f1b3 3fff cmp.w r3, #4294967295 ; 0xffffffff - 800a52a: d026 beq.n 800a57a - { - if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) - 800a52c: f7fd fdb2 bl 8008094 - 800a530: 4602 mov r2, r0 - 800a532: 683b ldr r3, [r7, #0] - 800a534: 1ad3 subs r3, r2, r3 - 800a536: 69ba ldr r2, [r7, #24] - 800a538: 429a cmp r2, r3 - 800a53a: d302 bcc.n 800a542 - 800a53c: 69bb ldr r3, [r7, #24] - 800a53e: 2b00 cmp r3, #0 - 800a540: d11b bne.n 800a57a - { - /* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts for the interrupt process */ - CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE)); - 800a542: 68fb ldr r3, [r7, #12] - 800a544: 681b ldr r3, [r3, #0] - 800a546: 681a ldr r2, [r3, #0] - 800a548: 68fb ldr r3, [r7, #12] - 800a54a: 681b ldr r3, [r3, #0] - 800a54c: f422 72d0 bic.w r2, r2, #416 ; 0x1a0 - 800a550: 601a str r2, [r3, #0] - CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); - 800a552: 68fb ldr r3, [r7, #12] - 800a554: 681b ldr r3, [r3, #0] - 800a556: 689a ldr r2, [r3, #8] - 800a558: 68fb ldr r3, [r7, #12] - 800a55a: 681b ldr r3, [r3, #0] - 800a55c: f022 0201 bic.w r2, r2, #1 - 800a560: 609a str r2, [r3, #8] - - huart->gState = HAL_UART_STATE_READY; - 800a562: 68fb ldr r3, [r7, #12] - 800a564: 2220 movs r2, #32 - 800a566: 675a str r2, [r3, #116] ; 0x74 - huart->RxState = HAL_UART_STATE_READY; - 800a568: 68fb ldr r3, [r7, #12] - 800a56a: 2220 movs r2, #32 - 800a56c: 679a str r2, [r3, #120] ; 0x78 - - /* Process Unlocked */ - __HAL_UNLOCK(huart); - 800a56e: 68fb ldr r3, [r7, #12] - 800a570: 2200 movs r2, #0 - 800a572: f883 2070 strb.w r2, [r3, #112] ; 0x70 - - return HAL_TIMEOUT; - 800a576: 2303 movs r3, #3 - 800a578: e00f b.n 800a59a - while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status) - 800a57a: 68fb ldr r3, [r7, #12] - 800a57c: 681b ldr r3, [r3, #0] - 800a57e: 69da ldr r2, [r3, #28] - 800a580: 68bb ldr r3, [r7, #8] - 800a582: 4013 ands r3, r2 - 800a584: 68ba ldr r2, [r7, #8] - 800a586: 429a cmp r2, r3 - 800a588: bf0c ite eq - 800a58a: 2301 moveq r3, #1 - 800a58c: 2300 movne r3, #0 - 800a58e: b2db uxtb r3, r3 - 800a590: 461a mov r2, r3 - 800a592: 79fb ldrb r3, [r7, #7] - 800a594: 429a cmp r2, r3 - 800a596: d0c5 beq.n 800a524 - } - } - } - return HAL_OK; - 800a598: 2300 movs r3, #0 -} - 800a59a: 4618 mov r0, r3 - 800a59c: 3710 adds r7, #16 - 800a59e: 46bd mov sp, r7 - 800a5a0: bd80 pop {r7, pc} - -0800a5a2 : - * @brief End ongoing Tx transfer on UART peripheral (following error detection or Transmit completion). - * @param huart UART handle. - * @retval None - */ -static void UART_EndTxTransfer(UART_HandleTypeDef *huart) -{ - 800a5a2: b480 push {r7} - 800a5a4: b083 sub sp, #12 - 800a5a6: af00 add r7, sp, #0 - 800a5a8: 6078 str r0, [r7, #4] - /* Disable TXEIE and TCIE interrupts */ - CLEAR_BIT(huart->Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE)); - 800a5aa: 687b ldr r3, [r7, #4] - 800a5ac: 681b ldr r3, [r3, #0] - 800a5ae: 681a ldr r2, [r3, #0] - 800a5b0: 687b ldr r3, [r7, #4] - 800a5b2: 681b ldr r3, [r3, #0] - 800a5b4: f022 02c0 bic.w r2, r2, #192 ; 0xc0 - 800a5b8: 601a str r2, [r3, #0] - - /* At end of Tx process, restore huart->gState to Ready */ - huart->gState = HAL_UART_STATE_READY; - 800a5ba: 687b ldr r3, [r7, #4] - 800a5bc: 2220 movs r2, #32 - 800a5be: 675a str r2, [r3, #116] ; 0x74 -} - 800a5c0: bf00 nop - 800a5c2: 370c adds r7, #12 - 800a5c4: 46bd mov sp, r7 - 800a5c6: f85d 7b04 ldr.w r7, [sp], #4 - 800a5ca: 4770 bx lr - -0800a5cc : - * @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception completion). - * @param huart UART handle. - * @retval None - */ -static void UART_EndRxTransfer(UART_HandleTypeDef *huart) -{ - 800a5cc: b480 push {r7} - 800a5ce: b083 sub sp, #12 - 800a5d0: af00 add r7, sp, #0 - 800a5d2: 6078 str r0, [r7, #4] - /* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */ - CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE)); - 800a5d4: 687b ldr r3, [r7, #4] - 800a5d6: 681b ldr r3, [r3, #0] - 800a5d8: 681a ldr r2, [r3, #0] - 800a5da: 687b ldr r3, [r7, #4] - 800a5dc: 681b ldr r3, [r3, #0] - 800a5de: f422 7290 bic.w r2, r2, #288 ; 0x120 - 800a5e2: 601a str r2, [r3, #0] - CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); - 800a5e4: 687b ldr r3, [r7, #4] - 800a5e6: 681b ldr r3, [r3, #0] - 800a5e8: 689a ldr r2, [r3, #8] - 800a5ea: 687b ldr r3, [r7, #4] - 800a5ec: 681b ldr r3, [r3, #0] - 800a5ee: f022 0201 bic.w r2, r2, #1 - 800a5f2: 609a str r2, [r3, #8] - - /* At end of Rx process, restore huart->RxState to Ready */ - huart->RxState = HAL_UART_STATE_READY; - 800a5f4: 687b ldr r3, [r7, #4] - 800a5f6: 2220 movs r2, #32 - 800a5f8: 679a str r2, [r3, #120] ; 0x78 - - /* Reset RxIsr function pointer */ - huart->RxISR = NULL; - 800a5fa: 687b ldr r3, [r7, #4] - 800a5fc: 2200 movs r2, #0 - 800a5fe: 661a str r2, [r3, #96] ; 0x60 -} - 800a600: bf00 nop - 800a602: 370c adds r7, #12 - 800a604: 46bd mov sp, r7 - 800a606: f85d 7b04 ldr.w r7, [sp], #4 - 800a60a: 4770 bx lr - -0800a60c : - * @brief DMA UART transmit process complete callback. - * @param hdma DMA handle. - * @retval None - */ -static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma) -{ - 800a60c: b580 push {r7, lr} - 800a60e: b084 sub sp, #16 - 800a610: af00 add r7, sp, #0 - 800a612: 6078 str r0, [r7, #4] - UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); - 800a614: 687b ldr r3, [r7, #4] - 800a616: 6b9b ldr r3, [r3, #56] ; 0x38 - 800a618: 60fb str r3, [r7, #12] - - /* DMA Normal mode */ - if (hdma->Init.Mode != DMA_CIRCULAR) - 800a61a: 687b ldr r3, [r7, #4] - 800a61c: 69db ldr r3, [r3, #28] - 800a61e: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 800a622: d014 beq.n 800a64e - { - huart->TxXferCount = 0U; - 800a624: 68fb ldr r3, [r7, #12] - 800a626: 2200 movs r2, #0 - 800a628: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 - - /* Disable the DMA transfer for transmit request by resetting the DMAT bit - in the UART CR3 register */ - CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT); - 800a62c: 68fb ldr r3, [r7, #12] - 800a62e: 681b ldr r3, [r3, #0] - 800a630: 689a ldr r2, [r3, #8] - 800a632: 68fb ldr r3, [r7, #12] - 800a634: 681b ldr r3, [r3, #0] - 800a636: f022 0280 bic.w r2, r2, #128 ; 0x80 - 800a63a: 609a str r2, [r3, #8] - - /* Enable the UART Transmit Complete Interrupt */ - SET_BIT(huart->Instance->CR1, USART_CR1_TCIE); - 800a63c: 68fb ldr r3, [r7, #12] - 800a63e: 681b ldr r3, [r3, #0] - 800a640: 681a ldr r2, [r3, #0] - 800a642: 68fb ldr r3, [r7, #12] - 800a644: 681b ldr r3, [r3, #0] - 800a646: f042 0240 orr.w r2, r2, #64 ; 0x40 - 800a64a: 601a str r2, [r3, #0] -#else - /*Call legacy weak Tx complete callback*/ - HAL_UART_TxCpltCallback(huart); -#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ - } -} - 800a64c: e002 b.n 800a654 - HAL_UART_TxCpltCallback(huart); - 800a64e: 68f8 ldr r0, [r7, #12] - 800a650: f7ff fbb8 bl 8009dc4 -} - 800a654: bf00 nop - 800a656: 3710 adds r7, #16 - 800a658: 46bd mov sp, r7 - 800a65a: bd80 pop {r7, pc} - -0800a65c : - * @brief DMA UART transmit process half complete callback. - * @param hdma DMA handle. - * @retval None - */ -static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma) -{ - 800a65c: b580 push {r7, lr} - 800a65e: b084 sub sp, #16 - 800a660: af00 add r7, sp, #0 - 800a662: 6078 str r0, [r7, #4] - UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); - 800a664: 687b ldr r3, [r7, #4] - 800a666: 6b9b ldr r3, [r3, #56] ; 0x38 - 800a668: 60fb str r3, [r7, #12] -#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) - /*Call registered Tx Half complete callback*/ - huart->TxHalfCpltCallback(huart); -#else - /*Call legacy weak Tx Half complete callback*/ - HAL_UART_TxHalfCpltCallback(huart); - 800a66a: 68f8 ldr r0, [r7, #12] - 800a66c: f7ff fbb4 bl 8009dd8 -#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ -} - 800a670: bf00 nop - 800a672: 3710 adds r7, #16 - 800a674: 46bd mov sp, r7 - 800a676: bd80 pop {r7, pc} - -0800a678 : - * @brief DMA UART receive process complete callback. - * @param hdma DMA handle. - * @retval None - */ -static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma) -{ - 800a678: b580 push {r7, lr} - 800a67a: b084 sub sp, #16 - 800a67c: af00 add r7, sp, #0 - 800a67e: 6078 str r0, [r7, #4] - UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); - 800a680: 687b ldr r3, [r7, #4] - 800a682: 6b9b ldr r3, [r3, #56] ; 0x38 - 800a684: 60fb str r3, [r7, #12] - - /* DMA Normal mode */ - if (hdma->Init.Mode != DMA_CIRCULAR) - 800a686: 687b ldr r3, [r7, #4] - 800a688: 69db ldr r3, [r3, #28] - 800a68a: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 800a68e: d01e beq.n 800a6ce - { - huart->RxXferCount = 0U; - 800a690: 68fb ldr r3, [r7, #12] - 800a692: 2200 movs r2, #0 - 800a694: f8a3 205a strh.w r2, [r3, #90] ; 0x5a - - /* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */ - CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE); - 800a698: 68fb ldr r3, [r7, #12] - 800a69a: 681b ldr r3, [r3, #0] - 800a69c: 681a ldr r2, [r3, #0] - 800a69e: 68fb ldr r3, [r7, #12] - 800a6a0: 681b ldr r3, [r3, #0] - 800a6a2: f422 7280 bic.w r2, r2, #256 ; 0x100 - 800a6a6: 601a str r2, [r3, #0] - CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE); - 800a6a8: 68fb ldr r3, [r7, #12] - 800a6aa: 681b ldr r3, [r3, #0] - 800a6ac: 689a ldr r2, [r3, #8] - 800a6ae: 68fb ldr r3, [r7, #12] - 800a6b0: 681b ldr r3, [r3, #0] - 800a6b2: f022 0201 bic.w r2, r2, #1 - 800a6b6: 609a str r2, [r3, #8] - - /* Disable the DMA transfer for the receiver request by resetting the DMAR bit - in the UART CR3 register */ - CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR); - 800a6b8: 68fb ldr r3, [r7, #12] - 800a6ba: 681b ldr r3, [r3, #0] - 800a6bc: 689a ldr r2, [r3, #8] - 800a6be: 68fb ldr r3, [r7, #12] - 800a6c0: 681b ldr r3, [r3, #0] - 800a6c2: f022 0240 bic.w r2, r2, #64 ; 0x40 - 800a6c6: 609a str r2, [r3, #8] - - /* At end of Rx process, restore huart->RxState to Ready */ - huart->RxState = HAL_UART_STATE_READY; - 800a6c8: 68fb ldr r3, [r7, #12] - 800a6ca: 2220 movs r2, #32 - 800a6cc: 679a str r2, [r3, #120] ; 0x78 -#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) - /*Call registered Rx complete callback*/ - huart->RxCpltCallback(huart); -#else - /*Call legacy weak Rx complete callback*/ - HAL_UART_RxCpltCallback(huart); - 800a6ce: 68f8 ldr r0, [r7, #12] - 800a6d0: f7ff fb8c bl 8009dec -#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ -} - 800a6d4: bf00 nop - 800a6d6: 3710 adds r7, #16 - 800a6d8: 46bd mov sp, r7 - 800a6da: bd80 pop {r7, pc} - -0800a6dc : - * @brief DMA UART receive process half complete callback. - * @param hdma DMA handle. - * @retval None - */ -static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma) -{ - 800a6dc: b580 push {r7, lr} - 800a6de: b084 sub sp, #16 - 800a6e0: af00 add r7, sp, #0 - 800a6e2: 6078 str r0, [r7, #4] - UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); - 800a6e4: 687b ldr r3, [r7, #4] - 800a6e6: 6b9b ldr r3, [r3, #56] ; 0x38 - 800a6e8: 60fb str r3, [r7, #12] -#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) - /*Call registered Rx Half complete callback*/ - huart->RxHalfCpltCallback(huart); -#else - /*Call legacy weak Rx Half complete callback*/ - HAL_UART_RxHalfCpltCallback(huart); - 800a6ea: 68f8 ldr r0, [r7, #12] - 800a6ec: f7ff fb88 bl 8009e00 -#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ -} - 800a6f0: bf00 nop - 800a6f2: 3710 adds r7, #16 - 800a6f4: 46bd mov sp, r7 - 800a6f6: bd80 pop {r7, pc} - -0800a6f8 : - * @brief DMA UART communication error callback. - * @param hdma DMA handle. - * @retval None - */ -static void UART_DMAError(DMA_HandleTypeDef *hdma) -{ - 800a6f8: b580 push {r7, lr} - 800a6fa: b086 sub sp, #24 - 800a6fc: af00 add r7, sp, #0 - 800a6fe: 6078 str r0, [r7, #4] - UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent); - 800a700: 687b ldr r3, [r7, #4] - 800a702: 6b9b ldr r3, [r3, #56] ; 0x38 - 800a704: 617b str r3, [r7, #20] - - const HAL_UART_StateTypeDef gstate = huart->gState; - 800a706: 697b ldr r3, [r7, #20] - 800a708: 6f5b ldr r3, [r3, #116] ; 0x74 - 800a70a: 613b str r3, [r7, #16] - const HAL_UART_StateTypeDef rxstate = huart->RxState; - 800a70c: 697b ldr r3, [r7, #20] - 800a70e: 6f9b ldr r3, [r3, #120] ; 0x78 - 800a710: 60fb str r3, [r7, #12] - - /* Stop UART DMA Tx request if ongoing */ - if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT)) && - 800a712: 697b ldr r3, [r7, #20] - 800a714: 681b ldr r3, [r3, #0] - 800a716: 689b ldr r3, [r3, #8] - 800a718: f003 0380 and.w r3, r3, #128 ; 0x80 - 800a71c: 2b80 cmp r3, #128 ; 0x80 - 800a71e: d109 bne.n 800a734 - 800a720: 693b ldr r3, [r7, #16] - 800a722: 2b21 cmp r3, #33 ; 0x21 - 800a724: d106 bne.n 800a734 - (gstate == HAL_UART_STATE_BUSY_TX)) - { - huart->TxXferCount = 0U; - 800a726: 697b ldr r3, [r7, #20] - 800a728: 2200 movs r2, #0 - 800a72a: f8a3 2052 strh.w r2, [r3, #82] ; 0x52 - UART_EndTxTransfer(huart); - 800a72e: 6978 ldr r0, [r7, #20] - 800a730: f7ff ff37 bl 800a5a2 - } - - /* Stop UART DMA Rx request if ongoing */ - if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) && - 800a734: 697b ldr r3, [r7, #20] - 800a736: 681b ldr r3, [r3, #0] - 800a738: 689b ldr r3, [r3, #8] - 800a73a: f003 0340 and.w r3, r3, #64 ; 0x40 - 800a73e: 2b40 cmp r3, #64 ; 0x40 - 800a740: d109 bne.n 800a756 - 800a742: 68fb ldr r3, [r7, #12] - 800a744: 2b22 cmp r3, #34 ; 0x22 - 800a746: d106 bne.n 800a756 - (rxstate == HAL_UART_STATE_BUSY_RX)) - { - huart->RxXferCount = 0U; - 800a748: 697b ldr r3, [r7, #20] - 800a74a: 2200 movs r2, #0 - 800a74c: f8a3 205a strh.w r2, [r3, #90] ; 0x5a - UART_EndRxTransfer(huart); - 800a750: 6978 ldr r0, [r7, #20] - 800a752: f7ff ff3b bl 800a5cc - } - - huart->ErrorCode |= HAL_UART_ERROR_DMA; - 800a756: 697b ldr r3, [r7, #20] - 800a758: 6fdb ldr r3, [r3, #124] ; 0x7c - 800a75a: f043 0210 orr.w r2, r3, #16 - 800a75e: 697b ldr r3, [r7, #20] - 800a760: 67da str r2, [r3, #124] ; 0x7c -#if (USE_HAL_UART_REGISTER_CALLBACKS == 1) - /*Call registered error callback*/ - huart->ErrorCallback(huart); -#else - /*Call legacy weak error callback*/ - HAL_UART_ErrorCallback(huart); - 800a762: 6978 ldr r0, [r7, #20] - 800a764: f7ff fb56 bl 8009e14 -#endif /* USE_HAL_UART_REGISTER_CALLBACKS */ -} - 800a768: bf00 nop - 800a76a: 3718 adds r7, #24 - 800a76c: 46bd mov sp, r7 - 800a76e: bd80 pop {r7, pc} - -0800a770 <_ZN3ros3MsgC1Ev>: - -namespace ros -{ - -/* Base Message Type */ -class Msg - 800a770: b480 push {r7} - 800a772: b083 sub sp, #12 - 800a774: af00 add r7, sp, #0 - 800a776: 6078 str r0, [r7, #4] - 800a778: 4a04 ldr r2, [pc, #16] ; (800a78c <_ZN3ros3MsgC1Ev+0x1c>) - 800a77a: 687b ldr r3, [r7, #4] - 800a77c: 601a str r2, [r3, #0] - 800a77e: 687b ldr r3, [r7, #4] - 800a780: 4618 mov r0, r3 - 800a782: 370c adds r7, #12 - 800a784: 46bd mov sp, r7 - 800a786: f85d 7b04 ldr.w r7, [sp], #4 - 800a78a: 4770 bx lr - 800a78c: 08012368 .word 0x08012368 - -0800a790 <_ZN8std_msgs6StringC1Ev>: - { - public: - typedef const char* _data_type; - _data_type data; - - String(): - 800a790: b580 push {r7, lr} - 800a792: b082 sub sp, #8 - 800a794: af00 add r7, sp, #0 - 800a796: 6078 str r0, [r7, #4] - data("") - 800a798: 687b ldr r3, [r7, #4] - 800a79a: 4618 mov r0, r3 - 800a79c: f7ff ffe8 bl 800a770 <_ZN3ros3MsgC1Ev> - 800a7a0: 4a05 ldr r2, [pc, #20] ; (800a7b8 <_ZN8std_msgs6StringC1Ev+0x28>) - 800a7a2: 687b ldr r3, [r7, #4] - 800a7a4: 601a str r2, [r3, #0] - 800a7a6: 687b ldr r3, [r7, #4] - 800a7a8: 4a04 ldr r2, [pc, #16] ; (800a7bc <_ZN8std_msgs6StringC1Ev+0x2c>) - 800a7aa: 605a str r2, [r3, #4] - { - } - 800a7ac: 687b ldr r3, [r7, #4] - 800a7ae: 4618 mov r0, r3 - 800a7b0: 3708 adds r7, #8 - 800a7b2: 46bd mov sp, r7 - 800a7b4: bd80 pop {r7, pc} - 800a7b6: bf00 nop - 800a7b8: 08012350 .word 0x08012350 - 800a7bc: 080119b0 .word 0x080119b0 - -0800a7c0 <_ZNK8std_msgs6String9serializeEPh>: - - virtual int serialize(unsigned char *outbuffer) const - 800a7c0: b580 push {r7, lr} - 800a7c2: b084 sub sp, #16 - 800a7c4: af00 add r7, sp, #0 - 800a7c6: 6078 str r0, [r7, #4] - 800a7c8: 6039 str r1, [r7, #0] - { - int offset = 0; - 800a7ca: 2300 movs r3, #0 - 800a7cc: 60fb str r3, [r7, #12] - uint32_t length_data = strlen(this->data); - 800a7ce: 687b ldr r3, [r7, #4] - 800a7d0: 685b ldr r3, [r3, #4] - 800a7d2: 4618 mov r0, r3 - 800a7d4: f7fc fafe bl 8006dd4 - 800a7d8: 60b8 str r0, [r7, #8] - varToArr(outbuffer + offset, length_data); - 800a7da: 68fb ldr r3, [r7, #12] - 800a7dc: 683a ldr r2, [r7, #0] - 800a7de: 4413 add r3, r2 - 800a7e0: 68b9 ldr r1, [r7, #8] - 800a7e2: 4618 mov r0, r3 - 800a7e4: f001 f94b bl 800ba7e <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> - offset += 4; - 800a7e8: 68fb ldr r3, [r7, #12] - 800a7ea: 3304 adds r3, #4 - 800a7ec: 60fb str r3, [r7, #12] - memcpy(outbuffer + offset, this->data, length_data); - 800a7ee: 68fb ldr r3, [r7, #12] - 800a7f0: 683a ldr r2, [r7, #0] - 800a7f2: 18d0 adds r0, r2, r3 - 800a7f4: 687b ldr r3, [r7, #4] - 800a7f6: 685b ldr r3, [r3, #4] - 800a7f8: 68ba ldr r2, [r7, #8] - 800a7fa: 4619 mov r1, r3 - 800a7fc: f003 fdbb bl 800e376 - offset += length_data; - 800a800: 68fa ldr r2, [r7, #12] - 800a802: 68bb ldr r3, [r7, #8] - 800a804: 4413 add r3, r2 - 800a806: 60fb str r3, [r7, #12] - return offset; - 800a808: 68fb ldr r3, [r7, #12] - } - 800a80a: 4618 mov r0, r3 - 800a80c: 3710 adds r7, #16 - 800a80e: 46bd mov sp, r7 - 800a810: bd80 pop {r7, pc} - -0800a812 <_ZN8std_msgs6String11deserializeEPh>: - - virtual int deserialize(unsigned char *inbuffer) - 800a812: b580 push {r7, lr} - 800a814: b086 sub sp, #24 - 800a816: af00 add r7, sp, #0 - 800a818: 6078 str r0, [r7, #4] - 800a81a: 6039 str r1, [r7, #0] - { - int offset = 0; - 800a81c: 2300 movs r3, #0 - 800a81e: 613b str r3, [r7, #16] - uint32_t length_data; - arrToVar(length_data, (inbuffer + offset)); - 800a820: 693b ldr r3, [r7, #16] - 800a822: 683a ldr r2, [r7, #0] - 800a824: 441a add r2, r3 - 800a826: f107 030c add.w r3, r7, #12 - 800a82a: 4611 mov r1, r2 - 800a82c: 4618 mov r0, r3 - 800a82e: f001 f944 bl 800baba <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> - offset += 4; - 800a832: 693b ldr r3, [r7, #16] - 800a834: 3304 adds r3, #4 - 800a836: 613b str r3, [r7, #16] - for(unsigned int k= offset; k< offset+length_data; ++k){ - 800a838: 693b ldr r3, [r7, #16] - 800a83a: 617b str r3, [r7, #20] - 800a83c: 693a ldr r2, [r7, #16] - 800a83e: 68fb ldr r3, [r7, #12] - 800a840: 4413 add r3, r2 - 800a842: 697a ldr r2, [r7, #20] - 800a844: 429a cmp r2, r3 - 800a846: d20c bcs.n 800a862 <_ZN8std_msgs6String11deserializeEPh+0x50> - inbuffer[k-1]=inbuffer[k]; - 800a848: 683a ldr r2, [r7, #0] - 800a84a: 697b ldr r3, [r7, #20] - 800a84c: 441a add r2, r3 - 800a84e: 697b ldr r3, [r7, #20] - 800a850: 3b01 subs r3, #1 - 800a852: 6839 ldr r1, [r7, #0] - 800a854: 440b add r3, r1 - 800a856: 7812 ldrb r2, [r2, #0] - 800a858: 701a strb r2, [r3, #0] - for(unsigned int k= offset; k< offset+length_data; ++k){ - 800a85a: 697b ldr r3, [r7, #20] - 800a85c: 3301 adds r3, #1 - 800a85e: 617b str r3, [r7, #20] - 800a860: e7ec b.n 800a83c <_ZN8std_msgs6String11deserializeEPh+0x2a> - } - inbuffer[offset+length_data-1]=0; - 800a862: 693a ldr r2, [r7, #16] - 800a864: 68fb ldr r3, [r7, #12] - 800a866: 4413 add r3, r2 - 800a868: 3b01 subs r3, #1 - 800a86a: 683a ldr r2, [r7, #0] - 800a86c: 4413 add r3, r2 - 800a86e: 2200 movs r2, #0 - 800a870: 701a strb r2, [r3, #0] - this->data = (char *)(inbuffer + offset-1); - 800a872: 693b ldr r3, [r7, #16] - 800a874: 3b01 subs r3, #1 - 800a876: 683a ldr r2, [r7, #0] - 800a878: 441a add r2, r3 - 800a87a: 687b ldr r3, [r7, #4] - 800a87c: 605a str r2, [r3, #4] - offset += length_data; - 800a87e: 693a ldr r2, [r7, #16] - 800a880: 68fb ldr r3, [r7, #12] - 800a882: 4413 add r3, r2 - 800a884: 613b str r3, [r7, #16] - return offset; - 800a886: 693b ldr r3, [r7, #16] - } - 800a888: 4618 mov r0, r3 - 800a88a: 3718 adds r7, #24 - 800a88c: 46bd mov sp, r7 - 800a88e: bd80 pop {r7, pc} - -0800a890 <_ZN8std_msgs6String7getTypeEv>: - - const char * getType(){ return "std_msgs/String"; }; - 800a890: b480 push {r7} - 800a892: b083 sub sp, #12 - 800a894: af00 add r7, sp, #0 - 800a896: 6078 str r0, [r7, #4] - 800a898: 4b03 ldr r3, [pc, #12] ; (800a8a8 <_ZN8std_msgs6String7getTypeEv+0x18>) - 800a89a: 4618 mov r0, r3 - 800a89c: 370c adds r7, #12 - 800a89e: 46bd mov sp, r7 - 800a8a0: f85d 7b04 ldr.w r7, [sp], #4 - 800a8a4: 4770 bx lr - 800a8a6: bf00 nop - 800a8a8: 080119b4 .word 0x080119b4 - -0800a8ac <_ZN8std_msgs6String6getMD5Ev>: - const char * getMD5(){ return "992ce8a1687cec8c8bd883ec73ca41d1"; }; - 800a8ac: b480 push {r7} - 800a8ae: b083 sub sp, #12 - 800a8b0: af00 add r7, sp, #0 - 800a8b2: 6078 str r0, [r7, #4] - 800a8b4: 4b03 ldr r3, [pc, #12] ; (800a8c4 <_ZN8std_msgs6String6getMD5Ev+0x18>) - 800a8b6: 4618 mov r0, r3 - 800a8b8: 370c adds r7, #12 - 800a8ba: 46bd mov sp, r7 - 800a8bc: f85d 7b04 ldr.w r7, [sp], #4 - 800a8c0: 4770 bx lr - 800a8c2: bf00 nop - 800a8c4: 080119c4 .word 0x080119c4 - -0800a8c8 <_ZN3ros4TimeC1Ev>: -class Time -{ -public: - uint32_t sec, nsec; - - Time() : sec(0), nsec(0) {} - 800a8c8: b480 push {r7} - 800a8ca: b083 sub sp, #12 - 800a8cc: af00 add r7, sp, #0 - 800a8ce: 6078 str r0, [r7, #4] - 800a8d0: 687b ldr r3, [r7, #4] - 800a8d2: 2200 movs r2, #0 - 800a8d4: 601a str r2, [r3, #0] - 800a8d6: 687b ldr r3, [r7, #4] - 800a8d8: 2200 movs r2, #0 - 800a8da: 605a str r2, [r3, #4] - 800a8dc: 687b ldr r3, [r7, #4] - 800a8de: 4618 mov r0, r3 - 800a8e0: 370c adds r7, #12 - 800a8e2: 46bd mov sp, r7 - 800a8e4: f85d 7b04 ldr.w r7, [sp], #4 - 800a8e8: 4770 bx lr - ... - -0800a8ec <_ZN8std_msgs4TimeC1Ev>: - { - public: - typedef ros::Time _data_type; - _data_type data; - - Time(): - 800a8ec: b580 push {r7, lr} - 800a8ee: b082 sub sp, #8 - 800a8f0: af00 add r7, sp, #0 - 800a8f2: 6078 str r0, [r7, #4] - data() - 800a8f4: 687b ldr r3, [r7, #4] - 800a8f6: 4618 mov r0, r3 - 800a8f8: f7ff ff3a bl 800a770 <_ZN3ros3MsgC1Ev> - 800a8fc: 4a06 ldr r2, [pc, #24] ; (800a918 <_ZN8std_msgs4TimeC1Ev+0x2c>) - 800a8fe: 687b ldr r3, [r7, #4] - 800a900: 601a str r2, [r3, #0] - 800a902: 687b ldr r3, [r7, #4] - 800a904: 3304 adds r3, #4 - 800a906: 4618 mov r0, r3 - 800a908: f7ff ffde bl 800a8c8 <_ZN3ros4TimeC1Ev> - { - } - 800a90c: 687b ldr r3, [r7, #4] - 800a90e: 4618 mov r0, r3 - 800a910: 3708 adds r7, #8 - 800a912: 46bd mov sp, r7 - 800a914: bd80 pop {r7, pc} - 800a916: bf00 nop - 800a918: 08012338 .word 0x08012338 - -0800a91c <_ZNK8std_msgs4Time9serializeEPh>: - - virtual int serialize(unsigned char *outbuffer) const - 800a91c: b480 push {r7} - 800a91e: b085 sub sp, #20 - 800a920: af00 add r7, sp, #0 - 800a922: 6078 str r0, [r7, #4] - 800a924: 6039 str r1, [r7, #0] - { - int offset = 0; - 800a926: 2300 movs r3, #0 - 800a928: 60fb str r3, [r7, #12] - *(outbuffer + offset + 0) = (this->data.sec >> (8 * 0)) & 0xFF; - 800a92a: 687b ldr r3, [r7, #4] - 800a92c: 6859 ldr r1, [r3, #4] - 800a92e: 68fb ldr r3, [r7, #12] - 800a930: 683a ldr r2, [r7, #0] - 800a932: 4413 add r3, r2 - 800a934: b2ca uxtb r2, r1 - 800a936: 701a strb r2, [r3, #0] - *(outbuffer + offset + 1) = (this->data.sec >> (8 * 1)) & 0xFF; - 800a938: 687b ldr r3, [r7, #4] - 800a93a: 685b ldr r3, [r3, #4] - 800a93c: 0a19 lsrs r1, r3, #8 - 800a93e: 68fb ldr r3, [r7, #12] - 800a940: 3301 adds r3, #1 - 800a942: 683a ldr r2, [r7, #0] - 800a944: 4413 add r3, r2 - 800a946: b2ca uxtb r2, r1 - 800a948: 701a strb r2, [r3, #0] - *(outbuffer + offset + 2) = (this->data.sec >> (8 * 2)) & 0xFF; - 800a94a: 687b ldr r3, [r7, #4] - 800a94c: 685b ldr r3, [r3, #4] - 800a94e: 0c19 lsrs r1, r3, #16 - 800a950: 68fb ldr r3, [r7, #12] - 800a952: 3302 adds r3, #2 - 800a954: 683a ldr r2, [r7, #0] - 800a956: 4413 add r3, r2 - 800a958: b2ca uxtb r2, r1 - 800a95a: 701a strb r2, [r3, #0] - *(outbuffer + offset + 3) = (this->data.sec >> (8 * 3)) & 0xFF; - 800a95c: 687b ldr r3, [r7, #4] - 800a95e: 685b ldr r3, [r3, #4] - 800a960: 0e19 lsrs r1, r3, #24 - 800a962: 68fb ldr r3, [r7, #12] - 800a964: 3303 adds r3, #3 - 800a966: 683a ldr r2, [r7, #0] - 800a968: 4413 add r3, r2 - 800a96a: b2ca uxtb r2, r1 - 800a96c: 701a strb r2, [r3, #0] - offset += sizeof(this->data.sec); - 800a96e: 68fb ldr r3, [r7, #12] - 800a970: 3304 adds r3, #4 - 800a972: 60fb str r3, [r7, #12] - *(outbuffer + offset + 0) = (this->data.nsec >> (8 * 0)) & 0xFF; - 800a974: 687b ldr r3, [r7, #4] - 800a976: 6899 ldr r1, [r3, #8] - 800a978: 68fb ldr r3, [r7, #12] - 800a97a: 683a ldr r2, [r7, #0] - 800a97c: 4413 add r3, r2 - 800a97e: b2ca uxtb r2, r1 - 800a980: 701a strb r2, [r3, #0] - *(outbuffer + offset + 1) = (this->data.nsec >> (8 * 1)) & 0xFF; - 800a982: 687b ldr r3, [r7, #4] - 800a984: 689b ldr r3, [r3, #8] - 800a986: 0a19 lsrs r1, r3, #8 - 800a988: 68fb ldr r3, [r7, #12] - 800a98a: 3301 adds r3, #1 - 800a98c: 683a ldr r2, [r7, #0] - 800a98e: 4413 add r3, r2 - 800a990: b2ca uxtb r2, r1 - 800a992: 701a strb r2, [r3, #0] - *(outbuffer + offset + 2) = (this->data.nsec >> (8 * 2)) & 0xFF; - 800a994: 687b ldr r3, [r7, #4] - 800a996: 689b ldr r3, [r3, #8] - 800a998: 0c19 lsrs r1, r3, #16 - 800a99a: 68fb ldr r3, [r7, #12] - 800a99c: 3302 adds r3, #2 - 800a99e: 683a ldr r2, [r7, #0] - 800a9a0: 4413 add r3, r2 - 800a9a2: b2ca uxtb r2, r1 - 800a9a4: 701a strb r2, [r3, #0] - *(outbuffer + offset + 3) = (this->data.nsec >> (8 * 3)) & 0xFF; - 800a9a6: 687b ldr r3, [r7, #4] - 800a9a8: 689b ldr r3, [r3, #8] - 800a9aa: 0e19 lsrs r1, r3, #24 - 800a9ac: 68fb ldr r3, [r7, #12] - 800a9ae: 3303 adds r3, #3 - 800a9b0: 683a ldr r2, [r7, #0] - 800a9b2: 4413 add r3, r2 - 800a9b4: b2ca uxtb r2, r1 - 800a9b6: 701a strb r2, [r3, #0] - offset += sizeof(this->data.nsec); - 800a9b8: 68fb ldr r3, [r7, #12] - 800a9ba: 3304 adds r3, #4 - 800a9bc: 60fb str r3, [r7, #12] - return offset; - 800a9be: 68fb ldr r3, [r7, #12] - } - 800a9c0: 4618 mov r0, r3 - 800a9c2: 3714 adds r7, #20 - 800a9c4: 46bd mov sp, r7 - 800a9c6: f85d 7b04 ldr.w r7, [sp], #4 - 800a9ca: 4770 bx lr - -0800a9cc <_ZN8std_msgs4Time11deserializeEPh>: - - virtual int deserialize(unsigned char *inbuffer) - 800a9cc: b480 push {r7} - 800a9ce: b085 sub sp, #20 - 800a9d0: af00 add r7, sp, #0 - 800a9d2: 6078 str r0, [r7, #4] - 800a9d4: 6039 str r1, [r7, #0] - { - int offset = 0; - 800a9d6: 2300 movs r3, #0 - 800a9d8: 60fb str r3, [r7, #12] - this->data.sec = ((uint32_t) (*(inbuffer + offset))); - 800a9da: 68fb ldr r3, [r7, #12] - 800a9dc: 683a ldr r2, [r7, #0] - 800a9de: 4413 add r3, r2 - 800a9e0: 781b ldrb r3, [r3, #0] - 800a9e2: 461a mov r2, r3 - 800a9e4: 687b ldr r3, [r7, #4] - 800a9e6: 605a str r2, [r3, #4] - this->data.sec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 800a9e8: 687b ldr r3, [r7, #4] - 800a9ea: 685a ldr r2, [r3, #4] - 800a9ec: 68fb ldr r3, [r7, #12] - 800a9ee: 3301 adds r3, #1 - 800a9f0: 6839 ldr r1, [r7, #0] - 800a9f2: 440b add r3, r1 - 800a9f4: 781b ldrb r3, [r3, #0] - 800a9f6: 021b lsls r3, r3, #8 - 800a9f8: 431a orrs r2, r3 - 800a9fa: 687b ldr r3, [r7, #4] - 800a9fc: 605a str r2, [r3, #4] - this->data.sec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 800a9fe: 687b ldr r3, [r7, #4] - 800aa00: 685a ldr r2, [r3, #4] - 800aa02: 68fb ldr r3, [r7, #12] - 800aa04: 3302 adds r3, #2 - 800aa06: 6839 ldr r1, [r7, #0] - 800aa08: 440b add r3, r1 - 800aa0a: 781b ldrb r3, [r3, #0] - 800aa0c: 041b lsls r3, r3, #16 - 800aa0e: 431a orrs r2, r3 - 800aa10: 687b ldr r3, [r7, #4] - 800aa12: 605a str r2, [r3, #4] - this->data.sec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 800aa14: 687b ldr r3, [r7, #4] - 800aa16: 685a ldr r2, [r3, #4] - 800aa18: 68fb ldr r3, [r7, #12] - 800aa1a: 3303 adds r3, #3 - 800aa1c: 6839 ldr r1, [r7, #0] - 800aa1e: 440b add r3, r1 - 800aa20: 781b ldrb r3, [r3, #0] - 800aa22: 061b lsls r3, r3, #24 - 800aa24: 431a orrs r2, r3 - 800aa26: 687b ldr r3, [r7, #4] - 800aa28: 605a str r2, [r3, #4] - offset += sizeof(this->data.sec); - 800aa2a: 68fb ldr r3, [r7, #12] - 800aa2c: 3304 adds r3, #4 - 800aa2e: 60fb str r3, [r7, #12] - this->data.nsec = ((uint32_t) (*(inbuffer + offset))); - 800aa30: 68fb ldr r3, [r7, #12] - 800aa32: 683a ldr r2, [r7, #0] - 800aa34: 4413 add r3, r2 - 800aa36: 781b ldrb r3, [r3, #0] - 800aa38: 461a mov r2, r3 - 800aa3a: 687b ldr r3, [r7, #4] - 800aa3c: 609a str r2, [r3, #8] - this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 800aa3e: 687b ldr r3, [r7, #4] - 800aa40: 689a ldr r2, [r3, #8] - 800aa42: 68fb ldr r3, [r7, #12] - 800aa44: 3301 adds r3, #1 - 800aa46: 6839 ldr r1, [r7, #0] - 800aa48: 440b add r3, r1 - 800aa4a: 781b ldrb r3, [r3, #0] - 800aa4c: 021b lsls r3, r3, #8 - 800aa4e: 431a orrs r2, r3 - 800aa50: 687b ldr r3, [r7, #4] - 800aa52: 609a str r2, [r3, #8] - this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 800aa54: 687b ldr r3, [r7, #4] - 800aa56: 689a ldr r2, [r3, #8] - 800aa58: 68fb ldr r3, [r7, #12] - 800aa5a: 3302 adds r3, #2 - 800aa5c: 6839 ldr r1, [r7, #0] - 800aa5e: 440b add r3, r1 - 800aa60: 781b ldrb r3, [r3, #0] - 800aa62: 041b lsls r3, r3, #16 - 800aa64: 431a orrs r2, r3 - 800aa66: 687b ldr r3, [r7, #4] - 800aa68: 609a str r2, [r3, #8] - this->data.nsec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 800aa6a: 687b ldr r3, [r7, #4] - 800aa6c: 689a ldr r2, [r3, #8] - 800aa6e: 68fb ldr r3, [r7, #12] - 800aa70: 3303 adds r3, #3 - 800aa72: 6839 ldr r1, [r7, #0] - 800aa74: 440b add r3, r1 - 800aa76: 781b ldrb r3, [r3, #0] - 800aa78: 061b lsls r3, r3, #24 - 800aa7a: 431a orrs r2, r3 - 800aa7c: 687b ldr r3, [r7, #4] - 800aa7e: 609a str r2, [r3, #8] - offset += sizeof(this->data.nsec); - 800aa80: 68fb ldr r3, [r7, #12] - 800aa82: 3304 adds r3, #4 - 800aa84: 60fb str r3, [r7, #12] - return offset; - 800aa86: 68fb ldr r3, [r7, #12] - } - 800aa88: 4618 mov r0, r3 - 800aa8a: 3714 adds r7, #20 - 800aa8c: 46bd mov sp, r7 - 800aa8e: f85d 7b04 ldr.w r7, [sp], #4 - 800aa92: 4770 bx lr - -0800aa94 <_ZN8std_msgs4Time7getTypeEv>: - - const char * getType(){ return "std_msgs/Time"; }; - 800aa94: b480 push {r7} - 800aa96: b083 sub sp, #12 - 800aa98: af00 add r7, sp, #0 - 800aa9a: 6078 str r0, [r7, #4] - 800aa9c: 4b03 ldr r3, [pc, #12] ; (800aaac <_ZN8std_msgs4Time7getTypeEv+0x18>) - 800aa9e: 4618 mov r0, r3 - 800aaa0: 370c adds r7, #12 - 800aaa2: 46bd mov sp, r7 - 800aaa4: f85d 7b04 ldr.w r7, [sp], #4 - 800aaa8: 4770 bx lr - 800aaaa: bf00 nop - 800aaac: 080119e8 .word 0x080119e8 - -0800aab0 <_ZN8std_msgs4Time6getMD5Ev>: - const char * getMD5(){ return "cd7166c74c552c311fbcc2fe5a7bc289"; }; - 800aab0: b480 push {r7} - 800aab2: b083 sub sp, #12 - 800aab4: af00 add r7, sp, #0 - 800aab6: 6078 str r0, [r7, #4] - 800aab8: 4b03 ldr r3, [pc, #12] ; (800aac8 <_ZN8std_msgs4Time6getMD5Ev+0x18>) - 800aaba: 4618 mov r0, r3 - 800aabc: 370c adds r7, #12 - 800aabe: 46bd mov sp, r7 - 800aac0: f85d 7b04 ldr.w r7, [sp], #4 - 800aac4: 4770 bx lr - 800aac6: bf00 nop - 800aac8: 080119f8 .word 0x080119f8 - -0800aacc <_ZN14rosserial_msgs9TopicInfoC1Ev>: - enum { ID_PARAMETER_REQUEST = 6 }; - enum { ID_LOG = 7 }; - enum { ID_TIME = 10 }; - enum { ID_TX_STOP = 11 }; - - TopicInfo(): - 800aacc: b580 push {r7, lr} - 800aace: b082 sub sp, #8 - 800aad0: af00 add r7, sp, #0 - 800aad2: 6078 str r0, [r7, #4] - topic_id(0), - topic_name(""), - message_type(""), - md5sum(""), - buffer_size(0) - 800aad4: 687b ldr r3, [r7, #4] - 800aad6: 4618 mov r0, r3 - 800aad8: f7ff fe4a bl 800a770 <_ZN3ros3MsgC1Ev> - 800aadc: 4a0b ldr r2, [pc, #44] ; (800ab0c <_ZN14rosserial_msgs9TopicInfoC1Ev+0x40>) - 800aade: 687b ldr r3, [r7, #4] - 800aae0: 601a str r2, [r3, #0] - 800aae2: 687b ldr r3, [r7, #4] - 800aae4: 2200 movs r2, #0 - 800aae6: 809a strh r2, [r3, #4] - 800aae8: 687b ldr r3, [r7, #4] - 800aaea: 4a09 ldr r2, [pc, #36] ; (800ab10 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x44>) - 800aaec: 609a str r2, [r3, #8] - 800aaee: 687b ldr r3, [r7, #4] - 800aaf0: 4a07 ldr r2, [pc, #28] ; (800ab10 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x44>) - 800aaf2: 60da str r2, [r3, #12] - 800aaf4: 687b ldr r3, [r7, #4] - 800aaf6: 4a06 ldr r2, [pc, #24] ; (800ab10 <_ZN14rosserial_msgs9TopicInfoC1Ev+0x44>) - 800aaf8: 611a str r2, [r3, #16] - 800aafa: 687b ldr r3, [r7, #4] - 800aafc: 2200 movs r2, #0 - 800aafe: 615a str r2, [r3, #20] - { - } - 800ab00: 687b ldr r3, [r7, #4] - 800ab02: 4618 mov r0, r3 - 800ab04: 3708 adds r7, #8 - 800ab06: 46bd mov sp, r7 - 800ab08: bd80 pop {r7, pc} - 800ab0a: bf00 nop - 800ab0c: 08012320 .word 0x08012320 - 800ab10: 080119b0 .word 0x080119b0 - -0800ab14 <_ZNK14rosserial_msgs9TopicInfo9serializeEPh>: - - virtual int serialize(unsigned char *outbuffer) const - 800ab14: b580 push {r7, lr} - 800ab16: b088 sub sp, #32 - 800ab18: af00 add r7, sp, #0 - 800ab1a: 6078 str r0, [r7, #4] - 800ab1c: 6039 str r1, [r7, #0] - { - int offset = 0; - 800ab1e: 2300 movs r3, #0 - 800ab20: 61fb str r3, [r7, #28] - *(outbuffer + offset + 0) = (this->topic_id >> (8 * 0)) & 0xFF; - 800ab22: 687b ldr r3, [r7, #4] - 800ab24: 8899 ldrh r1, [r3, #4] - 800ab26: 69fb ldr r3, [r7, #28] - 800ab28: 683a ldr r2, [r7, #0] - 800ab2a: 4413 add r3, r2 - 800ab2c: b2ca uxtb r2, r1 - 800ab2e: 701a strb r2, [r3, #0] - *(outbuffer + offset + 1) = (this->topic_id >> (8 * 1)) & 0xFF; - 800ab30: 687b ldr r3, [r7, #4] - 800ab32: 889b ldrh r3, [r3, #4] - 800ab34: 0a1b lsrs r3, r3, #8 - 800ab36: b299 uxth r1, r3 - 800ab38: 69fb ldr r3, [r7, #28] - 800ab3a: 3301 adds r3, #1 - 800ab3c: 683a ldr r2, [r7, #0] - 800ab3e: 4413 add r3, r2 - 800ab40: b2ca uxtb r2, r1 - 800ab42: 701a strb r2, [r3, #0] - offset += sizeof(this->topic_id); - 800ab44: 69fb ldr r3, [r7, #28] - 800ab46: 3302 adds r3, #2 - 800ab48: 61fb str r3, [r7, #28] - uint32_t length_topic_name = strlen(this->topic_name); - 800ab4a: 687b ldr r3, [r7, #4] - 800ab4c: 689b ldr r3, [r3, #8] - 800ab4e: 4618 mov r0, r3 - 800ab50: f7fc f940 bl 8006dd4 - 800ab54: 61b8 str r0, [r7, #24] - varToArr(outbuffer + offset, length_topic_name); - 800ab56: 69fb ldr r3, [r7, #28] - 800ab58: 683a ldr r2, [r7, #0] - 800ab5a: 4413 add r3, r2 - 800ab5c: 69b9 ldr r1, [r7, #24] - 800ab5e: 4618 mov r0, r3 - 800ab60: f000 ff8d bl 800ba7e <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> - offset += 4; - 800ab64: 69fb ldr r3, [r7, #28] - 800ab66: 3304 adds r3, #4 - 800ab68: 61fb str r3, [r7, #28] - memcpy(outbuffer + offset, this->topic_name, length_topic_name); - 800ab6a: 69fb ldr r3, [r7, #28] - 800ab6c: 683a ldr r2, [r7, #0] - 800ab6e: 18d0 adds r0, r2, r3 - 800ab70: 687b ldr r3, [r7, #4] - 800ab72: 689b ldr r3, [r3, #8] - 800ab74: 69ba ldr r2, [r7, #24] - 800ab76: 4619 mov r1, r3 - 800ab78: f003 fbfd bl 800e376 - offset += length_topic_name; - 800ab7c: 69fa ldr r2, [r7, #28] - 800ab7e: 69bb ldr r3, [r7, #24] - 800ab80: 4413 add r3, r2 - 800ab82: 61fb str r3, [r7, #28] - uint32_t length_message_type = strlen(this->message_type); - 800ab84: 687b ldr r3, [r7, #4] - 800ab86: 68db ldr r3, [r3, #12] - 800ab88: 4618 mov r0, r3 - 800ab8a: f7fc f923 bl 8006dd4 - 800ab8e: 6178 str r0, [r7, #20] - varToArr(outbuffer + offset, length_message_type); - 800ab90: 69fb ldr r3, [r7, #28] - 800ab92: 683a ldr r2, [r7, #0] - 800ab94: 4413 add r3, r2 - 800ab96: 6979 ldr r1, [r7, #20] - 800ab98: 4618 mov r0, r3 - 800ab9a: f000 ff70 bl 800ba7e <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> - offset += 4; - 800ab9e: 69fb ldr r3, [r7, #28] - 800aba0: 3304 adds r3, #4 - 800aba2: 61fb str r3, [r7, #28] - memcpy(outbuffer + offset, this->message_type, length_message_type); - 800aba4: 69fb ldr r3, [r7, #28] - 800aba6: 683a ldr r2, [r7, #0] - 800aba8: 18d0 adds r0, r2, r3 - 800abaa: 687b ldr r3, [r7, #4] - 800abac: 68db ldr r3, [r3, #12] - 800abae: 697a ldr r2, [r7, #20] - 800abb0: 4619 mov r1, r3 - 800abb2: f003 fbe0 bl 800e376 - offset += length_message_type; - 800abb6: 69fa ldr r2, [r7, #28] - 800abb8: 697b ldr r3, [r7, #20] - 800abba: 4413 add r3, r2 - 800abbc: 61fb str r3, [r7, #28] - uint32_t length_md5sum = strlen(this->md5sum); - 800abbe: 687b ldr r3, [r7, #4] - 800abc0: 691b ldr r3, [r3, #16] - 800abc2: 4618 mov r0, r3 - 800abc4: f7fc f906 bl 8006dd4 - 800abc8: 6138 str r0, [r7, #16] - varToArr(outbuffer + offset, length_md5sum); - 800abca: 69fb ldr r3, [r7, #28] - 800abcc: 683a ldr r2, [r7, #0] - 800abce: 4413 add r3, r2 - 800abd0: 6939 ldr r1, [r7, #16] - 800abd2: 4618 mov r0, r3 - 800abd4: f000 ff53 bl 800ba7e <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> - offset += 4; - 800abd8: 69fb ldr r3, [r7, #28] - 800abda: 3304 adds r3, #4 - 800abdc: 61fb str r3, [r7, #28] - memcpy(outbuffer + offset, this->md5sum, length_md5sum); - 800abde: 69fb ldr r3, [r7, #28] - 800abe0: 683a ldr r2, [r7, #0] - 800abe2: 18d0 adds r0, r2, r3 - 800abe4: 687b ldr r3, [r7, #4] - 800abe6: 691b ldr r3, [r3, #16] - 800abe8: 693a ldr r2, [r7, #16] - 800abea: 4619 mov r1, r3 - 800abec: f003 fbc3 bl 800e376 - offset += length_md5sum; - 800abf0: 69fa ldr r2, [r7, #28] - 800abf2: 693b ldr r3, [r7, #16] - 800abf4: 4413 add r3, r2 - 800abf6: 61fb str r3, [r7, #28] - union { - int32_t real; - uint32_t base; - } u_buffer_size; - u_buffer_size.real = this->buffer_size; - 800abf8: 687b ldr r3, [r7, #4] - 800abfa: 695b ldr r3, [r3, #20] - 800abfc: 60fb str r3, [r7, #12] - *(outbuffer + offset + 0) = (u_buffer_size.base >> (8 * 0)) & 0xFF; - 800abfe: 68f9 ldr r1, [r7, #12] - 800ac00: 69fb ldr r3, [r7, #28] - 800ac02: 683a ldr r2, [r7, #0] - 800ac04: 4413 add r3, r2 - 800ac06: b2ca uxtb r2, r1 - 800ac08: 701a strb r2, [r3, #0] - *(outbuffer + offset + 1) = (u_buffer_size.base >> (8 * 1)) & 0xFF; - 800ac0a: 68fb ldr r3, [r7, #12] - 800ac0c: 0a19 lsrs r1, r3, #8 - 800ac0e: 69fb ldr r3, [r7, #28] - 800ac10: 3301 adds r3, #1 - 800ac12: 683a ldr r2, [r7, #0] - 800ac14: 4413 add r3, r2 - 800ac16: b2ca uxtb r2, r1 - 800ac18: 701a strb r2, [r3, #0] - *(outbuffer + offset + 2) = (u_buffer_size.base >> (8 * 2)) & 0xFF; - 800ac1a: 68fb ldr r3, [r7, #12] - 800ac1c: 0c19 lsrs r1, r3, #16 - 800ac1e: 69fb ldr r3, [r7, #28] - 800ac20: 3302 adds r3, #2 - 800ac22: 683a ldr r2, [r7, #0] - 800ac24: 4413 add r3, r2 - 800ac26: b2ca uxtb r2, r1 - 800ac28: 701a strb r2, [r3, #0] - *(outbuffer + offset + 3) = (u_buffer_size.base >> (8 * 3)) & 0xFF; - 800ac2a: 68fb ldr r3, [r7, #12] - 800ac2c: 0e19 lsrs r1, r3, #24 - 800ac2e: 69fb ldr r3, [r7, #28] - 800ac30: 3303 adds r3, #3 - 800ac32: 683a ldr r2, [r7, #0] - 800ac34: 4413 add r3, r2 - 800ac36: b2ca uxtb r2, r1 - 800ac38: 701a strb r2, [r3, #0] - offset += sizeof(this->buffer_size); - 800ac3a: 69fb ldr r3, [r7, #28] - 800ac3c: 3304 adds r3, #4 - 800ac3e: 61fb str r3, [r7, #28] - return offset; - 800ac40: 69fb ldr r3, [r7, #28] - } - 800ac42: 4618 mov r0, r3 - 800ac44: 3720 adds r7, #32 - 800ac46: 46bd mov sp, r7 - 800ac48: bd80 pop {r7, pc} - -0800ac4a <_ZN14rosserial_msgs9TopicInfo11deserializeEPh>: - - virtual int deserialize(unsigned char *inbuffer) - 800ac4a: b580 push {r7, lr} - 800ac4c: b08a sub sp, #40 ; 0x28 - 800ac4e: af00 add r7, sp, #0 - 800ac50: 6078 str r0, [r7, #4] - 800ac52: 6039 str r1, [r7, #0] - { - int offset = 0; - 800ac54: 2300 movs r3, #0 - 800ac56: 61bb str r3, [r7, #24] - this->topic_id = ((uint16_t) (*(inbuffer + offset))); - 800ac58: 69bb ldr r3, [r7, #24] - 800ac5a: 683a ldr r2, [r7, #0] - 800ac5c: 4413 add r3, r2 - 800ac5e: 781b ldrb r3, [r3, #0] - 800ac60: b29a uxth r2, r3 - 800ac62: 687b ldr r3, [r7, #4] - 800ac64: 809a strh r2, [r3, #4] - this->topic_id |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1); - 800ac66: 687b ldr r3, [r7, #4] - 800ac68: 889b ldrh r3, [r3, #4] - 800ac6a: b21a sxth r2, r3 - 800ac6c: 69bb ldr r3, [r7, #24] - 800ac6e: 3301 adds r3, #1 - 800ac70: 6839 ldr r1, [r7, #0] - 800ac72: 440b add r3, r1 - 800ac74: 781b ldrb r3, [r3, #0] - 800ac76: 021b lsls r3, r3, #8 - 800ac78: b21b sxth r3, r3 - 800ac7a: 4313 orrs r3, r2 - 800ac7c: b21b sxth r3, r3 - 800ac7e: b29a uxth r2, r3 - 800ac80: 687b ldr r3, [r7, #4] - 800ac82: 809a strh r2, [r3, #4] - offset += sizeof(this->topic_id); - 800ac84: 69bb ldr r3, [r7, #24] - 800ac86: 3302 adds r3, #2 - 800ac88: 61bb str r3, [r7, #24] - uint32_t length_topic_name; - arrToVar(length_topic_name, (inbuffer + offset)); - 800ac8a: 69bb ldr r3, [r7, #24] - 800ac8c: 683a ldr r2, [r7, #0] - 800ac8e: 441a add r2, r3 - 800ac90: f107 0314 add.w r3, r7, #20 - 800ac94: 4611 mov r1, r2 - 800ac96: 4618 mov r0, r3 - 800ac98: f000 ff0f bl 800baba <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> - offset += 4; - 800ac9c: 69bb ldr r3, [r7, #24] - 800ac9e: 3304 adds r3, #4 - 800aca0: 61bb str r3, [r7, #24] - for(unsigned int k= offset; k< offset+length_topic_name; ++k){ - 800aca2: 69bb ldr r3, [r7, #24] - 800aca4: 627b str r3, [r7, #36] ; 0x24 - 800aca6: 69ba ldr r2, [r7, #24] - 800aca8: 697b ldr r3, [r7, #20] - 800acaa: 4413 add r3, r2 - 800acac: 6a7a ldr r2, [r7, #36] ; 0x24 - 800acae: 429a cmp r2, r3 - 800acb0: d20c bcs.n 800accc <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x82> - inbuffer[k-1]=inbuffer[k]; - 800acb2: 683a ldr r2, [r7, #0] - 800acb4: 6a7b ldr r3, [r7, #36] ; 0x24 - 800acb6: 441a add r2, r3 - 800acb8: 6a7b ldr r3, [r7, #36] ; 0x24 - 800acba: 3b01 subs r3, #1 - 800acbc: 6839 ldr r1, [r7, #0] - 800acbe: 440b add r3, r1 - 800acc0: 7812 ldrb r2, [r2, #0] - 800acc2: 701a strb r2, [r3, #0] - for(unsigned int k= offset; k< offset+length_topic_name; ++k){ - 800acc4: 6a7b ldr r3, [r7, #36] ; 0x24 - 800acc6: 3301 adds r3, #1 - 800acc8: 627b str r3, [r7, #36] ; 0x24 - 800acca: e7ec b.n 800aca6 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x5c> - } - inbuffer[offset+length_topic_name-1]=0; - 800accc: 69ba ldr r2, [r7, #24] - 800acce: 697b ldr r3, [r7, #20] - 800acd0: 4413 add r3, r2 - 800acd2: 3b01 subs r3, #1 - 800acd4: 683a ldr r2, [r7, #0] - 800acd6: 4413 add r3, r2 - 800acd8: 2200 movs r2, #0 - 800acda: 701a strb r2, [r3, #0] - this->topic_name = (char *)(inbuffer + offset-1); - 800acdc: 69bb ldr r3, [r7, #24] - 800acde: 3b01 subs r3, #1 - 800ace0: 683a ldr r2, [r7, #0] - 800ace2: 441a add r2, r3 - 800ace4: 687b ldr r3, [r7, #4] - 800ace6: 609a str r2, [r3, #8] - offset += length_topic_name; - 800ace8: 69ba ldr r2, [r7, #24] - 800acea: 697b ldr r3, [r7, #20] - 800acec: 4413 add r3, r2 - 800acee: 61bb str r3, [r7, #24] - uint32_t length_message_type; - arrToVar(length_message_type, (inbuffer + offset)); - 800acf0: 69bb ldr r3, [r7, #24] - 800acf2: 683a ldr r2, [r7, #0] - 800acf4: 441a add r2, r3 - 800acf6: f107 0310 add.w r3, r7, #16 - 800acfa: 4611 mov r1, r2 - 800acfc: 4618 mov r0, r3 - 800acfe: f000 fedc bl 800baba <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> - offset += 4; - 800ad02: 69bb ldr r3, [r7, #24] - 800ad04: 3304 adds r3, #4 - 800ad06: 61bb str r3, [r7, #24] - for(unsigned int k= offset; k< offset+length_message_type; ++k){ - 800ad08: 69bb ldr r3, [r7, #24] - 800ad0a: 623b str r3, [r7, #32] - 800ad0c: 69ba ldr r2, [r7, #24] - 800ad0e: 693b ldr r3, [r7, #16] - 800ad10: 4413 add r3, r2 - 800ad12: 6a3a ldr r2, [r7, #32] - 800ad14: 429a cmp r2, r3 - 800ad16: d20c bcs.n 800ad32 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0xe8> - inbuffer[k-1]=inbuffer[k]; - 800ad18: 683a ldr r2, [r7, #0] - 800ad1a: 6a3b ldr r3, [r7, #32] - 800ad1c: 441a add r2, r3 - 800ad1e: 6a3b ldr r3, [r7, #32] - 800ad20: 3b01 subs r3, #1 - 800ad22: 6839 ldr r1, [r7, #0] - 800ad24: 440b add r3, r1 - 800ad26: 7812 ldrb r2, [r2, #0] - 800ad28: 701a strb r2, [r3, #0] - for(unsigned int k= offset; k< offset+length_message_type; ++k){ - 800ad2a: 6a3b ldr r3, [r7, #32] - 800ad2c: 3301 adds r3, #1 - 800ad2e: 623b str r3, [r7, #32] - 800ad30: e7ec b.n 800ad0c <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0xc2> - } - inbuffer[offset+length_message_type-1]=0; - 800ad32: 69ba ldr r2, [r7, #24] - 800ad34: 693b ldr r3, [r7, #16] - 800ad36: 4413 add r3, r2 - 800ad38: 3b01 subs r3, #1 - 800ad3a: 683a ldr r2, [r7, #0] - 800ad3c: 4413 add r3, r2 - 800ad3e: 2200 movs r2, #0 - 800ad40: 701a strb r2, [r3, #0] - this->message_type = (char *)(inbuffer + offset-1); - 800ad42: 69bb ldr r3, [r7, #24] - 800ad44: 3b01 subs r3, #1 - 800ad46: 683a ldr r2, [r7, #0] - 800ad48: 441a add r2, r3 - 800ad4a: 687b ldr r3, [r7, #4] - 800ad4c: 60da str r2, [r3, #12] - offset += length_message_type; - 800ad4e: 69ba ldr r2, [r7, #24] - 800ad50: 693b ldr r3, [r7, #16] - 800ad52: 4413 add r3, r2 - 800ad54: 61bb str r3, [r7, #24] - uint32_t length_md5sum; - arrToVar(length_md5sum, (inbuffer + offset)); - 800ad56: 69bb ldr r3, [r7, #24] - 800ad58: 683a ldr r2, [r7, #0] - 800ad5a: 441a add r2, r3 - 800ad5c: f107 030c add.w r3, r7, #12 - 800ad60: 4611 mov r1, r2 - 800ad62: 4618 mov r0, r3 - 800ad64: f000 fea9 bl 800baba <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> - offset += 4; - 800ad68: 69bb ldr r3, [r7, #24] - 800ad6a: 3304 adds r3, #4 - 800ad6c: 61bb str r3, [r7, #24] - for(unsigned int k= offset; k< offset+length_md5sum; ++k){ - 800ad6e: 69bb ldr r3, [r7, #24] - 800ad70: 61fb str r3, [r7, #28] - 800ad72: 69ba ldr r2, [r7, #24] - 800ad74: 68fb ldr r3, [r7, #12] - 800ad76: 4413 add r3, r2 - 800ad78: 69fa ldr r2, [r7, #28] - 800ad7a: 429a cmp r2, r3 - 800ad7c: d20c bcs.n 800ad98 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x14e> - inbuffer[k-1]=inbuffer[k]; - 800ad7e: 683a ldr r2, [r7, #0] - 800ad80: 69fb ldr r3, [r7, #28] - 800ad82: 441a add r2, r3 - 800ad84: 69fb ldr r3, [r7, #28] - 800ad86: 3b01 subs r3, #1 - 800ad88: 6839 ldr r1, [r7, #0] - 800ad8a: 440b add r3, r1 - 800ad8c: 7812 ldrb r2, [r2, #0] - 800ad8e: 701a strb r2, [r3, #0] - for(unsigned int k= offset; k< offset+length_md5sum; ++k){ - 800ad90: 69fb ldr r3, [r7, #28] - 800ad92: 3301 adds r3, #1 - 800ad94: 61fb str r3, [r7, #28] - 800ad96: e7ec b.n 800ad72 <_ZN14rosserial_msgs9TopicInfo11deserializeEPh+0x128> - } - inbuffer[offset+length_md5sum-1]=0; - 800ad98: 69ba ldr r2, [r7, #24] - 800ad9a: 68fb ldr r3, [r7, #12] - 800ad9c: 4413 add r3, r2 - 800ad9e: 3b01 subs r3, #1 - 800ada0: 683a ldr r2, [r7, #0] - 800ada2: 4413 add r3, r2 - 800ada4: 2200 movs r2, #0 - 800ada6: 701a strb r2, [r3, #0] - this->md5sum = (char *)(inbuffer + offset-1); - 800ada8: 69bb ldr r3, [r7, #24] - 800adaa: 3b01 subs r3, #1 - 800adac: 683a ldr r2, [r7, #0] - 800adae: 441a add r2, r3 - 800adb0: 687b ldr r3, [r7, #4] - 800adb2: 611a str r2, [r3, #16] - offset += length_md5sum; - 800adb4: 69ba ldr r2, [r7, #24] - 800adb6: 68fb ldr r3, [r7, #12] - 800adb8: 4413 add r3, r2 - 800adba: 61bb str r3, [r7, #24] - union { - int32_t real; - uint32_t base; - } u_buffer_size; - u_buffer_size.base = 0; - 800adbc: 2300 movs r3, #0 - 800adbe: 60bb str r3, [r7, #8] - u_buffer_size.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); - 800adc0: 68bb ldr r3, [r7, #8] - 800adc2: 69ba ldr r2, [r7, #24] - 800adc4: 6839 ldr r1, [r7, #0] - 800adc6: 440a add r2, r1 - 800adc8: 7812 ldrb r2, [r2, #0] - 800adca: 4313 orrs r3, r2 - 800adcc: 60bb str r3, [r7, #8] - u_buffer_size.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 800adce: 68ba ldr r2, [r7, #8] - 800add0: 69bb ldr r3, [r7, #24] - 800add2: 3301 adds r3, #1 - 800add4: 6839 ldr r1, [r7, #0] - 800add6: 440b add r3, r1 - 800add8: 781b ldrb r3, [r3, #0] - 800adda: 021b lsls r3, r3, #8 - 800addc: 4313 orrs r3, r2 - 800adde: 60bb str r3, [r7, #8] - u_buffer_size.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 800ade0: 68ba ldr r2, [r7, #8] - 800ade2: 69bb ldr r3, [r7, #24] - 800ade4: 3302 adds r3, #2 - 800ade6: 6839 ldr r1, [r7, #0] - 800ade8: 440b add r3, r1 - 800adea: 781b ldrb r3, [r3, #0] - 800adec: 041b lsls r3, r3, #16 - 800adee: 4313 orrs r3, r2 - 800adf0: 60bb str r3, [r7, #8] - u_buffer_size.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 800adf2: 68ba ldr r2, [r7, #8] - 800adf4: 69bb ldr r3, [r7, #24] - 800adf6: 3303 adds r3, #3 - 800adf8: 6839 ldr r1, [r7, #0] - 800adfa: 440b add r3, r1 - 800adfc: 781b ldrb r3, [r3, #0] - 800adfe: 061b lsls r3, r3, #24 - 800ae00: 4313 orrs r3, r2 - 800ae02: 60bb str r3, [r7, #8] - this->buffer_size = u_buffer_size.real; - 800ae04: 68ba ldr r2, [r7, #8] - 800ae06: 687b ldr r3, [r7, #4] - 800ae08: 615a str r2, [r3, #20] - offset += sizeof(this->buffer_size); - 800ae0a: 69bb ldr r3, [r7, #24] - 800ae0c: 3304 adds r3, #4 - 800ae0e: 61bb str r3, [r7, #24] - return offset; - 800ae10: 69bb ldr r3, [r7, #24] - } - 800ae12: 4618 mov r0, r3 - 800ae14: 3728 adds r7, #40 ; 0x28 - 800ae16: 46bd mov sp, r7 - 800ae18: bd80 pop {r7, pc} - ... - -0800ae1c <_ZN14rosserial_msgs9TopicInfo7getTypeEv>: - - const char * getType(){ return "rosserial_msgs/TopicInfo"; }; - 800ae1c: b480 push {r7} - 800ae1e: b083 sub sp, #12 - 800ae20: af00 add r7, sp, #0 - 800ae22: 6078 str r0, [r7, #4] - 800ae24: 4b03 ldr r3, [pc, #12] ; (800ae34 <_ZN14rosserial_msgs9TopicInfo7getTypeEv+0x18>) - 800ae26: 4618 mov r0, r3 - 800ae28: 370c adds r7, #12 - 800ae2a: 46bd mov sp, r7 - 800ae2c: f85d 7b04 ldr.w r7, [sp], #4 - 800ae30: 4770 bx lr - 800ae32: bf00 nop - 800ae34: 08011a1c .word 0x08011a1c - -0800ae38 <_ZN14rosserial_msgs9TopicInfo6getMD5Ev>: - const char * getMD5(){ return "0ad51f88fc44892f8c10684077646005"; }; - 800ae38: b480 push {r7} - 800ae3a: b083 sub sp, #12 - 800ae3c: af00 add r7, sp, #0 - 800ae3e: 6078 str r0, [r7, #4] - 800ae40: 4b03 ldr r3, [pc, #12] ; (800ae50 <_ZN14rosserial_msgs9TopicInfo6getMD5Ev+0x18>) - 800ae42: 4618 mov r0, r3 - 800ae44: 370c adds r7, #12 - 800ae46: 46bd mov sp, r7 - 800ae48: f85d 7b04 ldr.w r7, [sp], #4 - 800ae4c: 4770 bx lr - 800ae4e: bf00 nop - 800ae50: 08011a38 .word 0x08011a38 - -0800ae54 <_ZN14rosserial_msgs3LogC1Ev>: - enum { INFO = 1 }; - enum { WARN = 2 }; - enum { ERROR = 3 }; - enum { FATAL = 4 }; - - Log(): - 800ae54: b580 push {r7, lr} - 800ae56: b082 sub sp, #8 - 800ae58: af00 add r7, sp, #0 - 800ae5a: 6078 str r0, [r7, #4] - level(0), - msg("") - 800ae5c: 687b ldr r3, [r7, #4] - 800ae5e: 4618 mov r0, r3 - 800ae60: f7ff fc86 bl 800a770 <_ZN3ros3MsgC1Ev> - 800ae64: 4a06 ldr r2, [pc, #24] ; (800ae80 <_ZN14rosserial_msgs3LogC1Ev+0x2c>) - 800ae66: 687b ldr r3, [r7, #4] - 800ae68: 601a str r2, [r3, #0] - 800ae6a: 687b ldr r3, [r7, #4] - 800ae6c: 2200 movs r2, #0 - 800ae6e: 711a strb r2, [r3, #4] - 800ae70: 687b ldr r3, [r7, #4] - 800ae72: 4a04 ldr r2, [pc, #16] ; (800ae84 <_ZN14rosserial_msgs3LogC1Ev+0x30>) - 800ae74: 609a str r2, [r3, #8] - { - } - 800ae76: 687b ldr r3, [r7, #4] - 800ae78: 4618 mov r0, r3 - 800ae7a: 3708 adds r7, #8 - 800ae7c: 46bd mov sp, r7 - 800ae7e: bd80 pop {r7, pc} - 800ae80: 08012308 .word 0x08012308 - 800ae84: 080119b0 .word 0x080119b0 - -0800ae88 <_ZNK14rosserial_msgs3Log9serializeEPh>: - - virtual int serialize(unsigned char *outbuffer) const - 800ae88: b580 push {r7, lr} - 800ae8a: b084 sub sp, #16 - 800ae8c: af00 add r7, sp, #0 - 800ae8e: 6078 str r0, [r7, #4] - 800ae90: 6039 str r1, [r7, #0] - { - int offset = 0; - 800ae92: 2300 movs r3, #0 - 800ae94: 60fb str r3, [r7, #12] - *(outbuffer + offset + 0) = (this->level >> (8 * 0)) & 0xFF; - 800ae96: 68fb ldr r3, [r7, #12] - 800ae98: 683a ldr r2, [r7, #0] - 800ae9a: 4413 add r3, r2 - 800ae9c: 687a ldr r2, [r7, #4] - 800ae9e: 7912 ldrb r2, [r2, #4] - 800aea0: 701a strb r2, [r3, #0] - offset += sizeof(this->level); - 800aea2: 68fb ldr r3, [r7, #12] - 800aea4: 3301 adds r3, #1 - 800aea6: 60fb str r3, [r7, #12] - uint32_t length_msg = strlen(this->msg); - 800aea8: 687b ldr r3, [r7, #4] - 800aeaa: 689b ldr r3, [r3, #8] - 800aeac: 4618 mov r0, r3 - 800aeae: f7fb ff91 bl 8006dd4 - 800aeb2: 60b8 str r0, [r7, #8] - varToArr(outbuffer + offset, length_msg); - 800aeb4: 68fb ldr r3, [r7, #12] - 800aeb6: 683a ldr r2, [r7, #0] - 800aeb8: 4413 add r3, r2 - 800aeba: 68b9 ldr r1, [r7, #8] - 800aebc: 4618 mov r0, r3 - 800aebe: f000 fdde bl 800ba7e <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> - offset += 4; - 800aec2: 68fb ldr r3, [r7, #12] - 800aec4: 3304 adds r3, #4 - 800aec6: 60fb str r3, [r7, #12] - memcpy(outbuffer + offset, this->msg, length_msg); - 800aec8: 68fb ldr r3, [r7, #12] - 800aeca: 683a ldr r2, [r7, #0] - 800aecc: 18d0 adds r0, r2, r3 - 800aece: 687b ldr r3, [r7, #4] - 800aed0: 689b ldr r3, [r3, #8] - 800aed2: 68ba ldr r2, [r7, #8] - 800aed4: 4619 mov r1, r3 - 800aed6: f003 fa4e bl 800e376 - offset += length_msg; - 800aeda: 68fa ldr r2, [r7, #12] - 800aedc: 68bb ldr r3, [r7, #8] - 800aede: 4413 add r3, r2 - 800aee0: 60fb str r3, [r7, #12] - return offset; - 800aee2: 68fb ldr r3, [r7, #12] - } - 800aee4: 4618 mov r0, r3 - 800aee6: 3710 adds r7, #16 - 800aee8: 46bd mov sp, r7 - 800aeea: bd80 pop {r7, pc} - -0800aeec <_ZN14rosserial_msgs3Log11deserializeEPh>: - - virtual int deserialize(unsigned char *inbuffer) - 800aeec: b580 push {r7, lr} - 800aeee: b086 sub sp, #24 - 800aef0: af00 add r7, sp, #0 - 800aef2: 6078 str r0, [r7, #4] - 800aef4: 6039 str r1, [r7, #0] - { - int offset = 0; - 800aef6: 2300 movs r3, #0 - 800aef8: 613b str r3, [r7, #16] - this->level = ((uint8_t) (*(inbuffer + offset))); - 800aefa: 693b ldr r3, [r7, #16] - 800aefc: 683a ldr r2, [r7, #0] - 800aefe: 4413 add r3, r2 - 800af00: 781a ldrb r2, [r3, #0] - 800af02: 687b ldr r3, [r7, #4] - 800af04: 711a strb r2, [r3, #4] - offset += sizeof(this->level); - 800af06: 693b ldr r3, [r7, #16] - 800af08: 3301 adds r3, #1 - 800af0a: 613b str r3, [r7, #16] - uint32_t length_msg; - arrToVar(length_msg, (inbuffer + offset)); - 800af0c: 693b ldr r3, [r7, #16] - 800af0e: 683a ldr r2, [r7, #0] - 800af10: 441a add r2, r3 - 800af12: f107 030c add.w r3, r7, #12 - 800af16: 4611 mov r1, r2 - 800af18: 4618 mov r0, r3 - 800af1a: f000 fdce bl 800baba <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> - offset += 4; - 800af1e: 693b ldr r3, [r7, #16] - 800af20: 3304 adds r3, #4 - 800af22: 613b str r3, [r7, #16] - for(unsigned int k= offset; k< offset+length_msg; ++k){ - 800af24: 693b ldr r3, [r7, #16] - 800af26: 617b str r3, [r7, #20] - 800af28: 693a ldr r2, [r7, #16] - 800af2a: 68fb ldr r3, [r7, #12] - 800af2c: 4413 add r3, r2 - 800af2e: 697a ldr r2, [r7, #20] - 800af30: 429a cmp r2, r3 - 800af32: d20c bcs.n 800af4e <_ZN14rosserial_msgs3Log11deserializeEPh+0x62> - inbuffer[k-1]=inbuffer[k]; - 800af34: 683a ldr r2, [r7, #0] - 800af36: 697b ldr r3, [r7, #20] - 800af38: 441a add r2, r3 - 800af3a: 697b ldr r3, [r7, #20] - 800af3c: 3b01 subs r3, #1 - 800af3e: 6839 ldr r1, [r7, #0] - 800af40: 440b add r3, r1 - 800af42: 7812 ldrb r2, [r2, #0] - 800af44: 701a strb r2, [r3, #0] - for(unsigned int k= offset; k< offset+length_msg; ++k){ - 800af46: 697b ldr r3, [r7, #20] - 800af48: 3301 adds r3, #1 - 800af4a: 617b str r3, [r7, #20] - 800af4c: e7ec b.n 800af28 <_ZN14rosserial_msgs3Log11deserializeEPh+0x3c> - } - inbuffer[offset+length_msg-1]=0; - 800af4e: 693a ldr r2, [r7, #16] - 800af50: 68fb ldr r3, [r7, #12] - 800af52: 4413 add r3, r2 - 800af54: 3b01 subs r3, #1 - 800af56: 683a ldr r2, [r7, #0] - 800af58: 4413 add r3, r2 - 800af5a: 2200 movs r2, #0 - 800af5c: 701a strb r2, [r3, #0] - this->msg = (char *)(inbuffer + offset-1); - 800af5e: 693b ldr r3, [r7, #16] - 800af60: 3b01 subs r3, #1 - 800af62: 683a ldr r2, [r7, #0] - 800af64: 441a add r2, r3 - 800af66: 687b ldr r3, [r7, #4] - 800af68: 609a str r2, [r3, #8] - offset += length_msg; - 800af6a: 693a ldr r2, [r7, #16] - 800af6c: 68fb ldr r3, [r7, #12] - 800af6e: 4413 add r3, r2 - 800af70: 613b str r3, [r7, #16] - return offset; - 800af72: 693b ldr r3, [r7, #16] - } - 800af74: 4618 mov r0, r3 - 800af76: 3718 adds r7, #24 - 800af78: 46bd mov sp, r7 - 800af7a: bd80 pop {r7, pc} - -0800af7c <_ZN14rosserial_msgs3Log7getTypeEv>: - - const char * getType(){ return "rosserial_msgs/Log"; }; - 800af7c: b480 push {r7} - 800af7e: b083 sub sp, #12 - 800af80: af00 add r7, sp, #0 - 800af82: 6078 str r0, [r7, #4] - 800af84: 4b03 ldr r3, [pc, #12] ; (800af94 <_ZN14rosserial_msgs3Log7getTypeEv+0x18>) - 800af86: 4618 mov r0, r3 - 800af88: 370c adds r7, #12 - 800af8a: 46bd mov sp, r7 - 800af8c: f85d 7b04 ldr.w r7, [sp], #4 - 800af90: 4770 bx lr - 800af92: bf00 nop - 800af94: 08011a5c .word 0x08011a5c - -0800af98 <_ZN14rosserial_msgs3Log6getMD5Ev>: - const char * getMD5(){ return "11abd731c25933261cd6183bd12d6295"; }; - 800af98: b480 push {r7} - 800af9a: b083 sub sp, #12 - 800af9c: af00 add r7, sp, #0 - 800af9e: 6078 str r0, [r7, #4] - 800afa0: 4b03 ldr r3, [pc, #12] ; (800afb0 <_ZN14rosserial_msgs3Log6getMD5Ev+0x18>) - 800afa2: 4618 mov r0, r3 - 800afa4: 370c adds r7, #12 - 800afa6: 46bd mov sp, r7 - 800afa8: f85d 7b04 ldr.w r7, [sp], #4 - 800afac: 4770 bx lr - 800afae: bf00 nop - 800afb0: 08011a70 .word 0x08011a70 - -0800afb4 <_ZN14rosserial_msgs20RequestParamResponseC1Ev>: - uint32_t strings_length; - typedef char* _strings_type; - _strings_type st_strings; - _strings_type * strings; - - RequestParamResponse(): - 800afb4: b580 push {r7, lr} - 800afb6: b082 sub sp, #8 - 800afb8: af00 add r7, sp, #0 - 800afba: 6078 str r0, [r7, #4] - ints_length(0), ints(NULL), - floats_length(0), floats(NULL), - strings_length(0), strings(NULL) - 800afbc: 687b ldr r3, [r7, #4] - 800afbe: 4618 mov r0, r3 - 800afc0: f7ff fbd6 bl 800a770 <_ZN3ros3MsgC1Ev> - 800afc4: 4a0c ldr r2, [pc, #48] ; (800aff8 <_ZN14rosserial_msgs20RequestParamResponseC1Ev+0x44>) - 800afc6: 687b ldr r3, [r7, #4] - 800afc8: 601a str r2, [r3, #0] - 800afca: 687b ldr r3, [r7, #4] - 800afcc: 2200 movs r2, #0 - 800afce: 605a str r2, [r3, #4] - 800afd0: 687b ldr r3, [r7, #4] - 800afd2: 2200 movs r2, #0 - 800afd4: 60da str r2, [r3, #12] - 800afd6: 687b ldr r3, [r7, #4] - 800afd8: 2200 movs r2, #0 - 800afda: 611a str r2, [r3, #16] - 800afdc: 687b ldr r3, [r7, #4] - 800afde: 2200 movs r2, #0 - 800afe0: 619a str r2, [r3, #24] - 800afe2: 687b ldr r3, [r7, #4] - 800afe4: 2200 movs r2, #0 - 800afe6: 61da str r2, [r3, #28] - 800afe8: 687b ldr r3, [r7, #4] - 800afea: 2200 movs r2, #0 - 800afec: 625a str r2, [r3, #36] ; 0x24 - { - } - 800afee: 687b ldr r3, [r7, #4] - 800aff0: 4618 mov r0, r3 - 800aff2: 3708 adds r7, #8 - 800aff4: 46bd mov sp, r7 - 800aff6: bd80 pop {r7, pc} - 800aff8: 080122f0 .word 0x080122f0 - -0800affc <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh>: - - virtual int serialize(unsigned char *outbuffer) const - 800affc: b580 push {r7, lr} - 800affe: b08a sub sp, #40 ; 0x28 - 800b000: af00 add r7, sp, #0 - 800b002: 6078 str r0, [r7, #4] - 800b004: 6039 str r1, [r7, #0] - { - int offset = 0; - 800b006: 2300 movs r3, #0 - 800b008: 627b str r3, [r7, #36] ; 0x24 - *(outbuffer + offset + 0) = (this->ints_length >> (8 * 0)) & 0xFF; - 800b00a: 687b ldr r3, [r7, #4] - 800b00c: 6859 ldr r1, [r3, #4] - 800b00e: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b010: 683a ldr r2, [r7, #0] - 800b012: 4413 add r3, r2 - 800b014: b2ca uxtb r2, r1 - 800b016: 701a strb r2, [r3, #0] - *(outbuffer + offset + 1) = (this->ints_length >> (8 * 1)) & 0xFF; - 800b018: 687b ldr r3, [r7, #4] - 800b01a: 685b ldr r3, [r3, #4] - 800b01c: 0a19 lsrs r1, r3, #8 - 800b01e: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b020: 3301 adds r3, #1 - 800b022: 683a ldr r2, [r7, #0] - 800b024: 4413 add r3, r2 - 800b026: b2ca uxtb r2, r1 - 800b028: 701a strb r2, [r3, #0] - *(outbuffer + offset + 2) = (this->ints_length >> (8 * 2)) & 0xFF; - 800b02a: 687b ldr r3, [r7, #4] - 800b02c: 685b ldr r3, [r3, #4] - 800b02e: 0c19 lsrs r1, r3, #16 - 800b030: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b032: 3302 adds r3, #2 - 800b034: 683a ldr r2, [r7, #0] - 800b036: 4413 add r3, r2 - 800b038: b2ca uxtb r2, r1 - 800b03a: 701a strb r2, [r3, #0] - *(outbuffer + offset + 3) = (this->ints_length >> (8 * 3)) & 0xFF; - 800b03c: 687b ldr r3, [r7, #4] - 800b03e: 685b ldr r3, [r3, #4] - 800b040: 0e19 lsrs r1, r3, #24 - 800b042: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b044: 3303 adds r3, #3 - 800b046: 683a ldr r2, [r7, #0] - 800b048: 4413 add r3, r2 - 800b04a: b2ca uxtb r2, r1 - 800b04c: 701a strb r2, [r3, #0] - offset += sizeof(this->ints_length); - 800b04e: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b050: 3304 adds r3, #4 - 800b052: 627b str r3, [r7, #36] ; 0x24 - for( uint32_t i = 0; i < ints_length; i++){ - 800b054: 2300 movs r3, #0 - 800b056: 623b str r3, [r7, #32] - 800b058: 687b ldr r3, [r7, #4] - 800b05a: 685b ldr r3, [r3, #4] - 800b05c: 6a3a ldr r2, [r7, #32] - 800b05e: 429a cmp r2, r3 - 800b060: d22b bcs.n 800b0ba <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0xbe> - union { - int32_t real; - uint32_t base; - } u_intsi; - u_intsi.real = this->ints[i]; - 800b062: 687b ldr r3, [r7, #4] - 800b064: 68da ldr r2, [r3, #12] - 800b066: 6a3b ldr r3, [r7, #32] - 800b068: 009b lsls r3, r3, #2 - 800b06a: 4413 add r3, r2 - 800b06c: 681b ldr r3, [r3, #0] - 800b06e: 613b str r3, [r7, #16] - *(outbuffer + offset + 0) = (u_intsi.base >> (8 * 0)) & 0xFF; - 800b070: 6939 ldr r1, [r7, #16] - 800b072: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b074: 683a ldr r2, [r7, #0] - 800b076: 4413 add r3, r2 - 800b078: b2ca uxtb r2, r1 - 800b07a: 701a strb r2, [r3, #0] - *(outbuffer + offset + 1) = (u_intsi.base >> (8 * 1)) & 0xFF; - 800b07c: 693b ldr r3, [r7, #16] - 800b07e: 0a19 lsrs r1, r3, #8 - 800b080: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b082: 3301 adds r3, #1 - 800b084: 683a ldr r2, [r7, #0] - 800b086: 4413 add r3, r2 - 800b088: b2ca uxtb r2, r1 - 800b08a: 701a strb r2, [r3, #0] - *(outbuffer + offset + 2) = (u_intsi.base >> (8 * 2)) & 0xFF; - 800b08c: 693b ldr r3, [r7, #16] - 800b08e: 0c19 lsrs r1, r3, #16 - 800b090: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b092: 3302 adds r3, #2 - 800b094: 683a ldr r2, [r7, #0] - 800b096: 4413 add r3, r2 - 800b098: b2ca uxtb r2, r1 - 800b09a: 701a strb r2, [r3, #0] - *(outbuffer + offset + 3) = (u_intsi.base >> (8 * 3)) & 0xFF; - 800b09c: 693b ldr r3, [r7, #16] - 800b09e: 0e19 lsrs r1, r3, #24 - 800b0a0: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b0a2: 3303 adds r3, #3 - 800b0a4: 683a ldr r2, [r7, #0] - 800b0a6: 4413 add r3, r2 - 800b0a8: b2ca uxtb r2, r1 - 800b0aa: 701a strb r2, [r3, #0] - offset += sizeof(this->ints[i]); - 800b0ac: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b0ae: 3304 adds r3, #4 - 800b0b0: 627b str r3, [r7, #36] ; 0x24 - for( uint32_t i = 0; i < ints_length; i++){ - 800b0b2: 6a3b ldr r3, [r7, #32] - 800b0b4: 3301 adds r3, #1 - 800b0b6: 623b str r3, [r7, #32] - 800b0b8: e7ce b.n 800b058 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x5c> - } - *(outbuffer + offset + 0) = (this->floats_length >> (8 * 0)) & 0xFF; - 800b0ba: 687b ldr r3, [r7, #4] - 800b0bc: 6919 ldr r1, [r3, #16] - 800b0be: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b0c0: 683a ldr r2, [r7, #0] - 800b0c2: 4413 add r3, r2 - 800b0c4: b2ca uxtb r2, r1 - 800b0c6: 701a strb r2, [r3, #0] - *(outbuffer + offset + 1) = (this->floats_length >> (8 * 1)) & 0xFF; - 800b0c8: 687b ldr r3, [r7, #4] - 800b0ca: 691b ldr r3, [r3, #16] - 800b0cc: 0a19 lsrs r1, r3, #8 - 800b0ce: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b0d0: 3301 adds r3, #1 - 800b0d2: 683a ldr r2, [r7, #0] - 800b0d4: 4413 add r3, r2 - 800b0d6: b2ca uxtb r2, r1 - 800b0d8: 701a strb r2, [r3, #0] - *(outbuffer + offset + 2) = (this->floats_length >> (8 * 2)) & 0xFF; - 800b0da: 687b ldr r3, [r7, #4] - 800b0dc: 691b ldr r3, [r3, #16] - 800b0de: 0c19 lsrs r1, r3, #16 - 800b0e0: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b0e2: 3302 adds r3, #2 - 800b0e4: 683a ldr r2, [r7, #0] - 800b0e6: 4413 add r3, r2 - 800b0e8: b2ca uxtb r2, r1 - 800b0ea: 701a strb r2, [r3, #0] - *(outbuffer + offset + 3) = (this->floats_length >> (8 * 3)) & 0xFF; - 800b0ec: 687b ldr r3, [r7, #4] - 800b0ee: 691b ldr r3, [r3, #16] - 800b0f0: 0e19 lsrs r1, r3, #24 - 800b0f2: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b0f4: 3303 adds r3, #3 - 800b0f6: 683a ldr r2, [r7, #0] - 800b0f8: 4413 add r3, r2 - 800b0fa: b2ca uxtb r2, r1 - 800b0fc: 701a strb r2, [r3, #0] - offset += sizeof(this->floats_length); - 800b0fe: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b100: 3304 adds r3, #4 - 800b102: 627b str r3, [r7, #36] ; 0x24 - for( uint32_t i = 0; i < floats_length; i++){ - 800b104: 2300 movs r3, #0 - 800b106: 61fb str r3, [r7, #28] - 800b108: 687b ldr r3, [r7, #4] - 800b10a: 691b ldr r3, [r3, #16] - 800b10c: 69fa ldr r2, [r7, #28] - 800b10e: 429a cmp r2, r3 - 800b110: d22b bcs.n 800b16a <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x16e> - union { - float real; - uint32_t base; - } u_floatsi; - u_floatsi.real = this->floats[i]; - 800b112: 687b ldr r3, [r7, #4] - 800b114: 699a ldr r2, [r3, #24] - 800b116: 69fb ldr r3, [r7, #28] - 800b118: 009b lsls r3, r3, #2 - 800b11a: 4413 add r3, r2 - 800b11c: 681b ldr r3, [r3, #0] - 800b11e: 60fb str r3, [r7, #12] - *(outbuffer + offset + 0) = (u_floatsi.base >> (8 * 0)) & 0xFF; - 800b120: 68f9 ldr r1, [r7, #12] - 800b122: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b124: 683a ldr r2, [r7, #0] - 800b126: 4413 add r3, r2 - 800b128: b2ca uxtb r2, r1 - 800b12a: 701a strb r2, [r3, #0] - *(outbuffer + offset + 1) = (u_floatsi.base >> (8 * 1)) & 0xFF; - 800b12c: 68fb ldr r3, [r7, #12] - 800b12e: 0a19 lsrs r1, r3, #8 - 800b130: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b132: 3301 adds r3, #1 - 800b134: 683a ldr r2, [r7, #0] - 800b136: 4413 add r3, r2 - 800b138: b2ca uxtb r2, r1 - 800b13a: 701a strb r2, [r3, #0] - *(outbuffer + offset + 2) = (u_floatsi.base >> (8 * 2)) & 0xFF; - 800b13c: 68fb ldr r3, [r7, #12] - 800b13e: 0c19 lsrs r1, r3, #16 - 800b140: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b142: 3302 adds r3, #2 - 800b144: 683a ldr r2, [r7, #0] - 800b146: 4413 add r3, r2 - 800b148: b2ca uxtb r2, r1 - 800b14a: 701a strb r2, [r3, #0] - *(outbuffer + offset + 3) = (u_floatsi.base >> (8 * 3)) & 0xFF; - 800b14c: 68fb ldr r3, [r7, #12] - 800b14e: 0e19 lsrs r1, r3, #24 - 800b150: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b152: 3303 adds r3, #3 - 800b154: 683a ldr r2, [r7, #0] - 800b156: 4413 add r3, r2 - 800b158: b2ca uxtb r2, r1 - 800b15a: 701a strb r2, [r3, #0] - offset += sizeof(this->floats[i]); - 800b15c: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b15e: 3304 adds r3, #4 - 800b160: 627b str r3, [r7, #36] ; 0x24 - for( uint32_t i = 0; i < floats_length; i++){ - 800b162: 69fb ldr r3, [r7, #28] - 800b164: 3301 adds r3, #1 - 800b166: 61fb str r3, [r7, #28] - 800b168: e7ce b.n 800b108 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x10c> - } - *(outbuffer + offset + 0) = (this->strings_length >> (8 * 0)) & 0xFF; - 800b16a: 687b ldr r3, [r7, #4] - 800b16c: 69d9 ldr r1, [r3, #28] - 800b16e: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b170: 683a ldr r2, [r7, #0] - 800b172: 4413 add r3, r2 - 800b174: b2ca uxtb r2, r1 - 800b176: 701a strb r2, [r3, #0] - *(outbuffer + offset + 1) = (this->strings_length >> (8 * 1)) & 0xFF; - 800b178: 687b ldr r3, [r7, #4] - 800b17a: 69db ldr r3, [r3, #28] - 800b17c: 0a19 lsrs r1, r3, #8 - 800b17e: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b180: 3301 adds r3, #1 - 800b182: 683a ldr r2, [r7, #0] - 800b184: 4413 add r3, r2 - 800b186: b2ca uxtb r2, r1 - 800b188: 701a strb r2, [r3, #0] - *(outbuffer + offset + 2) = (this->strings_length >> (8 * 2)) & 0xFF; - 800b18a: 687b ldr r3, [r7, #4] - 800b18c: 69db ldr r3, [r3, #28] - 800b18e: 0c19 lsrs r1, r3, #16 - 800b190: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b192: 3302 adds r3, #2 - 800b194: 683a ldr r2, [r7, #0] - 800b196: 4413 add r3, r2 - 800b198: b2ca uxtb r2, r1 - 800b19a: 701a strb r2, [r3, #0] - *(outbuffer + offset + 3) = (this->strings_length >> (8 * 3)) & 0xFF; - 800b19c: 687b ldr r3, [r7, #4] - 800b19e: 69db ldr r3, [r3, #28] - 800b1a0: 0e19 lsrs r1, r3, #24 - 800b1a2: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b1a4: 3303 adds r3, #3 - 800b1a6: 683a ldr r2, [r7, #0] - 800b1a8: 4413 add r3, r2 - 800b1aa: b2ca uxtb r2, r1 - 800b1ac: 701a strb r2, [r3, #0] - offset += sizeof(this->strings_length); - 800b1ae: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b1b0: 3304 adds r3, #4 - 800b1b2: 627b str r3, [r7, #36] ; 0x24 - for( uint32_t i = 0; i < strings_length; i++){ - 800b1b4: 2300 movs r3, #0 - 800b1b6: 61bb str r3, [r7, #24] - 800b1b8: 687b ldr r3, [r7, #4] - 800b1ba: 69db ldr r3, [r3, #28] - 800b1bc: 69ba ldr r2, [r7, #24] - 800b1be: 429a cmp r2, r3 - 800b1c0: d228 bcs.n 800b214 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x218> - uint32_t length_stringsi = strlen(this->strings[i]); - 800b1c2: 687b ldr r3, [r7, #4] - 800b1c4: 6a5a ldr r2, [r3, #36] ; 0x24 - 800b1c6: 69bb ldr r3, [r7, #24] - 800b1c8: 009b lsls r3, r3, #2 - 800b1ca: 4413 add r3, r2 - 800b1cc: 681b ldr r3, [r3, #0] - 800b1ce: 4618 mov r0, r3 - 800b1d0: f7fb fe00 bl 8006dd4 - 800b1d4: 6178 str r0, [r7, #20] - varToArr(outbuffer + offset, length_stringsi); - 800b1d6: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b1d8: 683a ldr r2, [r7, #0] - 800b1da: 4413 add r3, r2 - 800b1dc: 6979 ldr r1, [r7, #20] - 800b1de: 4618 mov r0, r3 - 800b1e0: f000 fc4d bl 800ba7e <_ZN3ros3Msg8varToArrIPhmEEvT_T0_> - offset += 4; - 800b1e4: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b1e6: 3304 adds r3, #4 - 800b1e8: 627b str r3, [r7, #36] ; 0x24 - memcpy(outbuffer + offset, this->strings[i], length_stringsi); - 800b1ea: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b1ec: 683a ldr r2, [r7, #0] - 800b1ee: 18d0 adds r0, r2, r3 - 800b1f0: 687b ldr r3, [r7, #4] - 800b1f2: 6a5a ldr r2, [r3, #36] ; 0x24 - 800b1f4: 69bb ldr r3, [r7, #24] - 800b1f6: 009b lsls r3, r3, #2 - 800b1f8: 4413 add r3, r2 - 800b1fa: 681b ldr r3, [r3, #0] - 800b1fc: 697a ldr r2, [r7, #20] - 800b1fe: 4619 mov r1, r3 - 800b200: f003 f8b9 bl 800e376 - offset += length_stringsi; - 800b204: 6a7a ldr r2, [r7, #36] ; 0x24 - 800b206: 697b ldr r3, [r7, #20] - 800b208: 4413 add r3, r2 - 800b20a: 627b str r3, [r7, #36] ; 0x24 - for( uint32_t i = 0; i < strings_length; i++){ - 800b20c: 69bb ldr r3, [r7, #24] - 800b20e: 3301 adds r3, #1 - 800b210: 61bb str r3, [r7, #24] - 800b212: e7d1 b.n 800b1b8 <_ZNK14rosserial_msgs20RequestParamResponse9serializeEPh+0x1bc> - } - return offset; - 800b214: 6a7b ldr r3, [r7, #36] ; 0x24 - } - 800b216: 4618 mov r0, r3 - 800b218: 3728 adds r7, #40 ; 0x28 - 800b21a: 46bd mov sp, r7 - 800b21c: bd80 pop {r7, pc} - -0800b21e <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh>: - - virtual int deserialize(unsigned char *inbuffer) - 800b21e: b580 push {r7, lr} - 800b220: b08e sub sp, #56 ; 0x38 - 800b222: af00 add r7, sp, #0 - 800b224: 6078 str r0, [r7, #4] - 800b226: 6039 str r1, [r7, #0] - { - int offset = 0; - 800b228: 2300 movs r3, #0 - 800b22a: 637b str r3, [r7, #52] ; 0x34 - uint32_t ints_lengthT = ((uint32_t) (*(inbuffer + offset))); - 800b22c: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b22e: 683a ldr r2, [r7, #0] - 800b230: 4413 add r3, r2 - 800b232: 781b ldrb r3, [r3, #0] - 800b234: 623b str r3, [r7, #32] - ints_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 800b236: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b238: 3301 adds r3, #1 - 800b23a: 683a ldr r2, [r7, #0] - 800b23c: 4413 add r3, r2 - 800b23e: 781b ldrb r3, [r3, #0] - 800b240: 021b lsls r3, r3, #8 - 800b242: 6a3a ldr r2, [r7, #32] - 800b244: 4313 orrs r3, r2 - 800b246: 623b str r3, [r7, #32] - ints_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 800b248: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b24a: 3302 adds r3, #2 - 800b24c: 683a ldr r2, [r7, #0] - 800b24e: 4413 add r3, r2 - 800b250: 781b ldrb r3, [r3, #0] - 800b252: 041b lsls r3, r3, #16 - 800b254: 6a3a ldr r2, [r7, #32] - 800b256: 4313 orrs r3, r2 - 800b258: 623b str r3, [r7, #32] - ints_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 800b25a: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b25c: 3303 adds r3, #3 - 800b25e: 683a ldr r2, [r7, #0] - 800b260: 4413 add r3, r2 - 800b262: 781b ldrb r3, [r3, #0] - 800b264: 061b lsls r3, r3, #24 - 800b266: 6a3a ldr r2, [r7, #32] - 800b268: 4313 orrs r3, r2 - 800b26a: 623b str r3, [r7, #32] - offset += sizeof(this->ints_length); - 800b26c: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b26e: 3304 adds r3, #4 - 800b270: 637b str r3, [r7, #52] ; 0x34 - if(ints_lengthT > ints_length) - 800b272: 687b ldr r3, [r7, #4] - 800b274: 685b ldr r3, [r3, #4] - 800b276: 6a3a ldr r2, [r7, #32] - 800b278: 429a cmp r2, r3 - 800b27a: d90a bls.n 800b292 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x74> - this->ints = (int32_t*)realloc(this->ints, ints_lengthT * sizeof(int32_t)); - 800b27c: 687b ldr r3, [r7, #4] - 800b27e: 68da ldr r2, [r3, #12] - 800b280: 6a3b ldr r3, [r7, #32] - 800b282: 009b lsls r3, r3, #2 - 800b284: 4619 mov r1, r3 - 800b286: 4610 mov r0, r2 - 800b288: f003 f8e2 bl 800e450 - 800b28c: 4602 mov r2, r0 - 800b28e: 687b ldr r3, [r7, #4] - 800b290: 60da str r2, [r3, #12] - ints_length = ints_lengthT; - 800b292: 687b ldr r3, [r7, #4] - 800b294: 6a3a ldr r2, [r7, #32] - 800b296: 605a str r2, [r3, #4] - for( uint32_t i = 0; i < ints_length; i++){ - 800b298: 2300 movs r3, #0 - 800b29a: 633b str r3, [r7, #48] ; 0x30 - 800b29c: 687b ldr r3, [r7, #4] - 800b29e: 685b ldr r3, [r3, #4] - 800b2a0: 6b3a ldr r2, [r7, #48] ; 0x30 - 800b2a2: 429a cmp r2, r3 - 800b2a4: d236 bcs.n 800b314 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0xf6> - union { - int32_t real; - uint32_t base; - } u_st_ints; - u_st_ints.base = 0; - 800b2a6: 2300 movs r3, #0 - 800b2a8: 617b str r3, [r7, #20] - u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); - 800b2aa: 697b ldr r3, [r7, #20] - 800b2ac: 6b7a ldr r2, [r7, #52] ; 0x34 - 800b2ae: 6839 ldr r1, [r7, #0] - 800b2b0: 440a add r2, r1 - 800b2b2: 7812 ldrb r2, [r2, #0] - 800b2b4: 4313 orrs r3, r2 - 800b2b6: 617b str r3, [r7, #20] - u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 800b2b8: 697a ldr r2, [r7, #20] - 800b2ba: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b2bc: 3301 adds r3, #1 - 800b2be: 6839 ldr r1, [r7, #0] - 800b2c0: 440b add r3, r1 - 800b2c2: 781b ldrb r3, [r3, #0] - 800b2c4: 021b lsls r3, r3, #8 - 800b2c6: 4313 orrs r3, r2 - 800b2c8: 617b str r3, [r7, #20] - u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 800b2ca: 697a ldr r2, [r7, #20] - 800b2cc: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b2ce: 3302 adds r3, #2 - 800b2d0: 6839 ldr r1, [r7, #0] - 800b2d2: 440b add r3, r1 - 800b2d4: 781b ldrb r3, [r3, #0] - 800b2d6: 041b lsls r3, r3, #16 - 800b2d8: 4313 orrs r3, r2 - 800b2da: 617b str r3, [r7, #20] - u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 800b2dc: 697a ldr r2, [r7, #20] - 800b2de: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b2e0: 3303 adds r3, #3 - 800b2e2: 6839 ldr r1, [r7, #0] - 800b2e4: 440b add r3, r1 - 800b2e6: 781b ldrb r3, [r3, #0] - 800b2e8: 061b lsls r3, r3, #24 - 800b2ea: 4313 orrs r3, r2 - 800b2ec: 617b str r3, [r7, #20] - this->st_ints = u_st_ints.real; - 800b2ee: 697a ldr r2, [r7, #20] - 800b2f0: 687b ldr r3, [r7, #4] - 800b2f2: 609a str r2, [r3, #8] - offset += sizeof(this->st_ints); - 800b2f4: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b2f6: 3304 adds r3, #4 - 800b2f8: 637b str r3, [r7, #52] ; 0x34 - memcpy( &(this->ints[i]), &(this->st_ints), sizeof(int32_t)); - 800b2fa: 687b ldr r3, [r7, #4] - 800b2fc: 68da ldr r2, [r3, #12] - 800b2fe: 6b3b ldr r3, [r7, #48] ; 0x30 - 800b300: 009b lsls r3, r3, #2 - 800b302: 4413 add r3, r2 - 800b304: 687a ldr r2, [r7, #4] - 800b306: 3208 adds r2, #8 - 800b308: 6812 ldr r2, [r2, #0] - 800b30a: 601a str r2, [r3, #0] - for( uint32_t i = 0; i < ints_length; i++){ - 800b30c: 6b3b ldr r3, [r7, #48] ; 0x30 - 800b30e: 3301 adds r3, #1 - 800b310: 633b str r3, [r7, #48] ; 0x30 - 800b312: e7c3 b.n 800b29c <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x7e> - } - uint32_t floats_lengthT = ((uint32_t) (*(inbuffer + offset))); - 800b314: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b316: 683a ldr r2, [r7, #0] - 800b318: 4413 add r3, r2 - 800b31a: 781b ldrb r3, [r3, #0] - 800b31c: 61fb str r3, [r7, #28] - floats_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 800b31e: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b320: 3301 adds r3, #1 - 800b322: 683a ldr r2, [r7, #0] - 800b324: 4413 add r3, r2 - 800b326: 781b ldrb r3, [r3, #0] - 800b328: 021b lsls r3, r3, #8 - 800b32a: 69fa ldr r2, [r7, #28] - 800b32c: 4313 orrs r3, r2 - 800b32e: 61fb str r3, [r7, #28] - floats_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 800b330: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b332: 3302 adds r3, #2 - 800b334: 683a ldr r2, [r7, #0] - 800b336: 4413 add r3, r2 - 800b338: 781b ldrb r3, [r3, #0] - 800b33a: 041b lsls r3, r3, #16 - 800b33c: 69fa ldr r2, [r7, #28] - 800b33e: 4313 orrs r3, r2 - 800b340: 61fb str r3, [r7, #28] - floats_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 800b342: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b344: 3303 adds r3, #3 - 800b346: 683a ldr r2, [r7, #0] - 800b348: 4413 add r3, r2 - 800b34a: 781b ldrb r3, [r3, #0] - 800b34c: 061b lsls r3, r3, #24 - 800b34e: 69fa ldr r2, [r7, #28] - 800b350: 4313 orrs r3, r2 - 800b352: 61fb str r3, [r7, #28] - offset += sizeof(this->floats_length); - 800b354: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b356: 3304 adds r3, #4 - 800b358: 637b str r3, [r7, #52] ; 0x34 - if(floats_lengthT > floats_length) - 800b35a: 687b ldr r3, [r7, #4] - 800b35c: 691b ldr r3, [r3, #16] - 800b35e: 69fa ldr r2, [r7, #28] - 800b360: 429a cmp r2, r3 - 800b362: d90a bls.n 800b37a <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x15c> - this->floats = (float*)realloc(this->floats, floats_lengthT * sizeof(float)); - 800b364: 687b ldr r3, [r7, #4] - 800b366: 699a ldr r2, [r3, #24] - 800b368: 69fb ldr r3, [r7, #28] - 800b36a: 009b lsls r3, r3, #2 - 800b36c: 4619 mov r1, r3 - 800b36e: 4610 mov r0, r2 - 800b370: f003 f86e bl 800e450 - 800b374: 4602 mov r2, r0 - 800b376: 687b ldr r3, [r7, #4] - 800b378: 619a str r2, [r3, #24] - floats_length = floats_lengthT; - 800b37a: 687b ldr r3, [r7, #4] - 800b37c: 69fa ldr r2, [r7, #28] - 800b37e: 611a str r2, [r3, #16] - for( uint32_t i = 0; i < floats_length; i++){ - 800b380: 2300 movs r3, #0 - 800b382: 62fb str r3, [r7, #44] ; 0x2c - 800b384: 687b ldr r3, [r7, #4] - 800b386: 691b ldr r3, [r3, #16] - 800b388: 6afa ldr r2, [r7, #44] ; 0x2c - 800b38a: 429a cmp r2, r3 - 800b38c: d236 bcs.n 800b3fc <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x1de> - union { - float real; - uint32_t base; - } u_st_floats; - u_st_floats.base = 0; - 800b38e: 2300 movs r3, #0 - 800b390: 613b str r3, [r7, #16] - u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); - 800b392: 693b ldr r3, [r7, #16] - 800b394: 6b7a ldr r2, [r7, #52] ; 0x34 - 800b396: 6839 ldr r1, [r7, #0] - 800b398: 440a add r2, r1 - 800b39a: 7812 ldrb r2, [r2, #0] - 800b39c: 4313 orrs r3, r2 - 800b39e: 613b str r3, [r7, #16] - u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 800b3a0: 693a ldr r2, [r7, #16] - 800b3a2: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b3a4: 3301 adds r3, #1 - 800b3a6: 6839 ldr r1, [r7, #0] - 800b3a8: 440b add r3, r1 - 800b3aa: 781b ldrb r3, [r3, #0] - 800b3ac: 021b lsls r3, r3, #8 - 800b3ae: 4313 orrs r3, r2 - 800b3b0: 613b str r3, [r7, #16] - u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 800b3b2: 693a ldr r2, [r7, #16] - 800b3b4: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b3b6: 3302 adds r3, #2 - 800b3b8: 6839 ldr r1, [r7, #0] - 800b3ba: 440b add r3, r1 - 800b3bc: 781b ldrb r3, [r3, #0] - 800b3be: 041b lsls r3, r3, #16 - 800b3c0: 4313 orrs r3, r2 - 800b3c2: 613b str r3, [r7, #16] - u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 800b3c4: 693a ldr r2, [r7, #16] - 800b3c6: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b3c8: 3303 adds r3, #3 - 800b3ca: 6839 ldr r1, [r7, #0] - 800b3cc: 440b add r3, r1 - 800b3ce: 781b ldrb r3, [r3, #0] - 800b3d0: 061b lsls r3, r3, #24 - 800b3d2: 4313 orrs r3, r2 - 800b3d4: 613b str r3, [r7, #16] - this->st_floats = u_st_floats.real; - 800b3d6: 693a ldr r2, [r7, #16] - 800b3d8: 687b ldr r3, [r7, #4] - 800b3da: 615a str r2, [r3, #20] - offset += sizeof(this->st_floats); - 800b3dc: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b3de: 3304 adds r3, #4 - 800b3e0: 637b str r3, [r7, #52] ; 0x34 - memcpy( &(this->floats[i]), &(this->st_floats), sizeof(float)); - 800b3e2: 687b ldr r3, [r7, #4] - 800b3e4: 699a ldr r2, [r3, #24] - 800b3e6: 6afb ldr r3, [r7, #44] ; 0x2c - 800b3e8: 009b lsls r3, r3, #2 - 800b3ea: 4413 add r3, r2 - 800b3ec: 687a ldr r2, [r7, #4] - 800b3ee: 3214 adds r2, #20 - 800b3f0: 6812 ldr r2, [r2, #0] - 800b3f2: 601a str r2, [r3, #0] - for( uint32_t i = 0; i < floats_length; i++){ - 800b3f4: 6afb ldr r3, [r7, #44] ; 0x2c - 800b3f6: 3301 adds r3, #1 - 800b3f8: 62fb str r3, [r7, #44] ; 0x2c - 800b3fa: e7c3 b.n 800b384 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x166> - } - uint32_t strings_lengthT = ((uint32_t) (*(inbuffer + offset))); - 800b3fc: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b3fe: 683a ldr r2, [r7, #0] - 800b400: 4413 add r3, r2 - 800b402: 781b ldrb r3, [r3, #0] - 800b404: 61bb str r3, [r7, #24] - strings_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); - 800b406: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b408: 3301 adds r3, #1 - 800b40a: 683a ldr r2, [r7, #0] - 800b40c: 4413 add r3, r2 - 800b40e: 781b ldrb r3, [r3, #0] - 800b410: 021b lsls r3, r3, #8 - 800b412: 69ba ldr r2, [r7, #24] - 800b414: 4313 orrs r3, r2 - 800b416: 61bb str r3, [r7, #24] - strings_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); - 800b418: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b41a: 3302 adds r3, #2 - 800b41c: 683a ldr r2, [r7, #0] - 800b41e: 4413 add r3, r2 - 800b420: 781b ldrb r3, [r3, #0] - 800b422: 041b lsls r3, r3, #16 - 800b424: 69ba ldr r2, [r7, #24] - 800b426: 4313 orrs r3, r2 - 800b428: 61bb str r3, [r7, #24] - strings_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); - 800b42a: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b42c: 3303 adds r3, #3 - 800b42e: 683a ldr r2, [r7, #0] - 800b430: 4413 add r3, r2 - 800b432: 781b ldrb r3, [r3, #0] - 800b434: 061b lsls r3, r3, #24 - 800b436: 69ba ldr r2, [r7, #24] - 800b438: 4313 orrs r3, r2 - 800b43a: 61bb str r3, [r7, #24] - offset += sizeof(this->strings_length); - 800b43c: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b43e: 3304 adds r3, #4 - 800b440: 637b str r3, [r7, #52] ; 0x34 - if(strings_lengthT > strings_length) - 800b442: 687b ldr r3, [r7, #4] - 800b444: 69db ldr r3, [r3, #28] - 800b446: 69ba ldr r2, [r7, #24] - 800b448: 429a cmp r2, r3 - 800b44a: d90a bls.n 800b462 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x244> - this->strings = (char**)realloc(this->strings, strings_lengthT * sizeof(char*)); - 800b44c: 687b ldr r3, [r7, #4] - 800b44e: 6a5a ldr r2, [r3, #36] ; 0x24 - 800b450: 69bb ldr r3, [r7, #24] - 800b452: 009b lsls r3, r3, #2 - 800b454: 4619 mov r1, r3 - 800b456: 4610 mov r0, r2 - 800b458: f002 fffa bl 800e450 - 800b45c: 4602 mov r2, r0 - 800b45e: 687b ldr r3, [r7, #4] - 800b460: 625a str r2, [r3, #36] ; 0x24 - strings_length = strings_lengthT; - 800b462: 687b ldr r3, [r7, #4] - 800b464: 69ba ldr r2, [r7, #24] - 800b466: 61da str r2, [r3, #28] - for( uint32_t i = 0; i < strings_length; i++){ - 800b468: 2300 movs r3, #0 - 800b46a: 62bb str r3, [r7, #40] ; 0x28 - 800b46c: 687b ldr r3, [r7, #4] - 800b46e: 69db ldr r3, [r3, #28] - 800b470: 6aba ldr r2, [r7, #40] ; 0x28 - 800b472: 429a cmp r2, r3 - 800b474: d23f bcs.n 800b4f6 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x2d8> - uint32_t length_st_strings; - arrToVar(length_st_strings, (inbuffer + offset)); - 800b476: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b478: 683a ldr r2, [r7, #0] - 800b47a: 441a add r2, r3 - 800b47c: f107 030c add.w r3, r7, #12 - 800b480: 4611 mov r1, r2 - 800b482: 4618 mov r0, r3 - 800b484: f000 fb19 bl 800baba <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_> - offset += 4; - 800b488: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b48a: 3304 adds r3, #4 - 800b48c: 637b str r3, [r7, #52] ; 0x34 - for(unsigned int k= offset; k< offset+length_st_strings; ++k){ - 800b48e: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b490: 627b str r3, [r7, #36] ; 0x24 - 800b492: 6b7a ldr r2, [r7, #52] ; 0x34 - 800b494: 68fb ldr r3, [r7, #12] - 800b496: 4413 add r3, r2 - 800b498: 6a7a ldr r2, [r7, #36] ; 0x24 - 800b49a: 429a cmp r2, r3 - 800b49c: d20c bcs.n 800b4b8 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x29a> - inbuffer[k-1]=inbuffer[k]; - 800b49e: 683a ldr r2, [r7, #0] - 800b4a0: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b4a2: 441a add r2, r3 - 800b4a4: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b4a6: 3b01 subs r3, #1 - 800b4a8: 6839 ldr r1, [r7, #0] - 800b4aa: 440b add r3, r1 - 800b4ac: 7812 ldrb r2, [r2, #0] - 800b4ae: 701a strb r2, [r3, #0] - for(unsigned int k= offset; k< offset+length_st_strings; ++k){ - 800b4b0: 6a7b ldr r3, [r7, #36] ; 0x24 - 800b4b2: 3301 adds r3, #1 - 800b4b4: 627b str r3, [r7, #36] ; 0x24 - 800b4b6: e7ec b.n 800b492 <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x274> - } - inbuffer[offset+length_st_strings-1]=0; - 800b4b8: 6b7a ldr r2, [r7, #52] ; 0x34 - 800b4ba: 68fb ldr r3, [r7, #12] - 800b4bc: 4413 add r3, r2 - 800b4be: 3b01 subs r3, #1 - 800b4c0: 683a ldr r2, [r7, #0] - 800b4c2: 4413 add r3, r2 - 800b4c4: 2200 movs r2, #0 - 800b4c6: 701a strb r2, [r3, #0] - this->st_strings = (char *)(inbuffer + offset-1); - 800b4c8: 6b7b ldr r3, [r7, #52] ; 0x34 - 800b4ca: 3b01 subs r3, #1 - 800b4cc: 683a ldr r2, [r7, #0] - 800b4ce: 441a add r2, r3 - 800b4d0: 687b ldr r3, [r7, #4] - 800b4d2: 621a str r2, [r3, #32] - offset += length_st_strings; - 800b4d4: 6b7a ldr r2, [r7, #52] ; 0x34 - 800b4d6: 68fb ldr r3, [r7, #12] - 800b4d8: 4413 add r3, r2 - 800b4da: 637b str r3, [r7, #52] ; 0x34 - memcpy( &(this->strings[i]), &(this->st_strings), sizeof(char*)); - 800b4dc: 687b ldr r3, [r7, #4] - 800b4de: 6a5a ldr r2, [r3, #36] ; 0x24 - 800b4e0: 6abb ldr r3, [r7, #40] ; 0x28 - 800b4e2: 009b lsls r3, r3, #2 - 800b4e4: 4413 add r3, r2 - 800b4e6: 687a ldr r2, [r7, #4] - 800b4e8: 3220 adds r2, #32 - 800b4ea: 6812 ldr r2, [r2, #0] - 800b4ec: 601a str r2, [r3, #0] - for( uint32_t i = 0; i < strings_length; i++){ - 800b4ee: 6abb ldr r3, [r7, #40] ; 0x28 - 800b4f0: 3301 adds r3, #1 - 800b4f2: 62bb str r3, [r7, #40] ; 0x28 - 800b4f4: e7ba b.n 800b46c <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh+0x24e> - } - return offset; - 800b4f6: 6b7b ldr r3, [r7, #52] ; 0x34 - } - 800b4f8: 4618 mov r0, r3 - 800b4fa: 3738 adds r7, #56 ; 0x38 - 800b4fc: 46bd mov sp, r7 - 800b4fe: bd80 pop {r7, pc} - -0800b500 <_ZN14rosserial_msgs20RequestParamResponse7getTypeEv>: - - const char * getType(){ return REQUESTPARAM; }; - 800b500: b480 push {r7} - 800b502: b083 sub sp, #12 - 800b504: af00 add r7, sp, #0 - 800b506: 6078 str r0, [r7, #4] - 800b508: 4b03 ldr r3, [pc, #12] ; (800b518 <_ZN14rosserial_msgs20RequestParamResponse7getTypeEv+0x18>) - 800b50a: 4618 mov r0, r3 - 800b50c: 370c adds r7, #12 - 800b50e: 46bd mov sp, r7 - 800b510: f85d 7b04 ldr.w r7, [sp], #4 - 800b514: 4770 bx lr - 800b516: bf00 nop - 800b518: 080122a4 .word 0x080122a4 - -0800b51c <_ZN14rosserial_msgs20RequestParamResponse6getMD5Ev>: - const char * getMD5(){ return "9f0e98bda65981986ddf53afa7a40e49"; }; - 800b51c: b480 push {r7} - 800b51e: b083 sub sp, #12 - 800b520: af00 add r7, sp, #0 - 800b522: 6078 str r0, [r7, #4] - 800b524: 4b03 ldr r3, [pc, #12] ; (800b534 <_ZN14rosserial_msgs20RequestParamResponse6getMD5Ev+0x18>) - 800b526: 4618 mov r0, r3 - 800b528: 370c adds r7, #12 - 800b52a: 46bd mov sp, r7 - 800b52c: f85d 7b04 ldr.w r7, [sp], #4 - 800b530: 4770 bx lr - 800b532: bf00 nop - 800b534: 08011a94 .word 0x08011a94 - -0800b538 <_ZN3ros9PublisherC1EPKcPNS_3MsgEi>: - -/* Generic Publisher */ -class Publisher -{ -public: - Publisher(const char * topic_name, Msg * msg, int endpoint = rosserial_msgs::TopicInfo::ID_PUBLISHER) : - 800b538: b480 push {r7} - 800b53a: b085 sub sp, #20 - 800b53c: af00 add r7, sp, #0 - 800b53e: 60f8 str r0, [r7, #12] - 800b540: 60b9 str r1, [r7, #8] - 800b542: 607a str r2, [r7, #4] - 800b544: 603b str r3, [r7, #0] - topic_(topic_name), - msg_(msg), - endpoint_(endpoint) {}; - 800b546: 68fb ldr r3, [r7, #12] - 800b548: 68ba ldr r2, [r7, #8] - 800b54a: 601a str r2, [r3, #0] - 800b54c: 68fb ldr r3, [r7, #12] - 800b54e: 687a ldr r2, [r7, #4] - 800b550: 605a str r2, [r3, #4] - 800b552: 68fb ldr r3, [r7, #12] - 800b554: 683a ldr r2, [r7, #0] - 800b556: 611a str r2, [r3, #16] - 800b558: 68fb ldr r3, [r7, #12] - 800b55a: 4618 mov r0, r3 - 800b55c: 3714 adds r7, #20 - 800b55e: 46bd mov sp, r7 - 800b560: f85d 7b04 ldr.w r7, [sp], #4 - 800b564: 4770 bx lr - -0800b566 <_ZN3ros9Publisher15getEndpointTypeEv>: - - int publish(const Msg * msg) - { - return nh_->publish(id_, msg); - }; - int getEndpointType() - 800b566: b480 push {r7} - 800b568: b083 sub sp, #12 - 800b56a: af00 add r7, sp, #0 - 800b56c: 6078 str r0, [r7, #4] - { - return endpoint_; - 800b56e: 687b ldr r3, [r7, #4] - 800b570: 691b ldr r3, [r3, #16] - } - 800b572: 4618 mov r0, r3 - 800b574: 370c adds r7, #12 - 800b576: 46bd mov sp, r7 - 800b578: f85d 7b04 ldr.w r7, [sp], #4 - 800b57c: 4770 bx lr - -0800b57e <_ZN13STM32Hardware10getRdmaIndEv>: - UART_HandleTypeDef *huart; - - const static uint16_t rbuflen = 128; - uint8_t rbuf[rbuflen]; - uint32_t rind; - inline uint32_t getRdmaInd(void){ return (rbuflen - huart->hdmarx->Instance->NDTR) & (rbuflen - 1); } - 800b57e: b480 push {r7} - 800b580: b083 sub sp, #12 - 800b582: af00 add r7, sp, #0 - 800b584: 6078 str r0, [r7, #4] - 800b586: 687b ldr r3, [r7, #4] - 800b588: 685b ldr r3, [r3, #4] - 800b58a: 6edb ldr r3, [r3, #108] ; 0x6c - 800b58c: 681b ldr r3, [r3, #0] - 800b58e: 685b ldr r3, [r3, #4] - 800b590: 425b negs r3, r3 - 800b592: f003 037f and.w r3, r3, #127 ; 0x7f - 800b596: 4618 mov r0, r3 - 800b598: 370c adds r7, #12 - 800b59a: 46bd mov sp, r7 - 800b59c: f85d 7b04 ldr.w r7, [sp], #4 - 800b5a0: 4770 bx lr - ... - -0800b5a4 <_ZN13STM32HardwareC1Ev>: - const static uint16_t tbuflen = 256; - uint8_t tbuf[tbuflen]; - uint32_t twind, tfind; - - public: - STM32Hardware(): - 800b5a4: b480 push {r7} - 800b5a6: b083 sub sp, #12 - 800b5a8: af00 add r7, sp, #0 - 800b5aa: 6078 str r0, [r7, #4] - htim(&htim2), huart(&huart3), rind(0), twind(0), tfind(0){ - 800b5ac: 687b ldr r3, [r7, #4] - 800b5ae: 4a0c ldr r2, [pc, #48] ; (800b5e0 <_ZN13STM32HardwareC1Ev+0x3c>) - 800b5b0: 601a str r2, [r3, #0] - 800b5b2: 687b ldr r3, [r7, #4] - 800b5b4: 4a0b ldr r2, [pc, #44] ; (800b5e4 <_ZN13STM32HardwareC1Ev+0x40>) - 800b5b6: 605a str r2, [r3, #4] - 800b5b8: 687b ldr r3, [r7, #4] - 800b5ba: 2200 movs r2, #0 - 800b5bc: f8c3 2088 str.w r2, [r3, #136] ; 0x88 - 800b5c0: 687b ldr r3, [r7, #4] - 800b5c2: 2200 movs r2, #0 - 800b5c4: f8c3 218c str.w r2, [r3, #396] ; 0x18c - 800b5c8: 687b ldr r3, [r7, #4] - 800b5ca: 2200 movs r2, #0 - 800b5cc: f8c3 2190 str.w r2, [r3, #400] ; 0x190 - } - 800b5d0: 687b ldr r3, [r7, #4] - 800b5d2: 4618 mov r0, r3 - 800b5d4: 370c adds r7, #12 - 800b5d6: 46bd mov sp, r7 - 800b5d8: f85d 7b04 ldr.w r7, [sp], #4 - 800b5dc: 4770 bx lr - 800b5de: bf00 nop - 800b5e0: 200009e0 .word 0x200009e0 - 800b5e4: 20000a20 .word 0x20000a20 - -0800b5e8 <_ZN13STM32Hardware4initEv>: - - STM32Hardware(TIM_HandleTypeDef *htim_, UART_HandleTypeDef *huart_): - htim(htim_), huart(huart_), rind(0), twind(0), tfind(0){ - } - - void init(){ - 800b5e8: b580 push {r7, lr} - 800b5ea: b082 sub sp, #8 - 800b5ec: af00 add r7, sp, #0 - 800b5ee: 6078 str r0, [r7, #4] - reset_rbuf(); - 800b5f0: 6878 ldr r0, [r7, #4] - 800b5f2: f000 f809 bl 800b608 <_ZN13STM32Hardware10reset_rbufEv> - - HAL_TIM_Base_Start(htim); - 800b5f6: 687b ldr r3, [r7, #4] - 800b5f8: 681b ldr r3, [r3, #0] - 800b5fa: 4618 mov r0, r3 - 800b5fc: f7fe f8fc bl 80097f8 - } - 800b600: bf00 nop - 800b602: 3708 adds r7, #8 - 800b604: 46bd mov sp, r7 - 800b606: bd80 pop {r7, pc} - -0800b608 <_ZN13STM32Hardware10reset_rbufEv>: - - void reset_rbuf(void){ - 800b608: b580 push {r7, lr} - 800b60a: b082 sub sp, #8 - 800b60c: af00 add r7, sp, #0 - 800b60e: 6078 str r0, [r7, #4] - HAL_UART_Receive_DMA(huart, rbuf, rbuflen); - 800b610: 687b ldr r3, [r7, #4] - 800b612: 6858 ldr r0, [r3, #4] - 800b614: 687b ldr r3, [r7, #4] - 800b616: 3308 adds r3, #8 - 800b618: 2280 movs r2, #128 ; 0x80 - 800b61a: 4619 mov r1, r3 - 800b61c: f7fe fb4e bl 8009cbc - } - 800b620: bf00 nop - 800b622: 3708 adds r7, #8 - 800b624: 46bd mov sp, r7 - 800b626: bd80 pop {r7, pc} - -0800b628 <_ZN13STM32Hardware4readEv>: - - int read(){ - 800b628: b590 push {r4, r7, lr} - 800b62a: b085 sub sp, #20 - 800b62c: af00 add r7, sp, #0 - 800b62e: 6078 str r0, [r7, #4] - int c = -1; - 800b630: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 800b634: 60fb str r3, [r7, #12] - if(rind != getRdmaInd()){ - 800b636: 687b ldr r3, [r7, #4] - 800b638: f8d3 4088 ldr.w r4, [r3, #136] ; 0x88 - 800b63c: 6878 ldr r0, [r7, #4] - 800b63e: f7ff ff9e bl 800b57e <_ZN13STM32Hardware10getRdmaIndEv> - 800b642: 4603 mov r3, r0 - 800b644: 429c cmp r4, r3 - 800b646: bf14 ite ne - 800b648: 2301 movne r3, #1 - 800b64a: 2300 moveq r3, #0 - 800b64c: b2db uxtb r3, r3 - 800b64e: 2b00 cmp r3, #0 - 800b650: d012 beq.n 800b678 <_ZN13STM32Hardware4readEv+0x50> - c = rbuf[rind++]; - 800b652: 687b ldr r3, [r7, #4] - 800b654: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 800b658: 1c59 adds r1, r3, #1 - 800b65a: 687a ldr r2, [r7, #4] - 800b65c: f8c2 1088 str.w r1, [r2, #136] ; 0x88 - 800b660: 687a ldr r2, [r7, #4] - 800b662: 4413 add r3, r2 - 800b664: 7a1b ldrb r3, [r3, #8] - 800b666: 60fb str r3, [r7, #12] - rind &= rbuflen - 1; - 800b668: 687b ldr r3, [r7, #4] - 800b66a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 800b66e: f003 027f and.w r2, r3, #127 ; 0x7f - 800b672: 687b ldr r3, [r7, #4] - 800b674: f8c3 2088 str.w r2, [r3, #136] ; 0x88 - } - return c; - 800b678: 68fb ldr r3, [r7, #12] - } - 800b67a: 4618 mov r0, r3 - 800b67c: 3714 adds r7, #20 - 800b67e: 46bd mov sp, r7 - 800b680: bd90 pop {r4, r7, pc} - ... - -0800b684 <_ZN13STM32Hardware5flushEv>: - - void flush(void){ - 800b684: b580 push {r7, lr} - 800b686: b084 sub sp, #16 - 800b688: af00 add r7, sp, #0 - 800b68a: 6078 str r0, [r7, #4] - static bool mutex = false; - - if((huart->gState == HAL_UART_STATE_READY) && !mutex){ - 800b68c: 687b ldr r3, [r7, #4] - 800b68e: 685b ldr r3, [r3, #4] - 800b690: 6f5b ldr r3, [r3, #116] ; 0x74 - 800b692: 2b20 cmp r3, #32 - 800b694: d108 bne.n 800b6a8 <_ZN13STM32Hardware5flushEv+0x24> - 800b696: 4b27 ldr r3, [pc, #156] ; (800b734 <_ZN13STM32Hardware5flushEv+0xb0>) - 800b698: 781b ldrb r3, [r3, #0] - 800b69a: f083 0301 eor.w r3, r3, #1 - 800b69e: b2db uxtb r3, r3 - 800b6a0: 2b00 cmp r3, #0 - 800b6a2: d001 beq.n 800b6a8 <_ZN13STM32Hardware5flushEv+0x24> - 800b6a4: 2301 movs r3, #1 - 800b6a6: e000 b.n 800b6aa <_ZN13STM32Hardware5flushEv+0x26> - 800b6a8: 2300 movs r3, #0 - 800b6aa: 2b00 cmp r3, #0 - 800b6ac: d03e beq.n 800b72c <_ZN13STM32Hardware5flushEv+0xa8> - mutex = true; - 800b6ae: 4b21 ldr r3, [pc, #132] ; (800b734 <_ZN13STM32Hardware5flushEv+0xb0>) - 800b6b0: 2201 movs r2, #1 - 800b6b2: 701a strb r2, [r3, #0] - - if(twind != tfind){ - 800b6b4: 687b ldr r3, [r7, #4] - 800b6b6: f8d3 218c ldr.w r2, [r3, #396] ; 0x18c - 800b6ba: 687b ldr r3, [r7, #4] - 800b6bc: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 - 800b6c0: 429a cmp r2, r3 - 800b6c2: d030 beq.n 800b726 <_ZN13STM32Hardware5flushEv+0xa2> - uint16_t len = tfind < twind ? twind - tfind : tbuflen - tfind; - 800b6c4: 687b ldr r3, [r7, #4] - 800b6c6: f8d3 2190 ldr.w r2, [r3, #400] ; 0x190 - 800b6ca: 687b ldr r3, [r7, #4] - 800b6cc: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c - 800b6d0: 429a cmp r2, r3 - 800b6d2: d20a bcs.n 800b6ea <_ZN13STM32Hardware5flushEv+0x66> - 800b6d4: 687b ldr r3, [r7, #4] - 800b6d6: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c - 800b6da: b29a uxth r2, r3 - 800b6dc: 687b ldr r3, [r7, #4] - 800b6de: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 - 800b6e2: b29b uxth r3, r3 - 800b6e4: 1ad3 subs r3, r2, r3 - 800b6e6: b29b uxth r3, r3 - 800b6e8: e006 b.n 800b6f8 <_ZN13STM32Hardware5flushEv+0x74> - 800b6ea: 687b ldr r3, [r7, #4] - 800b6ec: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 - 800b6f0: b29b uxth r3, r3 - 800b6f2: f5c3 7380 rsb r3, r3, #256 ; 0x100 - 800b6f6: b29b uxth r3, r3 - 800b6f8: 81fb strh r3, [r7, #14] - HAL_UART_Transmit_DMA(huart, &(tbuf[tfind]), len); - 800b6fa: 687b ldr r3, [r7, #4] - 800b6fc: 6858 ldr r0, [r3, #4] - 800b6fe: 687b ldr r3, [r7, #4] - 800b700: f8d3 3190 ldr.w r3, [r3, #400] ; 0x190 - 800b704: 3388 adds r3, #136 ; 0x88 - 800b706: 687a ldr r2, [r7, #4] - 800b708: 4413 add r3, r2 - 800b70a: 3304 adds r3, #4 - 800b70c: 89fa ldrh r2, [r7, #14] - 800b70e: 4619 mov r1, r3 - 800b710: f7fe fa58 bl 8009bc4 - tfind = (tfind + len) & (tbuflen - 1); - 800b714: 687b ldr r3, [r7, #4] - 800b716: f8d3 2190 ldr.w r2, [r3, #400] ; 0x190 - 800b71a: 89fb ldrh r3, [r7, #14] - 800b71c: 4413 add r3, r2 - 800b71e: b2da uxtb r2, r3 - 800b720: 687b ldr r3, [r7, #4] - 800b722: f8c3 2190 str.w r2, [r3, #400] ; 0x190 - } - mutex = false; - 800b726: 4b03 ldr r3, [pc, #12] ; (800b734 <_ZN13STM32Hardware5flushEv+0xb0>) - 800b728: 2200 movs r2, #0 - 800b72a: 701a strb r2, [r3, #0] - } - } - 800b72c: bf00 nop - 800b72e: 3710 adds r7, #16 - 800b730: 46bd mov sp, r7 - 800b732: bd80 pop {r7, pc} - 800b734: 200009dc .word 0x200009dc - -0800b738 <_ZN13STM32Hardware5writeEPhi>: - - void write(uint8_t* data, int length){ - 800b738: b580 push {r7, lr} - 800b73a: b086 sub sp, #24 - 800b73c: af00 add r7, sp, #0 - 800b73e: 60f8 str r0, [r7, #12] - 800b740: 60b9 str r1, [r7, #8] - 800b742: 607a str r2, [r7, #4] - - - int n = length; - 800b744: 687b ldr r3, [r7, #4] - 800b746: 617b str r3, [r7, #20] - n = n <= tbuflen ? n : tbuflen; - 800b748: 697b ldr r3, [r7, #20] - 800b74a: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 800b74e: bfa8 it ge - 800b750: f44f 7380 movge.w r3, #256 ; 0x100 - 800b754: 617b str r3, [r7, #20] - - int n_tail = n <= tbuflen - twind ? n : tbuflen - twind; - 800b756: 68fb ldr r3, [r7, #12] - 800b758: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c - 800b75c: f5c3 7280 rsb r2, r3, #256 ; 0x100 - 800b760: 697b ldr r3, [r7, #20] - 800b762: 4293 cmp r3, r2 - 800b764: bf28 it cs - 800b766: 4613 movcs r3, r2 - 800b768: 613b str r3, [r7, #16] - memcpy(&(tbuf[twind]), data, n_tail); - 800b76a: 68fb ldr r3, [r7, #12] - 800b76c: f8d3 318c ldr.w r3, [r3, #396] ; 0x18c - 800b770: 3388 adds r3, #136 ; 0x88 - 800b772: 68fa ldr r2, [r7, #12] - 800b774: 4413 add r3, r2 - 800b776: 3304 adds r3, #4 - 800b778: 693a ldr r2, [r7, #16] - 800b77a: 68b9 ldr r1, [r7, #8] - 800b77c: 4618 mov r0, r3 - 800b77e: f002 fdfa bl 800e376 - twind = (twind + n) & (tbuflen - 1); - 800b782: 68fb ldr r3, [r7, #12] - 800b784: f8d3 218c ldr.w r2, [r3, #396] ; 0x18c - 800b788: 697b ldr r3, [r7, #20] - 800b78a: 4413 add r3, r2 - 800b78c: b2da uxtb r2, r3 - 800b78e: 68fb ldr r3, [r7, #12] - 800b790: f8c3 218c str.w r2, [r3, #396] ; 0x18c - - if(n != n_tail){ - 800b794: 697a ldr r2, [r7, #20] - 800b796: 693b ldr r3, [r7, #16] - 800b798: 429a cmp r2, r3 - 800b79a: d00b beq.n 800b7b4 <_ZN13STM32Hardware5writeEPhi+0x7c> - memcpy(tbuf, &(data[n_tail]), n - n_tail); - 800b79c: 68fb ldr r3, [r7, #12] - 800b79e: f103 008c add.w r0, r3, #140 ; 0x8c - 800b7a2: 693b ldr r3, [r7, #16] - 800b7a4: 68ba ldr r2, [r7, #8] - 800b7a6: 18d1 adds r1, r2, r3 - 800b7a8: 697a ldr r2, [r7, #20] - 800b7aa: 693b ldr r3, [r7, #16] - 800b7ac: 1ad3 subs r3, r2, r3 - 800b7ae: 461a mov r2, r3 - 800b7b0: f002 fde1 bl 800e376 - } - - flush(); - 800b7b4: 68f8 ldr r0, [r7, #12] - 800b7b6: f7ff ff65 bl 800b684 <_ZN13STM32Hardware5flushEv> - - - //HAL_UART_Transmit(&huart3, data, length, 100); - } - 800b7ba: bf00 nop - 800b7bc: 3718 adds r7, #24 - 800b7be: 46bd mov sp, r7 - 800b7c0: bd80 pop {r7, pc} - -0800b7c2 <_ZN13STM32Hardware4timeEv>: - - unsigned long time(){ return __HAL_TIM_GET_COUNTER(htim); } - 800b7c2: b480 push {r7} - 800b7c4: b083 sub sp, #12 - 800b7c6: af00 add r7, sp, #0 - 800b7c8: 6078 str r0, [r7, #4] - 800b7ca: 687b ldr r3, [r7, #4] - 800b7cc: 681b ldr r3, [r3, #0] - 800b7ce: 681b ldr r3, [r3, #0] - 800b7d0: 6a5b ldr r3, [r3, #36] ; 0x24 - 800b7d2: 4618 mov r0, r3 - 800b7d4: 370c adds r7, #12 - 800b7d6: 46bd mov sp, r7 - 800b7d8: f85d 7b04 ldr.w r7, [sp], #4 - 800b7dc: 4770 bx lr - ... - -0800b7e0
: -/** - * @brief The application entry point. - * @retval int - */ -int main(void) -{ - 800b7e0: b590 push {r4, r7, lr} - 800b7e2: f2ad 6df4 subw sp, sp, #1780 ; 0x6f4 - 800b7e6: af00 add r7, sp, #0 - - - /* MCU Configuration--------------------------------------------------------*/ - - /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ - HAL_Init(); - 800b7e8: f7fc fc02 bl 8007ff0 - /* USER CODE BEGIN Init */ - - /* USER CODE END Init */ - - /* Configure the system clock */ - SystemClock_Config(); - 800b7ec: f000 f842 bl 800b874 <_Z18SystemClock_Configv> - /* USER CODE BEGIN SysInit */ - - /* USER CODE END SysInit */ - - /* Initialize all configured peripherals */ - MX_GPIO_Init(); - 800b7f0: f000 f926 bl 800ba40 <_ZL12MX_GPIO_Initv> - MX_TIM2_Init(); - 800b7f4: f000 f8c8 bl 800b988 <_ZL12MX_TIM2_Initv> - MX_USART3_UART_Init(); - 800b7f8: f000 f8ee bl 800b9d8 <_ZL19MX_USART3_UART_Initv> - /* USER CODE BEGIN 2 */ - ros::NodeHandle nh; - 800b7fc: f107 0330 add.w r3, r7, #48 ; 0x30 - 800b800: 4618 mov r0, r3 - 800b802: f000 f98f bl 800bb24 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev> - - std_msgs::String str_msg; - 800b806: f107 0328 add.w r3, r7, #40 ; 0x28 - 800b80a: 4618 mov r0, r3 - 800b80c: f7fe ffc0 bl 800a790 <_ZN8std_msgs6StringC1Ev> - ros::Publisher chatter("chatter", &str_msg); - 800b810: f107 0228 add.w r2, r7, #40 ; 0x28 - 800b814: f107 0014 add.w r0, r7, #20 - 800b818: 2300 movs r3, #0 - 800b81a: 4913 ldr r1, [pc, #76] ; (800b868 ) - 800b81c: f7ff fe8c bl 800b538 <_ZN3ros9PublisherC1EPKcPNS_3MsgEi> - char hello[] = "Hello world!"; - 800b820: 1d3b adds r3, r7, #4 - 800b822: 4a12 ldr r2, [pc, #72] ; (800b86c ) - 800b824: 461c mov r4, r3 - 800b826: 4613 mov r3, r2 - 800b828: cb0f ldmia r3, {r0, r1, r2, r3} - 800b82a: c407 stmia r4!, {r0, r1, r2} - 800b82c: 7023 strb r3, [r4, #0] - - nh.initNode(); - 800b82e: f107 0330 add.w r3, r7, #48 ; 0x30 - 800b832: 4618 mov r0, r3 - 800b834: f000 f9f6 bl 800bc24 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8initNodeEv> - nh.advertise(chatter); - 800b838: f107 0214 add.w r2, r7, #20 - 800b83c: f107 0330 add.w r3, r7, #48 ; 0x30 - 800b840: 4611 mov r1, r2 - 800b842: 4618 mov r0, r3 - 800b844: f000 fa0b bl 800bc5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9advertiseERNS_9PublisherE> - /* - str_msg.data = hello; - chatter.publish(&str_msg); - nh.spinOnce(); - */ - HAL_UART_Transmit(&huart3, (uint8_t*)hello, strlen(hello), 100); - 800b848: 1d3b adds r3, r7, #4 - 800b84a: 4618 mov r0, r3 - 800b84c: f7fb fac2 bl 8006dd4 - 800b850: 4603 mov r3, r0 - 800b852: b29a uxth r2, r3 - 800b854: 1d39 adds r1, r7, #4 - 800b856: 2364 movs r3, #100 ; 0x64 - 800b858: 4805 ldr r0, [pc, #20] ; (800b870 ) - 800b85a: f7fe f921 bl 8009aa0 - - HAL_Delay(1000); - 800b85e: f44f 707a mov.w r0, #1000 ; 0x3e8 - 800b862: f7fc fc23 bl 80080ac - HAL_UART_Transmit(&huart3, (uint8_t*)hello, strlen(hello), 100); - 800b866: e7ef b.n 800b848 - 800b868: 08011ab8 .word 0x08011ab8 - 800b86c: 08011ac0 .word 0x08011ac0 - 800b870: 20000a20 .word 0x20000a20 - -0800b874 <_Z18SystemClock_Configv>: -/** - * @brief System Clock Configuration - * @retval None - */ -void SystemClock_Config(void) -{ - 800b874: b580 push {r7, lr} - 800b876: b0b8 sub sp, #224 ; 0xe0 - 800b878: af00 add r7, sp, #0 - RCC_OscInitTypeDef RCC_OscInitStruct = {0}; - 800b87a: f107 03ac add.w r3, r7, #172 ; 0xac - 800b87e: 2234 movs r2, #52 ; 0x34 - 800b880: 2100 movs r1, #0 - 800b882: 4618 mov r0, r3 - 800b884: f002 fd9b bl 800e3be - RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; - 800b888: f107 0398 add.w r3, r7, #152 ; 0x98 - 800b88c: 2200 movs r2, #0 - 800b88e: 601a str r2, [r3, #0] - 800b890: 605a str r2, [r3, #4] - 800b892: 609a str r2, [r3, #8] - 800b894: 60da str r2, [r3, #12] - 800b896: 611a str r2, [r3, #16] - RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; - 800b898: f107 0308 add.w r3, r7, #8 - 800b89c: 2290 movs r2, #144 ; 0x90 - 800b89e: 2100 movs r1, #0 - 800b8a0: 4618 mov r0, r3 - 800b8a2: f002 fd8c bl 800e3be - - /** Configure the main internal regulator output voltage - */ - __HAL_RCC_PWR_CLK_ENABLE(); - 800b8a6: 4b36 ldr r3, [pc, #216] ; (800b980 <_Z18SystemClock_Configv+0x10c>) - 800b8a8: 6c1b ldr r3, [r3, #64] ; 0x40 - 800b8aa: 4a35 ldr r2, [pc, #212] ; (800b980 <_Z18SystemClock_Configv+0x10c>) - 800b8ac: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 800b8b0: 6413 str r3, [r2, #64] ; 0x40 - 800b8b2: 4b33 ldr r3, [pc, #204] ; (800b980 <_Z18SystemClock_Configv+0x10c>) - 800b8b4: 6c1b ldr r3, [r3, #64] ; 0x40 - 800b8b6: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 800b8ba: 607b str r3, [r7, #4] - 800b8bc: 687b ldr r3, [r7, #4] - __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3); - 800b8be: 4b31 ldr r3, [pc, #196] ; (800b984 <_Z18SystemClock_Configv+0x110>) - 800b8c0: 681b ldr r3, [r3, #0] - 800b8c2: f423 4340 bic.w r3, r3, #49152 ; 0xc000 - 800b8c6: 4a2f ldr r2, [pc, #188] ; (800b984 <_Z18SystemClock_Configv+0x110>) - 800b8c8: f443 4380 orr.w r3, r3, #16384 ; 0x4000 - 800b8cc: 6013 str r3, [r2, #0] - 800b8ce: 4b2d ldr r3, [pc, #180] ; (800b984 <_Z18SystemClock_Configv+0x110>) - 800b8d0: 681b ldr r3, [r3, #0] - 800b8d2: f403 4340 and.w r3, r3, #49152 ; 0xc000 - 800b8d6: 603b str r3, [r7, #0] - 800b8d8: 683b ldr r3, [r7, #0] - /** Initializes the CPU, AHB and APB busses clocks - */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; - 800b8da: 2302 movs r3, #2 - 800b8dc: f8c7 30ac str.w r3, [r7, #172] ; 0xac - RCC_OscInitStruct.HSIState = RCC_HSI_ON; - 800b8e0: 2301 movs r3, #1 - 800b8e2: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8 - RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; - 800b8e6: 2310 movs r3, #16 - 800b8e8: f8c7 30bc str.w r3, [r7, #188] ; 0xbc - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; - 800b8ec: 2300 movs r3, #0 - 800b8ee: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4 - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - 800b8f2: f107 03ac add.w r3, r7, #172 ; 0xac - 800b8f6: 4618 mov r0, r3 - 800b8f8: f7fc ff18 bl 800872c - 800b8fc: 4603 mov r3, r0 - 800b8fe: 2b00 cmp r3, #0 - 800b900: bf14 ite ne - 800b902: 2301 movne r3, #1 - 800b904: 2300 moveq r3, #0 - 800b906: b2db uxtb r3, r3 - 800b908: 2b00 cmp r3, #0 - 800b90a: d001 beq.n 800b910 <_Z18SystemClock_Configv+0x9c> - { - Error_Handler(); - 800b90c: f000 f8b0 bl 800ba70 - } - /** Initializes the CPU, AHB and APB busses clocks - */ - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - 800b910: 230f movs r3, #15 - 800b912: f8c7 3098 str.w r3, [r7, #152] ; 0x98 - |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; - 800b916: 2300 movs r3, #0 - 800b918: f8c7 309c str.w r3, [r7, #156] ; 0x9c - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - 800b91c: 2300 movs r3, #0 - 800b91e: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0 - RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; - 800b922: 2300 movs r3, #0 - 800b924: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4 - RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; - 800b928: 2300 movs r3, #0 - 800b92a: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8 - - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) - 800b92e: f107 0398 add.w r3, r7, #152 ; 0x98 - 800b932: 2100 movs r1, #0 - 800b934: 4618 mov r0, r3 - 800b936: f7fd f96b bl 8008c10 - 800b93a: 4603 mov r3, r0 - 800b93c: 2b00 cmp r3, #0 - 800b93e: bf14 ite ne - 800b940: 2301 movne r3, #1 - 800b942: 2300 moveq r3, #0 - 800b944: b2db uxtb r3, r3 - 800b946: 2b00 cmp r3, #0 - 800b948: d001 beq.n 800b94e <_Z18SystemClock_Configv+0xda> - { - Error_Handler(); - 800b94a: f000 f891 bl 800ba70 - } - PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3; - 800b94e: f44f 7380 mov.w r3, #256 ; 0x100 - 800b952: 60bb str r3, [r7, #8] - PeriphClkInitStruct.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1; - 800b954: 2300 movs r3, #0 - 800b956: 657b str r3, [r7, #84] ; 0x54 - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) - 800b958: f107 0308 add.w r3, r7, #8 - 800b95c: 4618 mov r0, r3 - 800b95e: f7fd fb25 bl 8008fac - 800b962: 4603 mov r3, r0 - 800b964: 2b00 cmp r3, #0 - 800b966: bf14 ite ne - 800b968: 2301 movne r3, #1 - 800b96a: 2300 moveq r3, #0 - 800b96c: b2db uxtb r3, r3 - 800b96e: 2b00 cmp r3, #0 - 800b970: d001 beq.n 800b976 <_Z18SystemClock_Configv+0x102> - { - Error_Handler(); - 800b972: f000 f87d bl 800ba70 - } -} - 800b976: bf00 nop - 800b978: 37e0 adds r7, #224 ; 0xe0 - 800b97a: 46bd mov sp, r7 - 800b97c: bd80 pop {r7, pc} - 800b97e: bf00 nop - 800b980: 40023800 .word 0x40023800 - 800b984: 40007000 .word 0x40007000 - -0800b988 <_ZL12MX_TIM2_Initv>: - * @brief TIM2 Initialization Function - * @param None - * @retval None - */ -static void MX_TIM2_Init(void) -{ - 800b988: b580 push {r7, lr} - 800b98a: af00 add r7, sp, #0 - /* USER CODE END TIM2_Init 0 */ - - /* USER CODE BEGIN TIM2_Init 1 */ - - /* USER CODE END TIM2_Init 1 */ - htim2.Instance = TIM2; - 800b98c: 4b11 ldr r3, [pc, #68] ; (800b9d4 <_ZL12MX_TIM2_Initv+0x4c>) - 800b98e: f04f 4280 mov.w r2, #1073741824 ; 0x40000000 - 800b992: 601a str r2, [r3, #0] - htim2.Init.Prescaler = 0; - 800b994: 4b0f ldr r3, [pc, #60] ; (800b9d4 <_ZL12MX_TIM2_Initv+0x4c>) - 800b996: 2200 movs r2, #0 - 800b998: 605a str r2, [r3, #4] - htim2.Init.CounterMode = TIM_COUNTERMODE_UP; - 800b99a: 4b0e ldr r3, [pc, #56] ; (800b9d4 <_ZL12MX_TIM2_Initv+0x4c>) - 800b99c: 2200 movs r2, #0 - 800b99e: 609a str r2, [r3, #8] - htim2.Init.Period = 0; - 800b9a0: 4b0c ldr r3, [pc, #48] ; (800b9d4 <_ZL12MX_TIM2_Initv+0x4c>) - 800b9a2: 2200 movs r2, #0 - 800b9a4: 60da str r2, [r3, #12] - htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; - 800b9a6: 4b0b ldr r3, [pc, #44] ; (800b9d4 <_ZL12MX_TIM2_Initv+0x4c>) - 800b9a8: 2200 movs r2, #0 - 800b9aa: 611a str r2, [r3, #16] - htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; - 800b9ac: 4b09 ldr r3, [pc, #36] ; (800b9d4 <_ZL12MX_TIM2_Initv+0x4c>) - 800b9ae: 2200 movs r2, #0 - 800b9b0: 619a str r2, [r3, #24] - if (HAL_TIM_OnePulse_Init(&htim2, TIM_OPMODE_SINGLE) != HAL_OK) - 800b9b2: 2108 movs r1, #8 - 800b9b4: 4807 ldr r0, [pc, #28] ; (800b9d4 <_ZL12MX_TIM2_Initv+0x4c>) - 800b9b6: f7fd ff49 bl 800984c - 800b9ba: 4603 mov r3, r0 - 800b9bc: 2b00 cmp r3, #0 - 800b9be: bf14 ite ne - 800b9c0: 2301 movne r3, #1 - 800b9c2: 2300 moveq r3, #0 - 800b9c4: b2db uxtb r3, r3 - 800b9c6: 2b00 cmp r3, #0 - 800b9c8: d001 beq.n 800b9ce <_ZL12MX_TIM2_Initv+0x46> - { - Error_Handler(); - 800b9ca: f000 f851 bl 800ba70 - } - /* USER CODE BEGIN TIM2_Init 2 */ - - /* USER CODE END TIM2_Init 2 */ - -} - 800b9ce: bf00 nop - 800b9d0: bd80 pop {r7, pc} - 800b9d2: bf00 nop - 800b9d4: 200009e0 .word 0x200009e0 - -0800b9d8 <_ZL19MX_USART3_UART_Initv>: - * @brief USART3 Initialization Function - * @param None - * @retval None - */ -static void MX_USART3_UART_Init(void) -{ - 800b9d8: b580 push {r7, lr} - 800b9da: af00 add r7, sp, #0 - /* USER CODE END USART3_Init 0 */ - - /* USER CODE BEGIN USART3_Init 1 */ - - /* USER CODE END USART3_Init 1 */ - huart3.Instance = USART3; - 800b9dc: 4b16 ldr r3, [pc, #88] ; (800ba38 <_ZL19MX_USART3_UART_Initv+0x60>) - 800b9de: 4a17 ldr r2, [pc, #92] ; (800ba3c <_ZL19MX_USART3_UART_Initv+0x64>) - 800b9e0: 601a str r2, [r3, #0] - huart3.Init.BaudRate = 115200; - 800b9e2: 4b15 ldr r3, [pc, #84] ; (800ba38 <_ZL19MX_USART3_UART_Initv+0x60>) - 800b9e4: f44f 32e1 mov.w r2, #115200 ; 0x1c200 - 800b9e8: 605a str r2, [r3, #4] - huart3.Init.WordLength = UART_WORDLENGTH_8B; - 800b9ea: 4b13 ldr r3, [pc, #76] ; (800ba38 <_ZL19MX_USART3_UART_Initv+0x60>) - 800b9ec: 2200 movs r2, #0 - 800b9ee: 609a str r2, [r3, #8] - huart3.Init.StopBits = UART_STOPBITS_1; - 800b9f0: 4b11 ldr r3, [pc, #68] ; (800ba38 <_ZL19MX_USART3_UART_Initv+0x60>) - 800b9f2: 2200 movs r2, #0 - 800b9f4: 60da str r2, [r3, #12] - huart3.Init.Parity = UART_PARITY_NONE; - 800b9f6: 4b10 ldr r3, [pc, #64] ; (800ba38 <_ZL19MX_USART3_UART_Initv+0x60>) - 800b9f8: 2200 movs r2, #0 - 800b9fa: 611a str r2, [r3, #16] - huart3.Init.Mode = UART_MODE_TX_RX; - 800b9fc: 4b0e ldr r3, [pc, #56] ; (800ba38 <_ZL19MX_USART3_UART_Initv+0x60>) - 800b9fe: 220c movs r2, #12 - 800ba00: 615a str r2, [r3, #20] - huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; - 800ba02: 4b0d ldr r3, [pc, #52] ; (800ba38 <_ZL19MX_USART3_UART_Initv+0x60>) - 800ba04: 2200 movs r2, #0 - 800ba06: 619a str r2, [r3, #24] - huart3.Init.OverSampling = UART_OVERSAMPLING_16; - 800ba08: 4b0b ldr r3, [pc, #44] ; (800ba38 <_ZL19MX_USART3_UART_Initv+0x60>) - 800ba0a: 2200 movs r2, #0 - 800ba0c: 61da str r2, [r3, #28] - huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - 800ba0e: 4b0a ldr r3, [pc, #40] ; (800ba38 <_ZL19MX_USART3_UART_Initv+0x60>) - 800ba10: 2200 movs r2, #0 - 800ba12: 621a str r2, [r3, #32] - huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - 800ba14: 4b08 ldr r3, [pc, #32] ; (800ba38 <_ZL19MX_USART3_UART_Initv+0x60>) - 800ba16: 2200 movs r2, #0 - 800ba18: 625a str r2, [r3, #36] ; 0x24 - if (HAL_UART_Init(&huart3) != HAL_OK) - 800ba1a: 4807 ldr r0, [pc, #28] ; (800ba38 <_ZL19MX_USART3_UART_Initv+0x60>) - 800ba1c: f7fd fff2 bl 8009a04 - 800ba20: 4603 mov r3, r0 - 800ba22: 2b00 cmp r3, #0 - 800ba24: bf14 ite ne - 800ba26: 2301 movne r3, #1 - 800ba28: 2300 moveq r3, #0 - 800ba2a: b2db uxtb r3, r3 - 800ba2c: 2b00 cmp r3, #0 - 800ba2e: d001 beq.n 800ba34 <_ZL19MX_USART3_UART_Initv+0x5c> - { - Error_Handler(); - 800ba30: f000 f81e bl 800ba70 - } - /* USER CODE BEGIN USART3_Init 2 */ - - /* USER CODE END USART3_Init 2 */ - -} - 800ba34: bf00 nop - 800ba36: bd80 pop {r7, pc} - 800ba38: 20000a20 .word 0x20000a20 - 800ba3c: 40004800 .word 0x40004800 - -0800ba40 <_ZL12MX_GPIO_Initv>: - * @brief GPIO Initialization Function - * @param None - * @retval None - */ -static void MX_GPIO_Init(void) -{ - 800ba40: b480 push {r7} - 800ba42: b083 sub sp, #12 - 800ba44: af00 add r7, sp, #0 - - /* GPIO Ports Clock Enable */ - __HAL_RCC_GPIOD_CLK_ENABLE(); - 800ba46: 4b09 ldr r3, [pc, #36] ; (800ba6c <_ZL12MX_GPIO_Initv+0x2c>) - 800ba48: 6b1b ldr r3, [r3, #48] ; 0x30 - 800ba4a: 4a08 ldr r2, [pc, #32] ; (800ba6c <_ZL12MX_GPIO_Initv+0x2c>) - 800ba4c: f043 0308 orr.w r3, r3, #8 - 800ba50: 6313 str r3, [r2, #48] ; 0x30 - 800ba52: 4b06 ldr r3, [pc, #24] ; (800ba6c <_ZL12MX_GPIO_Initv+0x2c>) - 800ba54: 6b1b ldr r3, [r3, #48] ; 0x30 - 800ba56: f003 0308 and.w r3, r3, #8 - 800ba5a: 607b str r3, [r7, #4] - 800ba5c: 687b ldr r3, [r7, #4] - -} - 800ba5e: bf00 nop - 800ba60: 370c adds r7, #12 - 800ba62: 46bd mov sp, r7 - 800ba64: f85d 7b04 ldr.w r7, [sp], #4 - 800ba68: 4770 bx lr - 800ba6a: bf00 nop - 800ba6c: 40023800 .word 0x40023800 - -0800ba70 : -/** - * @brief This function is executed in case of error occurrence. - * @retval None - */ -void Error_Handler(void) -{ - 800ba70: b480 push {r7} - 800ba72: af00 add r7, sp, #0 - /* USER CODE BEGIN Error_Handler_Debug */ - /* User can add his own implementation to report the HAL error return state */ - - /* USER CODE END Error_Handler_Debug */ -} - 800ba74: bf00 nop - 800ba76: 46bd mov sp, r7 - 800ba78: f85d 7b04 ldr.w r7, [sp], #4 - 800ba7c: 4770 bx lr - -0800ba7e <_ZN3ros3Msg8varToArrIPhmEEvT_T0_>: - return 8; - } - - // Copy data from variable into a byte array - template - static void varToArr(A arr, const V var) - 800ba7e: b480 push {r7} - 800ba80: b085 sub sp, #20 - 800ba82: af00 add r7, sp, #0 - 800ba84: 6078 str r0, [r7, #4] - 800ba86: 6039 str r1, [r7, #0] - { - for (size_t i = 0; i < sizeof(V); i++) - 800ba88: 2300 movs r3, #0 - 800ba8a: 60fb str r3, [r7, #12] - 800ba8c: 68fb ldr r3, [r7, #12] - 800ba8e: 2b03 cmp r3, #3 - 800ba90: d80d bhi.n 800baae <_ZN3ros3Msg8varToArrIPhmEEvT_T0_+0x30> - arr[i] = (var >> (8 * i)); - 800ba92: 68fb ldr r3, [r7, #12] - 800ba94: 00db lsls r3, r3, #3 - 800ba96: 683a ldr r2, [r7, #0] - 800ba98: fa22 f103 lsr.w r1, r2, r3 - 800ba9c: 687a ldr r2, [r7, #4] - 800ba9e: 68fb ldr r3, [r7, #12] - 800baa0: 4413 add r3, r2 - 800baa2: b2ca uxtb r2, r1 - 800baa4: 701a strb r2, [r3, #0] - for (size_t i = 0; i < sizeof(V); i++) - 800baa6: 68fb ldr r3, [r7, #12] - 800baa8: 3301 adds r3, #1 - 800baaa: 60fb str r3, [r7, #12] - 800baac: e7ee b.n 800ba8c <_ZN3ros3Msg8varToArrIPhmEEvT_T0_+0xe> - } - 800baae: bf00 nop - 800bab0: 3714 adds r7, #20 - 800bab2: 46bd mov sp, r7 - 800bab4: f85d 7b04 ldr.w r7, [sp], #4 - 800bab8: 4770 bx lr - -0800baba <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_>: - - // Copy data from a byte array into variable - template - static void arrToVar(V& var, const A arr) - 800baba: b480 push {r7} - 800babc: b085 sub sp, #20 - 800babe: af00 add r7, sp, #0 - 800bac0: 6078 str r0, [r7, #4] - 800bac2: 6039 str r1, [r7, #0] - { - var = 0; - 800bac4: 687b ldr r3, [r7, #4] - 800bac6: 2200 movs r2, #0 - 800bac8: 601a str r2, [r3, #0] - for (size_t i = 0; i < sizeof(V); i++) - 800baca: 2300 movs r3, #0 - 800bacc: 60fb str r3, [r7, #12] - 800bace: 68fb ldr r3, [r7, #12] - 800bad0: 2b03 cmp r3, #3 - 800bad2: d811 bhi.n 800baf8 <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_+0x3e> - var |= (arr[i] << (8 * i)); - 800bad4: 687b ldr r3, [r7, #4] - 800bad6: 681b ldr r3, [r3, #0] - 800bad8: 6839 ldr r1, [r7, #0] - 800bada: 68fa ldr r2, [r7, #12] - 800badc: 440a add r2, r1 - 800bade: 7812 ldrb r2, [r2, #0] - 800bae0: 4611 mov r1, r2 - 800bae2: 68fa ldr r2, [r7, #12] - 800bae4: 00d2 lsls r2, r2, #3 - 800bae6: fa01 f202 lsl.w r2, r1, r2 - 800baea: 431a orrs r2, r3 - 800baec: 687b ldr r3, [r7, #4] - 800baee: 601a str r2, [r3, #0] - for (size_t i = 0; i < sizeof(V); i++) - 800baf0: 68fb ldr r3, [r7, #12] - 800baf2: 3301 adds r3, #1 - 800baf4: 60fb str r3, [r7, #12] - 800baf6: e7ea b.n 800bace <_ZN3ros3Msg8arrToVarImPhEEvRT_T0_+0x14> - } - 800baf8: bf00 nop - 800bafa: 3714 adds r7, #20 - 800bafc: 46bd mov sp, r7 - 800bafe: f85d 7b04 ldr.w r7, [sp], #4 - 800bb02: 4770 bx lr - -0800bb04 <_ZN3ros15NodeHandleBase_C1Ev>: -#include "ros/msg.h" - -namespace ros -{ - -class NodeHandleBase_ - 800bb04: b480 push {r7} - 800bb06: b083 sub sp, #12 - 800bb08: af00 add r7, sp, #0 - 800bb0a: 6078 str r0, [r7, #4] - 800bb0c: 4a04 ldr r2, [pc, #16] ; (800bb20 <_ZN3ros15NodeHandleBase_C1Ev+0x1c>) - 800bb0e: 687b ldr r3, [r7, #4] - 800bb10: 601a str r2, [r3, #0] - 800bb12: 687b ldr r3, [r7, #4] - 800bb14: 4618 mov r0, r3 - 800bb16: 370c adds r7, #12 - 800bb18: 46bd mov sp, r7 - 800bb1a: f85d 7b04 ldr.w r7, [sp], #4 - 800bb1e: 4770 bx lr - 800bb20: 080122dc .word 0x080122dc - -0800bb24 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev>: - - /* - * Setup Functions - */ -public: - NodeHandle_() : configured_(false) - 800bb24: b580 push {r7, lr} - 800bb26: b086 sub sp, #24 - 800bb28: af00 add r7, sp, #0 - 800bb2a: 6078 str r0, [r7, #4] - 800bb2c: 687b ldr r3, [r7, #4] - 800bb2e: 4618 mov r0, r3 - 800bb30: f7ff ffe8 bl 800bb04 <_ZN3ros15NodeHandleBase_C1Ev> - 800bb34: 4a3a ldr r2, [pc, #232] ; (800bc20 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0xfc>) - 800bb36: 687b ldr r3, [r7, #4] - 800bb38: 601a str r2, [r3, #0] - 800bb3a: 687b ldr r3, [r7, #4] - 800bb3c: 3304 adds r3, #4 - 800bb3e: 4618 mov r0, r3 - 800bb40: f7ff fd30 bl 800b5a4 <_ZN13STM32HardwareC1Ev> - 800bb44: 687b ldr r3, [r7, #4] - 800bb46: 2200 movs r2, #0 - 800bb48: f883 2684 strb.w r2, [r3, #1668] ; 0x684 - 800bb4c: 687b ldr r3, [r7, #4] - 800bb4e: f503 63d3 add.w r3, r3, #1688 ; 0x698 - 800bb52: 4618 mov r0, r3 - 800bb54: f7ff fa2e bl 800afb4 <_ZN14rosserial_msgs20RequestParamResponseC1Ev> - { - - for (unsigned int i = 0; i < MAX_PUBLISHERS; i++) - 800bb58: 2300 movs r3, #0 - 800bb5a: 617b str r3, [r7, #20] - 800bb5c: 697b ldr r3, [r7, #20] - 800bb5e: 2b18 cmp r3, #24 - 800bb60: d80a bhi.n 800bb78 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x54> - publishers[i] = 0; - 800bb62: 687b ldr r3, [r7, #4] - 800bb64: 697a ldr r2, [r7, #20] - 800bb66: f502 72b5 add.w r2, r2, #362 ; 0x16a - 800bb6a: 2100 movs r1, #0 - 800bb6c: f843 1022 str.w r1, [r3, r2, lsl #2] - for (unsigned int i = 0; i < MAX_PUBLISHERS; i++) - 800bb70: 697b ldr r3, [r7, #20] - 800bb72: 3301 adds r3, #1 - 800bb74: 617b str r3, [r7, #20] - 800bb76: e7f1 b.n 800bb5c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x38> - - for (unsigned int i = 0; i < MAX_SUBSCRIBERS; i++) - 800bb78: 2300 movs r3, #0 - 800bb7a: 613b str r3, [r7, #16] - 800bb7c: 693b ldr r3, [r7, #16] - 800bb7e: 2b18 cmp r3, #24 - 800bb80: d80b bhi.n 800bb9a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x76> - subscribers[i] = 0; - 800bb82: 687a ldr r2, [r7, #4] - 800bb84: 693b ldr r3, [r7, #16] - 800bb86: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800bb8a: 009b lsls r3, r3, #2 - 800bb8c: 4413 add r3, r2 - 800bb8e: 2200 movs r2, #0 - 800bb90: 605a str r2, [r3, #4] - for (unsigned int i = 0; i < MAX_SUBSCRIBERS; i++) - 800bb92: 693b ldr r3, [r7, #16] - 800bb94: 3301 adds r3, #1 - 800bb96: 613b str r3, [r7, #16] - 800bb98: e7f0 b.n 800bb7c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x58> - - for (unsigned int i = 0; i < INPUT_SIZE; i++) - 800bb9a: 2300 movs r3, #0 - 800bb9c: 60fb str r3, [r7, #12] - 800bb9e: 68fb ldr r3, [r7, #12] - 800bba0: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 800bba4: d20a bcs.n 800bbbc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x98> - message_in[i] = 0; - 800bba6: 687a ldr r2, [r7, #4] - 800bba8: 68fb ldr r3, [r7, #12] - 800bbaa: 4413 add r3, r2 - 800bbac: f503 73d4 add.w r3, r3, #424 ; 0x1a8 - 800bbb0: 2200 movs r2, #0 - 800bbb2: 701a strb r2, [r3, #0] - for (unsigned int i = 0; i < INPUT_SIZE; i++) - 800bbb4: 68fb ldr r3, [r7, #12] - 800bbb6: 3301 adds r3, #1 - 800bbb8: 60fb str r3, [r7, #12] - 800bbba: e7f0 b.n 800bb9e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x7a> - - for (unsigned int i = 0; i < OUTPUT_SIZE; i++) - 800bbbc: 2300 movs r3, #0 - 800bbbe: 60bb str r3, [r7, #8] - 800bbc0: 68bb ldr r3, [r7, #8] - 800bbc2: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 800bbc6: d20a bcs.n 800bbde <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0xba> - message_out[i] = 0; - 800bbc8: 687a ldr r2, [r7, #4] - 800bbca: 68bb ldr r3, [r7, #8] - 800bbcc: 4413 add r3, r2 - 800bbce: f503 736a add.w r3, r3, #936 ; 0x3a8 - 800bbd2: 2200 movs r2, #0 - 800bbd4: 701a strb r2, [r3, #0] - for (unsigned int i = 0; i < OUTPUT_SIZE; i++) - 800bbd6: 68bb ldr r3, [r7, #8] - 800bbd8: 3301 adds r3, #1 - 800bbda: 60bb str r3, [r7, #8] - 800bbdc: e7f0 b.n 800bbc0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EEC1Ev+0x9c> - - req_param_resp.ints_length = 0; - 800bbde: 687b ldr r3, [r7, #4] - 800bbe0: 2200 movs r2, #0 - 800bbe2: f8c3 269c str.w r2, [r3, #1692] ; 0x69c - req_param_resp.ints = NULL; - 800bbe6: 687b ldr r3, [r7, #4] - 800bbe8: 2200 movs r2, #0 - 800bbea: f8c3 26a4 str.w r2, [r3, #1700] ; 0x6a4 - req_param_resp.floats_length = 0; - 800bbee: 687b ldr r3, [r7, #4] - 800bbf0: 2200 movs r2, #0 - 800bbf2: f8c3 26a8 str.w r2, [r3, #1704] ; 0x6a8 - req_param_resp.floats = NULL; - 800bbf6: 687b ldr r3, [r7, #4] - 800bbf8: 2200 movs r2, #0 - 800bbfa: f8c3 26b0 str.w r2, [r3, #1712] ; 0x6b0 - req_param_resp.ints_length = 0; - 800bbfe: 687b ldr r3, [r7, #4] - 800bc00: 2200 movs r2, #0 - 800bc02: f8c3 269c str.w r2, [r3, #1692] ; 0x69c - req_param_resp.ints = NULL; - 800bc06: 687b ldr r3, [r7, #4] - 800bc08: 2200 movs r2, #0 - 800bc0a: f8c3 26a4 str.w r2, [r3, #1700] ; 0x6a4 - - spin_timeout_ = 0; - 800bc0e: 687b ldr r3, [r7, #4] - 800bc10: 2200 movs r2, #0 - 800bc12: f8c3 21a4 str.w r2, [r3, #420] ; 0x1a4 - } - 800bc16: 687b ldr r3, [r7, #4] - 800bc18: 4618 mov r0, r3 - 800bc1a: 3718 adds r7, #24 - 800bc1c: 46bd mov sp, r7 - 800bc1e: bd80 pop {r7, pc} - 800bc20: 080122c8 .word 0x080122c8 - -0800bc24 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8initNodeEv>: - { - return &hardware_; - } - - /* Start serial, initialize buffers */ - void initNode() - 800bc24: b580 push {r7, lr} - 800bc26: b082 sub sp, #8 - 800bc28: af00 add r7, sp, #0 - 800bc2a: 6078 str r0, [r7, #4] - { - hardware_.init(); - 800bc2c: 687b ldr r3, [r7, #4] - 800bc2e: 3304 adds r3, #4 - 800bc30: 4618 mov r0, r3 - 800bc32: f7ff fcd9 bl 800b5e8 <_ZN13STM32Hardware4initEv> - mode_ = 0; - 800bc36: 687b ldr r3, [r7, #4] - 800bc38: 2200 movs r2, #0 - 800bc3a: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - bytes_ = 0; - 800bc3e: 687b ldr r3, [r7, #4] - 800bc40: 2200 movs r2, #0 - 800bc42: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 - index_ = 0; - 800bc46: 687b ldr r3, [r7, #4] - 800bc48: 2200 movs r2, #0 - 800bc4a: f8c3 267c str.w r2, [r3, #1660] ; 0x67c - topic_ = 0; - 800bc4e: 687b ldr r3, [r7, #4] - 800bc50: 2200 movs r2, #0 - 800bc52: f8c3 2678 str.w r2, [r3, #1656] ; 0x678 - }; - 800bc56: bf00 nop - 800bc58: 3708 adds r7, #8 - 800bc5a: 46bd mov sp, r7 - 800bc5c: bd80 pop {r7, pc} - -0800bc5e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9advertiseERNS_9PublisherE>: - /******************************************************************** - * Topic Management - */ - - /* Register a new publisher */ - bool advertise(Publisher & p) - 800bc5e: b480 push {r7} - 800bc60: b085 sub sp, #20 - 800bc62: af00 add r7, sp, #0 - 800bc64: 6078 str r0, [r7, #4] - 800bc66: 6039 str r1, [r7, #0] - { - for (int i = 0; i < MAX_PUBLISHERS; i++) - 800bc68: 2300 movs r3, #0 - 800bc6a: 60fb str r3, [r7, #12] - 800bc6c: 68fb ldr r3, [r7, #12] - 800bc6e: 2b18 cmp r3, #24 - 800bc70: dc1c bgt.n 800bcac <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9advertiseERNS_9PublisherE+0x4e> - { - if (publishers[i] == 0) // empty slot - 800bc72: 687b ldr r3, [r7, #4] - 800bc74: 68fa ldr r2, [r7, #12] - 800bc76: f502 72b5 add.w r2, r2, #362 ; 0x16a - 800bc7a: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 800bc7e: 2b00 cmp r3, #0 - 800bc80: d110 bne.n 800bca4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9advertiseERNS_9PublisherE+0x46> - { - publishers[i] = &p; - 800bc82: 687b ldr r3, [r7, #4] - 800bc84: 68fa ldr r2, [r7, #12] - 800bc86: f502 72b5 add.w r2, r2, #362 ; 0x16a - 800bc8a: 6839 ldr r1, [r7, #0] - 800bc8c: f843 1022 str.w r1, [r3, r2, lsl #2] - p.id_ = i + 100 + MAX_SUBSCRIBERS; - 800bc90: 68fb ldr r3, [r7, #12] - 800bc92: f103 027d add.w r2, r3, #125 ; 0x7d - 800bc96: 683b ldr r3, [r7, #0] - 800bc98: 609a str r2, [r3, #8] - p.nh_ = this; - 800bc9a: 687a ldr r2, [r7, #4] - 800bc9c: 683b ldr r3, [r7, #0] - 800bc9e: 60da str r2, [r3, #12] - return true; - 800bca0: 2301 movs r3, #1 - 800bca2: e004 b.n 800bcae <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9advertiseERNS_9PublisherE+0x50> - for (int i = 0; i < MAX_PUBLISHERS; i++) - 800bca4: 68fb ldr r3, [r7, #12] - 800bca6: 3301 adds r3, #1 - 800bca8: 60fb str r3, [r7, #12] - 800bcaa: e7df b.n 800bc6c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9advertiseERNS_9PublisherE+0xe> - } - } - return false; - 800bcac: 2300 movs r3, #0 - } - 800bcae: 4618 mov r0, r3 - 800bcb0: 3714 adds r7, #20 - 800bcb2: 46bd mov sp, r7 - 800bcb4: f85d 7b04 ldr.w r7, [sp], #4 - 800bcb8: 4770 bx lr - ... - -0800bcbc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE>: - } - } - configured_ = true; - } - - virtual int publish(int id, const Msg * msg) - 800bcbc: b580 push {r7, lr} - 800bcbe: b088 sub sp, #32 - 800bcc0: af00 add r7, sp, #0 - 800bcc2: 60f8 str r0, [r7, #12] - 800bcc4: 60b9 str r1, [r7, #8] - 800bcc6: 607a str r2, [r7, #4] - { - if (id >= 100 && !configured_) - 800bcc8: 68bb ldr r3, [r7, #8] - 800bcca: 2b63 cmp r3, #99 ; 0x63 - 800bccc: dd09 ble.n 800bce2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x26> - 800bcce: 68fb ldr r3, [r7, #12] - 800bcd0: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 - 800bcd4: f083 0301 eor.w r3, r3, #1 - 800bcd8: b2db uxtb r3, r3 - 800bcda: 2b00 cmp r3, #0 - 800bcdc: d001 beq.n 800bce2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x26> - return 0; - 800bcde: 2300 movs r3, #0 - 800bce0: e077 b.n 800bdd2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x116> - - /* serialize message */ - int l = msg->serialize(message_out + 7); - 800bce2: 687b ldr r3, [r7, #4] - 800bce4: 681b ldr r3, [r3, #0] - 800bce6: 681b ldr r3, [r3, #0] - 800bce8: 68fa ldr r2, [r7, #12] - 800bcea: f502 726a add.w r2, r2, #936 ; 0x3a8 - 800bcee: 3207 adds r2, #7 - 800bcf0: 4611 mov r1, r2 - 800bcf2: 6878 ldr r0, [r7, #4] - 800bcf4: 4798 blx r3 - 800bcf6: 6178 str r0, [r7, #20] - - /* setup the header */ - message_out[0] = 0xff; - 800bcf8: 68fb ldr r3, [r7, #12] - 800bcfa: 22ff movs r2, #255 ; 0xff - 800bcfc: f883 23a8 strb.w r2, [r3, #936] ; 0x3a8 - message_out[1] = PROTOCOL_VER; - 800bd00: 68fb ldr r3, [r7, #12] - 800bd02: 22fe movs r2, #254 ; 0xfe - 800bd04: f883 23a9 strb.w r2, [r3, #937] ; 0x3a9 - message_out[2] = (uint8_t)((uint16_t)l & 255); - 800bd08: 697b ldr r3, [r7, #20] - 800bd0a: b2da uxtb r2, r3 - 800bd0c: 68fb ldr r3, [r7, #12] - 800bd0e: f883 23aa strb.w r2, [r3, #938] ; 0x3aa - message_out[3] = (uint8_t)((uint16_t)l >> 8); - 800bd12: 697b ldr r3, [r7, #20] - 800bd14: b29b uxth r3, r3 - 800bd16: 121b asrs r3, r3, #8 - 800bd18: b2da uxtb r2, r3 - 800bd1a: 68fb ldr r3, [r7, #12] - 800bd1c: f883 23ab strb.w r2, [r3, #939] ; 0x3ab - message_out[4] = 255 - ((message_out[2] + message_out[3]) % 256); - 800bd20: 68fb ldr r3, [r7, #12] - 800bd22: f893 23aa ldrb.w r2, [r3, #938] ; 0x3aa - 800bd26: 68fb ldr r3, [r7, #12] - 800bd28: f893 33ab ldrb.w r3, [r3, #939] ; 0x3ab - 800bd2c: 4413 add r3, r2 - 800bd2e: b2db uxtb r3, r3 - 800bd30: 43db mvns r3, r3 - 800bd32: b2da uxtb r2, r3 - 800bd34: 68fb ldr r3, [r7, #12] - 800bd36: f883 23ac strb.w r2, [r3, #940] ; 0x3ac - message_out[5] = (uint8_t)((int16_t)id & 255); - 800bd3a: 68bb ldr r3, [r7, #8] - 800bd3c: b2da uxtb r2, r3 - 800bd3e: 68fb ldr r3, [r7, #12] - 800bd40: f883 23ad strb.w r2, [r3, #941] ; 0x3ad - message_out[6] = (uint8_t)((int16_t)id >> 8); - 800bd44: 68bb ldr r3, [r7, #8] - 800bd46: b21b sxth r3, r3 - 800bd48: 121b asrs r3, r3, #8 - 800bd4a: b2da uxtb r2, r3 - 800bd4c: 68fb ldr r3, [r7, #12] - 800bd4e: f883 23ae strb.w r2, [r3, #942] ; 0x3ae - - /* calculate checksum */ - int chk = 0; - 800bd52: 2300 movs r3, #0 - 800bd54: 61fb str r3, [r7, #28] - for (int i = 5; i < l + 7; i++) - 800bd56: 2305 movs r3, #5 - 800bd58: 61bb str r3, [r7, #24] - 800bd5a: 697b ldr r3, [r7, #20] - 800bd5c: 3307 adds r3, #7 - 800bd5e: 69ba ldr r2, [r7, #24] - 800bd60: 429a cmp r2, r3 - 800bd62: da0d bge.n 800bd80 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0xc4> - chk += message_out[i]; - 800bd64: 68fa ldr r2, [r7, #12] - 800bd66: 69bb ldr r3, [r7, #24] - 800bd68: 4413 add r3, r2 - 800bd6a: f503 736a add.w r3, r3, #936 ; 0x3a8 - 800bd6e: 781b ldrb r3, [r3, #0] - 800bd70: 461a mov r2, r3 - 800bd72: 69fb ldr r3, [r7, #28] - 800bd74: 4413 add r3, r2 - 800bd76: 61fb str r3, [r7, #28] - for (int i = 5; i < l + 7; i++) - 800bd78: 69bb ldr r3, [r7, #24] - 800bd7a: 3301 adds r3, #1 - 800bd7c: 61bb str r3, [r7, #24] - 800bd7e: e7ec b.n 800bd5a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x9e> - l += 7; - 800bd80: 697b ldr r3, [r7, #20] - 800bd82: 3307 adds r3, #7 - 800bd84: 617b str r3, [r7, #20] - message_out[l++] = 255 - (chk % 256); - 800bd86: 69fb ldr r3, [r7, #28] - 800bd88: 425a negs r2, r3 - 800bd8a: b2db uxtb r3, r3 - 800bd8c: b2d2 uxtb r2, r2 - 800bd8e: bf58 it pl - 800bd90: 4253 negpl r3, r2 - 800bd92: b2da uxtb r2, r3 - 800bd94: 697b ldr r3, [r7, #20] - 800bd96: 1c59 adds r1, r3, #1 - 800bd98: 6179 str r1, [r7, #20] - 800bd9a: 43d2 mvns r2, r2 - 800bd9c: b2d1 uxtb r1, r2 - 800bd9e: 68fa ldr r2, [r7, #12] - 800bda0: 4413 add r3, r2 - 800bda2: 460a mov r2, r1 - 800bda4: f883 23a8 strb.w r2, [r3, #936] ; 0x3a8 - - if (l <= OUTPUT_SIZE) - 800bda8: 697b ldr r3, [r7, #20] - 800bdaa: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 800bdae: dc0a bgt.n 800bdc6 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x10a> - { - hardware_.write(message_out, l); - 800bdb0: 68fb ldr r3, [r7, #12] - 800bdb2: 1d18 adds r0, r3, #4 - 800bdb4: 68fb ldr r3, [r7, #12] - 800bdb6: f503 736a add.w r3, r3, #936 ; 0x3a8 - 800bdba: 697a ldr r2, [r7, #20] - 800bdbc: 4619 mov r1, r3 - 800bdbe: f7ff fcbb bl 800b738 <_ZN13STM32Hardware5writeEPhi> - return l; - 800bdc2: 697b ldr r3, [r7, #20] - 800bdc4: e005 b.n 800bdd2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x116> - } - else - { - logerror("Message from device dropped: message larger than buffer."); - 800bdc6: 4905 ldr r1, [pc, #20] ; (800bddc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE7publishEiPKNS_3MsgE+0x120>) - 800bdc8: 68f8 ldr r0, [r7, #12] - 800bdca: f000 f9f2 bl 800c1b2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8logerrorEPKc> - return -1; - 800bdce: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - } - } - 800bdd2: 4618 mov r0, r3 - 800bdd4: 3720 adds r7, #32 - 800bdd6: 46bd mov sp, r7 - 800bdd8: bd80 pop {r7, pc} - 800bdda: bf00 nop - 800bddc: 08011ad0 .word 0x08011ad0 - -0800bde0 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv>: - virtual int spinOnce() - 800bde0: b580 push {r7, lr} - 800bde2: b084 sub sp, #16 - 800bde4: af00 add r7, sp, #0 - 800bde6: 6078 str r0, [r7, #4] - uint32_t c_time = hardware_.time(); - 800bde8: 687b ldr r3, [r7, #4] - 800bdea: 3304 adds r3, #4 - 800bdec: 4618 mov r0, r3 - 800bdee: f7ff fce8 bl 800b7c2 <_ZN13STM32Hardware4timeEv> - 800bdf2: 60f8 str r0, [r7, #12] - if ((c_time - last_sync_receive_time) > (SYNC_SECONDS * 2200)) - 800bdf4: 687b ldr r3, [r7, #4] - 800bdf6: f8d3 368c ldr.w r3, [r3, #1676] ; 0x68c - 800bdfa: 68fa ldr r2, [r7, #12] - 800bdfc: 1ad3 subs r3, r2, r3 - 800bdfe: f642 22f8 movw r2, #11000 ; 0x2af8 - 800be02: 4293 cmp r3, r2 - 800be04: d903 bls.n 800be0e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x2e> - configured_ = false; - 800be06: 687b ldr r3, [r7, #4] - 800be08: 2200 movs r2, #0 - 800be0a: f883 2684 strb.w r2, [r3, #1668] ; 0x684 - if (mode_ != MODE_FIRST_FF) - 800be0e: 687b ldr r3, [r7, #4] - 800be10: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800be14: 2b00 cmp r3, #0 - 800be16: d009 beq.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - if (c_time > last_msg_timeout_time) - 800be18: 687b ldr r3, [r7, #4] - 800be1a: f8d3 3690 ldr.w r3, [r3, #1680] ; 0x690 - 800be1e: 68fa ldr r2, [r7, #12] - 800be20: 429a cmp r2, r3 - 800be22: d903 bls.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - mode_ = MODE_FIRST_FF; - 800be24: 687b ldr r3, [r7, #4] - 800be26: 2200 movs r2, #0 - 800be28: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - if (spin_timeout_ > 0) - 800be2c: 687b ldr r3, [r7, #4] - 800be2e: f8d3 31a4 ldr.w r3, [r3, #420] ; 0x1a4 - 800be32: 2b00 cmp r3, #0 - 800be34: d014 beq.n 800be60 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x80> - if ((hardware_.time() - c_time) > spin_timeout_) - 800be36: 687b ldr r3, [r7, #4] - 800be38: 3304 adds r3, #4 - 800be3a: 4618 mov r0, r3 - 800be3c: f7ff fcc1 bl 800b7c2 <_ZN13STM32Hardware4timeEv> - 800be40: 4602 mov r2, r0 - 800be42: 68fb ldr r3, [r7, #12] - 800be44: 1ad2 subs r2, r2, r3 - 800be46: 687b ldr r3, [r7, #4] - 800be48: f8d3 31a4 ldr.w r3, [r3, #420] ; 0x1a4 - 800be4c: 429a cmp r2, r3 - 800be4e: bf8c ite hi - 800be50: 2301 movhi r3, #1 - 800be52: 2300 movls r3, #0 - 800be54: b2db uxtb r3, r3 - 800be56: 2b00 cmp r3, #0 - 800be58: d002 beq.n 800be60 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x80> - return SPIN_TIMEOUT; - 800be5a: f06f 0301 mvn.w r3, #1 - 800be5e: e197 b.n 800c190 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3b0> - int data = hardware_.read(); - 800be60: 687b ldr r3, [r7, #4] - 800be62: 3304 adds r3, #4 - 800be64: 4618 mov r0, r3 - 800be66: f7ff fbdf bl 800b628 <_ZN13STM32Hardware4readEv> - 800be6a: 60b8 str r0, [r7, #8] - if (data < 0) - 800be6c: 68bb ldr r3, [r7, #8] - 800be6e: 2b00 cmp r3, #0 - 800be70: f2c0 8177 blt.w 800c162 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x382> - checksum_ += data; - 800be74: 687b ldr r3, [r7, #4] - 800be76: f8d3 2680 ldr.w r2, [r3, #1664] ; 0x680 - 800be7a: 68bb ldr r3, [r7, #8] - 800be7c: 441a add r2, r3 - 800be7e: 687b ldr r3, [r7, #4] - 800be80: f8c3 2680 str.w r2, [r3, #1664] ; 0x680 - if (mode_ == MODE_MESSAGE) /* message data being recieved */ - 800be84: 687b ldr r3, [r7, #4] - 800be86: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800be8a: 2b07 cmp r3, #7 - 800be8c: d11e bne.n 800becc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0xec> - message_in[index_++] = data; - 800be8e: 687b ldr r3, [r7, #4] - 800be90: f8d3 367c ldr.w r3, [r3, #1660] ; 0x67c - 800be94: 1c59 adds r1, r3, #1 - 800be96: 687a ldr r2, [r7, #4] - 800be98: f8c2 167c str.w r1, [r2, #1660] ; 0x67c - 800be9c: 68ba ldr r2, [r7, #8] - 800be9e: b2d1 uxtb r1, r2 - 800bea0: 687a ldr r2, [r7, #4] - 800bea2: 4413 add r3, r2 - 800bea4: 460a mov r2, r1 - 800bea6: f883 21a8 strb.w r2, [r3, #424] ; 0x1a8 - bytes_--; - 800beaa: 687b ldr r3, [r7, #4] - 800beac: f8d3 3674 ldr.w r3, [r3, #1652] ; 0x674 - 800beb0: 1e5a subs r2, r3, #1 - 800beb2: 687b ldr r3, [r7, #4] - 800beb4: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 - if (bytes_ == 0) /* is message complete? if so, checksum */ - 800beb8: 687b ldr r3, [r7, #4] - 800beba: f8d3 3674 ldr.w r3, [r3, #1652] ; 0x674 - 800bebe: 2b00 cmp r3, #0 - 800bec0: d1b4 bne.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - mode_ = MODE_MSG_CHECKSUM; - 800bec2: 687b ldr r3, [r7, #4] - 800bec4: 2208 movs r2, #8 - 800bec6: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - 800beca: e7af b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - else if (mode_ == MODE_FIRST_FF) - 800becc: 687b ldr r3, [r7, #4] - 800bece: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800bed2: 2b00 cmp r3, #0 - 800bed4: d128 bne.n 800bf28 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x148> - if (data == 0xff) - 800bed6: 68bb ldr r3, [r7, #8] - 800bed8: 2bff cmp r3, #255 ; 0xff - 800beda: d10d bne.n 800bef8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x118> - mode_++; - 800bedc: 687b ldr r3, [r7, #4] - 800bede: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800bee2: 1c5a adds r2, r3, #1 - 800bee4: 687b ldr r3, [r7, #4] - 800bee6: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - last_msg_timeout_time = c_time + SERIAL_MSG_TIMEOUT; - 800beea: 68fb ldr r3, [r7, #12] - 800beec: f103 0214 add.w r2, r3, #20 - 800bef0: 687b ldr r3, [r7, #4] - 800bef2: f8c3 2690 str.w r2, [r3, #1680] ; 0x690 - 800bef6: e799 b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - else if (hardware_.time() - c_time > (SYNC_SECONDS * 1000)) - 800bef8: 687b ldr r3, [r7, #4] - 800befa: 3304 adds r3, #4 - 800befc: 4618 mov r0, r3 - 800befe: f7ff fc60 bl 800b7c2 <_ZN13STM32Hardware4timeEv> - 800bf02: 4602 mov r2, r0 - 800bf04: 68fb ldr r3, [r7, #12] - 800bf06: 1ad3 subs r3, r2, r3 - 800bf08: f241 3288 movw r2, #5000 ; 0x1388 - 800bf0c: 4293 cmp r3, r2 - 800bf0e: bf8c ite hi - 800bf10: 2301 movhi r3, #1 - 800bf12: 2300 movls r3, #0 - 800bf14: b2db uxtb r3, r3 - 800bf16: 2b00 cmp r3, #0 - 800bf18: d088 beq.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - configured_ = false; - 800bf1a: 687b ldr r3, [r7, #4] - 800bf1c: 2200 movs r2, #0 - 800bf1e: f883 2684 strb.w r2, [r3, #1668] ; 0x684 - return SPIN_TIMEOUT; - 800bf22: f06f 0301 mvn.w r3, #1 - 800bf26: e133 b.n 800c190 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3b0> - else if (mode_ == MODE_PROTOCOL_VER) - 800bf28: 687b ldr r3, [r7, #4] - 800bf2a: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800bf2e: 2b01 cmp r3, #1 - 800bf30: d11b bne.n 800bf6a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x18a> - if (data == PROTOCOL_VER) - 800bf32: 68bb ldr r3, [r7, #8] - 800bf34: 2bfe cmp r3, #254 ; 0xfe - 800bf36: d107 bne.n 800bf48 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x168> - mode_++; - 800bf38: 687b ldr r3, [r7, #4] - 800bf3a: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800bf3e: 1c5a adds r2, r3, #1 - 800bf40: 687b ldr r3, [r7, #4] - 800bf42: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - 800bf46: e771 b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - mode_ = MODE_FIRST_FF; - 800bf48: 687b ldr r3, [r7, #4] - 800bf4a: 2200 movs r2, #0 - 800bf4c: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - if (configured_ == false) - 800bf50: 687b ldr r3, [r7, #4] - 800bf52: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 - 800bf56: f083 0301 eor.w r3, r3, #1 - 800bf5a: b2db uxtb r3, r3 - 800bf5c: 2b00 cmp r3, #0 - 800bf5e: f43f af65 beq.w 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - requestSyncTime(); /* send a msg back showing our protocol version */ - 800bf62: 6878 ldr r0, [r7, #4] - 800bf64: f000 f933 bl 800c1ce <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv> - 800bf68: e760 b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - else if (mode_ == MODE_SIZE_L) /* bottom half of message size */ - 800bf6a: 687b ldr r3, [r7, #4] - 800bf6c: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800bf70: 2b02 cmp r3, #2 - 800bf72: d113 bne.n 800bf9c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x1bc> - bytes_ = data; - 800bf74: 687b ldr r3, [r7, #4] - 800bf76: 68ba ldr r2, [r7, #8] - 800bf78: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 - index_ = 0; - 800bf7c: 687b ldr r3, [r7, #4] - 800bf7e: 2200 movs r2, #0 - 800bf80: f8c3 267c str.w r2, [r3, #1660] ; 0x67c - mode_++; - 800bf84: 687b ldr r3, [r7, #4] - 800bf86: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800bf8a: 1c5a adds r2, r3, #1 - 800bf8c: 687b ldr r3, [r7, #4] - 800bf8e: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - checksum_ = data; /* first byte for calculating size checksum */ - 800bf92: 687b ldr r3, [r7, #4] - 800bf94: 68ba ldr r2, [r7, #8] - 800bf96: f8c3 2680 str.w r2, [r3, #1664] ; 0x680 - 800bf9a: e747 b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - else if (mode_ == MODE_SIZE_H) /* top half of message size */ - 800bf9c: 687b ldr r3, [r7, #4] - 800bf9e: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800bfa2: 2b03 cmp r3, #3 - 800bfa4: d110 bne.n 800bfc8 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x1e8> - bytes_ += data << 8; - 800bfa6: 687b ldr r3, [r7, #4] - 800bfa8: f8d3 2674 ldr.w r2, [r3, #1652] ; 0x674 - 800bfac: 68bb ldr r3, [r7, #8] - 800bfae: 021b lsls r3, r3, #8 - 800bfb0: 441a add r2, r3 - 800bfb2: 687b ldr r3, [r7, #4] - 800bfb4: f8c3 2674 str.w r2, [r3, #1652] ; 0x674 - mode_++; - 800bfb8: 687b ldr r3, [r7, #4] - 800bfba: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800bfbe: 1c5a adds r2, r3, #1 - 800bfc0: 687b ldr r3, [r7, #4] - 800bfc2: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - 800bfc6: e731 b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - else if (mode_ == MODE_SIZE_CHECKSUM) - 800bfc8: 687b ldr r3, [r7, #4] - 800bfca: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800bfce: 2b04 cmp r3, #4 - 800bfd0: d116 bne.n 800c000 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x220> - if ((checksum_ % 256) == 255) - 800bfd2: 687b ldr r3, [r7, #4] - 800bfd4: f8d3 3680 ldr.w r3, [r3, #1664] ; 0x680 - 800bfd8: 425a negs r2, r3 - 800bfda: b2db uxtb r3, r3 - 800bfdc: b2d2 uxtb r2, r2 - 800bfde: bf58 it pl - 800bfe0: 4253 negpl r3, r2 - 800bfe2: 2bff cmp r3, #255 ; 0xff - 800bfe4: d107 bne.n 800bff6 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x216> - mode_++; - 800bfe6: 687b ldr r3, [r7, #4] - 800bfe8: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800bfec: 1c5a adds r2, r3, #1 - 800bfee: 687b ldr r3, [r7, #4] - 800bff0: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - 800bff4: e71a b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - mode_ = MODE_FIRST_FF; /* Abandon the frame if the msg len is wrong */ - 800bff6: 687b ldr r3, [r7, #4] - 800bff8: 2200 movs r2, #0 - 800bffa: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - 800bffe: e715 b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - else if (mode_ == MODE_TOPIC_L) /* bottom half of topic id */ - 800c000: 687b ldr r3, [r7, #4] - 800c002: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800c006: 2b05 cmp r3, #5 - 800c008: d10f bne.n 800c02a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x24a> - topic_ = data; - 800c00a: 687b ldr r3, [r7, #4] - 800c00c: 68ba ldr r2, [r7, #8] - 800c00e: f8c3 2678 str.w r2, [r3, #1656] ; 0x678 - mode_++; - 800c012: 687b ldr r3, [r7, #4] - 800c014: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800c018: 1c5a adds r2, r3, #1 - 800c01a: 687b ldr r3, [r7, #4] - 800c01c: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - checksum_ = data; /* first byte included in checksum */ - 800c020: 687b ldr r3, [r7, #4] - 800c022: 68ba ldr r2, [r7, #8] - 800c024: f8c3 2680 str.w r2, [r3, #1664] ; 0x680 - 800c028: e700 b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - else if (mode_ == MODE_TOPIC_H) /* top half of topic id */ - 800c02a: 687b ldr r3, [r7, #4] - 800c02c: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800c030: 2b06 cmp r3, #6 - 800c032: d117 bne.n 800c064 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x284> - topic_ += data << 8; - 800c034: 687b ldr r3, [r7, #4] - 800c036: f8d3 2678 ldr.w r2, [r3, #1656] ; 0x678 - 800c03a: 68bb ldr r3, [r7, #8] - 800c03c: 021b lsls r3, r3, #8 - 800c03e: 441a add r2, r3 - 800c040: 687b ldr r3, [r7, #4] - 800c042: f8c3 2678 str.w r2, [r3, #1656] ; 0x678 - mode_ = MODE_MESSAGE; - 800c046: 687b ldr r3, [r7, #4] - 800c048: 2207 movs r2, #7 - 800c04a: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - if (bytes_ == 0) - 800c04e: 687b ldr r3, [r7, #4] - 800c050: f8d3 3674 ldr.w r3, [r3, #1652] ; 0x674 - 800c054: 2b00 cmp r3, #0 - 800c056: f47f aee9 bne.w 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - mode_ = MODE_MSG_CHECKSUM; - 800c05a: 687b ldr r3, [r7, #4] - 800c05c: 2208 movs r2, #8 - 800c05e: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - 800c062: e6e3 b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - else if (mode_ == MODE_MSG_CHECKSUM) /* do checksum */ - 800c064: 687b ldr r3, [r7, #4] - 800c066: f8d3 3670 ldr.w r3, [r3, #1648] ; 0x670 - 800c06a: 2b08 cmp r3, #8 - 800c06c: f47f aede bne.w 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - mode_ = MODE_FIRST_FF; - 800c070: 687b ldr r3, [r7, #4] - 800c072: 2200 movs r2, #0 - 800c074: f8c3 2670 str.w r2, [r3, #1648] ; 0x670 - if ((checksum_ % 256) == 255) - 800c078: 687b ldr r3, [r7, #4] - 800c07a: f8d3 3680 ldr.w r3, [r3, #1664] ; 0x680 - 800c07e: 425a negs r2, r3 - 800c080: b2db uxtb r3, r3 - 800c082: b2d2 uxtb r2, r2 - 800c084: bf58 it pl - 800c086: 4253 negpl r3, r2 - 800c088: 2bff cmp r3, #255 ; 0xff - 800c08a: f47f aecf bne.w 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - if (topic_ == TopicInfo::ID_PUBLISHER) - 800c08e: 687b ldr r3, [r7, #4] - 800c090: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 800c094: 2b00 cmp r3, #0 - 800c096: d110 bne.n 800c0ba <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x2da> - requestSyncTime(); - 800c098: 6878 ldr r0, [r7, #4] - 800c09a: f000 f898 bl 800c1ce <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv> - negotiateTopics(); - 800c09e: 6878 ldr r0, [r7, #4] - 800c0a0: f000 f8b3 bl 800c20a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv> - last_sync_time = c_time; - 800c0a4: 687b ldr r3, [r7, #4] - 800c0a6: 68fa ldr r2, [r7, #12] - 800c0a8: f8c3 2688 str.w r2, [r3, #1672] ; 0x688 - last_sync_receive_time = c_time; - 800c0ac: 687b ldr r3, [r7, #4] - 800c0ae: 68fa ldr r2, [r7, #12] - 800c0b0: f8c3 268c str.w r2, [r3, #1676] ; 0x68c - return SPIN_ERR; - 800c0b4: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 800c0b8: e06a b.n 800c190 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3b0> - else if (topic_ == TopicInfo::ID_TIME) - 800c0ba: 687b ldr r3, [r7, #4] - 800c0bc: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 800c0c0: 2b0a cmp r3, #10 - 800c0c2: d107 bne.n 800c0d4 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x2f4> - syncTime(message_in); - 800c0c4: 687b ldr r3, [r7, #4] - 800c0c6: f503 73d4 add.w r3, r3, #424 ; 0x1a8 - 800c0ca: 4619 mov r1, r3 - 800c0cc: 6878 ldr r0, [r7, #4] - 800c0ce: f000 f97d bl 800c3cc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh> - 800c0d2: e6ab b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - else if (topic_ == TopicInfo::ID_PARAMETER_REQUEST) - 800c0d4: 687b ldr r3, [r7, #4] - 800c0d6: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 800c0da: 2b06 cmp r3, #6 - 800c0dc: d10e bne.n 800c0fc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x31c> - req_param_resp.deserialize(message_in); - 800c0de: 687b ldr r3, [r7, #4] - 800c0e0: f503 62d3 add.w r2, r3, #1688 ; 0x698 - 800c0e4: 687b ldr r3, [r7, #4] - 800c0e6: f503 73d4 add.w r3, r3, #424 ; 0x1a8 - 800c0ea: 4619 mov r1, r3 - 800c0ec: 4610 mov r0, r2 - 800c0ee: f7ff f896 bl 800b21e <_ZN14rosserial_msgs20RequestParamResponse11deserializeEPh> - param_recieved = true; - 800c0f2: 687b ldr r3, [r7, #4] - 800c0f4: 2201 movs r2, #1 - 800c0f6: f883 2694 strb.w r2, [r3, #1684] ; 0x694 - 800c0fa: e697 b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - else if (topic_ == TopicInfo::ID_TX_STOP) - 800c0fc: 687b ldr r3, [r7, #4] - 800c0fe: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 800c102: 2b0b cmp r3, #11 - 800c104: d104 bne.n 800c110 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x330> - configured_ = false; - 800c106: 687b ldr r3, [r7, #4] - 800c108: 2200 movs r2, #0 - 800c10a: f883 2684 strb.w r2, [r3, #1668] ; 0x684 - 800c10e: e68d b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - if (subscribers[topic_ - 100]) - 800c110: 687b ldr r3, [r7, #4] - 800c112: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 800c116: 3b64 subs r3, #100 ; 0x64 - 800c118: 687a ldr r2, [r7, #4] - 800c11a: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800c11e: 009b lsls r3, r3, #2 - 800c120: 4413 add r3, r2 - 800c122: 685b ldr r3, [r3, #4] - 800c124: 2b00 cmp r3, #0 - 800c126: f43f ae81 beq.w 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - subscribers[topic_ - 100]->callback(message_in); - 800c12a: 687b ldr r3, [r7, #4] - 800c12c: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 800c130: 3b64 subs r3, #100 ; 0x64 - 800c132: 687a ldr r2, [r7, #4] - 800c134: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800c138: 009b lsls r3, r3, #2 - 800c13a: 4413 add r3, r2 - 800c13c: 6858 ldr r0, [r3, #4] - 800c13e: 687b ldr r3, [r7, #4] - 800c140: f8d3 3678 ldr.w r3, [r3, #1656] ; 0x678 - 800c144: 3b64 subs r3, #100 ; 0x64 - 800c146: 687a ldr r2, [r7, #4] - 800c148: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800c14c: 009b lsls r3, r3, #2 - 800c14e: 4413 add r3, r2 - 800c150: 685b ldr r3, [r3, #4] - 800c152: 681b ldr r3, [r3, #0] - 800c154: 681b ldr r3, [r3, #0] - 800c156: 687a ldr r2, [r7, #4] - 800c158: f502 72d4 add.w r2, r2, #424 ; 0x1a8 - 800c15c: 4611 mov r1, r2 - 800c15e: 4798 blx r3 - while (true) - 800c160: e664 b.n 800be2c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x4c> - break; - 800c162: bf00 nop - if (configured_ && ((c_time - last_sync_time) > (SYNC_SECONDS * 500))) - 800c164: 687b ldr r3, [r7, #4] - 800c166: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 - 800c16a: 2b00 cmp r3, #0 - 800c16c: d00f beq.n 800c18e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3ae> - 800c16e: 687b ldr r3, [r7, #4] - 800c170: f8d3 3688 ldr.w r3, [r3, #1672] ; 0x688 - 800c174: 68fa ldr r2, [r7, #12] - 800c176: 1ad3 subs r3, r2, r3 - 800c178: f640 12c4 movw r2, #2500 ; 0x9c4 - 800c17c: 4293 cmp r3, r2 - 800c17e: d906 bls.n 800c18e <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8spinOnceEv+0x3ae> - requestSyncTime(); - 800c180: 6878 ldr r0, [r7, #4] - 800c182: f000 f824 bl 800c1ce <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv> - last_sync_time = c_time; - 800c186: 687b ldr r3, [r7, #4] - 800c188: 68fa ldr r2, [r7, #12] - 800c18a: f8c3 2688 str.w r2, [r3, #1672] ; 0x688 - return SPIN_OK; - 800c18e: 2300 movs r3, #0 - } - 800c190: 4618 mov r0, r3 - 800c192: 3710 adds r7, #16 - 800c194: 46bd mov sp, r7 - 800c196: bd80 pop {r7, pc} - -0800c198 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE9connectedEv>: - virtual bool connected() - 800c198: b480 push {r7} - 800c19a: b083 sub sp, #12 - 800c19c: af00 add r7, sp, #0 - 800c19e: 6078 str r0, [r7, #4] - return configured_; - 800c1a0: 687b ldr r3, [r7, #4] - 800c1a2: f893 3684 ldrb.w r3, [r3, #1668] ; 0x684 - }; - 800c1a6: 4618 mov r0, r3 - 800c1a8: 370c adds r7, #12 - 800c1aa: 46bd mov sp, r7 - 800c1ac: f85d 7b04 ldr.w r7, [sp], #4 - 800c1b0: 4770 bx lr - -0800c1b2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8logerrorEPKc>: - } - void logwarn(const char *msg) - { - log(rosserial_msgs::Log::WARN, msg); - } - void logerror(const char*msg) - 800c1b2: b580 push {r7, lr} - 800c1b4: b082 sub sp, #8 - 800c1b6: af00 add r7, sp, #0 - 800c1b8: 6078 str r0, [r7, #4] - 800c1ba: 6039 str r1, [r7, #0] - { - log(rosserial_msgs::Log::ERROR, msg); - 800c1bc: 683a ldr r2, [r7, #0] - 800c1be: 2103 movs r1, #3 - 800c1c0: 6878 ldr r0, [r7, #4] - 800c1c2: f000 f94f bl 800c464 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE3logEcPKc> - } - 800c1c6: bf00 nop - 800c1c8: 3708 adds r7, #8 - 800c1ca: 46bd mov sp, r7 - 800c1cc: bd80 pop {r7, pc} - -0800c1ce <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15requestSyncTimeEv>: - void requestSyncTime() - 800c1ce: b580 push {r7, lr} - 800c1d0: b086 sub sp, #24 - 800c1d2: af00 add r7, sp, #0 - 800c1d4: 6078 str r0, [r7, #4] - std_msgs::Time t; - 800c1d6: f107 030c add.w r3, r7, #12 - 800c1da: 4618 mov r0, r3 - 800c1dc: f7fe fb86 bl 800a8ec <_ZN8std_msgs4TimeC1Ev> - publish(TopicInfo::ID_TIME, &t); - 800c1e0: 687b ldr r3, [r7, #4] - 800c1e2: 681b ldr r3, [r3, #0] - 800c1e4: 681b ldr r3, [r3, #0] - 800c1e6: f107 020c add.w r2, r7, #12 - 800c1ea: 210a movs r1, #10 - 800c1ec: 6878 ldr r0, [r7, #4] - 800c1ee: 4798 blx r3 - rt_time = hardware_.time(); - 800c1f0: 687b ldr r3, [r7, #4] - 800c1f2: 3304 adds r3, #4 - 800c1f4: 4618 mov r0, r3 - 800c1f6: f7ff fae4 bl 800b7c2 <_ZN13STM32Hardware4timeEv> - 800c1fa: 4602 mov r2, r0 - 800c1fc: 687b ldr r3, [r7, #4] - 800c1fe: f8c3 2198 str.w r2, [r3, #408] ; 0x198 - } - 800c202: bf00 nop - 800c204: 3718 adds r7, #24 - 800c206: 46bd mov sp, r7 - 800c208: bd80 pop {r7, pc} - -0800c20a <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv>: - void negotiateTopics() - 800c20a: b590 push {r4, r7, lr} - 800c20c: b08b sub sp, #44 ; 0x2c - 800c20e: af00 add r7, sp, #0 - 800c210: 6078 str r0, [r7, #4] - rosserial_msgs::TopicInfo ti; - 800c212: f107 030c add.w r3, r7, #12 - 800c216: 4618 mov r0, r3 - 800c218: f7fe fc58 bl 800aacc <_ZN14rosserial_msgs9TopicInfoC1Ev> - for (i = 0; i < MAX_PUBLISHERS; i++) - 800c21c: 2300 movs r3, #0 - 800c21e: 627b str r3, [r7, #36] ; 0x24 - 800c220: 6a7b ldr r3, [r7, #36] ; 0x24 - 800c222: 2b18 cmp r3, #24 - 800c224: dc5b bgt.n 800c2de <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0xd4> - if (publishers[i] != 0) // non-empty slot - 800c226: 687b ldr r3, [r7, #4] - 800c228: 6a7a ldr r2, [r7, #36] ; 0x24 - 800c22a: f502 72b5 add.w r2, r2, #362 ; 0x16a - 800c22e: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 800c232: 2b00 cmp r3, #0 - 800c234: d04f beq.n 800c2d6 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0xcc> - ti.topic_id = publishers[i]->id_; - 800c236: 687b ldr r3, [r7, #4] - 800c238: 6a7a ldr r2, [r7, #36] ; 0x24 - 800c23a: f502 72b5 add.w r2, r2, #362 ; 0x16a - 800c23e: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 800c242: 689b ldr r3, [r3, #8] - 800c244: b29b uxth r3, r3 - 800c246: 823b strh r3, [r7, #16] - ti.topic_name = (char *) publishers[i]->topic_; - 800c248: 687b ldr r3, [r7, #4] - 800c24a: 6a7a ldr r2, [r7, #36] ; 0x24 - 800c24c: f502 72b5 add.w r2, r2, #362 ; 0x16a - 800c250: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 800c254: 681b ldr r3, [r3, #0] - 800c256: 617b str r3, [r7, #20] - ti.message_type = (char *) publishers[i]->msg_->getType(); - 800c258: 687b ldr r3, [r7, #4] - 800c25a: 6a7a ldr r2, [r7, #36] ; 0x24 - 800c25c: f502 72b5 add.w r2, r2, #362 ; 0x16a - 800c260: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 800c264: 6859 ldr r1, [r3, #4] - 800c266: 687b ldr r3, [r7, #4] - 800c268: 6a7a ldr r2, [r7, #36] ; 0x24 - 800c26a: f502 72b5 add.w r2, r2, #362 ; 0x16a - 800c26e: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 800c272: 685b ldr r3, [r3, #4] - 800c274: 681b ldr r3, [r3, #0] - 800c276: 3308 adds r3, #8 - 800c278: 681b ldr r3, [r3, #0] - 800c27a: 4608 mov r0, r1 - 800c27c: 4798 blx r3 - 800c27e: 4603 mov r3, r0 - 800c280: 61bb str r3, [r7, #24] - ti.md5sum = (char *) publishers[i]->msg_->getMD5(); - 800c282: 687b ldr r3, [r7, #4] - 800c284: 6a7a ldr r2, [r7, #36] ; 0x24 - 800c286: f502 72b5 add.w r2, r2, #362 ; 0x16a - 800c28a: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 800c28e: 6859 ldr r1, [r3, #4] - 800c290: 687b ldr r3, [r7, #4] - 800c292: 6a7a ldr r2, [r7, #36] ; 0x24 - 800c294: f502 72b5 add.w r2, r2, #362 ; 0x16a - 800c298: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 800c29c: 685b ldr r3, [r3, #4] - 800c29e: 681b ldr r3, [r3, #0] - 800c2a0: 330c adds r3, #12 - 800c2a2: 681b ldr r3, [r3, #0] - 800c2a4: 4608 mov r0, r1 - 800c2a6: 4798 blx r3 - 800c2a8: 4603 mov r3, r0 - 800c2aa: 61fb str r3, [r7, #28] - ti.buffer_size = OUTPUT_SIZE; - 800c2ac: f44f 7300 mov.w r3, #512 ; 0x200 - 800c2b0: 623b str r3, [r7, #32] - publish(publishers[i]->getEndpointType(), &ti); - 800c2b2: 687b ldr r3, [r7, #4] - 800c2b4: 681b ldr r3, [r3, #0] - 800c2b6: 681c ldr r4, [r3, #0] - 800c2b8: 687b ldr r3, [r7, #4] - 800c2ba: 6a7a ldr r2, [r7, #36] ; 0x24 - 800c2bc: f502 72b5 add.w r2, r2, #362 ; 0x16a - 800c2c0: f853 3022 ldr.w r3, [r3, r2, lsl #2] - 800c2c4: 4618 mov r0, r3 - 800c2c6: f7ff f94e bl 800b566 <_ZN3ros9Publisher15getEndpointTypeEv> - 800c2ca: 4601 mov r1, r0 - 800c2cc: f107 030c add.w r3, r7, #12 - 800c2d0: 461a mov r2, r3 - 800c2d2: 6878 ldr r0, [r7, #4] - 800c2d4: 47a0 blx r4 - for (i = 0; i < MAX_PUBLISHERS; i++) - 800c2d6: 6a7b ldr r3, [r7, #36] ; 0x24 - 800c2d8: 3301 adds r3, #1 - 800c2da: 627b str r3, [r7, #36] ; 0x24 - 800c2dc: e7a0 b.n 800c220 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0x16> - for (i = 0; i < MAX_SUBSCRIBERS; i++) - 800c2de: 2300 movs r3, #0 - 800c2e0: 627b str r3, [r7, #36] ; 0x24 - 800c2e2: 6a7b ldr r3, [r7, #36] ; 0x24 - 800c2e4: 2b18 cmp r3, #24 - 800c2e6: dc68 bgt.n 800c3ba <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0x1b0> - if (subscribers[i] != 0) // non-empty slot - 800c2e8: 687a ldr r2, [r7, #4] - 800c2ea: 6a7b ldr r3, [r7, #36] ; 0x24 - 800c2ec: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800c2f0: 009b lsls r3, r3, #2 - 800c2f2: 4413 add r3, r2 - 800c2f4: 685b ldr r3, [r3, #4] - 800c2f6: 2b00 cmp r3, #0 - 800c2f8: d05b beq.n 800c3b2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0x1a8> - ti.topic_id = subscribers[i]->id_; - 800c2fa: 687a ldr r2, [r7, #4] - 800c2fc: 6a7b ldr r3, [r7, #36] ; 0x24 - 800c2fe: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800c302: 009b lsls r3, r3, #2 - 800c304: 4413 add r3, r2 - 800c306: 685b ldr r3, [r3, #4] - 800c308: 685b ldr r3, [r3, #4] - 800c30a: b29b uxth r3, r3 - 800c30c: 823b strh r3, [r7, #16] - ti.topic_name = (char *) subscribers[i]->topic_; - 800c30e: 687a ldr r2, [r7, #4] - 800c310: 6a7b ldr r3, [r7, #36] ; 0x24 - 800c312: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800c316: 009b lsls r3, r3, #2 - 800c318: 4413 add r3, r2 - 800c31a: 685b ldr r3, [r3, #4] - 800c31c: 689b ldr r3, [r3, #8] - 800c31e: 617b str r3, [r7, #20] - ti.message_type = (char *) subscribers[i]->getMsgType(); - 800c320: 687a ldr r2, [r7, #4] - 800c322: 6a7b ldr r3, [r7, #36] ; 0x24 - 800c324: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800c328: 009b lsls r3, r3, #2 - 800c32a: 4413 add r3, r2 - 800c32c: 6859 ldr r1, [r3, #4] - 800c32e: 687a ldr r2, [r7, #4] - 800c330: 6a7b ldr r3, [r7, #36] ; 0x24 - 800c332: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800c336: 009b lsls r3, r3, #2 - 800c338: 4413 add r3, r2 - 800c33a: 685b ldr r3, [r3, #4] - 800c33c: 681b ldr r3, [r3, #0] - 800c33e: 3308 adds r3, #8 - 800c340: 681b ldr r3, [r3, #0] - 800c342: 4608 mov r0, r1 - 800c344: 4798 blx r3 - 800c346: 4603 mov r3, r0 - 800c348: 61bb str r3, [r7, #24] - ti.md5sum = (char *) subscribers[i]->getMsgMD5(); - 800c34a: 687a ldr r2, [r7, #4] - 800c34c: 6a7b ldr r3, [r7, #36] ; 0x24 - 800c34e: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800c352: 009b lsls r3, r3, #2 - 800c354: 4413 add r3, r2 - 800c356: 6859 ldr r1, [r3, #4] - 800c358: 687a ldr r2, [r7, #4] - 800c35a: 6a7b ldr r3, [r7, #36] ; 0x24 - 800c35c: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800c360: 009b lsls r3, r3, #2 - 800c362: 4413 add r3, r2 - 800c364: 685b ldr r3, [r3, #4] - 800c366: 681b ldr r3, [r3, #0] - 800c368: 330c adds r3, #12 - 800c36a: 681b ldr r3, [r3, #0] - 800c36c: 4608 mov r0, r1 - 800c36e: 4798 blx r3 - 800c370: 4603 mov r3, r0 - 800c372: 61fb str r3, [r7, #28] - ti.buffer_size = INPUT_SIZE; - 800c374: f44f 7300 mov.w r3, #512 ; 0x200 - 800c378: 623b str r3, [r7, #32] - publish(subscribers[i]->getEndpointType(), &ti); - 800c37a: 687b ldr r3, [r7, #4] - 800c37c: 681b ldr r3, [r3, #0] - 800c37e: 681c ldr r4, [r3, #0] - 800c380: 687a ldr r2, [r7, #4] - 800c382: 6a7b ldr r3, [r7, #36] ; 0x24 - 800c384: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800c388: 009b lsls r3, r3, #2 - 800c38a: 4413 add r3, r2 - 800c38c: 6859 ldr r1, [r3, #4] - 800c38e: 687a ldr r2, [r7, #4] - 800c390: 6a7b ldr r3, [r7, #36] ; 0x24 - 800c392: f503 73c1 add.w r3, r3, #386 ; 0x182 - 800c396: 009b lsls r3, r3, #2 - 800c398: 4413 add r3, r2 - 800c39a: 685b ldr r3, [r3, #4] - 800c39c: 681b ldr r3, [r3, #0] - 800c39e: 3304 adds r3, #4 - 800c3a0: 681b ldr r3, [r3, #0] - 800c3a2: 4608 mov r0, r1 - 800c3a4: 4798 blx r3 - 800c3a6: 4601 mov r1, r0 - 800c3a8: f107 030c add.w r3, r7, #12 - 800c3ac: 461a mov r2, r3 - 800c3ae: 6878 ldr r0, [r7, #4] - 800c3b0: 47a0 blx r4 - for (i = 0; i < MAX_SUBSCRIBERS; i++) - 800c3b2: 6a7b ldr r3, [r7, #36] ; 0x24 - 800c3b4: 3301 adds r3, #1 - 800c3b6: 627b str r3, [r7, #36] ; 0x24 - 800c3b8: e793 b.n 800c2e2 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE15negotiateTopicsEv+0xd8> - configured_ = true; - 800c3ba: 687b ldr r3, [r7, #4] - 800c3bc: 2201 movs r2, #1 - 800c3be: f883 2684 strb.w r2, [r3, #1668] ; 0x684 - } - 800c3c2: bf00 nop - 800c3c4: 372c adds r7, #44 ; 0x2c - 800c3c6: 46bd mov sp, r7 - 800c3c8: bd90 pop {r4, r7, pc} - ... - -0800c3cc <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh>: - void syncTime(uint8_t * data) - 800c3cc: b580 push {r7, lr} - 800c3ce: b086 sub sp, #24 - 800c3d0: af00 add r7, sp, #0 - 800c3d2: 6078 str r0, [r7, #4] - 800c3d4: 6039 str r1, [r7, #0] - std_msgs::Time t; - 800c3d6: f107 0308 add.w r3, r7, #8 - 800c3da: 4618 mov r0, r3 - 800c3dc: f7fe fa86 bl 800a8ec <_ZN8std_msgs4TimeC1Ev> - uint32_t offset = hardware_.time() - rt_time; - 800c3e0: 687b ldr r3, [r7, #4] - 800c3e2: 3304 adds r3, #4 - 800c3e4: 4618 mov r0, r3 - 800c3e6: f7ff f9ec bl 800b7c2 <_ZN13STM32Hardware4timeEv> - 800c3ea: 4602 mov r2, r0 - 800c3ec: 687b ldr r3, [r7, #4] - 800c3ee: f8d3 3198 ldr.w r3, [r3, #408] ; 0x198 - 800c3f2: 1ad3 subs r3, r2, r3 - 800c3f4: 617b str r3, [r7, #20] - t.deserialize(data); - 800c3f6: f107 0308 add.w r3, r7, #8 - 800c3fa: 6839 ldr r1, [r7, #0] - 800c3fc: 4618 mov r0, r3 - 800c3fe: f7fe fae5 bl 800a9cc <_ZN8std_msgs4Time11deserializeEPh> - t.data.sec += offset / 1000; - 800c402: 68fa ldr r2, [r7, #12] - 800c404: 697b ldr r3, [r7, #20] - 800c406: 4915 ldr r1, [pc, #84] ; (800c45c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh+0x90>) - 800c408: fba1 1303 umull r1, r3, r1, r3 - 800c40c: 099b lsrs r3, r3, #6 - 800c40e: 4413 add r3, r2 - 800c410: 60fb str r3, [r7, #12] - t.data.nsec += (offset % 1000) * 1000000UL; - 800c412: 6939 ldr r1, [r7, #16] - 800c414: 697a ldr r2, [r7, #20] - 800c416: 4b11 ldr r3, [pc, #68] ; (800c45c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh+0x90>) - 800c418: fba3 0302 umull r0, r3, r3, r2 - 800c41c: 099b lsrs r3, r3, #6 - 800c41e: f44f 707a mov.w r0, #1000 ; 0x3e8 - 800c422: fb00 f303 mul.w r3, r0, r3 - 800c426: 1ad3 subs r3, r2, r3 - 800c428: 4a0d ldr r2, [pc, #52] ; (800c460 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE8syncTimeEPh+0x94>) - 800c42a: fb02 f303 mul.w r3, r2, r3 - 800c42e: 440b add r3, r1 - 800c430: 613b str r3, [r7, #16] - this->setNow(t.data); - 800c432: f107 0308 add.w r3, r7, #8 - 800c436: 3304 adds r3, #4 - 800c438: 4619 mov r1, r3 - 800c43a: 6878 ldr r0, [r7, #4] - 800c43c: f000 f82e bl 800c49c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE> - last_sync_receive_time = hardware_.time(); - 800c440: 687b ldr r3, [r7, #4] - 800c442: 3304 adds r3, #4 - 800c444: 4618 mov r0, r3 - 800c446: f7ff f9bc bl 800b7c2 <_ZN13STM32Hardware4timeEv> - 800c44a: 4602 mov r2, r0 - 800c44c: 687b ldr r3, [r7, #4] - 800c44e: f8c3 268c str.w r2, [r3, #1676] ; 0x68c - } - 800c452: bf00 nop - 800c454: 3718 adds r7, #24 - 800c456: 46bd mov sp, r7 - 800c458: bd80 pop {r7, pc} - 800c45a: bf00 nop - 800c45c: 10624dd3 .word 0x10624dd3 - 800c460: 000f4240 .word 0x000f4240 - -0800c464 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE3logEcPKc>: - void log(char byte, const char * msg) - 800c464: b580 push {r7, lr} - 800c466: b088 sub sp, #32 - 800c468: af00 add r7, sp, #0 - 800c46a: 60f8 str r0, [r7, #12] - 800c46c: 460b mov r3, r1 - 800c46e: 607a str r2, [r7, #4] - 800c470: 72fb strb r3, [r7, #11] - rosserial_msgs::Log l; - 800c472: f107 0314 add.w r3, r7, #20 - 800c476: 4618 mov r0, r3 - 800c478: f7fe fcec bl 800ae54 <_ZN14rosserial_msgs3LogC1Ev> - l.level = byte; - 800c47c: 7afb ldrb r3, [r7, #11] - 800c47e: 763b strb r3, [r7, #24] - l.msg = (char*)msg; - 800c480: 687b ldr r3, [r7, #4] - 800c482: 61fb str r3, [r7, #28] - publish(rosserial_msgs::TopicInfo::ID_LOG, &l); - 800c484: 68fb ldr r3, [r7, #12] - 800c486: 681b ldr r3, [r3, #0] - 800c488: 681b ldr r3, [r3, #0] - 800c48a: f107 0214 add.w r2, r7, #20 - 800c48e: 2107 movs r1, #7 - 800c490: 68f8 ldr r0, [r7, #12] - 800c492: 4798 blx r3 - } - 800c494: bf00 nop - 800c496: 3720 adds r7, #32 - 800c498: 46bd mov sp, r7 - 800c49a: bd80 pop {r7, pc} - -0800c49c <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE>: - void setNow(Time & new_now) - 800c49c: b580 push {r7, lr} - 800c49e: b084 sub sp, #16 - 800c4a0: af00 add r7, sp, #0 - 800c4a2: 6078 str r0, [r7, #4] - 800c4a4: 6039 str r1, [r7, #0] - uint32_t ms = hardware_.time(); - 800c4a6: 687b ldr r3, [r7, #4] - 800c4a8: 3304 adds r3, #4 - 800c4aa: 4618 mov r0, r3 - 800c4ac: f7ff f989 bl 800b7c2 <_ZN13STM32Hardware4timeEv> - 800c4b0: 60f8 str r0, [r7, #12] - sec_offset = new_now.sec - ms / 1000 - 1; - 800c4b2: 683b ldr r3, [r7, #0] - 800c4b4: 681a ldr r2, [r3, #0] - 800c4b6: 68fb ldr r3, [r7, #12] - 800c4b8: 4915 ldr r1, [pc, #84] ; (800c510 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x74>) - 800c4ba: fba1 1303 umull r1, r3, r1, r3 - 800c4be: 099b lsrs r3, r3, #6 - 800c4c0: 1ad3 subs r3, r2, r3 - 800c4c2: 1e5a subs r2, r3, #1 - 800c4c4: 687b ldr r3, [r7, #4] - 800c4c6: f8c3 219c str.w r2, [r3, #412] ; 0x19c - nsec_offset = new_now.nsec - (ms % 1000) * 1000000UL + 1000000000UL; - 800c4ca: 683b ldr r3, [r7, #0] - 800c4cc: 6859 ldr r1, [r3, #4] - 800c4ce: 68fa ldr r2, [r7, #12] - 800c4d0: 4b0f ldr r3, [pc, #60] ; (800c510 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x74>) - 800c4d2: fba3 0302 umull r0, r3, r3, r2 - 800c4d6: 099b lsrs r3, r3, #6 - 800c4d8: f44f 707a mov.w r0, #1000 ; 0x3e8 - 800c4dc: fb00 f303 mul.w r3, r0, r3 - 800c4e0: 1ad3 subs r3, r2, r3 - 800c4e2: 4a0c ldr r2, [pc, #48] ; (800c514 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x78>) - 800c4e4: fb02 f303 mul.w r3, r2, r3 - 800c4e8: 1aca subs r2, r1, r3 - 800c4ea: 4b0b ldr r3, [pc, #44] ; (800c518 <_ZN3ros11NodeHandle_I13STM32HardwareLi25ELi25ELi512ELi512EE6setNowERNS_4TimeE+0x7c>) - 800c4ec: 4413 add r3, r2 - 800c4ee: 687a ldr r2, [r7, #4] - 800c4f0: f8c2 31a0 str.w r3, [r2, #416] ; 0x1a0 - normalizeSecNSec(sec_offset, nsec_offset); - 800c4f4: 687b ldr r3, [r7, #4] - 800c4f6: f503 72ce add.w r2, r3, #412 ; 0x19c - 800c4fa: 687b ldr r3, [r7, #4] - 800c4fc: f503 73d0 add.w r3, r3, #416 ; 0x1a0 - 800c500: 4619 mov r1, r3 - 800c502: 4610 mov r0, r2 - 800c504: f000 f80a bl 800c51c <_ZN3ros16normalizeSecNSecERmS0_> - } - 800c508: bf00 nop - 800c50a: 3710 adds r7, #16 - 800c50c: 46bd mov sp, r7 - 800c50e: bd80 pop {r7, pc} - 800c510: 10624dd3 .word 0x10624dd3 - 800c514: 000f4240 .word 0x000f4240 - 800c518: 3b9aca00 .word 0x3b9aca00 - -0800c51c <_ZN3ros16normalizeSecNSecERmS0_>: -#include "ros/ros_time.h" - -namespace ros -{ -void normalizeSecNSec(uint32_t& sec, uint32_t& nsec) -{ - 800c51c: b480 push {r7} - 800c51e: b085 sub sp, #20 - 800c520: af00 add r7, sp, #0 - 800c522: 6078 str r0, [r7, #4] - 800c524: 6039 str r1, [r7, #0] - uint32_t nsec_part = nsec % 1000000000UL; - 800c526: 683b ldr r3, [r7, #0] - 800c528: 681b ldr r3, [r3, #0] - 800c52a: 0a5a lsrs r2, r3, #9 - 800c52c: 490f ldr r1, [pc, #60] ; (800c56c <_ZN3ros16normalizeSecNSecERmS0_+0x50>) - 800c52e: fba1 1202 umull r1, r2, r1, r2 - 800c532: 09d2 lsrs r2, r2, #7 - 800c534: 490e ldr r1, [pc, #56] ; (800c570 <_ZN3ros16normalizeSecNSecERmS0_+0x54>) - 800c536: fb01 f202 mul.w r2, r1, r2 - 800c53a: 1a9b subs r3, r3, r2 - 800c53c: 60fb str r3, [r7, #12] - uint32_t sec_part = nsec / 1000000000UL; - 800c53e: 683b ldr r3, [r7, #0] - 800c540: 681b ldr r3, [r3, #0] - 800c542: 0a5b lsrs r3, r3, #9 - 800c544: 4a09 ldr r2, [pc, #36] ; (800c56c <_ZN3ros16normalizeSecNSecERmS0_+0x50>) - 800c546: fba2 2303 umull r2, r3, r2, r3 - 800c54a: 09db lsrs r3, r3, #7 - 800c54c: 60bb str r3, [r7, #8] - sec += sec_part; - 800c54e: 687b ldr r3, [r7, #4] - 800c550: 681a ldr r2, [r3, #0] - 800c552: 68bb ldr r3, [r7, #8] - 800c554: 441a add r2, r3 - 800c556: 687b ldr r3, [r7, #4] - 800c558: 601a str r2, [r3, #0] - nsec = nsec_part; - 800c55a: 683b ldr r3, [r7, #0] - 800c55c: 68fa ldr r2, [r7, #12] - 800c55e: 601a str r2, [r3, #0] -} - 800c560: bf00 nop - 800c562: 3714 adds r7, #20 - 800c564: 46bd mov sp, r7 - 800c566: f85d 7b04 ldr.w r7, [sp], #4 - 800c56a: 4770 bx lr - 800c56c: 00044b83 .word 0x00044b83 - 800c570: 3b9aca00 .word 0x3b9aca00 - -0800c574 : -/* USER CODE END 0 */ -/** - * Initializes the Global MSP. - */ -void HAL_MspInit(void) -{ - 800c574: b480 push {r7} - 800c576: b083 sub sp, #12 - 800c578: af00 add r7, sp, #0 - /* USER CODE BEGIN MspInit 0 */ - - /* USER CODE END MspInit 0 */ - - __HAL_RCC_PWR_CLK_ENABLE(); - 800c57a: 4b0f ldr r3, [pc, #60] ; (800c5b8 ) - 800c57c: 6c1b ldr r3, [r3, #64] ; 0x40 - 800c57e: 4a0e ldr r2, [pc, #56] ; (800c5b8 ) - 800c580: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000 - 800c584: 6413 str r3, [r2, #64] ; 0x40 - 800c586: 4b0c ldr r3, [pc, #48] ; (800c5b8 ) - 800c588: 6c1b ldr r3, [r3, #64] ; 0x40 - 800c58a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000 - 800c58e: 607b str r3, [r7, #4] - 800c590: 687b ldr r3, [r7, #4] - __HAL_RCC_SYSCFG_CLK_ENABLE(); - 800c592: 4b09 ldr r3, [pc, #36] ; (800c5b8 ) - 800c594: 6c5b ldr r3, [r3, #68] ; 0x44 - 800c596: 4a08 ldr r2, [pc, #32] ; (800c5b8 ) - 800c598: f443 4380 orr.w r3, r3, #16384 ; 0x4000 - 800c59c: 6453 str r3, [r2, #68] ; 0x44 - 800c59e: 4b06 ldr r3, [pc, #24] ; (800c5b8 ) - 800c5a0: 6c5b ldr r3, [r3, #68] ; 0x44 - 800c5a2: f403 4380 and.w r3, r3, #16384 ; 0x4000 - 800c5a6: 603b str r3, [r7, #0] - 800c5a8: 683b ldr r3, [r7, #0] - /* System interrupt init*/ - - /* USER CODE BEGIN MspInit 1 */ - - /* USER CODE END MspInit 1 */ -} - 800c5aa: bf00 nop - 800c5ac: 370c adds r7, #12 - 800c5ae: 46bd mov sp, r7 - 800c5b0: f85d 7b04 ldr.w r7, [sp], #4 - 800c5b4: 4770 bx lr - 800c5b6: bf00 nop - 800c5b8: 40023800 .word 0x40023800 - -0800c5bc : -* This function configures the hardware resources used in this example -* @param htim_onepulse: TIM_OnePulse handle pointer -* @retval None -*/ -void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef* htim_onepulse) -{ - 800c5bc: b480 push {r7} - 800c5be: b085 sub sp, #20 - 800c5c0: af00 add r7, sp, #0 - 800c5c2: 6078 str r0, [r7, #4] - if(htim_onepulse->Instance==TIM2) - 800c5c4: 687b ldr r3, [r7, #4] - 800c5c6: 681b ldr r3, [r3, #0] - 800c5c8: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000 - 800c5cc: d10b bne.n 800c5e6 - { - /* USER CODE BEGIN TIM2_MspInit 0 */ - - /* USER CODE END TIM2_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM2_CLK_ENABLE(); - 800c5ce: 4b09 ldr r3, [pc, #36] ; (800c5f4 ) - 800c5d0: 6c1b ldr r3, [r3, #64] ; 0x40 - 800c5d2: 4a08 ldr r2, [pc, #32] ; (800c5f4 ) - 800c5d4: f043 0301 orr.w r3, r3, #1 - 800c5d8: 6413 str r3, [r2, #64] ; 0x40 - 800c5da: 4b06 ldr r3, [pc, #24] ; (800c5f4 ) - 800c5dc: 6c1b ldr r3, [r3, #64] ; 0x40 - 800c5de: f003 0301 and.w r3, r3, #1 - 800c5e2: 60fb str r3, [r7, #12] - 800c5e4: 68fb ldr r3, [r7, #12] - /* USER CODE BEGIN TIM2_MspInit 1 */ - - /* USER CODE END TIM2_MspInit 1 */ - } - -} - 800c5e6: bf00 nop - 800c5e8: 3714 adds r7, #20 - 800c5ea: 46bd mov sp, r7 - 800c5ec: f85d 7b04 ldr.w r7, [sp], #4 - 800c5f0: 4770 bx lr - 800c5f2: bf00 nop - 800c5f4: 40023800 .word 0x40023800 - -0800c5f8 : -* This function configures the hardware resources used in this example -* @param huart: UART handle pointer -* @retval None -*/ -void HAL_UART_MspInit(UART_HandleTypeDef* huart) -{ - 800c5f8: b580 push {r7, lr} - 800c5fa: b08a sub sp, #40 ; 0x28 - 800c5fc: af00 add r7, sp, #0 - 800c5fe: 6078 str r0, [r7, #4] - GPIO_InitTypeDef GPIO_InitStruct = {0}; - 800c600: f107 0314 add.w r3, r7, #20 - 800c604: 2200 movs r2, #0 - 800c606: 601a str r2, [r3, #0] - 800c608: 605a str r2, [r3, #4] - 800c60a: 609a str r2, [r3, #8] - 800c60c: 60da str r2, [r3, #12] - 800c60e: 611a str r2, [r3, #16] - if(huart->Instance==USART3) - 800c610: 687b ldr r3, [r7, #4] - 800c612: 681b ldr r3, [r3, #0] - 800c614: 4a17 ldr r2, [pc, #92] ; (800c674 ) - 800c616: 4293 cmp r3, r2 - 800c618: d128 bne.n 800c66c - { - /* USER CODE BEGIN USART3_MspInit 0 */ - - /* USER CODE END USART3_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_USART3_CLK_ENABLE(); - 800c61a: 4b17 ldr r3, [pc, #92] ; (800c678 ) - 800c61c: 6c1b ldr r3, [r3, #64] ; 0x40 - 800c61e: 4a16 ldr r2, [pc, #88] ; (800c678 ) - 800c620: f443 2380 orr.w r3, r3, #262144 ; 0x40000 - 800c624: 6413 str r3, [r2, #64] ; 0x40 - 800c626: 4b14 ldr r3, [pc, #80] ; (800c678 ) - 800c628: 6c1b ldr r3, [r3, #64] ; 0x40 - 800c62a: f403 2380 and.w r3, r3, #262144 ; 0x40000 - 800c62e: 613b str r3, [r7, #16] - 800c630: 693b ldr r3, [r7, #16] - - __HAL_RCC_GPIOD_CLK_ENABLE(); - 800c632: 4b11 ldr r3, [pc, #68] ; (800c678 ) - 800c634: 6b1b ldr r3, [r3, #48] ; 0x30 - 800c636: 4a10 ldr r2, [pc, #64] ; (800c678 ) - 800c638: f043 0308 orr.w r3, r3, #8 - 800c63c: 6313 str r3, [r2, #48] ; 0x30 - 800c63e: 4b0e ldr r3, [pc, #56] ; (800c678 ) - 800c640: 6b1b ldr r3, [r3, #48] ; 0x30 - 800c642: f003 0308 and.w r3, r3, #8 - 800c646: 60fb str r3, [r7, #12] - 800c648: 68fb ldr r3, [r7, #12] - /**USART3 GPIO Configuration - PD8 ------> USART3_TX - PD9 ------> USART3_RX - */ - GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9; - 800c64a: f44f 7340 mov.w r3, #768 ; 0x300 - 800c64e: 617b str r3, [r7, #20] - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 800c650: 2302 movs r3, #2 - 800c652: 61bb str r3, [r7, #24] - GPIO_InitStruct.Pull = GPIO_NOPULL; - 800c654: 2300 movs r3, #0 - 800c656: 61fb str r3, [r7, #28] - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; - 800c658: 2303 movs r3, #3 - 800c65a: 623b str r3, [r7, #32] - GPIO_InitStruct.Alternate = GPIO_AF7_USART3; - 800c65c: 2307 movs r3, #7 - 800c65e: 627b str r3, [r7, #36] ; 0x24 - HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); - 800c660: f107 0314 add.w r3, r7, #20 - 800c664: 4619 mov r1, r3 - 800c666: 4805 ldr r0, [pc, #20] ; (800c67c ) - 800c668: f7fb feb6 bl 80083d8 - /* USER CODE BEGIN USART3_MspInit 1 */ - - /* USER CODE END USART3_MspInit 1 */ - } - -} - 800c66c: bf00 nop - 800c66e: 3728 adds r7, #40 ; 0x28 - 800c670: 46bd mov sp, r7 - 800c672: bd80 pop {r7, pc} - 800c674: 40004800 .word 0x40004800 - 800c678: 40023800 .word 0x40023800 - 800c67c: 40020c00 .word 0x40020c00 - -0800c680 : -/******************************************************************************/ -/** - * @brief This function handles Non maskable interrupt. - */ -void NMI_Handler(void) -{ - 800c680: b480 push {r7} - 800c682: af00 add r7, sp, #0 - - /* USER CODE END NonMaskableInt_IRQn 0 */ - /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ - - /* USER CODE END NonMaskableInt_IRQn 1 */ -} - 800c684: bf00 nop - 800c686: 46bd mov sp, r7 - 800c688: f85d 7b04 ldr.w r7, [sp], #4 - 800c68c: 4770 bx lr - -0800c68e : - -/** - * @brief This function handles Hard fault interrupt. - */ -void HardFault_Handler(void) -{ - 800c68e: b480 push {r7} - 800c690: af00 add r7, sp, #0 - /* USER CODE BEGIN HardFault_IRQn 0 */ - - /* USER CODE END HardFault_IRQn 0 */ - while (1) - 800c692: e7fe b.n 800c692 - -0800c694 : - -/** - * @brief This function handles Memory management fault. - */ -void MemManage_Handler(void) -{ - 800c694: b480 push {r7} - 800c696: af00 add r7, sp, #0 - /* USER CODE BEGIN MemoryManagement_IRQn 0 */ - - /* USER CODE END MemoryManagement_IRQn 0 */ - while (1) - 800c698: e7fe b.n 800c698 - -0800c69a : - -/** - * @brief This function handles Pre-fetch fault, memory access fault. - */ -void BusFault_Handler(void) -{ - 800c69a: b480 push {r7} - 800c69c: af00 add r7, sp, #0 - /* USER CODE BEGIN BusFault_IRQn 0 */ - - /* USER CODE END BusFault_IRQn 0 */ - while (1) - 800c69e: e7fe b.n 800c69e - -0800c6a0 : - -/** - * @brief This function handles Undefined instruction or illegal state. - */ -void UsageFault_Handler(void) -{ - 800c6a0: b480 push {r7} - 800c6a2: af00 add r7, sp, #0 - /* USER CODE BEGIN UsageFault_IRQn 0 */ - - /* USER CODE END UsageFault_IRQn 0 */ - while (1) - 800c6a4: e7fe b.n 800c6a4 - -0800c6a6 : - -/** - * @brief This function handles System service call via SWI instruction. - */ -void SVC_Handler(void) -{ - 800c6a6: b480 push {r7} - 800c6a8: af00 add r7, sp, #0 - - /* USER CODE END SVCall_IRQn 0 */ - /* USER CODE BEGIN SVCall_IRQn 1 */ - - /* USER CODE END SVCall_IRQn 1 */ -} - 800c6aa: bf00 nop - 800c6ac: 46bd mov sp, r7 - 800c6ae: f85d 7b04 ldr.w r7, [sp], #4 - 800c6b2: 4770 bx lr - -0800c6b4 : - -/** - * @brief This function handles Debug monitor. - */ -void DebugMon_Handler(void) -{ - 800c6b4: b480 push {r7} - 800c6b6: af00 add r7, sp, #0 - - /* USER CODE END DebugMonitor_IRQn 0 */ - /* USER CODE BEGIN DebugMonitor_IRQn 1 */ - - /* USER CODE END DebugMonitor_IRQn 1 */ -} - 800c6b8: bf00 nop - 800c6ba: 46bd mov sp, r7 - 800c6bc: f85d 7b04 ldr.w r7, [sp], #4 - 800c6c0: 4770 bx lr - -0800c6c2 : - -/** - * @brief This function handles Pendable request for system service. - */ -void PendSV_Handler(void) -{ - 800c6c2: b480 push {r7} - 800c6c4: af00 add r7, sp, #0 - - /* USER CODE END PendSV_IRQn 0 */ - /* USER CODE BEGIN PendSV_IRQn 1 */ - - /* USER CODE END PendSV_IRQn 1 */ -} - 800c6c6: bf00 nop - 800c6c8: 46bd mov sp, r7 - 800c6ca: f85d 7b04 ldr.w r7, [sp], #4 - 800c6ce: 4770 bx lr - -0800c6d0 : - -/** - * @brief This function handles System tick timer. - */ -void SysTick_Handler(void) -{ - 800c6d0: b580 push {r7, lr} - 800c6d2: af00 add r7, sp, #0 - /* USER CODE BEGIN SysTick_IRQn 0 */ - - /* USER CODE END SysTick_IRQn 0 */ - HAL_IncTick(); - 800c6d4: f7fb fcca bl 800806c - /* USER CODE BEGIN SysTick_IRQn 1 */ - - /* USER CODE END SysTick_IRQn 1 */ -} - 800c6d8: bf00 nop - 800c6da: bd80 pop {r7, pc} - -0800c6dc <_getpid>: -void initialise_monitor_handles() -{ -} - -int _getpid(void) -{ - 800c6dc: b480 push {r7} - 800c6de: af00 add r7, sp, #0 - return 1; - 800c6e0: 2301 movs r3, #1 -} - 800c6e2: 4618 mov r0, r3 - 800c6e4: 46bd mov sp, r7 - 800c6e6: f85d 7b04 ldr.w r7, [sp], #4 - 800c6ea: 4770 bx lr - -0800c6ec <_kill>: - -int _kill(int pid, int sig) -{ - 800c6ec: b580 push {r7, lr} - 800c6ee: b082 sub sp, #8 - 800c6f0: af00 add r7, sp, #0 - 800c6f2: 6078 str r0, [r7, #4] - 800c6f4: 6039 str r1, [r7, #0] - errno = EINVAL; - 800c6f6: f001 f9a7 bl 800da48 <__errno> - 800c6fa: 4602 mov r2, r0 - 800c6fc: 2316 movs r3, #22 - 800c6fe: 6013 str r3, [r2, #0] - return -1; - 800c700: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff -} - 800c704: 4618 mov r0, r3 - 800c706: 3708 adds r7, #8 - 800c708: 46bd mov sp, r7 - 800c70a: bd80 pop {r7, pc} - -0800c70c <_exit>: - -void _exit (int status) -{ - 800c70c: b580 push {r7, lr} - 800c70e: b082 sub sp, #8 - 800c710: af00 add r7, sp, #0 - 800c712: 6078 str r0, [r7, #4] - _kill(status, -1); - 800c714: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff - 800c718: 6878 ldr r0, [r7, #4] - 800c71a: f7ff ffe7 bl 800c6ec <_kill> - while (1) {} /* Make sure we hang here */ - 800c71e: e7fe b.n 800c71e <_exit+0x12> - -0800c720 <_read>: -} - -__attribute__((weak)) int _read(int file, char *ptr, int len) -{ - 800c720: b580 push {r7, lr} - 800c722: b086 sub sp, #24 - 800c724: af00 add r7, sp, #0 - 800c726: 60f8 str r0, [r7, #12] - 800c728: 60b9 str r1, [r7, #8] - 800c72a: 607a str r2, [r7, #4] - int DataIdx; - - for (DataIdx = 0; DataIdx < len; DataIdx++) - 800c72c: 2300 movs r3, #0 - 800c72e: 617b str r3, [r7, #20] - 800c730: e00a b.n 800c748 <_read+0x28> - { - *ptr++ = __io_getchar(); - 800c732: f3af 8000 nop.w - 800c736: 4601 mov r1, r0 - 800c738: 68bb ldr r3, [r7, #8] - 800c73a: 1c5a adds r2, r3, #1 - 800c73c: 60ba str r2, [r7, #8] - 800c73e: b2ca uxtb r2, r1 - 800c740: 701a strb r2, [r3, #0] - for (DataIdx = 0; DataIdx < len; DataIdx++) - 800c742: 697b ldr r3, [r7, #20] - 800c744: 3301 adds r3, #1 - 800c746: 617b str r3, [r7, #20] - 800c748: 697a ldr r2, [r7, #20] - 800c74a: 687b ldr r3, [r7, #4] - 800c74c: 429a cmp r2, r3 - 800c74e: dbf0 blt.n 800c732 <_read+0x12> - } - -return len; - 800c750: 687b ldr r3, [r7, #4] -} - 800c752: 4618 mov r0, r3 - 800c754: 3718 adds r7, #24 - 800c756: 46bd mov sp, r7 - 800c758: bd80 pop {r7, pc} - -0800c75a <_write>: - -__attribute__((weak)) int _write(int file, char *ptr, int len) -{ - 800c75a: b580 push {r7, lr} - 800c75c: b086 sub sp, #24 - 800c75e: af00 add r7, sp, #0 - 800c760: 60f8 str r0, [r7, #12] - 800c762: 60b9 str r1, [r7, #8] - 800c764: 607a str r2, [r7, #4] - int DataIdx; - - for (DataIdx = 0; DataIdx < len; DataIdx++) - 800c766: 2300 movs r3, #0 - 800c768: 617b str r3, [r7, #20] - 800c76a: e009 b.n 800c780 <_write+0x26> - { - __io_putchar(*ptr++); - 800c76c: 68bb ldr r3, [r7, #8] - 800c76e: 1c5a adds r2, r3, #1 - 800c770: 60ba str r2, [r7, #8] - 800c772: 781b ldrb r3, [r3, #0] - 800c774: 4618 mov r0, r3 - 800c776: f3af 8000 nop.w - for (DataIdx = 0; DataIdx < len; DataIdx++) - 800c77a: 697b ldr r3, [r7, #20] - 800c77c: 3301 adds r3, #1 - 800c77e: 617b str r3, [r7, #20] - 800c780: 697a ldr r2, [r7, #20] - 800c782: 687b ldr r3, [r7, #4] - 800c784: 429a cmp r2, r3 - 800c786: dbf1 blt.n 800c76c <_write+0x12> - } - return len; - 800c788: 687b ldr r3, [r7, #4] -} - 800c78a: 4618 mov r0, r3 - 800c78c: 3718 adds r7, #24 - 800c78e: 46bd mov sp, r7 - 800c790: bd80 pop {r7, pc} - -0800c792 <_close>: - -int _close(int file) -{ - 800c792: b480 push {r7} - 800c794: b083 sub sp, #12 - 800c796: af00 add r7, sp, #0 - 800c798: 6078 str r0, [r7, #4] - return -1; - 800c79a: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff -} - 800c79e: 4618 mov r0, r3 - 800c7a0: 370c adds r7, #12 - 800c7a2: 46bd mov sp, r7 - 800c7a4: f85d 7b04 ldr.w r7, [sp], #4 - 800c7a8: 4770 bx lr - -0800c7aa <_fstat>: - - -int _fstat(int file, struct stat *st) -{ - 800c7aa: b480 push {r7} - 800c7ac: b083 sub sp, #12 - 800c7ae: af00 add r7, sp, #0 - 800c7b0: 6078 str r0, [r7, #4] - 800c7b2: 6039 str r1, [r7, #0] - st->st_mode = S_IFCHR; - 800c7b4: 683b ldr r3, [r7, #0] - 800c7b6: f44f 5200 mov.w r2, #8192 ; 0x2000 - 800c7ba: 605a str r2, [r3, #4] - return 0; - 800c7bc: 2300 movs r3, #0 -} - 800c7be: 4618 mov r0, r3 - 800c7c0: 370c adds r7, #12 - 800c7c2: 46bd mov sp, r7 - 800c7c4: f85d 7b04 ldr.w r7, [sp], #4 - 800c7c8: 4770 bx lr - -0800c7ca <_isatty>: - -int _isatty(int file) -{ - 800c7ca: b480 push {r7} - 800c7cc: b083 sub sp, #12 - 800c7ce: af00 add r7, sp, #0 - 800c7d0: 6078 str r0, [r7, #4] - return 1; - 800c7d2: 2301 movs r3, #1 -} - 800c7d4: 4618 mov r0, r3 - 800c7d6: 370c adds r7, #12 - 800c7d8: 46bd mov sp, r7 - 800c7da: f85d 7b04 ldr.w r7, [sp], #4 - 800c7de: 4770 bx lr - -0800c7e0 <_lseek>: - -int _lseek(int file, int ptr, int dir) -{ - 800c7e0: b480 push {r7} - 800c7e2: b085 sub sp, #20 - 800c7e4: af00 add r7, sp, #0 - 800c7e6: 60f8 str r0, [r7, #12] - 800c7e8: 60b9 str r1, [r7, #8] - 800c7ea: 607a str r2, [r7, #4] - return 0; - 800c7ec: 2300 movs r3, #0 -} - 800c7ee: 4618 mov r0, r3 - 800c7f0: 3714 adds r7, #20 - 800c7f2: 46bd mov sp, r7 - 800c7f4: f85d 7b04 ldr.w r7, [sp], #4 - 800c7f8: 4770 bx lr - ... - -0800c7fc <_sbrk>: -/** - _sbrk - Increase program data space. Malloc and related functions depend on this -**/ -caddr_t _sbrk(int incr) -{ - 800c7fc: b580 push {r7, lr} - 800c7fe: b084 sub sp, #16 - 800c800: af00 add r7, sp, #0 - 800c802: 6078 str r0, [r7, #4] - extern char end asm("end"); - static char *heap_end; - char *prev_heap_end; - - if (heap_end == 0) - 800c804: 4b11 ldr r3, [pc, #68] ; (800c84c <_sbrk+0x50>) - 800c806: 681b ldr r3, [r3, #0] - 800c808: 2b00 cmp r3, #0 - 800c80a: d102 bne.n 800c812 <_sbrk+0x16> - heap_end = &end; - 800c80c: 4b0f ldr r3, [pc, #60] ; (800c84c <_sbrk+0x50>) - 800c80e: 4a10 ldr r2, [pc, #64] ; (800c850 <_sbrk+0x54>) - 800c810: 601a str r2, [r3, #0] - - prev_heap_end = heap_end; - 800c812: 4b0e ldr r3, [pc, #56] ; (800c84c <_sbrk+0x50>) - 800c814: 681b ldr r3, [r3, #0] - 800c816: 60fb str r3, [r7, #12] - if (heap_end + incr > stack_ptr) - 800c818: 4b0c ldr r3, [pc, #48] ; (800c84c <_sbrk+0x50>) - 800c81a: 681a ldr r2, [r3, #0] - 800c81c: 687b ldr r3, [r7, #4] - 800c81e: 4413 add r3, r2 - 800c820: 466a mov r2, sp - 800c822: 4293 cmp r3, r2 - 800c824: d907 bls.n 800c836 <_sbrk+0x3a> - { - errno = ENOMEM; - 800c826: f001 f90f bl 800da48 <__errno> - 800c82a: 4602 mov r2, r0 - 800c82c: 230c movs r3, #12 - 800c82e: 6013 str r3, [r2, #0] - return (caddr_t) -1; - 800c830: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 800c834: e006 b.n 800c844 <_sbrk+0x48> - } - - heap_end += incr; - 800c836: 4b05 ldr r3, [pc, #20] ; (800c84c <_sbrk+0x50>) - 800c838: 681a ldr r2, [r3, #0] - 800c83a: 687b ldr r3, [r7, #4] - 800c83c: 4413 add r3, r2 - 800c83e: 4a03 ldr r2, [pc, #12] ; (800c84c <_sbrk+0x50>) - 800c840: 6013 str r3, [r2, #0] - - return (caddr_t) prev_heap_end; - 800c842: 68fb ldr r3, [r7, #12] -} - 800c844: 4618 mov r0, r3 - 800c846: 3710 adds r7, #16 - 800c848: 46bd mov sp, r7 - 800c84a: bd80 pop {r7, pc} - 800c84c: 20000aa0 .word 0x20000aa0 - 800c850: 20000b10 .word 0x20000b10 - -0800c854 : - * SystemFrequency variable. - * @param None - * @retval None - */ -void SystemInit(void) -{ - 800c854: b480 push {r7} - 800c856: af00 add r7, sp, #0 - /* FPU settings ------------------------------------------------------------*/ - #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) - SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ - 800c858: 4b15 ldr r3, [pc, #84] ; (800c8b0 ) - 800c85a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88 - 800c85e: 4a14 ldr r2, [pc, #80] ; (800c8b0 ) - 800c860: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000 - 800c864: f8c2 3088 str.w r3, [r2, #136] ; 0x88 - #endif - /* Reset the RCC clock configuration to the default reset state ------------*/ - /* Set HSION bit */ - RCC->CR |= (uint32_t)0x00000001; - 800c868: 4b12 ldr r3, [pc, #72] ; (800c8b4 ) - 800c86a: 681b ldr r3, [r3, #0] - 800c86c: 4a11 ldr r2, [pc, #68] ; (800c8b4 ) - 800c86e: f043 0301 orr.w r3, r3, #1 - 800c872: 6013 str r3, [r2, #0] - - /* Reset CFGR register */ - RCC->CFGR = 0x00000000; - 800c874: 4b0f ldr r3, [pc, #60] ; (800c8b4 ) - 800c876: 2200 movs r2, #0 - 800c878: 609a str r2, [r3, #8] - - /* Reset HSEON, CSSON and PLLON bits */ - RCC->CR &= (uint32_t)0xFEF6FFFF; - 800c87a: 4b0e ldr r3, [pc, #56] ; (800c8b4 ) - 800c87c: 681a ldr r2, [r3, #0] - 800c87e: 490d ldr r1, [pc, #52] ; (800c8b4 ) - 800c880: 4b0d ldr r3, [pc, #52] ; (800c8b8 ) - 800c882: 4013 ands r3, r2 - 800c884: 600b str r3, [r1, #0] - - /* Reset PLLCFGR register */ - RCC->PLLCFGR = 0x24003010; - 800c886: 4b0b ldr r3, [pc, #44] ; (800c8b4 ) - 800c888: 4a0c ldr r2, [pc, #48] ; (800c8bc ) - 800c88a: 605a str r2, [r3, #4] - - /* Reset HSEBYP bit */ - RCC->CR &= (uint32_t)0xFFFBFFFF; - 800c88c: 4b09 ldr r3, [pc, #36] ; (800c8b4 ) - 800c88e: 681b ldr r3, [r3, #0] - 800c890: 4a08 ldr r2, [pc, #32] ; (800c8b4 ) - 800c892: f423 2380 bic.w r3, r3, #262144 ; 0x40000 - 800c896: 6013 str r3, [r2, #0] - - /* Disable all interrupts */ - RCC->CIR = 0x00000000; - 800c898: 4b06 ldr r3, [pc, #24] ; (800c8b4 ) - 800c89a: 2200 movs r2, #0 - 800c89c: 60da str r2, [r3, #12] - - /* Configure the Vector Table location add offset address ------------------*/ -#ifdef VECT_TAB_SRAM - SCB->VTOR = RAMDTCM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ -#else - SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ - 800c89e: 4b04 ldr r3, [pc, #16] ; (800c8b0 ) - 800c8a0: f04f 6200 mov.w r2, #134217728 ; 0x8000000 - 800c8a4: 609a str r2, [r3, #8] -#endif -} - 800c8a6: bf00 nop - 800c8a8: 46bd mov sp, r7 - 800c8aa: f85d 7b04 ldr.w r7, [sp], #4 - 800c8ae: 4770 bx lr - 800c8b0: e000ed00 .word 0xe000ed00 - 800c8b4: 40023800 .word 0x40023800 - 800c8b8: fef6ffff .word 0xfef6ffff - 800c8bc: 24003010 .word 0x24003010 - -0800c8c0 : - - .section .text.Reset_Handler - .weak Reset_Handler - .type Reset_Handler, %function -Reset_Handler: - ldr sp, =_estack /* set stack pointer */ - 800c8c0: f8df d034 ldr.w sp, [pc, #52] ; 800c8f8 - -/* Copy the data segment initializers from flash to SRAM */ - movs r1, #0 - 800c8c4: 2100 movs r1, #0 - b LoopCopyDataInit - 800c8c6: e003 b.n 800c8d0 - -0800c8c8 : - -CopyDataInit: - ldr r3, =_sidata - 800c8c8: 4b0c ldr r3, [pc, #48] ; (800c8fc ) - ldr r3, [r3, r1] - 800c8ca: 585b ldr r3, [r3, r1] - str r3, [r0, r1] - 800c8cc: 5043 str r3, [r0, r1] - adds r1, r1, #4 - 800c8ce: 3104 adds r1, #4 - -0800c8d0 : - -LoopCopyDataInit: - ldr r0, =_sdata - 800c8d0: 480b ldr r0, [pc, #44] ; (800c900 ) - ldr r3, =_edata - 800c8d2: 4b0c ldr r3, [pc, #48] ; (800c904 ) - adds r2, r0, r1 - 800c8d4: 1842 adds r2, r0, r1 - cmp r2, r3 - 800c8d6: 429a cmp r2, r3 - bcc CopyDataInit - 800c8d8: d3f6 bcc.n 800c8c8 - ldr r2, =_sbss - 800c8da: 4a0b ldr r2, [pc, #44] ; (800c908 ) - b LoopFillZerobss - 800c8dc: e002 b.n 800c8e4 - -0800c8de : -/* Zero fill the bss segment. */ -FillZerobss: - movs r3, #0 - 800c8de: 2300 movs r3, #0 - str r3, [r2], #4 - 800c8e0: f842 3b04 str.w r3, [r2], #4 - -0800c8e4 : - -LoopFillZerobss: - ldr r3, = _ebss - 800c8e4: 4b09 ldr r3, [pc, #36] ; (800c90c ) - cmp r2, r3 - 800c8e6: 429a cmp r2, r3 - bcc FillZerobss - 800c8e8: d3f9 bcc.n 800c8de - -/* Call the clock system initialization function.*/ - bl SystemInit - 800c8ea: f7ff ffb3 bl 800c854 -/* Call static constructors */ - bl __libc_init_array - 800c8ee: f001 fac5 bl 800de7c <__libc_init_array> -/* Call the application's entry point.*/ - bl main - 800c8f2: f7fe ff75 bl 800b7e0
- bx lr - 800c8f6: 4770 bx lr - ldr sp, =_estack /* set stack pointer */ - 800c8f8: 20080000 .word 0x20080000 - ldr r3, =_sidata - 800c8fc: 08013338 .word 0x08013338 - ldr r0, =_sdata - 800c900: 20000000 .word 0x20000000 - ldr r3, =_edata - 800c904: 200009c0 .word 0x200009c0 - ldr r2, =_sbss - 800c908: 200009c0 .word 0x200009c0 - ldr r3, = _ebss - 800c90c: 20000b0c .word 0x20000b0c - -0800c910 : - * @retval None -*/ - .section .text.Default_Handler,"ax",%progbits -Default_Handler: -Infinite_Loop: - b Infinite_Loop - 800c910: e7fe b.n 800c910 - ... - -0800c914 <__cxa_pure_virtual>: - 800c914: b508 push {r3, lr} - 800c916: 221b movs r2, #27 - 800c918: 4902 ldr r1, [pc, #8] ; (800c924 <__cxa_pure_virtual+0x10>) - 800c91a: 2002 movs r0, #2 - 800c91c: f003 f9be bl 800fc9c - 800c920: f000 f816 bl 800c950 <_ZSt9terminatev> - 800c924: 08012390 .word 0x08012390 - -0800c928 <_ZN10__cxxabiv111__terminateEPFvvE>: - 800c928: b508 push {r3, lr} - 800c92a: 4780 blx r0 - 800c92c: f001 f884 bl 800da38 - 800c930: f000 fd7c bl 800d42c <__cxa_begin_catch> - 800c934: f001 f880 bl 800da38 - 800c938: 460d mov r5, r1 - 800c93a: 4604 mov r4, r0 - 800c93c: f000 fdb6 bl 800d4ac <__cxa_end_catch> - 800c940: 3501 adds r5, #1 - 800c942: d001 beq.n 800c948 <_ZN10__cxxabiv111__terminateEPFvvE+0x20> - 800c944: f000 f8c8 bl 800cad8 <__cxa_end_cleanup> - 800c948: 4620 mov r0, r4 - 800c94a: f000 f857 bl 800c9fc <__cxa_call_unexpected> - 800c94e: bf00 nop - -0800c950 <_ZSt9terminatev>: - 800c950: b508 push {r3, lr} - 800c952: 4b03 ldr r3, [pc, #12] ; (800c960 <_ZSt9terminatev+0x10>) - 800c954: 6818 ldr r0, [r3, #0] - 800c956: f3bf 8f5b dmb ish - 800c95a: f7ff ffe5 bl 800c928 <_ZN10__cxxabiv111__terminateEPFvvE> - 800c95e: bf00 nop - 800c960: 20000010 .word 0x20000010 - -0800c964 <_ZN10__cxxabiv112__unexpectedEPFvvE>: - 800c964: b508 push {r3, lr} - 800c966: 4780 blx r0 - 800c968: f7ff fff2 bl 800c950 <_ZSt9terminatev> - -0800c96c <_ZSt10unexpectedv>: - 800c96c: b508 push {r3, lr} - 800c96e: 4b03 ldr r3, [pc, #12] ; (800c97c <_ZSt10unexpectedv+0x10>) - 800c970: 6818 ldr r0, [r3, #0] - 800c972: f3bf 8f5b dmb ish - 800c976: f7ff fff5 bl 800c964 <_ZN10__cxxabiv112__unexpectedEPFvvE> - 800c97a: bf00 nop - 800c97c: 2000000c .word 0x2000000c - -0800c980 <_ZSt13get_terminatev>: - 800c980: 4b02 ldr r3, [pc, #8] ; (800c98c <_ZSt13get_terminatev+0xc>) - 800c982: 6818 ldr r0, [r3, #0] - 800c984: f3bf 8f5b dmb ish - 800c988: 4770 bx lr - 800c98a: bf00 nop - 800c98c: 20000010 .word 0x20000010 - -0800c990 <_ZSt14get_unexpectedv>: - 800c990: 4b02 ldr r3, [pc, #8] ; (800c99c <_ZSt14get_unexpectedv+0xc>) - 800c992: 6818 ldr r0, [r3, #0] - 800c994: f3bf 8f5b dmb ish - 800c998: 4770 bx lr - 800c99a: bf00 nop - 800c99c: 2000000c .word 0x2000000c - -0800c9a0 <_ZN10__cxxabiv1L24__is_gxx_exception_classEPc>: - 800c9a0: 7803 ldrb r3, [r0, #0] - 800c9a2: 2b47 cmp r3, #71 ; 0x47 - 800c9a4: d001 beq.n 800c9aa <_ZN10__cxxabiv1L24__is_gxx_exception_classEPc+0xa> - 800c9a6: 2000 movs r0, #0 - 800c9a8: 4770 bx lr - 800c9aa: 7843 ldrb r3, [r0, #1] - 800c9ac: 2b4e cmp r3, #78 ; 0x4e - 800c9ae: d1fa bne.n 800c9a6 <_ZN10__cxxabiv1L24__is_gxx_exception_classEPc+0x6> - 800c9b0: 7883 ldrb r3, [r0, #2] - 800c9b2: 2b55 cmp r3, #85 ; 0x55 - 800c9b4: d1f7 bne.n 800c9a6 <_ZN10__cxxabiv1L24__is_gxx_exception_classEPc+0x6> - 800c9b6: 78c3 ldrb r3, [r0, #3] - 800c9b8: 2b43 cmp r3, #67 ; 0x43 - 800c9ba: d1f4 bne.n 800c9a6 <_ZN10__cxxabiv1L24__is_gxx_exception_classEPc+0x6> - 800c9bc: 7903 ldrb r3, [r0, #4] - 800c9be: 2b43 cmp r3, #67 ; 0x43 - 800c9c0: d1f1 bne.n 800c9a6 <_ZN10__cxxabiv1L24__is_gxx_exception_classEPc+0x6> - 800c9c2: 7943 ldrb r3, [r0, #5] - 800c9c4: 2b2b cmp r3, #43 ; 0x2b - 800c9c6: d1ee bne.n 800c9a6 <_ZN10__cxxabiv1L24__is_gxx_exception_classEPc+0x6> - 800c9c8: 7983 ldrb r3, [r0, #6] - 800c9ca: 2b2b cmp r3, #43 ; 0x2b - 800c9cc: d1eb bne.n 800c9a6 <_ZN10__cxxabiv1L24__is_gxx_exception_classEPc+0x6> - 800c9ce: 79c0 ldrb r0, [r0, #7] - 800c9d0: 2801 cmp r0, #1 - 800c9d2: bf8c ite hi - 800c9d4: 2000 movhi r0, #0 - 800c9d6: 2001 movls r0, #1 - 800c9d8: 4770 bx lr - 800c9da: bf00 nop - -0800c9dc <__cxa_call_terminate>: - 800c9dc: b510 push {r4, lr} - 800c9de: b130 cbz r0, 800c9ee <__cxa_call_terminate+0x12> - 800c9e0: 4604 mov r4, r0 - 800c9e2: f000 fd23 bl 800d42c <__cxa_begin_catch> - 800c9e6: 4620 mov r0, r4 - 800c9e8: f7ff ffda bl 800c9a0 <_ZN10__cxxabiv1L24__is_gxx_exception_classEPc> - 800c9ec: b908 cbnz r0, 800c9f2 <__cxa_call_terminate+0x16> - 800c9ee: f7ff ffaf bl 800c950 <_ZSt9terminatev> - 800c9f2: f854 0c14 ldr.w r0, [r4, #-20] - 800c9f6: f7ff ff97 bl 800c928 <_ZN10__cxxabiv111__terminateEPFvvE> - 800c9fa: bf00 nop - -0800c9fc <__cxa_call_unexpected>: - 800c9fc: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800ca00: b085 sub sp, #20 - 800ca02: 4602 mov r2, r0 - 800ca04: f7ff ffcc bl 800c9a0 <_ZN10__cxxabiv1L24__is_gxx_exception_classEPc> - 800ca08: b150 cbz r0, 800ca20 <__cxa_call_unexpected+0x24> - 800ca0a: e952 8506 ldrd r8, r5, [r2, #-24] - 800ca0e: 4610 mov r0, r2 - 800ca10: 6a96 ldr r6, [r2, #40] ; 0x28 - 800ca12: e9d2 740c ldrd r7, r4, [r2, #48] ; 0x30 - 800ca16: f000 fd09 bl 800d42c <__cxa_begin_catch> - 800ca1a: 4640 mov r0, r8 - 800ca1c: f7ff ffa2 bl 800c964 <_ZN10__cxxabiv112__unexpectedEPFvvE> - 800ca20: 4610 mov r0, r2 - 800ca22: f000 fd03 bl 800d42c <__cxa_begin_catch> - 800ca26: f7ff ffa1 bl 800c96c <_ZSt10unexpectedv> - 800ca2a: f000 fcff bl 800d42c <__cxa_begin_catch> - 800ca2e: f7ff ff8f bl 800c950 <_ZSt9terminatev> - 800ca32: f000 fcfb bl 800d42c <__cxa_begin_catch> - 800ca36: f000 f917 bl 800cc68 <__cxa_get_globals_fast> - 800ca3a: 6803 ldr r3, [r0, #0] - 800ca3c: f893 2027 ldrb.w r2, [r3, #39] ; 0x27 - 800ca40: f10d 0a10 add.w sl, sp, #16 - 800ca44: 2a01 cmp r2, #1 - 800ca46: bf0c ite eq - 800ca48: 681a ldreq r2, [r3, #0] - 800ca4a: f103 0278 addne.w r2, r3, #120 ; 0x78 - 800ca4e: f04f 0800 mov.w r8, #0 - 800ca52: 3320 adds r3, #32 - 800ca54: f84a 2d08 str.w r2, [sl, #-8]! - 800ca58: f027 0b03 bic.w fp, r7, #3 - 800ca5c: 9301 str r3, [sp, #4] - 800ca5e: 46c1 mov r9, r8 - 800ca60: 45b1 cmp r9, r6 - 800ca62: da1b bge.n 800ca9c <__cxa_call_unexpected+0xa0> - 800ca64: 6827 ldr r7, [r4, #0] - 800ca66: b107 cbz r7, 800ca6a <__cxa_call_unexpected+0x6e> - 800ca68: 4427 add r7, r4 - 800ca6a: 4653 mov r3, sl - 800ca6c: 2200 movs r2, #0 - 800ca6e: 4639 mov r1, r7 - 800ca70: 9801 ldr r0, [sp, #4] - 800ca72: f000 f837 bl 800cae4 <__cxa_type_match> - 800ca76: b9e8 cbnz r0, 800cab4 <__cxa_call_unexpected+0xb8> - 800ca78: 683b ldr r3, [r7, #0] - 800ca7a: 4914 ldr r1, [pc, #80] ; (800cacc <__cxa_call_unexpected+0xd0>) - 800ca7c: 691b ldr r3, [r3, #16] - 800ca7e: 9300 str r3, [sp, #0] - 800ca80: aa04 add r2, sp, #16 - 800ca82: 2301 movs r3, #1 - 800ca84: f842 0d04 str.w r0, [r2, #-4]! - 800ca88: 4638 mov r0, r7 - 800ca8a: 9f00 ldr r7, [sp, #0] - 800ca8c: 47b8 blx r7 - 800ca8e: 2800 cmp r0, #0 - 800ca90: bf18 it ne - 800ca92: 4680 movne r8, r0 - 800ca94: f109 0901 add.w r9, r9, #1 - 800ca98: 445c add r4, fp - 800ca9a: e7e1 b.n 800ca60 <__cxa_call_unexpected+0x64> - 800ca9c: f1b8 0f00 cmp.w r8, #0 - 800caa0: d010 beq.n 800cac4 <__cxa_call_unexpected+0xc8> - 800caa2: 2004 movs r0, #4 - 800caa4: f000 fdc0 bl 800d628 <__cxa_allocate_exception> - 800caa8: 4b09 ldr r3, [pc, #36] ; (800cad0 <__cxa_call_unexpected+0xd4>) - 800caaa: 6003 str r3, [r0, #0] - 800caac: 4a09 ldr r2, [pc, #36] ; (800cad4 <__cxa_call_unexpected+0xd8>) - 800caae: 4907 ldr r1, [pc, #28] ; (800cacc <__cxa_call_unexpected+0xd0>) - 800cab0: f000 fc68 bl 800d384 <__cxa_throw> - 800cab4: f000 fc82 bl 800d3bc <__cxa_rethrow> - 800cab8: f000 fcf8 bl 800d4ac <__cxa_end_catch> - 800cabc: f000 fcf6 bl 800d4ac <__cxa_end_catch> - 800cac0: f000 f80a bl 800cad8 <__cxa_end_cleanup> - 800cac4: 4628 mov r0, r5 - 800cac6: f7ff ff2f bl 800c928 <_ZN10__cxxabiv111__terminateEPFvvE> - 800caca: bf00 nop - 800cacc: 080123d0 .word 0x080123d0 - 800cad0: 08012454 .word 0x08012454 - 800cad4: 0800d6a1 .word 0x0800d6a1 - -0800cad8 <__cxa_end_cleanup>: - 800cad8: b41e push {r1, r2, r3, r4} - 800cada: f000 f88d bl 800cbf8 <__gnu_end_cleanup> - 800cade: bc1e pop {r1, r2, r3, r4} - 800cae0: f7fb f882 bl 8007be8 <_Unwind_Resume> - -0800cae4 <__cxa_type_match>: - 800cae4: b5f0 push {r4, r5, r6, r7, lr} - 800cae6: 7802 ldrb r2, [r0, #0] - 800cae8: 2a47 cmp r2, #71 ; 0x47 - 800caea: b083 sub sp, #12 - 800caec: 460d mov r5, r1 - 800caee: 461f mov r7, r3 - 800caf0: d01e beq.n 800cb30 <__cxa_type_match+0x4c> - 800caf2: 2300 movs r3, #0 - 800caf4: 4c25 ldr r4, [pc, #148] ; (800cb8c <__cxa_type_match+0xa8>) - 800caf6: 9301 str r3, [sp, #4] - 800caf8: 6823 ldr r3, [r4, #0] - 800cafa: 4620 mov r0, r4 - 800cafc: 689b ldr r3, [r3, #8] - 800cafe: 4798 blx r3 - 800cb00: b180 cbz r0, 800cb24 <__cxa_type_match+0x40> - 800cb02: 9b01 ldr r3, [sp, #4] - 800cb04: 681b ldr r3, [r3, #0] - 800cb06: 9301 str r3, [sp, #4] - 800cb08: 2602 movs r6, #2 - 800cb0a: 682b ldr r3, [r5, #0] - 800cb0c: 4621 mov r1, r4 - 800cb0e: 4628 mov r0, r5 - 800cb10: 691c ldr r4, [r3, #16] - 800cb12: aa01 add r2, sp, #4 - 800cb14: 2301 movs r3, #1 - 800cb16: 47a0 blx r4 - 800cb18: b130 cbz r0, 800cb28 <__cxa_type_match+0x44> - 800cb1a: 9b01 ldr r3, [sp, #4] - 800cb1c: 603b str r3, [r7, #0] - 800cb1e: 4630 mov r0, r6 - 800cb20: b003 add sp, #12 - 800cb22: bdf0 pop {r4, r5, r6, r7, pc} - 800cb24: 2601 movs r6, #1 - 800cb26: e7f0 b.n 800cb0a <__cxa_type_match+0x26> - 800cb28: 4606 mov r6, r0 - 800cb2a: 4630 mov r0, r6 - 800cb2c: b003 add sp, #12 - 800cb2e: bdf0 pop {r4, r5, r6, r7, pc} - 800cb30: 7843 ldrb r3, [r0, #1] - 800cb32: 2b4e cmp r3, #78 ; 0x4e - 800cb34: d1dd bne.n 800caf2 <__cxa_type_match+0xe> - 800cb36: 7883 ldrb r3, [r0, #2] - 800cb38: 2b55 cmp r3, #85 ; 0x55 - 800cb3a: d1da bne.n 800caf2 <__cxa_type_match+0xe> - 800cb3c: 78c3 ldrb r3, [r0, #3] - 800cb3e: 2b43 cmp r3, #67 ; 0x43 - 800cb40: d1d7 bne.n 800caf2 <__cxa_type_match+0xe> - 800cb42: 7903 ldrb r3, [r0, #4] - 800cb44: 2b46 cmp r3, #70 ; 0x46 - 800cb46: d015 beq.n 800cb74 <__cxa_type_match+0x90> - 800cb48: 7903 ldrb r3, [r0, #4] - 800cb4a: 2b43 cmp r3, #67 ; 0x43 - 800cb4c: d1d1 bne.n 800caf2 <__cxa_type_match+0xe> - 800cb4e: 7943 ldrb r3, [r0, #5] - 800cb50: 2b2b cmp r3, #43 ; 0x2b - 800cb52: d1ce bne.n 800caf2 <__cxa_type_match+0xe> - 800cb54: 7983 ldrb r3, [r0, #6] - 800cb56: 2b2b cmp r3, #43 ; 0x2b - 800cb58: d1cb bne.n 800caf2 <__cxa_type_match+0xe> - 800cb5a: 79c3 ldrb r3, [r0, #7] - 800cb5c: 2b01 cmp r3, #1 - 800cb5e: d8c8 bhi.n 800caf2 <__cxa_type_match+0xe> - 800cb60: f850 4c20 ldr.w r4, [r0, #-32] - 800cb64: d002 beq.n 800cb6c <__cxa_type_match+0x88> - 800cb66: 3058 adds r0, #88 ; 0x58 - 800cb68: 9001 str r0, [sp, #4] - 800cb6a: e7c5 b.n 800caf8 <__cxa_type_match+0x14> - 800cb6c: 4620 mov r0, r4 - 800cb6e: f854 4c78 ldr.w r4, [r4, #-120] - 800cb72: e7f9 b.n 800cb68 <__cxa_type_match+0x84> - 800cb74: 7943 ldrb r3, [r0, #5] - 800cb76: 2b4f cmp r3, #79 ; 0x4f - 800cb78: d1e6 bne.n 800cb48 <__cxa_type_match+0x64> - 800cb7a: 7983 ldrb r3, [r0, #6] - 800cb7c: 2b52 cmp r3, #82 ; 0x52 - 800cb7e: d1e3 bne.n 800cb48 <__cxa_type_match+0x64> - 800cb80: 79c3 ldrb r3, [r0, #7] - 800cb82: 2b00 cmp r3, #0 - 800cb84: d1e0 bne.n 800cb48 <__cxa_type_match+0x64> - 800cb86: 9301 str r3, [sp, #4] - 800cb88: 4c01 ldr r4, [pc, #4] ; (800cb90 <__cxa_type_match+0xac>) - 800cb8a: e7b5 b.n 800caf8 <__cxa_type_match+0x14> - 800cb8c: 080123c8 .word 0x080123c8 - 800cb90: 080123c0 .word 0x080123c0 - -0800cb94 <__cxa_begin_cleanup>: - 800cb94: b510 push {r4, lr} - 800cb96: 4604 mov r4, r0 - 800cb98: f000 f86a bl 800cc70 <__cxa_get_globals> - 800cb9c: 7823 ldrb r3, [r4, #0] - 800cb9e: 2b47 cmp r3, #71 ; 0x47 - 800cba0: f1a4 0220 sub.w r2, r4, #32 - 800cba4: d004 beq.n 800cbb0 <__cxa_begin_cleanup+0x1c> - 800cba6: 6883 ldr r3, [r0, #8] - 800cba8: bb23 cbnz r3, 800cbf4 <__cxa_begin_cleanup+0x60> - 800cbaa: 6082 str r2, [r0, #8] - 800cbac: 2001 movs r0, #1 - 800cbae: bd10 pop {r4, pc} - 800cbb0: 7863 ldrb r3, [r4, #1] - 800cbb2: 2b4e cmp r3, #78 ; 0x4e - 800cbb4: d1f7 bne.n 800cba6 <__cxa_begin_cleanup+0x12> - 800cbb6: 78a3 ldrb r3, [r4, #2] - 800cbb8: 2b55 cmp r3, #85 ; 0x55 - 800cbba: d1f4 bne.n 800cba6 <__cxa_begin_cleanup+0x12> - 800cbbc: 78e3 ldrb r3, [r4, #3] - 800cbbe: 2b43 cmp r3, #67 ; 0x43 - 800cbc0: d1f1 bne.n 800cba6 <__cxa_begin_cleanup+0x12> - 800cbc2: 7923 ldrb r3, [r4, #4] - 800cbc4: 2b43 cmp r3, #67 ; 0x43 - 800cbc6: d1ee bne.n 800cba6 <__cxa_begin_cleanup+0x12> - 800cbc8: 7963 ldrb r3, [r4, #5] - 800cbca: 2b2b cmp r3, #43 ; 0x2b - 800cbcc: d1eb bne.n 800cba6 <__cxa_begin_cleanup+0x12> - 800cbce: 79a3 ldrb r3, [r4, #6] - 800cbd0: 2b2b cmp r3, #43 ; 0x2b - 800cbd2: d1e8 bne.n 800cba6 <__cxa_begin_cleanup+0x12> - 800cbd4: 79e3 ldrb r3, [r4, #7] - 800cbd6: 2b01 cmp r3, #1 - 800cbd8: d8e5 bhi.n 800cba6 <__cxa_begin_cleanup+0x12> - 800cbda: f854 3c04 ldr.w r3, [r4, #-4] - 800cbde: 3301 adds r3, #1 - 800cbe0: 2b01 cmp r3, #1 - 800cbe2: f844 3c04 str.w r3, [r4, #-4] - 800cbe6: d1e1 bne.n 800cbac <__cxa_begin_cleanup+0x18> - 800cbe8: 6883 ldr r3, [r0, #8] - 800cbea: f844 3c08 str.w r3, [r4, #-8] - 800cbee: 6082 str r2, [r0, #8] - 800cbf0: 2001 movs r0, #1 - 800cbf2: bd10 pop {r4, pc} - 800cbf4: f7ff feac bl 800c950 <_ZSt9terminatev> - -0800cbf8 <__gnu_end_cleanup>: - 800cbf8: b508 push {r3, lr} - 800cbfa: f000 f839 bl 800cc70 <__cxa_get_globals> - 800cbfe: 6883 ldr r3, [r0, #8] - 800cc00: b383 cbz r3, 800cc64 <__gnu_end_cleanup+0x6c> - 800cc02: f893 2020 ldrb.w r2, [r3, #32] - 800cc06: 2a47 cmp r2, #71 ; 0x47 - 800cc08: d004 beq.n 800cc14 <__gnu_end_cleanup+0x1c> - 800cc0a: 2200 movs r2, #0 - 800cc0c: 6082 str r2, [r0, #8] - 800cc0e: f103 0020 add.w r0, r3, #32 - 800cc12: bd08 pop {r3, pc} - 800cc14: f893 2021 ldrb.w r2, [r3, #33] ; 0x21 - 800cc18: 2a4e cmp r2, #78 ; 0x4e - 800cc1a: d1f6 bne.n 800cc0a <__gnu_end_cleanup+0x12> - 800cc1c: f893 2022 ldrb.w r2, [r3, #34] ; 0x22 - 800cc20: 2a55 cmp r2, #85 ; 0x55 - 800cc22: d1f2 bne.n 800cc0a <__gnu_end_cleanup+0x12> - 800cc24: f893 2023 ldrb.w r2, [r3, #35] ; 0x23 - 800cc28: 2a43 cmp r2, #67 ; 0x43 - 800cc2a: d1ee bne.n 800cc0a <__gnu_end_cleanup+0x12> - 800cc2c: f893 2024 ldrb.w r2, [r3, #36] ; 0x24 - 800cc30: 2a43 cmp r2, #67 ; 0x43 - 800cc32: d1ea bne.n 800cc0a <__gnu_end_cleanup+0x12> - 800cc34: f893 2025 ldrb.w r2, [r3, #37] ; 0x25 - 800cc38: 2a2b cmp r2, #43 ; 0x2b - 800cc3a: d1e6 bne.n 800cc0a <__gnu_end_cleanup+0x12> - 800cc3c: f893 2026 ldrb.w r2, [r3, #38] ; 0x26 - 800cc40: 2a2b cmp r2, #43 ; 0x2b - 800cc42: d1e2 bne.n 800cc0a <__gnu_end_cleanup+0x12> - 800cc44: f893 2027 ldrb.w r2, [r3, #39] ; 0x27 - 800cc48: 2a01 cmp r2, #1 - 800cc4a: d8de bhi.n 800cc0a <__gnu_end_cleanup+0x12> - 800cc4c: 69da ldr r2, [r3, #28] - 800cc4e: 3a01 subs r2, #1 - 800cc50: 61da str r2, [r3, #28] - 800cc52: 2a00 cmp r2, #0 - 800cc54: d1db bne.n 800cc0e <__gnu_end_cleanup+0x16> - 800cc56: 699a ldr r2, [r3, #24] - 800cc58: 6082 str r2, [r0, #8] - 800cc5a: 2200 movs r2, #0 - 800cc5c: 619a str r2, [r3, #24] - 800cc5e: f103 0020 add.w r0, r3, #32 - 800cc62: bd08 pop {r3, pc} - 800cc64: f7ff fe74 bl 800c950 <_ZSt9terminatev> - -0800cc68 <__cxa_get_globals_fast>: - 800cc68: 4800 ldr r0, [pc, #0] ; (800cc6c <__cxa_get_globals_fast+0x4>) - 800cc6a: 4770 bx lr - 800cc6c: 20000aa4 .word 0x20000aa4 - -0800cc70 <__cxa_get_globals>: - 800cc70: 4800 ldr r0, [pc, #0] ; (800cc74 <__cxa_get_globals+0x4>) - 800cc72: 4770 bx lr - 800cc74: 20000aa4 .word 0x20000aa4 - -0800cc78 <_ZL28read_encoded_value_with_basehjPKhPj>: - 800cc78: 2850 cmp r0, #80 ; 0x50 - 800cc7a: b5f8 push {r3, r4, r5, r6, r7, lr} - 800cc7c: d01c beq.n 800ccb8 <_ZL28read_encoded_value_with_basehjPKhPj+0x40> - 800cc7e: f000 040f and.w r4, r0, #15 - 800cc82: 2c0c cmp r4, #12 - 800cc84: d856 bhi.n 800cd34 <_ZL28read_encoded_value_with_basehjPKhPj+0xbc> - 800cc86: e8df f004 tbb [pc, r4] - 800cc8a: 4107 .short 0x4107 - 800cc8c: 551f0751 .word 0x551f0751 - 800cc90: 27555555 .word 0x27555555 - 800cc94: 0723 .short 0x0723 - 800cc96: 1f .byte 0x1f - 800cc97: 00 .byte 0x00 - 800cc98: 4614 mov r4, r2 - 800cc9a: f854 5b04 ldr.w r5, [r4], #4 - 800cc9e: b145 cbz r5, 800ccb2 <_ZL28read_encoded_value_with_basehjPKhPj+0x3a> - 800cca0: f000 0670 and.w r6, r0, #112 ; 0x70 - 800cca4: 2e10 cmp r6, #16 - 800cca6: bf08 it eq - 800cca8: 4611 moveq r1, r2 - 800ccaa: 440d add r5, r1 - 800ccac: 0602 lsls r2, r0, #24 - 800ccae: bf48 it mi - 800ccb0: 682d ldrmi r5, [r5, #0] - 800ccb2: 601d str r5, [r3, #0] - 800ccb4: 4620 mov r0, r4 - 800ccb6: bdf8 pop {r3, r4, r5, r6, r7, pc} - 800ccb8: 3203 adds r2, #3 - 800ccba: f022 0403 bic.w r4, r2, #3 - 800ccbe: f854 5b04 ldr.w r5, [r4], #4 - 800ccc2: 601d str r5, [r3, #0] - 800ccc4: 4620 mov r0, r4 - 800ccc6: bdf8 pop {r3, r4, r5, r6, r7, pc} - 800ccc8: 4614 mov r4, r2 - 800ccca: f854 5b08 ldr.w r5, [r4], #8 - 800ccce: e7e6 b.n 800cc9e <_ZL28read_encoded_value_with_basehjPKhPj+0x26> - 800ccd0: 4614 mov r4, r2 - 800ccd2: f934 5b02 ldrsh.w r5, [r4], #2 - 800ccd6: e7e2 b.n 800cc9e <_ZL28read_encoded_value_with_basehjPKhPj+0x26> - 800ccd8: 2500 movs r5, #0 - 800ccda: 462f mov r7, r5 - 800ccdc: 4614 mov r4, r2 - 800ccde: f814 cb01 ldrb.w ip, [r4], #1 - 800cce2: f00c 067f and.w r6, ip, #127 ; 0x7f - 800cce6: 40be lsls r6, r7 - 800cce8: f01c 0f80 tst.w ip, #128 ; 0x80 - 800ccec: ea45 0506 orr.w r5, r5, r6 - 800ccf0: f107 0707 add.w r7, r7, #7 - 800ccf4: d1f3 bne.n 800ccde <_ZL28read_encoded_value_with_basehjPKhPj+0x66> - 800ccf6: 2f1f cmp r7, #31 - 800ccf8: d8d1 bhi.n 800cc9e <_ZL28read_encoded_value_with_basehjPKhPj+0x26> - 800ccfa: f01c 0f40 tst.w ip, #64 ; 0x40 - 800ccfe: d0ce beq.n 800cc9e <_ZL28read_encoded_value_with_basehjPKhPj+0x26> - 800cd00: f04f 36ff mov.w r6, #4294967295 ; 0xffffffff - 800cd04: fa06 f707 lsl.w r7, r6, r7 - 800cd08: 433d orrs r5, r7 - 800cd0a: e7c9 b.n 800cca0 <_ZL28read_encoded_value_with_basehjPKhPj+0x28> - 800cd0c: 2500 movs r5, #0 - 800cd0e: 462f mov r7, r5 - 800cd10: 4614 mov r4, r2 - 800cd12: f814 cb01 ldrb.w ip, [r4], #1 - 800cd16: f00c 067f and.w r6, ip, #127 ; 0x7f - 800cd1a: 40be lsls r6, r7 - 800cd1c: f01c 0f80 tst.w ip, #128 ; 0x80 - 800cd20: ea45 0506 orr.w r5, r5, r6 - 800cd24: f107 0707 add.w r7, r7, #7 - 800cd28: d1f3 bne.n 800cd12 <_ZL28read_encoded_value_with_basehjPKhPj+0x9a> - 800cd2a: e7b8 b.n 800cc9e <_ZL28read_encoded_value_with_basehjPKhPj+0x26> - 800cd2c: 4614 mov r4, r2 - 800cd2e: f834 5b02 ldrh.w r5, [r4], #2 - 800cd32: e7b4 b.n 800cc9e <_ZL28read_encoded_value_with_basehjPKhPj+0x26> - 800cd34: f000 fe80 bl 800da38 - -0800cd38 <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3>: - 800cd38: f000 0070 and.w r0, r0, #112 ; 0x70 - 800cd3c: 2820 cmp r0, #32 - 800cd3e: d011 beq.n 800cd64 <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3+0x2c> - 800cd40: d90b bls.n 800cd5a <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3+0x22> - 800cd42: 2840 cmp r0, #64 ; 0x40 - 800cd44: d006 beq.n 800cd54 <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3+0x1c> - 800cd46: 2850 cmp r0, #80 ; 0x50 - 800cd48: d00a beq.n 800cd60 <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3+0x28> - 800cd4a: 2830 cmp r0, #48 ; 0x30 - 800cd4c: d10d bne.n 800cd6a <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3+0x32> - 800cd4e: 4608 mov r0, r1 - 800cd50: f7fb b944 b.w 8007fdc <_Unwind_GetDataRelBase> - 800cd54: 4608 mov r0, r1 - 800cd56: f7fb b931 b.w 8007fbc <_Unwind_GetRegionStart> - 800cd5a: b108 cbz r0, 800cd60 <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3+0x28> - 800cd5c: 2810 cmp r0, #16 - 800cd5e: d104 bne.n 800cd6a <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3+0x32> - 800cd60: 2000 movs r0, #0 - 800cd62: 4770 bx lr - 800cd64: 4608 mov r0, r1 - 800cd66: f7fb b93d b.w 8007fe4 <_Unwind_GetTextRelBase> - 800cd6a: b508 push {r3, lr} - 800cd6c: f000 fe64 bl 800da38 - -0800cd70 <_ZL17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info>: - 800cd70: b5f8 push {r3, r4, r5, r6, r7, lr} - 800cd72: 460c mov r4, r1 - 800cd74: 4615 mov r5, r2 - 800cd76: 4607 mov r7, r0 - 800cd78: b108 cbz r0, 800cd7e <_ZL17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info+0xe> - 800cd7a: f7fb f91f bl 8007fbc <_Unwind_GetRegionStart> - 800cd7e: 6028 str r0, [r5, #0] - 800cd80: 7826 ldrb r6, [r4, #0] - 800cd82: 2eff cmp r6, #255 ; 0xff - 800cd84: f104 0401 add.w r4, r4, #1 - 800cd88: d129 bne.n 800cdde <_ZL17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info+0x6e> - 800cd8a: 6068 str r0, [r5, #4] - 800cd8c: 7823 ldrb r3, [r4, #0] - 800cd8e: 752b strb r3, [r5, #20] - 800cd90: 2bff cmp r3, #255 ; 0xff - 800cd92: f104 0001 add.w r0, r4, #1 - 800cd96: d032 beq.n 800cdfe <_ZL17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info+0x8e> - 800cd98: 2310 movs r3, #16 - 800cd9a: 2400 movs r4, #0 - 800cd9c: 752b strb r3, [r5, #20] - 800cd9e: 4622 mov r2, r4 - 800cda0: f810 1b01 ldrb.w r1, [r0], #1 - 800cda4: f001 037f and.w r3, r1, #127 ; 0x7f - 800cda8: 4093 lsls r3, r2 - 800cdaa: 0609 lsls r1, r1, #24 - 800cdac: ea44 0403 orr.w r4, r4, r3 - 800cdb0: f102 0207 add.w r2, r2, #7 - 800cdb4: d4f4 bmi.n 800cda0 <_ZL17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info+0x30> - 800cdb6: 4404 add r4, r0 - 800cdb8: 60ec str r4, [r5, #12] - 800cdba: 7803 ldrb r3, [r0, #0] - 800cdbc: 756b strb r3, [r5, #21] - 800cdbe: 2400 movs r4, #0 - 800cdc0: 3001 adds r0, #1 - 800cdc2: 4622 mov r2, r4 - 800cdc4: f810 1b01 ldrb.w r1, [r0], #1 - 800cdc8: f001 037f and.w r3, r1, #127 ; 0x7f - 800cdcc: 4093 lsls r3, r2 - 800cdce: 431c orrs r4, r3 - 800cdd0: 060b lsls r3, r1, #24 - 800cdd2: f102 0207 add.w r2, r2, #7 - 800cdd6: d4f5 bmi.n 800cdc4 <_ZL17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info+0x54> - 800cdd8: 4404 add r4, r0 - 800cdda: 612c str r4, [r5, #16] - 800cddc: bdf8 pop {r3, r4, r5, r6, r7, pc} - 800cdde: 4639 mov r1, r7 - 800cde0: 4630 mov r0, r6 - 800cde2: f7ff ffa9 bl 800cd38 <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3> - 800cde6: 4622 mov r2, r4 - 800cde8: 4601 mov r1, r0 - 800cdea: 1d2b adds r3, r5, #4 - 800cdec: 4630 mov r0, r6 - 800cdee: f7ff ff43 bl 800cc78 <_ZL28read_encoded_value_with_basehjPKhPj> - 800cdf2: 4604 mov r4, r0 - 800cdf4: 1c60 adds r0, r4, #1 - 800cdf6: 7823 ldrb r3, [r4, #0] - 800cdf8: 752b strb r3, [r5, #20] - 800cdfa: 2bff cmp r3, #255 ; 0xff - 800cdfc: d1cc bne.n 800cd98 <_ZL17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info+0x28> - 800cdfe: 2300 movs r3, #0 - 800ce00: 60eb str r3, [r5, #12] - 800ce02: e7da b.n 800cdba <_ZL17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info+0x4a> - -0800ce04 <__gxx_personality_v0>: - 800ce04: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800ce08: f000 0403 and.w r4, r0, #3 - 800ce0c: b099 sub sp, #100 ; 0x64 - 800ce0e: 2300 movs r3, #0 - 800ce10: 2c01 cmp r4, #1 - 800ce12: 4688 mov r8, r1 - 800ce14: 4617 mov r7, r2 - 800ce16: 930c str r3, [sp, #48] ; 0x30 - 800ce18: f000 8096 beq.w 800cf48 <__gxx_personality_v0+0x144> - 800ce1c: d30d bcc.n 800ce3a <__gxx_personality_v0+0x36> - 800ce1e: 2c02 cmp r4, #2 - 800ce20: f040 825f bne.w 800d2e2 <__gxx_personality_v0+0x4de> - 800ce24: 4639 mov r1, r7 - 800ce26: 4640 mov r0, r8 - 800ce28: f7fb f8b4 bl 8007f94 <__gnu_unwind_frame> - 800ce2c: 2800 cmp r0, #0 - 800ce2e: f000 809b beq.w 800cf68 <__gxx_personality_v0+0x164> - 800ce32: 2009 movs r0, #9 - 800ce34: b019 add sp, #100 ; 0x64 - 800ce36: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800ce3a: 0702 lsls r2, r0, #28 - 800ce3c: d4f2 bmi.n 800ce24 <__gxx_personality_v0+0x20> - 800ce3e: 2301 movs r3, #1 - 800ce40: 9304 str r3, [sp, #16] - 800ce42: aa18 add r2, sp, #96 ; 0x60 - 800ce44: 2300 movs r3, #0 - 800ce46: f842 8d2c str.w r8, [r2, #-44]! - 800ce4a: 4619 mov r1, r3 - 800ce4c: 9200 str r2, [sp, #0] - 800ce4e: 4638 mov r0, r7 - 800ce50: 220c movs r2, #12 - 800ce52: f7fa fb2f bl 80074b4 <_Unwind_VRS_Set> - 800ce56: 4638 mov r0, r7 - 800ce58: f7fb f8b6 bl 8007fc8 <_Unwind_GetLanguageSpecificData> - 800ce5c: 9005 str r0, [sp, #20] - 800ce5e: 2800 cmp r0, #0 - 800ce60: d0e0 beq.n 800ce24 <__gxx_personality_v0+0x20> - 800ce62: ab12 add r3, sp, #72 ; 0x48 - 800ce64: 461a mov r2, r3 - 800ce66: 9905 ldr r1, [sp, #20] - 800ce68: 9306 str r3, [sp, #24] - 800ce6a: 4638 mov r0, r7 - 800ce6c: f7ff ff80 bl 800cd70 <_ZL17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info> - 800ce70: 4605 mov r5, r0 - 800ce72: f89d 005c ldrb.w r0, [sp, #92] ; 0x5c - 800ce76: 28ff cmp r0, #255 ; 0xff - 800ce78: f000 80e5 beq.w 800d046 <__gxx_personality_v0+0x242> - 800ce7c: 4639 mov r1, r7 - 800ce7e: f7ff ff5b bl 800cd38 <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3> - 800ce82: 4604 mov r4, r0 - 800ce84: 2300 movs r3, #0 - 800ce86: f10d 0b44 add.w fp, sp, #68 ; 0x44 - 800ce8a: 4619 mov r1, r3 - 800ce8c: f8cd b000 str.w fp, [sp] - 800ce90: 220f movs r2, #15 - 800ce92: 4638 mov r0, r7 - 800ce94: 9414 str r4, [sp, #80] ; 0x50 - 800ce96: f7fa faeb bl 8007470 <_Unwind_VRS_Get> - 800ce9a: 9e11 ldr r6, [sp, #68] ; 0x44 - 800ce9c: 9b16 ldr r3, [sp, #88] ; 0x58 - 800ce9e: f026 0601 bic.w r6, r6, #1 - 800cea2: 429d cmp r5, r3 - 800cea4: f106 36ff add.w r6, r6, #4294967295 ; 0xffffffff - 800cea8: f080 80d4 bcs.w 800d054 <__gxx_personality_v0+0x250> - 800ceac: f10d 0a3c add.w sl, sp, #60 ; 0x3c - 800ceb0: f10d 0940 add.w r9, sp, #64 ; 0x40 - 800ceb4: f89d 405d ldrb.w r4, [sp, #93] ; 0x5d - 800ceb8: 2cff cmp r4, #255 ; 0xff - 800ceba: f04f 0100 mov.w r1, #0 - 800cebe: d003 beq.n 800cec8 <__gxx_personality_v0+0xc4> - 800cec0: 4620 mov r0, r4 - 800cec2: f7ff ff39 bl 800cd38 <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3> - 800cec6: 4601 mov r1, r0 - 800cec8: 462a mov r2, r5 - 800ceca: 4620 mov r0, r4 - 800cecc: 4653 mov r3, sl - 800cece: f7ff fed3 bl 800cc78 <_ZL28read_encoded_value_with_basehjPKhPj> - 800ced2: f89d 405d ldrb.w r4, [sp, #93] ; 0x5d - 800ced6: 2cff cmp r4, #255 ; 0xff - 800ced8: 4605 mov r5, r0 - 800ceda: f04f 0100 mov.w r1, #0 - 800cede: d003 beq.n 800cee8 <__gxx_personality_v0+0xe4> - 800cee0: 4620 mov r0, r4 - 800cee2: f7ff ff29 bl 800cd38 <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3> - 800cee6: 4601 mov r1, r0 - 800cee8: 462a mov r2, r5 - 800ceea: 4620 mov r0, r4 - 800ceec: 464b mov r3, r9 - 800ceee: f7ff fec3 bl 800cc78 <_ZL28read_encoded_value_with_basehjPKhPj> - 800cef2: f89d 405d ldrb.w r4, [sp, #93] ; 0x5d - 800cef6: 2cff cmp r4, #255 ; 0xff - 800cef8: 4605 mov r5, r0 - 800cefa: f04f 0100 mov.w r1, #0 - 800cefe: d003 beq.n 800cf08 <__gxx_personality_v0+0x104> - 800cf00: 4620 mov r0, r4 - 800cf02: f7ff ff19 bl 800cd38 <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3> - 800cf06: 4601 mov r1, r0 - 800cf08: 462a mov r2, r5 - 800cf0a: 4620 mov r0, r4 - 800cf0c: 465b mov r3, fp - 800cf0e: f7ff feb3 bl 800cc78 <_ZL28read_encoded_value_with_basehjPKhPj> - 800cf12: 2400 movs r4, #0 - 800cf14: 4605 mov r5, r0 - 800cf16: 4621 mov r1, r4 - 800cf18: f815 2b01 ldrb.w r2, [r5], #1 - 800cf1c: f002 037f and.w r3, r2, #127 ; 0x7f - 800cf20: 408b lsls r3, r1 - 800cf22: 431c orrs r4, r3 - 800cf24: 0613 lsls r3, r2, #24 - 800cf26: f101 0107 add.w r1, r1, #7 - 800cf2a: d4f5 bmi.n 800cf18 <__gxx_personality_v0+0x114> - 800cf2c: 9b12 ldr r3, [sp, #72] ; 0x48 - 800cf2e: 9a0f ldr r2, [sp, #60] ; 0x3c - 800cf30: 4413 add r3, r2 - 800cf32: 42b3 cmp r3, r6 - 800cf34: d91f bls.n 800cf76 <__gxx_personality_v0+0x172> - 800cf36: 9b04 ldr r3, [sp, #16] - 800cf38: 07db lsls r3, r3, #31 - 800cf3a: f100 8091 bmi.w 800d060 <__gxx_personality_v0+0x25c> - 800cf3e: 9b04 ldr r3, [sp, #16] - 800cf40: 071c lsls r4, r3, #28 - 800cf42: d515 bpl.n 800cf70 <__gxx_personality_v0+0x16c> - 800cf44: f7ff fd04 bl 800c950 <_ZSt9terminatev> - 800cf48: f010 0408 ands.w r4, r0, #8 - 800cf4c: d01c beq.n 800cf88 <__gxx_personality_v0+0x184> - 800cf4e: aa18 add r2, sp, #96 ; 0x60 - 800cf50: f044 0402 orr.w r4, r4, #2 - 800cf54: f842 1d2c str.w r1, [r2, #-44]! - 800cf58: 4638 mov r0, r7 - 800cf5a: 9200 str r2, [sp, #0] - 800cf5c: 4619 mov r1, r3 - 800cf5e: 220c movs r2, #12 - 800cf60: 9404 str r4, [sp, #16] - 800cf62: f7fa faa7 bl 80074b4 <_Unwind_VRS_Set> - 800cf66: e776 b.n 800ce56 <__gxx_personality_v0+0x52> - 800cf68: 2008 movs r0, #8 - 800cf6a: b019 add sp, #100 ; 0x64 - 800cf6c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800cf70: 4640 mov r0, r8 - 800cf72: f7ff fd33 bl 800c9dc <__cxa_call_terminate> - 800cf76: 9a10 ldr r2, [sp, #64] ; 0x40 - 800cf78: 4413 add r3, r2 - 800cf7a: 42b3 cmp r3, r6 - 800cf7c: f200 8088 bhi.w 800d090 <__gxx_personality_v0+0x28c> - 800cf80: 9b16 ldr r3, [sp, #88] ; 0x58 - 800cf82: 42ab cmp r3, r5 - 800cf84: d896 bhi.n 800ceb4 <__gxx_personality_v0+0xb0> - 800cf86: e7d6 b.n 800cf36 <__gxx_personality_v0+0x132> - 800cf88: ab12 add r3, sp, #72 ; 0x48 - 800cf8a: 9300 str r3, [sp, #0] - 800cf8c: 9306 str r3, [sp, #24] - 800cf8e: 220d movs r2, #13 - 800cf90: 4623 mov r3, r4 - 800cf92: 4621 mov r1, r4 - 800cf94: 4638 mov r0, r7 - 800cf96: f8d8 5020 ldr.w r5, [r8, #32] - 800cf9a: f7fa fa69 bl 8007470 <_Unwind_VRS_Get> - 800cf9e: 9b12 ldr r3, [sp, #72] ; 0x48 - 800cfa0: 429d cmp r5, r3 - 800cfa2: d002 beq.n 800cfaa <__gxx_personality_v0+0x1a6> - 800cfa4: 2302 movs r3, #2 - 800cfa6: 9304 str r3, [sp, #16] - 800cfa8: e74b b.n 800ce42 <__gxx_personality_v0+0x3e> - 800cfaa: aa18 add r2, sp, #96 ; 0x60 - 800cfac: 4623 mov r3, r4 - 800cfae: f842 8d2c str.w r8, [r2, #-44]! - 800cfb2: 4621 mov r1, r4 - 800cfb4: 9200 str r2, [sp, #0] - 800cfb6: 4638 mov r0, r7 - 800cfb8: 220c movs r2, #12 - 800cfba: f7fa fa7b bl 80074b4 <_Unwind_VRS_Set> - 800cfbe: f8d8 3030 ldr.w r3, [r8, #48] ; 0x30 - 800cfc2: 9303 str r3, [sp, #12] - 800cfc4: 2b00 cmp r3, #0 - 800cfc6: d0d3 beq.n 800cf70 <__gxx_personality_v0+0x16c> - 800cfc8: f8d8 3028 ldr.w r3, [r8, #40] ; 0x28 - 800cfcc: 461a mov r2, r3 - 800cfce: f8d8 302c ldr.w r3, [r8, #44] ; 0x2c - 800cfd2: 9305 str r3, [sp, #20] - 800cfd4: f10d 0a3c add.w sl, sp, #60 ; 0x3c - 800cfd8: f10d 0940 add.w r9, sp, #64 ; 0x40 - 800cfdc: 4613 mov r3, r2 - 800cfde: 2b00 cmp r3, #0 - 800cfe0: 461c mov r4, r3 - 800cfe2: f2c0 8127 blt.w 800d234 <__gxx_personality_v0+0x430> - 800cfe6: 2503 movs r5, #3 - 800cfe8: a918 add r1, sp, #96 ; 0x60 - 800cfea: 2300 movs r3, #0 - 800cfec: f841 8d28 str.w r8, [r1, #-40]! - 800cff0: 461a mov r2, r3 - 800cff2: 9100 str r1, [sp, #0] - 800cff4: 4638 mov r0, r7 - 800cff6: 4619 mov r1, r3 - 800cff8: f7fa fa5c bl 80074b4 <_Unwind_VRS_Set> - 800cffc: 2300 movs r3, #0 - 800cffe: 4619 mov r1, r3 - 800d000: 2201 movs r2, #1 - 800d002: f8cd a000 str.w sl, [sp] - 800d006: 4638 mov r0, r7 - 800d008: 940f str r4, [sp, #60] ; 0x3c - 800d00a: f7fa fa53 bl 80074b4 <_Unwind_VRS_Set> - 800d00e: 2300 movs r3, #0 - 800d010: 4619 mov r1, r3 - 800d012: 220f movs r2, #15 - 800d014: f8cd 9000 str.w r9, [sp] - 800d018: 4638 mov r0, r7 - 800d01a: f7fa fa29 bl 8007470 <_Unwind_VRS_Get> - 800d01e: 9b10 ldr r3, [sp, #64] ; 0x40 - 800d020: 9a03 ldr r2, [sp, #12] - 800d022: f8cd 9000 str.w r9, [sp] - 800d026: f003 0401 and.w r4, r3, #1 - 800d02a: 2300 movs r3, #0 - 800d02c: 4314 orrs r4, r2 - 800d02e: 4638 mov r0, r7 - 800d030: 4619 mov r1, r3 - 800d032: 220f movs r2, #15 - 800d034: 9410 str r4, [sp, #64] ; 0x40 - 800d036: f7fa fa3d bl 80074b4 <_Unwind_VRS_Set> - 800d03a: 2d02 cmp r5, #2 - 800d03c: d005 beq.n 800d04a <__gxx_personality_v0+0x246> - 800d03e: 2007 movs r0, #7 - 800d040: b019 add sp, #100 ; 0x64 - 800d042: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800d046: 2400 movs r4, #0 - 800d048: e71c b.n 800ce84 <__gxx_personality_v0+0x80> - 800d04a: 4640 mov r0, r8 - 800d04c: f7ff fda2 bl 800cb94 <__cxa_begin_cleanup> - 800d050: 2007 movs r0, #7 - 800d052: e6ef b.n 800ce34 <__gxx_personality_v0+0x30> - 800d054: 9b04 ldr r3, [sp, #16] - 800d056: 07d9 lsls r1, r3, #31 - 800d058: f57f af71 bpl.w 800cf3e <__gxx_personality_v0+0x13a> - 800d05c: f10d 0940 add.w r9, sp, #64 ; 0x40 - 800d060: 2400 movs r4, #0 - 800d062: 9403 str r4, [sp, #12] - 800d064: 2300 movs r3, #0 - 800d066: 4619 mov r1, r3 - 800d068: 220d movs r2, #13 - 800d06a: f8cd 9000 str.w r9, [sp] - 800d06e: 4638 mov r0, r7 - 800d070: 9d0c ldr r5, [sp, #48] ; 0x30 - 800d072: f7fa f9fd bl 8007470 <_Unwind_VRS_Get> - 800d076: 9a05 ldr r2, [sp, #20] - 800d078: 9b10 ldr r3, [sp, #64] ; 0x40 - 800d07a: f8c8 202c str.w r2, [r8, #44] ; 0x2c - 800d07e: 9a03 ldr r2, [sp, #12] - 800d080: f8c8 2030 str.w r2, [r8, #48] ; 0x30 - 800d084: e9c8 5409 strd r5, r4, [r8, #36] ; 0x24 - 800d088: f8c8 3020 str.w r3, [r8, #32] - 800d08c: 2006 movs r0, #6 - 800d08e: e6d1 b.n 800ce34 <__gxx_personality_v0+0x30> - 800d090: 9b11 ldr r3, [sp, #68] ; 0x44 - 800d092: 2b00 cmp r3, #0 - 800d094: f43f aec6 beq.w 800ce24 <__gxx_personality_v0+0x20> - 800d098: 9a13 ldr r2, [sp, #76] ; 0x4c - 800d09a: 189a adds r2, r3, r2 - 800d09c: 9203 str r2, [sp, #12] - 800d09e: 2c00 cmp r4, #0 - 800d0a0: f000 80f0 beq.w 800d284 <__gxx_personality_v0+0x480> - 800d0a4: 9b16 ldr r3, [sp, #88] ; 0x58 - 800d0a6: 3c01 subs r4, #1 - 800d0a8: 4423 add r3, r4 - 800d0aa: 2a00 cmp r2, #0 - 800d0ac: f43f aeba beq.w 800ce24 <__gxx_personality_v0+0x20> - 800d0b0: 2b00 cmp r3, #0 - 800d0b2: f000 80f8 beq.w 800d2a6 <__gxx_personality_v0+0x4a2> - 800d0b6: 9a04 ldr r2, [sp, #16] - 800d0b8: f012 0208 ands.w r2, r2, #8 - 800d0bc: 9209 str r2, [sp, #36] ; 0x24 - 800d0be: f000 8103 beq.w 800d2c8 <__gxx_personality_v0+0x4c4> - 800d0c2: 2147 movs r1, #71 ; 0x47 - 800d0c4: 224e movs r2, #78 ; 0x4e - 800d0c6: f888 1000 strb.w r1, [r8] - 800d0ca: f888 2001 strb.w r2, [r8, #1] - 800d0ce: 2155 movs r1, #85 ; 0x55 - 800d0d0: 2243 movs r2, #67 ; 0x43 - 800d0d2: f888 1002 strb.w r1, [r8, #2] - 800d0d6: f888 2003 strb.w r2, [r8, #3] - 800d0da: 2146 movs r1, #70 ; 0x46 - 800d0dc: 224f movs r2, #79 ; 0x4f - 800d0de: f888 1004 strb.w r1, [r8, #4] - 800d0e2: f888 2005 strb.w r2, [r8, #5] - 800d0e6: 2152 movs r1, #82 ; 0x52 - 800d0e8: 2200 movs r2, #0 - 800d0ea: f888 1006 strb.w r1, [r8, #6] - 800d0ee: f888 2007 strb.w r2, [r8, #7] - 800d0f2: e9cd 7a0a strd r7, sl, [sp, #40] ; 0x28 - 800d0f6: 2200 movs r2, #0 - 800d0f8: 9207 str r2, [sp, #28] - 800d0fa: f8cd 9020 str.w r9, [sp, #32] - 800d0fe: 2400 movs r4, #0 - 800d100: 4621 mov r1, r4 - 800d102: e000 b.n 800d106 <__gxx_personality_v0+0x302> - 800d104: 462b mov r3, r5 - 800d106: 461d mov r5, r3 - 800d108: f815 0b01 ldrb.w r0, [r5], #1 - 800d10c: f000 027f and.w r2, r0, #127 ; 0x7f - 800d110: 408a lsls r2, r1 - 800d112: 0606 lsls r6, r0, #24 - 800d114: ea44 0402 orr.w r4, r4, r2 - 800d118: f101 0107 add.w r1, r1, #7 - 800d11c: d4f2 bmi.n 800d104 <__gxx_personality_v0+0x300> - 800d11e: 291f cmp r1, #31 - 800d120: d805 bhi.n 800d12e <__gxx_personality_v0+0x32a> - 800d122: 0640 lsls r0, r0, #25 - 800d124: d503 bpl.n 800d12e <__gxx_personality_v0+0x32a> - 800d126: 2201 movs r2, #1 - 800d128: 408a lsls r2, r1 - 800d12a: 4252 negs r2, r2 - 800d12c: 4314 orrs r4, r2 - 800d12e: 2600 movs r6, #0 - 800d130: 4631 mov r1, r6 - 800d132: 46a1 mov r9, r4 - 800d134: f813 0f01 ldrb.w r0, [r3, #1]! - 800d138: f000 027f and.w r2, r0, #127 ; 0x7f - 800d13c: 408a lsls r2, r1 - 800d13e: 4316 orrs r6, r2 - 800d140: 0602 lsls r2, r0, #24 - 800d142: f101 0107 add.w r1, r1, #7 - 800d146: d4f5 bmi.n 800d134 <__gxx_personality_v0+0x330> - 800d148: 291f cmp r1, #31 - 800d14a: d805 bhi.n 800d158 <__gxx_personality_v0+0x354> - 800d14c: 0647 lsls r7, r0, #25 - 800d14e: d503 bpl.n 800d158 <__gxx_personality_v0+0x354> - 800d150: 2301 movs r3, #1 - 800d152: 408b lsls r3, r1 - 800d154: 425b negs r3, r3 - 800d156: 431e orrs r6, r3 - 800d158: 2c00 cmp r4, #0 - 800d15a: d04c beq.n 800d1f6 <__gxx_personality_v0+0x3f2> - 800d15c: dc4e bgt.n 800d1fc <__gxx_personality_v0+0x3f8> - 800d15e: f104 0a01 add.w sl, r4, #1 - 800d162: ebca 728a rsb r2, sl, sl, lsl #30 - 800d166: 9b15 ldr r3, [sp, #84] ; 0x54 - 800d168: eb03 0782 add.w r7, r3, r2, lsl #2 - 800d16c: f853 1022 ldr.w r1, [r3, r2, lsl #2] - 800d170: f1b8 0f00 cmp.w r8, #0 - 800d174: d001 beq.n 800d17a <__gxx_personality_v0+0x376> - 800d176: 9b09 ldr r3, [sp, #36] ; 0x24 - 800d178: b12b cbz r3, 800d186 <__gxx_personality_v0+0x382> - 800d17a: b351 cbz r1, 800d1d2 <__gxx_personality_v0+0x3ce> - 800d17c: 2e00 cmp r6, #0 - 800d17e: f000 808b beq.w 800d298 <__gxx_personality_v0+0x494> - 800d182: 19ab adds r3, r5, r6 - 800d184: e7bb b.n 800d0fe <__gxx_personality_v0+0x2fa> - 800d186: 9b0c ldr r3, [sp, #48] ; 0x30 - 800d188: 9311 str r3, [sp, #68] ; 0x44 - 800d18a: b929 cbnz r1, 800d198 <__gxx_personality_v0+0x394> - 800d18c: e091 b.n 800d2b2 <__gxx_personality_v0+0x4ae> - 800d18e: f857 1f04 ldr.w r1, [r7, #4]! - 800d192: 2900 cmp r1, #0 - 800d194: f000 808d beq.w 800d2b2 <__gxx_personality_v0+0x4ae> - 800d198: 4439 add r1, r7 - 800d19a: 465b mov r3, fp - 800d19c: 2200 movs r2, #0 - 800d19e: 4640 mov r0, r8 - 800d1a0: f7ff fca0 bl 800cae4 <__cxa_type_match> - 800d1a4: 2800 cmp r0, #0 - 800d1a6: d0f2 beq.n 800d18e <__gxx_personality_v0+0x38a> - 800d1a8: e7e8 b.n 800d17c <__gxx_personality_v0+0x378> - 800d1aa: 00e2 lsls r2, r4, #3 - 800d1ac: 4252 negs r2, r2 - 800d1ae: e9dd 1314 ldrd r1, r3, [sp, #80] ; 0x50 - 800d1b2: 441a add r2, r3 - 800d1b4: 9b08 ldr r3, [sp, #32] - 800d1b6: f7ff fd5f bl 800cc78 <_ZL28read_encoded_value_with_basehjPKhPj> - 800d1ba: 9910 ldr r1, [sp, #64] ; 0x40 - 800d1bc: b149 cbz r1, 800d1d2 <__gxx_personality_v0+0x3ce> - 800d1be: f1b8 0f00 cmp.w r8, #0 - 800d1c2: d0db beq.n 800d17c <__gxx_personality_v0+0x378> - 800d1c4: ab0c add r3, sp, #48 ; 0x30 - 800d1c6: 2200 movs r2, #0 - 800d1c8: 4640 mov r0, r8 - 800d1ca: f7ff fc8b bl 800cae4 <__cxa_type_match> - 800d1ce: 2800 cmp r0, #0 - 800d1d0: d0d4 beq.n 800d17c <__gxx_personality_v0+0x378> - 800d1d2: 9b04 ldr r3, [sp, #16] - 800d1d4: 07d8 lsls r0, r3, #31 - 800d1d6: 464a mov r2, r9 - 800d1d8: e9dd 7a0a ldrd r7, sl, [sp, #40] ; 0x28 - 800d1dc: f8dd 9020 ldr.w r9, [sp, #32] - 800d1e0: f53f af40 bmi.w 800d064 <__gxx_personality_v0+0x260> - 800d1e4: 9b09 ldr r3, [sp, #36] ; 0x24 - 800d1e6: 2b00 cmp r3, #0 - 800d1e8: f43f aef8 beq.w 800cfdc <__gxx_personality_v0+0x1d8> - 800d1ec: 2c00 cmp r4, #0 - 800d1ee: f6bf aefa bge.w 800cfe6 <__gxx_personality_v0+0x1e2> - 800d1f2: f7ff fbbb bl 800c96c <_ZSt10unexpectedv> - 800d1f6: 2301 movs r3, #1 - 800d1f8: 9307 str r3, [sp, #28] - 800d1fa: e7bf b.n 800d17c <__gxx_personality_v0+0x378> - 800d1fc: f89d 005c ldrb.w r0, [sp, #92] ; 0x5c - 800d200: 28ff cmp r0, #255 ; 0xff - 800d202: d03b beq.n 800d27c <__gxx_personality_v0+0x478> - 800d204: f000 0307 and.w r3, r0, #7 - 800d208: 2b04 cmp r3, #4 - 800d20a: d86a bhi.n 800d2e2 <__gxx_personality_v0+0x4de> - 800d20c: a201 add r2, pc, #4 ; (adr r2, 800d214 <__gxx_personality_v0+0x410>) - 800d20e: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800d212: bf00 nop - 800d214: 0800d22f .word 0x0800d22f - 800d218: 0800d2e3 .word 0x0800d2e3 - 800d21c: 0800d229 .word 0x0800d229 - 800d220: 0800d22f .word 0x0800d22f - 800d224: 0800d1ab .word 0x0800d1ab - 800d228: 0062 lsls r2, r4, #1 - 800d22a: 4252 negs r2, r2 - 800d22c: e7bf b.n 800d1ae <__gxx_personality_v0+0x3aa> - 800d22e: 00a2 lsls r2, r4, #2 - 800d230: 4252 negs r2, r2 - 800d232: e7bc b.n 800d1ae <__gxx_personality_v0+0x3aa> - 800d234: 3301 adds r3, #1 - 800d236: 461d mov r5, r3 - 800d238: e9dd 1205 ldrd r1, r2, [sp, #20] - 800d23c: 4638 mov r0, r7 - 800d23e: f7ff fd97 bl 800cd70 <_ZL17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info> - 800d242: f89d 005c ldrb.w r0, [sp, #92] ; 0x5c - 800d246: 28ff cmp r0, #255 ; 0xff - 800d248: d01a beq.n 800d280 <__gxx_personality_v0+0x47c> - 800d24a: 4639 mov r1, r7 - 800d24c: f7ff fd74 bl 800cd38 <_ZL21base_of_encoded_valuehP15_Unwind_Context.part.3> - 800d250: ebc5 7285 rsb r2, r5, r5, lsl #30 - 800d254: 0092 lsls r2, r2, #2 - 800d256: 9d15 ldr r5, [sp, #84] ; 0x54 - 800d258: 9014 str r0, [sp, #80] ; 0x50 - 800d25a: 58ab ldr r3, [r5, r2] - 800d25c: 4415 add r5, r2 - 800d25e: b133 cbz r3, 800d26e <__gxx_personality_v0+0x46a> - 800d260: 462a mov r2, r5 - 800d262: 2300 movs r3, #0 - 800d264: f852 1f04 ldr.w r1, [r2, #4]! - 800d268: 3301 adds r3, #1 - 800d26a: 2900 cmp r1, #0 - 800d26c: d1fa bne.n 800d264 <__gxx_personality_v0+0x460> - 800d26e: 2204 movs r2, #4 - 800d270: e9c8 250c strd r2, r5, [r8, #48] ; 0x30 - 800d274: e9c8 300a strd r3, r0, [r8, #40] ; 0x28 - 800d278: 2503 movs r5, #3 - 800d27a: e6b5 b.n 800cfe8 <__gxx_personality_v0+0x1e4> - 800d27c: 2200 movs r2, #0 - 800d27e: e796 b.n 800d1ae <__gxx_personality_v0+0x3aa> - 800d280: 2000 movs r0, #0 - 800d282: e7e5 b.n 800d250 <__gxx_personality_v0+0x44c> - 800d284: 9b03 ldr r3, [sp, #12] - 800d286: 2b00 cmp r3, #0 - 800d288: f43f adcc beq.w 800ce24 <__gxx_personality_v0+0x20> - 800d28c: 9b04 ldr r3, [sp, #16] - 800d28e: 07da lsls r2, r3, #31 - 800d290: f53f adc8 bmi.w 800ce24 <__gxx_personality_v0+0x20> - 800d294: 2502 movs r5, #2 - 800d296: e6a7 b.n 800cfe8 <__gxx_personality_v0+0x1e4> - 800d298: e9dd 3907 ldrd r3, r9, [sp, #28] - 800d29c: e9dd 7a0a ldrd r7, sl, [sp, #40] ; 0x28 - 800d2a0: 2b00 cmp r3, #0 - 800d2a2: f43f adbf beq.w 800ce24 <__gxx_personality_v0+0x20> - 800d2a6: 9b04 ldr r3, [sp, #16] - 800d2a8: 07dd lsls r5, r3, #31 - 800d2aa: f53f adbb bmi.w 800ce24 <__gxx_personality_v0+0x20> - 800d2ae: 2400 movs r4, #0 - 800d2b0: e7f0 b.n 800d294 <__gxx_personality_v0+0x490> - 800d2b2: 9b04 ldr r3, [sp, #16] - 800d2b4: 9f0a ldr r7, [sp, #40] ; 0x28 - 800d2b6: f8dd 9020 ldr.w r9, [sp, #32] - 800d2ba: 07de lsls r6, r3, #31 - 800d2bc: 4655 mov r5, sl - 800d2be: f8dd a02c ldr.w sl, [sp, #44] ; 0x2c - 800d2c2: f53f aecf bmi.w 800d064 <__gxx_personality_v0+0x260> - 800d2c6: e7b7 b.n 800d238 <__gxx_personality_v0+0x434> - 800d2c8: f898 2007 ldrb.w r2, [r8, #7] - 800d2cc: 2a01 cmp r2, #1 - 800d2ce: bf0c ite eq - 800d2d0: f858 2c20 ldreq.w r2, [r8, #-32] - 800d2d4: f108 0258 addne.w r2, r8, #88 ; 0x58 - 800d2d8: 920c str r2, [sp, #48] ; 0x30 - 800d2da: e70a b.n 800d0f2 <__gxx_personality_v0+0x2ee> - 800d2dc: f000 f8a6 bl 800d42c <__cxa_begin_catch> - 800d2e0: e630 b.n 800cf44 <__gxx_personality_v0+0x140> - 800d2e2: f000 fba9 bl 800da38 - 800d2e6: bf00 nop - -0800d2e8 <_ZL23__gxx_exception_cleanup19_Unwind_Reason_CodeP21_Unwind_Control_Block>: - 800d2e8: 2801 cmp r0, #1 - 800d2ea: b510 push {r4, lr} - 800d2ec: d81a bhi.n 800d324 <_ZL23__gxx_exception_cleanup19_Unwind_Reason_CodeP21_Unwind_Control_Block+0x3c> - 800d2ee: f3bf 8f5b dmb ish - 800d2f2: f1a1 0328 sub.w r3, r1, #40 ; 0x28 - 800d2f6: e853 2f00 ldrex r2, [r3] - 800d2fa: 3a01 subs r2, #1 - 800d2fc: e843 2000 strex r0, r2, [r3] - 800d300: 2800 cmp r0, #0 - 800d302: d1f8 bne.n 800d2f6 <_ZL23__gxx_exception_cleanup19_Unwind_Reason_CodeP21_Unwind_Control_Block+0xe> - 800d304: f3bf 8f5b dmb ish - 800d308: b95a cbnz r2, 800d322 <_ZL23__gxx_exception_cleanup19_Unwind_Reason_CodeP21_Unwind_Control_Block+0x3a> - 800d30a: f851 3c1c ldr.w r3, [r1, #-28] - 800d30e: f101 0458 add.w r4, r1, #88 ; 0x58 - 800d312: b10b cbz r3, 800d318 <_ZL23__gxx_exception_cleanup19_Unwind_Reason_CodeP21_Unwind_Control_Block+0x30> - 800d314: 4620 mov r0, r4 - 800d316: 4798 blx r3 - 800d318: 4620 mov r0, r4 - 800d31a: e8bd 4010 ldmia.w sp!, {r4, lr} - 800d31e: f000 b99b b.w 800d658 <__cxa_free_exception> - 800d322: bd10 pop {r4, pc} - 800d324: f851 0c14 ldr.w r0, [r1, #-20] - 800d328: f7ff fafe bl 800c928 <_ZN10__cxxabiv111__terminateEPFvvE> - -0800d32c <__cxa_init_primary_exception>: - 800d32c: b5f8 push {r3, r4, r5, r6, r7, lr} - 800d32e: 2500 movs r5, #0 - 800d330: e940 121e strd r1, r2, [r0, #-120] ; 0x78 - 800d334: f840 5c80 str.w r5, [r0, #-128] - 800d338: 4604 mov r4, r0 - 800d33a: f7ff fb29 bl 800c990 <_ZSt14get_unexpectedv> - 800d33e: f844 0c70 str.w r0, [r4, #-112] - 800d342: f7ff fb1d bl 800c980 <_ZSt13get_terminatev> - 800d346: 2347 movs r3, #71 ; 0x47 - 800d348: 2243 movs r2, #67 ; 0x43 - 800d34a: 274e movs r7, #78 ; 0x4e - 800d34c: 2655 movs r6, #85 ; 0x55 - 800d34e: 490c ldr r1, [pc, #48] ; (800d380 <__cxa_init_primary_exception+0x54>) - 800d350: f804 3c58 strb.w r3, [r4, #-88] - 800d354: 232b movs r3, #43 ; 0x2b - 800d356: f804 5c51 strb.w r5, [r4, #-81] - 800d35a: f804 7c57 strb.w r7, [r4, #-87] - 800d35e: f804 6c56 strb.w r6, [r4, #-86] - 800d362: f844 1c50 str.w r1, [r4, #-80] - 800d366: f804 2c55 strb.w r2, [r4, #-85] - 800d36a: f804 2c54 strb.w r2, [r4, #-84] - 800d36e: f804 3c53 strb.w r3, [r4, #-83] - 800d372: f804 3c52 strb.w r3, [r4, #-82] - 800d376: f844 0c6c str.w r0, [r4, #-108] - 800d37a: f1a4 0080 sub.w r0, r4, #128 ; 0x80 - 800d37e: bdf8 pop {r3, r4, r5, r6, r7, pc} - 800d380: 0800d2e9 .word 0x0800d2e9 - -0800d384 <__cxa_throw>: - 800d384: b5f8 push {r3, r4, r5, r6, r7, lr} - 800d386: 4605 mov r5, r0 - 800d388: 460e mov r6, r1 - 800d38a: 4617 mov r7, r2 - 800d38c: f7ff fc70 bl 800cc70 <__cxa_get_globals> - 800d390: 6843 ldr r3, [r0, #4] - 800d392: 4604 mov r4, r0 - 800d394: 3301 adds r3, #1 - 800d396: 463a mov r2, r7 - 800d398: 4631 mov r1, r6 - 800d39a: 6063 str r3, [r4, #4] - 800d39c: 4628 mov r0, r5 - 800d39e: f7ff ffc5 bl 800d32c <__cxa_init_primary_exception> - 800d3a2: 4604 mov r4, r0 - 800d3a4: 2301 movs r3, #1 - 800d3a6: f844 3b28 str.w r3, [r4], #40 - 800d3aa: 4620 mov r0, r4 - 800d3ac: f7fa fc0a bl 8007bc4 <_Unwind_RaiseException> - 800d3b0: 4620 mov r0, r4 - 800d3b2: f000 f83b bl 800d42c <__cxa_begin_catch> - 800d3b6: f7ff facb bl 800c950 <_ZSt9terminatev> - 800d3ba: bf00 nop - -0800d3bc <__cxa_rethrow>: - 800d3bc: b510 push {r4, lr} - 800d3be: f7ff fc57 bl 800cc70 <__cxa_get_globals> - 800d3c2: e9d0 4200 ldrd r4, r2, [r0] - 800d3c6: 3201 adds r2, #1 - 800d3c8: 6042 str r2, [r0, #4] - 800d3ca: b164 cbz r4, 800d3e6 <__cxa_rethrow+0x2a> - 800d3cc: f894 2020 ldrb.w r2, [r4, #32] - 800d3d0: 2a47 cmp r2, #71 ; 0x47 - 800d3d2: d00a beq.n 800d3ea <__cxa_rethrow+0x2e> - 800d3d4: 2200 movs r2, #0 - 800d3d6: 6002 str r2, [r0, #0] - 800d3d8: 3420 adds r4, #32 - 800d3da: 4620 mov r0, r4 - 800d3dc: f7fa fc16 bl 8007c0c <_Unwind_Resume_or_Rethrow> - 800d3e0: 4620 mov r0, r4 - 800d3e2: f000 f823 bl 800d42c <__cxa_begin_catch> - 800d3e6: f7ff fab3 bl 800c950 <_ZSt9terminatev> - 800d3ea: f894 2021 ldrb.w r2, [r4, #33] ; 0x21 - 800d3ee: 2a4e cmp r2, #78 ; 0x4e - 800d3f0: d1f0 bne.n 800d3d4 <__cxa_rethrow+0x18> - 800d3f2: f894 2022 ldrb.w r2, [r4, #34] ; 0x22 - 800d3f6: 2a55 cmp r2, #85 ; 0x55 - 800d3f8: d1ec bne.n 800d3d4 <__cxa_rethrow+0x18> - 800d3fa: f894 2023 ldrb.w r2, [r4, #35] ; 0x23 - 800d3fe: 2a43 cmp r2, #67 ; 0x43 - 800d400: d1e8 bne.n 800d3d4 <__cxa_rethrow+0x18> - 800d402: f894 2024 ldrb.w r2, [r4, #36] ; 0x24 - 800d406: 2a43 cmp r2, #67 ; 0x43 - 800d408: d1e4 bne.n 800d3d4 <__cxa_rethrow+0x18> - 800d40a: f894 2025 ldrb.w r2, [r4, #37] ; 0x25 - 800d40e: 2a2b cmp r2, #43 ; 0x2b - 800d410: d1e0 bne.n 800d3d4 <__cxa_rethrow+0x18> - 800d412: f894 2026 ldrb.w r2, [r4, #38] ; 0x26 - 800d416: 2a2b cmp r2, #43 ; 0x2b - 800d418: d1dc bne.n 800d3d4 <__cxa_rethrow+0x18> - 800d41a: f894 2027 ldrb.w r2, [r4, #39] ; 0x27 - 800d41e: 2a01 cmp r2, #1 - 800d420: d8d8 bhi.n 800d3d4 <__cxa_rethrow+0x18> - 800d422: 6962 ldr r2, [r4, #20] - 800d424: 4252 negs r2, r2 - 800d426: 6162 str r2, [r4, #20] - 800d428: e7d6 b.n 800d3d8 <__cxa_rethrow+0x1c> - 800d42a: bf00 nop - -0800d42c <__cxa_begin_catch>: - 800d42c: b538 push {r3, r4, r5, lr} - 800d42e: 4604 mov r4, r0 - 800d430: f7ff fc1e bl 800cc70 <__cxa_get_globals> - 800d434: 7822 ldrb r2, [r4, #0] - 800d436: 6803 ldr r3, [r0, #0] - 800d438: 2a47 cmp r2, #71 ; 0x47 - 800d43a: f1a4 0120 sub.w r1, r4, #32 - 800d43e: d004 beq.n 800d44a <__cxa_begin_catch+0x1e> - 800d440: bb8b cbnz r3, 800d4a6 <__cxa_begin_catch+0x7a> - 800d442: 461c mov r4, r3 - 800d444: 6001 str r1, [r0, #0] - 800d446: 4620 mov r0, r4 - 800d448: bd38 pop {r3, r4, r5, pc} - 800d44a: 7862 ldrb r2, [r4, #1] - 800d44c: 2a4e cmp r2, #78 ; 0x4e - 800d44e: d1f7 bne.n 800d440 <__cxa_begin_catch+0x14> - 800d450: 78a2 ldrb r2, [r4, #2] - 800d452: 2a55 cmp r2, #85 ; 0x55 - 800d454: d1f4 bne.n 800d440 <__cxa_begin_catch+0x14> - 800d456: 78e2 ldrb r2, [r4, #3] - 800d458: 2a43 cmp r2, #67 ; 0x43 - 800d45a: d1f1 bne.n 800d440 <__cxa_begin_catch+0x14> - 800d45c: 7922 ldrb r2, [r4, #4] - 800d45e: 2a43 cmp r2, #67 ; 0x43 - 800d460: d1ee bne.n 800d440 <__cxa_begin_catch+0x14> - 800d462: 7962 ldrb r2, [r4, #5] - 800d464: 2a2b cmp r2, #43 ; 0x2b - 800d466: d1eb bne.n 800d440 <__cxa_begin_catch+0x14> - 800d468: 79a2 ldrb r2, [r4, #6] - 800d46a: 2a2b cmp r2, #43 ; 0x2b - 800d46c: d1e8 bne.n 800d440 <__cxa_begin_catch+0x14> - 800d46e: 79e2 ldrb r2, [r4, #7] - 800d470: 2a01 cmp r2, #1 - 800d472: d8e5 bhi.n 800d440 <__cxa_begin_catch+0x14> - 800d474: f854 2c0c ldr.w r2, [r4, #-12] - 800d478: 2a00 cmp r2, #0 - 800d47a: db11 blt.n 800d4a0 <__cxa_begin_catch+0x74> - 800d47c: 3201 adds r2, #1 - 800d47e: 6845 ldr r5, [r0, #4] - 800d480: f844 2c0c str.w r2, [r4, #-12] - 800d484: 428b cmp r3, r1 - 800d486: f105 35ff add.w r5, r5, #4294967295 ; 0xffffffff - 800d48a: 6045 str r5, [r0, #4] - 800d48c: bf1c itt ne - 800d48e: f844 3c10 strne.w r3, [r4, #-16] - 800d492: 6001 strne r1, [r0, #0] - 800d494: 4620 mov r0, r4 - 800d496: 6a64 ldr r4, [r4, #36] ; 0x24 - 800d498: f7f9 ffe2 bl 8007460 <_Unwind_Complete> - 800d49c: 4620 mov r0, r4 - 800d49e: bd38 pop {r3, r4, r5, pc} - 800d4a0: f1c2 0201 rsb r2, r2, #1 - 800d4a4: e7eb b.n 800d47e <__cxa_begin_catch+0x52> - 800d4a6: f7ff fa53 bl 800c950 <_ZSt9terminatev> - 800d4aa: bf00 nop - -0800d4ac <__cxa_end_catch>: - 800d4ac: b508 push {r3, lr} - 800d4ae: f7ff fbdb bl 800cc68 <__cxa_get_globals_fast> - 800d4b2: 4602 mov r2, r0 - 800d4b4: 6800 ldr r0, [r0, #0] - 800d4b6: b370 cbz r0, 800d516 <__cxa_end_catch+0x6a> - 800d4b8: f890 3020 ldrb.w r3, [r0, #32] - 800d4bc: 2b47 cmp r3, #71 ; 0x47 - 800d4be: d006 beq.n 800d4ce <__cxa_end_catch+0x22> - 800d4c0: 2300 movs r3, #0 - 800d4c2: 6013 str r3, [r2, #0] - 800d4c4: 3020 adds r0, #32 - 800d4c6: e8bd 4008 ldmia.w sp!, {r3, lr} - 800d4ca: f7f9 bfcb b.w 8007464 <_Unwind_DeleteException> - 800d4ce: f890 3021 ldrb.w r3, [r0, #33] ; 0x21 - 800d4d2: 2b4e cmp r3, #78 ; 0x4e - 800d4d4: d1f4 bne.n 800d4c0 <__cxa_end_catch+0x14> - 800d4d6: f890 3022 ldrb.w r3, [r0, #34] ; 0x22 - 800d4da: 2b55 cmp r3, #85 ; 0x55 - 800d4dc: d1f0 bne.n 800d4c0 <__cxa_end_catch+0x14> - 800d4de: f890 3023 ldrb.w r3, [r0, #35] ; 0x23 - 800d4e2: 2b43 cmp r3, #67 ; 0x43 - 800d4e4: d1ec bne.n 800d4c0 <__cxa_end_catch+0x14> - 800d4e6: f890 3024 ldrb.w r3, [r0, #36] ; 0x24 - 800d4ea: 2b43 cmp r3, #67 ; 0x43 - 800d4ec: d1e8 bne.n 800d4c0 <__cxa_end_catch+0x14> - 800d4ee: f890 3025 ldrb.w r3, [r0, #37] ; 0x25 - 800d4f2: 2b2b cmp r3, #43 ; 0x2b - 800d4f4: d1e4 bne.n 800d4c0 <__cxa_end_catch+0x14> - 800d4f6: f890 3026 ldrb.w r3, [r0, #38] ; 0x26 - 800d4fa: 2b2b cmp r3, #43 ; 0x2b - 800d4fc: d1e0 bne.n 800d4c0 <__cxa_end_catch+0x14> - 800d4fe: f890 3027 ldrb.w r3, [r0, #39] ; 0x27 - 800d502: 2b01 cmp r3, #1 - 800d504: d8dc bhi.n 800d4c0 <__cxa_end_catch+0x14> - 800d506: 6943 ldr r3, [r0, #20] - 800d508: 2b00 cmp r3, #0 - 800d50a: db05 blt.n 800d518 <__cxa_end_catch+0x6c> - 800d50c: 3b01 subs r3, #1 - 800d50e: 2b00 cmp r3, #0 - 800d510: d007 beq.n 800d522 <__cxa_end_catch+0x76> - 800d512: db0d blt.n 800d530 <__cxa_end_catch+0x84> - 800d514: 6143 str r3, [r0, #20] - 800d516: bd08 pop {r3, pc} - 800d518: 3301 adds r3, #1 - 800d51a: d1fb bne.n 800d514 <__cxa_end_catch+0x68> - 800d51c: 6901 ldr r1, [r0, #16] - 800d51e: 6011 str r1, [r2, #0] - 800d520: e7f8 b.n 800d514 <__cxa_end_catch+0x68> - 800d522: 6903 ldr r3, [r0, #16] - 800d524: 6013 str r3, [r2, #0] - 800d526: 3020 adds r0, #32 - 800d528: e8bd 4008 ldmia.w sp!, {r3, lr} - 800d52c: f7f9 bf9a b.w 8007464 <_Unwind_DeleteException> - 800d530: f7ff fa0e bl 800c950 <_ZSt9terminatev> - -0800d534 <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4>: - 800d534: b4f0 push {r4, r5, r6, r7} - 800d536: 4c22 ldr r4, [pc, #136] ; (800d5c0 <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x8c>) - 800d538: 6863 ldr r3, [r4, #4] - 800d53a: f1a0 0608 sub.w r6, r0, #8 - 800d53e: b31b cbz r3, 800d588 <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x54> - 800d540: f850 7c08 ldr.w r7, [r0, #-8] - 800d544: 19f5 adds r5, r6, r7 - 800d546: 42ab cmp r3, r5 - 800d548: d81e bhi.n 800d588 <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x54> - 800d54a: d022 beq.n 800d592 <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x5e> - 800d54c: 6859 ldr r1, [r3, #4] - 800d54e: 2900 cmp r1, #0 - 800d550: d031 beq.n 800d5b6 <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x82> - 800d552: 428d cmp r5, r1 - 800d554: d303 bcc.n 800d55e <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x2a> - 800d556: e02e b.n 800d5b6 <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x82> - 800d558: 4295 cmp r5, r2 - 800d55a: d205 bcs.n 800d568 <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x34> - 800d55c: 4611 mov r1, r2 - 800d55e: 684a ldr r2, [r1, #4] - 800d560: 1d1c adds r4, r3, #4 - 800d562: 460b mov r3, r1 - 800d564: 2a00 cmp r2, #0 - 800d566: d1f7 bne.n 800d558 <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x24> - 800d568: 4295 cmp r5, r2 - 800d56a: d01c beq.n 800d5a6 <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x72> - 800d56c: 6823 ldr r3, [r4, #0] - 800d56e: 681a ldr r2, [r3, #0] - 800d570: 1899 adds r1, r3, r2 - 800d572: 428e cmp r6, r1 - 800d574: d01c beq.n 800d5b0 <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x7c> - 800d576: 685b ldr r3, [r3, #4] - 800d578: f840 3c04 str.w r3, [r0, #-4] - 800d57c: 6823 ldr r3, [r4, #0] - 800d57e: f840 7c08 str.w r7, [r0, #-8] - 800d582: 605e str r6, [r3, #4] - 800d584: bcf0 pop {r4, r5, r6, r7} - 800d586: 4770 bx lr - 800d588: f840 3c04 str.w r3, [r0, #-4] - 800d58c: 6066 str r6, [r4, #4] - 800d58e: bcf0 pop {r4, r5, r6, r7} - 800d590: 4770 bx lr - 800d592: e9d3 2300 ldrd r2, r3, [r3] - 800d596: 4417 add r7, r2 - 800d598: f840 7c08 str.w r7, [r0, #-8] - 800d59c: f840 3c04 str.w r3, [r0, #-4] - 800d5a0: 6066 str r6, [r4, #4] - 800d5a2: bcf0 pop {r4, r5, r6, r7} - 800d5a4: 4770 bx lr - 800d5a6: e9d5 3200 ldrd r3, r2, [r5] - 800d5aa: 604a str r2, [r1, #4] - 800d5ac: 441f add r7, r3 - 800d5ae: e7dd b.n 800d56c <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x38> - 800d5b0: 4417 add r7, r2 - 800d5b2: 601f str r7, [r3, #0] - 800d5b4: e7eb b.n 800d58e <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x5a> - 800d5b6: 460a mov r2, r1 - 800d5b8: 3404 adds r4, #4 - 800d5ba: 4619 mov r1, r3 - 800d5bc: e7d4 b.n 800d568 <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4+0x34> - 800d5be: bf00 nop - 800d5c0: 20000ab0 .word 0x20000ab0 - -0800d5c4 <_ZN12_GLOBAL__N_14pool8allocateEj.constprop.5>: - 800d5c4: b430 push {r4, r5} - 800d5c6: 4c17 ldr r4, [pc, #92] ; (800d624 <_ZN12_GLOBAL__N_14pool8allocateEj.constprop.5+0x60>) - 800d5c8: f100 0208 add.w r2, r0, #8 - 800d5cc: 6863 ldr r3, [r4, #4] - 800d5ce: 2a08 cmp r2, #8 - 800d5d0: bf38 it cc - 800d5d2: 2208 movcc r2, #8 - 800d5d4: b303 cbz r3, 800d618 <_ZN12_GLOBAL__N_14pool8allocateEj.constprop.5+0x54> - 800d5d6: 3207 adds r2, #7 - 800d5d8: 6819 ldr r1, [r3, #0] - 800d5da: f022 0207 bic.w r2, r2, #7 - 800d5de: 428a cmp r2, r1 - 800d5e0: d804 bhi.n 800d5ec <_ZN12_GLOBAL__N_14pool8allocateEj.constprop.5+0x28> - 800d5e2: e01b b.n 800d61c <_ZN12_GLOBAL__N_14pool8allocateEj.constprop.5+0x58> - 800d5e4: 6801 ldr r1, [r0, #0] - 800d5e6: 428a cmp r2, r1 - 800d5e8: d905 bls.n 800d5f6 <_ZN12_GLOBAL__N_14pool8allocateEj.constprop.5+0x32> - 800d5ea: 4603 mov r3, r0 - 800d5ec: 6858 ldr r0, [r3, #4] - 800d5ee: 2800 cmp r0, #0 - 800d5f0: d1f8 bne.n 800d5e4 <_ZN12_GLOBAL__N_14pool8allocateEj.constprop.5+0x20> - 800d5f2: bc30 pop {r4, r5} - 800d5f4: 4770 bx lr - 800d5f6: 3304 adds r3, #4 - 800d5f8: 1a8c subs r4, r1, r2 - 800d5fa: 2c07 cmp r4, #7 - 800d5fc: 6845 ldr r5, [r0, #4] - 800d5fe: d908 bls.n 800d612 <_ZN12_GLOBAL__N_14pool8allocateEj.constprop.5+0x4e> - 800d600: 1881 adds r1, r0, r2 - 800d602: 604d str r5, [r1, #4] - 800d604: 5084 str r4, [r0, r2] - 800d606: 6818 ldr r0, [r3, #0] - 800d608: 6002 str r2, [r0, #0] - 800d60a: 6019 str r1, [r3, #0] - 800d60c: 3008 adds r0, #8 - 800d60e: bc30 pop {r4, r5} - 800d610: 4770 bx lr - 800d612: 6001 str r1, [r0, #0] - 800d614: 601d str r5, [r3, #0] - 800d616: e7f9 b.n 800d60c <_ZN12_GLOBAL__N_14pool8allocateEj.constprop.5+0x48> - 800d618: 4618 mov r0, r3 - 800d61a: e7ea b.n 800d5f2 <_ZN12_GLOBAL__N_14pool8allocateEj.constprop.5+0x2e> - 800d61c: 4618 mov r0, r3 - 800d61e: 1d23 adds r3, r4, #4 - 800d620: e7ea b.n 800d5f8 <_ZN12_GLOBAL__N_14pool8allocateEj.constprop.5+0x34> - 800d622: bf00 nop - 800d624: 20000ab0 .word 0x20000ab0 - -0800d628 <__cxa_allocate_exception>: - 800d628: b510 push {r4, lr} - 800d62a: f100 0480 add.w r4, r0, #128 ; 0x80 - 800d62e: 4620 mov r0, r4 - 800d630: f000 fc4c bl 800decc - 800d634: b138 cbz r0, 800d646 <__cxa_allocate_exception+0x1e> - 800d636: 4603 mov r3, r0 - 800d638: 2280 movs r2, #128 ; 0x80 - 800d63a: 2100 movs r1, #0 - 800d63c: 4618 mov r0, r3 - 800d63e: f000 febe bl 800e3be - 800d642: 3080 adds r0, #128 ; 0x80 - 800d644: bd10 pop {r4, pc} - 800d646: 4620 mov r0, r4 - 800d648: f7ff ffbc bl 800d5c4 <_ZN12_GLOBAL__N_14pool8allocateEj.constprop.5> - 800d64c: 4603 mov r3, r0 - 800d64e: 2800 cmp r0, #0 - 800d650: d1f2 bne.n 800d638 <__cxa_allocate_exception+0x10> - 800d652: f7ff f97d bl 800c950 <_ZSt9terminatev> - 800d656: bf00 nop - -0800d658 <__cxa_free_exception>: - 800d658: 4a06 ldr r2, [pc, #24] ; (800d674 <__cxa_free_exception+0x1c>) - 800d65a: 6893 ldr r3, [r2, #8] - 800d65c: 3880 subs r0, #128 ; 0x80 - 800d65e: 4298 cmp r0, r3 - 800d660: d903 bls.n 800d66a <__cxa_free_exception+0x12> - 800d662: 68d2 ldr r2, [r2, #12] - 800d664: 4413 add r3, r2 - 800d666: 4298 cmp r0, r3 - 800d668: d301 bcc.n 800d66e <__cxa_free_exception+0x16> - 800d66a: f000 bc37 b.w 800dedc - 800d66e: f7ff bf61 b.w 800d534 <_ZN12_GLOBAL__N_14pool4freeEPv.constprop.4> - 800d672: bf00 nop - 800d674: 20000ab0 .word 0x20000ab0 - -0800d678 <_GLOBAL__sub_I__ZN9__gnu_cxx9__freeresEv>: - 800d678: b538 push {r3, r4, r5, lr} - 800d67a: 4c08 ldr r4, [pc, #32] ; (800d69c <_GLOBAL__sub_I__ZN9__gnu_cxx9__freeresEv+0x24>) - 800d67c: f44f 651e mov.w r5, #2528 ; 0x9e0 - 800d680: 4628 mov r0, r5 - 800d682: 60e5 str r5, [r4, #12] - 800d684: f000 fc22 bl 800decc - 800d688: 60a0 str r0, [r4, #8] - 800d68a: b120 cbz r0, 800d696 <_GLOBAL__sub_I__ZN9__gnu_cxx9__freeresEv+0x1e> - 800d68c: 2300 movs r3, #0 - 800d68e: 6060 str r0, [r4, #4] - 800d690: e9c0 5300 strd r5, r3, [r0] - 800d694: bd38 pop {r3, r4, r5, pc} - 800d696: 60e0 str r0, [r4, #12] - 800d698: 6060 str r0, [r4, #4] - 800d69a: bd38 pop {r3, r4, r5, pc} - 800d69c: 20000ab0 .word 0x20000ab0 - -0800d6a0 <_ZNSt13bad_exceptionD1Ev>: - 800d6a0: 4770 bx lr - 800d6a2: bf00 nop - -0800d6a4 <_ZGTtNKSt13bad_exception4whatEv>: - 800d6a4: 4800 ldr r0, [pc, #0] ; (800d6a8 <_ZGTtNKSt13bad_exception4whatEv+0x4>) - 800d6a6: 4770 bx lr - 800d6a8: 080123ac .word 0x080123ac - -0800d6ac <_ZNSt13bad_exceptionD0Ev>: - 800d6ac: b510 push {r4, lr} - 800d6ae: 2104 movs r1, #4 - 800d6b0: 4604 mov r4, r0 - 800d6b2: f000 f803 bl 800d6bc <_ZdlPvj> - 800d6b6: 4620 mov r0, r4 - 800d6b8: bd10 pop {r4, pc} - 800d6ba: bf00 nop - -0800d6bc <_ZdlPvj>: - 800d6bc: f000 b9a0 b.w 800da00 <_ZdlPv> - -0800d6c0 <_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv>: - 800d6c0: b570 push {r4, r5, r6, lr} - 800d6c2: 6803 ldr r3, [r0, #0] - 800d6c4: b084 sub sp, #16 - 800d6c6: 2400 movs r4, #0 - 800d6c8: 699e ldr r6, [r3, #24] - 800d6ca: 9400 str r4, [sp, #0] - 800d6cc: 2310 movs r3, #16 - 800d6ce: 4615 mov r5, r2 - 800d6d0: e9cd 3402 strd r3, r4, [sp, #8] - 800d6d4: 6812 ldr r2, [r2, #0] - 800d6d6: f88d 4004 strb.w r4, [sp, #4] - 800d6da: 466b mov r3, sp - 800d6dc: 47b0 blx r6 - 800d6de: f89d 3004 ldrb.w r3, [sp, #4] - 800d6e2: f003 0306 and.w r3, r3, #6 - 800d6e6: 2b06 cmp r3, #6 - 800d6e8: bf03 ittte eq - 800d6ea: 9b00 ldreq r3, [sp, #0] - 800d6ec: 602b streq r3, [r5, #0] - 800d6ee: 2001 moveq r0, #1 - 800d6f0: 4620 movne r0, r4 - 800d6f2: b004 add sp, #16 - 800d6f4: bd70 pop {r4, r5, r6, pc} - 800d6f6: bf00 nop - -0800d6f8 <_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_>: - 800d6f8: 9800 ldr r0, [sp, #0] - 800d6fa: 4290 cmp r0, r2 - 800d6fc: bf0c ite eq - 800d6fe: 2006 moveq r0, #6 - 800d700: 2001 movne r0, #1 - 800d702: 4770 bx lr - -0800d704 <_ZN10__cxxabiv117__class_type_infoD1Ev>: - 800d704: b510 push {r4, lr} - 800d706: 4b03 ldr r3, [pc, #12] ; (800d714 <_ZN10__cxxabiv117__class_type_infoD1Ev+0x10>) - 800d708: 6003 str r3, [r0, #0] - 800d70a: 4604 mov r4, r0 - 800d70c: f000 f97a bl 800da04 <_ZNSt9type_infoD1Ev> - 800d710: 4620 mov r0, r4 - 800d712: bd10 pop {r4, pc} - 800d714: 08012498 .word 0x08012498 - -0800d718 <_ZN10__cxxabiv117__class_type_infoD0Ev>: - 800d718: b510 push {r4, lr} - 800d71a: 4b05 ldr r3, [pc, #20] ; (800d730 <_ZN10__cxxabiv117__class_type_infoD0Ev+0x18>) - 800d71c: 6003 str r3, [r0, #0] - 800d71e: 4604 mov r4, r0 - 800d720: f000 f970 bl 800da04 <_ZNSt9type_infoD1Ev> - 800d724: 4620 mov r0, r4 - 800d726: 2108 movs r1, #8 - 800d728: f7ff ffc8 bl 800d6bc <_ZdlPvj> - 800d72c: 4620 mov r0, r4 - 800d72e: bd10 pop {r4, pc} - 800d730: 08012498 .word 0x08012498 - -0800d734 <_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE>: - 800d734: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 800d738: e9dd 1408 ldrd r1, r4, [sp, #32] - 800d73c: 9d06 ldr r5, [sp, #24] - 800d73e: 428d cmp r5, r1 - 800d740: 4690 mov r8, r2 - 800d742: 461f mov r7, r3 - 800d744: 4606 mov r6, r0 - 800d746: d00c beq.n 800d762 <_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE+0x2e> - 800d748: 4639 mov r1, r7 - 800d74a: 4630 mov r0, r6 - 800d74c: f000 f95e bl 800da0c <_ZNKSt9type_infoeqERKS_> - 800d750: b120 cbz r0, 800d75c <_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE+0x28> - 800d752: 2301 movs r3, #1 - 800d754: 6025 str r5, [r4, #0] - 800d756: f884 8004 strb.w r8, [r4, #4] - 800d75a: 71a3 strb r3, [r4, #6] - 800d75c: 2000 movs r0, #0 - 800d75e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 800d762: 9907 ldr r1, [sp, #28] - 800d764: f000 f952 bl 800da0c <_ZNKSt9type_infoeqERKS_> - 800d768: 2800 cmp r0, #0 - 800d76a: d0ed beq.n 800d748 <_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE+0x14> - 800d76c: f884 8005 strb.w r8, [r4, #5] - 800d770: 2000 movs r0, #0 - 800d772: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 800d776: bf00 nop - -0800d778 <_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE>: - 800d778: b538 push {r3, r4, r5, lr} - 800d77a: 4615 mov r5, r2 - 800d77c: 461c mov r4, r3 - 800d77e: f000 f945 bl 800da0c <_ZNKSt9type_infoeqERKS_> - 800d782: b120 cbz r0, 800d78e <_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE+0x16> - 800d784: 2208 movs r2, #8 - 800d786: 2306 movs r3, #6 - 800d788: 6025 str r5, [r4, #0] - 800d78a: 60e2 str r2, [r4, #12] - 800d78c: 7123 strb r3, [r4, #4] - 800d78e: bd38 pop {r3, r4, r5, pc} - -0800d790 <_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj>: - 800d790: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 800d794: 4617 mov r7, r2 - 800d796: 461c mov r4, r3 - 800d798: 4606 mov r6, r0 - 800d79a: 460d mov r5, r1 - 800d79c: f000 f936 bl 800da0c <_ZNKSt9type_infoeqERKS_> - 800d7a0: b908 cbnz r0, 800d7a6 <_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj+0x16> - 800d7a2: 2c03 cmp r4, #3 - 800d7a4: d901 bls.n 800d7aa <_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj+0x1a> - 800d7a6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 800d7aa: 682b ldr r3, [r5, #0] - 800d7ac: 463a mov r2, r7 - 800d7ae: 4631 mov r1, r6 - 800d7b0: 4628 mov r0, r5 - 800d7b2: 695b ldr r3, [r3, #20] - 800d7b4: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 800d7b8: 4718 bx r3 - 800d7ba: bf00 nop - -0800d7bc <_ZN9__gnu_cxx27__verbose_terminate_handlerEv>: - 800d7bc: b570 push {r4, r5, r6, lr} - 800d7be: 4b3c ldr r3, [pc, #240] ; (800d8b0 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0xf4>) - 800d7c0: 781a ldrb r2, [r3, #0] - 800d7c2: b082 sub sp, #8 - 800d7c4: 2a00 cmp r2, #0 - 800d7c6: d135 bne.n 800d834 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x78> - 800d7c8: 2401 movs r4, #1 - 800d7ca: 701c strb r4, [r3, #0] - 800d7cc: f000 f87e bl 800d8cc <__cxa_current_exception_type> - 800d7d0: 2800 cmp r0, #0 - 800d7d2: d03d beq.n 800d850 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x94> - 800d7d4: 6844 ldr r4, [r0, #4] - 800d7d6: 4d37 ldr r5, [pc, #220] ; (800d8b4 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0xf8>) - 800d7d8: 7823 ldrb r3, [r4, #0] - 800d7da: 2b2a cmp r3, #42 ; 0x2a - 800d7dc: ab02 add r3, sp, #8 - 800d7de: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 800d7e2: bf08 it eq - 800d7e4: 3401 addeq r4, #1 - 800d7e6: f843 2d04 str.w r2, [r3, #-4]! - 800d7ea: 2200 movs r2, #0 - 800d7ec: 4611 mov r1, r2 - 800d7ee: 4620 mov r0, r4 - 800d7f0: f7f9 fa1e bl 8006c30 <__cxa_demangle> - 800d7f4: 682b ldr r3, [r5, #0] - 800d7f6: 4606 mov r6, r0 - 800d7f8: 68db ldr r3, [r3, #12] - 800d7fa: 482f ldr r0, [pc, #188] ; (800d8b8 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0xfc>) - 800d7fc: 2230 movs r2, #48 ; 0x30 - 800d7fe: 2101 movs r1, #1 - 800d800: f000 fb2e bl 800de60 - 800d804: 9b01 ldr r3, [sp, #4] - 800d806: b17b cbz r3, 800d828 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x6c> - 800d808: 682b ldr r3, [r5, #0] - 800d80a: 4620 mov r0, r4 - 800d80c: 68d9 ldr r1, [r3, #12] - 800d80e: f000 f987 bl 800db20 - 800d812: 682b ldr r3, [r5, #0] - 800d814: 4829 ldr r0, [pc, #164] ; (800d8bc <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x100>) - 800d816: 68db ldr r3, [r3, #12] - 800d818: 2202 movs r2, #2 - 800d81a: 2101 movs r1, #1 - 800d81c: f000 fb20 bl 800de60 - 800d820: 9b01 ldr r3, [sp, #4] - 800d822: b18b cbz r3, 800d848 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x8c> - 800d824: f7ff fdca bl 800d3bc <__cxa_rethrow> - 800d828: 682b ldr r3, [r5, #0] - 800d82a: 4630 mov r0, r6 - 800d82c: 68d9 ldr r1, [r3, #12] - 800d82e: f000 f977 bl 800db20 - 800d832: e7ee b.n 800d812 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x56> - 800d834: 4b1f ldr r3, [pc, #124] ; (800d8b4 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0xf8>) - 800d836: 4822 ldr r0, [pc, #136] ; (800d8c0 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x104>) - 800d838: 681b ldr r3, [r3, #0] - 800d83a: 221d movs r2, #29 - 800d83c: 68db ldr r3, [r3, #12] - 800d83e: 2101 movs r1, #1 - 800d840: f000 fb0e bl 800de60 - 800d844: f000 f8f8 bl 800da38 - 800d848: 4630 mov r0, r6 - 800d84a: f000 fb47 bl 800dedc - 800d84e: e7e9 b.n 800d824 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x68> - 800d850: 4b18 ldr r3, [pc, #96] ; (800d8b4 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0xf8>) - 800d852: 481c ldr r0, [pc, #112] ; (800d8c4 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x108>) - 800d854: 681b ldr r3, [r3, #0] - 800d856: 4621 mov r1, r4 - 800d858: 68db ldr r3, [r3, #12] - 800d85a: 222d movs r2, #45 ; 0x2d - 800d85c: f000 fb00 bl 800de60 - 800d860: f000 f8ea bl 800da38 - 800d864: 2901 cmp r1, #1 - 800d866: 460c mov r4, r1 - 800d868: d119 bne.n 800d89e <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0xe2> - 800d86a: f7ff fddf bl 800d42c <__cxa_begin_catch> - 800d86e: 6803 ldr r3, [r0, #0] - 800d870: 689b ldr r3, [r3, #8] - 800d872: 4798 blx r3 - 800d874: 682b ldr r3, [r5, #0] - 800d876: 4606 mov r6, r0 - 800d878: 68db ldr r3, [r3, #12] - 800d87a: 4813 ldr r0, [pc, #76] ; (800d8c8 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x10c>) - 800d87c: 4621 mov r1, r4 - 800d87e: 220b movs r2, #11 - 800d880: f000 faee bl 800de60 - 800d884: 682b ldr r3, [r5, #0] - 800d886: 4630 mov r0, r6 - 800d888: 68d9 ldr r1, [r3, #12] - 800d88a: f000 f949 bl 800db20 - 800d88e: 682b ldr r3, [r5, #0] - 800d890: 200a movs r0, #10 - 800d892: 68d9 ldr r1, [r3, #12] - 800d894: f000 f902 bl 800da9c - 800d898: f7ff fe08 bl 800d4ac <__cxa_end_catch> - 800d89c: e7e0 b.n 800d860 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0xa4> - 800d89e: f7ff fdc5 bl 800d42c <__cxa_begin_catch> - 800d8a2: f7ff fe03 bl 800d4ac <__cxa_end_catch> - 800d8a6: e7db b.n 800d860 <_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0xa4> - 800d8a8: f7ff fe00 bl 800d4ac <__cxa_end_catch> - 800d8ac: f7ff f914 bl 800cad8 <__cxa_end_cleanup> - 800d8b0: 20000ac0 .word 0x20000ac0 - 800d8b4: 20000014 .word 0x20000014 - 800d8b8: 080124dc .word 0x080124dc - 800d8bc: 08012510 .word 0x08012510 - 800d8c0: 080124bc .word 0x080124bc - 800d8c4: 08012514 .word 0x08012514 - 800d8c8: 08012544 .word 0x08012544 - -0800d8cc <__cxa_current_exception_type>: - 800d8cc: b508 push {r3, lr} - 800d8ce: f7ff f9cf bl 800cc70 <__cxa_get_globals> - 800d8d2: 6800 ldr r0, [r0, #0] - 800d8d4: b130 cbz r0, 800d8e4 <__cxa_current_exception_type+0x18> - 800d8d6: f890 3027 ldrb.w r3, [r0, #39] ; 0x27 - 800d8da: 6800 ldr r0, [r0, #0] - 800d8dc: 2b01 cmp r3, #1 - 800d8de: bf08 it eq - 800d8e0: f850 0c78 ldreq.w r0, [r0, #-120] - 800d8e4: bd08 pop {r3, pc} - 800d8e6: bf00 nop - -0800d8e8 <_ZN10__cxxabiv120__si_class_type_infoD1Ev>: - 800d8e8: b510 push {r4, lr} - 800d8ea: 4b03 ldr r3, [pc, #12] ; (800d8f8 <_ZN10__cxxabiv120__si_class_type_infoD1Ev+0x10>) - 800d8ec: 6003 str r3, [r0, #0] - 800d8ee: 4604 mov r4, r0 - 800d8f0: f7ff ff08 bl 800d704 <_ZN10__cxxabiv117__class_type_infoD1Ev> - 800d8f4: 4620 mov r0, r4 - 800d8f6: bd10 pop {r4, pc} - 800d8f8: 08012df0 .word 0x08012df0 - -0800d8fc <_ZN10__cxxabiv120__si_class_type_infoD0Ev>: - 800d8fc: b510 push {r4, lr} - 800d8fe: 4b05 ldr r3, [pc, #20] ; (800d914 <_ZN10__cxxabiv120__si_class_type_infoD0Ev+0x18>) - 800d900: 6003 str r3, [r0, #0] - 800d902: 4604 mov r4, r0 - 800d904: f7ff fefe bl 800d704 <_ZN10__cxxabiv117__class_type_infoD1Ev> - 800d908: 4620 mov r0, r4 - 800d90a: 210c movs r1, #12 - 800d90c: f7ff fed6 bl 800d6bc <_ZdlPvj> - 800d910: 4620 mov r0, r4 - 800d912: bd10 pop {r4, pc} - 800d914: 08012df0 .word 0x08012df0 - -0800d918 <_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_>: - 800d918: b570 push {r4, r5, r6, lr} - 800d91a: b082 sub sp, #8 - 800d91c: 460e mov r6, r1 - 800d91e: 9c06 ldr r4, [sp, #24] - 800d920: 4294 cmp r4, r2 - 800d922: 4605 mov r5, r0 - 800d924: d009 beq.n 800d93a <_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_+0x22> - 800d926: 68a8 ldr r0, [r5, #8] - 800d928: 6805 ldr r5, [r0, #0] - 800d92a: 9406 str r4, [sp, #24] - 800d92c: 6a2c ldr r4, [r5, #32] - 800d92e: 4631 mov r1, r6 - 800d930: 46a4 mov ip, r4 - 800d932: b002 add sp, #8 - 800d934: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - 800d938: 4760 bx ip - 800d93a: 4619 mov r1, r3 - 800d93c: 9201 str r2, [sp, #4] - 800d93e: 9300 str r3, [sp, #0] - 800d940: f000 f864 bl 800da0c <_ZNKSt9type_infoeqERKS_> - 800d944: e9dd 3200 ldrd r3, r2, [sp] - 800d948: 2800 cmp r0, #0 - 800d94a: d0ec beq.n 800d926 <_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_+0xe> - 800d94c: 2006 movs r0, #6 - 800d94e: b002 add sp, #8 - 800d950: bd70 pop {r4, r5, r6, pc} - 800d952: bf00 nop - -0800d954 <_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE>: - 800d954: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800d958: 460e mov r6, r1 - 800d95a: b081 sub sp, #4 - 800d95c: 4619 mov r1, r3 - 800d95e: 461f mov r7, r3 - 800d960: 4691 mov r9, r2 - 800d962: 4683 mov fp, r0 - 800d964: e9dd 4a0a ldrd r4, sl, [sp, #40] ; 0x28 - 800d968: e9dd 850c ldrd r8, r5, [sp, #48] ; 0x30 - 800d96c: f000 f84e bl 800da0c <_ZNKSt9type_infoeqERKS_> - 800d970: b170 cbz r0, 800d990 <_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE+0x3c> - 800d972: 2e00 cmp r6, #0 - 800d974: 602c str r4, [r5, #0] - 800d976: f885 9004 strb.w r9, [r5, #4] - 800d97a: db1d blt.n 800d9b8 <_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE+0x64> - 800d97c: 4434 add r4, r6 - 800d97e: 45a0 cmp r8, r4 - 800d980: bf0c ite eq - 800d982: 2406 moveq r4, #6 - 800d984: 2401 movne r4, #1 - 800d986: 71ac strb r4, [r5, #6] - 800d988: 2000 movs r0, #0 - 800d98a: b001 add sp, #4 - 800d98c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800d990: 4544 cmp r4, r8 - 800d992: d016 beq.n 800d9c2 <_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE+0x6e> - 800d994: f8db 0008 ldr.w r0, [fp, #8] - 800d998: f8d0 c000 ldr.w ip, [r0] - 800d99c: e9cd 850c strd r8, r5, [sp, #48] ; 0x30 - 800d9a0: e9cd 4a0a strd r4, sl, [sp, #40] ; 0x28 - 800d9a4: f8dc 401c ldr.w r4, [ip, #28] - 800d9a8: 463b mov r3, r7 - 800d9aa: 464a mov r2, r9 - 800d9ac: 4631 mov r1, r6 - 800d9ae: 46a4 mov ip, r4 - 800d9b0: b001 add sp, #4 - 800d9b2: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800d9b6: 4760 bx ip - 800d9b8: 3602 adds r6, #2 - 800d9ba: d1e5 bne.n 800d988 <_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE+0x34> - 800d9bc: 2301 movs r3, #1 - 800d9be: 71ab strb r3, [r5, #6] - 800d9c0: e7e2 b.n 800d988 <_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE+0x34> - 800d9c2: 4651 mov r1, sl - 800d9c4: 4658 mov r0, fp - 800d9c6: f000 f821 bl 800da0c <_ZNKSt9type_infoeqERKS_> - 800d9ca: 2800 cmp r0, #0 - 800d9cc: d0e2 beq.n 800d994 <_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE+0x40> - 800d9ce: f885 9005 strb.w r9, [r5, #5] - 800d9d2: e7d9 b.n 800d988 <_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE+0x34> - -0800d9d4 <_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE>: - 800d9d4: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 800d9d8: 4607 mov r7, r0 - 800d9da: 460c mov r4, r1 - 800d9dc: 4615 mov r5, r2 - 800d9de: 461e mov r6, r3 - 800d9e0: f7ff feca bl 800d778 <_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE> - 800d9e4: b108 cbz r0, 800d9ea <_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE+0x16> - 800d9e6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 800d9ea: 68b8 ldr r0, [r7, #8] - 800d9ec: 6807 ldr r7, [r0, #0] - 800d9ee: 4621 mov r1, r4 - 800d9f0: 69bc ldr r4, [r7, #24] - 800d9f2: 4633 mov r3, r6 - 800d9f4: 462a mov r2, r5 - 800d9f6: 46a4 mov ip, r4 - 800d9f8: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 800d9fc: 4760 bx ip - 800d9fe: bf00 nop - -0800da00 <_ZdlPv>: - 800da00: f000 ba6c b.w 800dedc - -0800da04 <_ZNSt9type_infoD1Ev>: - 800da04: 4770 bx lr - 800da06: bf00 nop - -0800da08 <_ZNKSt9type_info14__is_pointer_pEv>: - 800da08: 2000 movs r0, #0 - 800da0a: 4770 bx lr - -0800da0c <_ZNKSt9type_infoeqERKS_>: - 800da0c: 4281 cmp r1, r0 - 800da0e: d00f beq.n 800da30 <_ZNKSt9type_infoeqERKS_+0x24> - 800da10: b508 push {r3, lr} - 800da12: 6840 ldr r0, [r0, #4] - 800da14: 7803 ldrb r3, [r0, #0] - 800da16: 2b2a cmp r3, #42 ; 0x2a - 800da18: d00c beq.n 800da34 <_ZNKSt9type_infoeqERKS_+0x28> - 800da1a: 6849 ldr r1, [r1, #4] - 800da1c: 780b ldrb r3, [r1, #0] - 800da1e: 2b2a cmp r3, #42 ; 0x2a - 800da20: bf08 it eq - 800da22: 3101 addeq r1, #1 - 800da24: f7f9 f9cc bl 8006dc0 - 800da28: fab0 f080 clz r0, r0 - 800da2c: 0940 lsrs r0, r0, #5 - 800da2e: bd08 pop {r3, pc} - 800da30: 2001 movs r0, #1 - 800da32: 4770 bx lr - 800da34: 2000 movs r0, #0 - 800da36: bd08 pop {r3, pc} - -0800da38 : - 800da38: b508 push {r3, lr} - 800da3a: 2006 movs r0, #6 - 800da3c: f000 fef2 bl 800e824 - 800da40: 2001 movs r0, #1 - 800da42: f7fe fe63 bl 800c70c <_exit> - ... - -0800da48 <__errno>: - 800da48: 4b01 ldr r3, [pc, #4] ; (800da50 <__errno+0x8>) - 800da4a: 6818 ldr r0, [r3, #0] - 800da4c: 4770 bx lr - 800da4e: bf00 nop - 800da50: 20000014 .word 0x20000014 - -0800da54 <_fputc_r>: - 800da54: b570 push {r4, r5, r6, lr} - 800da56: 460e mov r6, r1 - 800da58: 4614 mov r4, r2 - 800da5a: 4605 mov r5, r0 - 800da5c: b118 cbz r0, 800da66 <_fputc_r+0x12> - 800da5e: 6b83 ldr r3, [r0, #56] ; 0x38 - 800da60: b90b cbnz r3, 800da66 <_fputc_r+0x12> - 800da62: f003 f8a7 bl 8010bb4 <__sinit> - 800da66: 6e63 ldr r3, [r4, #100] ; 0x64 - 800da68: 07d8 lsls r0, r3, #31 - 800da6a: d405 bmi.n 800da78 <_fputc_r+0x24> - 800da6c: 89a3 ldrh r3, [r4, #12] - 800da6e: 0599 lsls r1, r3, #22 - 800da70: d402 bmi.n 800da78 <_fputc_r+0x24> - 800da72: 6da0 ldr r0, [r4, #88] ; 0x58 - 800da74: f000 fa28 bl 800dec8 <__retarget_lock_acquire_recursive> - 800da78: 4622 mov r2, r4 - 800da7a: 4628 mov r0, r5 - 800da7c: 4631 mov r1, r6 - 800da7e: f000 fcb3 bl 800e3e8 <_putc_r> - 800da82: 6e63 ldr r3, [r4, #100] ; 0x64 - 800da84: 07da lsls r2, r3, #31 - 800da86: 4605 mov r5, r0 - 800da88: d405 bmi.n 800da96 <_fputc_r+0x42> - 800da8a: 89a3 ldrh r3, [r4, #12] - 800da8c: 059b lsls r3, r3, #22 - 800da8e: d402 bmi.n 800da96 <_fputc_r+0x42> - 800da90: 6da0 ldr r0, [r4, #88] ; 0x58 - 800da92: f000 fa1a bl 800deca <__retarget_lock_release_recursive> - 800da96: 4628 mov r0, r5 - 800da98: bd70 pop {r4, r5, r6, pc} - ... - -0800da9c : - 800da9c: 4b02 ldr r3, [pc, #8] ; (800daa8 ) - 800da9e: 460a mov r2, r1 - 800daa0: 4601 mov r1, r0 - 800daa2: 6818 ldr r0, [r3, #0] - 800daa4: f7ff bfd6 b.w 800da54 <_fputc_r> - 800daa8: 20000014 .word 0x20000014 - -0800daac <_fputs_r>: - 800daac: b530 push {r4, r5, lr} - 800daae: b087 sub sp, #28 - 800dab0: 4605 mov r5, r0 - 800dab2: 4608 mov r0, r1 - 800dab4: 4614 mov r4, r2 - 800dab6: 9101 str r1, [sp, #4] - 800dab8: f7f9 f98c bl 8006dd4 - 800dabc: ab01 add r3, sp, #4 - 800dabe: 9303 str r3, [sp, #12] - 800dac0: 2301 movs r3, #1 - 800dac2: 9005 str r0, [sp, #20] - 800dac4: 9002 str r0, [sp, #8] - 800dac6: 9304 str r3, [sp, #16] - 800dac8: b125 cbz r5, 800dad4 <_fputs_r+0x28> - 800daca: 6bab ldr r3, [r5, #56] ; 0x38 - 800dacc: b913 cbnz r3, 800dad4 <_fputs_r+0x28> - 800dace: 4628 mov r0, r5 - 800dad0: f003 f870 bl 8010bb4 <__sinit> - 800dad4: 6e63 ldr r3, [r4, #100] ; 0x64 - 800dad6: 07db lsls r3, r3, #31 - 800dad8: d405 bmi.n 800dae6 <_fputs_r+0x3a> - 800dada: 89a3 ldrh r3, [r4, #12] - 800dadc: 0598 lsls r0, r3, #22 - 800dade: d402 bmi.n 800dae6 <_fputs_r+0x3a> - 800dae0: 6da0 ldr r0, [r4, #88] ; 0x58 - 800dae2: f000 f9f1 bl 800dec8 <__retarget_lock_acquire_recursive> - 800dae6: f9b4 300c ldrsh.w r3, [r4, #12] - 800daea: 0499 lsls r1, r3, #18 - 800daec: d406 bmi.n 800dafc <_fputs_r+0x50> - 800daee: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 800daf2: 81a3 strh r3, [r4, #12] - 800daf4: 6e63 ldr r3, [r4, #100] ; 0x64 - 800daf6: f423 5300 bic.w r3, r3, #8192 ; 0x2000 - 800dafa: 6663 str r3, [r4, #100] ; 0x64 - 800dafc: aa03 add r2, sp, #12 - 800dafe: 4628 mov r0, r5 - 800db00: 4621 mov r1, r4 - 800db02: f000 f815 bl 800db30 <__sfvwrite_r> - 800db06: 6e63 ldr r3, [r4, #100] ; 0x64 - 800db08: 07da lsls r2, r3, #31 - 800db0a: 4605 mov r5, r0 - 800db0c: d405 bmi.n 800db1a <_fputs_r+0x6e> - 800db0e: 89a3 ldrh r3, [r4, #12] - 800db10: 059b lsls r3, r3, #22 - 800db12: d402 bmi.n 800db1a <_fputs_r+0x6e> - 800db14: 6da0 ldr r0, [r4, #88] ; 0x58 - 800db16: f000 f9d8 bl 800deca <__retarget_lock_release_recursive> - 800db1a: 4628 mov r0, r5 - 800db1c: b007 add sp, #28 - 800db1e: bd30 pop {r4, r5, pc} - -0800db20 : - 800db20: 4b02 ldr r3, [pc, #8] ; (800db2c ) - 800db22: 460a mov r2, r1 - 800db24: 4601 mov r1, r0 - 800db26: 6818 ldr r0, [r3, #0] - 800db28: f7ff bfc0 b.w 800daac <_fputs_r> - 800db2c: 20000014 .word 0x20000014 - -0800db30 <__sfvwrite_r>: - 800db30: 6893 ldr r3, [r2, #8] - 800db32: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800db36: 4680 mov r8, r0 - 800db38: 460c mov r4, r1 - 800db3a: 4691 mov r9, r2 - 800db3c: b91b cbnz r3, 800db46 <__sfvwrite_r+0x16> - 800db3e: 2000 movs r0, #0 - 800db40: b003 add sp, #12 - 800db42: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800db46: 898b ldrh r3, [r1, #12] - 800db48: 0718 lsls r0, r3, #28 - 800db4a: d54f bpl.n 800dbec <__sfvwrite_r+0xbc> - 800db4c: 690b ldr r3, [r1, #16] - 800db4e: 2b00 cmp r3, #0 - 800db50: d04c beq.n 800dbec <__sfvwrite_r+0xbc> - 800db52: 89a5 ldrh r5, [r4, #12] - 800db54: f8d9 6000 ldr.w r6, [r9] - 800db58: f015 0702 ands.w r7, r5, #2 - 800db5c: d169 bne.n 800dc32 <__sfvwrite_r+0x102> - 800db5e: f015 0501 ands.w r5, r5, #1 - 800db62: f000 809a beq.w 800dc9a <__sfvwrite_r+0x16a> - 800db66: 4638 mov r0, r7 - 800db68: 46ba mov sl, r7 - 800db6a: 46bb mov fp, r7 - 800db6c: f1bb 0f00 cmp.w fp, #0 - 800db70: f000 8103 beq.w 800dd7a <__sfvwrite_r+0x24a> - 800db74: b950 cbnz r0, 800db8c <__sfvwrite_r+0x5c> - 800db76: 465a mov r2, fp - 800db78: 210a movs r1, #10 - 800db7a: 4650 mov r0, sl - 800db7c: f7f9 f8d0 bl 8006d20 - 800db80: 2800 cmp r0, #0 - 800db82: f000 80ff beq.w 800dd84 <__sfvwrite_r+0x254> - 800db86: 3001 adds r0, #1 - 800db88: eba0 070a sub.w r7, r0, sl - 800db8c: 6820 ldr r0, [r4, #0] - 800db8e: 6921 ldr r1, [r4, #16] - 800db90: 6962 ldr r2, [r4, #20] - 800db92: 455f cmp r7, fp - 800db94: 463b mov r3, r7 - 800db96: bf28 it cs - 800db98: 465b movcs r3, fp - 800db9a: 4288 cmp r0, r1 - 800db9c: f240 80f5 bls.w 800dd8a <__sfvwrite_r+0x25a> - 800dba0: 68a5 ldr r5, [r4, #8] - 800dba2: 4415 add r5, r2 - 800dba4: 42ab cmp r3, r5 - 800dba6: f340 80f0 ble.w 800dd8a <__sfvwrite_r+0x25a> - 800dbaa: 4651 mov r1, sl - 800dbac: 462a mov r2, r5 - 800dbae: f000 fbed bl 800e38c - 800dbb2: 6823 ldr r3, [r4, #0] - 800dbb4: 442b add r3, r5 - 800dbb6: 6023 str r3, [r4, #0] - 800dbb8: 4621 mov r1, r4 - 800dbba: 4640 mov r0, r8 - 800dbbc: f002 ff8e bl 8010adc <_fflush_r> - 800dbc0: 2800 cmp r0, #0 - 800dbc2: d165 bne.n 800dc90 <__sfvwrite_r+0x160> - 800dbc4: 1b7f subs r7, r7, r5 - 800dbc6: f040 80fa bne.w 800ddbe <__sfvwrite_r+0x28e> - 800dbca: 4621 mov r1, r4 - 800dbcc: 4640 mov r0, r8 - 800dbce: f002 ff85 bl 8010adc <_fflush_r> - 800dbd2: 2800 cmp r0, #0 - 800dbd4: d15c bne.n 800dc90 <__sfvwrite_r+0x160> - 800dbd6: f8d9 3008 ldr.w r3, [r9, #8] - 800dbda: 44aa add sl, r5 - 800dbdc: ebab 0b05 sub.w fp, fp, r5 - 800dbe0: 1b5d subs r5, r3, r5 - 800dbe2: f8c9 5008 str.w r5, [r9, #8] - 800dbe6: 2d00 cmp r5, #0 - 800dbe8: d1c0 bne.n 800db6c <__sfvwrite_r+0x3c> - 800dbea: e7a8 b.n 800db3e <__sfvwrite_r+0xe> - 800dbec: 4621 mov r1, r4 - 800dbee: 4640 mov r0, r8 - 800dbf0: f002 f8ba bl 800fd68 <__swsetup_r> - 800dbf4: 2800 cmp r0, #0 - 800dbf6: d0ac beq.n 800db52 <__sfvwrite_r+0x22> - 800dbf8: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 800dbfc: e7a0 b.n 800db40 <__sfvwrite_r+0x10> - 800dbfe: e9d6 a700 ldrd sl, r7, [r6] - 800dc02: 3608 adds r6, #8 - 800dc04: 2f00 cmp r7, #0 - 800dc06: d0fa beq.n 800dbfe <__sfvwrite_r+0xce> - 800dc08: 455f cmp r7, fp - 800dc0a: 463b mov r3, r7 - 800dc0c: 4652 mov r2, sl - 800dc0e: bf28 it cs - 800dc10: 465b movcs r3, fp - 800dc12: 69e1 ldr r1, [r4, #28] - 800dc14: 6a65 ldr r5, [r4, #36] ; 0x24 - 800dc16: 4640 mov r0, r8 - 800dc18: 47a8 blx r5 - 800dc1a: 2800 cmp r0, #0 - 800dc1c: dd38 ble.n 800dc90 <__sfvwrite_r+0x160> - 800dc1e: f8d9 3008 ldr.w r3, [r9, #8] - 800dc22: 4482 add sl, r0 - 800dc24: 1a3f subs r7, r7, r0 - 800dc26: 1a18 subs r0, r3, r0 - 800dc28: f8c9 0008 str.w r0, [r9, #8] - 800dc2c: 2800 cmp r0, #0 - 800dc2e: d1e9 bne.n 800dc04 <__sfvwrite_r+0xd4> - 800dc30: e785 b.n 800db3e <__sfvwrite_r+0xe> - 800dc32: f04f 0a00 mov.w sl, #0 - 800dc36: 4657 mov r7, sl - 800dc38: f8df b18c ldr.w fp, [pc, #396] ; 800ddc8 <__sfvwrite_r+0x298> - 800dc3c: e7e2 b.n 800dc04 <__sfvwrite_r+0xd4> - 800dc3e: e9d6 5a00 ldrd r5, sl, [r6] - 800dc42: 3608 adds r6, #8 - 800dc44: f1ba 0f00 cmp.w sl, #0 - 800dc48: d0f9 beq.n 800dc3e <__sfvwrite_r+0x10e> - 800dc4a: 89a2 ldrh r2, [r4, #12] - 800dc4c: 68a3 ldr r3, [r4, #8] - 800dc4e: 6820 ldr r0, [r4, #0] - 800dc50: 0591 lsls r1, r2, #22 - 800dc52: d564 bpl.n 800dd1e <__sfvwrite_r+0x1ee> - 800dc54: 4553 cmp r3, sl - 800dc56: d836 bhi.n 800dcc6 <__sfvwrite_r+0x196> - 800dc58: f412 6f90 tst.w r2, #1152 ; 0x480 - 800dc5c: d033 beq.n 800dcc6 <__sfvwrite_r+0x196> - 800dc5e: 6921 ldr r1, [r4, #16] - 800dc60: 6967 ldr r7, [r4, #20] - 800dc62: eba0 0b01 sub.w fp, r0, r1 - 800dc66: 2302 movs r3, #2 - 800dc68: eb07 0747 add.w r7, r7, r7, lsl #1 - 800dc6c: fb97 f7f3 sdiv r7, r7, r3 - 800dc70: f10b 0301 add.w r3, fp, #1 - 800dc74: 4453 add r3, sl - 800dc76: 429f cmp r7, r3 - 800dc78: bf38 it cc - 800dc7a: 461f movcc r7, r3 - 800dc7c: 0553 lsls r3, r2, #21 - 800dc7e: d53e bpl.n 800dcfe <__sfvwrite_r+0x1ce> - 800dc80: 4639 mov r1, r7 - 800dc82: 4640 mov r0, r8 - 800dc84: f000 f932 bl 800deec <_malloc_r> - 800dc88: b948 cbnz r0, 800dc9e <__sfvwrite_r+0x16e> - 800dc8a: 230c movs r3, #12 - 800dc8c: f8c8 3000 str.w r3, [r8] - 800dc90: 89a3 ldrh r3, [r4, #12] - 800dc92: f043 0340 orr.w r3, r3, #64 ; 0x40 - 800dc96: 81a3 strh r3, [r4, #12] - 800dc98: e7ae b.n 800dbf8 <__sfvwrite_r+0xc8> - 800dc9a: 46aa mov sl, r5 - 800dc9c: e7d2 b.n 800dc44 <__sfvwrite_r+0x114> - 800dc9e: 465a mov r2, fp - 800dca0: 6921 ldr r1, [r4, #16] - 800dca2: 9001 str r0, [sp, #4] - 800dca4: f000 fb67 bl 800e376 - 800dca8: 89a2 ldrh r2, [r4, #12] - 800dcaa: 9b01 ldr r3, [sp, #4] - 800dcac: f422 6290 bic.w r2, r2, #1152 ; 0x480 - 800dcb0: f042 0280 orr.w r2, r2, #128 ; 0x80 - 800dcb4: 81a2 strh r2, [r4, #12] - 800dcb6: 6123 str r3, [r4, #16] - 800dcb8: 6167 str r7, [r4, #20] - 800dcba: 445b add r3, fp - 800dcbc: eba7 070b sub.w r7, r7, fp - 800dcc0: 6023 str r3, [r4, #0] - 800dcc2: 60a7 str r7, [r4, #8] - 800dcc4: 4653 mov r3, sl - 800dcc6: 4553 cmp r3, sl - 800dcc8: bf28 it cs - 800dcca: 4653 movcs r3, sl - 800dccc: 461a mov r2, r3 - 800dcce: 4629 mov r1, r5 - 800dcd0: 6820 ldr r0, [r4, #0] - 800dcd2: 9301 str r3, [sp, #4] - 800dcd4: f000 fb5a bl 800e38c - 800dcd8: 68a2 ldr r2, [r4, #8] - 800dcda: 9b01 ldr r3, [sp, #4] - 800dcdc: 1ad2 subs r2, r2, r3 - 800dcde: 60a2 str r2, [r4, #8] - 800dce0: 6822 ldr r2, [r4, #0] - 800dce2: 4413 add r3, r2 - 800dce4: 4657 mov r7, sl - 800dce6: 6023 str r3, [r4, #0] - 800dce8: f8d9 3008 ldr.w r3, [r9, #8] - 800dcec: 443d add r5, r7 - 800dcee: ebaa 0a07 sub.w sl, sl, r7 - 800dcf2: 1bdf subs r7, r3, r7 - 800dcf4: f8c9 7008 str.w r7, [r9, #8] - 800dcf8: 2f00 cmp r7, #0 - 800dcfa: d1a3 bne.n 800dc44 <__sfvwrite_r+0x114> - 800dcfc: e71f b.n 800db3e <__sfvwrite_r+0xe> - 800dcfe: 463a mov r2, r7 - 800dd00: 4640 mov r0, r8 - 800dd02: f000 fbad bl 800e460 <_realloc_r> - 800dd06: 4603 mov r3, r0 - 800dd08: 2800 cmp r0, #0 - 800dd0a: d1d4 bne.n 800dcb6 <__sfvwrite_r+0x186> - 800dd0c: 6921 ldr r1, [r4, #16] - 800dd0e: 4640 mov r0, r8 - 800dd10: f002 ffe0 bl 8010cd4 <_free_r> - 800dd14: 89a3 ldrh r3, [r4, #12] - 800dd16: f023 0380 bic.w r3, r3, #128 ; 0x80 - 800dd1a: 81a3 strh r3, [r4, #12] - 800dd1c: e7b5 b.n 800dc8a <__sfvwrite_r+0x15a> - 800dd1e: 6922 ldr r2, [r4, #16] - 800dd20: 4282 cmp r2, r0 - 800dd22: d302 bcc.n 800dd2a <__sfvwrite_r+0x1fa> - 800dd24: 6962 ldr r2, [r4, #20] - 800dd26: 4552 cmp r2, sl - 800dd28: d916 bls.n 800dd58 <__sfvwrite_r+0x228> - 800dd2a: 4553 cmp r3, sl - 800dd2c: bf28 it cs - 800dd2e: 4653 movcs r3, sl - 800dd30: 461a mov r2, r3 - 800dd32: 4629 mov r1, r5 - 800dd34: 461f mov r7, r3 - 800dd36: f000 fb29 bl 800e38c - 800dd3a: 68a3 ldr r3, [r4, #8] - 800dd3c: 6822 ldr r2, [r4, #0] - 800dd3e: 1bdb subs r3, r3, r7 - 800dd40: 443a add r2, r7 - 800dd42: 60a3 str r3, [r4, #8] - 800dd44: 6022 str r2, [r4, #0] - 800dd46: 2b00 cmp r3, #0 - 800dd48: d1ce bne.n 800dce8 <__sfvwrite_r+0x1b8> - 800dd4a: 4621 mov r1, r4 - 800dd4c: 4640 mov r0, r8 - 800dd4e: f002 fec5 bl 8010adc <_fflush_r> - 800dd52: 2800 cmp r0, #0 - 800dd54: d0c8 beq.n 800dce8 <__sfvwrite_r+0x1b8> - 800dd56: e79b b.n 800dc90 <__sfvwrite_r+0x160> - 800dd58: 4b1a ldr r3, [pc, #104] ; (800ddc4 <__sfvwrite_r+0x294>) - 800dd5a: 6a67 ldr r7, [r4, #36] ; 0x24 - 800dd5c: 69e1 ldr r1, [r4, #28] - 800dd5e: 459a cmp sl, r3 - 800dd60: bf94 ite ls - 800dd62: 4653 movls r3, sl - 800dd64: f06f 4300 mvnhi.w r3, #2147483648 ; 0x80000000 - 800dd68: 4640 mov r0, r8 - 800dd6a: fb93 f3f2 sdiv r3, r3, r2 - 800dd6e: 4353 muls r3, r2 - 800dd70: 462a mov r2, r5 - 800dd72: 47b8 blx r7 - 800dd74: 1e07 subs r7, r0, #0 - 800dd76: dcb7 bgt.n 800dce8 <__sfvwrite_r+0x1b8> - 800dd78: e78a b.n 800dc90 <__sfvwrite_r+0x160> - 800dd7a: e9d6 ab00 ldrd sl, fp, [r6] - 800dd7e: 2000 movs r0, #0 - 800dd80: 3608 adds r6, #8 - 800dd82: e6f3 b.n 800db6c <__sfvwrite_r+0x3c> - 800dd84: f10b 0701 add.w r7, fp, #1 - 800dd88: e700 b.n 800db8c <__sfvwrite_r+0x5c> - 800dd8a: 429a cmp r2, r3 - 800dd8c: dc09 bgt.n 800dda2 <__sfvwrite_r+0x272> - 800dd8e: 6a65 ldr r5, [r4, #36] ; 0x24 - 800dd90: 69e1 ldr r1, [r4, #28] - 800dd92: 4613 mov r3, r2 - 800dd94: 4640 mov r0, r8 - 800dd96: 4652 mov r2, sl - 800dd98: 47a8 blx r5 - 800dd9a: 1e05 subs r5, r0, #0 - 800dd9c: f73f af12 bgt.w 800dbc4 <__sfvwrite_r+0x94> - 800dda0: e776 b.n 800dc90 <__sfvwrite_r+0x160> - 800dda2: 461a mov r2, r3 - 800dda4: 4651 mov r1, sl - 800dda6: 9301 str r3, [sp, #4] - 800dda8: f000 faf0 bl 800e38c - 800ddac: 9b01 ldr r3, [sp, #4] - 800ddae: 68a2 ldr r2, [r4, #8] - 800ddb0: 1ad2 subs r2, r2, r3 - 800ddb2: 60a2 str r2, [r4, #8] - 800ddb4: 6822 ldr r2, [r4, #0] - 800ddb6: 441a add r2, r3 - 800ddb8: 6022 str r2, [r4, #0] - 800ddba: 461d mov r5, r3 - 800ddbc: e702 b.n 800dbc4 <__sfvwrite_r+0x94> - 800ddbe: 2001 movs r0, #1 - 800ddc0: e709 b.n 800dbd6 <__sfvwrite_r+0xa6> - 800ddc2: bf00 nop - 800ddc4: 7ffffffe .word 0x7ffffffe - 800ddc8: 7ffffc00 .word 0x7ffffc00 - -0800ddcc <_fwrite_r>: - 800ddcc: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 800ddd0: b086 sub sp, #24 - 800ddd2: fb02 f503 mul.w r5, r2, r3 - 800ddd6: 461e mov r6, r3 - 800ddd8: ab01 add r3, sp, #4 - 800ddda: 9303 str r3, [sp, #12] - 800dddc: 2301 movs r3, #1 - 800ddde: 4617 mov r7, r2 - 800dde0: 9c0c ldr r4, [sp, #48] ; 0x30 - 800dde2: 9101 str r1, [sp, #4] - 800dde4: 9502 str r5, [sp, #8] - 800dde6: 9505 str r5, [sp, #20] - 800dde8: 9304 str r3, [sp, #16] - 800ddea: 4680 mov r8, r0 - 800ddec: b118 cbz r0, 800ddf6 <_fwrite_r+0x2a> - 800ddee: 6b83 ldr r3, [r0, #56] ; 0x38 - 800ddf0: b90b cbnz r3, 800ddf6 <_fwrite_r+0x2a> - 800ddf2: f002 fedf bl 8010bb4 <__sinit> - 800ddf6: 6e63 ldr r3, [r4, #100] ; 0x64 - 800ddf8: 07d8 lsls r0, r3, #31 - 800ddfa: d405 bmi.n 800de08 <_fwrite_r+0x3c> - 800ddfc: 89a3 ldrh r3, [r4, #12] - 800ddfe: 0599 lsls r1, r3, #22 - 800de00: d402 bmi.n 800de08 <_fwrite_r+0x3c> - 800de02: 6da0 ldr r0, [r4, #88] ; 0x58 - 800de04: f000 f860 bl 800dec8 <__retarget_lock_acquire_recursive> - 800de08: f9b4 300c ldrsh.w r3, [r4, #12] - 800de0c: 049a lsls r2, r3, #18 - 800de0e: d406 bmi.n 800de1e <_fwrite_r+0x52> - 800de10: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 800de14: 81a3 strh r3, [r4, #12] - 800de16: 6e63 ldr r3, [r4, #100] ; 0x64 - 800de18: f423 5300 bic.w r3, r3, #8192 ; 0x2000 - 800de1c: 6663 str r3, [r4, #100] ; 0x64 - 800de1e: aa03 add r2, sp, #12 - 800de20: 4621 mov r1, r4 - 800de22: 4640 mov r0, r8 - 800de24: f7ff fe84 bl 800db30 <__sfvwrite_r> - 800de28: 6e63 ldr r3, [r4, #100] ; 0x64 - 800de2a: b958 cbnz r0, 800de44 <_fwrite_r+0x78> - 800de2c: 07d8 lsls r0, r3, #31 - 800de2e: d405 bmi.n 800de3c <_fwrite_r+0x70> - 800de30: 89a3 ldrh r3, [r4, #12] - 800de32: 0599 lsls r1, r3, #22 - 800de34: d402 bmi.n 800de3c <_fwrite_r+0x70> - 800de36: 6da0 ldr r0, [r4, #88] ; 0x58 - 800de38: f000 f847 bl 800deca <__retarget_lock_release_recursive> - 800de3c: 4630 mov r0, r6 - 800de3e: b006 add sp, #24 - 800de40: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 800de44: 07da lsls r2, r3, #31 - 800de46: d405 bmi.n 800de54 <_fwrite_r+0x88> - 800de48: 89a3 ldrh r3, [r4, #12] - 800de4a: 059b lsls r3, r3, #22 - 800de4c: d402 bmi.n 800de54 <_fwrite_r+0x88> - 800de4e: 6da0 ldr r0, [r4, #88] ; 0x58 - 800de50: f000 f83b bl 800deca <__retarget_lock_release_recursive> - 800de54: 9b05 ldr r3, [sp, #20] - 800de56: 1aed subs r5, r5, r3 - 800de58: fbb5 f6f7 udiv r6, r5, r7 - 800de5c: e7ee b.n 800de3c <_fwrite_r+0x70> - ... - -0800de60 : - 800de60: b507 push {r0, r1, r2, lr} - 800de62: 9300 str r3, [sp, #0] - 800de64: 4613 mov r3, r2 - 800de66: 460a mov r2, r1 - 800de68: 4601 mov r1, r0 - 800de6a: 4803 ldr r0, [pc, #12] ; (800de78 ) - 800de6c: 6800 ldr r0, [r0, #0] - 800de6e: f7ff ffad bl 800ddcc <_fwrite_r> - 800de72: b003 add sp, #12 - 800de74: f85d fb04 ldr.w pc, [sp], #4 - 800de78: 20000014 .word 0x20000014 - -0800de7c <__libc_init_array>: - 800de7c: b570 push {r4, r5, r6, lr} - 800de7e: 4e0d ldr r6, [pc, #52] ; (800deb4 <__libc_init_array+0x38>) - 800de80: 4c0d ldr r4, [pc, #52] ; (800deb8 <__libc_init_array+0x3c>) - 800de82: 1ba4 subs r4, r4, r6 - 800de84: 10a4 asrs r4, r4, #2 - 800de86: 2500 movs r5, #0 - 800de88: 42a5 cmp r5, r4 - 800de8a: d109 bne.n 800dea0 <__libc_init_array+0x24> - 800de8c: 4e0b ldr r6, [pc, #44] ; (800debc <__libc_init_array+0x40>) - 800de8e: 4c0c ldr r4, [pc, #48] ; (800dec0 <__libc_init_array+0x44>) - 800de90: f003 fd82 bl 8011998 <_init> - 800de94: 1ba4 subs r4, r4, r6 - 800de96: 10a4 asrs r4, r4, #2 - 800de98: 2500 movs r5, #0 - 800de9a: 42a5 cmp r5, r4 - 800de9c: d105 bne.n 800deaa <__libc_init_array+0x2e> - 800de9e: bd70 pop {r4, r5, r6, pc} - 800dea0: f856 3025 ldr.w r3, [r6, r5, lsl #2] - 800dea4: 4798 blx r3 - 800dea6: 3501 adds r5, #1 - 800dea8: e7ee b.n 800de88 <__libc_init_array+0xc> - 800deaa: f856 3025 ldr.w r3, [r6, r5, lsl #2] - 800deae: 4798 blx r3 - 800deb0: 3501 adds r5, #1 - 800deb2: e7f2 b.n 800de9a <__libc_init_array+0x1e> - 800deb4: 08013328 .word 0x08013328 - 800deb8: 08013328 .word 0x08013328 - 800debc: 08013328 .word 0x08013328 - 800dec0: 08013334 .word 0x08013334 - -0800dec4 <__retarget_lock_init_recursive>: - 800dec4: 4770 bx lr - -0800dec6 <__retarget_lock_close_recursive>: - 800dec6: 4770 bx lr - -0800dec8 <__retarget_lock_acquire_recursive>: - 800dec8: 4770 bx lr - -0800deca <__retarget_lock_release_recursive>: - 800deca: 4770 bx lr - -0800decc : - 800decc: 4b02 ldr r3, [pc, #8] ; (800ded8 ) - 800dece: 4601 mov r1, r0 - 800ded0: 6818 ldr r0, [r3, #0] - 800ded2: f000 b80b b.w 800deec <_malloc_r> - 800ded6: bf00 nop - 800ded8: 20000014 .word 0x20000014 - -0800dedc : - 800dedc: 4b02 ldr r3, [pc, #8] ; (800dee8 ) - 800dede: 4601 mov r1, r0 - 800dee0: 6818 ldr r0, [r3, #0] - 800dee2: f002 bef7 b.w 8010cd4 <_free_r> - 800dee6: bf00 nop - 800dee8: 20000014 .word 0x20000014 - -0800deec <_malloc_r>: - 800deec: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800def0: f101 050b add.w r5, r1, #11 - 800def4: 2d16 cmp r5, #22 - 800def6: 4606 mov r6, r0 - 800def8: d906 bls.n 800df08 <_malloc_r+0x1c> - 800defa: f035 0507 bics.w r5, r5, #7 - 800defe: d504 bpl.n 800df0a <_malloc_r+0x1e> - 800df00: 230c movs r3, #12 - 800df02: 6033 str r3, [r6, #0] - 800df04: 2400 movs r4, #0 - 800df06: e1a8 b.n 800e25a <_malloc_r+0x36e> - 800df08: 2510 movs r5, #16 - 800df0a: 428d cmp r5, r1 - 800df0c: d3f8 bcc.n 800df00 <_malloc_r+0x14> - 800df0e: 4630 mov r0, r6 - 800df10: f000 fa5e bl 800e3d0 <__malloc_lock> - 800df14: f5b5 7ffc cmp.w r5, #504 ; 0x1f8 - 800df18: 4fc0 ldr r7, [pc, #768] ; (800e21c <_malloc_r+0x330>) - 800df1a: d238 bcs.n 800df8e <_malloc_r+0xa2> - 800df1c: f105 0208 add.w r2, r5, #8 - 800df20: 443a add r2, r7 - 800df22: f1a2 0108 sub.w r1, r2, #8 - 800df26: 6854 ldr r4, [r2, #4] - 800df28: 428c cmp r4, r1 - 800df2a: ea4f 03d5 mov.w r3, r5, lsr #3 - 800df2e: d102 bne.n 800df36 <_malloc_r+0x4a> - 800df30: 68d4 ldr r4, [r2, #12] - 800df32: 42a2 cmp r2, r4 - 800df34: d010 beq.n 800df58 <_malloc_r+0x6c> - 800df36: 6863 ldr r3, [r4, #4] - 800df38: e9d4 1202 ldrd r1, r2, [r4, #8] - 800df3c: f023 0303 bic.w r3, r3, #3 - 800df40: 60ca str r2, [r1, #12] - 800df42: 4423 add r3, r4 - 800df44: 6091 str r1, [r2, #8] - 800df46: 685a ldr r2, [r3, #4] - 800df48: f042 0201 orr.w r2, r2, #1 - 800df4c: 605a str r2, [r3, #4] - 800df4e: 4630 mov r0, r6 - 800df50: f000 fa44 bl 800e3dc <__malloc_unlock> - 800df54: 3408 adds r4, #8 - 800df56: e180 b.n 800e25a <_malloc_r+0x36e> - 800df58: 3302 adds r3, #2 - 800df5a: 4ab1 ldr r2, [pc, #708] ; (800e220 <_malloc_r+0x334>) - 800df5c: 693c ldr r4, [r7, #16] - 800df5e: 4294 cmp r4, r2 - 800df60: 4611 mov r1, r2 - 800df62: d075 beq.n 800e050 <_malloc_r+0x164> - 800df64: 6860 ldr r0, [r4, #4] - 800df66: f020 0c03 bic.w ip, r0, #3 - 800df6a: ebac 0005 sub.w r0, ip, r5 - 800df6e: 280f cmp r0, #15 - 800df70: dd48 ble.n 800e004 <_malloc_r+0x118> - 800df72: 1963 adds r3, r4, r5 - 800df74: f045 0501 orr.w r5, r5, #1 - 800df78: 6065 str r5, [r4, #4] - 800df7a: e9c7 3304 strd r3, r3, [r7, #16] - 800df7e: e9c3 2202 strd r2, r2, [r3, #8] - 800df82: f040 0201 orr.w r2, r0, #1 - 800df86: 605a str r2, [r3, #4] - 800df88: f844 000c str.w r0, [r4, ip] - 800df8c: e7df b.n 800df4e <_malloc_r+0x62> - 800df8e: 0a6b lsrs r3, r5, #9 - 800df90: d02a beq.n 800dfe8 <_malloc_r+0xfc> - 800df92: 2b04 cmp r3, #4 - 800df94: d812 bhi.n 800dfbc <_malloc_r+0xd0> - 800df96: 09ab lsrs r3, r5, #6 - 800df98: 3338 adds r3, #56 ; 0x38 - 800df9a: 1c5a adds r2, r3, #1 - 800df9c: eb07 02c2 add.w r2, r7, r2, lsl #3 - 800dfa0: f1a2 0c08 sub.w ip, r2, #8 - 800dfa4: 6854 ldr r4, [r2, #4] - 800dfa6: 4564 cmp r4, ip - 800dfa8: d006 beq.n 800dfb8 <_malloc_r+0xcc> - 800dfaa: 6862 ldr r2, [r4, #4] - 800dfac: f022 0203 bic.w r2, r2, #3 - 800dfb0: 1b50 subs r0, r2, r5 - 800dfb2: 280f cmp r0, #15 - 800dfb4: dd1c ble.n 800dff0 <_malloc_r+0x104> - 800dfb6: 3b01 subs r3, #1 - 800dfb8: 3301 adds r3, #1 - 800dfba: e7ce b.n 800df5a <_malloc_r+0x6e> - 800dfbc: 2b14 cmp r3, #20 - 800dfbe: d801 bhi.n 800dfc4 <_malloc_r+0xd8> - 800dfc0: 335b adds r3, #91 ; 0x5b - 800dfc2: e7ea b.n 800df9a <_malloc_r+0xae> - 800dfc4: 2b54 cmp r3, #84 ; 0x54 - 800dfc6: d802 bhi.n 800dfce <_malloc_r+0xe2> - 800dfc8: 0b2b lsrs r3, r5, #12 - 800dfca: 336e adds r3, #110 ; 0x6e - 800dfcc: e7e5 b.n 800df9a <_malloc_r+0xae> - 800dfce: f5b3 7faa cmp.w r3, #340 ; 0x154 - 800dfd2: d802 bhi.n 800dfda <_malloc_r+0xee> - 800dfd4: 0beb lsrs r3, r5, #15 - 800dfd6: 3377 adds r3, #119 ; 0x77 - 800dfd8: e7df b.n 800df9a <_malloc_r+0xae> - 800dfda: f240 5254 movw r2, #1364 ; 0x554 - 800dfde: 4293 cmp r3, r2 - 800dfe0: d804 bhi.n 800dfec <_malloc_r+0x100> - 800dfe2: 0cab lsrs r3, r5, #18 - 800dfe4: 337c adds r3, #124 ; 0x7c - 800dfe6: e7d8 b.n 800df9a <_malloc_r+0xae> - 800dfe8: 233f movs r3, #63 ; 0x3f - 800dfea: e7d6 b.n 800df9a <_malloc_r+0xae> - 800dfec: 237e movs r3, #126 ; 0x7e - 800dfee: e7d4 b.n 800df9a <_malloc_r+0xae> - 800dff0: 2800 cmp r0, #0 - 800dff2: 68e1 ldr r1, [r4, #12] - 800dff4: db04 blt.n 800e000 <_malloc_r+0x114> - 800dff6: 68a3 ldr r3, [r4, #8] - 800dff8: 60d9 str r1, [r3, #12] - 800dffa: 608b str r3, [r1, #8] - 800dffc: 18a3 adds r3, r4, r2 - 800dffe: e7a2 b.n 800df46 <_malloc_r+0x5a> - 800e000: 460c mov r4, r1 - 800e002: e7d0 b.n 800dfa6 <_malloc_r+0xba> - 800e004: 2800 cmp r0, #0 - 800e006: e9c7 2204 strd r2, r2, [r7, #16] - 800e00a: db07 blt.n 800e01c <_malloc_r+0x130> - 800e00c: 44a4 add ip, r4 - 800e00e: f8dc 3004 ldr.w r3, [ip, #4] - 800e012: f043 0301 orr.w r3, r3, #1 - 800e016: f8cc 3004 str.w r3, [ip, #4] - 800e01a: e798 b.n 800df4e <_malloc_r+0x62> - 800e01c: f5bc 7f00 cmp.w ip, #512 ; 0x200 - 800e020: 6878 ldr r0, [r7, #4] - 800e022: f080 8099 bcs.w 800e158 <_malloc_r+0x26c> - 800e026: ea4f 0cdc mov.w ip, ip, lsr #3 - 800e02a: ea4f 0eac mov.w lr, ip, asr #2 - 800e02e: 2201 movs r2, #1 - 800e030: f10c 0c01 add.w ip, ip, #1 - 800e034: fa02 f20e lsl.w r2, r2, lr - 800e038: 4310 orrs r0, r2 - 800e03a: 6078 str r0, [r7, #4] - 800e03c: eb07 02cc add.w r2, r7, ip, lsl #3 - 800e040: f857 003c ldr.w r0, [r7, ip, lsl #3] - 800e044: 3a08 subs r2, #8 - 800e046: e9c4 0202 strd r0, r2, [r4, #8] - 800e04a: f847 403c str.w r4, [r7, ip, lsl #3] - 800e04e: 60c4 str r4, [r0, #12] - 800e050: 2001 movs r0, #1 - 800e052: 109a asrs r2, r3, #2 - 800e054: fa00 f202 lsl.w r2, r0, r2 - 800e058: 6878 ldr r0, [r7, #4] - 800e05a: 4290 cmp r0, r2 - 800e05c: d326 bcc.n 800e0ac <_malloc_r+0x1c0> - 800e05e: 4210 tst r0, r2 - 800e060: d106 bne.n 800e070 <_malloc_r+0x184> - 800e062: f023 0303 bic.w r3, r3, #3 - 800e066: 0052 lsls r2, r2, #1 - 800e068: 4210 tst r0, r2 - 800e06a: f103 0304 add.w r3, r3, #4 - 800e06e: d0fa beq.n 800e066 <_malloc_r+0x17a> - 800e070: eb07 0cc3 add.w ip, r7, r3, lsl #3 - 800e074: 46e1 mov r9, ip - 800e076: 4698 mov r8, r3 - 800e078: f8d9 400c ldr.w r4, [r9, #12] - 800e07c: 454c cmp r4, r9 - 800e07e: f040 80af bne.w 800e1e0 <_malloc_r+0x2f4> - 800e082: f108 0801 add.w r8, r8, #1 - 800e086: f018 0f03 tst.w r8, #3 - 800e08a: f109 0908 add.w r9, r9, #8 - 800e08e: d1f3 bne.n 800e078 <_malloc_r+0x18c> - 800e090: 0798 lsls r0, r3, #30 - 800e092: f040 80e8 bne.w 800e266 <_malloc_r+0x37a> - 800e096: 687b ldr r3, [r7, #4] - 800e098: ea23 0302 bic.w r3, r3, r2 - 800e09c: 607b str r3, [r7, #4] - 800e09e: 6878 ldr r0, [r7, #4] - 800e0a0: 0052 lsls r2, r2, #1 - 800e0a2: 4290 cmp r0, r2 - 800e0a4: d302 bcc.n 800e0ac <_malloc_r+0x1c0> - 800e0a6: 2a00 cmp r2, #0 - 800e0a8: f040 80ec bne.w 800e284 <_malloc_r+0x398> - 800e0ac: f8d7 a008 ldr.w sl, [r7, #8] - 800e0b0: f8da 4004 ldr.w r4, [sl, #4] - 800e0b4: f024 0203 bic.w r2, r4, #3 - 800e0b8: 42aa cmp r2, r5 - 800e0ba: d303 bcc.n 800e0c4 <_malloc_r+0x1d8> - 800e0bc: 1b53 subs r3, r2, r5 - 800e0be: 2b0f cmp r3, #15 - 800e0c0: f300 8140 bgt.w 800e344 <_malloc_r+0x458> - 800e0c4: 4b57 ldr r3, [pc, #348] ; (800e224 <_malloc_r+0x338>) - 800e0c6: 9200 str r2, [sp, #0] - 800e0c8: 2008 movs r0, #8 - 800e0ca: 681c ldr r4, [r3, #0] - 800e0cc: f001 fdd8 bl 800fc80 - 800e0d0: 4b55 ldr r3, [pc, #340] ; (800e228 <_malloc_r+0x33c>) - 800e0d2: 9a00 ldr r2, [sp, #0] - 800e0d4: 6819 ldr r1, [r3, #0] - 800e0d6: 3410 adds r4, #16 - 800e0d8: 3101 adds r1, #1 - 800e0da: 442c add r4, r5 - 800e0dc: bf1f itttt ne - 800e0de: f104 34ff addne.w r4, r4, #4294967295 ; 0xffffffff - 800e0e2: 1824 addne r4, r4, r0 - 800e0e4: 4241 negne r1, r0 - 800e0e6: 400c andne r4, r1 - 800e0e8: 4680 mov r8, r0 - 800e0ea: 4621 mov r1, r4 - 800e0ec: 4630 mov r0, r6 - 800e0ee: e9cd 2300 strd r2, r3, [sp] - 800e0f2: f000 fb5d bl 800e7b0 <_sbrk_r> - 800e0f6: f1b0 3fff cmp.w r0, #4294967295 ; 0xffffffff - 800e0fa: 4683 mov fp, r0 - 800e0fc: f000 80fb beq.w 800e2f6 <_malloc_r+0x40a> - 800e100: 9a00 ldr r2, [sp, #0] - 800e102: 9b01 ldr r3, [sp, #4] - 800e104: eb0a 0102 add.w r1, sl, r2 - 800e108: 4281 cmp r1, r0 - 800e10a: d902 bls.n 800e112 <_malloc_r+0x226> - 800e10c: 45ba cmp sl, r7 - 800e10e: f040 80f2 bne.w 800e2f6 <_malloc_r+0x40a> - 800e112: f8df 9120 ldr.w r9, [pc, #288] ; 800e234 <_malloc_r+0x348> - 800e116: f8d9 0000 ldr.w r0, [r9] - 800e11a: 4559 cmp r1, fp - 800e11c: eb00 0e04 add.w lr, r0, r4 - 800e120: f8c9 e000 str.w lr, [r9] - 800e124: f108 3cff add.w ip, r8, #4294967295 ; 0xffffffff - 800e128: f040 80ae bne.w 800e288 <_malloc_r+0x39c> - 800e12c: ea11 0f0c tst.w r1, ip - 800e130: f040 80aa bne.w 800e288 <_malloc_r+0x39c> - 800e134: 68bb ldr r3, [r7, #8] - 800e136: 4414 add r4, r2 - 800e138: f044 0401 orr.w r4, r4, #1 - 800e13c: 605c str r4, [r3, #4] - 800e13e: 4a3b ldr r2, [pc, #236] ; (800e22c <_malloc_r+0x340>) - 800e140: f8d9 3000 ldr.w r3, [r9] - 800e144: 6811 ldr r1, [r2, #0] - 800e146: 428b cmp r3, r1 - 800e148: bf88 it hi - 800e14a: 6013 strhi r3, [r2, #0] - 800e14c: 4a38 ldr r2, [pc, #224] ; (800e230 <_malloc_r+0x344>) - 800e14e: 6811 ldr r1, [r2, #0] - 800e150: 428b cmp r3, r1 - 800e152: bf88 it hi - 800e154: 6013 strhi r3, [r2, #0] - 800e156: e0ce b.n 800e2f6 <_malloc_r+0x40a> - 800e158: ea4f 225c mov.w r2, ip, lsr #9 - 800e15c: 2a04 cmp r2, #4 - 800e15e: d818 bhi.n 800e192 <_malloc_r+0x2a6> - 800e160: ea4f 129c mov.w r2, ip, lsr #6 - 800e164: 3238 adds r2, #56 ; 0x38 - 800e166: f102 0e01 add.w lr, r2, #1 - 800e16a: eb07 08c2 add.w r8, r7, r2, lsl #3 - 800e16e: f857 e03e ldr.w lr, [r7, lr, lsl #3] - 800e172: 45f0 cmp r8, lr - 800e174: d12b bne.n 800e1ce <_malloc_r+0x2e2> - 800e176: 1092 asrs r2, r2, #2 - 800e178: f04f 0c01 mov.w ip, #1 - 800e17c: fa0c f202 lsl.w r2, ip, r2 - 800e180: 4310 orrs r0, r2 - 800e182: 6078 str r0, [r7, #4] - 800e184: e9c4 e802 strd lr, r8, [r4, #8] - 800e188: f8c8 4008 str.w r4, [r8, #8] - 800e18c: f8ce 400c str.w r4, [lr, #12] - 800e190: e75e b.n 800e050 <_malloc_r+0x164> - 800e192: 2a14 cmp r2, #20 - 800e194: d801 bhi.n 800e19a <_malloc_r+0x2ae> - 800e196: 325b adds r2, #91 ; 0x5b - 800e198: e7e5 b.n 800e166 <_malloc_r+0x27a> - 800e19a: 2a54 cmp r2, #84 ; 0x54 - 800e19c: d803 bhi.n 800e1a6 <_malloc_r+0x2ba> - 800e19e: ea4f 321c mov.w r2, ip, lsr #12 - 800e1a2: 326e adds r2, #110 ; 0x6e - 800e1a4: e7df b.n 800e166 <_malloc_r+0x27a> - 800e1a6: f5b2 7faa cmp.w r2, #340 ; 0x154 - 800e1aa: d803 bhi.n 800e1b4 <_malloc_r+0x2c8> - 800e1ac: ea4f 32dc mov.w r2, ip, lsr #15 - 800e1b0: 3277 adds r2, #119 ; 0x77 - 800e1b2: e7d8 b.n 800e166 <_malloc_r+0x27a> - 800e1b4: f240 5e54 movw lr, #1364 ; 0x554 - 800e1b8: 4572 cmp r2, lr - 800e1ba: bf9a itte ls - 800e1bc: ea4f 429c movls.w r2, ip, lsr #18 - 800e1c0: 327c addls r2, #124 ; 0x7c - 800e1c2: 227e movhi r2, #126 ; 0x7e - 800e1c4: e7cf b.n 800e166 <_malloc_r+0x27a> - 800e1c6: f8de e008 ldr.w lr, [lr, #8] - 800e1ca: 45f0 cmp r8, lr - 800e1cc: d005 beq.n 800e1da <_malloc_r+0x2ee> - 800e1ce: f8de 2004 ldr.w r2, [lr, #4] - 800e1d2: f022 0203 bic.w r2, r2, #3 - 800e1d6: 4562 cmp r2, ip - 800e1d8: d8f5 bhi.n 800e1c6 <_malloc_r+0x2da> - 800e1da: f8de 800c ldr.w r8, [lr, #12] - 800e1de: e7d1 b.n 800e184 <_malloc_r+0x298> - 800e1e0: 6860 ldr r0, [r4, #4] - 800e1e2: f8d4 e00c ldr.w lr, [r4, #12] - 800e1e6: f020 0003 bic.w r0, r0, #3 - 800e1ea: eba0 0a05 sub.w sl, r0, r5 - 800e1ee: f1ba 0f0f cmp.w sl, #15 - 800e1f2: dd21 ble.n 800e238 <_malloc_r+0x34c> - 800e1f4: 68a2 ldr r2, [r4, #8] - 800e1f6: 1963 adds r3, r4, r5 - 800e1f8: f045 0501 orr.w r5, r5, #1 - 800e1fc: 6065 str r5, [r4, #4] - 800e1fe: f8c2 e00c str.w lr, [r2, #12] - 800e202: f8ce 2008 str.w r2, [lr, #8] - 800e206: f04a 0201 orr.w r2, sl, #1 - 800e20a: e9c7 3304 strd r3, r3, [r7, #16] - 800e20e: e9c3 1102 strd r1, r1, [r3, #8] - 800e212: 605a str r2, [r3, #4] - 800e214: f844 a000 str.w sl, [r4, r0] - 800e218: e699 b.n 800df4e <_malloc_r+0x62> - 800e21a: bf00 nop - 800e21c: 20000440 .word 0x20000440 - 800e220: 20000448 .word 0x20000448 - 800e224: 20000af4 .word 0x20000af4 - 800e228: 20000848 .word 0x20000848 - 800e22c: 20000aec .word 0x20000aec - 800e230: 20000af0 .word 0x20000af0 - 800e234: 20000ac4 .word 0x20000ac4 - 800e238: f1ba 0f00 cmp.w sl, #0 - 800e23c: db11 blt.n 800e262 <_malloc_r+0x376> - 800e23e: 4420 add r0, r4 - 800e240: 6843 ldr r3, [r0, #4] - 800e242: f043 0301 orr.w r3, r3, #1 - 800e246: 6043 str r3, [r0, #4] - 800e248: f854 3f08 ldr.w r3, [r4, #8]! - 800e24c: 4630 mov r0, r6 - 800e24e: f8c3 e00c str.w lr, [r3, #12] - 800e252: f8ce 3008 str.w r3, [lr, #8] - 800e256: f000 f8c1 bl 800e3dc <__malloc_unlock> - 800e25a: 4620 mov r0, r4 - 800e25c: b003 add sp, #12 - 800e25e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800e262: 4674 mov r4, lr - 800e264: e70a b.n 800e07c <_malloc_r+0x190> - 800e266: f1ac 0008 sub.w r0, ip, #8 - 800e26a: f8dc c000 ldr.w ip, [ip] - 800e26e: 4584 cmp ip, r0 - 800e270: f103 33ff add.w r3, r3, #4294967295 ; 0xffffffff - 800e274: f43f af0c beq.w 800e090 <_malloc_r+0x1a4> - 800e278: e711 b.n 800e09e <_malloc_r+0x1b2> - 800e27a: 3304 adds r3, #4 - 800e27c: 0052 lsls r2, r2, #1 - 800e27e: 4210 tst r0, r2 - 800e280: d0fb beq.n 800e27a <_malloc_r+0x38e> - 800e282: e6f5 b.n 800e070 <_malloc_r+0x184> - 800e284: 4643 mov r3, r8 - 800e286: e7fa b.n 800e27e <_malloc_r+0x392> - 800e288: 6818 ldr r0, [r3, #0] - 800e28a: 9200 str r2, [sp, #0] - 800e28c: 3001 adds r0, #1 - 800e28e: bf1b ittet ne - 800e290: ebab 0101 subne.w r1, fp, r1 - 800e294: 4471 addne r1, lr - 800e296: f8c3 b000 streq.w fp, [r3] - 800e29a: f8c9 1000 strne.w r1, [r9] - 800e29e: f01b 0307 ands.w r3, fp, #7 - 800e2a2: bf1c itt ne - 800e2a4: f1c3 0308 rsbne r3, r3, #8 - 800e2a8: 449b addne fp, r3 - 800e2aa: 445c add r4, fp - 800e2ac: 4498 add r8, r3 - 800e2ae: ea04 030c and.w r3, r4, ip - 800e2b2: eba8 0803 sub.w r8, r8, r3 - 800e2b6: 4641 mov r1, r8 - 800e2b8: 4630 mov r0, r6 - 800e2ba: f000 fa79 bl 800e7b0 <_sbrk_r> - 800e2be: 1c43 adds r3, r0, #1 - 800e2c0: bf04 itt eq - 800e2c2: 4658 moveq r0, fp - 800e2c4: f04f 0800 moveq.w r8, #0 - 800e2c8: f8d9 3000 ldr.w r3, [r9] - 800e2cc: f8c7 b008 str.w fp, [r7, #8] - 800e2d0: eba0 000b sub.w r0, r0, fp - 800e2d4: 4440 add r0, r8 - 800e2d6: 4443 add r3, r8 - 800e2d8: f040 0001 orr.w r0, r0, #1 - 800e2dc: 45ba cmp sl, r7 - 800e2de: 9a00 ldr r2, [sp, #0] - 800e2e0: f8c9 3000 str.w r3, [r9] - 800e2e4: f8cb 0004 str.w r0, [fp, #4] - 800e2e8: f43f af29 beq.w 800e13e <_malloc_r+0x252> - 800e2ec: 2a0f cmp r2, #15 - 800e2ee: d810 bhi.n 800e312 <_malloc_r+0x426> - 800e2f0: 2301 movs r3, #1 - 800e2f2: f8cb 3004 str.w r3, [fp, #4] - 800e2f6: 68bb ldr r3, [r7, #8] - 800e2f8: 685a ldr r2, [r3, #4] - 800e2fa: f022 0203 bic.w r2, r2, #3 - 800e2fe: 42aa cmp r2, r5 - 800e300: eba2 0305 sub.w r3, r2, r5 - 800e304: d301 bcc.n 800e30a <_malloc_r+0x41e> - 800e306: 2b0f cmp r3, #15 - 800e308: dc1c bgt.n 800e344 <_malloc_r+0x458> - 800e30a: 4630 mov r0, r6 - 800e30c: f000 f866 bl 800e3dc <__malloc_unlock> - 800e310: e5f8 b.n 800df04 <_malloc_r+0x18> - 800e312: f8da 3004 ldr.w r3, [sl, #4] - 800e316: f1a2 040c sub.w r4, r2, #12 - 800e31a: f024 0407 bic.w r4, r4, #7 - 800e31e: f003 0301 and.w r3, r3, #1 - 800e322: 4323 orrs r3, r4 - 800e324: f8ca 3004 str.w r3, [sl, #4] - 800e328: 2205 movs r2, #5 - 800e32a: eb0a 0304 add.w r3, sl, r4 - 800e32e: 2c0f cmp r4, #15 - 800e330: e9c3 2201 strd r2, r2, [r3, #4] - 800e334: f67f af03 bls.w 800e13e <_malloc_r+0x252> - 800e338: f10a 0108 add.w r1, sl, #8 - 800e33c: 4630 mov r0, r6 - 800e33e: f002 fcc9 bl 8010cd4 <_free_r> - 800e342: e6fc b.n 800e13e <_malloc_r+0x252> - 800e344: 68bc ldr r4, [r7, #8] - 800e346: f045 0201 orr.w r2, r5, #1 - 800e34a: 4425 add r5, r4 - 800e34c: f043 0301 orr.w r3, r3, #1 - 800e350: 6062 str r2, [r4, #4] - 800e352: 60bd str r5, [r7, #8] - 800e354: 606b str r3, [r5, #4] - 800e356: e5fa b.n 800df4e <_malloc_r+0x62> - -0800e358 : - 800e358: b530 push {r4, r5, lr} - 800e35a: 2400 movs r4, #0 - 800e35c: 42a2 cmp r2, r4 - 800e35e: d101 bne.n 800e364 - 800e360: 2000 movs r0, #0 - 800e362: e007 b.n 800e374 - 800e364: 5d03 ldrb r3, [r0, r4] - 800e366: 3401 adds r4, #1 - 800e368: 190d adds r5, r1, r4 - 800e36a: f815 5c01 ldrb.w r5, [r5, #-1] - 800e36e: 42ab cmp r3, r5 - 800e370: d0f4 beq.n 800e35c - 800e372: 1b58 subs r0, r3, r5 - 800e374: bd30 pop {r4, r5, pc} - -0800e376 : - 800e376: b510 push {r4, lr} - 800e378: 1e43 subs r3, r0, #1 - 800e37a: 440a add r2, r1 - 800e37c: 4291 cmp r1, r2 - 800e37e: d100 bne.n 800e382 - 800e380: bd10 pop {r4, pc} - 800e382: f811 4b01 ldrb.w r4, [r1], #1 - 800e386: f803 4f01 strb.w r4, [r3, #1]! - 800e38a: e7f7 b.n 800e37c - -0800e38c : - 800e38c: 4288 cmp r0, r1 - 800e38e: b510 push {r4, lr} - 800e390: eb01 0302 add.w r3, r1, r2 - 800e394: d807 bhi.n 800e3a6 - 800e396: 1e42 subs r2, r0, #1 - 800e398: 4299 cmp r1, r3 - 800e39a: d00a beq.n 800e3b2 - 800e39c: f811 4b01 ldrb.w r4, [r1], #1 - 800e3a0: f802 4f01 strb.w r4, [r2, #1]! - 800e3a4: e7f8 b.n 800e398 - 800e3a6: 4283 cmp r3, r0 - 800e3a8: d9f5 bls.n 800e396 - 800e3aa: 1881 adds r1, r0, r2 - 800e3ac: 1ad2 subs r2, r2, r3 - 800e3ae: 42d3 cmn r3, r2 - 800e3b0: d100 bne.n 800e3b4 - 800e3b2: bd10 pop {r4, pc} - 800e3b4: f813 4d01 ldrb.w r4, [r3, #-1]! - 800e3b8: f801 4d01 strb.w r4, [r1, #-1]! - 800e3bc: e7f7 b.n 800e3ae - -0800e3be : - 800e3be: 4402 add r2, r0 - 800e3c0: 4603 mov r3, r0 - 800e3c2: 4293 cmp r3, r2 - 800e3c4: d100 bne.n 800e3c8 - 800e3c6: 4770 bx lr - 800e3c8: f803 1b01 strb.w r1, [r3], #1 - 800e3cc: e7f9 b.n 800e3c2 - ... - -0800e3d0 <__malloc_lock>: - 800e3d0: 4801 ldr r0, [pc, #4] ; (800e3d8 <__malloc_lock+0x8>) - 800e3d2: f7ff bd79 b.w 800dec8 <__retarget_lock_acquire_recursive> - 800e3d6: bf00 nop - 800e3d8: 20000b00 .word 0x20000b00 - -0800e3dc <__malloc_unlock>: - 800e3dc: 4801 ldr r0, [pc, #4] ; (800e3e4 <__malloc_unlock+0x8>) - 800e3de: f7ff bd74 b.w 800deca <__retarget_lock_release_recursive> - 800e3e2: bf00 nop - 800e3e4: 20000b00 .word 0x20000b00 - -0800e3e8 <_putc_r>: - 800e3e8: b570 push {r4, r5, r6, lr} - 800e3ea: 460d mov r5, r1 - 800e3ec: 4614 mov r4, r2 - 800e3ee: 4606 mov r6, r0 - 800e3f0: b118 cbz r0, 800e3fa <_putc_r+0x12> - 800e3f2: 6b83 ldr r3, [r0, #56] ; 0x38 - 800e3f4: b90b cbnz r3, 800e3fa <_putc_r+0x12> - 800e3f6: f002 fbdd bl 8010bb4 <__sinit> - 800e3fa: 6e63 ldr r3, [r4, #100] ; 0x64 - 800e3fc: 07d8 lsls r0, r3, #31 - 800e3fe: d405 bmi.n 800e40c <_putc_r+0x24> - 800e400: 89a3 ldrh r3, [r4, #12] - 800e402: 0599 lsls r1, r3, #22 - 800e404: d402 bmi.n 800e40c <_putc_r+0x24> - 800e406: 6da0 ldr r0, [r4, #88] ; 0x58 - 800e408: f7ff fd5e bl 800dec8 <__retarget_lock_acquire_recursive> - 800e40c: 68a3 ldr r3, [r4, #8] - 800e40e: 3b01 subs r3, #1 - 800e410: 2b00 cmp r3, #0 - 800e412: 60a3 str r3, [r4, #8] - 800e414: da05 bge.n 800e422 <_putc_r+0x3a> - 800e416: 69a2 ldr r2, [r4, #24] - 800e418: 4293 cmp r3, r2 - 800e41a: db12 blt.n 800e442 <_putc_r+0x5a> - 800e41c: b2eb uxtb r3, r5 - 800e41e: 2b0a cmp r3, #10 - 800e420: d00f beq.n 800e442 <_putc_r+0x5a> - 800e422: 6823 ldr r3, [r4, #0] - 800e424: 1c5a adds r2, r3, #1 - 800e426: 6022 str r2, [r4, #0] - 800e428: 701d strb r5, [r3, #0] - 800e42a: b2ed uxtb r5, r5 - 800e42c: 6e63 ldr r3, [r4, #100] ; 0x64 - 800e42e: 07da lsls r2, r3, #31 - 800e430: d405 bmi.n 800e43e <_putc_r+0x56> - 800e432: 89a3 ldrh r3, [r4, #12] - 800e434: 059b lsls r3, r3, #22 - 800e436: d402 bmi.n 800e43e <_putc_r+0x56> - 800e438: 6da0 ldr r0, [r4, #88] ; 0x58 - 800e43a: f7ff fd46 bl 800deca <__retarget_lock_release_recursive> - 800e43e: 4628 mov r0, r5 - 800e440: bd70 pop {r4, r5, r6, pc} - 800e442: 4629 mov r1, r5 - 800e444: 4622 mov r2, r4 - 800e446: 4630 mov r0, r6 - 800e448: f001 fc32 bl 800fcb0 <__swbuf_r> - 800e44c: 4605 mov r5, r0 - 800e44e: e7ed b.n 800e42c <_putc_r+0x44> - -0800e450 : - 800e450: 4b02 ldr r3, [pc, #8] ; (800e45c ) - 800e452: 460a mov r2, r1 - 800e454: 4601 mov r1, r0 - 800e456: 6818 ldr r0, [r3, #0] - 800e458: f000 b802 b.w 800e460 <_realloc_r> - 800e45c: 20000014 .word 0x20000014 - -0800e460 <_realloc_r>: - 800e460: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800e464: 4682 mov sl, r0 - 800e466: 460c mov r4, r1 - 800e468: b929 cbnz r1, 800e476 <_realloc_r+0x16> - 800e46a: 4611 mov r1, r2 - 800e46c: b003 add sp, #12 - 800e46e: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800e472: f7ff bd3b b.w 800deec <_malloc_r> - 800e476: 9201 str r2, [sp, #4] - 800e478: f7ff ffaa bl 800e3d0 <__malloc_lock> - 800e47c: 9a01 ldr r2, [sp, #4] - 800e47e: f854 5c04 ldr.w r5, [r4, #-4] - 800e482: f102 080b add.w r8, r2, #11 - 800e486: f1b8 0f16 cmp.w r8, #22 - 800e48a: f1a4 0908 sub.w r9, r4, #8 - 800e48e: f025 0603 bic.w r6, r5, #3 - 800e492: d90b bls.n 800e4ac <_realloc_r+0x4c> - 800e494: f038 0807 bics.w r8, r8, #7 - 800e498: d50a bpl.n 800e4b0 <_realloc_r+0x50> - 800e49a: 230c movs r3, #12 - 800e49c: f8ca 3000 str.w r3, [sl] - 800e4a0: f04f 0b00 mov.w fp, #0 - 800e4a4: 4658 mov r0, fp - 800e4a6: b003 add sp, #12 - 800e4a8: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800e4ac: f04f 0810 mov.w r8, #16 - 800e4b0: 4590 cmp r8, r2 - 800e4b2: d3f2 bcc.n 800e49a <_realloc_r+0x3a> - 800e4b4: 45b0 cmp r8, r6 - 800e4b6: f340 8170 ble.w 800e79a <_realloc_r+0x33a> - 800e4ba: 49a9 ldr r1, [pc, #676] ; (800e760 <_realloc_r+0x300>) - 800e4bc: 9101 str r1, [sp, #4] - 800e4be: f8d1 c008 ldr.w ip, [r1, #8] - 800e4c2: eb09 0306 add.w r3, r9, r6 - 800e4c6: 459c cmp ip, r3 - 800e4c8: 6858 ldr r0, [r3, #4] - 800e4ca: d005 beq.n 800e4d8 <_realloc_r+0x78> - 800e4cc: f020 0101 bic.w r1, r0, #1 - 800e4d0: 4419 add r1, r3 - 800e4d2: 6849 ldr r1, [r1, #4] - 800e4d4: 07cf lsls r7, r1, #31 - 800e4d6: d447 bmi.n 800e568 <_realloc_r+0x108> - 800e4d8: f020 0003 bic.w r0, r0, #3 - 800e4dc: 459c cmp ip, r3 - 800e4de: eb06 0700 add.w r7, r6, r0 - 800e4e2: d119 bne.n 800e518 <_realloc_r+0xb8> - 800e4e4: f108 0110 add.w r1, r8, #16 - 800e4e8: 42b9 cmp r1, r7 - 800e4ea: dc3f bgt.n 800e56c <_realloc_r+0x10c> - 800e4ec: eb09 0308 add.w r3, r9, r8 - 800e4f0: 9a01 ldr r2, [sp, #4] - 800e4f2: eba7 0708 sub.w r7, r7, r8 - 800e4f6: f047 0701 orr.w r7, r7, #1 - 800e4fa: 6093 str r3, [r2, #8] - 800e4fc: 605f str r7, [r3, #4] - 800e4fe: f854 3c04 ldr.w r3, [r4, #-4] - 800e502: f003 0301 and.w r3, r3, #1 - 800e506: ea43 0308 orr.w r3, r3, r8 - 800e50a: f844 3c04 str.w r3, [r4, #-4] - 800e50e: 4650 mov r0, sl - 800e510: f7ff ff64 bl 800e3dc <__malloc_unlock> - 800e514: 46a3 mov fp, r4 - 800e516: e7c5 b.n 800e4a4 <_realloc_r+0x44> - 800e518: 45b8 cmp r8, r7 - 800e51a: dc27 bgt.n 800e56c <_realloc_r+0x10c> - 800e51c: e9d3 3202 ldrd r3, r2, [r3, #8] - 800e520: 60da str r2, [r3, #12] - 800e522: 6093 str r3, [r2, #8] - 800e524: eba7 0008 sub.w r0, r7, r8 - 800e528: f8d9 2004 ldr.w r2, [r9, #4] - 800e52c: 280f cmp r0, #15 - 800e52e: f002 0201 and.w r2, r2, #1 - 800e532: eb09 0307 add.w r3, r9, r7 - 800e536: f240 8132 bls.w 800e79e <_realloc_r+0x33e> - 800e53a: eb09 0108 add.w r1, r9, r8 - 800e53e: ea48 0202 orr.w r2, r8, r2 - 800e542: f040 0001 orr.w r0, r0, #1 - 800e546: f8c9 2004 str.w r2, [r9, #4] - 800e54a: 6048 str r0, [r1, #4] - 800e54c: 685a ldr r2, [r3, #4] - 800e54e: f042 0201 orr.w r2, r2, #1 - 800e552: 605a str r2, [r3, #4] - 800e554: 3108 adds r1, #8 - 800e556: 4650 mov r0, sl - 800e558: f002 fbbc bl 8010cd4 <_free_r> - 800e55c: 4650 mov r0, sl - 800e55e: f7ff ff3d bl 800e3dc <__malloc_unlock> - 800e562: f109 0b08 add.w fp, r9, #8 - 800e566: e79d b.n 800e4a4 <_realloc_r+0x44> - 800e568: 2000 movs r0, #0 - 800e56a: 4603 mov r3, r0 - 800e56c: 07e9 lsls r1, r5, #31 - 800e56e: f100 80c6 bmi.w 800e6fe <_realloc_r+0x29e> - 800e572: f854 5c08 ldr.w r5, [r4, #-8] - 800e576: eba9 0505 sub.w r5, r9, r5 - 800e57a: 6869 ldr r1, [r5, #4] - 800e57c: f021 0103 bic.w r1, r1, #3 - 800e580: eb01 0b06 add.w fp, r1, r6 - 800e584: 2b00 cmp r3, #0 - 800e586: f000 8086 beq.w 800e696 <_realloc_r+0x236> - 800e58a: 459c cmp ip, r3 - 800e58c: eb00 070b add.w r7, r0, fp - 800e590: d149 bne.n 800e626 <_realloc_r+0x1c6> - 800e592: f108 0310 add.w r3, r8, #16 - 800e596: 42bb cmp r3, r7 - 800e598: dc7d bgt.n 800e696 <_realloc_r+0x236> - 800e59a: 46ab mov fp, r5 - 800e59c: 68eb ldr r3, [r5, #12] - 800e59e: f85b 2f08 ldr.w r2, [fp, #8]! - 800e5a2: 60d3 str r3, [r2, #12] - 800e5a4: 609a str r2, [r3, #8] - 800e5a6: 1f32 subs r2, r6, #4 - 800e5a8: 2a24 cmp r2, #36 ; 0x24 - 800e5aa: d837 bhi.n 800e61c <_realloc_r+0x1bc> - 800e5ac: 2a13 cmp r2, #19 - 800e5ae: d933 bls.n 800e618 <_realloc_r+0x1b8> - 800e5b0: 6823 ldr r3, [r4, #0] - 800e5b2: 60ab str r3, [r5, #8] - 800e5b4: 6863 ldr r3, [r4, #4] - 800e5b6: 60eb str r3, [r5, #12] - 800e5b8: 2a1b cmp r2, #27 - 800e5ba: d81b bhi.n 800e5f4 <_realloc_r+0x194> - 800e5bc: 3408 adds r4, #8 - 800e5be: f105 0310 add.w r3, r5, #16 - 800e5c2: 6822 ldr r2, [r4, #0] - 800e5c4: 601a str r2, [r3, #0] - 800e5c6: 6862 ldr r2, [r4, #4] - 800e5c8: 605a str r2, [r3, #4] - 800e5ca: 68a2 ldr r2, [r4, #8] - 800e5cc: 609a str r2, [r3, #8] - 800e5ce: eb05 0308 add.w r3, r5, r8 - 800e5d2: 9a01 ldr r2, [sp, #4] - 800e5d4: eba7 0708 sub.w r7, r7, r8 - 800e5d8: f047 0701 orr.w r7, r7, #1 - 800e5dc: 6093 str r3, [r2, #8] - 800e5de: 605f str r7, [r3, #4] - 800e5e0: 686b ldr r3, [r5, #4] - 800e5e2: f003 0301 and.w r3, r3, #1 - 800e5e6: ea43 0308 orr.w r3, r3, r8 - 800e5ea: 606b str r3, [r5, #4] - 800e5ec: 4650 mov r0, sl - 800e5ee: f7ff fef5 bl 800e3dc <__malloc_unlock> - 800e5f2: e757 b.n 800e4a4 <_realloc_r+0x44> - 800e5f4: 68a3 ldr r3, [r4, #8] - 800e5f6: 612b str r3, [r5, #16] - 800e5f8: 68e3 ldr r3, [r4, #12] - 800e5fa: 616b str r3, [r5, #20] - 800e5fc: 2a24 cmp r2, #36 ; 0x24 - 800e5fe: bf01 itttt eq - 800e600: 6923 ldreq r3, [r4, #16] - 800e602: 61ab streq r3, [r5, #24] - 800e604: 6962 ldreq r2, [r4, #20] - 800e606: 61ea streq r2, [r5, #28] - 800e608: bf19 ittee ne - 800e60a: 3410 addne r4, #16 - 800e60c: f105 0318 addne.w r3, r5, #24 - 800e610: f105 0320 addeq.w r3, r5, #32 - 800e614: 3418 addeq r4, #24 - 800e616: e7d4 b.n 800e5c2 <_realloc_r+0x162> - 800e618: 465b mov r3, fp - 800e61a: e7d2 b.n 800e5c2 <_realloc_r+0x162> - 800e61c: 4621 mov r1, r4 - 800e61e: 4658 mov r0, fp - 800e620: f7ff feb4 bl 800e38c - 800e624: e7d3 b.n 800e5ce <_realloc_r+0x16e> - 800e626: 45b8 cmp r8, r7 - 800e628: dc35 bgt.n 800e696 <_realloc_r+0x236> - 800e62a: e9d3 3202 ldrd r3, r2, [r3, #8] - 800e62e: 4628 mov r0, r5 - 800e630: 60da str r2, [r3, #12] - 800e632: 6093 str r3, [r2, #8] - 800e634: f850 2f08 ldr.w r2, [r0, #8]! - 800e638: 68eb ldr r3, [r5, #12] - 800e63a: 60d3 str r3, [r2, #12] - 800e63c: 609a str r2, [r3, #8] - 800e63e: 1f32 subs r2, r6, #4 - 800e640: 2a24 cmp r2, #36 ; 0x24 - 800e642: d824 bhi.n 800e68e <_realloc_r+0x22e> - 800e644: 2a13 cmp r2, #19 - 800e646: d908 bls.n 800e65a <_realloc_r+0x1fa> - 800e648: 6823 ldr r3, [r4, #0] - 800e64a: 60ab str r3, [r5, #8] - 800e64c: 6863 ldr r3, [r4, #4] - 800e64e: 60eb str r3, [r5, #12] - 800e650: 2a1b cmp r2, #27 - 800e652: d80a bhi.n 800e66a <_realloc_r+0x20a> - 800e654: 3408 adds r4, #8 - 800e656: f105 0010 add.w r0, r5, #16 - 800e65a: 6823 ldr r3, [r4, #0] - 800e65c: 6003 str r3, [r0, #0] - 800e65e: 6863 ldr r3, [r4, #4] - 800e660: 6043 str r3, [r0, #4] - 800e662: 68a3 ldr r3, [r4, #8] - 800e664: 6083 str r3, [r0, #8] - 800e666: 46a9 mov r9, r5 - 800e668: e75c b.n 800e524 <_realloc_r+0xc4> - 800e66a: 68a3 ldr r3, [r4, #8] - 800e66c: 612b str r3, [r5, #16] - 800e66e: 68e3 ldr r3, [r4, #12] - 800e670: 616b str r3, [r5, #20] - 800e672: 2a24 cmp r2, #36 ; 0x24 - 800e674: bf01 itttt eq - 800e676: 6923 ldreq r3, [r4, #16] - 800e678: 61ab streq r3, [r5, #24] - 800e67a: 6963 ldreq r3, [r4, #20] - 800e67c: 61eb streq r3, [r5, #28] - 800e67e: bf19 ittee ne - 800e680: 3410 addne r4, #16 - 800e682: f105 0018 addne.w r0, r5, #24 - 800e686: f105 0020 addeq.w r0, r5, #32 - 800e68a: 3418 addeq r4, #24 - 800e68c: e7e5 b.n 800e65a <_realloc_r+0x1fa> - 800e68e: 4621 mov r1, r4 - 800e690: f7ff fe7c bl 800e38c - 800e694: e7e7 b.n 800e666 <_realloc_r+0x206> - 800e696: 45d8 cmp r8, fp - 800e698: dc31 bgt.n 800e6fe <_realloc_r+0x29e> - 800e69a: 4628 mov r0, r5 - 800e69c: 68eb ldr r3, [r5, #12] - 800e69e: f850 2f08 ldr.w r2, [r0, #8]! - 800e6a2: 60d3 str r3, [r2, #12] - 800e6a4: 609a str r2, [r3, #8] - 800e6a6: 1f32 subs r2, r6, #4 - 800e6a8: 2a24 cmp r2, #36 ; 0x24 - 800e6aa: d824 bhi.n 800e6f6 <_realloc_r+0x296> - 800e6ac: 2a13 cmp r2, #19 - 800e6ae: d908 bls.n 800e6c2 <_realloc_r+0x262> - 800e6b0: 6823 ldr r3, [r4, #0] - 800e6b2: 60ab str r3, [r5, #8] - 800e6b4: 6863 ldr r3, [r4, #4] - 800e6b6: 60eb str r3, [r5, #12] - 800e6b8: 2a1b cmp r2, #27 - 800e6ba: d80a bhi.n 800e6d2 <_realloc_r+0x272> - 800e6bc: 3408 adds r4, #8 - 800e6be: f105 0010 add.w r0, r5, #16 - 800e6c2: 6823 ldr r3, [r4, #0] - 800e6c4: 6003 str r3, [r0, #0] - 800e6c6: 6863 ldr r3, [r4, #4] - 800e6c8: 6043 str r3, [r0, #4] - 800e6ca: 68a3 ldr r3, [r4, #8] - 800e6cc: 6083 str r3, [r0, #8] - 800e6ce: 465f mov r7, fp - 800e6d0: e7c9 b.n 800e666 <_realloc_r+0x206> - 800e6d2: 68a3 ldr r3, [r4, #8] - 800e6d4: 612b str r3, [r5, #16] - 800e6d6: 68e3 ldr r3, [r4, #12] - 800e6d8: 616b str r3, [r5, #20] - 800e6da: 2a24 cmp r2, #36 ; 0x24 - 800e6dc: bf01 itttt eq - 800e6de: 6923 ldreq r3, [r4, #16] - 800e6e0: 61ab streq r3, [r5, #24] - 800e6e2: 6963 ldreq r3, [r4, #20] - 800e6e4: 61eb streq r3, [r5, #28] - 800e6e6: bf19 ittee ne - 800e6e8: 3410 addne r4, #16 - 800e6ea: f105 0018 addne.w r0, r5, #24 - 800e6ee: f105 0020 addeq.w r0, r5, #32 - 800e6f2: 3418 addeq r4, #24 - 800e6f4: e7e5 b.n 800e6c2 <_realloc_r+0x262> - 800e6f6: 4621 mov r1, r4 - 800e6f8: f7ff fe48 bl 800e38c - 800e6fc: e7e7 b.n 800e6ce <_realloc_r+0x26e> - 800e6fe: 4611 mov r1, r2 - 800e700: 4650 mov r0, sl - 800e702: f7ff fbf3 bl 800deec <_malloc_r> - 800e706: 4683 mov fp, r0 - 800e708: 2800 cmp r0, #0 - 800e70a: f43f af6f beq.w 800e5ec <_realloc_r+0x18c> - 800e70e: f854 3c04 ldr.w r3, [r4, #-4] - 800e712: f023 0301 bic.w r3, r3, #1 - 800e716: 444b add r3, r9 - 800e718: f1a0 0208 sub.w r2, r0, #8 - 800e71c: 4293 cmp r3, r2 - 800e71e: d105 bne.n 800e72c <_realloc_r+0x2cc> - 800e720: f850 7c04 ldr.w r7, [r0, #-4] - 800e724: f027 0703 bic.w r7, r7, #3 - 800e728: 4437 add r7, r6 - 800e72a: e6fb b.n 800e524 <_realloc_r+0xc4> - 800e72c: 1f32 subs r2, r6, #4 - 800e72e: 2a24 cmp r2, #36 ; 0x24 - 800e730: d82f bhi.n 800e792 <_realloc_r+0x332> - 800e732: 2a13 cmp r2, #19 - 800e734: d92a bls.n 800e78c <_realloc_r+0x32c> - 800e736: 6823 ldr r3, [r4, #0] - 800e738: 6003 str r3, [r0, #0] - 800e73a: 6863 ldr r3, [r4, #4] - 800e73c: 6043 str r3, [r0, #4] - 800e73e: 2a1b cmp r2, #27 - 800e740: d810 bhi.n 800e764 <_realloc_r+0x304> - 800e742: f104 0208 add.w r2, r4, #8 - 800e746: f100 0308 add.w r3, r0, #8 - 800e74a: 6811 ldr r1, [r2, #0] - 800e74c: 6019 str r1, [r3, #0] - 800e74e: 6851 ldr r1, [r2, #4] - 800e750: 6059 str r1, [r3, #4] - 800e752: 6892 ldr r2, [r2, #8] - 800e754: 609a str r2, [r3, #8] - 800e756: 4621 mov r1, r4 - 800e758: 4650 mov r0, sl - 800e75a: f002 fabb bl 8010cd4 <_free_r> - 800e75e: e745 b.n 800e5ec <_realloc_r+0x18c> - 800e760: 20000440 .word 0x20000440 - 800e764: 68a3 ldr r3, [r4, #8] - 800e766: 6083 str r3, [r0, #8] - 800e768: 68e3 ldr r3, [r4, #12] - 800e76a: 60c3 str r3, [r0, #12] - 800e76c: 2a24 cmp r2, #36 ; 0x24 - 800e76e: bf01 itttt eq - 800e770: 6923 ldreq r3, [r4, #16] - 800e772: 6103 streq r3, [r0, #16] - 800e774: 6961 ldreq r1, [r4, #20] - 800e776: 6141 streq r1, [r0, #20] - 800e778: bf19 ittee ne - 800e77a: f104 0210 addne.w r2, r4, #16 - 800e77e: f100 0310 addne.w r3, r0, #16 - 800e782: f104 0218 addeq.w r2, r4, #24 - 800e786: f100 0318 addeq.w r3, r0, #24 - 800e78a: e7de b.n 800e74a <_realloc_r+0x2ea> - 800e78c: 4603 mov r3, r0 - 800e78e: 4622 mov r2, r4 - 800e790: e7db b.n 800e74a <_realloc_r+0x2ea> - 800e792: 4621 mov r1, r4 - 800e794: f7ff fdfa bl 800e38c - 800e798: e7dd b.n 800e756 <_realloc_r+0x2f6> - 800e79a: 4637 mov r7, r6 - 800e79c: e6c2 b.n 800e524 <_realloc_r+0xc4> - 800e79e: 4317 orrs r7, r2 - 800e7a0: f8c9 7004 str.w r7, [r9, #4] - 800e7a4: 685a ldr r2, [r3, #4] - 800e7a6: f042 0201 orr.w r2, r2, #1 - 800e7aa: 605a str r2, [r3, #4] - 800e7ac: e6d6 b.n 800e55c <_realloc_r+0xfc> - 800e7ae: bf00 nop - -0800e7b0 <_sbrk_r>: - 800e7b0: b538 push {r3, r4, r5, lr} - 800e7b2: 4c06 ldr r4, [pc, #24] ; (800e7cc <_sbrk_r+0x1c>) - 800e7b4: 2300 movs r3, #0 - 800e7b6: 4605 mov r5, r0 - 800e7b8: 4608 mov r0, r1 - 800e7ba: 6023 str r3, [r4, #0] - 800e7bc: f7fe f81e bl 800c7fc <_sbrk> - 800e7c0: 1c43 adds r3, r0, #1 - 800e7c2: d102 bne.n 800e7ca <_sbrk_r+0x1a> - 800e7c4: 6823 ldr r3, [r4, #0] - 800e7c6: b103 cbz r3, 800e7ca <_sbrk_r+0x1a> - 800e7c8: 602b str r3, [r5, #0] - 800e7ca: bd38 pop {r3, r4, r5, pc} - 800e7cc: 20000b08 .word 0x20000b08 - -0800e7d0 <_raise_r>: - 800e7d0: 291f cmp r1, #31 - 800e7d2: b538 push {r3, r4, r5, lr} - 800e7d4: 4604 mov r4, r0 - 800e7d6: 460d mov r5, r1 - 800e7d8: d904 bls.n 800e7e4 <_raise_r+0x14> - 800e7da: 2316 movs r3, #22 - 800e7dc: 6003 str r3, [r0, #0] - 800e7de: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 800e7e2: bd38 pop {r3, r4, r5, pc} - 800e7e4: f8d0 22dc ldr.w r2, [r0, #732] ; 0x2dc - 800e7e8: b112 cbz r2, 800e7f0 <_raise_r+0x20> - 800e7ea: f852 3021 ldr.w r3, [r2, r1, lsl #2] - 800e7ee: b94b cbnz r3, 800e804 <_raise_r+0x34> - 800e7f0: 4620 mov r0, r4 - 800e7f2: f000 f831 bl 800e858 <_getpid_r> - 800e7f6: 462a mov r2, r5 - 800e7f8: 4601 mov r1, r0 - 800e7fa: 4620 mov r0, r4 - 800e7fc: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} - 800e800: f000 b818 b.w 800e834 <_kill_r> - 800e804: 2b01 cmp r3, #1 - 800e806: d00a beq.n 800e81e <_raise_r+0x4e> - 800e808: 1c59 adds r1, r3, #1 - 800e80a: d103 bne.n 800e814 <_raise_r+0x44> - 800e80c: 2316 movs r3, #22 - 800e80e: 6003 str r3, [r0, #0] - 800e810: 2001 movs r0, #1 - 800e812: e7e6 b.n 800e7e2 <_raise_r+0x12> - 800e814: 2400 movs r4, #0 - 800e816: f842 4025 str.w r4, [r2, r5, lsl #2] - 800e81a: 4628 mov r0, r5 - 800e81c: 4798 blx r3 - 800e81e: 2000 movs r0, #0 - 800e820: e7df b.n 800e7e2 <_raise_r+0x12> - ... - -0800e824 : - 800e824: 4b02 ldr r3, [pc, #8] ; (800e830 ) - 800e826: 4601 mov r1, r0 - 800e828: 6818 ldr r0, [r3, #0] - 800e82a: f7ff bfd1 b.w 800e7d0 <_raise_r> - 800e82e: bf00 nop - 800e830: 20000014 .word 0x20000014 - -0800e834 <_kill_r>: - 800e834: b538 push {r3, r4, r5, lr} - 800e836: 4c07 ldr r4, [pc, #28] ; (800e854 <_kill_r+0x20>) - 800e838: 2300 movs r3, #0 - 800e83a: 4605 mov r5, r0 - 800e83c: 4608 mov r0, r1 - 800e83e: 4611 mov r1, r2 - 800e840: 6023 str r3, [r4, #0] - 800e842: f7fd ff53 bl 800c6ec <_kill> - 800e846: 1c43 adds r3, r0, #1 - 800e848: d102 bne.n 800e850 <_kill_r+0x1c> - 800e84a: 6823 ldr r3, [r4, #0] - 800e84c: b103 cbz r3, 800e850 <_kill_r+0x1c> - 800e84e: 602b str r3, [r5, #0] - 800e850: bd38 pop {r3, r4, r5, pc} - 800e852: bf00 nop - 800e854: 20000b08 .word 0x20000b08 - -0800e858 <_getpid_r>: - 800e858: f7fd bf40 b.w 800c6dc <_getpid> - -0800e85c : - 800e85c: b40e push {r1, r2, r3} - 800e85e: b500 push {lr} - 800e860: b09c sub sp, #112 ; 0x70 - 800e862: ab1d add r3, sp, #116 ; 0x74 - 800e864: 9002 str r0, [sp, #8] - 800e866: 9006 str r0, [sp, #24] - 800e868: f06f 4100 mvn.w r1, #2147483648 ; 0x80000000 - 800e86c: 4809 ldr r0, [pc, #36] ; (800e894 ) - 800e86e: 9107 str r1, [sp, #28] - 800e870: 9104 str r1, [sp, #16] - 800e872: 4909 ldr r1, [pc, #36] ; (800e898 ) - 800e874: f853 2b04 ldr.w r2, [r3], #4 - 800e878: 9105 str r1, [sp, #20] - 800e87a: 6800 ldr r0, [r0, #0] - 800e87c: 9301 str r3, [sp, #4] - 800e87e: a902 add r1, sp, #8 - 800e880: f000 f81e bl 800e8c0 <_svfprintf_r> - 800e884: 9b02 ldr r3, [sp, #8] - 800e886: 2200 movs r2, #0 - 800e888: 701a strb r2, [r3, #0] - 800e88a: b01c add sp, #112 ; 0x70 - 800e88c: f85d eb04 ldr.w lr, [sp], #4 - 800e890: b003 add sp, #12 - 800e892: 4770 bx lr - 800e894: 20000014 .word 0x20000014 - 800e898: ffff0208 .word 0xffff0208 - -0800e89c : - 800e89c: b510 push {r4, lr} - 800e89e: b16a cbz r2, 800e8bc - 800e8a0: 3901 subs r1, #1 - 800e8a2: 1884 adds r4, r0, r2 - 800e8a4: f810 3b01 ldrb.w r3, [r0], #1 - 800e8a8: f811 2f01 ldrb.w r2, [r1, #1]! - 800e8ac: 4293 cmp r3, r2 - 800e8ae: d103 bne.n 800e8b8 - 800e8b0: 42a0 cmp r0, r4 - 800e8b2: d001 beq.n 800e8b8 - 800e8b4: 2b00 cmp r3, #0 - 800e8b6: d1f5 bne.n 800e8a4 - 800e8b8: 1a98 subs r0, r3, r2 - 800e8ba: bd10 pop {r4, pc} - 800e8bc: 4610 mov r0, r2 - 800e8be: e7fc b.n 800e8ba - -0800e8c0 <_svfprintf_r>: - 800e8c0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800e8c4: ed2d 8b04 vpush {d8-d9} - 800e8c8: b0cb sub sp, #300 ; 0x12c - 800e8ca: 468b mov fp, r1 - 800e8cc: 4691 mov r9, r2 - 800e8ce: 461e mov r6, r3 - 800e8d0: 9002 str r0, [sp, #8] - 800e8d2: f002 fad9 bl 8010e88 <_localeconv_r> - 800e8d6: 6803 ldr r3, [r0, #0] - 800e8d8: 930f str r3, [sp, #60] ; 0x3c - 800e8da: 4618 mov r0, r3 - 800e8dc: f7f8 fa7a bl 8006dd4 - 800e8e0: f8bb 300c ldrh.w r3, [fp, #12] - 800e8e4: 9009 str r0, [sp, #36] ; 0x24 - 800e8e6: 0618 lsls r0, r3, #24 - 800e8e8: d51a bpl.n 800e920 <_svfprintf_r+0x60> - 800e8ea: f8db 3010 ldr.w r3, [fp, #16] - 800e8ee: b9bb cbnz r3, 800e920 <_svfprintf_r+0x60> - 800e8f0: 2140 movs r1, #64 ; 0x40 - 800e8f2: 9802 ldr r0, [sp, #8] - 800e8f4: f7ff fafa bl 800deec <_malloc_r> - 800e8f8: f8cb 0000 str.w r0, [fp] - 800e8fc: f8cb 0010 str.w r0, [fp, #16] - 800e900: b958 cbnz r0, 800e91a <_svfprintf_r+0x5a> - 800e902: 9a02 ldr r2, [sp, #8] - 800e904: 230c movs r3, #12 - 800e906: 6013 str r3, [r2, #0] - 800e908: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 800e90c: 930a str r3, [sp, #40] ; 0x28 - 800e90e: 980a ldr r0, [sp, #40] ; 0x28 - 800e910: b04b add sp, #300 ; 0x12c - 800e912: ecbd 8b04 vpop {d8-d9} - 800e916: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800e91a: 2340 movs r3, #64 ; 0x40 - 800e91c: f8cb 3014 str.w r3, [fp, #20] - 800e920: 2300 movs r3, #0 - 800e922: e9cd 331f strd r3, r3, [sp, #124] ; 0x7c - 800e926: ed9f 8bc6 vldr d8, [pc, #792] ; 800ec40 <_svfprintf_r+0x380> - 800e92a: e9cd 3310 strd r3, r3, [sp, #64] ; 0x40 - 800e92e: ac21 add r4, sp, #132 ; 0x84 - 800e930: 941e str r4, [sp, #120] ; 0x78 - 800e932: 9303 str r3, [sp, #12] - 800e934: 9307 str r3, [sp, #28] - 800e936: 930e str r3, [sp, #56] ; 0x38 - 800e938: 9312 str r3, [sp, #72] ; 0x48 - 800e93a: 930a str r3, [sp, #40] ; 0x28 - 800e93c: 464d mov r5, r9 - 800e93e: 462b mov r3, r5 - 800e940: f813 2b01 ldrb.w r2, [r3], #1 - 800e944: b112 cbz r2, 800e94c <_svfprintf_r+0x8c> - 800e946: 2a25 cmp r2, #37 ; 0x25 - 800e948: f040 80e4 bne.w 800eb14 <_svfprintf_r+0x254> - 800e94c: ebb5 0709 subs.w r7, r5, r9 - 800e950: d00e beq.n 800e970 <_svfprintf_r+0xb0> - 800e952: 9b20 ldr r3, [sp, #128] ; 0x80 - 800e954: 443b add r3, r7 - 800e956: 9320 str r3, [sp, #128] ; 0x80 - 800e958: 9b1f ldr r3, [sp, #124] ; 0x7c - 800e95a: 3301 adds r3, #1 - 800e95c: 2b07 cmp r3, #7 - 800e95e: e9c4 9700 strd r9, r7, [r4] - 800e962: 931f str r3, [sp, #124] ; 0x7c - 800e964: f300 80d8 bgt.w 800eb18 <_svfprintf_r+0x258> - 800e968: 3408 adds r4, #8 - 800e96a: 9b0a ldr r3, [sp, #40] ; 0x28 - 800e96c: 443b add r3, r7 - 800e96e: 930a str r3, [sp, #40] ; 0x28 - 800e970: 782b ldrb r3, [r5, #0] - 800e972: 2b00 cmp r3, #0 - 800e974: f001 8174 beq.w 800fc60 <_svfprintf_r+0x13a0> - 800e978: 1c6b adds r3, r5, #1 - 800e97a: 9308 str r3, [sp, #32] - 800e97c: 2300 movs r3, #0 - 800e97e: f88d 305b strb.w r3, [sp, #91] ; 0x5b - 800e982: f04f 38ff mov.w r8, #4294967295 ; 0xffffffff - 800e986: 930b str r3, [sp, #44] ; 0x2c - 800e988: 461d mov r5, r3 - 800e98a: 9b08 ldr r3, [sp, #32] - 800e98c: 781b ldrb r3, [r3, #0] - 800e98e: 9304 str r3, [sp, #16] - 800e990: 9b08 ldr r3, [sp, #32] - 800e992: 3301 adds r3, #1 - 800e994: 9308 str r3, [sp, #32] - 800e996: 9b04 ldr r3, [sp, #16] - 800e998: 3b20 subs r3, #32 - 800e99a: 2b5a cmp r3, #90 ; 0x5a - 800e99c: f200 85e5 bhi.w 800f56a <_svfprintf_r+0xcaa> - 800e9a0: a201 add r2, pc, #4 ; (adr r2, 800e9a8 <_svfprintf_r+0xe8>) - 800e9a2: f852 f023 ldr.w pc, [r2, r3, lsl #2] - 800e9a6: bf00 nop - 800e9a8: 0800eba7 .word 0x0800eba7 - 800e9ac: 0800f56b .word 0x0800f56b - 800e9b0: 0800f56b .word 0x0800f56b - 800e9b4: 0800ebb9 .word 0x0800ebb9 - 800e9b8: 0800f56b .word 0x0800f56b - 800e9bc: 0800f56b .word 0x0800f56b - 800e9c0: 0800f56b .word 0x0800f56b - 800e9c4: 0800eb6d .word 0x0800eb6d - 800e9c8: 0800f56b .word 0x0800f56b - 800e9cc: 0800f56b .word 0x0800f56b - 800e9d0: 0800ebbf .word 0x0800ebbf - 800e9d4: 0800ebd7 .word 0x0800ebd7 - 800e9d8: 0800f56b .word 0x0800f56b - 800e9dc: 0800ebd1 .word 0x0800ebd1 - 800e9e0: 0800ebdb .word 0x0800ebdb - 800e9e4: 0800f56b .word 0x0800f56b - 800e9e8: 0800ec13 .word 0x0800ec13 - 800e9ec: 0800ec19 .word 0x0800ec19 - 800e9f0: 0800ec19 .word 0x0800ec19 - 800e9f4: 0800ec19 .word 0x0800ec19 - 800e9f8: 0800ec19 .word 0x0800ec19 - 800e9fc: 0800ec19 .word 0x0800ec19 - 800ea00: 0800ec19 .word 0x0800ec19 - 800ea04: 0800ec19 .word 0x0800ec19 - 800ea08: 0800ec19 .word 0x0800ec19 - 800ea0c: 0800ec19 .word 0x0800ec19 - 800ea10: 0800f56b .word 0x0800f56b - 800ea14: 0800f56b .word 0x0800f56b - 800ea18: 0800f56b .word 0x0800f56b - 800ea1c: 0800f56b .word 0x0800f56b - 800ea20: 0800f56b .word 0x0800f56b - 800ea24: 0800f56b .word 0x0800f56b - 800ea28: 0800f56b .word 0x0800f56b - 800ea2c: 0800ed13 .word 0x0800ed13 - 800ea30: 0800f56b .word 0x0800f56b - 800ea34: 0800ec81 .word 0x0800ec81 - 800ea38: 0800eca5 .word 0x0800eca5 - 800ea3c: 0800ed13 .word 0x0800ed13 - 800ea40: 0800ed13 .word 0x0800ed13 - 800ea44: 0800ed13 .word 0x0800ed13 - 800ea48: 0800f56b .word 0x0800f56b - 800ea4c: 0800f56b .word 0x0800f56b - 800ea50: 0800f56b .word 0x0800f56b - 800ea54: 0800f56b .word 0x0800f56b - 800ea58: 0800ec3b .word 0x0800ec3b - 800ea5c: 0800f56b .word 0x0800f56b - 800ea60: 0800f56b .word 0x0800f56b - 800ea64: 0800f187 .word 0x0800f187 - 800ea68: 0800f56b .word 0x0800f56b - 800ea6c: 0800f56b .word 0x0800f56b - 800ea70: 0800f56b .word 0x0800f56b - 800ea74: 0800f20f .word 0x0800f20f - 800ea78: 0800f56b .word 0x0800f56b - 800ea7c: 0800f3e7 .word 0x0800f3e7 - 800ea80: 0800f56b .word 0x0800f56b - 800ea84: 0800f56b .word 0x0800f56b - 800ea88: 0800eb31 .word 0x0800eb31 - 800ea8c: 0800f56b .word 0x0800f56b - 800ea90: 0800f56b .word 0x0800f56b - 800ea94: 0800f56b .word 0x0800f56b - 800ea98: 0800f56b .word 0x0800f56b - 800ea9c: 0800f56b .word 0x0800f56b - 800eaa0: 0800f56b .word 0x0800f56b - 800eaa4: 0800f56b .word 0x0800f56b - 800eaa8: 0800f56b .word 0x0800f56b - 800eaac: 0800ed13 .word 0x0800ed13 - 800eab0: 0800f56b .word 0x0800f56b - 800eab4: 0800ec81 .word 0x0800ec81 - 800eab8: 0800eca9 .word 0x0800eca9 - 800eabc: 0800ed13 .word 0x0800ed13 - 800eac0: 0800ed13 .word 0x0800ed13 - 800eac4: 0800ed13 .word 0x0800ed13 - 800eac8: 0800ec4d .word 0x0800ec4d - 800eacc: 0800eca9 .word 0x0800eca9 - 800ead0: 0800ec75 .word 0x0800ec75 - 800ead4: 0800f56b .word 0x0800f56b - 800ead8: 0800ec67 .word 0x0800ec67 - 800eadc: 0800f56b .word 0x0800f56b - 800eae0: 0800f149 .word 0x0800f149 - 800eae4: 0800f18b .word 0x0800f18b - 800eae8: 0800f1ef .word 0x0800f1ef - 800eaec: 0800ec75 .word 0x0800ec75 - 800eaf0: 0800f56b .word 0x0800f56b - 800eaf4: 0800f20f .word 0x0800f20f - 800eaf8: 0800e98b .word 0x0800e98b - 800eafc: 0800f3eb .word 0x0800f3eb - 800eb00: 0800f56b .word 0x0800f56b - 800eb04: 0800f56b .word 0x0800f56b - 800eb08: 0800f421 .word 0x0800f421 - 800eb0c: 0800f56b .word 0x0800f56b - 800eb10: 0800e98b .word 0x0800e98b - 800eb14: 461d mov r5, r3 - 800eb16: e712 b.n 800e93e <_svfprintf_r+0x7e> - 800eb18: aa1e add r2, sp, #120 ; 0x78 - 800eb1a: 4659 mov r1, fp - 800eb1c: 9802 ldr r0, [sp, #8] - 800eb1e: f002 fd71 bl 8011604 <__ssprint_r> - 800eb22: 2800 cmp r0, #0 - 800eb24: f040 8150 bne.w 800edc8 <_svfprintf_r+0x508> - 800eb28: ac21 add r4, sp, #132 ; 0x84 - 800eb2a: e71e b.n 800e96a <_svfprintf_r+0xaa> - 800eb2c: 461e mov r6, r3 - 800eb2e: e72c b.n 800e98a <_svfprintf_r+0xca> - 800eb30: 4b45 ldr r3, [pc, #276] ; (800ec48 <_svfprintf_r+0x388>) - 800eb32: 9311 str r3, [sp, #68] ; 0x44 - 800eb34: 06af lsls r7, r5, #26 - 800eb36: f140 8476 bpl.w 800f426 <_svfprintf_r+0xb66> - 800eb3a: 3607 adds r6, #7 - 800eb3c: f026 0607 bic.w r6, r6, #7 - 800eb40: f106 0308 add.w r3, r6, #8 - 800eb44: e9d6 6700 ldrd r6, r7, [r6] - 800eb48: 9306 str r3, [sp, #24] - 800eb4a: 07eb lsls r3, r5, #31 - 800eb4c: d50a bpl.n 800eb64 <_svfprintf_r+0x2a4> - 800eb4e: ea56 0307 orrs.w r3, r6, r7 - 800eb52: d007 beq.n 800eb64 <_svfprintf_r+0x2a4> - 800eb54: 2330 movs r3, #48 ; 0x30 - 800eb56: f88d 305c strb.w r3, [sp, #92] ; 0x5c - 800eb5a: 9b04 ldr r3, [sp, #16] - 800eb5c: f88d 305d strb.w r3, [sp, #93] ; 0x5d - 800eb60: f045 0502 orr.w r5, r5, #2 - 800eb64: f425 6580 bic.w r5, r5, #1024 ; 0x400 - 800eb68: 2302 movs r3, #2 - 800eb6a: e31b b.n 800f1a4 <_svfprintf_r+0x8e4> - 800eb6c: 9802 ldr r0, [sp, #8] - 800eb6e: f002 f98b bl 8010e88 <_localeconv_r> - 800eb72: 6843 ldr r3, [r0, #4] - 800eb74: 9312 str r3, [sp, #72] ; 0x48 - 800eb76: 4618 mov r0, r3 - 800eb78: f7f8 f92c bl 8006dd4 - 800eb7c: 900e str r0, [sp, #56] ; 0x38 - 800eb7e: 9802 ldr r0, [sp, #8] - 800eb80: f002 f982 bl 8010e88 <_localeconv_r> - 800eb84: 6883 ldr r3, [r0, #8] - 800eb86: 9307 str r3, [sp, #28] - 800eb88: 9b0e ldr r3, [sp, #56] ; 0x38 - 800eb8a: 2b00 cmp r3, #0 - 800eb8c: f43f aefd beq.w 800e98a <_svfprintf_r+0xca> - 800eb90: 9b07 ldr r3, [sp, #28] - 800eb92: 2b00 cmp r3, #0 - 800eb94: f43f aef9 beq.w 800e98a <_svfprintf_r+0xca> - 800eb98: 781b ldrb r3, [r3, #0] - 800eb9a: 2b00 cmp r3, #0 - 800eb9c: f43f aef5 beq.w 800e98a <_svfprintf_r+0xca> - 800eba0: f445 6580 orr.w r5, r5, #1024 ; 0x400 - 800eba4: e6f1 b.n 800e98a <_svfprintf_r+0xca> - 800eba6: f89d 305b ldrb.w r3, [sp, #91] ; 0x5b - 800ebaa: 2b00 cmp r3, #0 - 800ebac: f47f aeed bne.w 800e98a <_svfprintf_r+0xca> - 800ebb0: 2320 movs r3, #32 - 800ebb2: f88d 305b strb.w r3, [sp, #91] ; 0x5b - 800ebb6: e6e8 b.n 800e98a <_svfprintf_r+0xca> - 800ebb8: f045 0501 orr.w r5, r5, #1 - 800ebbc: e6e5 b.n 800e98a <_svfprintf_r+0xca> - 800ebbe: 6832 ldr r2, [r6, #0] - 800ebc0: 920b str r2, [sp, #44] ; 0x2c - 800ebc2: 2a00 cmp r2, #0 - 800ebc4: f106 0304 add.w r3, r6, #4 - 800ebc8: dab0 bge.n 800eb2c <_svfprintf_r+0x26c> - 800ebca: 4252 negs r2, r2 - 800ebcc: 920b str r2, [sp, #44] ; 0x2c - 800ebce: 461e mov r6, r3 - 800ebd0: f045 0504 orr.w r5, r5, #4 - 800ebd4: e6d9 b.n 800e98a <_svfprintf_r+0xca> - 800ebd6: 232b movs r3, #43 ; 0x2b - 800ebd8: e7eb b.n 800ebb2 <_svfprintf_r+0x2f2> - 800ebda: 9a08 ldr r2, [sp, #32] - 800ebdc: 9b08 ldr r3, [sp, #32] - 800ebde: 7812 ldrb r2, [r2, #0] - 800ebe0: 9204 str r2, [sp, #16] - 800ebe2: 2a2a cmp r2, #42 ; 0x2a - 800ebe4: f103 0301 add.w r3, r3, #1 - 800ebe8: d110 bne.n 800ec0c <_svfprintf_r+0x34c> - 800ebea: 6832 ldr r2, [r6, #0] - 800ebec: 9308 str r3, [sp, #32] - 800ebee: ea42 78e2 orr.w r8, r2, r2, asr #31 - 800ebf2: 3604 adds r6, #4 - 800ebf4: e6c9 b.n 800e98a <_svfprintf_r+0xca> - 800ebf6: 210a movs r1, #10 - 800ebf8: fb01 2808 mla r8, r1, r8, r2 - 800ebfc: f813 2b01 ldrb.w r2, [r3], #1 - 800ec00: 9204 str r2, [sp, #16] - 800ec02: 9a04 ldr r2, [sp, #16] - 800ec04: 3a30 subs r2, #48 ; 0x30 - 800ec06: 2a09 cmp r2, #9 - 800ec08: d9f5 bls.n 800ebf6 <_svfprintf_r+0x336> - 800ec0a: e6c3 b.n 800e994 <_svfprintf_r+0xd4> - 800ec0c: f04f 0800 mov.w r8, #0 - 800ec10: e7f7 b.n 800ec02 <_svfprintf_r+0x342> - 800ec12: f045 0580 orr.w r5, r5, #128 ; 0x80 - 800ec16: e6b8 b.n 800e98a <_svfprintf_r+0xca> - 800ec18: 2200 movs r2, #0 - 800ec1a: 9b08 ldr r3, [sp, #32] - 800ec1c: 920b str r2, [sp, #44] ; 0x2c - 800ec1e: 9a04 ldr r2, [sp, #16] - 800ec20: 990b ldr r1, [sp, #44] ; 0x2c - 800ec22: 3a30 subs r2, #48 ; 0x30 - 800ec24: 200a movs r0, #10 - 800ec26: fb00 2201 mla r2, r0, r1, r2 - 800ec2a: 920b str r2, [sp, #44] ; 0x2c - 800ec2c: f813 2b01 ldrb.w r2, [r3], #1 - 800ec30: 9204 str r2, [sp, #16] - 800ec32: 3a30 subs r2, #48 ; 0x30 - 800ec34: 2a09 cmp r2, #9 - 800ec36: d9f2 bls.n 800ec1e <_svfprintf_r+0x35e> - 800ec38: e6ac b.n 800e994 <_svfprintf_r+0xd4> - 800ec3a: f045 0508 orr.w r5, r5, #8 - 800ec3e: e6a4 b.n 800e98a <_svfprintf_r+0xca> - ... - 800ec48: 08012e51 .word 0x08012e51 - 800ec4c: 9b08 ldr r3, [sp, #32] - 800ec4e: 781b ldrb r3, [r3, #0] - 800ec50: 2b68 cmp r3, #104 ; 0x68 - 800ec52: bf01 itttt eq - 800ec54: 9b08 ldreq r3, [sp, #32] - 800ec56: 3301 addeq r3, #1 - 800ec58: 9308 streq r3, [sp, #32] - 800ec5a: f445 7500 orreq.w r5, r5, #512 ; 0x200 - 800ec5e: bf18 it ne - 800ec60: f045 0540 orrne.w r5, r5, #64 ; 0x40 - 800ec64: e691 b.n 800e98a <_svfprintf_r+0xca> - 800ec66: 9b08 ldr r3, [sp, #32] - 800ec68: 781b ldrb r3, [r3, #0] - 800ec6a: 2b6c cmp r3, #108 ; 0x6c - 800ec6c: d105 bne.n 800ec7a <_svfprintf_r+0x3ba> - 800ec6e: 9b08 ldr r3, [sp, #32] - 800ec70: 3301 adds r3, #1 - 800ec72: 9308 str r3, [sp, #32] - 800ec74: f045 0520 orr.w r5, r5, #32 - 800ec78: e687 b.n 800e98a <_svfprintf_r+0xca> - 800ec7a: f045 0510 orr.w r5, r5, #16 - 800ec7e: e684 b.n 800e98a <_svfprintf_r+0xca> - 800ec80: 1d33 adds r3, r6, #4 - 800ec82: 9306 str r3, [sp, #24] - 800ec84: 6833 ldr r3, [r6, #0] - 800ec86: f88d 30c4 strb.w r3, [sp, #196] ; 0xc4 - 800ec8a: 2300 movs r3, #0 - 800ec8c: f88d 305b strb.w r3, [sp, #91] ; 0x5b - 800ec90: 469a mov sl, r3 - 800ec92: f04f 0801 mov.w r8, #1 - 800ec96: 930c str r3, [sp, #48] ; 0x30 - 800ec98: 461f mov r7, r3 - 800ec9a: 9305 str r3, [sp, #20] - 800ec9c: 461e mov r6, r3 - 800ec9e: f10d 09c4 add.w r9, sp, #196 ; 0xc4 - 800eca2: e2ce b.n 800f242 <_svfprintf_r+0x982> - 800eca4: f045 0510 orr.w r5, r5, #16 - 800eca8: 06a9 lsls r1, r5, #26 - 800ecaa: d521 bpl.n 800ecf0 <_svfprintf_r+0x430> - 800ecac: 3607 adds r6, #7 - 800ecae: f026 0607 bic.w r6, r6, #7 - 800ecb2: f106 0308 add.w r3, r6, #8 - 800ecb6: e9d6 6700 ldrd r6, r7, [r6] - 800ecba: 9306 str r3, [sp, #24] - 800ecbc: 2e00 cmp r6, #0 - 800ecbe: f177 0300 sbcs.w r3, r7, #0 - 800ecc2: da06 bge.n 800ecd2 <_svfprintf_r+0x412> - 800ecc4: 4276 negs r6, r6 - 800ecc6: f04f 032d mov.w r3, #45 ; 0x2d - 800ecca: eb67 0747 sbc.w r7, r7, r7, lsl #1 - 800ecce: f88d 305b strb.w r3, [sp, #91] ; 0x5b - 800ecd2: f1b8 3fff cmp.w r8, #4294967295 ; 0xffffffff - 800ecd6: f040 83b6 bne.w 800f446 <_svfprintf_r+0xb86> - 800ecda: 2f00 cmp r7, #0 - 800ecdc: bf08 it eq - 800ecde: 2e0a cmpeq r6, #10 - 800ece0: f080 83e8 bcs.w 800f4b4 <_svfprintf_r+0xbf4> - 800ece4: f50d 7994 add.w r9, sp, #296 ; 0x128 - 800ece8: 3630 adds r6, #48 ; 0x30 - 800ecea: f809 6d01 strb.w r6, [r9, #-1]! - 800ecee: e3cc b.n 800f48a <_svfprintf_r+0xbca> - 800ecf0: 1d33 adds r3, r6, #4 - 800ecf2: 06ea lsls r2, r5, #27 - 800ecf4: 9306 str r3, [sp, #24] - 800ecf6: d502 bpl.n 800ecfe <_svfprintf_r+0x43e> - 800ecf8: 6836 ldr r6, [r6, #0] - 800ecfa: 17f7 asrs r7, r6, #31 - 800ecfc: e7de b.n 800ecbc <_svfprintf_r+0x3fc> - 800ecfe: f015 0f40 tst.w r5, #64 ; 0x40 - 800ed02: 6836 ldr r6, [r6, #0] - 800ed04: d001 beq.n 800ed0a <_svfprintf_r+0x44a> - 800ed06: b236 sxth r6, r6 - 800ed08: e7f7 b.n 800ecfa <_svfprintf_r+0x43a> - 800ed0a: 05ab lsls r3, r5, #22 - 800ed0c: bf48 it mi - 800ed0e: b276 sxtbmi r6, r6 - 800ed10: e7f3 b.n 800ecfa <_svfprintf_r+0x43a> - 800ed12: 3607 adds r6, #7 - 800ed14: f026 0607 bic.w r6, r6, #7 - 800ed18: ed96 8b00 vldr d8, [r6] - 800ed1c: ed9f 7bb0 vldr d7, [pc, #704] ; 800efe0 <_svfprintf_r+0x720> - 800ed20: eeb0 6bc8 vabs.f64 d6, d8 - 800ed24: f106 0308 add.w r3, r6, #8 - 800ed28: eeb4 6b47 vcmp.f64 d6, d7 - 800ed2c: eef1 fa10 vmrs APSR_nzcv, fpscr - 800ed30: 9306 str r3, [sp, #24] - 800ed32: dd17 ble.n 800ed64 <_svfprintf_r+0x4a4> - 800ed34: eeb5 8bc0 vcmpe.f64 d8, #0.0 - 800ed38: eef1 fa10 vmrs APSR_nzcv, fpscr - 800ed3c: d502 bpl.n 800ed44 <_svfprintf_r+0x484> - 800ed3e: 232d movs r3, #45 ; 0x2d - 800ed40: f88d 305b strb.w r3, [sp, #91] ; 0x5b - 800ed44: 4aa8 ldr r2, [pc, #672] ; (800efe8 <_svfprintf_r+0x728>) - 800ed46: 4ba9 ldr r3, [pc, #676] ; (800efec <_svfprintf_r+0x72c>) - 800ed48: 9904 ldr r1, [sp, #16] - 800ed4a: f025 0580 bic.w r5, r5, #128 ; 0x80 - 800ed4e: 2947 cmp r1, #71 ; 0x47 - 800ed50: bfcc ite gt - 800ed52: 4691 movgt r9, r2 - 800ed54: 4699 movle r9, r3 - 800ed56: f04f 0a00 mov.w sl, #0 - 800ed5a: f04f 0803 mov.w r8, #3 - 800ed5e: f8cd a030 str.w sl, [sp, #48] ; 0x30 - 800ed62: e399 b.n 800f498 <_svfprintf_r+0xbd8> - 800ed64: eeb4 8b48 vcmp.f64 d8, d8 - 800ed68: eef1 fa10 vmrs APSR_nzcv, fpscr - 800ed6c: d709 bvc.n 800ed82 <_svfprintf_r+0x4c2> - 800ed6e: ee18 3a90 vmov r3, s17 - 800ed72: 2b00 cmp r3, #0 - 800ed74: bfbc itt lt - 800ed76: 232d movlt r3, #45 ; 0x2d - 800ed78: f88d 305b strblt.w r3, [sp, #91] ; 0x5b - 800ed7c: 4a9c ldr r2, [pc, #624] ; (800eff0 <_svfprintf_r+0x730>) - 800ed7e: 4b9d ldr r3, [pc, #628] ; (800eff4 <_svfprintf_r+0x734>) - 800ed80: e7e2 b.n 800ed48 <_svfprintf_r+0x488> - 800ed82: 9b04 ldr r3, [sp, #16] - 800ed84: f023 0720 bic.w r7, r3, #32 - 800ed88: 2f41 cmp r7, #65 ; 0x41 - 800ed8a: d126 bne.n 800edda <_svfprintf_r+0x51a> - 800ed8c: 2330 movs r3, #48 ; 0x30 - 800ed8e: f88d 305c strb.w r3, [sp, #92] ; 0x5c - 800ed92: 9b04 ldr r3, [sp, #16] - 800ed94: 2b61 cmp r3, #97 ; 0x61 - 800ed96: bf14 ite ne - 800ed98: 2358 movne r3, #88 ; 0x58 - 800ed9a: 2378 moveq r3, #120 ; 0x78 - 800ed9c: f1b8 0f63 cmp.w r8, #99 ; 0x63 - 800eda0: f88d 305d strb.w r3, [sp, #93] ; 0x5d - 800eda4: f045 0502 orr.w r5, r5, #2 - 800eda8: dd24 ble.n 800edf4 <_svfprintf_r+0x534> - 800edaa: f108 0101 add.w r1, r8, #1 - 800edae: 9802 ldr r0, [sp, #8] - 800edb0: f7ff f89c bl 800deec <_malloc_r> - 800edb4: 4681 mov r9, r0 - 800edb6: 2800 cmp r0, #0 - 800edb8: f040 80ec bne.w 800ef94 <_svfprintf_r+0x6d4> - 800edbc: f8bb 300c ldrh.w r3, [fp, #12] - 800edc0: f043 0340 orr.w r3, r3, #64 ; 0x40 - 800edc4: f8ab 300c strh.w r3, [fp, #12] - 800edc8: f8bb 300c ldrh.w r3, [fp, #12] - 800edcc: f013 0f40 tst.w r3, #64 ; 0x40 - 800edd0: 9b0a ldr r3, [sp, #40] ; 0x28 - 800edd2: bf18 it ne - 800edd4: f04f 33ff movne.w r3, #4294967295 ; 0xffffffff - 800edd8: e598 b.n 800e90c <_svfprintf_r+0x4c> - 800edda: f1b8 3fff cmp.w r8, #4294967295 ; 0xffffffff - 800edde: f000 80db beq.w 800ef98 <_svfprintf_r+0x6d8> - 800ede2: 2f47 cmp r7, #71 ; 0x47 - 800ede4: d103 bne.n 800edee <_svfprintf_r+0x52e> - 800ede6: f1b8 0f00 cmp.w r8, #0 - 800edea: f000 80da beq.w 800efa2 <_svfprintf_r+0x6e2> - 800edee: f04f 0a00 mov.w sl, #0 - 800edf2: e003 b.n 800edfc <_svfprintf_r+0x53c> - 800edf4: f04f 0a00 mov.w sl, #0 - 800edf8: f10d 09c4 add.w r9, sp, #196 ; 0xc4 - 800edfc: f445 7380 orr.w r3, r5, #256 ; 0x100 - 800ee00: 930c str r3, [sp, #48] ; 0x30 - 800ee02: ee18 3a90 vmov r3, s17 - 800ee06: 2b00 cmp r3, #0 - 800ee08: f280 80cf bge.w 800efaa <_svfprintf_r+0x6ea> - 800ee0c: eeb1 9b48 vneg.f64 d9, d8 - 800ee10: 232d movs r3, #45 ; 0x2d - 800ee12: 2f41 cmp r7, #65 ; 0x41 - 800ee14: 930d str r3, [sp, #52] ; 0x34 - 800ee16: f040 80d9 bne.w 800efcc <_svfprintf_r+0x70c> - 800ee1a: eeb0 0b49 vmov.f64 d0, d9 - 800ee1e: a818 add r0, sp, #96 ; 0x60 - 800ee20: f002 fb5e bl 80114e0 - 800ee24: eeb4 7b00 vmov.f64 d7, #64 ; 0x3e000000 0.125 - 800ee28: ee20 0b07 vmul.f64 d0, d0, d7 - 800ee2c: eeb5 0b40 vcmp.f64 d0, #0.0 - 800ee30: eef1 fa10 vmrs APSR_nzcv, fpscr - 800ee34: bf04 itt eq - 800ee36: 2301 moveq r3, #1 - 800ee38: 9318 streq r3, [sp, #96] ; 0x60 - 800ee3a: 9a04 ldr r2, [sp, #16] - 800ee3c: 4b6e ldr r3, [pc, #440] ; (800eff8 <_svfprintf_r+0x738>) - 800ee3e: 496f ldr r1, [pc, #444] ; (800effc <_svfprintf_r+0x73c>) - 800ee40: eeb3 7b00 vmov.f64 d7, #48 ; 0x41800000 16.0 - 800ee44: 2a61 cmp r2, #97 ; 0x61 - 800ee46: bf08 it eq - 800ee48: 4619 moveq r1, r3 - 800ee4a: f108 32ff add.w r2, r8, #4294967295 ; 0xffffffff - 800ee4e: 464b mov r3, r9 - 800ee50: ee20 0b07 vmul.f64 d0, d0, d7 - 800ee54: eefd 6bc0 vcvt.s32.f64 s13, d0 - 800ee58: f1b2 3fff cmp.w r2, #4294967295 ; 0xffffffff - 800ee5c: ee16 0a90 vmov r0, s13 - 800ee60: 5c0e ldrb r6, [r1, r0] - 800ee62: f803 6b01 strb.w r6, [r3], #1 - 800ee66: eeb8 6be6 vcvt.f64.s32 d6, s13 - 800ee6a: 4616 mov r6, r2 - 800ee6c: ee30 0b46 vsub.f64 d0, d0, d6 - 800ee70: d006 beq.n 800ee80 <_svfprintf_r+0x5c0> - 800ee72: eeb5 0b40 vcmp.f64 d0, #0.0 - 800ee76: eef1 fa10 vmrs APSR_nzcv, fpscr - 800ee7a: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff - 800ee7e: d1e7 bne.n 800ee50 <_svfprintf_r+0x590> - 800ee80: eeb6 7b00 vmov.f64 d7, #96 ; 0x3f000000 0.5 - 800ee84: eeb4 0bc7 vcmpe.f64 d0, d7 - 800ee88: eef1 fa10 vmrs APSR_nzcv, fpscr - 800ee8c: dc08 bgt.n 800eea0 <_svfprintf_r+0x5e0> - 800ee8e: eeb4 0b47 vcmp.f64 d0, d7 - 800ee92: eef1 fa10 vmrs APSR_nzcv, fpscr - 800ee96: f040 8095 bne.w 800efc4 <_svfprintf_r+0x704> - 800ee9a: 07c0 lsls r0, r0, #31 - 800ee9c: f140 8092 bpl.w 800efc4 <_svfprintf_r+0x704> - 800eea0: 7bce ldrb r6, [r1, #15] - 800eea2: 931c str r3, [sp, #112] ; 0x70 - 800eea4: f04f 0c30 mov.w ip, #48 ; 0x30 - 800eea8: 981c ldr r0, [sp, #112] ; 0x70 - 800eeaa: 1e42 subs r2, r0, #1 - 800eeac: 921c str r2, [sp, #112] ; 0x70 - 800eeae: f810 2c01 ldrb.w r2, [r0, #-1] - 800eeb2: 42b2 cmp r2, r6 - 800eeb4: d07d beq.n 800efb2 <_svfprintf_r+0x6f2> - 800eeb6: 2a39 cmp r2, #57 ; 0x39 - 800eeb8: bf16 itet ne - 800eeba: 3201 addne r2, #1 - 800eebc: 7a8a ldrbeq r2, [r1, #10] - 800eebe: b2d2 uxtbne r2, r2 - 800eec0: f800 2c01 strb.w r2, [r0, #-1] - 800eec4: 461a mov r2, r3 - 800eec6: eba2 0309 sub.w r3, r2, r9 - 800eeca: 2f47 cmp r7, #71 ; 0x47 - 800eecc: 9303 str r3, [sp, #12] - 800eece: 9e18 ldr r6, [sp, #96] ; 0x60 - 800eed0: f040 80ce bne.w 800f070 <_svfprintf_r+0x7b0> - 800eed4: 1cf2 adds r2, r6, #3 - 800eed6: db02 blt.n 800eede <_svfprintf_r+0x61e> - 800eed8: 45b0 cmp r8, r6 - 800eeda: f280 80f5 bge.w 800f0c8 <_svfprintf_r+0x808> - 800eede: 9b04 ldr r3, [sp, #16] - 800eee0: 3b02 subs r3, #2 - 800eee2: 9304 str r3, [sp, #16] - 800eee4: 9904 ldr r1, [sp, #16] - 800eee6: f89d 2010 ldrb.w r2, [sp, #16] - 800eeea: f021 0120 bic.w r1, r1, #32 - 800eeee: 2941 cmp r1, #65 ; 0x41 - 800eef0: bf08 it eq - 800eef2: 320f addeq r2, #15 - 800eef4: f106 33ff add.w r3, r6, #4294967295 ; 0xffffffff - 800eef8: bf06 itte eq - 800eefa: b2d2 uxtbeq r2, r2 - 800eefc: 2101 moveq r1, #1 - 800eefe: 2100 movne r1, #0 - 800ef00: 2b00 cmp r3, #0 - 800ef02: 9318 str r3, [sp, #96] ; 0x60 - 800ef04: bfb8 it lt - 800ef06: f1c6 0301 rsblt r3, r6, #1 - 800ef0a: f88d 2068 strb.w r2, [sp, #104] ; 0x68 - 800ef0e: bfb4 ite lt - 800ef10: 222d movlt r2, #45 ; 0x2d - 800ef12: 222b movge r2, #43 ; 0x2b - 800ef14: 2b09 cmp r3, #9 - 800ef16: f88d 2069 strb.w r2, [sp, #105] ; 0x69 - 800ef1a: f340 80c0 ble.w 800f09e <_svfprintf_r+0x7de> - 800ef1e: f10d 0277 add.w r2, sp, #119 ; 0x77 - 800ef22: 260a movs r6, #10 - 800ef24: fb93 f0f6 sdiv r0, r3, r6 - 800ef28: fb06 3310 mls r3, r6, r0, r3 - 800ef2c: 3330 adds r3, #48 ; 0x30 - 800ef2e: 2809 cmp r0, #9 - 800ef30: f802 3c01 strb.w r3, [r2, #-1] - 800ef34: f102 31ff add.w r1, r2, #4294967295 ; 0xffffffff - 800ef38: 4603 mov r3, r0 - 800ef3a: f300 80a9 bgt.w 800f090 <_svfprintf_r+0x7d0> - 800ef3e: 3330 adds r3, #48 ; 0x30 - 800ef40: f801 3c01 strb.w r3, [r1, #-1] - 800ef44: 3a02 subs r2, #2 - 800ef46: f10d 036a add.w r3, sp, #106 ; 0x6a - 800ef4a: f10d 0077 add.w r0, sp, #119 ; 0x77 - 800ef4e: 4282 cmp r2, r0 - 800ef50: 4619 mov r1, r3 - 800ef52: f0c0 809f bcc.w 800f094 <_svfprintf_r+0x7d4> - 800ef56: 9a03 ldr r2, [sp, #12] - 800ef58: ab1a add r3, sp, #104 ; 0x68 - 800ef5a: 1acb subs r3, r1, r3 - 800ef5c: 2a01 cmp r2, #1 - 800ef5e: 9310 str r3, [sp, #64] ; 0x40 - 800ef60: eb03 0802 add.w r8, r3, r2 - 800ef64: dc01 bgt.n 800ef6a <_svfprintf_r+0x6aa> - 800ef66: 07eb lsls r3, r5, #31 - 800ef68: d501 bpl.n 800ef6e <_svfprintf_r+0x6ae> - 800ef6a: 9b09 ldr r3, [sp, #36] ; 0x24 - 800ef6c: 4498 add r8, r3 - 800ef6e: f425 6580 bic.w r5, r5, #1024 ; 0x400 - 800ef72: 2700 movs r7, #0 - 800ef74: f445 7380 orr.w r3, r5, #256 ; 0x100 - 800ef78: 930c str r3, [sp, #48] ; 0x30 - 800ef7a: 9705 str r7, [sp, #20] - 800ef7c: 463e mov r6, r7 - 800ef7e: 9b0d ldr r3, [sp, #52] ; 0x34 - 800ef80: 2b00 cmp r3, #0 - 800ef82: f000 82fe beq.w 800f582 <_svfprintf_r+0xcc2> - 800ef86: 232d movs r3, #45 ; 0x2d - 800ef88: 9d0c ldr r5, [sp, #48] ; 0x30 - 800ef8a: f88d 305b strb.w r3, [sp, #91] ; 0x5b - 800ef8e: 2300 movs r3, #0 - 800ef90: 930c str r3, [sp, #48] ; 0x30 - 800ef92: e156 b.n 800f242 <_svfprintf_r+0x982> - 800ef94: 4682 mov sl, r0 - 800ef96: e731 b.n 800edfc <_svfprintf_r+0x53c> - 800ef98: f04f 0a00 mov.w sl, #0 - 800ef9c: f04f 0806 mov.w r8, #6 - 800efa0: e72c b.n 800edfc <_svfprintf_r+0x53c> - 800efa2: 46c2 mov sl, r8 - 800efa4: f04f 0801 mov.w r8, #1 - 800efa8: e728 b.n 800edfc <_svfprintf_r+0x53c> - 800efaa: eeb0 9b48 vmov.f64 d9, d8 - 800efae: 2300 movs r3, #0 - 800efb0: e72f b.n 800ee12 <_svfprintf_r+0x552> - 800efb2: f800 cc01 strb.w ip, [r0, #-1] - 800efb6: e777 b.n 800eea8 <_svfprintf_r+0x5e8> - 800efb8: f802 0b01 strb.w r0, [r2], #1 - 800efbc: 1a99 subs r1, r3, r2 - 800efbe: 2900 cmp r1, #0 - 800efc0: dafa bge.n 800efb8 <_svfprintf_r+0x6f8> - 800efc2: e780 b.n 800eec6 <_svfprintf_r+0x606> - 800efc4: 461a mov r2, r3 - 800efc6: 2030 movs r0, #48 ; 0x30 - 800efc8: 4433 add r3, r6 - 800efca: e7f7 b.n 800efbc <_svfprintf_r+0x6fc> - 800efcc: 2f46 cmp r7, #70 ; 0x46 - 800efce: d017 beq.n 800f000 <_svfprintf_r+0x740> - 800efd0: 2f45 cmp r7, #69 ; 0x45 - 800efd2: d146 bne.n 800f062 <_svfprintf_r+0x7a2> - 800efd4: f108 0601 add.w r6, r8, #1 - 800efd8: 2102 movs r1, #2 - 800efda: e013 b.n 800f004 <_svfprintf_r+0x744> - 800efdc: f3af 8000 nop.w - 800efe0: ffffffff .word 0xffffffff - 800efe4: 7fefffff .word 0x7fefffff - 800efe8: 08012e34 .word 0x08012e34 - 800efec: 08012e30 .word 0x08012e30 - 800eff0: 08012e3c .word 0x08012e3c - 800eff4: 08012e38 .word 0x08012e38 - 800eff8: 08012e40 .word 0x08012e40 - 800effc: 08012e51 .word 0x08012e51 - 800f000: 4646 mov r6, r8 - 800f002: 2103 movs r1, #3 - 800f004: ab1c add r3, sp, #112 ; 0x70 - 800f006: 9301 str r3, [sp, #4] - 800f008: ab19 add r3, sp, #100 ; 0x64 - 800f00a: 9300 str r3, [sp, #0] - 800f00c: 4632 mov r2, r6 - 800f00e: ab18 add r3, sp, #96 ; 0x60 - 800f010: eeb0 0b49 vmov.f64 d0, d9 - 800f014: 9802 ldr r0, [sp, #8] - 800f016: f000 ff9b bl 800ff50 <_dtoa_r> - 800f01a: 2f47 cmp r7, #71 ; 0x47 - 800f01c: 4681 mov r9, r0 - 800f01e: d101 bne.n 800f024 <_svfprintf_r+0x764> - 800f020: 07e9 lsls r1, r5, #31 - 800f022: d521 bpl.n 800f068 <_svfprintf_r+0x7a8> - 800f024: 2f46 cmp r7, #70 ; 0x46 - 800f026: eb09 0306 add.w r3, r9, r6 - 800f02a: d10d bne.n 800f048 <_svfprintf_r+0x788> - 800f02c: f899 2000 ldrb.w r2, [r9] - 800f030: 2a30 cmp r2, #48 ; 0x30 - 800f032: d107 bne.n 800f044 <_svfprintf_r+0x784> - 800f034: eeb5 9b40 vcmp.f64 d9, #0.0 - 800f038: eef1 fa10 vmrs APSR_nzcv, fpscr - 800f03c: bf1c itt ne - 800f03e: f1c6 0601 rsbne r6, r6, #1 - 800f042: 9618 strne r6, [sp, #96] ; 0x60 - 800f044: 9a18 ldr r2, [sp, #96] ; 0x60 - 800f046: 4413 add r3, r2 - 800f048: eeb5 9b40 vcmp.f64 d9, #0.0 - 800f04c: eef1 fa10 vmrs APSR_nzcv, fpscr - 800f050: d009 beq.n 800f066 <_svfprintf_r+0x7a6> - 800f052: 2130 movs r1, #48 ; 0x30 - 800f054: 9a1c ldr r2, [sp, #112] ; 0x70 - 800f056: 4293 cmp r3, r2 - 800f058: d906 bls.n 800f068 <_svfprintf_r+0x7a8> - 800f05a: 1c50 adds r0, r2, #1 - 800f05c: 901c str r0, [sp, #112] ; 0x70 - 800f05e: 7011 strb r1, [r2, #0] - 800f060: e7f8 b.n 800f054 <_svfprintf_r+0x794> - 800f062: 4646 mov r6, r8 - 800f064: e7b8 b.n 800efd8 <_svfprintf_r+0x718> - 800f066: 931c str r3, [sp, #112] ; 0x70 - 800f068: 9b1c ldr r3, [sp, #112] ; 0x70 - 800f06a: eba3 0309 sub.w r3, r3, r9 - 800f06e: e72c b.n 800eeca <_svfprintf_r+0x60a> - 800f070: 2f46 cmp r7, #70 ; 0x46 - 800f072: f47f af37 bne.w 800eee4 <_svfprintf_r+0x624> - 800f076: 2e00 cmp r6, #0 - 800f078: dd1e ble.n 800f0b8 <_svfprintf_r+0x7f8> - 800f07a: f1b8 0f00 cmp.w r8, #0 - 800f07e: d101 bne.n 800f084 <_svfprintf_r+0x7c4> - 800f080: 07ef lsls r7, r5, #31 - 800f082: d535 bpl.n 800f0f0 <_svfprintf_r+0x830> - 800f084: 9b09 ldr r3, [sp, #36] ; 0x24 - 800f086: 18f3 adds r3, r6, r3 - 800f088: 4498 add r8, r3 - 800f08a: 2366 movs r3, #102 ; 0x66 - 800f08c: 9304 str r3, [sp, #16] - 800f08e: e035 b.n 800f0fc <_svfprintf_r+0x83c> - 800f090: 460a mov r2, r1 - 800f092: e746 b.n 800ef22 <_svfprintf_r+0x662> - 800f094: f812 1b01 ldrb.w r1, [r2], #1 - 800f098: f803 1b01 strb.w r1, [r3], #1 - 800f09c: e757 b.n 800ef4e <_svfprintf_r+0x68e> - 800f09e: b941 cbnz r1, 800f0b2 <_svfprintf_r+0x7f2> - 800f0a0: 2230 movs r2, #48 ; 0x30 - 800f0a2: f88d 206a strb.w r2, [sp, #106] ; 0x6a - 800f0a6: f10d 026b add.w r2, sp, #107 ; 0x6b - 800f0aa: 3330 adds r3, #48 ; 0x30 - 800f0ac: 1c51 adds r1, r2, #1 - 800f0ae: 7013 strb r3, [r2, #0] - 800f0b0: e751 b.n 800ef56 <_svfprintf_r+0x696> - 800f0b2: f10d 026a add.w r2, sp, #106 ; 0x6a - 800f0b6: e7f8 b.n 800f0aa <_svfprintf_r+0x7ea> - 800f0b8: f1b8 0f00 cmp.w r8, #0 - 800f0bc: d101 bne.n 800f0c2 <_svfprintf_r+0x802> - 800f0be: 07e8 lsls r0, r5, #31 - 800f0c0: d518 bpl.n 800f0f4 <_svfprintf_r+0x834> - 800f0c2: 9b09 ldr r3, [sp, #36] ; 0x24 - 800f0c4: 3301 adds r3, #1 - 800f0c6: e7df b.n 800f088 <_svfprintf_r+0x7c8> - 800f0c8: 9b03 ldr r3, [sp, #12] - 800f0ca: 42b3 cmp r3, r6 - 800f0cc: dc06 bgt.n 800f0dc <_svfprintf_r+0x81c> - 800f0ce: 07e9 lsls r1, r5, #31 - 800f0d0: d527 bpl.n 800f122 <_svfprintf_r+0x862> - 800f0d2: 9b09 ldr r3, [sp, #36] ; 0x24 - 800f0d4: eb06 0803 add.w r8, r6, r3 - 800f0d8: 2367 movs r3, #103 ; 0x67 - 800f0da: e7d7 b.n 800f08c <_svfprintf_r+0x7cc> - 800f0dc: 9b03 ldr r3, [sp, #12] - 800f0de: 9a09 ldr r2, [sp, #36] ; 0x24 - 800f0e0: 2e00 cmp r6, #0 - 800f0e2: eb03 0802 add.w r8, r3, r2 - 800f0e6: dcf7 bgt.n 800f0d8 <_svfprintf_r+0x818> - 800f0e8: f1c6 0301 rsb r3, r6, #1 - 800f0ec: 4498 add r8, r3 - 800f0ee: e7f3 b.n 800f0d8 <_svfprintf_r+0x818> - 800f0f0: 46b0 mov r8, r6 - 800f0f2: e7ca b.n 800f08a <_svfprintf_r+0x7ca> - 800f0f4: 2366 movs r3, #102 ; 0x66 - 800f0f6: 9304 str r3, [sp, #16] - 800f0f8: f04f 0801 mov.w r8, #1 - 800f0fc: f415 6380 ands.w r3, r5, #1024 ; 0x400 - 800f100: 9305 str r3, [sp, #20] - 800f102: d01f beq.n 800f144 <_svfprintf_r+0x884> - 800f104: 2700 movs r7, #0 - 800f106: 2e00 cmp r6, #0 - 800f108: 9705 str r7, [sp, #20] - 800f10a: f77f af38 ble.w 800ef7e <_svfprintf_r+0x6be> - 800f10e: 9b07 ldr r3, [sp, #28] - 800f110: 781b ldrb r3, [r3, #0] - 800f112: 2bff cmp r3, #255 ; 0xff - 800f114: d107 bne.n 800f126 <_svfprintf_r+0x866> - 800f116: 9b05 ldr r3, [sp, #20] - 800f118: 9a0e ldr r2, [sp, #56] ; 0x38 - 800f11a: 443b add r3, r7 - 800f11c: fb02 8803 mla r8, r2, r3, r8 - 800f120: e72d b.n 800ef7e <_svfprintf_r+0x6be> - 800f122: 46b0 mov r8, r6 - 800f124: e7d8 b.n 800f0d8 <_svfprintf_r+0x818> - 800f126: 42b3 cmp r3, r6 - 800f128: daf5 bge.n 800f116 <_svfprintf_r+0x856> - 800f12a: 1af6 subs r6, r6, r3 - 800f12c: 9b07 ldr r3, [sp, #28] - 800f12e: 785b ldrb r3, [r3, #1] - 800f130: b133 cbz r3, 800f140 <_svfprintf_r+0x880> - 800f132: 9b05 ldr r3, [sp, #20] - 800f134: 3301 adds r3, #1 - 800f136: 9305 str r3, [sp, #20] - 800f138: 9b07 ldr r3, [sp, #28] - 800f13a: 3301 adds r3, #1 - 800f13c: 9307 str r3, [sp, #28] - 800f13e: e7e6 b.n 800f10e <_svfprintf_r+0x84e> - 800f140: 3701 adds r7, #1 - 800f142: e7e4 b.n 800f10e <_svfprintf_r+0x84e> - 800f144: 9f05 ldr r7, [sp, #20] - 800f146: e71a b.n 800ef7e <_svfprintf_r+0x6be> - 800f148: 4632 mov r2, r6 - 800f14a: f852 3b04 ldr.w r3, [r2], #4 - 800f14e: 9206 str r2, [sp, #24] - 800f150: 06aa lsls r2, r5, #26 - 800f152: d509 bpl.n 800f168 <_svfprintf_r+0x8a8> - 800f154: 9a0a ldr r2, [sp, #40] ; 0x28 - 800f156: 4610 mov r0, r2 - 800f158: 17d1 asrs r1, r2, #31 - 800f15a: e9c3 0100 strd r0, r1, [r3] - 800f15e: 9e06 ldr r6, [sp, #24] - 800f160: f8dd 9020 ldr.w r9, [sp, #32] - 800f164: f7ff bbea b.w 800e93c <_svfprintf_r+0x7c> - 800f168: 06ef lsls r7, r5, #27 - 800f16a: d502 bpl.n 800f172 <_svfprintf_r+0x8b2> - 800f16c: 9a0a ldr r2, [sp, #40] ; 0x28 - 800f16e: 601a str r2, [r3, #0] - 800f170: e7f5 b.n 800f15e <_svfprintf_r+0x89e> - 800f172: 066e lsls r6, r5, #25 - 800f174: d502 bpl.n 800f17c <_svfprintf_r+0x8bc> - 800f176: 9a0a ldr r2, [sp, #40] ; 0x28 - 800f178: 801a strh r2, [r3, #0] - 800f17a: e7f0 b.n 800f15e <_svfprintf_r+0x89e> - 800f17c: 05a8 lsls r0, r5, #22 - 800f17e: d5f5 bpl.n 800f16c <_svfprintf_r+0x8ac> - 800f180: 9a0a ldr r2, [sp, #40] ; 0x28 - 800f182: 701a strb r2, [r3, #0] - 800f184: e7eb b.n 800f15e <_svfprintf_r+0x89e> - 800f186: f045 0510 orr.w r5, r5, #16 - 800f18a: 06a9 lsls r1, r5, #26 - 800f18c: d520 bpl.n 800f1d0 <_svfprintf_r+0x910> - 800f18e: 3607 adds r6, #7 - 800f190: f026 0607 bic.w r6, r6, #7 - 800f194: f106 0308 add.w r3, r6, #8 - 800f198: e9d6 6700 ldrd r6, r7, [r6] - 800f19c: 9306 str r3, [sp, #24] - 800f19e: f425 6580 bic.w r5, r5, #1024 ; 0x400 - 800f1a2: 2300 movs r3, #0 - 800f1a4: 2200 movs r2, #0 - 800f1a6: f1b8 3fff cmp.w r8, #4294967295 ; 0xffffffff - 800f1aa: f88d 205b strb.w r2, [sp, #91] ; 0x5b - 800f1ae: f000 814d beq.w 800f44c <_svfprintf_r+0xb8c> - 800f1b2: 462a mov r2, r5 - 800f1b4: ea56 0107 orrs.w r1, r6, r7 - 800f1b8: f025 0580 bic.w r5, r5, #128 ; 0x80 - 800f1bc: f040 8146 bne.w 800f44c <_svfprintf_r+0xb8c> - 800f1c0: f1b8 0f00 cmp.w r8, #0 - 800f1c4: f000 81c7 beq.w 800f556 <_svfprintf_r+0xc96> - 800f1c8: 2b01 cmp r3, #1 - 800f1ca: f040 8142 bne.w 800f452 <_svfprintf_r+0xb92> - 800f1ce: e589 b.n 800ece4 <_svfprintf_r+0x424> - 800f1d0: 1d33 adds r3, r6, #4 - 800f1d2: 06ea lsls r2, r5, #27 - 800f1d4: 9306 str r3, [sp, #24] - 800f1d6: d501 bpl.n 800f1dc <_svfprintf_r+0x91c> - 800f1d8: 6836 ldr r6, [r6, #0] - 800f1da: e002 b.n 800f1e2 <_svfprintf_r+0x922> - 800f1dc: 066b lsls r3, r5, #25 - 800f1de: d502 bpl.n 800f1e6 <_svfprintf_r+0x926> - 800f1e0: 8836 ldrh r6, [r6, #0] - 800f1e2: 2700 movs r7, #0 - 800f1e4: e7db b.n 800f19e <_svfprintf_r+0x8de> - 800f1e6: 05af lsls r7, r5, #22 - 800f1e8: d5f6 bpl.n 800f1d8 <_svfprintf_r+0x918> - 800f1ea: 7836 ldrb r6, [r6, #0] - 800f1ec: e7f9 b.n 800f1e2 <_svfprintf_r+0x922> - 800f1ee: 1d33 adds r3, r6, #4 - 800f1f0: 9306 str r3, [sp, #24] - 800f1f2: f647 0330 movw r3, #30768 ; 0x7830 - 800f1f6: f8ad 305c strh.w r3, [sp, #92] ; 0x5c - 800f1fa: 2278 movs r2, #120 ; 0x78 - 800f1fc: 4baa ldr r3, [pc, #680] ; (800f4a8 <_svfprintf_r+0xbe8>) - 800f1fe: 9311 str r3, [sp, #68] ; 0x44 - 800f200: 6836 ldr r6, [r6, #0] - 800f202: 9204 str r2, [sp, #16] - 800f204: 2700 movs r7, #0 - 800f206: f045 0502 orr.w r5, r5, #2 - 800f20a: 2302 movs r3, #2 - 800f20c: e7ca b.n 800f1a4 <_svfprintf_r+0x8e4> - 800f20e: 1d33 adds r3, r6, #4 - 800f210: f8d6 9000 ldr.w r9, [r6] - 800f214: 9306 str r3, [sp, #24] - 800f216: 2600 movs r6, #0 - 800f218: f1b8 3fff cmp.w r8, #4294967295 ; 0xffffffff - 800f21c: f88d 605b strb.w r6, [sp, #91] ; 0x5b - 800f220: f000 80db beq.w 800f3da <_svfprintf_r+0xb1a> - 800f224: 4642 mov r2, r8 - 800f226: 4631 mov r1, r6 - 800f228: 4648 mov r0, r9 - 800f22a: f7f7 fd79 bl 8006d20 - 800f22e: 4682 mov sl, r0 - 800f230: 2800 cmp r0, #0 - 800f232: f43f ad94 beq.w 800ed5e <_svfprintf_r+0x49e> - 800f236: eba0 0809 sub.w r8, r0, r9 - 800f23a: 46b2 mov sl, r6 - 800f23c: 960c str r6, [sp, #48] ; 0x30 - 800f23e: 4637 mov r7, r6 - 800f240: 9605 str r6, [sp, #20] - 800f242: 9b0c ldr r3, [sp, #48] ; 0x30 - 800f244: 4543 cmp r3, r8 - 800f246: bfb8 it lt - 800f248: 4643 movlt r3, r8 - 800f24a: 930d str r3, [sp, #52] ; 0x34 - 800f24c: f89d 305b ldrb.w r3, [sp, #91] ; 0x5b - 800f250: b113 cbz r3, 800f258 <_svfprintf_r+0x998> - 800f252: 9b0d ldr r3, [sp, #52] ; 0x34 - 800f254: 3301 adds r3, #1 - 800f256: 930d str r3, [sp, #52] ; 0x34 - 800f258: f015 0302 ands.w r3, r5, #2 - 800f25c: 9313 str r3, [sp, #76] ; 0x4c - 800f25e: bf1e ittt ne - 800f260: 9b0d ldrne r3, [sp, #52] ; 0x34 - 800f262: 3302 addne r3, #2 - 800f264: 930d strne r3, [sp, #52] ; 0x34 - 800f266: f015 0384 ands.w r3, r5, #132 ; 0x84 - 800f26a: 9314 str r3, [sp, #80] ; 0x50 - 800f26c: d120 bne.n 800f2b0 <_svfprintf_r+0x9f0> - 800f26e: 9b0b ldr r3, [sp, #44] ; 0x2c - 800f270: 9a0d ldr r2, [sp, #52] ; 0x34 - 800f272: 1a9b subs r3, r3, r2 - 800f274: 2b00 cmp r3, #0 - 800f276: dd1b ble.n 800f2b0 <_svfprintf_r+0x9f0> - 800f278: e9dd 2c1f ldrd r2, ip, [sp, #124] ; 0x7c - 800f27c: 498b ldr r1, [pc, #556] ; (800f4ac <_svfprintf_r+0xbec>) - 800f27e: 6021 str r1, [r4, #0] - 800f280: 2b10 cmp r3, #16 - 800f282: f102 0201 add.w r2, r2, #1 - 800f286: f104 0008 add.w r0, r4, #8 - 800f28a: f300 817d bgt.w 800f588 <_svfprintf_r+0xcc8> - 800f28e: eb0c 0103 add.w r1, ip, r3 - 800f292: 2a07 cmp r2, #7 - 800f294: 6063 str r3, [r4, #4] - 800f296: e9cd 211f strd r2, r1, [sp, #124] ; 0x7c - 800f29a: f340 818a ble.w 800f5b2 <_svfprintf_r+0xcf2> - 800f29e: aa1e add r2, sp, #120 ; 0x78 - 800f2a0: 4659 mov r1, fp - 800f2a2: 9802 ldr r0, [sp, #8] - 800f2a4: f002 f9ae bl 8011604 <__ssprint_r> - 800f2a8: 2800 cmp r0, #0 - 800f2aa: f040 84b7 bne.w 800fc1c <_svfprintf_r+0x135c> - 800f2ae: ac21 add r4, sp, #132 ; 0x84 - 800f2b0: f89d 305b ldrb.w r3, [sp, #91] ; 0x5b - 800f2b4: b173 cbz r3, 800f2d4 <_svfprintf_r+0xa14> - 800f2b6: f10d 035b add.w r3, sp, #91 ; 0x5b - 800f2ba: 6023 str r3, [r4, #0] - 800f2bc: 2301 movs r3, #1 - 800f2be: 6063 str r3, [r4, #4] - 800f2c0: 9b20 ldr r3, [sp, #128] ; 0x80 - 800f2c2: 3301 adds r3, #1 - 800f2c4: 9320 str r3, [sp, #128] ; 0x80 - 800f2c6: 9b1f ldr r3, [sp, #124] ; 0x7c - 800f2c8: 3301 adds r3, #1 - 800f2ca: 2b07 cmp r3, #7 - 800f2cc: 931f str r3, [sp, #124] ; 0x7c - 800f2ce: f300 8172 bgt.w 800f5b6 <_svfprintf_r+0xcf6> - 800f2d2: 3408 adds r4, #8 - 800f2d4: 9b13 ldr r3, [sp, #76] ; 0x4c - 800f2d6: b16b cbz r3, 800f2f4 <_svfprintf_r+0xa34> - 800f2d8: ab17 add r3, sp, #92 ; 0x5c - 800f2da: 6023 str r3, [r4, #0] - 800f2dc: 2302 movs r3, #2 - 800f2de: 6063 str r3, [r4, #4] - 800f2e0: 9b20 ldr r3, [sp, #128] ; 0x80 - 800f2e2: 3302 adds r3, #2 - 800f2e4: 9320 str r3, [sp, #128] ; 0x80 - 800f2e6: 9b1f ldr r3, [sp, #124] ; 0x7c - 800f2e8: 3301 adds r3, #1 - 800f2ea: 2b07 cmp r3, #7 - 800f2ec: 931f str r3, [sp, #124] ; 0x7c - 800f2ee: f300 816c bgt.w 800f5ca <_svfprintf_r+0xd0a> - 800f2f2: 3408 adds r4, #8 - 800f2f4: 9b14 ldr r3, [sp, #80] ; 0x50 - 800f2f6: 2b80 cmp r3, #128 ; 0x80 - 800f2f8: d120 bne.n 800f33c <_svfprintf_r+0xa7c> - 800f2fa: 9b0b ldr r3, [sp, #44] ; 0x2c - 800f2fc: 9a0d ldr r2, [sp, #52] ; 0x34 - 800f2fe: 1a9b subs r3, r3, r2 - 800f300: 2b00 cmp r3, #0 - 800f302: dd1b ble.n 800f33c <_svfprintf_r+0xa7c> - 800f304: e9dd 2c1f ldrd r2, ip, [sp, #124] ; 0x7c - 800f308: 4969 ldr r1, [pc, #420] ; (800f4b0 <_svfprintf_r+0xbf0>) - 800f30a: 6021 str r1, [r4, #0] - 800f30c: 2b10 cmp r3, #16 - 800f30e: f102 0201 add.w r2, r2, #1 - 800f312: f104 0008 add.w r0, r4, #8 - 800f316: f300 8162 bgt.w 800f5de <_svfprintf_r+0xd1e> - 800f31a: eb0c 0103 add.w r1, ip, r3 - 800f31e: 2a07 cmp r2, #7 - 800f320: 6063 str r3, [r4, #4] - 800f322: e9cd 211f strd r2, r1, [sp, #124] ; 0x7c - 800f326: f340 816f ble.w 800f608 <_svfprintf_r+0xd48> - 800f32a: aa1e add r2, sp, #120 ; 0x78 - 800f32c: 4659 mov r1, fp - 800f32e: 9802 ldr r0, [sp, #8] - 800f330: f002 f968 bl 8011604 <__ssprint_r> - 800f334: 2800 cmp r0, #0 - 800f336: f040 8471 bne.w 800fc1c <_svfprintf_r+0x135c> - 800f33a: ac21 add r4, sp, #132 ; 0x84 - 800f33c: 9b0c ldr r3, [sp, #48] ; 0x30 - 800f33e: eba3 0308 sub.w r3, r3, r8 - 800f342: 2b00 cmp r3, #0 - 800f344: 930c str r3, [sp, #48] ; 0x30 - 800f346: dd1c ble.n 800f382 <_svfprintf_r+0xac2> - 800f348: 980c ldr r0, [sp, #48] ; 0x30 - 800f34a: e9dd 231f ldrd r2, r3, [sp, #124] ; 0x7c - 800f34e: 2810 cmp r0, #16 - 800f350: 4857 ldr r0, [pc, #348] ; (800f4b0 <_svfprintf_r+0xbf0>) - 800f352: 6020 str r0, [r4, #0] - 800f354: f102 0201 add.w r2, r2, #1 - 800f358: f104 0108 add.w r1, r4, #8 - 800f35c: f300 8156 bgt.w 800f60c <_svfprintf_r+0xd4c> - 800f360: 980c ldr r0, [sp, #48] ; 0x30 - 800f362: 6060 str r0, [r4, #4] - 800f364: 4403 add r3, r0 - 800f366: 2a07 cmp r2, #7 - 800f368: e9cd 231f strd r2, r3, [sp, #124] ; 0x7c - 800f36c: f340 8163 ble.w 800f636 <_svfprintf_r+0xd76> - 800f370: aa1e add r2, sp, #120 ; 0x78 - 800f372: 4659 mov r1, fp - 800f374: 9802 ldr r0, [sp, #8] - 800f376: f002 f945 bl 8011604 <__ssprint_r> - 800f37a: 2800 cmp r0, #0 - 800f37c: f040 844e bne.w 800fc1c <_svfprintf_r+0x135c> - 800f380: ac21 add r4, sp, #132 ; 0x84 - 800f382: 05e8 lsls r0, r5, #23 - 800f384: 9b20 ldr r3, [sp, #128] ; 0x80 - 800f386: f100 8158 bmi.w 800f63a <_svfprintf_r+0xd7a> - 800f38a: 4443 add r3, r8 - 800f38c: 9320 str r3, [sp, #128] ; 0x80 - 800f38e: 9b1f ldr r3, [sp, #124] ; 0x7c - 800f390: 3301 adds r3, #1 - 800f392: 2b07 cmp r3, #7 - 800f394: e9c4 9800 strd r9, r8, [r4] - 800f398: 931f str r3, [sp, #124] ; 0x7c - 800f39a: f300 8190 bgt.w 800f6be <_svfprintf_r+0xdfe> - 800f39e: 3408 adds r4, #8 - 800f3a0: 076b lsls r3, r5, #29 - 800f3a2: f100 841d bmi.w 800fbe0 <_svfprintf_r+0x1320> - 800f3a6: e9dd 320a ldrd r3, r2, [sp, #40] ; 0x28 - 800f3aa: 990d ldr r1, [sp, #52] ; 0x34 - 800f3ac: 428a cmp r2, r1 - 800f3ae: bfac ite ge - 800f3b0: 189b addge r3, r3, r2 - 800f3b2: 185b addlt r3, r3, r1 - 800f3b4: 930a str r3, [sp, #40] ; 0x28 - 800f3b6: 9b20 ldr r3, [sp, #128] ; 0x80 - 800f3b8: b13b cbz r3, 800f3ca <_svfprintf_r+0xb0a> - 800f3ba: aa1e add r2, sp, #120 ; 0x78 - 800f3bc: 4659 mov r1, fp - 800f3be: 9802 ldr r0, [sp, #8] - 800f3c0: f002 f920 bl 8011604 <__ssprint_r> - 800f3c4: 2800 cmp r0, #0 - 800f3c6: f040 8429 bne.w 800fc1c <_svfprintf_r+0x135c> - 800f3ca: 2300 movs r3, #0 - 800f3cc: 931f str r3, [sp, #124] ; 0x7c - 800f3ce: f1ba 0f00 cmp.w sl, #0 - 800f3d2: f040 843f bne.w 800fc54 <_svfprintf_r+0x1394> - 800f3d6: ac21 add r4, sp, #132 ; 0x84 - 800f3d8: e6c1 b.n 800f15e <_svfprintf_r+0x89e> - 800f3da: 4648 mov r0, r9 - 800f3dc: f7f7 fcfa bl 8006dd4 - 800f3e0: 46b2 mov sl, r6 - 800f3e2: 4680 mov r8, r0 - 800f3e4: e4bb b.n 800ed5e <_svfprintf_r+0x49e> - 800f3e6: f045 0510 orr.w r5, r5, #16 - 800f3ea: 06a8 lsls r0, r5, #26 - 800f3ec: d509 bpl.n 800f402 <_svfprintf_r+0xb42> - 800f3ee: 3607 adds r6, #7 - 800f3f0: f026 0607 bic.w r6, r6, #7 - 800f3f4: f106 0308 add.w r3, r6, #8 - 800f3f8: e9d6 6700 ldrd r6, r7, [r6] - 800f3fc: 9306 str r3, [sp, #24] - 800f3fe: 2301 movs r3, #1 - 800f400: e6d0 b.n 800f1a4 <_svfprintf_r+0x8e4> - 800f402: 1d33 adds r3, r6, #4 - 800f404: 06e9 lsls r1, r5, #27 - 800f406: 9306 str r3, [sp, #24] - 800f408: d501 bpl.n 800f40e <_svfprintf_r+0xb4e> - 800f40a: 6836 ldr r6, [r6, #0] - 800f40c: e002 b.n 800f414 <_svfprintf_r+0xb54> - 800f40e: 066a lsls r2, r5, #25 - 800f410: d502 bpl.n 800f418 <_svfprintf_r+0xb58> - 800f412: 8836 ldrh r6, [r6, #0] - 800f414: 2700 movs r7, #0 - 800f416: e7f2 b.n 800f3fe <_svfprintf_r+0xb3e> - 800f418: 05ab lsls r3, r5, #22 - 800f41a: d5f6 bpl.n 800f40a <_svfprintf_r+0xb4a> - 800f41c: 7836 ldrb r6, [r6, #0] - 800f41e: e7f9 b.n 800f414 <_svfprintf_r+0xb54> - 800f420: 4b21 ldr r3, [pc, #132] ; (800f4a8 <_svfprintf_r+0xbe8>) - 800f422: f7ff bb86 b.w 800eb32 <_svfprintf_r+0x272> - 800f426: 1d33 adds r3, r6, #4 - 800f428: 06e8 lsls r0, r5, #27 - 800f42a: 9306 str r3, [sp, #24] - 800f42c: d501 bpl.n 800f432 <_svfprintf_r+0xb72> - 800f42e: 6836 ldr r6, [r6, #0] - 800f430: e002 b.n 800f438 <_svfprintf_r+0xb78> - 800f432: 0669 lsls r1, r5, #25 - 800f434: d503 bpl.n 800f43e <_svfprintf_r+0xb7e> - 800f436: 8836 ldrh r6, [r6, #0] - 800f438: 2700 movs r7, #0 - 800f43a: f7ff bb86 b.w 800eb4a <_svfprintf_r+0x28a> - 800f43e: 05aa lsls r2, r5, #22 - 800f440: d5f5 bpl.n 800f42e <_svfprintf_r+0xb6e> - 800f442: 7836 ldrb r6, [r6, #0] - 800f444: e7f8 b.n 800f438 <_svfprintf_r+0xb78> - 800f446: 462a mov r2, r5 - 800f448: 2301 movs r3, #1 - 800f44a: e6b3 b.n 800f1b4 <_svfprintf_r+0x8f4> - 800f44c: 2b01 cmp r3, #1 - 800f44e: f43f ac44 beq.w 800ecda <_svfprintf_r+0x41a> - 800f452: 2b02 cmp r3, #2 - 800f454: d06d beq.n 800f532 <_svfprintf_r+0xc72> - 800f456: ab4a add r3, sp, #296 ; 0x128 - 800f458: 08f1 lsrs r1, r6, #3 - 800f45a: ea41 7147 orr.w r1, r1, r7, lsl #29 - 800f45e: 08f8 lsrs r0, r7, #3 - 800f460: f006 0207 and.w r2, r6, #7 - 800f464: 4607 mov r7, r0 - 800f466: 460e mov r6, r1 - 800f468: 3230 adds r2, #48 ; 0x30 - 800f46a: ea56 0107 orrs.w r1, r6, r7 - 800f46e: f103 39ff add.w r9, r3, #4294967295 ; 0xffffffff - 800f472: f803 2c01 strb.w r2, [r3, #-1] - 800f476: d114 bne.n 800f4a2 <_svfprintf_r+0xbe2> - 800f478: 07ef lsls r7, r5, #31 - 800f47a: d506 bpl.n 800f48a <_svfprintf_r+0xbca> - 800f47c: 2a30 cmp r2, #48 ; 0x30 - 800f47e: d004 beq.n 800f48a <_svfprintf_r+0xbca> - 800f480: 2230 movs r2, #48 ; 0x30 - 800f482: f809 2c01 strb.w r2, [r9, #-1] - 800f486: f1a3 0902 sub.w r9, r3, #2 - 800f48a: ab4a add r3, sp, #296 ; 0x128 - 800f48c: f8cd 8030 str.w r8, [sp, #48] ; 0x30 - 800f490: f04f 0a00 mov.w sl, #0 - 800f494: eba3 0809 sub.w r8, r3, r9 - 800f498: 4657 mov r7, sl - 800f49a: f8cd a014 str.w sl, [sp, #20] - 800f49e: 4656 mov r6, sl - 800f4a0: e6cf b.n 800f242 <_svfprintf_r+0x982> - 800f4a2: 464b mov r3, r9 - 800f4a4: e7d8 b.n 800f458 <_svfprintf_r+0xb98> - 800f4a6: bf00 nop - 800f4a8: 08012e40 .word 0x08012e40 - 800f4ac: 08012e64 .word 0x08012e64 - 800f4b0: 08012e74 .word 0x08012e74 - 800f4b4: 2300 movs r3, #0 - 800f4b6: 9303 str r3, [sp, #12] - 800f4b8: f405 6380 and.w r3, r5, #1024 ; 0x400 - 800f4bc: f50d 7a94 add.w sl, sp, #296 ; 0x128 - 800f4c0: 9305 str r3, [sp, #20] - 800f4c2: 220a movs r2, #10 - 800f4c4: 2300 movs r3, #0 - 800f4c6: 4630 mov r0, r6 - 800f4c8: 4639 mov r1, r7 - 800f4ca: f7f7 fc8b bl 8006de4 <__aeabi_uldivmod> - 800f4ce: 9b03 ldr r3, [sp, #12] - 800f4d0: 3301 adds r3, #1 - 800f4d2: 9303 str r3, [sp, #12] - 800f4d4: 9b05 ldr r3, [sp, #20] - 800f4d6: 3230 adds r2, #48 ; 0x30 - 800f4d8: f10a 39ff add.w r9, sl, #4294967295 ; 0xffffffff - 800f4dc: f80a 2c01 strb.w r2, [sl, #-1] - 800f4e0: b1d3 cbz r3, 800f518 <_svfprintf_r+0xc58> - 800f4e2: 9b07 ldr r3, [sp, #28] - 800f4e4: 9a03 ldr r2, [sp, #12] - 800f4e6: 781b ldrb r3, [r3, #0] - 800f4e8: 429a cmp r2, r3 - 800f4ea: d115 bne.n 800f518 <_svfprintf_r+0xc58> - 800f4ec: 2aff cmp r2, #255 ; 0xff - 800f4ee: d013 beq.n 800f518 <_svfprintf_r+0xc58> - 800f4f0: 2f00 cmp r7, #0 - 800f4f2: bf08 it eq - 800f4f4: 2e0a cmpeq r6, #10 - 800f4f6: d30f bcc.n 800f518 <_svfprintf_r+0xc58> - 800f4f8: 9b0e ldr r3, [sp, #56] ; 0x38 - 800f4fa: 9912 ldr r1, [sp, #72] ; 0x48 - 800f4fc: eba9 0903 sub.w r9, r9, r3 - 800f500: 461a mov r2, r3 - 800f502: 4648 mov r0, r9 - 800f504: f002 f869 bl 80115da - 800f508: 9b07 ldr r3, [sp, #28] - 800f50a: 785b ldrb r3, [r3, #1] - 800f50c: b11b cbz r3, 800f516 <_svfprintf_r+0xc56> - 800f50e: 9b07 ldr r3, [sp, #28] - 800f510: 3301 adds r3, #1 - 800f512: 9307 str r3, [sp, #28] - 800f514: 2300 movs r3, #0 - 800f516: 9303 str r3, [sp, #12] - 800f518: 2300 movs r3, #0 - 800f51a: 4630 mov r0, r6 - 800f51c: 4639 mov r1, r7 - 800f51e: 220a movs r2, #10 - 800f520: f7f7 fc60 bl 8006de4 <__aeabi_uldivmod> - 800f524: 4606 mov r6, r0 - 800f526: 460f mov r7, r1 - 800f528: ea56 0307 orrs.w r3, r6, r7 - 800f52c: d0ad beq.n 800f48a <_svfprintf_r+0xbca> - 800f52e: 46ca mov sl, r9 - 800f530: e7c7 b.n 800f4c2 <_svfprintf_r+0xc02> - 800f532: f50d 7994 add.w r9, sp, #296 ; 0x128 - 800f536: f006 030f and.w r3, r6, #15 - 800f53a: 9a11 ldr r2, [sp, #68] ; 0x44 - 800f53c: 5cd3 ldrb r3, [r2, r3] - 800f53e: f809 3d01 strb.w r3, [r9, #-1]! - 800f542: 0933 lsrs r3, r6, #4 - 800f544: ea43 7307 orr.w r3, r3, r7, lsl #28 - 800f548: 093a lsrs r2, r7, #4 - 800f54a: 461e mov r6, r3 - 800f54c: 4617 mov r7, r2 - 800f54e: ea56 0307 orrs.w r3, r6, r7 - 800f552: d1f0 bne.n 800f536 <_svfprintf_r+0xc76> - 800f554: e799 b.n 800f48a <_svfprintf_r+0xbca> - 800f556: f50d 7994 add.w r9, sp, #296 ; 0x128 - 800f55a: 2b00 cmp r3, #0 - 800f55c: d195 bne.n 800f48a <_svfprintf_r+0xbca> - 800f55e: 07d6 lsls r6, r2, #31 - 800f560: bf44 itt mi - 800f562: 2330 movmi r3, #48 ; 0x30 - 800f564: f809 3d01 strbmi.w r3, [r9, #-1]! - 800f568: e78f b.n 800f48a <_svfprintf_r+0xbca> - 800f56a: 9b04 ldr r3, [sp, #16] - 800f56c: 2b00 cmp r3, #0 - 800f56e: f000 8377 beq.w 800fc60 <_svfprintf_r+0x13a0> - 800f572: f88d 30c4 strb.w r3, [sp, #196] ; 0xc4 - 800f576: 2300 movs r3, #0 - 800f578: f88d 305b strb.w r3, [sp, #91] ; 0x5b - 800f57c: 9606 str r6, [sp, #24] - 800f57e: f7ff bb87 b.w 800ec90 <_svfprintf_r+0x3d0> - 800f582: e9dd 530c ldrd r5, r3, [sp, #48] ; 0x30 - 800f586: e503 b.n 800ef90 <_svfprintf_r+0x6d0> - 800f588: 2110 movs r1, #16 - 800f58a: 6061 str r1, [r4, #4] - 800f58c: 2a07 cmp r2, #7 - 800f58e: 4461 add r1, ip - 800f590: e9cd 211f strd r2, r1, [sp, #124] ; 0x7c - 800f594: dd0a ble.n 800f5ac <_svfprintf_r+0xcec> - 800f596: aa1e add r2, sp, #120 ; 0x78 - 800f598: 4659 mov r1, fp - 800f59a: 9802 ldr r0, [sp, #8] - 800f59c: 9315 str r3, [sp, #84] ; 0x54 - 800f59e: f002 f831 bl 8011604 <__ssprint_r> - 800f5a2: 2800 cmp r0, #0 - 800f5a4: f040 833a bne.w 800fc1c <_svfprintf_r+0x135c> - 800f5a8: 9b15 ldr r3, [sp, #84] ; 0x54 - 800f5aa: a821 add r0, sp, #132 ; 0x84 - 800f5ac: 3b10 subs r3, #16 - 800f5ae: 4604 mov r4, r0 - 800f5b0: e662 b.n 800f278 <_svfprintf_r+0x9b8> - 800f5b2: 4604 mov r4, r0 - 800f5b4: e67c b.n 800f2b0 <_svfprintf_r+0x9f0> - 800f5b6: aa1e add r2, sp, #120 ; 0x78 - 800f5b8: 4659 mov r1, fp - 800f5ba: 9802 ldr r0, [sp, #8] - 800f5bc: f002 f822 bl 8011604 <__ssprint_r> - 800f5c0: 2800 cmp r0, #0 - 800f5c2: f040 832b bne.w 800fc1c <_svfprintf_r+0x135c> - 800f5c6: ac21 add r4, sp, #132 ; 0x84 - 800f5c8: e684 b.n 800f2d4 <_svfprintf_r+0xa14> - 800f5ca: aa1e add r2, sp, #120 ; 0x78 - 800f5cc: 4659 mov r1, fp - 800f5ce: 9802 ldr r0, [sp, #8] - 800f5d0: f002 f818 bl 8011604 <__ssprint_r> - 800f5d4: 2800 cmp r0, #0 - 800f5d6: f040 8321 bne.w 800fc1c <_svfprintf_r+0x135c> - 800f5da: ac21 add r4, sp, #132 ; 0x84 - 800f5dc: e68a b.n 800f2f4 <_svfprintf_r+0xa34> - 800f5de: 2110 movs r1, #16 - 800f5e0: 6061 str r1, [r4, #4] - 800f5e2: 2a07 cmp r2, #7 - 800f5e4: 4461 add r1, ip - 800f5e6: e9cd 211f strd r2, r1, [sp, #124] ; 0x7c - 800f5ea: dd0a ble.n 800f602 <_svfprintf_r+0xd42> - 800f5ec: aa1e add r2, sp, #120 ; 0x78 - 800f5ee: 4659 mov r1, fp - 800f5f0: 9802 ldr r0, [sp, #8] - 800f5f2: 9313 str r3, [sp, #76] ; 0x4c - 800f5f4: f002 f806 bl 8011604 <__ssprint_r> - 800f5f8: 2800 cmp r0, #0 - 800f5fa: f040 830f bne.w 800fc1c <_svfprintf_r+0x135c> - 800f5fe: 9b13 ldr r3, [sp, #76] ; 0x4c - 800f600: a821 add r0, sp, #132 ; 0x84 - 800f602: 3b10 subs r3, #16 - 800f604: 4604 mov r4, r0 - 800f606: e67d b.n 800f304 <_svfprintf_r+0xa44> - 800f608: 4604 mov r4, r0 - 800f60a: e697 b.n 800f33c <_svfprintf_r+0xa7c> - 800f60c: 2010 movs r0, #16 - 800f60e: 4403 add r3, r0 - 800f610: 2a07 cmp r2, #7 - 800f612: 6060 str r0, [r4, #4] - 800f614: e9cd 231f strd r2, r3, [sp, #124] ; 0x7c - 800f618: dd08 ble.n 800f62c <_svfprintf_r+0xd6c> - 800f61a: aa1e add r2, sp, #120 ; 0x78 - 800f61c: 4659 mov r1, fp - 800f61e: 9802 ldr r0, [sp, #8] - 800f620: f001 fff0 bl 8011604 <__ssprint_r> - 800f624: 2800 cmp r0, #0 - 800f626: f040 82f9 bne.w 800fc1c <_svfprintf_r+0x135c> - 800f62a: a921 add r1, sp, #132 ; 0x84 - 800f62c: 9b0c ldr r3, [sp, #48] ; 0x30 - 800f62e: 3b10 subs r3, #16 - 800f630: 930c str r3, [sp, #48] ; 0x30 - 800f632: 460c mov r4, r1 - 800f634: e688 b.n 800f348 <_svfprintf_r+0xa88> - 800f636: 460c mov r4, r1 - 800f638: e6a3 b.n 800f382 <_svfprintf_r+0xac2> - 800f63a: 9a04 ldr r2, [sp, #16] - 800f63c: 2a65 cmp r2, #101 ; 0x65 - 800f63e: f340 8243 ble.w 800fac8 <_svfprintf_r+0x1208> - 800f642: eeb5 8b40 vcmp.f64 d8, #0.0 - 800f646: eef1 fa10 vmrs APSR_nzcv, fpscr - 800f64a: d169 bne.n 800f720 <_svfprintf_r+0xe60> - 800f64c: 4a72 ldr r2, [pc, #456] ; (800f818 <_svfprintf_r+0xf58>) - 800f64e: 6022 str r2, [r4, #0] - 800f650: 2201 movs r2, #1 - 800f652: 4413 add r3, r2 - 800f654: 9320 str r3, [sp, #128] ; 0x80 - 800f656: 9b1f ldr r3, [sp, #124] ; 0x7c - 800f658: 6062 str r2, [r4, #4] - 800f65a: 4413 add r3, r2 - 800f65c: 2b07 cmp r3, #7 - 800f65e: 931f str r3, [sp, #124] ; 0x7c - 800f660: dc37 bgt.n 800f6d2 <_svfprintf_r+0xe12> - 800f662: 3408 adds r4, #8 - 800f664: 9b18 ldr r3, [sp, #96] ; 0x60 - 800f666: 9a03 ldr r2, [sp, #12] - 800f668: 4293 cmp r3, r2 - 800f66a: db02 blt.n 800f672 <_svfprintf_r+0xdb2> - 800f66c: 07e9 lsls r1, r5, #31 - 800f66e: f57f ae97 bpl.w 800f3a0 <_svfprintf_r+0xae0> - 800f672: 9b0f ldr r3, [sp, #60] ; 0x3c - 800f674: 6023 str r3, [r4, #0] - 800f676: 9b09 ldr r3, [sp, #36] ; 0x24 - 800f678: 6063 str r3, [r4, #4] - 800f67a: 9a09 ldr r2, [sp, #36] ; 0x24 - 800f67c: 9b20 ldr r3, [sp, #128] ; 0x80 - 800f67e: 4413 add r3, r2 - 800f680: 9320 str r3, [sp, #128] ; 0x80 - 800f682: 9b1f ldr r3, [sp, #124] ; 0x7c - 800f684: 3301 adds r3, #1 - 800f686: 2b07 cmp r3, #7 - 800f688: 931f str r3, [sp, #124] ; 0x7c - 800f68a: dc2c bgt.n 800f6e6 <_svfprintf_r+0xe26> - 800f68c: 3408 adds r4, #8 - 800f68e: 9b03 ldr r3, [sp, #12] - 800f690: 1e5e subs r6, r3, #1 - 800f692: 2e00 cmp r6, #0 - 800f694: f77f ae84 ble.w 800f3a0 <_svfprintf_r+0xae0> - 800f698: 4f60 ldr r7, [pc, #384] ; (800f81c <_svfprintf_r+0xf5c>) - 800f69a: f04f 0810 mov.w r8, #16 - 800f69e: e9dd 321f ldrd r3, r2, [sp, #124] ; 0x7c - 800f6a2: 2e10 cmp r6, #16 - 800f6a4: f103 0301 add.w r3, r3, #1 - 800f6a8: f104 0108 add.w r1, r4, #8 - 800f6ac: 6027 str r7, [r4, #0] - 800f6ae: dc24 bgt.n 800f6fa <_svfprintf_r+0xe3a> - 800f6b0: 6066 str r6, [r4, #4] - 800f6b2: 2b07 cmp r3, #7 - 800f6b4: 4416 add r6, r2 - 800f6b6: e9cd 361f strd r3, r6, [sp, #124] ; 0x7c - 800f6ba: f340 828e ble.w 800fbda <_svfprintf_r+0x131a> - 800f6be: aa1e add r2, sp, #120 ; 0x78 - 800f6c0: 4659 mov r1, fp - 800f6c2: 9802 ldr r0, [sp, #8] - 800f6c4: f001 ff9e bl 8011604 <__ssprint_r> - 800f6c8: 2800 cmp r0, #0 - 800f6ca: f040 82a7 bne.w 800fc1c <_svfprintf_r+0x135c> - 800f6ce: ac21 add r4, sp, #132 ; 0x84 - 800f6d0: e666 b.n 800f3a0 <_svfprintf_r+0xae0> - 800f6d2: aa1e add r2, sp, #120 ; 0x78 - 800f6d4: 4659 mov r1, fp - 800f6d6: 9802 ldr r0, [sp, #8] - 800f6d8: f001 ff94 bl 8011604 <__ssprint_r> - 800f6dc: 2800 cmp r0, #0 - 800f6de: f040 829d bne.w 800fc1c <_svfprintf_r+0x135c> - 800f6e2: ac21 add r4, sp, #132 ; 0x84 - 800f6e4: e7be b.n 800f664 <_svfprintf_r+0xda4> - 800f6e6: aa1e add r2, sp, #120 ; 0x78 - 800f6e8: 4659 mov r1, fp - 800f6ea: 9802 ldr r0, [sp, #8] - 800f6ec: f001 ff8a bl 8011604 <__ssprint_r> - 800f6f0: 2800 cmp r0, #0 - 800f6f2: f040 8293 bne.w 800fc1c <_svfprintf_r+0x135c> - 800f6f6: ac21 add r4, sp, #132 ; 0x84 - 800f6f8: e7c9 b.n 800f68e <_svfprintf_r+0xdce> - 800f6fa: 3210 adds r2, #16 - 800f6fc: 2b07 cmp r3, #7 - 800f6fe: f8c4 8004 str.w r8, [r4, #4] - 800f702: e9cd 321f strd r3, r2, [sp, #124] ; 0x7c - 800f706: dd08 ble.n 800f71a <_svfprintf_r+0xe5a> - 800f708: aa1e add r2, sp, #120 ; 0x78 - 800f70a: 4659 mov r1, fp - 800f70c: 9802 ldr r0, [sp, #8] - 800f70e: f001 ff79 bl 8011604 <__ssprint_r> - 800f712: 2800 cmp r0, #0 - 800f714: f040 8282 bne.w 800fc1c <_svfprintf_r+0x135c> - 800f718: a921 add r1, sp, #132 ; 0x84 - 800f71a: 3e10 subs r6, #16 - 800f71c: 460c mov r4, r1 - 800f71e: e7be b.n 800f69e <_svfprintf_r+0xdde> - 800f720: 9a18 ldr r2, [sp, #96] ; 0x60 - 800f722: 2a00 cmp r2, #0 - 800f724: dc7c bgt.n 800f820 <_svfprintf_r+0xf60> - 800f726: 4a3c ldr r2, [pc, #240] ; (800f818 <_svfprintf_r+0xf58>) - 800f728: 6022 str r2, [r4, #0] - 800f72a: 2201 movs r2, #1 - 800f72c: 4413 add r3, r2 - 800f72e: 9320 str r3, [sp, #128] ; 0x80 - 800f730: 9b1f ldr r3, [sp, #124] ; 0x7c - 800f732: 6062 str r2, [r4, #4] - 800f734: 4413 add r3, r2 - 800f736: 2b07 cmp r3, #7 - 800f738: 931f str r3, [sp, #124] ; 0x7c - 800f73a: dc46 bgt.n 800f7ca <_svfprintf_r+0xf0a> - 800f73c: 3408 adds r4, #8 - 800f73e: 9b18 ldr r3, [sp, #96] ; 0x60 - 800f740: b923 cbnz r3, 800f74c <_svfprintf_r+0xe8c> - 800f742: 9b03 ldr r3, [sp, #12] - 800f744: b913 cbnz r3, 800f74c <_svfprintf_r+0xe8c> - 800f746: 07ea lsls r2, r5, #31 - 800f748: f57f ae2a bpl.w 800f3a0 <_svfprintf_r+0xae0> - 800f74c: 9b0f ldr r3, [sp, #60] ; 0x3c - 800f74e: 6023 str r3, [r4, #0] - 800f750: 9b09 ldr r3, [sp, #36] ; 0x24 - 800f752: 6063 str r3, [r4, #4] - 800f754: 9a09 ldr r2, [sp, #36] ; 0x24 - 800f756: 9b20 ldr r3, [sp, #128] ; 0x80 - 800f758: 4413 add r3, r2 - 800f75a: 9320 str r3, [sp, #128] ; 0x80 - 800f75c: 9b1f ldr r3, [sp, #124] ; 0x7c - 800f75e: 3301 adds r3, #1 - 800f760: 2b07 cmp r3, #7 - 800f762: 931f str r3, [sp, #124] ; 0x7c - 800f764: dc3b bgt.n 800f7de <_svfprintf_r+0xf1e> - 800f766: f104 0308 add.w r3, r4, #8 - 800f76a: 9e18 ldr r6, [sp, #96] ; 0x60 - 800f76c: 2e00 cmp r6, #0 - 800f76e: da1b bge.n 800f7a8 <_svfprintf_r+0xee8> - 800f770: 4f2a ldr r7, [pc, #168] ; (800f81c <_svfprintf_r+0xf5c>) - 800f772: 4276 negs r6, r6 - 800f774: 461a mov r2, r3 - 800f776: 2410 movs r4, #16 - 800f778: e9dd 101f ldrd r1, r0, [sp, #124] ; 0x7c - 800f77c: 2e10 cmp r6, #16 - 800f77e: f101 0101 add.w r1, r1, #1 - 800f782: f103 0308 add.w r3, r3, #8 - 800f786: 6017 str r7, [r2, #0] - 800f788: dc33 bgt.n 800f7f2 <_svfprintf_r+0xf32> - 800f78a: 6056 str r6, [r2, #4] - 800f78c: 2907 cmp r1, #7 - 800f78e: 4406 add r6, r0 - 800f790: e9cd 161f strd r1, r6, [sp, #124] ; 0x7c - 800f794: dd08 ble.n 800f7a8 <_svfprintf_r+0xee8> - 800f796: aa1e add r2, sp, #120 ; 0x78 - 800f798: 4659 mov r1, fp - 800f79a: 9802 ldr r0, [sp, #8] - 800f79c: f001 ff32 bl 8011604 <__ssprint_r> - 800f7a0: 2800 cmp r0, #0 - 800f7a2: f040 823b bne.w 800fc1c <_svfprintf_r+0x135c> - 800f7a6: ab21 add r3, sp, #132 ; 0x84 - 800f7a8: 9a03 ldr r2, [sp, #12] - 800f7aa: 605a str r2, [r3, #4] - 800f7ac: 9903 ldr r1, [sp, #12] - 800f7ae: 9a20 ldr r2, [sp, #128] ; 0x80 - 800f7b0: f8c3 9000 str.w r9, [r3] - 800f7b4: 440a add r2, r1 - 800f7b6: 9220 str r2, [sp, #128] ; 0x80 - 800f7b8: 9a1f ldr r2, [sp, #124] ; 0x7c - 800f7ba: 3201 adds r2, #1 - 800f7bc: 2a07 cmp r2, #7 - 800f7be: 921f str r2, [sp, #124] ; 0x7c - 800f7c0: f73f af7d bgt.w 800f6be <_svfprintf_r+0xdfe> - 800f7c4: f103 0408 add.w r4, r3, #8 - 800f7c8: e5ea b.n 800f3a0 <_svfprintf_r+0xae0> - 800f7ca: aa1e add r2, sp, #120 ; 0x78 - 800f7cc: 4659 mov r1, fp - 800f7ce: 9802 ldr r0, [sp, #8] - 800f7d0: f001 ff18 bl 8011604 <__ssprint_r> - 800f7d4: 2800 cmp r0, #0 - 800f7d6: f040 8221 bne.w 800fc1c <_svfprintf_r+0x135c> - 800f7da: ac21 add r4, sp, #132 ; 0x84 - 800f7dc: e7af b.n 800f73e <_svfprintf_r+0xe7e> - 800f7de: aa1e add r2, sp, #120 ; 0x78 - 800f7e0: 4659 mov r1, fp - 800f7e2: 9802 ldr r0, [sp, #8] - 800f7e4: f001 ff0e bl 8011604 <__ssprint_r> - 800f7e8: 2800 cmp r0, #0 - 800f7ea: f040 8217 bne.w 800fc1c <_svfprintf_r+0x135c> - 800f7ee: ab21 add r3, sp, #132 ; 0x84 - 800f7f0: e7bb b.n 800f76a <_svfprintf_r+0xeaa> - 800f7f2: 3010 adds r0, #16 - 800f7f4: 2907 cmp r1, #7 - 800f7f6: 6054 str r4, [r2, #4] - 800f7f8: e9cd 101f strd r1, r0, [sp, #124] ; 0x7c - 800f7fc: dd08 ble.n 800f810 <_svfprintf_r+0xf50> - 800f7fe: aa1e add r2, sp, #120 ; 0x78 - 800f800: 4659 mov r1, fp - 800f802: 9802 ldr r0, [sp, #8] - 800f804: f001 fefe bl 8011604 <__ssprint_r> - 800f808: 2800 cmp r0, #0 - 800f80a: f040 8207 bne.w 800fc1c <_svfprintf_r+0x135c> - 800f80e: ab21 add r3, sp, #132 ; 0x84 - 800f810: 3e10 subs r6, #16 - 800f812: 461a mov r2, r3 - 800f814: e7b0 b.n 800f778 <_svfprintf_r+0xeb8> - 800f816: bf00 nop - 800f818: 08012e62 .word 0x08012e62 - 800f81c: 08012e74 .word 0x08012e74 - 800f820: 9a03 ldr r2, [sp, #12] - 800f822: 42b2 cmp r2, r6 - 800f824: bfa8 it ge - 800f826: 4632 movge r2, r6 - 800f828: 2a00 cmp r2, #0 - 800f82a: 4690 mov r8, r2 - 800f82c: dd0a ble.n 800f844 <_svfprintf_r+0xf84> - 800f82e: 4413 add r3, r2 - 800f830: 9320 str r3, [sp, #128] ; 0x80 - 800f832: 9b1f ldr r3, [sp, #124] ; 0x7c - 800f834: 3301 adds r3, #1 - 800f836: 2b07 cmp r3, #7 - 800f838: e9c4 9200 strd r9, r2, [r4] - 800f83c: 931f str r3, [sp, #124] ; 0x7c - 800f83e: f300 808a bgt.w 800f956 <_svfprintf_r+0x1096> - 800f842: 3408 adds r4, #8 - 800f844: f1b8 0f00 cmp.w r8, #0 - 800f848: bfac ite ge - 800f84a: eba6 0808 subge.w r8, r6, r8 - 800f84e: 46b0 movlt r8, r6 - 800f850: f1b8 0f00 cmp.w r8, #0 - 800f854: dd1b ble.n 800f88e <_svfprintf_r+0xfce> - 800f856: e9dd 231f ldrd r2, r3, [sp, #124] ; 0x7c - 800f85a: 489a ldr r0, [pc, #616] ; (800fac4 <_svfprintf_r+0x1204>) - 800f85c: 6020 str r0, [r4, #0] - 800f85e: f1b8 0f10 cmp.w r8, #16 - 800f862: f102 0201 add.w r2, r2, #1 - 800f866: f104 0108 add.w r1, r4, #8 - 800f86a: dc7e bgt.n 800f96a <_svfprintf_r+0x10aa> - 800f86c: 4443 add r3, r8 - 800f86e: 2a07 cmp r2, #7 - 800f870: f8c4 8004 str.w r8, [r4, #4] - 800f874: e9cd 231f strd r2, r3, [sp, #124] ; 0x7c - 800f878: f340 808b ble.w 800f992 <_svfprintf_r+0x10d2> - 800f87c: aa1e add r2, sp, #120 ; 0x78 - 800f87e: 4659 mov r1, fp - 800f880: 9802 ldr r0, [sp, #8] - 800f882: f001 febf bl 8011604 <__ssprint_r> - 800f886: 2800 cmp r0, #0 - 800f888: f040 81c8 bne.w 800fc1c <_svfprintf_r+0x135c> - 800f88c: ac21 add r4, sp, #132 ; 0x84 - 800f88e: 056b lsls r3, r5, #21 - 800f890: 444e add r6, r9 - 800f892: d509 bpl.n 800f8a8 <_svfprintf_r+0xfe8> - 800f894: 9b05 ldr r3, [sp, #20] - 800f896: 2b00 cmp r3, #0 - 800f898: d17d bne.n 800f996 <_svfprintf_r+0x10d6> - 800f89a: 2f00 cmp r7, #0 - 800f89c: d17d bne.n 800f99a <_svfprintf_r+0x10da> - 800f89e: 9b03 ldr r3, [sp, #12] - 800f8a0: 444b add r3, r9 - 800f8a2: 429e cmp r6, r3 - 800f8a4: bf28 it cs - 800f8a6: 461e movcs r6, r3 - 800f8a8: 9b18 ldr r3, [sp, #96] ; 0x60 - 800f8aa: 9a03 ldr r2, [sp, #12] - 800f8ac: 4293 cmp r3, r2 - 800f8ae: db01 blt.n 800f8b4 <_svfprintf_r+0xff4> - 800f8b0: 07ef lsls r7, r5, #31 - 800f8b2: d50e bpl.n 800f8d2 <_svfprintf_r+0x1012> - 800f8b4: 9b0f ldr r3, [sp, #60] ; 0x3c - 800f8b6: 6023 str r3, [r4, #0] - 800f8b8: 9b09 ldr r3, [sp, #36] ; 0x24 - 800f8ba: 6063 str r3, [r4, #4] - 800f8bc: 9a09 ldr r2, [sp, #36] ; 0x24 - 800f8be: 9b20 ldr r3, [sp, #128] ; 0x80 - 800f8c0: 4413 add r3, r2 - 800f8c2: 9320 str r3, [sp, #128] ; 0x80 - 800f8c4: 9b1f ldr r3, [sp, #124] ; 0x7c - 800f8c6: 3301 adds r3, #1 - 800f8c8: 2b07 cmp r3, #7 - 800f8ca: 931f str r3, [sp, #124] ; 0x7c - 800f8cc: f300 80e5 bgt.w 800fa9a <_svfprintf_r+0x11da> - 800f8d0: 3408 adds r4, #8 - 800f8d2: 9b03 ldr r3, [sp, #12] - 800f8d4: 9a03 ldr r2, [sp, #12] - 800f8d6: eb09 0703 add.w r7, r9, r3 - 800f8da: 1bbb subs r3, r7, r6 - 800f8dc: 9f18 ldr r7, [sp, #96] ; 0x60 - 800f8de: 1bd7 subs r7, r2, r7 - 800f8e0: 429f cmp r7, r3 - 800f8e2: bfa8 it ge - 800f8e4: 461f movge r7, r3 - 800f8e6: 2f00 cmp r7, #0 - 800f8e8: dd0b ble.n 800f902 <_svfprintf_r+0x1042> - 800f8ea: 9b20 ldr r3, [sp, #128] ; 0x80 - 800f8ec: 443b add r3, r7 - 800f8ee: 9320 str r3, [sp, #128] ; 0x80 - 800f8f0: 9b1f ldr r3, [sp, #124] ; 0x7c - 800f8f2: 3301 adds r3, #1 - 800f8f4: 2b07 cmp r3, #7 - 800f8f6: e9c4 6700 strd r6, r7, [r4] - 800f8fa: 931f str r3, [sp, #124] ; 0x7c - 800f8fc: f300 80d7 bgt.w 800faae <_svfprintf_r+0x11ee> - 800f900: 3408 adds r4, #8 - 800f902: 9e18 ldr r6, [sp, #96] ; 0x60 - 800f904: 9b03 ldr r3, [sp, #12] - 800f906: 2f00 cmp r7, #0 - 800f908: eba3 0606 sub.w r6, r3, r6 - 800f90c: bfa8 it ge - 800f90e: 1bf6 subge r6, r6, r7 - 800f910: 2e00 cmp r6, #0 - 800f912: f77f ad45 ble.w 800f3a0 <_svfprintf_r+0xae0> - 800f916: 4f6b ldr r7, [pc, #428] ; (800fac4 <_svfprintf_r+0x1204>) - 800f918: f04f 0810 mov.w r8, #16 - 800f91c: e9dd 321f ldrd r3, r2, [sp, #124] ; 0x7c - 800f920: 2e10 cmp r6, #16 - 800f922: f103 0301 add.w r3, r3, #1 - 800f926: f104 0108 add.w r1, r4, #8 - 800f92a: 6027 str r7, [r4, #0] - 800f92c: f77f aec0 ble.w 800f6b0 <_svfprintf_r+0xdf0> - 800f930: 3210 adds r2, #16 - 800f932: 2b07 cmp r3, #7 - 800f934: f8c4 8004 str.w r8, [r4, #4] - 800f938: e9cd 321f strd r3, r2, [sp, #124] ; 0x7c - 800f93c: dd08 ble.n 800f950 <_svfprintf_r+0x1090> - 800f93e: aa1e add r2, sp, #120 ; 0x78 - 800f940: 4659 mov r1, fp - 800f942: 9802 ldr r0, [sp, #8] - 800f944: f001 fe5e bl 8011604 <__ssprint_r> - 800f948: 2800 cmp r0, #0 - 800f94a: f040 8167 bne.w 800fc1c <_svfprintf_r+0x135c> - 800f94e: a921 add r1, sp, #132 ; 0x84 - 800f950: 3e10 subs r6, #16 - 800f952: 460c mov r4, r1 - 800f954: e7e2 b.n 800f91c <_svfprintf_r+0x105c> - 800f956: aa1e add r2, sp, #120 ; 0x78 - 800f958: 4659 mov r1, fp - 800f95a: 9802 ldr r0, [sp, #8] - 800f95c: f001 fe52 bl 8011604 <__ssprint_r> - 800f960: 2800 cmp r0, #0 - 800f962: f040 815b bne.w 800fc1c <_svfprintf_r+0x135c> - 800f966: ac21 add r4, sp, #132 ; 0x84 - 800f968: e76c b.n 800f844 <_svfprintf_r+0xf84> - 800f96a: 2010 movs r0, #16 - 800f96c: 4403 add r3, r0 - 800f96e: 2a07 cmp r2, #7 - 800f970: 6060 str r0, [r4, #4] - 800f972: e9cd 231f strd r2, r3, [sp, #124] ; 0x7c - 800f976: dd08 ble.n 800f98a <_svfprintf_r+0x10ca> - 800f978: aa1e add r2, sp, #120 ; 0x78 - 800f97a: 4659 mov r1, fp - 800f97c: 9802 ldr r0, [sp, #8] - 800f97e: f001 fe41 bl 8011604 <__ssprint_r> - 800f982: 2800 cmp r0, #0 - 800f984: f040 814a bne.w 800fc1c <_svfprintf_r+0x135c> - 800f988: a921 add r1, sp, #132 ; 0x84 - 800f98a: f1a8 0810 sub.w r8, r8, #16 - 800f98e: 460c mov r4, r1 - 800f990: e761 b.n 800f856 <_svfprintf_r+0xf96> - 800f992: 460c mov r4, r1 - 800f994: e77b b.n 800f88e <_svfprintf_r+0xfce> - 800f996: 2f00 cmp r7, #0 - 800f998: d04e beq.n 800fa38 <_svfprintf_r+0x1178> - 800f99a: 3f01 subs r7, #1 - 800f99c: 9b12 ldr r3, [sp, #72] ; 0x48 - 800f99e: 6023 str r3, [r4, #0] - 800f9a0: 9b0e ldr r3, [sp, #56] ; 0x38 - 800f9a2: 6063 str r3, [r4, #4] - 800f9a4: 9a0e ldr r2, [sp, #56] ; 0x38 - 800f9a6: 9b20 ldr r3, [sp, #128] ; 0x80 - 800f9a8: 4413 add r3, r2 - 800f9aa: 9320 str r3, [sp, #128] ; 0x80 - 800f9ac: 9b1f ldr r3, [sp, #124] ; 0x7c - 800f9ae: 3301 adds r3, #1 - 800f9b0: 2b07 cmp r3, #7 - 800f9b2: 931f str r3, [sp, #124] ; 0x7c - 800f9b4: dc47 bgt.n 800fa46 <_svfprintf_r+0x1186> - 800f9b6: 3408 adds r4, #8 - 800f9b8: 9b03 ldr r3, [sp, #12] - 800f9ba: 444b add r3, r9 - 800f9bc: 1b9a subs r2, r3, r6 - 800f9be: 9b07 ldr r3, [sp, #28] - 800f9c0: 781b ldrb r3, [r3, #0] - 800f9c2: 4293 cmp r3, r2 - 800f9c4: bfa8 it ge - 800f9c6: 4613 movge r3, r2 - 800f9c8: 2b00 cmp r3, #0 - 800f9ca: 4698 mov r8, r3 - 800f9cc: dd0a ble.n 800f9e4 <_svfprintf_r+0x1124> - 800f9ce: e9c4 6300 strd r6, r3, [r4] - 800f9d2: 9b20 ldr r3, [sp, #128] ; 0x80 - 800f9d4: 4443 add r3, r8 - 800f9d6: 9320 str r3, [sp, #128] ; 0x80 - 800f9d8: 9b1f ldr r3, [sp, #124] ; 0x7c - 800f9da: 3301 adds r3, #1 - 800f9dc: 2b07 cmp r3, #7 - 800f9de: 931f str r3, [sp, #124] ; 0x7c - 800f9e0: dc3b bgt.n 800fa5a <_svfprintf_r+0x119a> - 800f9e2: 3408 adds r4, #8 - 800f9e4: 9b07 ldr r3, [sp, #28] - 800f9e6: 781b ldrb r3, [r3, #0] - 800f9e8: f1b8 0f00 cmp.w r8, #0 - 800f9ec: bfac ite ge - 800f9ee: eba3 0808 subge.w r8, r3, r8 - 800f9f2: 4698 movlt r8, r3 - 800f9f4: f1b8 0f00 cmp.w r8, #0 - 800f9f8: dd1a ble.n 800fa30 <_svfprintf_r+0x1170> - 800f9fa: e9dd 231f ldrd r2, r3, [sp, #124] ; 0x7c - 800f9fe: 4831 ldr r0, [pc, #196] ; (800fac4 <_svfprintf_r+0x1204>) - 800fa00: 6020 str r0, [r4, #0] - 800fa02: f1b8 0f10 cmp.w r8, #16 - 800fa06: f102 0201 add.w r2, r2, #1 - 800fa0a: f104 0108 add.w r1, r4, #8 - 800fa0e: dc2e bgt.n 800fa6e <_svfprintf_r+0x11ae> - 800fa10: 4443 add r3, r8 - 800fa12: 2a07 cmp r2, #7 - 800fa14: f8c4 8004 str.w r8, [r4, #4] - 800fa18: e9cd 231f strd r2, r3, [sp, #124] ; 0x7c - 800fa1c: dd3b ble.n 800fa96 <_svfprintf_r+0x11d6> - 800fa1e: aa1e add r2, sp, #120 ; 0x78 - 800fa20: 4659 mov r1, fp - 800fa22: 9802 ldr r0, [sp, #8] - 800fa24: f001 fdee bl 8011604 <__ssprint_r> - 800fa28: 2800 cmp r0, #0 - 800fa2a: f040 80f7 bne.w 800fc1c <_svfprintf_r+0x135c> - 800fa2e: ac21 add r4, sp, #132 ; 0x84 - 800fa30: 9b07 ldr r3, [sp, #28] - 800fa32: 781b ldrb r3, [r3, #0] - 800fa34: 441e add r6, r3 - 800fa36: e72d b.n 800f894 <_svfprintf_r+0xfd4> - 800fa38: 9b07 ldr r3, [sp, #28] - 800fa3a: 3b01 subs r3, #1 - 800fa3c: 9307 str r3, [sp, #28] - 800fa3e: 9b05 ldr r3, [sp, #20] - 800fa40: 3b01 subs r3, #1 - 800fa42: 9305 str r3, [sp, #20] - 800fa44: e7aa b.n 800f99c <_svfprintf_r+0x10dc> - 800fa46: aa1e add r2, sp, #120 ; 0x78 - 800fa48: 4659 mov r1, fp - 800fa4a: 9802 ldr r0, [sp, #8] - 800fa4c: f001 fdda bl 8011604 <__ssprint_r> - 800fa50: 2800 cmp r0, #0 - 800fa52: f040 80e3 bne.w 800fc1c <_svfprintf_r+0x135c> - 800fa56: ac21 add r4, sp, #132 ; 0x84 - 800fa58: e7ae b.n 800f9b8 <_svfprintf_r+0x10f8> - 800fa5a: aa1e add r2, sp, #120 ; 0x78 - 800fa5c: 4659 mov r1, fp - 800fa5e: 9802 ldr r0, [sp, #8] - 800fa60: f001 fdd0 bl 8011604 <__ssprint_r> - 800fa64: 2800 cmp r0, #0 - 800fa66: f040 80d9 bne.w 800fc1c <_svfprintf_r+0x135c> - 800fa6a: ac21 add r4, sp, #132 ; 0x84 - 800fa6c: e7ba b.n 800f9e4 <_svfprintf_r+0x1124> - 800fa6e: 2010 movs r0, #16 - 800fa70: 4403 add r3, r0 - 800fa72: 2a07 cmp r2, #7 - 800fa74: 6060 str r0, [r4, #4] - 800fa76: e9cd 231f strd r2, r3, [sp, #124] ; 0x7c - 800fa7a: dd08 ble.n 800fa8e <_svfprintf_r+0x11ce> - 800fa7c: aa1e add r2, sp, #120 ; 0x78 - 800fa7e: 4659 mov r1, fp - 800fa80: 9802 ldr r0, [sp, #8] - 800fa82: f001 fdbf bl 8011604 <__ssprint_r> - 800fa86: 2800 cmp r0, #0 - 800fa88: f040 80c8 bne.w 800fc1c <_svfprintf_r+0x135c> - 800fa8c: a921 add r1, sp, #132 ; 0x84 - 800fa8e: f1a8 0810 sub.w r8, r8, #16 - 800fa92: 460c mov r4, r1 - 800fa94: e7b1 b.n 800f9fa <_svfprintf_r+0x113a> - 800fa96: 460c mov r4, r1 - 800fa98: e7ca b.n 800fa30 <_svfprintf_r+0x1170> - 800fa9a: aa1e add r2, sp, #120 ; 0x78 - 800fa9c: 4659 mov r1, fp - 800fa9e: 9802 ldr r0, [sp, #8] - 800faa0: f001 fdb0 bl 8011604 <__ssprint_r> - 800faa4: 2800 cmp r0, #0 - 800faa6: f040 80b9 bne.w 800fc1c <_svfprintf_r+0x135c> - 800faaa: ac21 add r4, sp, #132 ; 0x84 - 800faac: e711 b.n 800f8d2 <_svfprintf_r+0x1012> - 800faae: aa1e add r2, sp, #120 ; 0x78 - 800fab0: 4659 mov r1, fp - 800fab2: 9802 ldr r0, [sp, #8] - 800fab4: f001 fda6 bl 8011604 <__ssprint_r> - 800fab8: 2800 cmp r0, #0 - 800faba: f040 80af bne.w 800fc1c <_svfprintf_r+0x135c> - 800fabe: ac21 add r4, sp, #132 ; 0x84 - 800fac0: e71f b.n 800f902 <_svfprintf_r+0x1042> - 800fac2: bf00 nop - 800fac4: 08012e74 .word 0x08012e74 - 800fac8: 9803 ldr r0, [sp, #12] - 800faca: 991f ldr r1, [sp, #124] ; 0x7c - 800facc: 2801 cmp r0, #1 - 800face: f103 0201 add.w r2, r3, #1 - 800fad2: f101 0101 add.w r1, r1, #1 - 800fad6: f104 0308 add.w r3, r4, #8 - 800fada: dc01 bgt.n 800fae0 <_svfprintf_r+0x1220> - 800fadc: 07e8 lsls r0, r5, #31 - 800fade: d571 bpl.n 800fbc4 <_svfprintf_r+0x1304> - 800fae0: 2001 movs r0, #1 - 800fae2: 2907 cmp r1, #7 - 800fae4: f8c4 9000 str.w r9, [r4] - 800fae8: 6060 str r0, [r4, #4] - 800faea: e9cd 121f strd r1, r2, [sp, #124] ; 0x7c - 800faee: dd08 ble.n 800fb02 <_svfprintf_r+0x1242> - 800faf0: aa1e add r2, sp, #120 ; 0x78 - 800faf2: 4659 mov r1, fp - 800faf4: 9802 ldr r0, [sp, #8] - 800faf6: f001 fd85 bl 8011604 <__ssprint_r> - 800fafa: 2800 cmp r0, #0 - 800fafc: f040 808e bne.w 800fc1c <_svfprintf_r+0x135c> - 800fb00: ab21 add r3, sp, #132 ; 0x84 - 800fb02: 9a0f ldr r2, [sp, #60] ; 0x3c - 800fb04: 601a str r2, [r3, #0] - 800fb06: 9a09 ldr r2, [sp, #36] ; 0x24 - 800fb08: 605a str r2, [r3, #4] - 800fb0a: 9909 ldr r1, [sp, #36] ; 0x24 - 800fb0c: 9a20 ldr r2, [sp, #128] ; 0x80 - 800fb0e: 440a add r2, r1 - 800fb10: 9220 str r2, [sp, #128] ; 0x80 - 800fb12: 9a1f ldr r2, [sp, #124] ; 0x7c - 800fb14: 3201 adds r2, #1 - 800fb16: 2a07 cmp r2, #7 - 800fb18: 921f str r2, [sp, #124] ; 0x7c - 800fb1a: dc25 bgt.n 800fb68 <_svfprintf_r+0x12a8> - 800fb1c: 3308 adds r3, #8 - 800fb1e: 9a03 ldr r2, [sp, #12] - 800fb20: eeb5 8b40 vcmp.f64 d8, #0.0 - 800fb24: eef1 fa10 vmrs APSR_nzcv, fpscr - 800fb28: f102 34ff add.w r4, r2, #4294967295 ; 0xffffffff - 800fb2c: d025 beq.n 800fb7a <_svfprintf_r+0x12ba> - 800fb2e: f109 0201 add.w r2, r9, #1 - 800fb32: 991f ldr r1, [sp, #124] ; 0x7c - 800fb34: 9803 ldr r0, [sp, #12] - 800fb36: e9c3 2400 strd r2, r4, [r3] - 800fb3a: 9a20 ldr r2, [sp, #128] ; 0x80 - 800fb3c: 3101 adds r1, #1 - 800fb3e: 3a01 subs r2, #1 - 800fb40: 4402 add r2, r0 - 800fb42: 2907 cmp r1, #7 - 800fb44: e9cd 121f strd r1, r2, [sp, #124] ; 0x7c - 800fb48: dd45 ble.n 800fbd6 <_svfprintf_r+0x1316> - 800fb4a: aa1e add r2, sp, #120 ; 0x78 - 800fb4c: 4659 mov r1, fp - 800fb4e: 9802 ldr r0, [sp, #8] - 800fb50: f001 fd58 bl 8011604 <__ssprint_r> - 800fb54: 2800 cmp r0, #0 - 800fb56: d161 bne.n 800fc1c <_svfprintf_r+0x135c> - 800fb58: ab21 add r3, sp, #132 ; 0x84 - 800fb5a: aa1a add r2, sp, #104 ; 0x68 - 800fb5c: 601a str r2, [r3, #0] - 800fb5e: 9a10 ldr r2, [sp, #64] ; 0x40 - 800fb60: 605a str r2, [r3, #4] - 800fb62: 9910 ldr r1, [sp, #64] ; 0x40 - 800fb64: 9a20 ldr r2, [sp, #128] ; 0x80 - 800fb66: e625 b.n 800f7b4 <_svfprintf_r+0xef4> - 800fb68: aa1e add r2, sp, #120 ; 0x78 - 800fb6a: 4659 mov r1, fp - 800fb6c: 9802 ldr r0, [sp, #8] - 800fb6e: f001 fd49 bl 8011604 <__ssprint_r> - 800fb72: 2800 cmp r0, #0 - 800fb74: d152 bne.n 800fc1c <_svfprintf_r+0x135c> - 800fb76: ab21 add r3, sp, #132 ; 0x84 - 800fb78: e7d1 b.n 800fb1e <_svfprintf_r+0x125e> - 800fb7a: 2c00 cmp r4, #0 - 800fb7c: dded ble.n 800fb5a <_svfprintf_r+0x129a> - 800fb7e: 4e3e ldr r6, [pc, #248] ; (800fc78 <_svfprintf_r+0x13b8>) - 800fb80: 2710 movs r7, #16 - 800fb82: e9dd 211f ldrd r2, r1, [sp, #124] ; 0x7c - 800fb86: 2c10 cmp r4, #16 - 800fb88: f102 0201 add.w r2, r2, #1 - 800fb8c: f103 0008 add.w r0, r3, #8 - 800fb90: 601e str r6, [r3, #0] - 800fb92: dc07 bgt.n 800fba4 <_svfprintf_r+0x12e4> - 800fb94: 605c str r4, [r3, #4] - 800fb96: 2a07 cmp r2, #7 - 800fb98: 440c add r4, r1 - 800fb9a: e9cd 241f strd r2, r4, [sp, #124] ; 0x7c - 800fb9e: dcd4 bgt.n 800fb4a <_svfprintf_r+0x128a> - 800fba0: 4603 mov r3, r0 - 800fba2: e7da b.n 800fb5a <_svfprintf_r+0x129a> - 800fba4: 3110 adds r1, #16 - 800fba6: 2a07 cmp r2, #7 - 800fba8: 605f str r7, [r3, #4] - 800fbaa: e9cd 211f strd r2, r1, [sp, #124] ; 0x7c - 800fbae: dd06 ble.n 800fbbe <_svfprintf_r+0x12fe> - 800fbb0: aa1e add r2, sp, #120 ; 0x78 - 800fbb2: 4659 mov r1, fp - 800fbb4: 9802 ldr r0, [sp, #8] - 800fbb6: f001 fd25 bl 8011604 <__ssprint_r> - 800fbba: bb78 cbnz r0, 800fc1c <_svfprintf_r+0x135c> - 800fbbc: a821 add r0, sp, #132 ; 0x84 - 800fbbe: 3c10 subs r4, #16 - 800fbc0: 4603 mov r3, r0 - 800fbc2: e7de b.n 800fb82 <_svfprintf_r+0x12c2> - 800fbc4: 2001 movs r0, #1 - 800fbc6: 2907 cmp r1, #7 - 800fbc8: f8c4 9000 str.w r9, [r4] - 800fbcc: 6060 str r0, [r4, #4] - 800fbce: e9cd 121f strd r1, r2, [sp, #124] ; 0x7c - 800fbd2: ddc2 ble.n 800fb5a <_svfprintf_r+0x129a> - 800fbd4: e7b9 b.n 800fb4a <_svfprintf_r+0x128a> - 800fbd6: 3308 adds r3, #8 - 800fbd8: e7bf b.n 800fb5a <_svfprintf_r+0x129a> - 800fbda: 460c mov r4, r1 - 800fbdc: f7ff bbe0 b.w 800f3a0 <_svfprintf_r+0xae0> - 800fbe0: 9b0b ldr r3, [sp, #44] ; 0x2c - 800fbe2: 9a0d ldr r2, [sp, #52] ; 0x34 - 800fbe4: 1a9d subs r5, r3, r2 - 800fbe6: 2d00 cmp r5, #0 - 800fbe8: f77f abdd ble.w 800f3a6 <_svfprintf_r+0xae6> - 800fbec: 4e23 ldr r6, [pc, #140] ; (800fc7c <_svfprintf_r+0x13bc>) - 800fbee: 2710 movs r7, #16 - 800fbf0: e9dd 321f ldrd r3, r2, [sp, #124] ; 0x7c - 800fbf4: 2d10 cmp r5, #16 - 800fbf6: f103 0301 add.w r3, r3, #1 - 800fbfa: 6026 str r6, [r4, #0] - 800fbfc: dc18 bgt.n 800fc30 <_svfprintf_r+0x1370> - 800fbfe: 6065 str r5, [r4, #4] - 800fc00: 2b07 cmp r3, #7 - 800fc02: 4415 add r5, r2 - 800fc04: e9cd 351f strd r3, r5, [sp, #124] ; 0x7c - 800fc08: f77f abcd ble.w 800f3a6 <_svfprintf_r+0xae6> - 800fc0c: aa1e add r2, sp, #120 ; 0x78 - 800fc0e: 4659 mov r1, fp - 800fc10: 9802 ldr r0, [sp, #8] - 800fc12: f001 fcf7 bl 8011604 <__ssprint_r> - 800fc16: 2800 cmp r0, #0 - 800fc18: f43f abc5 beq.w 800f3a6 <_svfprintf_r+0xae6> - 800fc1c: f1ba 0f00 cmp.w sl, #0 - 800fc20: f43f a8d2 beq.w 800edc8 <_svfprintf_r+0x508> - 800fc24: 4651 mov r1, sl - 800fc26: 9802 ldr r0, [sp, #8] - 800fc28: f001 f854 bl 8010cd4 <_free_r> - 800fc2c: f7ff b8cc b.w 800edc8 <_svfprintf_r+0x508> - 800fc30: 3210 adds r2, #16 - 800fc32: 2b07 cmp r3, #7 - 800fc34: 6067 str r7, [r4, #4] - 800fc36: e9cd 321f strd r3, r2, [sp, #124] ; 0x7c - 800fc3a: dc02 bgt.n 800fc42 <_svfprintf_r+0x1382> - 800fc3c: 3408 adds r4, #8 - 800fc3e: 3d10 subs r5, #16 - 800fc40: e7d6 b.n 800fbf0 <_svfprintf_r+0x1330> - 800fc42: aa1e add r2, sp, #120 ; 0x78 - 800fc44: 4659 mov r1, fp - 800fc46: 9802 ldr r0, [sp, #8] - 800fc48: f001 fcdc bl 8011604 <__ssprint_r> - 800fc4c: 2800 cmp r0, #0 - 800fc4e: d1e5 bne.n 800fc1c <_svfprintf_r+0x135c> - 800fc50: ac21 add r4, sp, #132 ; 0x84 - 800fc52: e7f4 b.n 800fc3e <_svfprintf_r+0x137e> - 800fc54: 4651 mov r1, sl - 800fc56: 9802 ldr r0, [sp, #8] - 800fc58: f001 f83c bl 8010cd4 <_free_r> - 800fc5c: f7ff bbbb b.w 800f3d6 <_svfprintf_r+0xb16> - 800fc60: 9b20 ldr r3, [sp, #128] ; 0x80 - 800fc62: 2b00 cmp r3, #0 - 800fc64: f43f a8b0 beq.w 800edc8 <_svfprintf_r+0x508> - 800fc68: aa1e add r2, sp, #120 ; 0x78 - 800fc6a: 4659 mov r1, fp - 800fc6c: 9802 ldr r0, [sp, #8] - 800fc6e: f001 fcc9 bl 8011604 <__ssprint_r> - 800fc72: f7ff b8a9 b.w 800edc8 <_svfprintf_r+0x508> - 800fc76: bf00 nop - 800fc78: 08012e74 .word 0x08012e74 - 800fc7c: 08012e64 .word 0x08012e64 - -0800fc80 : - 800fc80: 2808 cmp r0, #8 - 800fc82: b508 push {r3, lr} - 800fc84: d006 beq.n 800fc94 - 800fc86: f7fd fedf bl 800da48 <__errno> - 800fc8a: 2316 movs r3, #22 - 800fc8c: 6003 str r3, [r0, #0] - 800fc8e: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 800fc92: bd08 pop {r3, pc} - 800fc94: f44f 5080 mov.w r0, #4096 ; 0x1000 - 800fc98: e7fb b.n 800fc92 - ... - -0800fc9c : - 800fc9c: 4613 mov r3, r2 - 800fc9e: 460a mov r2, r1 - 800fca0: 4601 mov r1, r0 - 800fca2: 4802 ldr r0, [pc, #8] ; (800fcac ) - 800fca4: 6800 ldr r0, [r0, #0] - 800fca6: f000 b84d b.w 800fd44 <_write_r> - 800fcaa: bf00 nop - 800fcac: 20000014 .word 0x20000014 - -0800fcb0 <__swbuf_r>: - 800fcb0: b5f8 push {r3, r4, r5, r6, r7, lr} - 800fcb2: 460d mov r5, r1 - 800fcb4: 4614 mov r4, r2 - 800fcb6: 4606 mov r6, r0 - 800fcb8: b118 cbz r0, 800fcc2 <__swbuf_r+0x12> - 800fcba: 6b83 ldr r3, [r0, #56] ; 0x38 - 800fcbc: b90b cbnz r3, 800fcc2 <__swbuf_r+0x12> - 800fcbe: f000 ff79 bl 8010bb4 <__sinit> - 800fcc2: 69a3 ldr r3, [r4, #24] - 800fcc4: 60a3 str r3, [r4, #8] - 800fcc6: 89a3 ldrh r3, [r4, #12] - 800fcc8: 0719 lsls r1, r3, #28 - 800fcca: d528 bpl.n 800fd1e <__swbuf_r+0x6e> - 800fccc: 6923 ldr r3, [r4, #16] - 800fcce: b333 cbz r3, 800fd1e <__swbuf_r+0x6e> - 800fcd0: f9b4 300c ldrsh.w r3, [r4, #12] - 800fcd4: b2ed uxtb r5, r5 - 800fcd6: 049a lsls r2, r3, #18 - 800fcd8: 462f mov r7, r5 - 800fcda: d52a bpl.n 800fd32 <__swbuf_r+0x82> - 800fcdc: 6923 ldr r3, [r4, #16] - 800fcde: 6820 ldr r0, [r4, #0] - 800fce0: 1ac0 subs r0, r0, r3 - 800fce2: 6963 ldr r3, [r4, #20] - 800fce4: 4283 cmp r3, r0 - 800fce6: dc04 bgt.n 800fcf2 <__swbuf_r+0x42> - 800fce8: 4621 mov r1, r4 - 800fcea: 4630 mov r0, r6 - 800fcec: f000 fef6 bl 8010adc <_fflush_r> - 800fcf0: b9d8 cbnz r0, 800fd2a <__swbuf_r+0x7a> - 800fcf2: 68a3 ldr r3, [r4, #8] - 800fcf4: 3b01 subs r3, #1 - 800fcf6: 60a3 str r3, [r4, #8] - 800fcf8: 6823 ldr r3, [r4, #0] - 800fcfa: 1c5a adds r2, r3, #1 - 800fcfc: 6022 str r2, [r4, #0] - 800fcfe: 701d strb r5, [r3, #0] - 800fd00: 6963 ldr r3, [r4, #20] - 800fd02: 3001 adds r0, #1 - 800fd04: 4283 cmp r3, r0 - 800fd06: d004 beq.n 800fd12 <__swbuf_r+0x62> - 800fd08: 89a3 ldrh r3, [r4, #12] - 800fd0a: 07db lsls r3, r3, #31 - 800fd0c: d50f bpl.n 800fd2e <__swbuf_r+0x7e> - 800fd0e: 2d0a cmp r5, #10 - 800fd10: d10d bne.n 800fd2e <__swbuf_r+0x7e> - 800fd12: 4621 mov r1, r4 - 800fd14: 4630 mov r0, r6 - 800fd16: f000 fee1 bl 8010adc <_fflush_r> - 800fd1a: b140 cbz r0, 800fd2e <__swbuf_r+0x7e> - 800fd1c: e005 b.n 800fd2a <__swbuf_r+0x7a> - 800fd1e: 4621 mov r1, r4 - 800fd20: 4630 mov r0, r6 - 800fd22: f000 f821 bl 800fd68 <__swsetup_r> - 800fd26: 2800 cmp r0, #0 - 800fd28: d0d2 beq.n 800fcd0 <__swbuf_r+0x20> - 800fd2a: f04f 37ff mov.w r7, #4294967295 ; 0xffffffff - 800fd2e: 4638 mov r0, r7 - 800fd30: bdf8 pop {r3, r4, r5, r6, r7, pc} - 800fd32: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 800fd36: 81a3 strh r3, [r4, #12] - 800fd38: 6e63 ldr r3, [r4, #100] ; 0x64 - 800fd3a: f423 5300 bic.w r3, r3, #8192 ; 0x2000 - 800fd3e: 6663 str r3, [r4, #100] ; 0x64 - 800fd40: e7cc b.n 800fcdc <__swbuf_r+0x2c> - ... - -0800fd44 <_write_r>: - 800fd44: b538 push {r3, r4, r5, lr} - 800fd46: 4c07 ldr r4, [pc, #28] ; (800fd64 <_write_r+0x20>) - 800fd48: 4605 mov r5, r0 - 800fd4a: 4608 mov r0, r1 - 800fd4c: 4611 mov r1, r2 - 800fd4e: 2200 movs r2, #0 - 800fd50: 6022 str r2, [r4, #0] - 800fd52: 461a mov r2, r3 - 800fd54: f7fc fd01 bl 800c75a <_write> - 800fd58: 1c43 adds r3, r0, #1 - 800fd5a: d102 bne.n 800fd62 <_write_r+0x1e> - 800fd5c: 6823 ldr r3, [r4, #0] - 800fd5e: b103 cbz r3, 800fd62 <_write_r+0x1e> - 800fd60: 602b str r3, [r5, #0] - 800fd62: bd38 pop {r3, r4, r5, pc} - 800fd64: 20000b08 .word 0x20000b08 - -0800fd68 <__swsetup_r>: - 800fd68: b538 push {r3, r4, r5, lr} - 800fd6a: 4b2a ldr r3, [pc, #168] ; (800fe14 <__swsetup_r+0xac>) - 800fd6c: 4605 mov r5, r0 - 800fd6e: 6818 ldr r0, [r3, #0] - 800fd70: 460c mov r4, r1 - 800fd72: b118 cbz r0, 800fd7c <__swsetup_r+0x14> - 800fd74: 6b83 ldr r3, [r0, #56] ; 0x38 - 800fd76: b90b cbnz r3, 800fd7c <__swsetup_r+0x14> - 800fd78: f000 ff1c bl 8010bb4 <__sinit> - 800fd7c: f9b4 300c ldrsh.w r3, [r4, #12] - 800fd80: b29a uxth r2, r3 - 800fd82: 0711 lsls r1, r2, #28 - 800fd84: d422 bmi.n 800fdcc <__swsetup_r+0x64> - 800fd86: 06d0 lsls r0, r2, #27 - 800fd88: d407 bmi.n 800fd9a <__swsetup_r+0x32> - 800fd8a: 2209 movs r2, #9 - 800fd8c: 602a str r2, [r5, #0] - 800fd8e: f043 0340 orr.w r3, r3, #64 ; 0x40 - 800fd92: 81a3 strh r3, [r4, #12] - 800fd94: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 800fd98: e034 b.n 800fe04 <__swsetup_r+0x9c> - 800fd9a: 0751 lsls r1, r2, #29 - 800fd9c: d512 bpl.n 800fdc4 <__swsetup_r+0x5c> - 800fd9e: 6b21 ldr r1, [r4, #48] ; 0x30 - 800fda0: b141 cbz r1, 800fdb4 <__swsetup_r+0x4c> - 800fda2: f104 0340 add.w r3, r4, #64 ; 0x40 - 800fda6: 4299 cmp r1, r3 - 800fda8: d002 beq.n 800fdb0 <__swsetup_r+0x48> - 800fdaa: 4628 mov r0, r5 - 800fdac: f000 ff92 bl 8010cd4 <_free_r> - 800fdb0: 2300 movs r3, #0 - 800fdb2: 6323 str r3, [r4, #48] ; 0x30 - 800fdb4: 89a3 ldrh r3, [r4, #12] - 800fdb6: f023 0324 bic.w r3, r3, #36 ; 0x24 - 800fdba: 81a3 strh r3, [r4, #12] - 800fdbc: 2300 movs r3, #0 - 800fdbe: 6063 str r3, [r4, #4] - 800fdc0: 6923 ldr r3, [r4, #16] - 800fdc2: 6023 str r3, [r4, #0] - 800fdc4: 89a3 ldrh r3, [r4, #12] - 800fdc6: f043 0308 orr.w r3, r3, #8 - 800fdca: 81a3 strh r3, [r4, #12] - 800fdcc: 6923 ldr r3, [r4, #16] - 800fdce: b94b cbnz r3, 800fde4 <__swsetup_r+0x7c> - 800fdd0: 89a3 ldrh r3, [r4, #12] - 800fdd2: f403 7320 and.w r3, r3, #640 ; 0x280 - 800fdd6: f5b3 7f00 cmp.w r3, #512 ; 0x200 - 800fdda: d003 beq.n 800fde4 <__swsetup_r+0x7c> - 800fddc: 4621 mov r1, r4 - 800fdde: 4628 mov r0, r5 - 800fde0: f001 f88c bl 8010efc <__smakebuf_r> - 800fde4: 89a2 ldrh r2, [r4, #12] - 800fde6: f012 0301 ands.w r3, r2, #1 - 800fdea: d00c beq.n 800fe06 <__swsetup_r+0x9e> - 800fdec: 2300 movs r3, #0 - 800fdee: 60a3 str r3, [r4, #8] - 800fdf0: 6963 ldr r3, [r4, #20] - 800fdf2: 425b negs r3, r3 - 800fdf4: 61a3 str r3, [r4, #24] - 800fdf6: 6923 ldr r3, [r4, #16] - 800fdf8: b953 cbnz r3, 800fe10 <__swsetup_r+0xa8> - 800fdfa: f9b4 300c ldrsh.w r3, [r4, #12] - 800fdfe: f013 0080 ands.w r0, r3, #128 ; 0x80 - 800fe02: d1c4 bne.n 800fd8e <__swsetup_r+0x26> - 800fe04: bd38 pop {r3, r4, r5, pc} - 800fe06: 0792 lsls r2, r2, #30 - 800fe08: bf58 it pl - 800fe0a: 6963 ldrpl r3, [r4, #20] - 800fe0c: 60a3 str r3, [r4, #8] - 800fe0e: e7f2 b.n 800fdf6 <__swsetup_r+0x8e> - 800fe10: 2000 movs r0, #0 - 800fe12: e7f7 b.n 800fe04 <__swsetup_r+0x9c> - 800fe14: 20000014 .word 0x20000014 - -0800fe18 : - 800fe18: 4b02 ldr r3, [pc, #8] ; (800fe24 ) - 800fe1a: b113 cbz r3, 800fe22 - 800fe1c: 4802 ldr r0, [pc, #8] ; (800fe28 ) - 800fe1e: f000 b805 b.w 800fe2c - 800fe22: 4770 bx lr - 800fe24: 00000000 .word 0x00000000 - 800fe28: 08010c05 .word 0x08010c05 - -0800fe2c : - 800fe2c: 2300 movs r3, #0 - 800fe2e: 4601 mov r1, r0 - 800fe30: 461a mov r2, r3 - 800fe32: 4618 mov r0, r3 - 800fe34: f001 bc5e b.w 80116f4 <__register_exitproc> - -0800fe38 : - 800fe38: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800fe3c: 6903 ldr r3, [r0, #16] - 800fe3e: 690c ldr r4, [r1, #16] - 800fe40: 42a3 cmp r3, r4 - 800fe42: 4680 mov r8, r0 - 800fe44: f2c0 8082 blt.w 800ff4c - 800fe48: 3c01 subs r4, #1 - 800fe4a: f101 0714 add.w r7, r1, #20 - 800fe4e: ea4f 0c84 mov.w ip, r4, lsl #2 - 800fe52: f100 0614 add.w r6, r0, #20 - 800fe56: f857 5024 ldr.w r5, [r7, r4, lsl #2] - 800fe5a: f856 0024 ldr.w r0, [r6, r4, lsl #2] - 800fe5e: eb06 030c add.w r3, r6, ip - 800fe62: 3501 adds r5, #1 - 800fe64: eb07 090c add.w r9, r7, ip - 800fe68: 9301 str r3, [sp, #4] - 800fe6a: fbb0 f5f5 udiv r5, r0, r5 - 800fe6e: b395 cbz r5, 800fed6 - 800fe70: f04f 0a00 mov.w sl, #0 - 800fe74: 4638 mov r0, r7 - 800fe76: 46b6 mov lr, r6 - 800fe78: 46d3 mov fp, sl - 800fe7a: f850 2b04 ldr.w r2, [r0], #4 - 800fe7e: b293 uxth r3, r2 - 800fe80: fb05 a303 mla r3, r5, r3, sl - 800fe84: ea4f 4a13 mov.w sl, r3, lsr #16 - 800fe88: b29b uxth r3, r3 - 800fe8a: ebab 0303 sub.w r3, fp, r3 - 800fe8e: 0c12 lsrs r2, r2, #16 - 800fe90: f8de b000 ldr.w fp, [lr] - 800fe94: fb05 a202 mla r2, r5, r2, sl - 800fe98: fa13 f38b uxtah r3, r3, fp - 800fe9c: ea4f 4a12 mov.w sl, r2, lsr #16 - 800fea0: fa1f fb82 uxth.w fp, r2 - 800fea4: f8de 2000 ldr.w r2, [lr] - 800fea8: ebcb 4212 rsb r2, fp, r2, lsr #16 - 800feac: eb02 4223 add.w r2, r2, r3, asr #16 - 800feb0: b29b uxth r3, r3 - 800feb2: ea43 4302 orr.w r3, r3, r2, lsl #16 - 800feb6: 4581 cmp r9, r0 - 800feb8: ea4f 4b22 mov.w fp, r2, asr #16 - 800febc: f84e 3b04 str.w r3, [lr], #4 - 800fec0: d2db bcs.n 800fe7a - 800fec2: f856 300c ldr.w r3, [r6, ip] - 800fec6: b933 cbnz r3, 800fed6 - 800fec8: 9b01 ldr r3, [sp, #4] - 800feca: 3b04 subs r3, #4 - 800fecc: 429e cmp r6, r3 - 800fece: 461a mov r2, r3 - 800fed0: d330 bcc.n 800ff34 - 800fed2: f8c8 4010 str.w r4, [r8, #16] - 800fed6: 4640 mov r0, r8 - 800fed8: f001 fa3a bl 8011350 <__mcmp> - 800fedc: 2800 cmp r0, #0 - 800fede: db25 blt.n 800ff2c - 800fee0: 3501 adds r5, #1 - 800fee2: 4630 mov r0, r6 - 800fee4: f04f 0c00 mov.w ip, #0 - 800fee8: f857 2b04 ldr.w r2, [r7], #4 - 800feec: f8d0 e000 ldr.w lr, [r0] - 800fef0: b293 uxth r3, r2 - 800fef2: ebac 0303 sub.w r3, ip, r3 - 800fef6: 0c12 lsrs r2, r2, #16 - 800fef8: fa13 f38e uxtah r3, r3, lr - 800fefc: ebc2 421e rsb r2, r2, lr, lsr #16 - 800ff00: eb02 4223 add.w r2, r2, r3, asr #16 - 800ff04: b29b uxth r3, r3 - 800ff06: ea43 4302 orr.w r3, r3, r2, lsl #16 - 800ff0a: 45b9 cmp r9, r7 - 800ff0c: ea4f 4c22 mov.w ip, r2, asr #16 - 800ff10: f840 3b04 str.w r3, [r0], #4 - 800ff14: d2e8 bcs.n 800fee8 - 800ff16: f856 2024 ldr.w r2, [r6, r4, lsl #2] - 800ff1a: eb06 0384 add.w r3, r6, r4, lsl #2 - 800ff1e: b92a cbnz r2, 800ff2c - 800ff20: 3b04 subs r3, #4 - 800ff22: 429e cmp r6, r3 - 800ff24: 461a mov r2, r3 - 800ff26: d30b bcc.n 800ff40 - 800ff28: f8c8 4010 str.w r4, [r8, #16] - 800ff2c: 4628 mov r0, r5 - 800ff2e: b003 add sp, #12 - 800ff30: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800ff34: 6812 ldr r2, [r2, #0] - 800ff36: 3b04 subs r3, #4 - 800ff38: 2a00 cmp r2, #0 - 800ff3a: d1ca bne.n 800fed2 - 800ff3c: 3c01 subs r4, #1 - 800ff3e: e7c5 b.n 800fecc - 800ff40: 6812 ldr r2, [r2, #0] - 800ff42: 3b04 subs r3, #4 - 800ff44: 2a00 cmp r2, #0 - 800ff46: d1ef bne.n 800ff28 - 800ff48: 3c01 subs r4, #1 - 800ff4a: e7ea b.n 800ff22 - 800ff4c: 2000 movs r0, #0 - 800ff4e: e7ee b.n 800ff2e - -0800ff50 <_dtoa_r>: - 800ff50: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 800ff54: b095 sub sp, #84 ; 0x54 - 800ff56: ec57 6b10 vmov r6, r7, d0 - 800ff5a: 9108 str r1, [sp, #32] - 800ff5c: 6c01 ldr r1, [r0, #64] ; 0x40 - 800ff5e: 920a str r2, [sp, #40] ; 0x28 - 800ff60: 4604 mov r4, r0 - 800ff62: 9311 str r3, [sp, #68] ; 0x44 - 800ff64: 9d1e ldr r5, [sp, #120] ; 0x78 - 800ff66: e9cd 6704 strd r6, r7, [sp, #16] - 800ff6a: b141 cbz r1, 800ff7e <_dtoa_r+0x2e> - 800ff6c: 6c42 ldr r2, [r0, #68] ; 0x44 - 800ff6e: 604a str r2, [r1, #4] - 800ff70: 2301 movs r3, #1 - 800ff72: 4093 lsls r3, r2 - 800ff74: 608b str r3, [r1, #8] - 800ff76: f001 f826 bl 8010fc6 <_Bfree> - 800ff7a: 2300 movs r3, #0 - 800ff7c: 6423 str r3, [r4, #64] ; 0x40 - 800ff7e: 1e3b subs r3, r7, #0 - 800ff80: bfbb ittet lt - 800ff82: f023 4300 biclt.w r3, r3, #2147483648 ; 0x80000000 - 800ff86: 9305 strlt r3, [sp, #20] - 800ff88: 2300 movge r3, #0 - 800ff8a: 2201 movlt r2, #1 - 800ff8c: bfac ite ge - 800ff8e: 602b strge r3, [r5, #0] - 800ff90: 602a strlt r2, [r5, #0] - 800ff92: 4ba9 ldr r3, [pc, #676] ; (8010238 <_dtoa_r+0x2e8>) - 800ff94: 9d05 ldr r5, [sp, #20] - 800ff96: 43ab bics r3, r5 - 800ff98: d11b bne.n 800ffd2 <_dtoa_r+0x82> - 800ff9a: 9a11 ldr r2, [sp, #68] ; 0x44 - 800ff9c: f242 730f movw r3, #9999 ; 0x270f - 800ffa0: 6013 str r3, [r2, #0] - 800ffa2: 9b04 ldr r3, [sp, #16] - 800ffa4: b923 cbnz r3, 800ffb0 <_dtoa_r+0x60> - 800ffa6: f3c5 0513 ubfx r5, r5, #0, #20 - 800ffaa: 2d00 cmp r5, #0 - 800ffac: f000 84d9 beq.w 8010962 <_dtoa_r+0xa12> - 800ffb0: 9b1f ldr r3, [sp, #124] ; 0x7c - 800ffb2: b90b cbnz r3, 800ffb8 <_dtoa_r+0x68> - 800ffb4: 4ba1 ldr r3, [pc, #644] ; (801023c <_dtoa_r+0x2ec>) - 800ffb6: e020 b.n 800fffa <_dtoa_r+0xaa> - 800ffb8: 4ba0 ldr r3, [pc, #640] ; (801023c <_dtoa_r+0x2ec>) - 800ffba: 9302 str r3, [sp, #8] - 800ffbc: 3303 adds r3, #3 - 800ffbe: 9a1f ldr r2, [sp, #124] ; 0x7c - 800ffc0: 6013 str r3, [r2, #0] - 800ffc2: 9802 ldr r0, [sp, #8] - 800ffc4: b015 add sp, #84 ; 0x54 - 800ffc6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 800ffca: 4b9d ldr r3, [pc, #628] ; (8010240 <_dtoa_r+0x2f0>) - 800ffcc: 9302 str r3, [sp, #8] - 800ffce: 3308 adds r3, #8 - 800ffd0: e7f5 b.n 800ffbe <_dtoa_r+0x6e> - 800ffd2: ed9d 7b04 vldr d7, [sp, #16] - 800ffd6: eeb5 7b40 vcmp.f64 d7, #0.0 - 800ffda: eef1 fa10 vmrs APSR_nzcv, fpscr - 800ffde: ed8d 7b02 vstr d7, [sp, #8] - 800ffe2: d10c bne.n 800fffe <_dtoa_r+0xae> - 800ffe4: 9a11 ldr r2, [sp, #68] ; 0x44 - 800ffe6: 2301 movs r3, #1 - 800ffe8: 6013 str r3, [r2, #0] - 800ffea: 9b1f ldr r3, [sp, #124] ; 0x7c - 800ffec: 2b00 cmp r3, #0 - 800ffee: f000 84b5 beq.w 801095c <_dtoa_r+0xa0c> - 800fff2: 4b94 ldr r3, [pc, #592] ; (8010244 <_dtoa_r+0x2f4>) - 800fff4: 9a1f ldr r2, [sp, #124] ; 0x7c - 800fff6: 6013 str r3, [r2, #0] - 800fff8: 3b01 subs r3, #1 - 800fffa: 9302 str r3, [sp, #8] - 800fffc: e7e1 b.n 800ffc2 <_dtoa_r+0x72> - 800fffe: a913 add r1, sp, #76 ; 0x4c - 8010000: aa12 add r2, sp, #72 ; 0x48 - 8010002: ed9d 0b02 vldr d0, [sp, #8] - 8010006: 4620 mov r0, r4 - 8010008: f001 fa19 bl 801143e <__d2b> - 801000c: f3c5 560a ubfx r6, r5, #20, #11 - 8010010: 9001 str r0, [sp, #4] - 8010012: 9912 ldr r1, [sp, #72] ; 0x48 - 8010014: 2e00 cmp r6, #0 - 8010016: d046 beq.n 80100a6 <_dtoa_r+0x156> - 8010018: 9803 ldr r0, [sp, #12] - 801001a: f3c0 0013 ubfx r0, r0, #0, #20 - 801001e: e9dd 2302 ldrd r2, r3, [sp, #8] - 8010022: f040 537f orr.w r3, r0, #1069547520 ; 0x3fc00000 - 8010026: f443 1340 orr.w r3, r3, #3145728 ; 0x300000 - 801002a: f2a6 3aff subw sl, r6, #1023 ; 0x3ff - 801002e: 2700 movs r7, #0 - 8010030: ee07 aa90 vmov s15, sl - 8010034: ec43 2b16 vmov d6, r2, r3 - 8010038: eeb8 5be7 vcvt.f64.s32 d5, s15 - 801003c: ed9f 4b78 vldr d4, [pc, #480] ; 8010220 <_dtoa_r+0x2d0> - 8010040: eeb7 7b08 vmov.f64 d7, #120 ; 0x3fc00000 1.5 - 8010044: ee36 7b47 vsub.f64 d7, d6, d7 - 8010048: ed9f 6b77 vldr d6, [pc, #476] ; 8010228 <_dtoa_r+0x2d8> - 801004c: eea7 6b04 vfma.f64 d6, d7, d4 - 8010050: eeb0 7b46 vmov.f64 d7, d6 - 8010054: ed9f 6b76 vldr d6, [pc, #472] ; 8010230 <_dtoa_r+0x2e0> - 8010058: eea5 7b06 vfma.f64 d7, d5, d6 - 801005c: eefd 6bc7 vcvt.s32.f64 s13, d7 - 8010060: eeb5 7bc0 vcmpe.f64 d7, #0.0 - 8010064: eef1 fa10 vmrs APSR_nzcv, fpscr - 8010068: ee16 ba90 vmov fp, s13 - 801006c: d508 bpl.n 8010080 <_dtoa_r+0x130> - 801006e: eeb8 6be6 vcvt.f64.s32 d6, s13 - 8010072: eeb4 6b47 vcmp.f64 d6, d7 - 8010076: eef1 fa10 vmrs APSR_nzcv, fpscr - 801007a: bf18 it ne - 801007c: f10b 3bff addne.w fp, fp, #4294967295 ; 0xffffffff - 8010080: f1bb 0f16 cmp.w fp, #22 - 8010084: d834 bhi.n 80100f0 <_dtoa_r+0x1a0> - 8010086: 4b70 ldr r3, [pc, #448] ; (8010248 <_dtoa_r+0x2f8>) - 8010088: eb03 03cb add.w r3, r3, fp, lsl #3 - 801008c: ed93 7b00 vldr d7, [r3] - 8010090: ed9d 6b04 vldr d6, [sp, #16] - 8010094: eeb4 7bc6 vcmpe.f64 d7, d6 - 8010098: eef1 fa10 vmrs APSR_nzcv, fpscr - 801009c: dd01 ble.n 80100a2 <_dtoa_r+0x152> - 801009e: f10b 3bff add.w fp, fp, #4294967295 ; 0xffffffff - 80100a2: 2300 movs r3, #0 - 80100a4: e025 b.n 80100f2 <_dtoa_r+0x1a2> - 80100a6: 9b13 ldr r3, [sp, #76] ; 0x4c - 80100a8: eb01 0a03 add.w sl, r1, r3 - 80100ac: f20a 4332 addw r3, sl, #1074 ; 0x432 - 80100b0: 2b20 cmp r3, #32 - 80100b2: dd17 ble.n 80100e4 <_dtoa_r+0x194> - 80100b4: f1c3 0340 rsb r3, r3, #64 ; 0x40 - 80100b8: 9a04 ldr r2, [sp, #16] - 80100ba: 409d lsls r5, r3 - 80100bc: f20a 4312 addw r3, sl, #1042 ; 0x412 - 80100c0: fa22 f303 lsr.w r3, r2, r3 - 80100c4: 432b orrs r3, r5 - 80100c6: ee07 3a90 vmov s15, r3 - 80100ca: eeb8 7b67 vcvt.f64.u32 d7, s15 - 80100ce: f10a 3aff add.w sl, sl, #4294967295 ; 0xffffffff - 80100d2: ed8d 7b02 vstr d7, [sp, #8] - 80100d6: 9803 ldr r0, [sp, #12] - 80100d8: e9dd 2302 ldrd r2, r3, [sp, #8] - 80100dc: 2701 movs r7, #1 - 80100de: f1a0 73f8 sub.w r3, r0, #32505856 ; 0x1f00000 - 80100e2: e7a5 b.n 8010030 <_dtoa_r+0xe0> - 80100e4: 9a04 ldr r2, [sp, #16] - 80100e6: f1c3 0320 rsb r3, r3, #32 - 80100ea: fa02 f303 lsl.w r3, r2, r3 - 80100ee: e7ea b.n 80100c6 <_dtoa_r+0x176> - 80100f0: 2301 movs r3, #1 - 80100f2: eba1 0a0a sub.w sl, r1, sl - 80100f6: 9310 str r3, [sp, #64] ; 0x40 - 80100f8: f1ba 0301 subs.w r3, sl, #1 - 80100fc: 9307 str r3, [sp, #28] - 80100fe: bf43 ittte mi - 8010100: 2300 movmi r3, #0 - 8010102: f1ca 0a01 rsbmi sl, sl, #1 - 8010106: 9307 strmi r3, [sp, #28] - 8010108: f04f 0a00 movpl.w sl, #0 - 801010c: f1bb 0f00 cmp.w fp, #0 - 8010110: db19 blt.n 8010146 <_dtoa_r+0x1f6> - 8010112: 9b07 ldr r3, [sp, #28] - 8010114: f8cd b02c str.w fp, [sp, #44] ; 0x2c - 8010118: 445b add r3, fp - 801011a: 9307 str r3, [sp, #28] - 801011c: f04f 0800 mov.w r8, #0 - 8010120: 9b08 ldr r3, [sp, #32] - 8010122: 2b09 cmp r3, #9 - 8010124: d863 bhi.n 80101ee <_dtoa_r+0x29e> - 8010126: 2b05 cmp r3, #5 - 8010128: bfc4 itt gt - 801012a: 3b04 subgt r3, #4 - 801012c: 9308 strgt r3, [sp, #32] - 801012e: 9b08 ldr r3, [sp, #32] - 8010130: f1a3 0302 sub.w r3, r3, #2 - 8010134: bfcc ite gt - 8010136: 2500 movgt r5, #0 - 8010138: 2501 movle r5, #1 - 801013a: 2b03 cmp r3, #3 - 801013c: d863 bhi.n 8010206 <_dtoa_r+0x2b6> - 801013e: e8df f003 tbb [pc, r3] - 8010142: 5452 .short 0x5452 - 8010144: 4609 .short 0x4609 - 8010146: 2300 movs r3, #0 - 8010148: ebaa 0a0b sub.w sl, sl, fp - 801014c: f1cb 0800 rsb r8, fp, #0 - 8010150: 930b str r3, [sp, #44] ; 0x2c - 8010152: e7e5 b.n 8010120 <_dtoa_r+0x1d0> - 8010154: 2301 movs r3, #1 - 8010156: 9309 str r3, [sp, #36] ; 0x24 - 8010158: 9b0a ldr r3, [sp, #40] ; 0x28 - 801015a: 2b00 cmp r3, #0 - 801015c: dd56 ble.n 801020c <_dtoa_r+0x2bc> - 801015e: 9306 str r3, [sp, #24] - 8010160: 4699 mov r9, r3 - 8010162: 2200 movs r2, #0 - 8010164: 6462 str r2, [r4, #68] ; 0x44 - 8010166: 2204 movs r2, #4 - 8010168: f102 0014 add.w r0, r2, #20 - 801016c: 4298 cmp r0, r3 - 801016e: 6c61 ldr r1, [r4, #68] ; 0x44 - 8010170: d951 bls.n 8010216 <_dtoa_r+0x2c6> - 8010172: 4620 mov r0, r4 - 8010174: f000 ff02 bl 8010f7c <_Balloc> - 8010178: f1b9 0f0e cmp.w r9, #14 - 801017c: 9002 str r0, [sp, #8] - 801017e: 6420 str r0, [r4, #64] ; 0x40 - 8010180: f200 80c1 bhi.w 8010306 <_dtoa_r+0x3b6> - 8010184: 2d00 cmp r5, #0 - 8010186: f000 80be beq.w 8010306 <_dtoa_r+0x3b6> - 801018a: ed9d 7b04 vldr d7, [sp, #16] - 801018e: f1bb 0f00 cmp.w fp, #0 - 8010192: ed8d 7b0e vstr d7, [sp, #56] ; 0x38 - 8010196: f340 80e5 ble.w 8010364 <_dtoa_r+0x414> - 801019a: 4a2b ldr r2, [pc, #172] ; (8010248 <_dtoa_r+0x2f8>) - 801019c: f00b 030f and.w r3, fp, #15 - 80101a0: eb02 03c3 add.w r3, r2, r3, lsl #3 - 80101a4: ed93 7b00 vldr d7, [r3] - 80101a8: ea4f 132b mov.w r3, fp, asr #4 - 80101ac: 06da lsls r2, r3, #27 - 80101ae: f140 80d7 bpl.w 8010360 <_dtoa_r+0x410> - 80101b2: 4a26 ldr r2, [pc, #152] ; (801024c <_dtoa_r+0x2fc>) - 80101b4: ed9d 5b0e vldr d5, [sp, #56] ; 0x38 - 80101b8: ed92 6b08 vldr d6, [r2, #32] - 80101bc: ee85 6b06 vdiv.f64 d6, d5, d6 - 80101c0: ed8d 6b04 vstr d6, [sp, #16] - 80101c4: f003 030f and.w r3, r3, #15 - 80101c8: 2203 movs r2, #3 - 80101ca: 4920 ldr r1, [pc, #128] ; (801024c <_dtoa_r+0x2fc>) - 80101cc: e049 b.n 8010262 <_dtoa_r+0x312> - 80101ce: 2301 movs r3, #1 - 80101d0: 9309 str r3, [sp, #36] ; 0x24 - 80101d2: 9b0a ldr r3, [sp, #40] ; 0x28 - 80101d4: 445b add r3, fp - 80101d6: f103 0901 add.w r9, r3, #1 - 80101da: 9306 str r3, [sp, #24] - 80101dc: 464b mov r3, r9 - 80101de: 2b01 cmp r3, #1 - 80101e0: bfb8 it lt - 80101e2: 2301 movlt r3, #1 - 80101e4: e7bd b.n 8010162 <_dtoa_r+0x212> - 80101e6: 2300 movs r3, #0 - 80101e8: e7b5 b.n 8010156 <_dtoa_r+0x206> - 80101ea: 2300 movs r3, #0 - 80101ec: e7f0 b.n 80101d0 <_dtoa_r+0x280> - 80101ee: 2501 movs r5, #1 - 80101f0: 2300 movs r3, #0 - 80101f2: e9cd 3508 strd r3, r5, [sp, #32] - 80101f6: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 80101fa: 9306 str r3, [sp, #24] - 80101fc: 4699 mov r9, r3 - 80101fe: 2200 movs r2, #0 - 8010200: 2312 movs r3, #18 - 8010202: 920a str r2, [sp, #40] ; 0x28 - 8010204: e7ad b.n 8010162 <_dtoa_r+0x212> - 8010206: 2301 movs r3, #1 - 8010208: 9309 str r3, [sp, #36] ; 0x24 - 801020a: e7f4 b.n 80101f6 <_dtoa_r+0x2a6> - 801020c: 2301 movs r3, #1 - 801020e: 9306 str r3, [sp, #24] - 8010210: 4699 mov r9, r3 - 8010212: 461a mov r2, r3 - 8010214: e7f5 b.n 8010202 <_dtoa_r+0x2b2> - 8010216: 3101 adds r1, #1 - 8010218: 6461 str r1, [r4, #68] ; 0x44 - 801021a: 0052 lsls r2, r2, #1 - 801021c: e7a4 b.n 8010168 <_dtoa_r+0x218> - 801021e: bf00 nop - 8010220: 636f4361 .word 0x636f4361 - 8010224: 3fd287a7 .word 0x3fd287a7 - 8010228: 8b60c8b3 .word 0x8b60c8b3 - 801022c: 3fc68a28 .word 0x3fc68a28 - 8010230: 509f79fb .word 0x509f79fb - 8010234: 3fd34413 .word 0x3fd34413 - 8010238: 7ff00000 .word 0x7ff00000 - 801023c: 08012e8d .word 0x08012e8d - 8010240: 08012e84 .word 0x08012e84 - 8010244: 08012e63 .word 0x08012e63 - 8010248: 08012ec0 .word 0x08012ec0 - 801024c: 08012e98 .word 0x08012e98 - 8010250: 07de lsls r6, r3, #31 - 8010252: d504 bpl.n 801025e <_dtoa_r+0x30e> - 8010254: ed91 6b00 vldr d6, [r1] - 8010258: 3201 adds r2, #1 - 801025a: ee27 7b06 vmul.f64 d7, d7, d6 - 801025e: 105b asrs r3, r3, #1 - 8010260: 3108 adds r1, #8 - 8010262: 2b00 cmp r3, #0 - 8010264: d1f4 bne.n 8010250 <_dtoa_r+0x300> - 8010266: ed9d 6b04 vldr d6, [sp, #16] - 801026a: ee86 7b07 vdiv.f64 d7, d6, d7 - 801026e: ed8d 7b04 vstr d7, [sp, #16] - 8010272: 9b10 ldr r3, [sp, #64] ; 0x40 - 8010274: 2b00 cmp r3, #0 - 8010276: f000 80a7 beq.w 80103c8 <_dtoa_r+0x478> - 801027a: eeb7 6b00 vmov.f64 d6, #112 ; 0x3f800000 1.0 - 801027e: ed9d 7b04 vldr d7, [sp, #16] - 8010282: eeb4 7bc6 vcmpe.f64 d7, d6 - 8010286: eef1 fa10 vmrs APSR_nzcv, fpscr - 801028a: f140 809d bpl.w 80103c8 <_dtoa_r+0x478> - 801028e: f1b9 0f00 cmp.w r9, #0 - 8010292: f000 8099 beq.w 80103c8 <_dtoa_r+0x478> - 8010296: 9b06 ldr r3, [sp, #24] - 8010298: 2b00 cmp r3, #0 - 801029a: dd30 ble.n 80102fe <_dtoa_r+0x3ae> - 801029c: eeb2 6b04 vmov.f64 d6, #36 ; 0x41200000 10.0 - 80102a0: ee27 7b06 vmul.f64 d7, d7, d6 - 80102a4: ed8d 7b04 vstr d7, [sp, #16] - 80102a8: 9d06 ldr r5, [sp, #24] - 80102aa: f10b 33ff add.w r3, fp, #4294967295 ; 0xffffffff - 80102ae: 3201 adds r2, #1 - 80102b0: ed9d 6b04 vldr d6, [sp, #16] - 80102b4: eeb1 5b0c vmov.f64 d5, #28 ; 0x40e00000 7.0 - 80102b8: ee07 2a90 vmov s15, r2 - 80102bc: eeb8 7be7 vcvt.f64.s32 d7, s15 - 80102c0: eea7 5b06 vfma.f64 d5, d7, d6 - 80102c4: ed8d 5b04 vstr d5, [sp, #16] - 80102c8: 9a05 ldr r2, [sp, #20] - 80102ca: e9dd 0104 ldrd r0, r1, [sp, #16] - 80102ce: f1a2 7150 sub.w r1, r2, #54525952 ; 0x3400000 - 80102d2: 2d00 cmp r5, #0 - 80102d4: d17b bne.n 80103ce <_dtoa_r+0x47e> - 80102d6: eeb1 7b04 vmov.f64 d7, #20 ; 0x40a00000 5.0 - 80102da: ee36 6b47 vsub.f64 d6, d6, d7 - 80102de: ec41 0b17 vmov d7, r0, r1 - 80102e2: eeb4 6bc7 vcmpe.f64 d6, d7 - 80102e6: eef1 fa10 vmrs APSR_nzcv, fpscr - 80102ea: f300 8253 bgt.w 8010794 <_dtoa_r+0x844> - 80102ee: eeb1 7b47 vneg.f64 d7, d7 - 80102f2: eeb4 6bc7 vcmpe.f64 d6, d7 - 80102f6: eef1 fa10 vmrs APSR_nzcv, fpscr - 80102fa: f100 8249 bmi.w 8010790 <_dtoa_r+0x840> - 80102fe: e9dd 230e ldrd r2, r3, [sp, #56] ; 0x38 - 8010302: e9cd 2304 strd r2, r3, [sp, #16] - 8010306: 9b13 ldr r3, [sp, #76] ; 0x4c - 8010308: 2b00 cmp r3, #0 - 801030a: f2c0 8119 blt.w 8010540 <_dtoa_r+0x5f0> - 801030e: f1bb 0f0e cmp.w fp, #14 - 8010312: f300 8115 bgt.w 8010540 <_dtoa_r+0x5f0> - 8010316: 4bc3 ldr r3, [pc, #780] ; (8010624 <_dtoa_r+0x6d4>) - 8010318: eb03 03cb add.w r3, r3, fp, lsl #3 - 801031c: ed93 6b00 vldr d6, [r3] - 8010320: 9b0a ldr r3, [sp, #40] ; 0x28 - 8010322: 2b00 cmp r3, #0 - 8010324: f280 80ba bge.w 801049c <_dtoa_r+0x54c> - 8010328: f1b9 0f00 cmp.w r9, #0 - 801032c: f300 80b6 bgt.w 801049c <_dtoa_r+0x54c> - 8010330: f040 822d bne.w 801078e <_dtoa_r+0x83e> - 8010334: eeb1 7b04 vmov.f64 d7, #20 ; 0x40a00000 5.0 - 8010338: ee26 6b07 vmul.f64 d6, d6, d7 - 801033c: ed9d 7b04 vldr d7, [sp, #16] - 8010340: eeb4 6bc7 vcmpe.f64 d6, d7 - 8010344: eef1 fa10 vmrs APSR_nzcv, fpscr - 8010348: 464d mov r5, r9 - 801034a: 464f mov r7, r9 - 801034c: f280 8204 bge.w 8010758 <_dtoa_r+0x808> - 8010350: 9b02 ldr r3, [sp, #8] - 8010352: 9a02 ldr r2, [sp, #8] - 8010354: 1c5e adds r6, r3, #1 - 8010356: 2331 movs r3, #49 ; 0x31 - 8010358: 7013 strb r3, [r2, #0] - 801035a: f10b 0b01 add.w fp, fp, #1 - 801035e: e1ff b.n 8010760 <_dtoa_r+0x810> - 8010360: 2202 movs r2, #2 - 8010362: e732 b.n 80101ca <_dtoa_r+0x27a> - 8010364: d02e beq.n 80103c4 <_dtoa_r+0x474> - 8010366: f1cb 0300 rsb r3, fp, #0 - 801036a: 4aae ldr r2, [pc, #696] ; (8010624 <_dtoa_r+0x6d4>) - 801036c: f003 010f and.w r1, r3, #15 - 8010370: eb02 02c1 add.w r2, r2, r1, lsl #3 - 8010374: ed92 7b00 vldr d7, [r2] - 8010378: ed9d 6b0e vldr d6, [sp, #56] ; 0x38 - 801037c: ee26 7b07 vmul.f64 d7, d6, d7 - 8010380: ed8d 7b0c vstr d7, [sp, #48] ; 0x30 - 8010384: e9dd 120c ldrd r1, r2, [sp, #48] ; 0x30 - 8010388: e9cd 1204 strd r1, r2, [sp, #16] - 801038c: 49a6 ldr r1, [pc, #664] ; (8010628 <_dtoa_r+0x6d8>) - 801038e: 111b asrs r3, r3, #4 - 8010390: 2000 movs r0, #0 - 8010392: 2202 movs r2, #2 - 8010394: b93b cbnz r3, 80103a6 <_dtoa_r+0x456> - 8010396: 2800 cmp r0, #0 - 8010398: f43f af6b beq.w 8010272 <_dtoa_r+0x322> - 801039c: e9dd 010c ldrd r0, r1, [sp, #48] ; 0x30 - 80103a0: e9cd 0104 strd r0, r1, [sp, #16] - 80103a4: e765 b.n 8010272 <_dtoa_r+0x322> - 80103a6: 07dd lsls r5, r3, #31 - 80103a8: d509 bpl.n 80103be <_dtoa_r+0x46e> - 80103aa: ed9d 6b0c vldr d6, [sp, #48] ; 0x30 - 80103ae: ed91 7b00 vldr d7, [r1] - 80103b2: ee26 7b07 vmul.f64 d7, d6, d7 - 80103b6: ed8d 7b0c vstr d7, [sp, #48] ; 0x30 - 80103ba: 3201 adds r2, #1 - 80103bc: 2001 movs r0, #1 - 80103be: 105b asrs r3, r3, #1 - 80103c0: 3108 adds r1, #8 - 80103c2: e7e7 b.n 8010394 <_dtoa_r+0x444> - 80103c4: 2202 movs r2, #2 - 80103c6: e754 b.n 8010272 <_dtoa_r+0x322> - 80103c8: 465b mov r3, fp - 80103ca: 464d mov r5, r9 - 80103cc: e770 b.n 80102b0 <_dtoa_r+0x360> - 80103ce: 4a95 ldr r2, [pc, #596] ; (8010624 <_dtoa_r+0x6d4>) - 80103d0: eb02 02c5 add.w r2, r2, r5, lsl #3 - 80103d4: ed12 4b02 vldr d4, [r2, #-8] - 80103d8: 9a09 ldr r2, [sp, #36] ; 0x24 - 80103da: ec41 0b17 vmov d7, r0, r1 - 80103de: b35a cbz r2, 8010438 <_dtoa_r+0x4e8> - 80103e0: eeb6 3b00 vmov.f64 d3, #96 ; 0x3f000000 0.5 - 80103e4: eeb7 2b00 vmov.f64 d2, #112 ; 0x3f800000 1.0 - 80103e8: 9e02 ldr r6, [sp, #8] - 80103ea: ee83 5b04 vdiv.f64 d5, d3, d4 - 80103ee: eeb2 3b04 vmov.f64 d3, #36 ; 0x41200000 10.0 - 80103f2: ee35 7b47 vsub.f64 d7, d5, d7 - 80103f6: eefd 4bc6 vcvt.s32.f64 s9, d6 - 80103fa: ee14 2a90 vmov r2, s9 - 80103fe: eeb8 5be4 vcvt.f64.s32 d5, s9 - 8010402: 3230 adds r2, #48 ; 0x30 - 8010404: ee36 6b45 vsub.f64 d6, d6, d5 - 8010408: eeb4 6bc7 vcmpe.f64 d6, d7 - 801040c: eef1 fa10 vmrs APSR_nzcv, fpscr - 8010410: f806 2b01 strb.w r2, [r6], #1 - 8010414: d43b bmi.n 801048e <_dtoa_r+0x53e> - 8010416: ee32 5b46 vsub.f64 d5, d2, d6 - 801041a: eeb4 5bc7 vcmpe.f64 d5, d7 - 801041e: eef1 fa10 vmrs APSR_nzcv, fpscr - 8010422: d472 bmi.n 801050a <_dtoa_r+0x5ba> - 8010424: 9a02 ldr r2, [sp, #8] - 8010426: 1ab2 subs r2, r6, r2 - 8010428: 4295 cmp r5, r2 - 801042a: f77f af68 ble.w 80102fe <_dtoa_r+0x3ae> - 801042e: ee27 7b03 vmul.f64 d7, d7, d3 - 8010432: ee26 6b03 vmul.f64 d6, d6, d3 - 8010436: e7de b.n 80103f6 <_dtoa_r+0x4a6> - 8010438: 9a02 ldr r2, [sp, #8] - 801043a: ee24 7b07 vmul.f64 d7, d4, d7 - 801043e: 1956 adds r6, r2, r5 - 8010440: 4611 mov r1, r2 - 8010442: eeb2 3b04 vmov.f64 d3, #36 ; 0x41200000 10.0 - 8010446: eefd 4bc6 vcvt.s32.f64 s9, d6 - 801044a: ee14 2a90 vmov r2, s9 - 801044e: 3230 adds r2, #48 ; 0x30 - 8010450: f801 2b01 strb.w r2, [r1], #1 - 8010454: 42b1 cmp r1, r6 - 8010456: eeb8 5be4 vcvt.f64.s32 d5, s9 - 801045a: ee36 6b45 vsub.f64 d6, d6, d5 - 801045e: d11a bne.n 8010496 <_dtoa_r+0x546> - 8010460: eeb6 5b00 vmov.f64 d5, #96 ; 0x3f000000 0.5 - 8010464: ee37 4b05 vadd.f64 d4, d7, d5 - 8010468: eeb4 6bc4 vcmpe.f64 d6, d4 - 801046c: eef1 fa10 vmrs APSR_nzcv, fpscr - 8010470: dc4b bgt.n 801050a <_dtoa_r+0x5ba> - 8010472: ee35 7b47 vsub.f64 d7, d5, d7 - 8010476: eeb4 6bc7 vcmpe.f64 d6, d7 - 801047a: eef1 fa10 vmrs APSR_nzcv, fpscr - 801047e: f57f af3e bpl.w 80102fe <_dtoa_r+0x3ae> - 8010482: f816 2c01 ldrb.w r2, [r6, #-1] - 8010486: 2a30 cmp r2, #48 ; 0x30 - 8010488: f106 31ff add.w r1, r6, #4294967295 ; 0xffffffff - 801048c: d001 beq.n 8010492 <_dtoa_r+0x542> - 801048e: 469b mov fp, r3 - 8010490: e02a b.n 80104e8 <_dtoa_r+0x598> - 8010492: 460e mov r6, r1 - 8010494: e7f5 b.n 8010482 <_dtoa_r+0x532> - 8010496: ee26 6b03 vmul.f64 d6, d6, d3 - 801049a: e7d4 b.n 8010446 <_dtoa_r+0x4f6> - 801049c: ed9d 7b04 vldr d7, [sp, #16] - 80104a0: eeb2 4b04 vmov.f64 d4, #36 ; 0x41200000 10.0 - 80104a4: 9e02 ldr r6, [sp, #8] - 80104a6: ee87 5b06 vdiv.f64 d5, d7, d6 - 80104aa: eebd 5bc5 vcvt.s32.f64 s10, d5 - 80104ae: ee15 3a10 vmov r3, s10 - 80104b2: 3330 adds r3, #48 ; 0x30 - 80104b4: f806 3b01 strb.w r3, [r6], #1 - 80104b8: 9b02 ldr r3, [sp, #8] - 80104ba: 1af3 subs r3, r6, r3 - 80104bc: 4599 cmp r9, r3 - 80104be: eeb8 3bc5 vcvt.f64.s32 d3, s10 - 80104c2: eea3 7b46 vfms.f64 d7, d3, d6 - 80104c6: d133 bne.n 8010530 <_dtoa_r+0x5e0> - 80104c8: ee37 7b07 vadd.f64 d7, d7, d7 - 80104cc: eeb4 7bc6 vcmpe.f64 d7, d6 - 80104d0: eef1 fa10 vmrs APSR_nzcv, fpscr - 80104d4: dc18 bgt.n 8010508 <_dtoa_r+0x5b8> - 80104d6: eeb4 7b46 vcmp.f64 d7, d6 - 80104da: eef1 fa10 vmrs APSR_nzcv, fpscr - 80104de: d103 bne.n 80104e8 <_dtoa_r+0x598> - 80104e0: ee15 3a10 vmov r3, s10 - 80104e4: 07db lsls r3, r3, #31 - 80104e6: d40f bmi.n 8010508 <_dtoa_r+0x5b8> - 80104e8: 9901 ldr r1, [sp, #4] - 80104ea: 4620 mov r0, r4 - 80104ec: f000 fd6b bl 8010fc6 <_Bfree> - 80104f0: 2300 movs r3, #0 - 80104f2: 9a11 ldr r2, [sp, #68] ; 0x44 - 80104f4: 7033 strb r3, [r6, #0] - 80104f6: f10b 0301 add.w r3, fp, #1 - 80104fa: 6013 str r3, [r2, #0] - 80104fc: 9b1f ldr r3, [sp, #124] ; 0x7c - 80104fe: 2b00 cmp r3, #0 - 8010500: f43f ad5f beq.w 800ffc2 <_dtoa_r+0x72> - 8010504: 601e str r6, [r3, #0] - 8010506: e55c b.n 800ffc2 <_dtoa_r+0x72> - 8010508: 465b mov r3, fp - 801050a: f816 1c01 ldrb.w r1, [r6, #-1] - 801050e: 2939 cmp r1, #57 ; 0x39 - 8010510: f106 32ff add.w r2, r6, #4294967295 ; 0xffffffff - 8010514: d106 bne.n 8010524 <_dtoa_r+0x5d4> - 8010516: 9902 ldr r1, [sp, #8] - 8010518: 4291 cmp r1, r2 - 801051a: d107 bne.n 801052c <_dtoa_r+0x5dc> - 801051c: 2230 movs r2, #48 ; 0x30 - 801051e: 700a strb r2, [r1, #0] - 8010520: 3301 adds r3, #1 - 8010522: 460a mov r2, r1 - 8010524: 7811 ldrb r1, [r2, #0] - 8010526: 3101 adds r1, #1 - 8010528: 7011 strb r1, [r2, #0] - 801052a: e7b0 b.n 801048e <_dtoa_r+0x53e> - 801052c: 4616 mov r6, r2 - 801052e: e7ec b.n 801050a <_dtoa_r+0x5ba> - 8010530: ee27 7b04 vmul.f64 d7, d7, d4 - 8010534: eeb5 7b40 vcmp.f64 d7, #0.0 - 8010538: eef1 fa10 vmrs APSR_nzcv, fpscr - 801053c: d1b3 bne.n 80104a6 <_dtoa_r+0x556> - 801053e: e7d3 b.n 80104e8 <_dtoa_r+0x598> - 8010540: 9a09 ldr r2, [sp, #36] ; 0x24 - 8010542: 2a00 cmp r2, #0 - 8010544: f000 808d beq.w 8010662 <_dtoa_r+0x712> - 8010548: 9a08 ldr r2, [sp, #32] - 801054a: 2a01 cmp r2, #1 - 801054c: dc72 bgt.n 8010634 <_dtoa_r+0x6e4> - 801054e: 2f00 cmp r7, #0 - 8010550: d06c beq.n 801062c <_dtoa_r+0x6dc> - 8010552: f203 4333 addw r3, r3, #1075 ; 0x433 - 8010556: 4645 mov r5, r8 - 8010558: 4656 mov r6, sl - 801055a: 9a07 ldr r2, [sp, #28] - 801055c: 2101 movs r1, #1 - 801055e: 441a add r2, r3 - 8010560: 4620 mov r0, r4 - 8010562: 449a add sl, r3 - 8010564: 9207 str r2, [sp, #28] - 8010566: f000 fdc0 bl 80110ea <__i2b> - 801056a: 4607 mov r7, r0 - 801056c: 2e00 cmp r6, #0 - 801056e: dd0b ble.n 8010588 <_dtoa_r+0x638> - 8010570: 9b07 ldr r3, [sp, #28] - 8010572: 2b00 cmp r3, #0 - 8010574: dd08 ble.n 8010588 <_dtoa_r+0x638> - 8010576: 42b3 cmp r3, r6 - 8010578: 9a07 ldr r2, [sp, #28] - 801057a: bfa8 it ge - 801057c: 4633 movge r3, r6 - 801057e: ebaa 0a03 sub.w sl, sl, r3 - 8010582: 1af6 subs r6, r6, r3 - 8010584: 1ad3 subs r3, r2, r3 - 8010586: 9307 str r3, [sp, #28] - 8010588: f1b8 0f00 cmp.w r8, #0 - 801058c: d01d beq.n 80105ca <_dtoa_r+0x67a> - 801058e: 9b09 ldr r3, [sp, #36] ; 0x24 - 8010590: 2b00 cmp r3, #0 - 8010592: d06a beq.n 801066a <_dtoa_r+0x71a> - 8010594: b18d cbz r5, 80105ba <_dtoa_r+0x66a> - 8010596: 4639 mov r1, r7 - 8010598: 462a mov r2, r5 - 801059a: 4620 mov r0, r4 - 801059c: f000 fe44 bl 8011228 <__pow5mult> - 80105a0: 9a01 ldr r2, [sp, #4] - 80105a2: 4601 mov r1, r0 - 80105a4: 4607 mov r7, r0 - 80105a6: 4620 mov r0, r4 - 80105a8: f000 fda8 bl 80110fc <__multiply> - 80105ac: 9901 ldr r1, [sp, #4] - 80105ae: 900c str r0, [sp, #48] ; 0x30 - 80105b0: 4620 mov r0, r4 - 80105b2: f000 fd08 bl 8010fc6 <_Bfree> - 80105b6: 9b0c ldr r3, [sp, #48] ; 0x30 - 80105b8: 9301 str r3, [sp, #4] - 80105ba: ebb8 0205 subs.w r2, r8, r5 - 80105be: d004 beq.n 80105ca <_dtoa_r+0x67a> - 80105c0: 9901 ldr r1, [sp, #4] - 80105c2: 4620 mov r0, r4 - 80105c4: f000 fe30 bl 8011228 <__pow5mult> - 80105c8: 9001 str r0, [sp, #4] - 80105ca: 2101 movs r1, #1 - 80105cc: 4620 mov r0, r4 - 80105ce: f000 fd8c bl 80110ea <__i2b> - 80105d2: 9b0b ldr r3, [sp, #44] ; 0x2c - 80105d4: 4605 mov r5, r0 - 80105d6: 2b00 cmp r3, #0 - 80105d8: f000 81ca beq.w 8010970 <_dtoa_r+0xa20> - 80105dc: 461a mov r2, r3 - 80105de: 4601 mov r1, r0 - 80105e0: 4620 mov r0, r4 - 80105e2: f000 fe21 bl 8011228 <__pow5mult> - 80105e6: 9b08 ldr r3, [sp, #32] - 80105e8: 2b01 cmp r3, #1 - 80105ea: 4605 mov r5, r0 - 80105ec: dc44 bgt.n 8010678 <_dtoa_r+0x728> - 80105ee: 9b04 ldr r3, [sp, #16] - 80105f0: 2b00 cmp r3, #0 - 80105f2: d13c bne.n 801066e <_dtoa_r+0x71e> - 80105f4: 9b05 ldr r3, [sp, #20] - 80105f6: f3c3 0313 ubfx r3, r3, #0, #20 - 80105fa: 2b00 cmp r3, #0 - 80105fc: d137 bne.n 801066e <_dtoa_r+0x71e> - 80105fe: 9b05 ldr r3, [sp, #20] - 8010600: f023 4300 bic.w r3, r3, #2147483648 ; 0x80000000 - 8010604: 0d1b lsrs r3, r3, #20 - 8010606: 051b lsls r3, r3, #20 - 8010608: 2b00 cmp r3, #0 - 801060a: d033 beq.n 8010674 <_dtoa_r+0x724> - 801060c: 9b07 ldr r3, [sp, #28] - 801060e: 3301 adds r3, #1 - 8010610: f10a 0a01 add.w sl, sl, #1 - 8010614: 9307 str r3, [sp, #28] - 8010616: f04f 0801 mov.w r8, #1 - 801061a: 9b0b ldr r3, [sp, #44] ; 0x2c - 801061c: bb73 cbnz r3, 801067c <_dtoa_r+0x72c> - 801061e: 2001 movs r0, #1 - 8010620: e034 b.n 801068c <_dtoa_r+0x73c> - 8010622: bf00 nop - 8010624: 08012ec0 .word 0x08012ec0 - 8010628: 08012e98 .word 0x08012e98 - 801062c: 9b12 ldr r3, [sp, #72] ; 0x48 - 801062e: f1c3 0336 rsb r3, r3, #54 ; 0x36 - 8010632: e790 b.n 8010556 <_dtoa_r+0x606> - 8010634: f109 35ff add.w r5, r9, #4294967295 ; 0xffffffff - 8010638: 45a8 cmp r8, r5 - 801063a: bfbf itttt lt - 801063c: 9b0b ldrlt r3, [sp, #44] ; 0x2c - 801063e: eba5 0808 sublt.w r8, r5, r8 - 8010642: 4443 addlt r3, r8 - 8010644: 930b strlt r3, [sp, #44] ; 0x2c - 8010646: bfb6 itet lt - 8010648: 46a8 movlt r8, r5 - 801064a: eba8 0505 subge.w r5, r8, r5 - 801064e: 2500 movlt r5, #0 - 8010650: f1b9 0f00 cmp.w r9, #0 - 8010654: bfb9 ittee lt - 8010656: ebaa 0609 sublt.w r6, sl, r9 - 801065a: 2300 movlt r3, #0 - 801065c: 4656 movge r6, sl - 801065e: 464b movge r3, r9 - 8010660: e77b b.n 801055a <_dtoa_r+0x60a> - 8010662: 4645 mov r5, r8 - 8010664: 4656 mov r6, sl - 8010666: 9f09 ldr r7, [sp, #36] ; 0x24 - 8010668: e780 b.n 801056c <_dtoa_r+0x61c> - 801066a: 4642 mov r2, r8 - 801066c: e7a8 b.n 80105c0 <_dtoa_r+0x670> - 801066e: f04f 0800 mov.w r8, #0 - 8010672: e7d2 b.n 801061a <_dtoa_r+0x6ca> - 8010674: 4698 mov r8, r3 - 8010676: e7d0 b.n 801061a <_dtoa_r+0x6ca> - 8010678: f04f 0800 mov.w r8, #0 - 801067c: 692b ldr r3, [r5, #16] - 801067e: eb05 0383 add.w r3, r5, r3, lsl #2 - 8010682: 6918 ldr r0, [r3, #16] - 8010684: f000 fce3 bl 801104e <__hi0bits> - 8010688: f1c0 0020 rsb r0, r0, #32 - 801068c: 9b07 ldr r3, [sp, #28] - 801068e: 4418 add r0, r3 - 8010690: f010 001f ands.w r0, r0, #31 - 8010694: d047 beq.n 8010726 <_dtoa_r+0x7d6> - 8010696: f1c0 0320 rsb r3, r0, #32 - 801069a: 2b04 cmp r3, #4 - 801069c: dd3b ble.n 8010716 <_dtoa_r+0x7c6> - 801069e: 9b07 ldr r3, [sp, #28] - 80106a0: f1c0 001c rsb r0, r0, #28 - 80106a4: 4482 add sl, r0 - 80106a6: 4406 add r6, r0 - 80106a8: 4403 add r3, r0 - 80106aa: 9307 str r3, [sp, #28] - 80106ac: f1ba 0f00 cmp.w sl, #0 - 80106b0: dd05 ble.n 80106be <_dtoa_r+0x76e> - 80106b2: 4652 mov r2, sl - 80106b4: 9901 ldr r1, [sp, #4] - 80106b6: 4620 mov r0, r4 - 80106b8: f000 fdf6 bl 80112a8 <__lshift> - 80106bc: 9001 str r0, [sp, #4] - 80106be: 9b07 ldr r3, [sp, #28] - 80106c0: 2b00 cmp r3, #0 - 80106c2: dd05 ble.n 80106d0 <_dtoa_r+0x780> - 80106c4: 4629 mov r1, r5 - 80106c6: 461a mov r2, r3 - 80106c8: 4620 mov r0, r4 - 80106ca: f000 fded bl 80112a8 <__lshift> - 80106ce: 4605 mov r5, r0 - 80106d0: 9b10 ldr r3, [sp, #64] ; 0x40 - 80106d2: b353 cbz r3, 801072a <_dtoa_r+0x7da> - 80106d4: 4629 mov r1, r5 - 80106d6: 9801 ldr r0, [sp, #4] - 80106d8: f000 fe3a bl 8011350 <__mcmp> - 80106dc: 2800 cmp r0, #0 - 80106de: da24 bge.n 801072a <_dtoa_r+0x7da> - 80106e0: 2300 movs r3, #0 - 80106e2: 220a movs r2, #10 - 80106e4: 9901 ldr r1, [sp, #4] - 80106e6: 4620 mov r0, r4 - 80106e8: f000 fc76 bl 8010fd8 <__multadd> - 80106ec: 9b09 ldr r3, [sp, #36] ; 0x24 - 80106ee: 9001 str r0, [sp, #4] - 80106f0: f10b 3bff add.w fp, fp, #4294967295 ; 0xffffffff - 80106f4: 2b00 cmp r3, #0 - 80106f6: f000 8142 beq.w 801097e <_dtoa_r+0xa2e> - 80106fa: 2300 movs r3, #0 - 80106fc: 4639 mov r1, r7 - 80106fe: 220a movs r2, #10 - 8010700: 4620 mov r0, r4 - 8010702: f000 fc69 bl 8010fd8 <__multadd> - 8010706: 9b06 ldr r3, [sp, #24] - 8010708: 2b00 cmp r3, #0 - 801070a: 4607 mov r7, r0 - 801070c: dc4b bgt.n 80107a6 <_dtoa_r+0x856> - 801070e: 9b08 ldr r3, [sp, #32] - 8010710: 2b02 cmp r3, #2 - 8010712: dd48 ble.n 80107a6 <_dtoa_r+0x856> - 8010714: e011 b.n 801073a <_dtoa_r+0x7ea> - 8010716: d0c9 beq.n 80106ac <_dtoa_r+0x75c> - 8010718: 9a07 ldr r2, [sp, #28] - 801071a: 331c adds r3, #28 - 801071c: 441a add r2, r3 - 801071e: 449a add sl, r3 - 8010720: 441e add r6, r3 - 8010722: 4613 mov r3, r2 - 8010724: e7c1 b.n 80106aa <_dtoa_r+0x75a> - 8010726: 4603 mov r3, r0 - 8010728: e7f6 b.n 8010718 <_dtoa_r+0x7c8> - 801072a: f1b9 0f00 cmp.w r9, #0 - 801072e: dc34 bgt.n 801079a <_dtoa_r+0x84a> - 8010730: 9b08 ldr r3, [sp, #32] - 8010732: 2b02 cmp r3, #2 - 8010734: dd31 ble.n 801079a <_dtoa_r+0x84a> - 8010736: f8cd 9018 str.w r9, [sp, #24] - 801073a: 9b06 ldr r3, [sp, #24] - 801073c: b963 cbnz r3, 8010758 <_dtoa_r+0x808> - 801073e: 4629 mov r1, r5 - 8010740: 2205 movs r2, #5 - 8010742: 4620 mov r0, r4 - 8010744: f000 fc48 bl 8010fd8 <__multadd> - 8010748: 4601 mov r1, r0 - 801074a: 4605 mov r5, r0 - 801074c: 9801 ldr r0, [sp, #4] - 801074e: f000 fdff bl 8011350 <__mcmp> - 8010752: 2800 cmp r0, #0 - 8010754: f73f adfc bgt.w 8010350 <_dtoa_r+0x400> - 8010758: 9b0a ldr r3, [sp, #40] ; 0x28 - 801075a: 9e02 ldr r6, [sp, #8] - 801075c: ea6f 0b03 mvn.w fp, r3 - 8010760: f04f 0900 mov.w r9, #0 - 8010764: 4629 mov r1, r5 - 8010766: 4620 mov r0, r4 - 8010768: f000 fc2d bl 8010fc6 <_Bfree> - 801076c: 2f00 cmp r7, #0 - 801076e: f43f aebb beq.w 80104e8 <_dtoa_r+0x598> - 8010772: f1b9 0f00 cmp.w r9, #0 - 8010776: d005 beq.n 8010784 <_dtoa_r+0x834> - 8010778: 45b9 cmp r9, r7 - 801077a: d003 beq.n 8010784 <_dtoa_r+0x834> - 801077c: 4649 mov r1, r9 - 801077e: 4620 mov r0, r4 - 8010780: f000 fc21 bl 8010fc6 <_Bfree> - 8010784: 4639 mov r1, r7 - 8010786: 4620 mov r0, r4 - 8010788: f000 fc1d bl 8010fc6 <_Bfree> - 801078c: e6ac b.n 80104e8 <_dtoa_r+0x598> - 801078e: 2500 movs r5, #0 - 8010790: 462f mov r7, r5 - 8010792: e7e1 b.n 8010758 <_dtoa_r+0x808> - 8010794: 469b mov fp, r3 - 8010796: 462f mov r7, r5 - 8010798: e5da b.n 8010350 <_dtoa_r+0x400> - 801079a: 9b09 ldr r3, [sp, #36] ; 0x24 - 801079c: f8cd 9018 str.w r9, [sp, #24] - 80107a0: 2b00 cmp r3, #0 - 80107a2: f000 80f3 beq.w 801098c <_dtoa_r+0xa3c> - 80107a6: 2e00 cmp r6, #0 - 80107a8: dd05 ble.n 80107b6 <_dtoa_r+0x866> - 80107aa: 4639 mov r1, r7 - 80107ac: 4632 mov r2, r6 - 80107ae: 4620 mov r0, r4 - 80107b0: f000 fd7a bl 80112a8 <__lshift> - 80107b4: 4607 mov r7, r0 - 80107b6: f1b8 0f00 cmp.w r8, #0 - 80107ba: d04c beq.n 8010856 <_dtoa_r+0x906> - 80107bc: 6879 ldr r1, [r7, #4] - 80107be: 4620 mov r0, r4 - 80107c0: f000 fbdc bl 8010f7c <_Balloc> - 80107c4: 693a ldr r2, [r7, #16] - 80107c6: 3202 adds r2, #2 - 80107c8: 4606 mov r6, r0 - 80107ca: 0092 lsls r2, r2, #2 - 80107cc: f107 010c add.w r1, r7, #12 - 80107d0: 300c adds r0, #12 - 80107d2: f7fd fdd0 bl 800e376 - 80107d6: 2201 movs r2, #1 - 80107d8: 4631 mov r1, r6 - 80107da: 4620 mov r0, r4 - 80107dc: f000 fd64 bl 80112a8 <__lshift> - 80107e0: 9b04 ldr r3, [sp, #16] - 80107e2: f8dd a008 ldr.w sl, [sp, #8] - 80107e6: f003 0301 and.w r3, r3, #1 - 80107ea: 46b9 mov r9, r7 - 80107ec: 9307 str r3, [sp, #28] - 80107ee: 4607 mov r7, r0 - 80107f0: 4629 mov r1, r5 - 80107f2: 9801 ldr r0, [sp, #4] - 80107f4: f7ff fb20 bl 800fe38 - 80107f8: 4649 mov r1, r9 - 80107fa: 4606 mov r6, r0 - 80107fc: f100 0830 add.w r8, r0, #48 ; 0x30 - 8010800: 9801 ldr r0, [sp, #4] - 8010802: f000 fda5 bl 8011350 <__mcmp> - 8010806: 463a mov r2, r7 - 8010808: 9004 str r0, [sp, #16] - 801080a: 4629 mov r1, r5 - 801080c: 4620 mov r0, r4 - 801080e: f000 fdb9 bl 8011384 <__mdiff> - 8010812: 68c3 ldr r3, [r0, #12] - 8010814: 4602 mov r2, r0 - 8010816: bb03 cbnz r3, 801085a <_dtoa_r+0x90a> - 8010818: 4601 mov r1, r0 - 801081a: 9009 str r0, [sp, #36] ; 0x24 - 801081c: 9801 ldr r0, [sp, #4] - 801081e: f000 fd97 bl 8011350 <__mcmp> - 8010822: 9a09 ldr r2, [sp, #36] ; 0x24 - 8010824: 4603 mov r3, r0 - 8010826: 4611 mov r1, r2 - 8010828: 4620 mov r0, r4 - 801082a: 9309 str r3, [sp, #36] ; 0x24 - 801082c: f000 fbcb bl 8010fc6 <_Bfree> - 8010830: 9b09 ldr r3, [sp, #36] ; 0x24 - 8010832: b9a3 cbnz r3, 801085e <_dtoa_r+0x90e> - 8010834: 9a08 ldr r2, [sp, #32] - 8010836: b992 cbnz r2, 801085e <_dtoa_r+0x90e> - 8010838: 9a07 ldr r2, [sp, #28] - 801083a: b982 cbnz r2, 801085e <_dtoa_r+0x90e> - 801083c: f1b8 0f39 cmp.w r8, #57 ; 0x39 - 8010840: d029 beq.n 8010896 <_dtoa_r+0x946> - 8010842: 9b04 ldr r3, [sp, #16] - 8010844: 2b00 cmp r3, #0 - 8010846: dd01 ble.n 801084c <_dtoa_r+0x8fc> - 8010848: f106 0831 add.w r8, r6, #49 ; 0x31 - 801084c: f10a 0601 add.w r6, sl, #1 - 8010850: f88a 8000 strb.w r8, [sl] - 8010854: e786 b.n 8010764 <_dtoa_r+0x814> - 8010856: 4638 mov r0, r7 - 8010858: e7c2 b.n 80107e0 <_dtoa_r+0x890> - 801085a: 2301 movs r3, #1 - 801085c: e7e3 b.n 8010826 <_dtoa_r+0x8d6> - 801085e: 9a04 ldr r2, [sp, #16] - 8010860: 2a00 cmp r2, #0 - 8010862: db04 blt.n 801086e <_dtoa_r+0x91e> - 8010864: d124 bne.n 80108b0 <_dtoa_r+0x960> - 8010866: 9a08 ldr r2, [sp, #32] - 8010868: bb12 cbnz r2, 80108b0 <_dtoa_r+0x960> - 801086a: 9a07 ldr r2, [sp, #28] - 801086c: bb02 cbnz r2, 80108b0 <_dtoa_r+0x960> - 801086e: 2b00 cmp r3, #0 - 8010870: ddec ble.n 801084c <_dtoa_r+0x8fc> - 8010872: 2201 movs r2, #1 - 8010874: 9901 ldr r1, [sp, #4] - 8010876: 4620 mov r0, r4 - 8010878: f000 fd16 bl 80112a8 <__lshift> - 801087c: 4629 mov r1, r5 - 801087e: 9001 str r0, [sp, #4] - 8010880: f000 fd66 bl 8011350 <__mcmp> - 8010884: 2800 cmp r0, #0 - 8010886: dc03 bgt.n 8010890 <_dtoa_r+0x940> - 8010888: d1e0 bne.n 801084c <_dtoa_r+0x8fc> - 801088a: f018 0f01 tst.w r8, #1 - 801088e: d0dd beq.n 801084c <_dtoa_r+0x8fc> - 8010890: f1b8 0f39 cmp.w r8, #57 ; 0x39 - 8010894: d1d8 bne.n 8010848 <_dtoa_r+0x8f8> - 8010896: 2339 movs r3, #57 ; 0x39 - 8010898: f10a 0601 add.w r6, sl, #1 - 801089c: f88a 3000 strb.w r3, [sl] - 80108a0: f816 3c01 ldrb.w r3, [r6, #-1] - 80108a4: 2b39 cmp r3, #57 ; 0x39 - 80108a6: f106 32ff add.w r2, r6, #4294967295 ; 0xffffffff - 80108aa: d04c beq.n 8010946 <_dtoa_r+0x9f6> - 80108ac: 3301 adds r3, #1 - 80108ae: e051 b.n 8010954 <_dtoa_r+0xa04> - 80108b0: 2b00 cmp r3, #0 - 80108b2: f10a 0601 add.w r6, sl, #1 - 80108b6: dd05 ble.n 80108c4 <_dtoa_r+0x974> - 80108b8: f1b8 0f39 cmp.w r8, #57 ; 0x39 - 80108bc: d0eb beq.n 8010896 <_dtoa_r+0x946> - 80108be: f108 0801 add.w r8, r8, #1 - 80108c2: e7c5 b.n 8010850 <_dtoa_r+0x900> - 80108c4: 9b02 ldr r3, [sp, #8] - 80108c6: 9a06 ldr r2, [sp, #24] - 80108c8: f806 8c01 strb.w r8, [r6, #-1] - 80108cc: 1af3 subs r3, r6, r3 - 80108ce: 4293 cmp r3, r2 - 80108d0: d021 beq.n 8010916 <_dtoa_r+0x9c6> - 80108d2: 2300 movs r3, #0 - 80108d4: 220a movs r2, #10 - 80108d6: 9901 ldr r1, [sp, #4] - 80108d8: 4620 mov r0, r4 - 80108da: f000 fb7d bl 8010fd8 <__multadd> - 80108de: 45b9 cmp r9, r7 - 80108e0: 9001 str r0, [sp, #4] - 80108e2: f04f 0300 mov.w r3, #0 - 80108e6: f04f 020a mov.w r2, #10 - 80108ea: 4649 mov r1, r9 - 80108ec: 4620 mov r0, r4 - 80108ee: d105 bne.n 80108fc <_dtoa_r+0x9ac> - 80108f0: f000 fb72 bl 8010fd8 <__multadd> - 80108f4: 4681 mov r9, r0 - 80108f6: 4607 mov r7, r0 - 80108f8: 46b2 mov sl, r6 - 80108fa: e779 b.n 80107f0 <_dtoa_r+0x8a0> - 80108fc: f000 fb6c bl 8010fd8 <__multadd> - 8010900: 4639 mov r1, r7 - 8010902: 4681 mov r9, r0 - 8010904: 2300 movs r3, #0 - 8010906: 220a movs r2, #10 - 8010908: 4620 mov r0, r4 - 801090a: f000 fb65 bl 8010fd8 <__multadd> - 801090e: 4607 mov r7, r0 - 8010910: e7f2 b.n 80108f8 <_dtoa_r+0x9a8> - 8010912: f04f 0900 mov.w r9, #0 - 8010916: 2201 movs r2, #1 - 8010918: 9901 ldr r1, [sp, #4] - 801091a: 4620 mov r0, r4 - 801091c: f000 fcc4 bl 80112a8 <__lshift> - 8010920: 4629 mov r1, r5 - 8010922: 9001 str r0, [sp, #4] - 8010924: f000 fd14 bl 8011350 <__mcmp> - 8010928: 2800 cmp r0, #0 - 801092a: dcb9 bgt.n 80108a0 <_dtoa_r+0x950> - 801092c: d102 bne.n 8010934 <_dtoa_r+0x9e4> - 801092e: f018 0f01 tst.w r8, #1 - 8010932: d1b5 bne.n 80108a0 <_dtoa_r+0x950> - 8010934: f816 3c01 ldrb.w r3, [r6, #-1] - 8010938: 2b30 cmp r3, #48 ; 0x30 - 801093a: f106 32ff add.w r2, r6, #4294967295 ; 0xffffffff - 801093e: f47f af11 bne.w 8010764 <_dtoa_r+0x814> - 8010942: 4616 mov r6, r2 - 8010944: e7f6 b.n 8010934 <_dtoa_r+0x9e4> - 8010946: 9b02 ldr r3, [sp, #8] - 8010948: 4293 cmp r3, r2 - 801094a: d105 bne.n 8010958 <_dtoa_r+0xa08> - 801094c: 9a02 ldr r2, [sp, #8] - 801094e: f10b 0b01 add.w fp, fp, #1 - 8010952: 2331 movs r3, #49 ; 0x31 - 8010954: 7013 strb r3, [r2, #0] - 8010956: e705 b.n 8010764 <_dtoa_r+0x814> - 8010958: 4616 mov r6, r2 - 801095a: e7a1 b.n 80108a0 <_dtoa_r+0x950> - 801095c: 4b16 ldr r3, [pc, #88] ; (80109b8 <_dtoa_r+0xa68>) - 801095e: f7ff bb4c b.w 800fffa <_dtoa_r+0xaa> - 8010962: 9b1f ldr r3, [sp, #124] ; 0x7c - 8010964: 2b00 cmp r3, #0 - 8010966: f47f ab30 bne.w 800ffca <_dtoa_r+0x7a> - 801096a: 4b14 ldr r3, [pc, #80] ; (80109bc <_dtoa_r+0xa6c>) - 801096c: f7ff bb45 b.w 800fffa <_dtoa_r+0xaa> - 8010970: 9b08 ldr r3, [sp, #32] - 8010972: 2b01 cmp r3, #1 - 8010974: f77f ae3b ble.w 80105ee <_dtoa_r+0x69e> - 8010978: f8dd 802c ldr.w r8, [sp, #44] ; 0x2c - 801097c: e64f b.n 801061e <_dtoa_r+0x6ce> - 801097e: 9b06 ldr r3, [sp, #24] - 8010980: 2b00 cmp r3, #0 - 8010982: dc03 bgt.n 801098c <_dtoa_r+0xa3c> - 8010984: 9b08 ldr r3, [sp, #32] - 8010986: 2b02 cmp r3, #2 - 8010988: f73f aed7 bgt.w 801073a <_dtoa_r+0x7ea> - 801098c: 9e02 ldr r6, [sp, #8] - 801098e: 9801 ldr r0, [sp, #4] - 8010990: 4629 mov r1, r5 - 8010992: f7ff fa51 bl 800fe38 - 8010996: f100 0830 add.w r8, r0, #48 ; 0x30 - 801099a: f806 8b01 strb.w r8, [r6], #1 - 801099e: 9b02 ldr r3, [sp, #8] - 80109a0: 9a06 ldr r2, [sp, #24] - 80109a2: 1af3 subs r3, r6, r3 - 80109a4: 429a cmp r2, r3 - 80109a6: ddb4 ble.n 8010912 <_dtoa_r+0x9c2> - 80109a8: 2300 movs r3, #0 - 80109aa: 220a movs r2, #10 - 80109ac: 9901 ldr r1, [sp, #4] - 80109ae: 4620 mov r0, r4 - 80109b0: f000 fb12 bl 8010fd8 <__multadd> - 80109b4: 9001 str r0, [sp, #4] - 80109b6: e7ea b.n 801098e <_dtoa_r+0xa3e> - 80109b8: 08012e62 .word 0x08012e62 - 80109bc: 08012e84 .word 0x08012e84 - -080109c0 <__sflush_r>: - 80109c0: f9b1 200c ldrsh.w r2, [r1, #12] - 80109c4: b293 uxth r3, r2 - 80109c6: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 80109ca: 4605 mov r5, r0 - 80109cc: 0718 lsls r0, r3, #28 - 80109ce: 460c mov r4, r1 - 80109d0: d45f bmi.n 8010a92 <__sflush_r+0xd2> - 80109d2: 684b ldr r3, [r1, #4] - 80109d4: f442 6200 orr.w r2, r2, #2048 ; 0x800 - 80109d8: 2b00 cmp r3, #0 - 80109da: 818a strh r2, [r1, #12] - 80109dc: dc05 bgt.n 80109ea <__sflush_r+0x2a> - 80109de: 6bcb ldr r3, [r1, #60] ; 0x3c - 80109e0: 2b00 cmp r3, #0 - 80109e2: dc02 bgt.n 80109ea <__sflush_r+0x2a> - 80109e4: 2000 movs r0, #0 - 80109e6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 80109ea: 6aa6 ldr r6, [r4, #40] ; 0x28 - 80109ec: 2e00 cmp r6, #0 - 80109ee: d0f9 beq.n 80109e4 <__sflush_r+0x24> - 80109f0: 2300 movs r3, #0 - 80109f2: f412 5280 ands.w r2, r2, #4096 ; 0x1000 - 80109f6: 682f ldr r7, [r5, #0] - 80109f8: 69e1 ldr r1, [r4, #28] - 80109fa: 602b str r3, [r5, #0] - 80109fc: d036 beq.n 8010a6c <__sflush_r+0xac> - 80109fe: 6d20 ldr r0, [r4, #80] ; 0x50 - 8010a00: 89a3 ldrh r3, [r4, #12] - 8010a02: 075a lsls r2, r3, #29 - 8010a04: d505 bpl.n 8010a12 <__sflush_r+0x52> - 8010a06: 6863 ldr r3, [r4, #4] - 8010a08: 1ac0 subs r0, r0, r3 - 8010a0a: 6b23 ldr r3, [r4, #48] ; 0x30 - 8010a0c: b10b cbz r3, 8010a12 <__sflush_r+0x52> - 8010a0e: 6be3 ldr r3, [r4, #60] ; 0x3c - 8010a10: 1ac0 subs r0, r0, r3 - 8010a12: 2300 movs r3, #0 - 8010a14: 4602 mov r2, r0 - 8010a16: 6aa6 ldr r6, [r4, #40] ; 0x28 - 8010a18: 69e1 ldr r1, [r4, #28] - 8010a1a: 4628 mov r0, r5 - 8010a1c: 47b0 blx r6 - 8010a1e: 1c43 adds r3, r0, #1 - 8010a20: 89a3 ldrh r3, [r4, #12] - 8010a22: d106 bne.n 8010a32 <__sflush_r+0x72> - 8010a24: 6829 ldr r1, [r5, #0] - 8010a26: 291d cmp r1, #29 - 8010a28: d84c bhi.n 8010ac4 <__sflush_r+0x104> - 8010a2a: 4a2b ldr r2, [pc, #172] ; (8010ad8 <__sflush_r+0x118>) - 8010a2c: 40ca lsrs r2, r1 - 8010a2e: 07d6 lsls r6, r2, #31 - 8010a30: d548 bpl.n 8010ac4 <__sflush_r+0x104> - 8010a32: f423 6300 bic.w r3, r3, #2048 ; 0x800 - 8010a36: b21b sxth r3, r3 - 8010a38: 2200 movs r2, #0 - 8010a3a: 6062 str r2, [r4, #4] - 8010a3c: 04d9 lsls r1, r3, #19 - 8010a3e: 6922 ldr r2, [r4, #16] - 8010a40: 81a3 strh r3, [r4, #12] - 8010a42: 6022 str r2, [r4, #0] - 8010a44: d504 bpl.n 8010a50 <__sflush_r+0x90> - 8010a46: 1c42 adds r2, r0, #1 - 8010a48: d101 bne.n 8010a4e <__sflush_r+0x8e> - 8010a4a: 682b ldr r3, [r5, #0] - 8010a4c: b903 cbnz r3, 8010a50 <__sflush_r+0x90> - 8010a4e: 6520 str r0, [r4, #80] ; 0x50 - 8010a50: 6b21 ldr r1, [r4, #48] ; 0x30 - 8010a52: 602f str r7, [r5, #0] - 8010a54: 2900 cmp r1, #0 - 8010a56: d0c5 beq.n 80109e4 <__sflush_r+0x24> - 8010a58: f104 0340 add.w r3, r4, #64 ; 0x40 - 8010a5c: 4299 cmp r1, r3 - 8010a5e: d002 beq.n 8010a66 <__sflush_r+0xa6> - 8010a60: 4628 mov r0, r5 - 8010a62: f000 f937 bl 8010cd4 <_free_r> - 8010a66: 2000 movs r0, #0 - 8010a68: 6320 str r0, [r4, #48] ; 0x30 - 8010a6a: e7bc b.n 80109e6 <__sflush_r+0x26> - 8010a6c: 2301 movs r3, #1 - 8010a6e: 4628 mov r0, r5 - 8010a70: 47b0 blx r6 - 8010a72: 1c41 adds r1, r0, #1 - 8010a74: d1c4 bne.n 8010a00 <__sflush_r+0x40> - 8010a76: 682b ldr r3, [r5, #0] - 8010a78: 2b00 cmp r3, #0 - 8010a7a: d0c1 beq.n 8010a00 <__sflush_r+0x40> - 8010a7c: 2b1d cmp r3, #29 - 8010a7e: d001 beq.n 8010a84 <__sflush_r+0xc4> - 8010a80: 2b16 cmp r3, #22 - 8010a82: d101 bne.n 8010a88 <__sflush_r+0xc8> - 8010a84: 602f str r7, [r5, #0] - 8010a86: e7ad b.n 80109e4 <__sflush_r+0x24> - 8010a88: 89a3 ldrh r3, [r4, #12] - 8010a8a: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8010a8e: 81a3 strh r3, [r4, #12] - 8010a90: e7a9 b.n 80109e6 <__sflush_r+0x26> - 8010a92: 690f ldr r7, [r1, #16] - 8010a94: 2f00 cmp r7, #0 - 8010a96: d0a5 beq.n 80109e4 <__sflush_r+0x24> - 8010a98: 079b lsls r3, r3, #30 - 8010a9a: 680e ldr r6, [r1, #0] - 8010a9c: bf08 it eq - 8010a9e: 694b ldreq r3, [r1, #20] - 8010aa0: 600f str r7, [r1, #0] - 8010aa2: bf18 it ne - 8010aa4: 2300 movne r3, #0 - 8010aa6: eba6 0807 sub.w r8, r6, r7 - 8010aaa: 608b str r3, [r1, #8] - 8010aac: f1b8 0f00 cmp.w r8, #0 - 8010ab0: dd98 ble.n 80109e4 <__sflush_r+0x24> - 8010ab2: 4643 mov r3, r8 - 8010ab4: 463a mov r2, r7 - 8010ab6: 69e1 ldr r1, [r4, #28] - 8010ab8: 6a66 ldr r6, [r4, #36] ; 0x24 - 8010aba: 4628 mov r0, r5 - 8010abc: 47b0 blx r6 - 8010abe: 2800 cmp r0, #0 - 8010ac0: dc06 bgt.n 8010ad0 <__sflush_r+0x110> - 8010ac2: 89a3 ldrh r3, [r4, #12] - 8010ac4: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8010ac8: 81a3 strh r3, [r4, #12] - 8010aca: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 8010ace: e78a b.n 80109e6 <__sflush_r+0x26> - 8010ad0: 4407 add r7, r0 - 8010ad2: eba8 0800 sub.w r8, r8, r0 - 8010ad6: e7e9 b.n 8010aac <__sflush_r+0xec> - 8010ad8: 20400001 .word 0x20400001 - -08010adc <_fflush_r>: - 8010adc: b538 push {r3, r4, r5, lr} - 8010ade: 460c mov r4, r1 - 8010ae0: 4605 mov r5, r0 - 8010ae2: b118 cbz r0, 8010aec <_fflush_r+0x10> - 8010ae4: 6b83 ldr r3, [r0, #56] ; 0x38 - 8010ae6: b90b cbnz r3, 8010aec <_fflush_r+0x10> - 8010ae8: f000 f864 bl 8010bb4 <__sinit> - 8010aec: f9b4 000c ldrsh.w r0, [r4, #12] - 8010af0: b1b8 cbz r0, 8010b22 <_fflush_r+0x46> - 8010af2: 6e63 ldr r3, [r4, #100] ; 0x64 - 8010af4: 07db lsls r3, r3, #31 - 8010af6: d404 bmi.n 8010b02 <_fflush_r+0x26> - 8010af8: 0581 lsls r1, r0, #22 - 8010afa: d402 bmi.n 8010b02 <_fflush_r+0x26> - 8010afc: 6da0 ldr r0, [r4, #88] ; 0x58 - 8010afe: f7fd f9e3 bl 800dec8 <__retarget_lock_acquire_recursive> - 8010b02: 4628 mov r0, r5 - 8010b04: 4621 mov r1, r4 - 8010b06: f7ff ff5b bl 80109c0 <__sflush_r> - 8010b0a: 6e63 ldr r3, [r4, #100] ; 0x64 - 8010b0c: 07da lsls r2, r3, #31 - 8010b0e: 4605 mov r5, r0 - 8010b10: d405 bmi.n 8010b1e <_fflush_r+0x42> - 8010b12: 89a3 ldrh r3, [r4, #12] - 8010b14: 059b lsls r3, r3, #22 - 8010b16: d402 bmi.n 8010b1e <_fflush_r+0x42> - 8010b18: 6da0 ldr r0, [r4, #88] ; 0x58 - 8010b1a: f7fd f9d6 bl 800deca <__retarget_lock_release_recursive> - 8010b1e: 4628 mov r0, r5 - 8010b20: bd38 pop {r3, r4, r5, pc} - 8010b22: 4605 mov r5, r0 - 8010b24: e7fb b.n 8010b1e <_fflush_r+0x42> - ... - -08010b28 : - 8010b28: 2300 movs r3, #0 - 8010b2a: b510 push {r4, lr} - 8010b2c: 4604 mov r4, r0 - 8010b2e: e9c0 3300 strd r3, r3, [r0] - 8010b32: 6083 str r3, [r0, #8] - 8010b34: 8181 strh r1, [r0, #12] - 8010b36: 6643 str r3, [r0, #100] ; 0x64 - 8010b38: 81c2 strh r2, [r0, #14] - 8010b3a: e9c0 3304 strd r3, r3, [r0, #16] - 8010b3e: 6183 str r3, [r0, #24] - 8010b40: 4619 mov r1, r3 - 8010b42: 2208 movs r2, #8 - 8010b44: 305c adds r0, #92 ; 0x5c - 8010b46: f7fd fc3a bl 800e3be - 8010b4a: 4b07 ldr r3, [pc, #28] ; (8010b68 ) - 8010b4c: 6223 str r3, [r4, #32] - 8010b4e: 4b07 ldr r3, [pc, #28] ; (8010b6c ) - 8010b50: 6263 str r3, [r4, #36] ; 0x24 - 8010b52: 4b07 ldr r3, [pc, #28] ; (8010b70 ) - 8010b54: 62a3 str r3, [r4, #40] ; 0x28 - 8010b56: 4b07 ldr r3, [pc, #28] ; (8010b74 ) - 8010b58: 61e4 str r4, [r4, #28] - 8010b5a: 62e3 str r3, [r4, #44] ; 0x2c - 8010b5c: f104 0058 add.w r0, r4, #88 ; 0x58 - 8010b60: e8bd 4010 ldmia.w sp!, {r4, lr} - 8010b64: f7fd b9ae b.w 800dec4 <__retarget_lock_init_recursive> - 8010b68: 08011555 .word 0x08011555 - 8010b6c: 08011577 .word 0x08011577 - 8010b70: 080115af .word 0x080115af - 8010b74: 080115d3 .word 0x080115d3 - -08010b78 <_cleanup_r>: - 8010b78: 4901 ldr r1, [pc, #4] ; (8010b80 <_cleanup_r+0x8>) - 8010b7a: f000 b967 b.w 8010e4c <_fwalk_reent> - 8010b7e: bf00 nop - 8010b80: 0801181d .word 0x0801181d - -08010b84 <__sfp_lock_acquire>: - 8010b84: 4801 ldr r0, [pc, #4] ; (8010b8c <__sfp_lock_acquire+0x8>) - 8010b86: f7fd b99f b.w 800dec8 <__retarget_lock_acquire_recursive> - 8010b8a: bf00 nop - 8010b8c: 20000b04 .word 0x20000b04 - -08010b90 <__sfp_lock_release>: - 8010b90: 4801 ldr r0, [pc, #4] ; (8010b98 <__sfp_lock_release+0x8>) - 8010b92: f7fd b99a b.w 800deca <__retarget_lock_release_recursive> - 8010b96: bf00 nop - 8010b98: 20000b04 .word 0x20000b04 - -08010b9c <__sinit_lock_acquire>: - 8010b9c: 4801 ldr r0, [pc, #4] ; (8010ba4 <__sinit_lock_acquire+0x8>) - 8010b9e: f7fd b993 b.w 800dec8 <__retarget_lock_acquire_recursive> - 8010ba2: bf00 nop - 8010ba4: 20000aff .word 0x20000aff - -08010ba8 <__sinit_lock_release>: - 8010ba8: 4801 ldr r0, [pc, #4] ; (8010bb0 <__sinit_lock_release+0x8>) - 8010baa: f7fd b98e b.w 800deca <__retarget_lock_release_recursive> - 8010bae: bf00 nop - 8010bb0: 20000aff .word 0x20000aff - -08010bb4 <__sinit>: - 8010bb4: b510 push {r4, lr} - 8010bb6: 4604 mov r4, r0 - 8010bb8: f7ff fff0 bl 8010b9c <__sinit_lock_acquire> - 8010bbc: 6ba2 ldr r2, [r4, #56] ; 0x38 - 8010bbe: b11a cbz r2, 8010bc8 <__sinit+0x14> - 8010bc0: e8bd 4010 ldmia.w sp!, {r4, lr} - 8010bc4: f7ff bff0 b.w 8010ba8 <__sinit_lock_release> - 8010bc8: 4b0d ldr r3, [pc, #52] ; (8010c00 <__sinit+0x4c>) - 8010bca: 63e3 str r3, [r4, #60] ; 0x3c - 8010bcc: 2303 movs r3, #3 - 8010bce: f8c4 32e4 str.w r3, [r4, #740] ; 0x2e4 - 8010bd2: f504 733b add.w r3, r4, #748 ; 0x2ec - 8010bd6: f8c4 32e8 str.w r3, [r4, #744] ; 0x2e8 - 8010bda: f8c4 22e0 str.w r2, [r4, #736] ; 0x2e0 - 8010bde: 2104 movs r1, #4 - 8010be0: 6860 ldr r0, [r4, #4] - 8010be2: f7ff ffa1 bl 8010b28 - 8010be6: 2201 movs r2, #1 - 8010be8: 2109 movs r1, #9 - 8010bea: 68a0 ldr r0, [r4, #8] - 8010bec: f7ff ff9c bl 8010b28 - 8010bf0: 2202 movs r2, #2 - 8010bf2: 2112 movs r1, #18 - 8010bf4: 68e0 ldr r0, [r4, #12] - 8010bf6: f7ff ff97 bl 8010b28 - 8010bfa: 2301 movs r3, #1 - 8010bfc: 63a3 str r3, [r4, #56] ; 0x38 - 8010bfe: e7df b.n 8010bc0 <__sinit+0xc> - 8010c00: 08010b79 .word 0x08010b79 - -08010c04 <__libc_fini_array>: - 8010c04: b538 push {r3, r4, r5, lr} - 8010c06: 4d07 ldr r5, [pc, #28] ; (8010c24 <__libc_fini_array+0x20>) - 8010c08: 4c07 ldr r4, [pc, #28] ; (8010c28 <__libc_fini_array+0x24>) - 8010c0a: 1b64 subs r4, r4, r5 - 8010c0c: 10a4 asrs r4, r4, #2 - 8010c0e: b91c cbnz r4, 8010c18 <__libc_fini_array+0x14> - 8010c10: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} - 8010c14: f000 bec6 b.w 80119a4 <_fini> - 8010c18: 3c01 subs r4, #1 - 8010c1a: f855 3024 ldr.w r3, [r5, r4, lsl #2] - 8010c1e: 4798 blx r3 - 8010c20: e7f5 b.n 8010c0e <__libc_fini_array+0xa> - 8010c22: bf00 nop - 8010c24: 08013334 .word 0x08013334 - 8010c28: 08013338 .word 0x08013338 - -08010c2c <_malloc_trim_r>: - 8010c2c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8010c30: 4605 mov r5, r0 - 8010c32: 2008 movs r0, #8 - 8010c34: 460c mov r4, r1 - 8010c36: f7ff f823 bl 800fc80 - 8010c3a: 4f23 ldr r7, [pc, #140] ; (8010cc8 <_malloc_trim_r+0x9c>) - 8010c3c: 4680 mov r8, r0 - 8010c3e: 4628 mov r0, r5 - 8010c40: f7fd fbc6 bl 800e3d0 <__malloc_lock> - 8010c44: 68bb ldr r3, [r7, #8] - 8010c46: 685e ldr r6, [r3, #4] - 8010c48: f026 0603 bic.w r6, r6, #3 - 8010c4c: 1b34 subs r4, r6, r4 - 8010c4e: 3c11 subs r4, #17 - 8010c50: 4444 add r4, r8 - 8010c52: fbb4 f4f8 udiv r4, r4, r8 - 8010c56: 3c01 subs r4, #1 - 8010c58: fb08 f404 mul.w r4, r8, r4 - 8010c5c: 45a0 cmp r8, r4 - 8010c5e: dd05 ble.n 8010c6c <_malloc_trim_r+0x40> - 8010c60: 4628 mov r0, r5 - 8010c62: f7fd fbbb bl 800e3dc <__malloc_unlock> - 8010c66: 2000 movs r0, #0 - 8010c68: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8010c6c: 2100 movs r1, #0 - 8010c6e: 4628 mov r0, r5 - 8010c70: f7fd fd9e bl 800e7b0 <_sbrk_r> - 8010c74: 68bb ldr r3, [r7, #8] - 8010c76: 4433 add r3, r6 - 8010c78: 4298 cmp r0, r3 - 8010c7a: d1f1 bne.n 8010c60 <_malloc_trim_r+0x34> - 8010c7c: 4261 negs r1, r4 - 8010c7e: 4628 mov r0, r5 - 8010c80: f7fd fd96 bl 800e7b0 <_sbrk_r> - 8010c84: 3001 adds r0, #1 - 8010c86: d110 bne.n 8010caa <_malloc_trim_r+0x7e> - 8010c88: 2100 movs r1, #0 - 8010c8a: 4628 mov r0, r5 - 8010c8c: f7fd fd90 bl 800e7b0 <_sbrk_r> - 8010c90: 68ba ldr r2, [r7, #8] - 8010c92: 1a83 subs r3, r0, r2 - 8010c94: 2b0f cmp r3, #15 - 8010c96: dde3 ble.n 8010c60 <_malloc_trim_r+0x34> - 8010c98: 490c ldr r1, [pc, #48] ; (8010ccc <_malloc_trim_r+0xa0>) - 8010c9a: 6809 ldr r1, [r1, #0] - 8010c9c: 1a40 subs r0, r0, r1 - 8010c9e: 490c ldr r1, [pc, #48] ; (8010cd0 <_malloc_trim_r+0xa4>) - 8010ca0: f043 0301 orr.w r3, r3, #1 - 8010ca4: 6008 str r0, [r1, #0] - 8010ca6: 6053 str r3, [r2, #4] - 8010ca8: e7da b.n 8010c60 <_malloc_trim_r+0x34> - 8010caa: 68bb ldr r3, [r7, #8] - 8010cac: 4a08 ldr r2, [pc, #32] ; (8010cd0 <_malloc_trim_r+0xa4>) - 8010cae: 1b36 subs r6, r6, r4 - 8010cb0: f046 0601 orr.w r6, r6, #1 - 8010cb4: 605e str r6, [r3, #4] - 8010cb6: 6813 ldr r3, [r2, #0] - 8010cb8: 4628 mov r0, r5 - 8010cba: 1b1c subs r4, r3, r4 - 8010cbc: 6014 str r4, [r2, #0] - 8010cbe: f7fd fb8d bl 800e3dc <__malloc_unlock> - 8010cc2: 2001 movs r0, #1 - 8010cc4: e7d0 b.n 8010c68 <_malloc_trim_r+0x3c> - 8010cc6: bf00 nop - 8010cc8: 20000440 .word 0x20000440 - 8010ccc: 20000848 .word 0x20000848 - 8010cd0: 20000ac4 .word 0x20000ac4 - -08010cd4 <_free_r>: - 8010cd4: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8010cd8: 4604 mov r4, r0 - 8010cda: 4688 mov r8, r1 - 8010cdc: 2900 cmp r1, #0 - 8010cde: f000 80ab beq.w 8010e38 <_free_r+0x164> - 8010ce2: f7fd fb75 bl 800e3d0 <__malloc_lock> - 8010ce6: f858 2c04 ldr.w r2, [r8, #-4] - 8010cea: 4d54 ldr r5, [pc, #336] ; (8010e3c <_free_r+0x168>) - 8010cec: f022 0001 bic.w r0, r2, #1 - 8010cf0: f1a8 0308 sub.w r3, r8, #8 - 8010cf4: 181f adds r7, r3, r0 - 8010cf6: 68a9 ldr r1, [r5, #8] - 8010cf8: 687e ldr r6, [r7, #4] - 8010cfa: 42b9 cmp r1, r7 - 8010cfc: f026 0603 bic.w r6, r6, #3 - 8010d00: f002 0201 and.w r2, r2, #1 - 8010d04: d11b bne.n 8010d3e <_free_r+0x6a> - 8010d06: 4430 add r0, r6 - 8010d08: b93a cbnz r2, 8010d1a <_free_r+0x46> - 8010d0a: f858 2c08 ldr.w r2, [r8, #-8] - 8010d0e: 1a9b subs r3, r3, r2 - 8010d10: 4410 add r0, r2 - 8010d12: e9d3 1202 ldrd r1, r2, [r3, #8] - 8010d16: 60ca str r2, [r1, #12] - 8010d18: 6091 str r1, [r2, #8] - 8010d1a: f040 0201 orr.w r2, r0, #1 - 8010d1e: 605a str r2, [r3, #4] - 8010d20: 60ab str r3, [r5, #8] - 8010d22: 4b47 ldr r3, [pc, #284] ; (8010e40 <_free_r+0x16c>) - 8010d24: 681b ldr r3, [r3, #0] - 8010d26: 4283 cmp r3, r0 - 8010d28: d804 bhi.n 8010d34 <_free_r+0x60> - 8010d2a: 4b46 ldr r3, [pc, #280] ; (8010e44 <_free_r+0x170>) - 8010d2c: 4620 mov r0, r4 - 8010d2e: 6819 ldr r1, [r3, #0] - 8010d30: f7ff ff7c bl 8010c2c <_malloc_trim_r> - 8010d34: 4620 mov r0, r4 - 8010d36: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 8010d3a: f7fd bb4f b.w 800e3dc <__malloc_unlock> - 8010d3e: 607e str r6, [r7, #4] - 8010d40: 2a00 cmp r2, #0 - 8010d42: d139 bne.n 8010db8 <_free_r+0xe4> - 8010d44: f858 1c08 ldr.w r1, [r8, #-8] - 8010d48: 1a5b subs r3, r3, r1 - 8010d4a: 4408 add r0, r1 - 8010d4c: 6899 ldr r1, [r3, #8] - 8010d4e: f105 0c08 add.w ip, r5, #8 - 8010d52: 4561 cmp r1, ip - 8010d54: d032 beq.n 8010dbc <_free_r+0xe8> - 8010d56: f8d3 c00c ldr.w ip, [r3, #12] - 8010d5a: f8c1 c00c str.w ip, [r1, #12] - 8010d5e: f8cc 1008 str.w r1, [ip, #8] - 8010d62: 19b9 adds r1, r7, r6 - 8010d64: 6849 ldr r1, [r1, #4] - 8010d66: 07c9 lsls r1, r1, #31 - 8010d68: d40a bmi.n 8010d80 <_free_r+0xac> - 8010d6a: 4430 add r0, r6 - 8010d6c: 68b9 ldr r1, [r7, #8] - 8010d6e: bb3a cbnz r2, 8010dc0 <_free_r+0xec> - 8010d70: 4e35 ldr r6, [pc, #212] ; (8010e48 <_free_r+0x174>) - 8010d72: 42b1 cmp r1, r6 - 8010d74: d124 bne.n 8010dc0 <_free_r+0xec> - 8010d76: e9c5 3304 strd r3, r3, [r5, #16] - 8010d7a: e9c3 1102 strd r1, r1, [r3, #8] - 8010d7e: 2201 movs r2, #1 - 8010d80: f040 0101 orr.w r1, r0, #1 - 8010d84: 6059 str r1, [r3, #4] - 8010d86: 5018 str r0, [r3, r0] - 8010d88: 2a00 cmp r2, #0 - 8010d8a: d1d3 bne.n 8010d34 <_free_r+0x60> - 8010d8c: f5b0 7f00 cmp.w r0, #512 ; 0x200 - 8010d90: d21a bcs.n 8010dc8 <_free_r+0xf4> - 8010d92: 08c0 lsrs r0, r0, #3 - 8010d94: 1081 asrs r1, r0, #2 - 8010d96: 2201 movs r2, #1 - 8010d98: 408a lsls r2, r1 - 8010d9a: 6869 ldr r1, [r5, #4] - 8010d9c: 3001 adds r0, #1 - 8010d9e: 430a orrs r2, r1 - 8010da0: 606a str r2, [r5, #4] - 8010da2: f855 1030 ldr.w r1, [r5, r0, lsl #3] - 8010da6: eb05 02c0 add.w r2, r5, r0, lsl #3 - 8010daa: 3a08 subs r2, #8 - 8010dac: e9c3 1202 strd r1, r2, [r3, #8] - 8010db0: f845 3030 str.w r3, [r5, r0, lsl #3] - 8010db4: 60cb str r3, [r1, #12] - 8010db6: e7bd b.n 8010d34 <_free_r+0x60> - 8010db8: 2200 movs r2, #0 - 8010dba: e7d2 b.n 8010d62 <_free_r+0x8e> - 8010dbc: 2201 movs r2, #1 - 8010dbe: e7d0 b.n 8010d62 <_free_r+0x8e> - 8010dc0: 68fe ldr r6, [r7, #12] - 8010dc2: 60ce str r6, [r1, #12] - 8010dc4: 60b1 str r1, [r6, #8] - 8010dc6: e7db b.n 8010d80 <_free_r+0xac> - 8010dc8: 0a42 lsrs r2, r0, #9 - 8010dca: 2a04 cmp r2, #4 - 8010dcc: d813 bhi.n 8010df6 <_free_r+0x122> - 8010dce: 0982 lsrs r2, r0, #6 - 8010dd0: 3238 adds r2, #56 ; 0x38 - 8010dd2: 1c51 adds r1, r2, #1 - 8010dd4: eb05 06c2 add.w r6, r5, r2, lsl #3 - 8010dd8: f855 1031 ldr.w r1, [r5, r1, lsl #3] - 8010ddc: 428e cmp r6, r1 - 8010dde: d124 bne.n 8010e2a <_free_r+0x156> - 8010de0: 2001 movs r0, #1 - 8010de2: 1092 asrs r2, r2, #2 - 8010de4: fa00 f202 lsl.w r2, r0, r2 - 8010de8: 6868 ldr r0, [r5, #4] - 8010dea: 4302 orrs r2, r0 - 8010dec: 606a str r2, [r5, #4] - 8010dee: e9c3 1602 strd r1, r6, [r3, #8] - 8010df2: 60b3 str r3, [r6, #8] - 8010df4: e7de b.n 8010db4 <_free_r+0xe0> - 8010df6: 2a14 cmp r2, #20 - 8010df8: d801 bhi.n 8010dfe <_free_r+0x12a> - 8010dfa: 325b adds r2, #91 ; 0x5b - 8010dfc: e7e9 b.n 8010dd2 <_free_r+0xfe> - 8010dfe: 2a54 cmp r2, #84 ; 0x54 - 8010e00: d802 bhi.n 8010e08 <_free_r+0x134> - 8010e02: 0b02 lsrs r2, r0, #12 - 8010e04: 326e adds r2, #110 ; 0x6e - 8010e06: e7e4 b.n 8010dd2 <_free_r+0xfe> - 8010e08: f5b2 7faa cmp.w r2, #340 ; 0x154 - 8010e0c: d802 bhi.n 8010e14 <_free_r+0x140> - 8010e0e: 0bc2 lsrs r2, r0, #15 - 8010e10: 3277 adds r2, #119 ; 0x77 - 8010e12: e7de b.n 8010dd2 <_free_r+0xfe> - 8010e14: f240 5154 movw r1, #1364 ; 0x554 - 8010e18: 428a cmp r2, r1 - 8010e1a: bf9a itte ls - 8010e1c: 0c82 lsrls r2, r0, #18 - 8010e1e: 327c addls r2, #124 ; 0x7c - 8010e20: 227e movhi r2, #126 ; 0x7e - 8010e22: e7d6 b.n 8010dd2 <_free_r+0xfe> - 8010e24: 6889 ldr r1, [r1, #8] - 8010e26: 428e cmp r6, r1 - 8010e28: d004 beq.n 8010e34 <_free_r+0x160> - 8010e2a: 684a ldr r2, [r1, #4] - 8010e2c: f022 0203 bic.w r2, r2, #3 - 8010e30: 4282 cmp r2, r0 - 8010e32: d8f7 bhi.n 8010e24 <_free_r+0x150> - 8010e34: 68ce ldr r6, [r1, #12] - 8010e36: e7da b.n 8010dee <_free_r+0x11a> - 8010e38: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 8010e3c: 20000440 .word 0x20000440 - 8010e40: 2000084c .word 0x2000084c - 8010e44: 20000af4 .word 0x20000af4 - 8010e48: 20000448 .word 0x20000448 - -08010e4c <_fwalk_reent>: - 8010e4c: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 8010e50: 4680 mov r8, r0 - 8010e52: 4689 mov r9, r1 - 8010e54: f500 7438 add.w r4, r0, #736 ; 0x2e0 - 8010e58: 2600 movs r6, #0 - 8010e5a: b914 cbnz r4, 8010e62 <_fwalk_reent+0x16> - 8010e5c: 4630 mov r0, r6 - 8010e5e: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 8010e62: e9d4 7501 ldrd r7, r5, [r4, #4] - 8010e66: 3f01 subs r7, #1 - 8010e68: d501 bpl.n 8010e6e <_fwalk_reent+0x22> - 8010e6a: 6824 ldr r4, [r4, #0] - 8010e6c: e7f5 b.n 8010e5a <_fwalk_reent+0xe> - 8010e6e: 89ab ldrh r3, [r5, #12] - 8010e70: 2b01 cmp r3, #1 - 8010e72: d907 bls.n 8010e84 <_fwalk_reent+0x38> - 8010e74: f9b5 300e ldrsh.w r3, [r5, #14] - 8010e78: 3301 adds r3, #1 - 8010e7a: d003 beq.n 8010e84 <_fwalk_reent+0x38> - 8010e7c: 4629 mov r1, r5 - 8010e7e: 4640 mov r0, r8 - 8010e80: 47c8 blx r9 - 8010e82: 4306 orrs r6, r0 - 8010e84: 3568 adds r5, #104 ; 0x68 - 8010e86: e7ee b.n 8010e66 <_fwalk_reent+0x1a> - -08010e88 <_localeconv_r>: - 8010e88: 4b04 ldr r3, [pc, #16] ; (8010e9c <_localeconv_r+0x14>) - 8010e8a: 681b ldr r3, [r3, #0] - 8010e8c: 6b58 ldr r0, [r3, #52] ; 0x34 - 8010e8e: 4b04 ldr r3, [pc, #16] ; (8010ea0 <_localeconv_r+0x18>) - 8010e90: 2800 cmp r0, #0 - 8010e92: bf08 it eq - 8010e94: 4618 moveq r0, r3 - 8010e96: 30f0 adds r0, #240 ; 0xf0 - 8010e98: 4770 bx lr - 8010e9a: bf00 nop - 8010e9c: 20000014 .word 0x20000014 - 8010ea0: 20000854 .word 0x20000854 - -08010ea4 <__swhatbuf_r>: - 8010ea4: b570 push {r4, r5, r6, lr} - 8010ea6: 460e mov r6, r1 - 8010ea8: f9b1 100e ldrsh.w r1, [r1, #14] - 8010eac: 2900 cmp r1, #0 - 8010eae: b096 sub sp, #88 ; 0x58 - 8010eb0: 4614 mov r4, r2 - 8010eb2: 461d mov r5, r3 - 8010eb4: da09 bge.n 8010eca <__swhatbuf_r+0x26> - 8010eb6: 89b3 ldrh r3, [r6, #12] - 8010eb8: 2200 movs r2, #0 - 8010eba: f013 0080 ands.w r0, r3, #128 ; 0x80 - 8010ebe: 602a str r2, [r5, #0] - 8010ec0: d116 bne.n 8010ef0 <__swhatbuf_r+0x4c> - 8010ec2: f44f 6380 mov.w r3, #1024 ; 0x400 - 8010ec6: 6023 str r3, [r4, #0] - 8010ec8: e015 b.n 8010ef6 <__swhatbuf_r+0x52> - 8010eca: 466a mov r2, sp - 8010ecc: f000 fcfe bl 80118cc <_fstat_r> - 8010ed0: 2800 cmp r0, #0 - 8010ed2: dbf0 blt.n 8010eb6 <__swhatbuf_r+0x12> - 8010ed4: 9a01 ldr r2, [sp, #4] - 8010ed6: f402 4270 and.w r2, r2, #61440 ; 0xf000 - 8010eda: f5a2 5300 sub.w r3, r2, #8192 ; 0x2000 - 8010ede: 425a negs r2, r3 - 8010ee0: 415a adcs r2, r3 - 8010ee2: f44f 6380 mov.w r3, #1024 ; 0x400 - 8010ee6: 602a str r2, [r5, #0] - 8010ee8: f44f 6000 mov.w r0, #2048 ; 0x800 - 8010eec: 6023 str r3, [r4, #0] - 8010eee: e002 b.n 8010ef6 <__swhatbuf_r+0x52> - 8010ef0: 2340 movs r3, #64 ; 0x40 - 8010ef2: 6023 str r3, [r4, #0] - 8010ef4: 4610 mov r0, r2 - 8010ef6: b016 add sp, #88 ; 0x58 - 8010ef8: bd70 pop {r4, r5, r6, pc} - ... - -08010efc <__smakebuf_r>: - 8010efc: 898b ldrh r3, [r1, #12] - 8010efe: b573 push {r0, r1, r4, r5, r6, lr} - 8010f00: 079d lsls r5, r3, #30 - 8010f02: 4606 mov r6, r0 - 8010f04: 460c mov r4, r1 - 8010f06: d507 bpl.n 8010f18 <__smakebuf_r+0x1c> - 8010f08: f104 0343 add.w r3, r4, #67 ; 0x43 - 8010f0c: 6023 str r3, [r4, #0] - 8010f0e: 6123 str r3, [r4, #16] - 8010f10: 2301 movs r3, #1 - 8010f12: 6163 str r3, [r4, #20] - 8010f14: b002 add sp, #8 - 8010f16: bd70 pop {r4, r5, r6, pc} - 8010f18: ab01 add r3, sp, #4 - 8010f1a: 466a mov r2, sp - 8010f1c: f7ff ffc2 bl 8010ea4 <__swhatbuf_r> - 8010f20: 9900 ldr r1, [sp, #0] - 8010f22: 4605 mov r5, r0 - 8010f24: 4630 mov r0, r6 - 8010f26: f7fc ffe1 bl 800deec <_malloc_r> - 8010f2a: b948 cbnz r0, 8010f40 <__smakebuf_r+0x44> - 8010f2c: f9b4 300c ldrsh.w r3, [r4, #12] - 8010f30: 059a lsls r2, r3, #22 - 8010f32: d4ef bmi.n 8010f14 <__smakebuf_r+0x18> - 8010f34: f023 0303 bic.w r3, r3, #3 - 8010f38: f043 0302 orr.w r3, r3, #2 - 8010f3c: 81a3 strh r3, [r4, #12] - 8010f3e: e7e3 b.n 8010f08 <__smakebuf_r+0xc> - 8010f40: 4b0d ldr r3, [pc, #52] ; (8010f78 <__smakebuf_r+0x7c>) - 8010f42: 63f3 str r3, [r6, #60] ; 0x3c - 8010f44: 89a3 ldrh r3, [r4, #12] - 8010f46: 6020 str r0, [r4, #0] - 8010f48: f043 0380 orr.w r3, r3, #128 ; 0x80 - 8010f4c: 81a3 strh r3, [r4, #12] - 8010f4e: 9b00 ldr r3, [sp, #0] - 8010f50: 6163 str r3, [r4, #20] - 8010f52: 9b01 ldr r3, [sp, #4] - 8010f54: 6120 str r0, [r4, #16] - 8010f56: b15b cbz r3, 8010f70 <__smakebuf_r+0x74> - 8010f58: f9b4 100e ldrsh.w r1, [r4, #14] - 8010f5c: 4630 mov r0, r6 - 8010f5e: f000 fcc7 bl 80118f0 <_isatty_r> - 8010f62: b128 cbz r0, 8010f70 <__smakebuf_r+0x74> - 8010f64: 89a3 ldrh r3, [r4, #12] - 8010f66: f023 0303 bic.w r3, r3, #3 - 8010f6a: f043 0301 orr.w r3, r3, #1 - 8010f6e: 81a3 strh r3, [r4, #12] - 8010f70: 89a3 ldrh r3, [r4, #12] - 8010f72: 431d orrs r5, r3 - 8010f74: 81a5 strh r5, [r4, #12] - 8010f76: e7cd b.n 8010f14 <__smakebuf_r+0x18> - 8010f78: 08010b79 .word 0x08010b79 - -08010f7c <_Balloc>: - 8010f7c: 6cc3 ldr r3, [r0, #76] ; 0x4c - 8010f7e: b570 push {r4, r5, r6, lr} - 8010f80: 4605 mov r5, r0 - 8010f82: 460c mov r4, r1 - 8010f84: b17b cbz r3, 8010fa6 <_Balloc+0x2a> - 8010f86: 6ceb ldr r3, [r5, #76] ; 0x4c - 8010f88: f853 0024 ldr.w r0, [r3, r4, lsl #2] - 8010f8c: b9a0 cbnz r0, 8010fb8 <_Balloc+0x3c> - 8010f8e: 2101 movs r1, #1 - 8010f90: fa01 f604 lsl.w r6, r1, r4 - 8010f94: 1d72 adds r2, r6, #5 - 8010f96: 0092 lsls r2, r2, #2 - 8010f98: 4628 mov r0, r5 - 8010f9a: f000 fc01 bl 80117a0 <_calloc_r> - 8010f9e: b148 cbz r0, 8010fb4 <_Balloc+0x38> - 8010fa0: e9c0 4601 strd r4, r6, [r0, #4] - 8010fa4: e00b b.n 8010fbe <_Balloc+0x42> - 8010fa6: 2221 movs r2, #33 ; 0x21 - 8010fa8: 2104 movs r1, #4 - 8010faa: f000 fbf9 bl 80117a0 <_calloc_r> - 8010fae: 64e8 str r0, [r5, #76] ; 0x4c - 8010fb0: 2800 cmp r0, #0 - 8010fb2: d1e8 bne.n 8010f86 <_Balloc+0xa> - 8010fb4: 2000 movs r0, #0 - 8010fb6: bd70 pop {r4, r5, r6, pc} - 8010fb8: 6802 ldr r2, [r0, #0] - 8010fba: f843 2024 str.w r2, [r3, r4, lsl #2] - 8010fbe: 2300 movs r3, #0 - 8010fc0: e9c0 3303 strd r3, r3, [r0, #12] - 8010fc4: e7f7 b.n 8010fb6 <_Balloc+0x3a> - -08010fc6 <_Bfree>: - 8010fc6: b131 cbz r1, 8010fd6 <_Bfree+0x10> - 8010fc8: 6cc3 ldr r3, [r0, #76] ; 0x4c - 8010fca: 684a ldr r2, [r1, #4] - 8010fcc: f853 0022 ldr.w r0, [r3, r2, lsl #2] - 8010fd0: 6008 str r0, [r1, #0] - 8010fd2: f843 1022 str.w r1, [r3, r2, lsl #2] - 8010fd6: 4770 bx lr - -08010fd8 <__multadd>: - 8010fd8: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 8010fdc: 690d ldr r5, [r1, #16] - 8010fde: 461f mov r7, r3 - 8010fe0: 4606 mov r6, r0 - 8010fe2: 460c mov r4, r1 - 8010fe4: f101 0c14 add.w ip, r1, #20 - 8010fe8: 2300 movs r3, #0 - 8010fea: f8dc 0000 ldr.w r0, [ip] - 8010fee: b281 uxth r1, r0 - 8010ff0: fb02 7101 mla r1, r2, r1, r7 - 8010ff4: 0c0f lsrs r7, r1, #16 - 8010ff6: 0c00 lsrs r0, r0, #16 - 8010ff8: fb02 7000 mla r0, r2, r0, r7 - 8010ffc: b289 uxth r1, r1 - 8010ffe: 3301 adds r3, #1 - 8011000: eb01 4100 add.w r1, r1, r0, lsl #16 - 8011004: 429d cmp r5, r3 - 8011006: ea4f 4710 mov.w r7, r0, lsr #16 - 801100a: f84c 1b04 str.w r1, [ip], #4 - 801100e: dcec bgt.n 8010fea <__multadd+0x12> - 8011010: b1d7 cbz r7, 8011048 <__multadd+0x70> - 8011012: 68a3 ldr r3, [r4, #8] - 8011014: 42ab cmp r3, r5 - 8011016: dc12 bgt.n 801103e <__multadd+0x66> - 8011018: 6861 ldr r1, [r4, #4] - 801101a: 4630 mov r0, r6 - 801101c: 3101 adds r1, #1 - 801101e: f7ff ffad bl 8010f7c <_Balloc> - 8011022: 6922 ldr r2, [r4, #16] - 8011024: 3202 adds r2, #2 - 8011026: f104 010c add.w r1, r4, #12 - 801102a: 4680 mov r8, r0 - 801102c: 0092 lsls r2, r2, #2 - 801102e: 300c adds r0, #12 - 8011030: f7fd f9a1 bl 800e376 - 8011034: 4621 mov r1, r4 - 8011036: 4630 mov r0, r6 - 8011038: f7ff ffc5 bl 8010fc6 <_Bfree> - 801103c: 4644 mov r4, r8 - 801103e: eb04 0385 add.w r3, r4, r5, lsl #2 - 8011042: 3501 adds r5, #1 - 8011044: 615f str r7, [r3, #20] - 8011046: 6125 str r5, [r4, #16] - 8011048: 4620 mov r0, r4 - 801104a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - -0801104e <__hi0bits>: - 801104e: 0c02 lsrs r2, r0, #16 - 8011050: 0412 lsls r2, r2, #16 - 8011052: 4603 mov r3, r0 - 8011054: b9b2 cbnz r2, 8011084 <__hi0bits+0x36> - 8011056: 0403 lsls r3, r0, #16 - 8011058: 2010 movs r0, #16 - 801105a: f013 4f7f tst.w r3, #4278190080 ; 0xff000000 - 801105e: bf04 itt eq - 8011060: 021b lsleq r3, r3, #8 - 8011062: 3008 addeq r0, #8 - 8011064: f013 4f70 tst.w r3, #4026531840 ; 0xf0000000 - 8011068: bf04 itt eq - 801106a: 011b lsleq r3, r3, #4 - 801106c: 3004 addeq r0, #4 - 801106e: f013 4f40 tst.w r3, #3221225472 ; 0xc0000000 - 8011072: bf04 itt eq - 8011074: 009b lsleq r3, r3, #2 - 8011076: 3002 addeq r0, #2 - 8011078: 2b00 cmp r3, #0 - 801107a: db06 blt.n 801108a <__hi0bits+0x3c> - 801107c: 005b lsls r3, r3, #1 - 801107e: d503 bpl.n 8011088 <__hi0bits+0x3a> - 8011080: 3001 adds r0, #1 - 8011082: 4770 bx lr - 8011084: 2000 movs r0, #0 - 8011086: e7e8 b.n 801105a <__hi0bits+0xc> - 8011088: 2020 movs r0, #32 - 801108a: 4770 bx lr - -0801108c <__lo0bits>: - 801108c: 6803 ldr r3, [r0, #0] - 801108e: f013 0207 ands.w r2, r3, #7 - 8011092: 4601 mov r1, r0 - 8011094: d00b beq.n 80110ae <__lo0bits+0x22> - 8011096: 07da lsls r2, r3, #31 - 8011098: d423 bmi.n 80110e2 <__lo0bits+0x56> - 801109a: 0798 lsls r0, r3, #30 - 801109c: bf49 itett mi - 801109e: 085b lsrmi r3, r3, #1 - 80110a0: 089b lsrpl r3, r3, #2 - 80110a2: 2001 movmi r0, #1 - 80110a4: 600b strmi r3, [r1, #0] - 80110a6: bf5c itt pl - 80110a8: 600b strpl r3, [r1, #0] - 80110aa: 2002 movpl r0, #2 - 80110ac: 4770 bx lr - 80110ae: b298 uxth r0, r3 - 80110b0: b9a8 cbnz r0, 80110de <__lo0bits+0x52> - 80110b2: 0c1b lsrs r3, r3, #16 - 80110b4: 2010 movs r0, #16 - 80110b6: f013 0fff tst.w r3, #255 ; 0xff - 80110ba: bf04 itt eq - 80110bc: 0a1b lsreq r3, r3, #8 - 80110be: 3008 addeq r0, #8 - 80110c0: 071a lsls r2, r3, #28 - 80110c2: bf04 itt eq - 80110c4: 091b lsreq r3, r3, #4 - 80110c6: 3004 addeq r0, #4 - 80110c8: 079a lsls r2, r3, #30 - 80110ca: bf04 itt eq - 80110cc: 089b lsreq r3, r3, #2 - 80110ce: 3002 addeq r0, #2 - 80110d0: 07da lsls r2, r3, #31 - 80110d2: d402 bmi.n 80110da <__lo0bits+0x4e> - 80110d4: 085b lsrs r3, r3, #1 - 80110d6: d006 beq.n 80110e6 <__lo0bits+0x5a> - 80110d8: 3001 adds r0, #1 - 80110da: 600b str r3, [r1, #0] - 80110dc: 4770 bx lr - 80110de: 4610 mov r0, r2 - 80110e0: e7e9 b.n 80110b6 <__lo0bits+0x2a> - 80110e2: 2000 movs r0, #0 - 80110e4: 4770 bx lr - 80110e6: 2020 movs r0, #32 - 80110e8: 4770 bx lr - -080110ea <__i2b>: - 80110ea: b510 push {r4, lr} - 80110ec: 460c mov r4, r1 - 80110ee: 2101 movs r1, #1 - 80110f0: f7ff ff44 bl 8010f7c <_Balloc> - 80110f4: 2201 movs r2, #1 - 80110f6: 6144 str r4, [r0, #20] - 80110f8: 6102 str r2, [r0, #16] - 80110fa: bd10 pop {r4, pc} - -080110fc <__multiply>: - 80110fc: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8011100: 4614 mov r4, r2 - 8011102: 690a ldr r2, [r1, #16] - 8011104: 6923 ldr r3, [r4, #16] - 8011106: 429a cmp r2, r3 - 8011108: bfb8 it lt - 801110a: 460b movlt r3, r1 - 801110c: 4688 mov r8, r1 - 801110e: bfbc itt lt - 8011110: 46a0 movlt r8, r4 - 8011112: 461c movlt r4, r3 - 8011114: f8d8 7010 ldr.w r7, [r8, #16] - 8011118: f8d4 9010 ldr.w r9, [r4, #16] - 801111c: f8d8 3008 ldr.w r3, [r8, #8] - 8011120: f8d8 1004 ldr.w r1, [r8, #4] - 8011124: eb07 0609 add.w r6, r7, r9 - 8011128: 42b3 cmp r3, r6 - 801112a: bfb8 it lt - 801112c: 3101 addlt r1, #1 - 801112e: f7ff ff25 bl 8010f7c <_Balloc> - 8011132: f100 0514 add.w r5, r0, #20 - 8011136: eb05 0e86 add.w lr, r5, r6, lsl #2 - 801113a: 462b mov r3, r5 - 801113c: 2200 movs r2, #0 - 801113e: 4573 cmp r3, lr - 8011140: d316 bcc.n 8011170 <__multiply+0x74> - 8011142: f104 0214 add.w r2, r4, #20 - 8011146: f108 0114 add.w r1, r8, #20 - 801114a: eb02 0389 add.w r3, r2, r9, lsl #2 - 801114e: eb01 0787 add.w r7, r1, r7, lsl #2 - 8011152: 9300 str r3, [sp, #0] - 8011154: 9b00 ldr r3, [sp, #0] - 8011156: 9201 str r2, [sp, #4] - 8011158: 4293 cmp r3, r2 - 801115a: d80c bhi.n 8011176 <__multiply+0x7a> - 801115c: 2e00 cmp r6, #0 - 801115e: dd03 ble.n 8011168 <__multiply+0x6c> - 8011160: f85e 3d04 ldr.w r3, [lr, #-4]! - 8011164: 2b00 cmp r3, #0 - 8011166: d05d beq.n 8011224 <__multiply+0x128> - 8011168: 6106 str r6, [r0, #16] - 801116a: b003 add sp, #12 - 801116c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 8011170: f843 2b04 str.w r2, [r3], #4 - 8011174: e7e3 b.n 801113e <__multiply+0x42> - 8011176: f8b2 b000 ldrh.w fp, [r2] - 801117a: f1bb 0f00 cmp.w fp, #0 - 801117e: d023 beq.n 80111c8 <__multiply+0xcc> - 8011180: 4689 mov r9, r1 - 8011182: 46ac mov ip, r5 - 8011184: f04f 0800 mov.w r8, #0 - 8011188: f859 4b04 ldr.w r4, [r9], #4 - 801118c: f8dc a000 ldr.w sl, [ip] - 8011190: b2a3 uxth r3, r4 - 8011192: fa1f fa8a uxth.w sl, sl - 8011196: fb0b a303 mla r3, fp, r3, sl - 801119a: ea4f 4a14 mov.w sl, r4, lsr #16 - 801119e: f8dc 4000 ldr.w r4, [ip] - 80111a2: 4443 add r3, r8 - 80111a4: ea4f 4814 mov.w r8, r4, lsr #16 - 80111a8: fb0b 840a mla r4, fp, sl, r8 - 80111ac: eb04 4413 add.w r4, r4, r3, lsr #16 - 80111b0: 46e2 mov sl, ip - 80111b2: b29b uxth r3, r3 - 80111b4: ea43 4304 orr.w r3, r3, r4, lsl #16 - 80111b8: 454f cmp r7, r9 - 80111ba: ea4f 4814 mov.w r8, r4, lsr #16 - 80111be: f84a 3b04 str.w r3, [sl], #4 - 80111c2: d82b bhi.n 801121c <__multiply+0x120> - 80111c4: f8cc 8004 str.w r8, [ip, #4] - 80111c8: 9b01 ldr r3, [sp, #4] - 80111ca: f8b3 a002 ldrh.w sl, [r3, #2] - 80111ce: 3204 adds r2, #4 - 80111d0: f1ba 0f00 cmp.w sl, #0 - 80111d4: d020 beq.n 8011218 <__multiply+0x11c> - 80111d6: 682b ldr r3, [r5, #0] - 80111d8: 4689 mov r9, r1 - 80111da: 46a8 mov r8, r5 - 80111dc: f04f 0b00 mov.w fp, #0 - 80111e0: f8b9 c000 ldrh.w ip, [r9] - 80111e4: f8b8 4002 ldrh.w r4, [r8, #2] - 80111e8: fb0a 440c mla r4, sl, ip, r4 - 80111ec: 445c add r4, fp - 80111ee: 46c4 mov ip, r8 - 80111f0: b29b uxth r3, r3 - 80111f2: ea43 4304 orr.w r3, r3, r4, lsl #16 - 80111f6: f84c 3b04 str.w r3, [ip], #4 - 80111fa: f859 3b04 ldr.w r3, [r9], #4 - 80111fe: f8b8 b004 ldrh.w fp, [r8, #4] - 8011202: 0c1b lsrs r3, r3, #16 - 8011204: fb0a b303 mla r3, sl, r3, fp - 8011208: eb03 4314 add.w r3, r3, r4, lsr #16 - 801120c: 454f cmp r7, r9 - 801120e: ea4f 4b13 mov.w fp, r3, lsr #16 - 8011212: d805 bhi.n 8011220 <__multiply+0x124> - 8011214: f8c8 3004 str.w r3, [r8, #4] - 8011218: 3504 adds r5, #4 - 801121a: e79b b.n 8011154 <__multiply+0x58> - 801121c: 46d4 mov ip, sl - 801121e: e7b3 b.n 8011188 <__multiply+0x8c> - 8011220: 46e0 mov r8, ip - 8011222: e7dd b.n 80111e0 <__multiply+0xe4> - 8011224: 3e01 subs r6, #1 - 8011226: e799 b.n 801115c <__multiply+0x60> - -08011228 <__pow5mult>: - 8011228: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 801122c: 4615 mov r5, r2 - 801122e: f012 0203 ands.w r2, r2, #3 - 8011232: 4606 mov r6, r0 - 8011234: 460f mov r7, r1 - 8011236: d007 beq.n 8011248 <__pow5mult+0x20> - 8011238: 3a01 subs r2, #1 - 801123a: 4c1a ldr r4, [pc, #104] ; (80112a4 <__pow5mult+0x7c>) - 801123c: 2300 movs r3, #0 - 801123e: f854 2022 ldr.w r2, [r4, r2, lsl #2] - 8011242: f7ff fec9 bl 8010fd8 <__multadd> - 8011246: 4607 mov r7, r0 - 8011248: 10ad asrs r5, r5, #2 - 801124a: d027 beq.n 801129c <__pow5mult+0x74> - 801124c: 6cb4 ldr r4, [r6, #72] ; 0x48 - 801124e: b944 cbnz r4, 8011262 <__pow5mult+0x3a> - 8011250: f240 2171 movw r1, #625 ; 0x271 - 8011254: 4630 mov r0, r6 - 8011256: f7ff ff48 bl 80110ea <__i2b> - 801125a: 2300 movs r3, #0 - 801125c: 64b0 str r0, [r6, #72] ; 0x48 - 801125e: 4604 mov r4, r0 - 8011260: 6003 str r3, [r0, #0] - 8011262: f04f 0800 mov.w r8, #0 - 8011266: 07eb lsls r3, r5, #31 - 8011268: d50a bpl.n 8011280 <__pow5mult+0x58> - 801126a: 4639 mov r1, r7 - 801126c: 4622 mov r2, r4 - 801126e: 4630 mov r0, r6 - 8011270: f7ff ff44 bl 80110fc <__multiply> - 8011274: 4639 mov r1, r7 - 8011276: 4681 mov r9, r0 - 8011278: 4630 mov r0, r6 - 801127a: f7ff fea4 bl 8010fc6 <_Bfree> - 801127e: 464f mov r7, r9 - 8011280: 106d asrs r5, r5, #1 - 8011282: d00b beq.n 801129c <__pow5mult+0x74> - 8011284: 6820 ldr r0, [r4, #0] - 8011286: b938 cbnz r0, 8011298 <__pow5mult+0x70> - 8011288: 4622 mov r2, r4 - 801128a: 4621 mov r1, r4 - 801128c: 4630 mov r0, r6 - 801128e: f7ff ff35 bl 80110fc <__multiply> - 8011292: 6020 str r0, [r4, #0] - 8011294: f8c0 8000 str.w r8, [r0] - 8011298: 4604 mov r4, r0 - 801129a: e7e4 b.n 8011266 <__pow5mult+0x3e> - 801129c: 4638 mov r0, r7 - 801129e: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 80112a2: bf00 nop - 80112a4: 08012f88 .word 0x08012f88 - -080112a8 <__lshift>: - 80112a8: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 80112ac: 460c mov r4, r1 - 80112ae: ea4f 1a62 mov.w sl, r2, asr #5 - 80112b2: 6923 ldr r3, [r4, #16] - 80112b4: 6849 ldr r1, [r1, #4] - 80112b6: eb0a 0903 add.w r9, sl, r3 - 80112ba: 68a3 ldr r3, [r4, #8] - 80112bc: 4607 mov r7, r0 - 80112be: 4616 mov r6, r2 - 80112c0: f109 0501 add.w r5, r9, #1 - 80112c4: 42ab cmp r3, r5 - 80112c6: db32 blt.n 801132e <__lshift+0x86> - 80112c8: 4638 mov r0, r7 - 80112ca: f7ff fe57 bl 8010f7c <_Balloc> - 80112ce: 2300 movs r3, #0 - 80112d0: 4680 mov r8, r0 - 80112d2: f100 0114 add.w r1, r0, #20 - 80112d6: 461a mov r2, r3 - 80112d8: 4553 cmp r3, sl - 80112da: db2b blt.n 8011334 <__lshift+0x8c> - 80112dc: 6920 ldr r0, [r4, #16] - 80112de: ea2a 7aea bic.w sl, sl, sl, asr #31 - 80112e2: f104 0314 add.w r3, r4, #20 - 80112e6: f016 021f ands.w r2, r6, #31 - 80112ea: eb01 018a add.w r1, r1, sl, lsl #2 - 80112ee: eb03 0c80 add.w ip, r3, r0, lsl #2 - 80112f2: d025 beq.n 8011340 <__lshift+0x98> - 80112f4: f1c2 0e20 rsb lr, r2, #32 - 80112f8: 2000 movs r0, #0 - 80112fa: 681e ldr r6, [r3, #0] - 80112fc: 468a mov sl, r1 - 80112fe: 4096 lsls r6, r2 - 8011300: 4330 orrs r0, r6 - 8011302: f84a 0b04 str.w r0, [sl], #4 - 8011306: f853 0b04 ldr.w r0, [r3], #4 - 801130a: 459c cmp ip, r3 - 801130c: fa20 f00e lsr.w r0, r0, lr - 8011310: d814 bhi.n 801133c <__lshift+0x94> - 8011312: 6048 str r0, [r1, #4] - 8011314: b108 cbz r0, 801131a <__lshift+0x72> - 8011316: f109 0502 add.w r5, r9, #2 - 801131a: 3d01 subs r5, #1 - 801131c: 4638 mov r0, r7 - 801131e: f8c8 5010 str.w r5, [r8, #16] - 8011322: 4621 mov r1, r4 - 8011324: f7ff fe4f bl 8010fc6 <_Bfree> - 8011328: 4640 mov r0, r8 - 801132a: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 801132e: 3101 adds r1, #1 - 8011330: 005b lsls r3, r3, #1 - 8011332: e7c7 b.n 80112c4 <__lshift+0x1c> - 8011334: f841 2023 str.w r2, [r1, r3, lsl #2] - 8011338: 3301 adds r3, #1 - 801133a: e7cd b.n 80112d8 <__lshift+0x30> - 801133c: 4651 mov r1, sl - 801133e: e7dc b.n 80112fa <__lshift+0x52> - 8011340: 3904 subs r1, #4 - 8011342: f853 2b04 ldr.w r2, [r3], #4 - 8011346: f841 2f04 str.w r2, [r1, #4]! - 801134a: 459c cmp ip, r3 - 801134c: d8f9 bhi.n 8011342 <__lshift+0x9a> - 801134e: e7e4 b.n 801131a <__lshift+0x72> - -08011350 <__mcmp>: - 8011350: 6903 ldr r3, [r0, #16] - 8011352: 690a ldr r2, [r1, #16] - 8011354: 1a9b subs r3, r3, r2 - 8011356: b530 push {r4, r5, lr} - 8011358: d10c bne.n 8011374 <__mcmp+0x24> - 801135a: 0092 lsls r2, r2, #2 - 801135c: 3014 adds r0, #20 - 801135e: 3114 adds r1, #20 - 8011360: 1884 adds r4, r0, r2 - 8011362: 4411 add r1, r2 - 8011364: f854 5d04 ldr.w r5, [r4, #-4]! - 8011368: f851 2d04 ldr.w r2, [r1, #-4]! - 801136c: 4295 cmp r5, r2 - 801136e: d003 beq.n 8011378 <__mcmp+0x28> - 8011370: d305 bcc.n 801137e <__mcmp+0x2e> - 8011372: 2301 movs r3, #1 - 8011374: 4618 mov r0, r3 - 8011376: bd30 pop {r4, r5, pc} - 8011378: 42a0 cmp r0, r4 - 801137a: d3f3 bcc.n 8011364 <__mcmp+0x14> - 801137c: e7fa b.n 8011374 <__mcmp+0x24> - 801137e: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 8011382: e7f7 b.n 8011374 <__mcmp+0x24> - -08011384 <__mdiff>: - 8011384: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 8011388: 460d mov r5, r1 - 801138a: 4607 mov r7, r0 - 801138c: 4611 mov r1, r2 - 801138e: 4628 mov r0, r5 - 8011390: 4614 mov r4, r2 - 8011392: f7ff ffdd bl 8011350 <__mcmp> - 8011396: 1e06 subs r6, r0, #0 - 8011398: d108 bne.n 80113ac <__mdiff+0x28> - 801139a: 4631 mov r1, r6 - 801139c: 4638 mov r0, r7 - 801139e: f7ff fded bl 8010f7c <_Balloc> - 80113a2: 2301 movs r3, #1 - 80113a4: e9c0 3604 strd r3, r6, [r0, #16] - 80113a8: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 80113ac: bfa4 itt ge - 80113ae: 4623 movge r3, r4 - 80113b0: 462c movge r4, r5 - 80113b2: 4638 mov r0, r7 - 80113b4: 6861 ldr r1, [r4, #4] - 80113b6: bfa6 itte ge - 80113b8: 461d movge r5, r3 - 80113ba: 2600 movge r6, #0 - 80113bc: 2601 movlt r6, #1 - 80113be: f7ff fddd bl 8010f7c <_Balloc> - 80113c2: 692b ldr r3, [r5, #16] - 80113c4: 60c6 str r6, [r0, #12] - 80113c6: 6926 ldr r6, [r4, #16] - 80113c8: f105 0914 add.w r9, r5, #20 - 80113cc: f104 0214 add.w r2, r4, #20 - 80113d0: eb02 0786 add.w r7, r2, r6, lsl #2 - 80113d4: eb09 0883 add.w r8, r9, r3, lsl #2 - 80113d8: f100 0514 add.w r5, r0, #20 - 80113dc: f04f 0e00 mov.w lr, #0 - 80113e0: f852 ab04 ldr.w sl, [r2], #4 - 80113e4: f859 4b04 ldr.w r4, [r9], #4 - 80113e8: fa1e f18a uxtah r1, lr, sl - 80113ec: b2a3 uxth r3, r4 - 80113ee: 1ac9 subs r1, r1, r3 - 80113f0: 0c23 lsrs r3, r4, #16 - 80113f2: ebc3 431a rsb r3, r3, sl, lsr #16 - 80113f6: eb03 4321 add.w r3, r3, r1, asr #16 - 80113fa: b289 uxth r1, r1 - 80113fc: ea4f 4e23 mov.w lr, r3, asr #16 - 8011400: 45c8 cmp r8, r9 - 8011402: ea41 4303 orr.w r3, r1, r3, lsl #16 - 8011406: 4694 mov ip, r2 - 8011408: f845 3b04 str.w r3, [r5], #4 - 801140c: d8e8 bhi.n 80113e0 <__mdiff+0x5c> - 801140e: 45bc cmp ip, r7 - 8011410: d304 bcc.n 801141c <__mdiff+0x98> - 8011412: f855 3d04 ldr.w r3, [r5, #-4]! - 8011416: b183 cbz r3, 801143a <__mdiff+0xb6> - 8011418: 6106 str r6, [r0, #16] - 801141a: e7c5 b.n 80113a8 <__mdiff+0x24> - 801141c: f85c 1b04 ldr.w r1, [ip], #4 - 8011420: fa1e f381 uxtah r3, lr, r1 - 8011424: 141a asrs r2, r3, #16 - 8011426: eb02 4211 add.w r2, r2, r1, lsr #16 - 801142a: b29b uxth r3, r3 - 801142c: ea43 4302 orr.w r3, r3, r2, lsl #16 - 8011430: ea4f 4e22 mov.w lr, r2, asr #16 - 8011434: f845 3b04 str.w r3, [r5], #4 - 8011438: e7e9 b.n 801140e <__mdiff+0x8a> - 801143a: 3e01 subs r6, #1 - 801143c: e7e9 b.n 8011412 <__mdiff+0x8e> - -0801143e <__d2b>: - 801143e: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - 8011442: 460e mov r6, r1 - 8011444: 2101 movs r1, #1 - 8011446: ec59 8b10 vmov r8, r9, d0 - 801144a: 4615 mov r5, r2 - 801144c: f7ff fd96 bl 8010f7c <_Balloc> - 8011450: f3c9 540a ubfx r4, r9, #20, #11 - 8011454: 4607 mov r7, r0 - 8011456: f3c9 0313 ubfx r3, r9, #0, #20 - 801145a: bb34 cbnz r4, 80114aa <__d2b+0x6c> - 801145c: 9301 str r3, [sp, #4] - 801145e: f1b8 0300 subs.w r3, r8, #0 - 8011462: d027 beq.n 80114b4 <__d2b+0x76> - 8011464: a802 add r0, sp, #8 - 8011466: f840 3d08 str.w r3, [r0, #-8]! - 801146a: f7ff fe0f bl 801108c <__lo0bits> - 801146e: 9900 ldr r1, [sp, #0] - 8011470: b1f0 cbz r0, 80114b0 <__d2b+0x72> - 8011472: 9a01 ldr r2, [sp, #4] - 8011474: f1c0 0320 rsb r3, r0, #32 - 8011478: fa02 f303 lsl.w r3, r2, r3 - 801147c: 430b orrs r3, r1 - 801147e: 40c2 lsrs r2, r0 - 8011480: 617b str r3, [r7, #20] - 8011482: 9201 str r2, [sp, #4] - 8011484: 9b01 ldr r3, [sp, #4] - 8011486: 61bb str r3, [r7, #24] - 8011488: 2b00 cmp r3, #0 - 801148a: bf14 ite ne - 801148c: 2102 movne r1, #2 - 801148e: 2101 moveq r1, #1 - 8011490: 6139 str r1, [r7, #16] - 8011492: b1c4 cbz r4, 80114c6 <__d2b+0x88> - 8011494: f2a4 4433 subw r4, r4, #1075 ; 0x433 - 8011498: 4404 add r4, r0 - 801149a: 6034 str r4, [r6, #0] - 801149c: f1c0 0035 rsb r0, r0, #53 ; 0x35 - 80114a0: 6028 str r0, [r5, #0] - 80114a2: 4638 mov r0, r7 - 80114a4: b003 add sp, #12 - 80114a6: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 80114aa: f443 1380 orr.w r3, r3, #1048576 ; 0x100000 - 80114ae: e7d5 b.n 801145c <__d2b+0x1e> - 80114b0: 6179 str r1, [r7, #20] - 80114b2: e7e7 b.n 8011484 <__d2b+0x46> - 80114b4: a801 add r0, sp, #4 - 80114b6: f7ff fde9 bl 801108c <__lo0bits> - 80114ba: 9b01 ldr r3, [sp, #4] - 80114bc: 617b str r3, [r7, #20] - 80114be: 2101 movs r1, #1 - 80114c0: 6139 str r1, [r7, #16] - 80114c2: 3020 adds r0, #32 - 80114c4: e7e5 b.n 8011492 <__d2b+0x54> - 80114c6: eb07 0381 add.w r3, r7, r1, lsl #2 - 80114ca: f2a0 4032 subw r0, r0, #1074 ; 0x432 - 80114ce: 6030 str r0, [r6, #0] - 80114d0: 6918 ldr r0, [r3, #16] - 80114d2: f7ff fdbc bl 801104e <__hi0bits> - 80114d6: ebc0 1041 rsb r0, r0, r1, lsl #5 - 80114da: e7e1 b.n 80114a0 <__d2b+0x62> - 80114dc: 0000 movs r0, r0 - ... - -080114e0 : - 80114e0: b082 sub sp, #8 - 80114e2: ed8d 0b00 vstr d0, [sp] - 80114e6: 2100 movs r1, #0 - 80114e8: 9a01 ldr r2, [sp, #4] - 80114ea: 6001 str r1, [r0, #0] - 80114ec: 4918 ldr r1, [pc, #96] ; (8011550 ) - 80114ee: f022 4300 bic.w r3, r2, #2147483648 ; 0x80000000 - 80114f2: 428b cmp r3, r1 - 80114f4: dc23 bgt.n 801153e - 80114f6: 9900 ldr r1, [sp, #0] - 80114f8: 4319 orrs r1, r3 - 80114fa: d020 beq.n 801153e - 80114fc: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000 - 8011500: da0b bge.n 801151a - 8011502: ed9f 7b11 vldr d7, [pc, #68] ; 8011548 - 8011506: ee20 7b07 vmul.f64 d7, d0, d7 - 801150a: ed8d 7b00 vstr d7, [sp] - 801150e: 9a01 ldr r2, [sp, #4] - 8011510: f06f 0135 mvn.w r1, #53 ; 0x35 - 8011514: f022 4300 bic.w r3, r2, #2147483648 ; 0x80000000 - 8011518: 6001 str r1, [r0, #0] - 801151a: 6801 ldr r1, [r0, #0] - 801151c: 151b asrs r3, r3, #20 - 801151e: f2a3 33fe subw r3, r3, #1022 ; 0x3fe - 8011522: 440b add r3, r1 - 8011524: f022 42ff bic.w r2, r2, #2139095040 ; 0x7f800000 - 8011528: 6003 str r3, [r0, #0] - 801152a: f422 02e0 bic.w r2, r2, #7340032 ; 0x700000 - 801152e: e9dd 0100 ldrd r0, r1, [sp] - 8011532: f042 517f orr.w r1, r2, #1069547520 ; 0x3fc00000 - 8011536: f441 1100 orr.w r1, r1, #2097152 ; 0x200000 - 801153a: e9cd 0100 strd r0, r1, [sp] - 801153e: ed9d 0b00 vldr d0, [sp] - 8011542: b002 add sp, #8 - 8011544: 4770 bx lr - 8011546: bf00 nop - 8011548: 00000000 .word 0x00000000 - 801154c: 43500000 .word 0x43500000 - 8011550: 7fefffff .word 0x7fefffff - -08011554 <__sread>: - 8011554: b510 push {r4, lr} - 8011556: 460c mov r4, r1 - 8011558: f9b1 100e ldrsh.w r1, [r1, #14] - 801155c: f000 f9fc bl 8011958 <_read_r> - 8011560: 2800 cmp r0, #0 - 8011562: bfab itete ge - 8011564: 6d23 ldrge r3, [r4, #80] ; 0x50 - 8011566: 89a3 ldrhlt r3, [r4, #12] - 8011568: 181b addge r3, r3, r0 - 801156a: f423 5380 biclt.w r3, r3, #4096 ; 0x1000 - 801156e: bfac ite ge - 8011570: 6523 strge r3, [r4, #80] ; 0x50 - 8011572: 81a3 strhlt r3, [r4, #12] - 8011574: bd10 pop {r4, pc} - -08011576 <__swrite>: - 8011576: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 801157a: 461f mov r7, r3 - 801157c: 898b ldrh r3, [r1, #12] - 801157e: 05db lsls r3, r3, #23 - 8011580: 4605 mov r5, r0 - 8011582: 460c mov r4, r1 - 8011584: 4616 mov r6, r2 - 8011586: d505 bpl.n 8011594 <__swrite+0x1e> - 8011588: 2302 movs r3, #2 - 801158a: 2200 movs r2, #0 - 801158c: f9b1 100e ldrsh.w r1, [r1, #14] - 8011590: f000 f9be bl 8011910 <_lseek_r> - 8011594: 89a3 ldrh r3, [r4, #12] - 8011596: f9b4 100e ldrsh.w r1, [r4, #14] - 801159a: f423 5380 bic.w r3, r3, #4096 ; 0x1000 - 801159e: 81a3 strh r3, [r4, #12] - 80115a0: 4632 mov r2, r6 - 80115a2: 463b mov r3, r7 - 80115a4: 4628 mov r0, r5 - 80115a6: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 80115aa: f7fe bbcb b.w 800fd44 <_write_r> - -080115ae <__sseek>: - 80115ae: b510 push {r4, lr} - 80115b0: 460c mov r4, r1 - 80115b2: f9b1 100e ldrsh.w r1, [r1, #14] - 80115b6: f000 f9ab bl 8011910 <_lseek_r> - 80115ba: 1c43 adds r3, r0, #1 - 80115bc: 89a3 ldrh r3, [r4, #12] - 80115be: bf15 itete ne - 80115c0: 6520 strne r0, [r4, #80] ; 0x50 - 80115c2: f423 5380 biceq.w r3, r3, #4096 ; 0x1000 - 80115c6: f443 5380 orrne.w r3, r3, #4096 ; 0x1000 - 80115ca: 81a3 strheq r3, [r4, #12] - 80115cc: bf18 it ne - 80115ce: 81a3 strhne r3, [r4, #12] - 80115d0: bd10 pop {r4, pc} - -080115d2 <__sclose>: - 80115d2: f9b1 100e ldrsh.w r1, [r1, #14] - 80115d6: f000 b911 b.w 80117fc <_close_r> - -080115da : - 80115da: b570 push {r4, r5, r6, lr} - 80115dc: 3901 subs r1, #1 - 80115de: 4604 mov r4, r0 - 80115e0: b902 cbnz r2, 80115e4 - 80115e2: bd70 pop {r4, r5, r6, pc} - 80115e4: 4623 mov r3, r4 - 80115e6: f811 5f01 ldrb.w r5, [r1, #1]! - 80115ea: f803 5b01 strb.w r5, [r3], #1 - 80115ee: 1e56 subs r6, r2, #1 - 80115f0: b92d cbnz r5, 80115fe - 80115f2: 4414 add r4, r2 - 80115f4: 42a3 cmp r3, r4 - 80115f6: d0f4 beq.n 80115e2 - 80115f8: f803 5b01 strb.w r5, [r3], #1 - 80115fc: e7fa b.n 80115f4 - 80115fe: 461c mov r4, r3 - 8011600: 4632 mov r2, r6 - 8011602: e7ed b.n 80115e0 - -08011604 <__ssprint_r>: - 8011604: 6893 ldr r3, [r2, #8] - 8011606: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 801160a: 4681 mov r9, r0 - 801160c: 460c mov r4, r1 - 801160e: 4616 mov r6, r2 - 8011610: 2b00 cmp r3, #0 - 8011612: d05e beq.n 80116d2 <__ssprint_r+0xce> - 8011614: f04f 0b00 mov.w fp, #0 - 8011618: f8d2 a000 ldr.w sl, [r2] - 801161c: 465f mov r7, fp - 801161e: b357 cbz r7, 8011676 <__ssprint_r+0x72> - 8011620: 68a3 ldr r3, [r4, #8] - 8011622: 429f cmp r7, r3 - 8011624: d340 bcc.n 80116a8 <__ssprint_r+0xa4> - 8011626: 89a2 ldrh r2, [r4, #12] - 8011628: f412 6f90 tst.w r2, #1152 ; 0x480 - 801162c: d03c beq.n 80116a8 <__ssprint_r+0xa4> - 801162e: 6825 ldr r5, [r4, #0] - 8011630: 6921 ldr r1, [r4, #16] - 8011632: eba5 0801 sub.w r8, r5, r1 - 8011636: 6965 ldr r5, [r4, #20] - 8011638: 2302 movs r3, #2 - 801163a: eb05 0545 add.w r5, r5, r5, lsl #1 - 801163e: fb95 f5f3 sdiv r5, r5, r3 - 8011642: f108 0301 add.w r3, r8, #1 - 8011646: 443b add r3, r7 - 8011648: 429d cmp r5, r3 - 801164a: bf38 it cc - 801164c: 461d movcc r5, r3 - 801164e: 0553 lsls r3, r2, #21 - 8011650: d544 bpl.n 80116dc <__ssprint_r+0xd8> - 8011652: 4629 mov r1, r5 - 8011654: 4648 mov r0, r9 - 8011656: f7fc fc49 bl 800deec <_malloc_r> - 801165a: b988 cbnz r0, 8011680 <__ssprint_r+0x7c> - 801165c: 230c movs r3, #12 - 801165e: f8c9 3000 str.w r3, [r9] - 8011662: 89a3 ldrh r3, [r4, #12] - 8011664: f043 0340 orr.w r3, r3, #64 ; 0x40 - 8011668: 81a3 strh r3, [r4, #12] - 801166a: 2300 movs r3, #0 - 801166c: e9c6 3301 strd r3, r3, [r6, #4] - 8011670: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 8011674: e02f b.n 80116d6 <__ssprint_r+0xd2> - 8011676: e9da b700 ldrd fp, r7, [sl] - 801167a: f10a 0a08 add.w sl, sl, #8 - 801167e: e7ce b.n 801161e <__ssprint_r+0x1a> - 8011680: 4642 mov r2, r8 - 8011682: 6921 ldr r1, [r4, #16] - 8011684: 9001 str r0, [sp, #4] - 8011686: f7fc fe76 bl 800e376 - 801168a: 89a2 ldrh r2, [r4, #12] - 801168c: 9b01 ldr r3, [sp, #4] - 801168e: f422 6290 bic.w r2, r2, #1152 ; 0x480 - 8011692: f042 0280 orr.w r2, r2, #128 ; 0x80 - 8011696: 81a2 strh r2, [r4, #12] - 8011698: 6123 str r3, [r4, #16] - 801169a: 6165 str r5, [r4, #20] - 801169c: 4443 add r3, r8 - 801169e: eba5 0508 sub.w r5, r5, r8 - 80116a2: 6023 str r3, [r4, #0] - 80116a4: 60a5 str r5, [r4, #8] - 80116a6: 463b mov r3, r7 - 80116a8: 42bb cmp r3, r7 - 80116aa: bf28 it cs - 80116ac: 463b movcs r3, r7 - 80116ae: 461a mov r2, r3 - 80116b0: 4659 mov r1, fp - 80116b2: 6820 ldr r0, [r4, #0] - 80116b4: 9301 str r3, [sp, #4] - 80116b6: f7fc fe69 bl 800e38c - 80116ba: 68a2 ldr r2, [r4, #8] - 80116bc: 9b01 ldr r3, [sp, #4] - 80116be: 1ad2 subs r2, r2, r3 - 80116c0: 60a2 str r2, [r4, #8] - 80116c2: 6822 ldr r2, [r4, #0] - 80116c4: 4413 add r3, r2 - 80116c6: 6023 str r3, [r4, #0] - 80116c8: 68b3 ldr r3, [r6, #8] - 80116ca: 1bdf subs r7, r3, r7 - 80116cc: 60b7 str r7, [r6, #8] - 80116ce: 2f00 cmp r7, #0 - 80116d0: d1d1 bne.n 8011676 <__ssprint_r+0x72> - 80116d2: 2000 movs r0, #0 - 80116d4: 6070 str r0, [r6, #4] - 80116d6: b003 add sp, #12 - 80116d8: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 80116dc: 462a mov r2, r5 - 80116de: 4648 mov r0, r9 - 80116e0: f7fc febe bl 800e460 <_realloc_r> - 80116e4: 4603 mov r3, r0 - 80116e6: 2800 cmp r0, #0 - 80116e8: d1d6 bne.n 8011698 <__ssprint_r+0x94> - 80116ea: 6921 ldr r1, [r4, #16] - 80116ec: 4648 mov r0, r9 - 80116ee: f7ff faf1 bl 8010cd4 <_free_r> - 80116f2: e7b3 b.n 801165c <__ssprint_r+0x58> - -080116f4 <__register_exitproc>: - 80116f4: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 80116f8: 4c26 ldr r4, [pc, #152] ; (8011794 <__register_exitproc+0xa0>) - 80116fa: 4606 mov r6, r0 - 80116fc: 6820 ldr r0, [r4, #0] - 80116fe: 4698 mov r8, r3 - 8011700: 460f mov r7, r1 - 8011702: 4691 mov r9, r2 - 8011704: f7fc fbe0 bl 800dec8 <__retarget_lock_acquire_recursive> - 8011708: 4b23 ldr r3, [pc, #140] ; (8011798 <__register_exitproc+0xa4>) - 801170a: 681d ldr r5, [r3, #0] - 801170c: f8d5 0148 ldr.w r0, [r5, #328] ; 0x148 - 8011710: b918 cbnz r0, 801171a <__register_exitproc+0x26> - 8011712: f505 70a6 add.w r0, r5, #332 ; 0x14c - 8011716: f8c5 0148 str.w r0, [r5, #328] ; 0x148 - 801171a: 6843 ldr r3, [r0, #4] - 801171c: 2b1f cmp r3, #31 - 801171e: dd19 ble.n 8011754 <__register_exitproc+0x60> - 8011720: 4b1e ldr r3, [pc, #120] ; (801179c <__register_exitproc+0xa8>) - 8011722: b933 cbnz r3, 8011732 <__register_exitproc+0x3e> - 8011724: 6820 ldr r0, [r4, #0] - 8011726: f7fc fbd0 bl 800deca <__retarget_lock_release_recursive> - 801172a: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 801172e: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 8011732: f44f 70c8 mov.w r0, #400 ; 0x190 - 8011736: f7fc fbc9 bl 800decc - 801173a: 2800 cmp r0, #0 - 801173c: d0f2 beq.n 8011724 <__register_exitproc+0x30> - 801173e: f8d5 3148 ldr.w r3, [r5, #328] ; 0x148 - 8011742: 6003 str r3, [r0, #0] - 8011744: 2200 movs r2, #0 - 8011746: 6042 str r2, [r0, #4] - 8011748: f8c5 0148 str.w r0, [r5, #328] ; 0x148 - 801174c: f8c0 2188 str.w r2, [r0, #392] ; 0x188 - 8011750: f8c0 218c str.w r2, [r0, #396] ; 0x18c - 8011754: 6843 ldr r3, [r0, #4] - 8011756: b19e cbz r6, 8011780 <__register_exitproc+0x8c> - 8011758: eb00 0583 add.w r5, r0, r3, lsl #2 - 801175c: 2201 movs r2, #1 - 801175e: f8c5 9088 str.w r9, [r5, #136] ; 0x88 - 8011762: f8d0 1188 ldr.w r1, [r0, #392] ; 0x188 - 8011766: 409a lsls r2, r3 - 8011768: 4311 orrs r1, r2 - 801176a: 2e02 cmp r6, #2 - 801176c: f8c0 1188 str.w r1, [r0, #392] ; 0x188 - 8011770: f8c5 8108 str.w r8, [r5, #264] ; 0x108 - 8011774: bf02 ittt eq - 8011776: f8d0 118c ldreq.w r1, [r0, #396] ; 0x18c - 801177a: 430a orreq r2, r1 - 801177c: f8c0 218c streq.w r2, [r0, #396] ; 0x18c - 8011780: 1c5a adds r2, r3, #1 - 8011782: 3302 adds r3, #2 - 8011784: 6042 str r2, [r0, #4] - 8011786: f840 7023 str.w r7, [r0, r3, lsl #2] - 801178a: 6820 ldr r0, [r4, #0] - 801178c: f7fc fb9d bl 800deca <__retarget_lock_release_recursive> - 8011790: 2000 movs r0, #0 - 8011792: e7cc b.n 801172e <__register_exitproc+0x3a> - 8011794: 20000850 .word 0x20000850 - 8011798: 08012e2c .word 0x08012e2c - 801179c: 0800decd .word 0x0800decd - -080117a0 <_calloc_r>: - 80117a0: b510 push {r4, lr} - 80117a2: 4351 muls r1, r2 - 80117a4: f7fc fba2 bl 800deec <_malloc_r> - 80117a8: 4604 mov r4, r0 - 80117aa: b198 cbz r0, 80117d4 <_calloc_r+0x34> - 80117ac: f850 2c04 ldr.w r2, [r0, #-4] - 80117b0: f022 0203 bic.w r2, r2, #3 - 80117b4: 3a04 subs r2, #4 - 80117b6: 2a24 cmp r2, #36 ; 0x24 - 80117b8: d81b bhi.n 80117f2 <_calloc_r+0x52> - 80117ba: 2a13 cmp r2, #19 - 80117bc: d917 bls.n 80117ee <_calloc_r+0x4e> - 80117be: 2100 movs r1, #0 - 80117c0: 2a1b cmp r2, #27 - 80117c2: e9c0 1100 strd r1, r1, [r0] - 80117c6: d807 bhi.n 80117d8 <_calloc_r+0x38> - 80117c8: f100 0308 add.w r3, r0, #8 - 80117cc: 2200 movs r2, #0 - 80117ce: e9c3 2200 strd r2, r2, [r3] - 80117d2: 609a str r2, [r3, #8] - 80117d4: 4620 mov r0, r4 - 80117d6: bd10 pop {r4, pc} - 80117d8: 2a24 cmp r2, #36 ; 0x24 - 80117da: e9c0 1102 strd r1, r1, [r0, #8] - 80117de: bf11 iteee ne - 80117e0: f100 0310 addne.w r3, r0, #16 - 80117e4: 6101 streq r1, [r0, #16] - 80117e6: f100 0318 addeq.w r3, r0, #24 - 80117ea: 6141 streq r1, [r0, #20] - 80117ec: e7ee b.n 80117cc <_calloc_r+0x2c> - 80117ee: 4603 mov r3, r0 - 80117f0: e7ec b.n 80117cc <_calloc_r+0x2c> - 80117f2: 2100 movs r1, #0 - 80117f4: f7fc fde3 bl 800e3be - 80117f8: e7ec b.n 80117d4 <_calloc_r+0x34> - ... - -080117fc <_close_r>: - 80117fc: b538 push {r3, r4, r5, lr} - 80117fe: 4c06 ldr r4, [pc, #24] ; (8011818 <_close_r+0x1c>) - 8011800: 2300 movs r3, #0 - 8011802: 4605 mov r5, r0 - 8011804: 4608 mov r0, r1 - 8011806: 6023 str r3, [r4, #0] - 8011808: f7fa ffc3 bl 800c792 <_close> - 801180c: 1c43 adds r3, r0, #1 - 801180e: d102 bne.n 8011816 <_close_r+0x1a> - 8011810: 6823 ldr r3, [r4, #0] - 8011812: b103 cbz r3, 8011816 <_close_r+0x1a> - 8011814: 602b str r3, [r5, #0] - 8011816: bd38 pop {r3, r4, r5, pc} - 8011818: 20000b08 .word 0x20000b08 - -0801181c <_fclose_r>: - 801181c: b570 push {r4, r5, r6, lr} - 801181e: 4606 mov r6, r0 - 8011820: 460c mov r4, r1 - 8011822: b911 cbnz r1, 801182a <_fclose_r+0xe> - 8011824: 2500 movs r5, #0 - 8011826: 4628 mov r0, r5 - 8011828: bd70 pop {r4, r5, r6, pc} - 801182a: b118 cbz r0, 8011834 <_fclose_r+0x18> - 801182c: 6b83 ldr r3, [r0, #56] ; 0x38 - 801182e: b90b cbnz r3, 8011834 <_fclose_r+0x18> - 8011830: f7ff f9c0 bl 8010bb4 <__sinit> - 8011834: 6e63 ldr r3, [r4, #100] ; 0x64 - 8011836: 07d8 lsls r0, r3, #31 - 8011838: d405 bmi.n 8011846 <_fclose_r+0x2a> - 801183a: 89a3 ldrh r3, [r4, #12] - 801183c: 0599 lsls r1, r3, #22 - 801183e: d402 bmi.n 8011846 <_fclose_r+0x2a> - 8011840: 6da0 ldr r0, [r4, #88] ; 0x58 - 8011842: f7fc fb41 bl 800dec8 <__retarget_lock_acquire_recursive> - 8011846: f9b4 300c ldrsh.w r3, [r4, #12] - 801184a: b93b cbnz r3, 801185c <_fclose_r+0x40> - 801184c: 6e65 ldr r5, [r4, #100] ; 0x64 - 801184e: f015 0501 ands.w r5, r5, #1 - 8011852: d1e7 bne.n 8011824 <_fclose_r+0x8> - 8011854: 6da0 ldr r0, [r4, #88] ; 0x58 - 8011856: f7fc fb38 bl 800deca <__retarget_lock_release_recursive> - 801185a: e7e4 b.n 8011826 <_fclose_r+0xa> - 801185c: 4621 mov r1, r4 - 801185e: 4630 mov r0, r6 - 8011860: f7ff f8ae bl 80109c0 <__sflush_r> - 8011864: 6ae3 ldr r3, [r4, #44] ; 0x2c - 8011866: 4605 mov r5, r0 - 8011868: b133 cbz r3, 8011878 <_fclose_r+0x5c> - 801186a: 69e1 ldr r1, [r4, #28] - 801186c: 4630 mov r0, r6 - 801186e: 4798 blx r3 - 8011870: 2800 cmp r0, #0 - 8011872: bfb8 it lt - 8011874: f04f 35ff movlt.w r5, #4294967295 ; 0xffffffff - 8011878: 89a3 ldrh r3, [r4, #12] - 801187a: 061a lsls r2, r3, #24 - 801187c: d503 bpl.n 8011886 <_fclose_r+0x6a> - 801187e: 6921 ldr r1, [r4, #16] - 8011880: 4630 mov r0, r6 - 8011882: f7ff fa27 bl 8010cd4 <_free_r> - 8011886: 6b21 ldr r1, [r4, #48] ; 0x30 - 8011888: b141 cbz r1, 801189c <_fclose_r+0x80> - 801188a: f104 0340 add.w r3, r4, #64 ; 0x40 - 801188e: 4299 cmp r1, r3 - 8011890: d002 beq.n 8011898 <_fclose_r+0x7c> - 8011892: 4630 mov r0, r6 - 8011894: f7ff fa1e bl 8010cd4 <_free_r> - 8011898: 2300 movs r3, #0 - 801189a: 6323 str r3, [r4, #48] ; 0x30 - 801189c: 6c61 ldr r1, [r4, #68] ; 0x44 - 801189e: b121 cbz r1, 80118aa <_fclose_r+0x8e> - 80118a0: 4630 mov r0, r6 - 80118a2: f7ff fa17 bl 8010cd4 <_free_r> - 80118a6: 2300 movs r3, #0 - 80118a8: 6463 str r3, [r4, #68] ; 0x44 - 80118aa: f7ff f96b bl 8010b84 <__sfp_lock_acquire> - 80118ae: 2300 movs r3, #0 - 80118b0: 81a3 strh r3, [r4, #12] - 80118b2: 6e63 ldr r3, [r4, #100] ; 0x64 - 80118b4: 07db lsls r3, r3, #31 - 80118b6: d402 bmi.n 80118be <_fclose_r+0xa2> - 80118b8: 6da0 ldr r0, [r4, #88] ; 0x58 - 80118ba: f7fc fb06 bl 800deca <__retarget_lock_release_recursive> - 80118be: 6da0 ldr r0, [r4, #88] ; 0x58 - 80118c0: f7fc fb01 bl 800dec6 <__retarget_lock_close_recursive> - 80118c4: f7ff f964 bl 8010b90 <__sfp_lock_release> - 80118c8: e7ad b.n 8011826 <_fclose_r+0xa> - ... - -080118cc <_fstat_r>: - 80118cc: b538 push {r3, r4, r5, lr} - 80118ce: 4c07 ldr r4, [pc, #28] ; (80118ec <_fstat_r+0x20>) - 80118d0: 2300 movs r3, #0 - 80118d2: 4605 mov r5, r0 - 80118d4: 4608 mov r0, r1 - 80118d6: 4611 mov r1, r2 - 80118d8: 6023 str r3, [r4, #0] - 80118da: f7fa ff66 bl 800c7aa <_fstat> - 80118de: 1c43 adds r3, r0, #1 - 80118e0: d102 bne.n 80118e8 <_fstat_r+0x1c> - 80118e2: 6823 ldr r3, [r4, #0] - 80118e4: b103 cbz r3, 80118e8 <_fstat_r+0x1c> - 80118e6: 602b str r3, [r5, #0] - 80118e8: bd38 pop {r3, r4, r5, pc} - 80118ea: bf00 nop - 80118ec: 20000b08 .word 0x20000b08 - -080118f0 <_isatty_r>: - 80118f0: b538 push {r3, r4, r5, lr} - 80118f2: 4c06 ldr r4, [pc, #24] ; (801190c <_isatty_r+0x1c>) - 80118f4: 2300 movs r3, #0 - 80118f6: 4605 mov r5, r0 - 80118f8: 4608 mov r0, r1 - 80118fa: 6023 str r3, [r4, #0] - 80118fc: f7fa ff65 bl 800c7ca <_isatty> - 8011900: 1c43 adds r3, r0, #1 - 8011902: d102 bne.n 801190a <_isatty_r+0x1a> - 8011904: 6823 ldr r3, [r4, #0] - 8011906: b103 cbz r3, 801190a <_isatty_r+0x1a> - 8011908: 602b str r3, [r5, #0] - 801190a: bd38 pop {r3, r4, r5, pc} - 801190c: 20000b08 .word 0x20000b08 - -08011910 <_lseek_r>: - 8011910: b538 push {r3, r4, r5, lr} - 8011912: 4c07 ldr r4, [pc, #28] ; (8011930 <_lseek_r+0x20>) - 8011914: 4605 mov r5, r0 - 8011916: 4608 mov r0, r1 - 8011918: 4611 mov r1, r2 - 801191a: 2200 movs r2, #0 - 801191c: 6022 str r2, [r4, #0] - 801191e: 461a mov r2, r3 - 8011920: f7fa ff5e bl 800c7e0 <_lseek> - 8011924: 1c43 adds r3, r0, #1 - 8011926: d102 bne.n 801192e <_lseek_r+0x1e> - 8011928: 6823 ldr r3, [r4, #0] - 801192a: b103 cbz r3, 801192e <_lseek_r+0x1e> - 801192c: 602b str r3, [r5, #0] - 801192e: bd38 pop {r3, r4, r5, pc} - 8011930: 20000b08 .word 0x20000b08 - -08011934 <__ascii_mbtowc>: - 8011934: b082 sub sp, #8 - 8011936: b901 cbnz r1, 801193a <__ascii_mbtowc+0x6> - 8011938: a901 add r1, sp, #4 - 801193a: b142 cbz r2, 801194e <__ascii_mbtowc+0x1a> - 801193c: b14b cbz r3, 8011952 <__ascii_mbtowc+0x1e> - 801193e: 7813 ldrb r3, [r2, #0] - 8011940: 600b str r3, [r1, #0] - 8011942: 7812 ldrb r2, [r2, #0] - 8011944: 1c10 adds r0, r2, #0 - 8011946: bf18 it ne - 8011948: 2001 movne r0, #1 - 801194a: b002 add sp, #8 - 801194c: 4770 bx lr - 801194e: 4610 mov r0, r2 - 8011950: e7fb b.n 801194a <__ascii_mbtowc+0x16> - 8011952: f06f 0001 mvn.w r0, #1 - 8011956: e7f8 b.n 801194a <__ascii_mbtowc+0x16> - -08011958 <_read_r>: - 8011958: b538 push {r3, r4, r5, lr} - 801195a: 4c07 ldr r4, [pc, #28] ; (8011978 <_read_r+0x20>) - 801195c: 4605 mov r5, r0 - 801195e: 4608 mov r0, r1 - 8011960: 4611 mov r1, r2 - 8011962: 2200 movs r2, #0 - 8011964: 6022 str r2, [r4, #0] - 8011966: 461a mov r2, r3 - 8011968: f7fa feda bl 800c720 <_read> - 801196c: 1c43 adds r3, r0, #1 - 801196e: d102 bne.n 8011976 <_read_r+0x1e> - 8011970: 6823 ldr r3, [r4, #0] - 8011972: b103 cbz r3, 8011976 <_read_r+0x1e> - 8011974: 602b str r3, [r5, #0] - 8011976: bd38 pop {r3, r4, r5, pc} - 8011978: 20000b08 .word 0x20000b08 - -0801197c <__ascii_wctomb>: - 801197c: b149 cbz r1, 8011992 <__ascii_wctomb+0x16> - 801197e: 2aff cmp r2, #255 ; 0xff - 8011980: bf85 ittet hi - 8011982: 238a movhi r3, #138 ; 0x8a - 8011984: 6003 strhi r3, [r0, #0] - 8011986: 700a strbls r2, [r1, #0] - 8011988: f04f 30ff movhi.w r0, #4294967295 ; 0xffffffff - 801198c: bf98 it ls - 801198e: 2001 movls r0, #1 - 8011990: 4770 bx lr - 8011992: 4608 mov r0, r1 - 8011994: 4770 bx lr - ... - -08011998 <_init>: - 8011998: b5f8 push {r3, r4, r5, r6, r7, lr} - 801199a: bf00 nop - 801199c: bcf8 pop {r3, r4, r5, r6, r7} - 801199e: bc08 pop {r3} - 80119a0: 469e mov lr, r3 - 80119a2: 4770 bx lr - -080119a4 <_fini>: - 80119a4: b5f8 push {r3, r4, r5, r6, r7, lr} - 80119a6: bf00 nop - 80119a8: bcf8 pop {r3, r4, r5, r6, r7} - 80119aa: bc08 pop {r3} - 80119ac: 469e mov lr, r3 - 80119ae: 4770 bx lr diff --git a/rosserial_test/Src/main.cpp b/rosserial_test/Src/main.cpp deleted file mode 100644 index 3d52c5f..0000000 --- a/rosserial_test/Src/main.cpp +++ /dev/null @@ -1,289 +0,0 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * @file : main.c - * @brief : Main program body - ****************************************************************************** - * @attention - * - *

© Copyright (c) 2019 STMicroelectronics. - * All rights reserved.

- * - * This software component is licensed by ST under BSD 3-Clause license, - * the "License"; You may not use this file except in compliance with the - * License. You may obtain a copy of the License at: - * opensource.org/licenses/BSD-3-Clause - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "main.h" - -/* Private includes ----------------------------------------------------------*/ -/* USER CODE BEGIN Includes */ -#include -#include - -/* USER CODE END Includes */ - -/* Private typedef -----------------------------------------------------------*/ -/* USER CODE BEGIN PTD */ - -/* USER CODE END PTD */ - -/* Private define ------------------------------------------------------------*/ -/* USER CODE BEGIN PD */ - -/* USER CODE END PD */ - -/* Private macro -------------------------------------------------------------*/ -/* USER CODE BEGIN PM */ - -/* USER CODE END PM */ - -/* Private variables ---------------------------------------------------------*/ - -TIM_HandleTypeDef htim2; - -UART_HandleTypeDef huart3; - -/* USER CODE BEGIN PV */ - -/* USER CODE END PV */ - -/* Private function prototypes -----------------------------------------------*/ -void SystemClock_Config(void); -static void MX_GPIO_Init(void); -static void MX_TIM2_Init(void); -static void MX_USART3_UART_Init(void); -/* USER CODE BEGIN PFP */ - -/* USER CODE END PFP */ - -/* Private user code ---------------------------------------------------------*/ -/* USER CODE BEGIN 0 */ - -/* USER CODE END 0 */ - -/** - * @brief The application entry point. - * @retval int - */ -int main(void) -{ - /* USER CODE BEGIN 1 */ - - /* USER CODE END 1 */ - - - /* MCU Configuration--------------------------------------------------------*/ - - /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ - HAL_Init(); - - /* USER CODE BEGIN Init */ - - /* USER CODE END Init */ - - /* Configure the system clock */ - SystemClock_Config(); - - /* USER CODE BEGIN SysInit */ - - /* USER CODE END SysInit */ - - /* Initialize all configured peripherals */ - MX_GPIO_Init(); - MX_TIM2_Init(); - MX_USART3_UART_Init(); - /* USER CODE BEGIN 2 */ - ros::NodeHandle nh; - - std_msgs::String str_msg; - ros::Publisher chatter("chatter", &str_msg); - char hello[] = "Hello world!"; - - nh.initNode(); - nh.advertise(chatter); - - /* USER CODE END 2 */ - - /* Infinite loop */ - /* USER CODE BEGIN WHILE */ - while (1) { - - /* - str_msg.data = hello; - chatter.publish(&str_msg); - nh.spinOnce(); - */ - HAL_UART_Transmit(&huart3, (uint8_t*)hello, strlen(hello), 100); - - HAL_Delay(1000); - /* USER CODE END WHILE */ - - /* USER CODE BEGIN 3 */ - } - /* USER CODE END 3 */ -} - -/** - * @brief System Clock Configuration - * @retval None - */ -void SystemClock_Config(void) -{ - RCC_OscInitTypeDef RCC_OscInitStruct = {0}; - RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; - RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; - - /** Configure the main internal regulator output voltage - */ - __HAL_RCC_PWR_CLK_ENABLE(); - __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3); - /** Initializes the CPU, AHB and APB busses clocks - */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; - RCC_OscInitStruct.HSIState = RCC_HSI_ON; - RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - { - Error_Handler(); - } - /** Initializes the CPU, AHB and APB busses clocks - */ - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; - RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; - - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) - { - Error_Handler(); - } - PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART3; - PeriphClkInitStruct.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) - { - Error_Handler(); - } -} - -/** - * @brief TIM2 Initialization Function - * @param None - * @retval None - */ -static void MX_TIM2_Init(void) -{ - - /* USER CODE BEGIN TIM2_Init 0 */ - - /* USER CODE END TIM2_Init 0 */ - - /* USER CODE BEGIN TIM2_Init 1 */ - - /* USER CODE END TIM2_Init 1 */ - htim2.Instance = TIM2; - htim2.Init.Prescaler = 0; - htim2.Init.CounterMode = TIM_COUNTERMODE_UP; - htim2.Init.Period = 0; - htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; - htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; - if (HAL_TIM_OnePulse_Init(&htim2, TIM_OPMODE_SINGLE) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN TIM2_Init 2 */ - - /* USER CODE END TIM2_Init 2 */ - -} - -/** - * @brief USART3 Initialization Function - * @param None - * @retval None - */ -static void MX_USART3_UART_Init(void) -{ - - /* USER CODE BEGIN USART3_Init 0 */ - - /* USER CODE END USART3_Init 0 */ - - /* USER CODE BEGIN USART3_Init 1 */ - - /* USER CODE END USART3_Init 1 */ - huart3.Instance = USART3; - huart3.Init.BaudRate = 115200; - huart3.Init.WordLength = UART_WORDLENGTH_8B; - huart3.Init.StopBits = UART_STOPBITS_1; - huart3.Init.Parity = UART_PARITY_NONE; - huart3.Init.Mode = UART_MODE_TX_RX; - huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; - huart3.Init.OverSampling = UART_OVERSAMPLING_16; - huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - if (HAL_UART_Init(&huart3) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN USART3_Init 2 */ - - /* USER CODE END USART3_Init 2 */ - -} - -/** - * @brief GPIO Initialization Function - * @param None - * @retval None - */ -static void MX_GPIO_Init(void) -{ - - /* GPIO Ports Clock Enable */ - __HAL_RCC_GPIOD_CLK_ENABLE(); - -} - -/* USER CODE BEGIN 4 */ - -/* USER CODE END 4 */ - -/** - * @brief This function is executed in case of error occurrence. - * @retval None - */ -void Error_Handler(void) -{ - /* USER CODE BEGIN Error_Handler_Debug */ - /* User can add his own implementation to report the HAL error return state */ - - /* USER CODE END Error_Handler_Debug */ -} - -#ifdef USE_FULL_ASSERT -/** - * @brief Reports the name of the source file and the source line number - * where the assert_param error has occurred. - * @param file: pointer to the source file name - * @param line: assert_param error line source number - * @retval None - */ -void assert_failed(uint8_t *file, uint32_t line) -{ - /* USER CODE BEGIN 6 */ - /* User can add his own implementation to report the file name and line number, - tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ - /* USER CODE END 6 */ -} -#endif /* USE_FULL_ASSERT */ - -/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ -- 2.52.0